@kodax-ai/kodax 0.7.94 → 0.7.95
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 +64 -0
- package/README.md +36 -2
- package/README_CN.md +29 -0
- package/dist/chunks/agent-XXZMXKKA.js +2 -0
- package/dist/chunks/argument-completer-KCYDGTQW.js +2 -0
- package/dist/chunks/{chunk-BVV3IA5W.js → chunk-2PEDBGKN.js} +1 -1
- package/dist/chunks/{chunk-NGOPE4KK.js → chunk-2TM3W3GK.js} +1 -1
- package/dist/chunks/{chunk-ZKEXHAXA.js → chunk-6ABQJUK6.js} +219 -217
- package/dist/chunks/{chunk-ZGZLSKN6.js → chunk-7JXA3533.js} +223 -225
- package/dist/chunks/{chunk-UNRHTOT5.js → chunk-BNVSKIAB.js} +338 -141
- package/dist/chunks/chunk-BR2OSB2I.js +722 -0
- package/dist/chunks/{chunk-YMNFQ7SQ.js → chunk-C4DTUKTR.js} +2 -2
- package/dist/chunks/{chunk-ZMGATMXN.js → chunk-DSMONSVB.js} +1 -1
- package/dist/chunks/{chunk-6BATYA47.js → chunk-JS452J2F.js} +2 -2
- package/dist/chunks/chunk-O743AJ5V.js +323 -0
- package/dist/chunks/{chunk-IIIAUDGW.js → chunk-OK4AXDC5.js} +1 -1
- package/dist/chunks/chunk-Q5VRWSKG.js +418 -0
- package/dist/chunks/{chunk-N7HIJNJH.js → chunk-SRIJX5ZP.js} +1 -1
- package/dist/chunks/chunk-XWRPOGJN.js +4 -0
- package/dist/chunks/chunk-Y5VIQBT6.js +383 -0
- package/dist/chunks/{client-4IOUU4U3.js → client-JDOS3YJR.js} +1 -1
- package/dist/chunks/{compaction-config-2DTN3OHT.js → compaction-config-EGS4577X.js} +1 -1
- package/dist/chunks/{construction-bootstrap-BL56XTNW.js → construction-bootstrap-YCWHHUYO.js} +1 -1
- package/dist/chunks/dist-KFYN3OKD.js +2 -0
- package/dist/chunks/host-VAYADIPW.js +2 -0
- package/dist/chunks/run-manager-52IJZMZJ.js +2 -0
- package/dist/chunks/utils-P7PBSL3R.js +2 -0
- package/dist/index.d.ts +25 -25
- package/dist/index.js +1 -1
- package/dist/kodax_bootstrap.js +1 -1
- package/dist/kodax_cli.js +1680 -1442
- package/dist/kodax_resume.js +35 -35
- package/dist/runtime-worker.js +1543 -1305
- package/dist/sandbox-workspace-session.js +320 -646
- package/dist/sdk-a2a.d.ts +18 -18
- package/dist/sdk-a2a.js +1 -1
- package/dist/sdk-agent.d.ts +36 -26
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +30 -32
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.d.ts +6 -6
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.d.ts +8 -8
- package/dist/sdk-mcp.d.ts +4 -4
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +1 -1
- package/dist/sdk-repl.d.ts +21 -21
- package/dist/sdk-repl.js +1 -1
- package/dist/sdk-runtime.d.ts +28 -26
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-sandbox.d.ts +3 -1
- package/dist/sdk-sandbox.js +1 -1
- package/dist/sdk-session.d.ts +10 -10
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.d.ts +2 -2
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +278 -81
- package/dist/types-chunks/{base.d-JjF6aKsh.d.ts → base.d-vopO1rml.d.ts} +1 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-AOJdvO4r.d.ts → bash-prefix-extractor.d-B2rxNI4L.d.ts} +20 -9
- package/dist/types-chunks/{capability-learning.d-BAxy0mfx.d.ts → capability-learning.d-CE1tm29C.d.ts} +1 -1
- package/dist/types-chunks/{capsule.d-nYbM4MNL.d.ts → capsule.d-Y7QRS4J2.d.ts} +5 -5
- package/dist/types-chunks/{config.d-CTPaqsD-.d.ts → config.d-CJy1WENT.d.ts} +1 -1
- package/dist/types-chunks/{controller.d-CTvvOy_V.d.ts → controller.d-BR-UVeUR.d.ts} +1 -1
- package/dist/types-chunks/{controller.d-Bm1i9RVj.d.ts → controller.d-C5noq5-w.d.ts} +4 -4
- package/dist/types-chunks/{cost-tracker.d-MTAt6N7b.d.ts → cost-tracker.d-BeaenODW.d.ts} +1 -1
- package/dist/types-chunks/{guardrail.d-D8RyuTrv.d.ts → guardrail.d-DqHD-61O.d.ts} +9 -9
- package/dist/types-chunks/{history-retrieval.d-D0LNyBED.d.ts → history-retrieval.d-CKU8zmt_.d.ts} +2 -2
- package/dist/types-chunks/{integration-config.d-BHoiz-WZ.d.ts → integration-config.d-BNowXE8k.d.ts} +3 -3
- package/dist/types-chunks/{manager.d-D_1fqveb.d.ts → manager.d-B67TmPO1.d.ts} +3 -3
- package/dist/types-chunks/{oauth-login.d-Cz9OpSmz.d.ts → oauth-login.d-6i-vidxv.d.ts} +3 -3
- package/dist/types-chunks/{public-api.d-BNmLxGnR.d.ts → public-api.d-D7fXaWW8.d.ts} +7 -6
- package/dist/types-chunks/{repl.d-Q6Z3lV2-.d.ts → repl.d-BYDb14s6.d.ts} +8 -8
- package/dist/types-chunks/{resolver.d-DparsV6Y.d.ts → resolver.d-CwHUwbdE.d.ts} +4 -4
- package/dist/types-chunks/{review-inbox.d-dAtGH3g2.d.ts → review-inbox.d-BSgFewyj.d.ts} +3 -3
- package/dist/types-chunks/{run-manager.d-BeSEc2OL.d.ts → run-manager.d-BVJSntpS.d.ts} +2 -2
- package/dist/types-chunks/{sdk-session-BwC_i6JB.d.ts → sdk-session-CqEG84oP.d.ts} +3 -3
- package/dist/types-chunks/{sdk-skills-Bg1yL4i4.d.ts → sdk-skills-DokfOoJF.d.ts} +1 -1
- package/dist/types-chunks/{shell-command-sets.d-hkYPr4Dy.d.ts → shell-command-sets.d-DqaaBwhU.d.ts} +1 -1
- package/dist/types-chunks/{side-query.d-DNes6rHA.d.ts → side-query.d-iH0P9ASy.d.ts} +3 -3
- package/dist/types-chunks/{types-D8OiIEwA.d.ts → types-PHjfwebT.d.ts} +1 -1
- package/dist/types-chunks/{types.d-CzrUifXB.d.ts → types.d-C5xQEFcj.d.ts} +6 -6
- package/dist/types-chunks/{types.d-Cv09EdJR.d.ts → types.d-CK9A9rpP.d.ts} +1 -1
- package/dist/types-chunks/{types.d-Bdv2JoiC.d.ts → types.d-CaTXAW_Q.d.ts} +3 -3
- package/dist/types-chunks/{types.d-ssh6zRaf.d.ts → types.d-Cb8RdrjU.d.ts} +1 -1
- package/dist/types-chunks/{types.d-EjZTEEVu.d.ts → types.d-rUOjXych.d.ts} +6 -2
- package/dist/types-chunks/{utils.d-Buv_Gxhi.d.ts → utils.d-CWUyLiXo.d.ts} +8 -8
- package/package.json +2 -2
- package/dist/chunks/agent-Q3FB3GNZ.js +0 -2
- package/dist/chunks/argument-completer-SS2Q2ZKT.js +0 -2
- package/dist/chunks/chunk-56CIZI5I.js +0 -418
- package/dist/chunks/chunk-7CKGNNTU.js +0 -383
- package/dist/chunks/chunk-EASGM7W7.js +0 -687
- package/dist/chunks/chunk-NK5AWGNW.js +0 -319
- package/dist/chunks/dist-B4CB7KHY.js +0 -2
- package/dist/chunks/host-7747QS3X.js +0 -2
- package/dist/chunks/run-manager-NLNMI3P2.js +0 -2
- package/dist/chunks/utils-CGGQLMJS.js +0 -2
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
+
import{$ as Fv,A as Ha,Aa as Yv,B as Mv,Ba as wy,C as _v,Ca as qv,D as Wa,Da as Jv,E as sp,Ea as Qv,F as Av,Fa as Zv,G as ja,Ga as eb,H as Lv,Ha as tb,I as Pv,Ia as nb,J as is,Ja as rb,K as tu,Ka as Ri,L as Ov,La as ss,M as cp,Ma as Sy,N as nu,Na as ib,O as my,P as $v,Pa as xy,Q as hy,Qa as xp,R as so,Ra as ob,S as lp,Sa as sb,T as Ua,U as up,V as dp,W as Nv,X as Dv,Y as Ga,Z as Bv,_ as ao,a as kr,aa as Hv,b as K,ba as Xr,c as d$,ca as gy,d as Cn,da as fp,e as Qf,ea as Mn,f as GI,fa as Yr,g as Er,ga as yy,h as Zf,ha as os,i as ep,ia as fr,j as tp,ja as pp,k as La,ka as ru,l as VI,la as mp,m as Pa,ma as Wv,n as wv,na as jv,o as Sv,oa as Uv,p as xv,pa as Gv,q as Tv,qa as Vv,r as Cv,ra as Kv,s as Iv,sa as hp,t as vv,ta as gp,u as Ba,ua as iu,v as bv,va as yp,w as Rv,wa as wp,x as kv,xa as Sp,y as Fa,ya as zv,z as Ev,za as Xv}from"./chunk-6ABQJUK6.js";import{$ as Na,E as cv,J as lv,K as oo,L as ns,O as uv,P as dv,Q as fv,R as pv,S as mv,T as hv,U as gv,X as rp,Y as rs,Z as ip,_ as $a,a as re,aa as Da,b as KI,ba as op,c as zI,ca as bi,d as XI,e as YI,f as Zl,g as qI,ga as yv,h as Oa,i as JI,j as QI,k as es,l as ZI,m as ev,n as tv,o as eu,p as nv,q as np,r as Kr,s as rv,t as iv,u as ov,w as sv,x as av,y as ts,z as zr}from"./chunk-C4DTUKTR.js";import{a as ap}from"./chunk-OK4AXDC5.js";import{N as HI,P as py,Q as WI,R as jI,a as ry,aa as UI,b as _f,c as iy,da as Jf,f as dy,q as Yf,r as qf,y as FI,z as Ql}from"./chunk-DSMONSVB.js";import{Cb as Xf,Db as Aa,E as EI,Eb as OI,Hb as $I,Jb as NI,Kb as io,Va as _I,Wa as AI,Xb as DI,ib as Ii,p as Yl,q as TI,tb as Jl,ub as LI,vb as vi,xb as Ma,xc as BI,yb as PI,zb as _a}from"./chunk-Q5VRWSKG.js";import{J as MI}from"./chunk-JS452J2F.js";import{Bb as vI,Gd as bI,H as CI,Kd as RI,Ld as kI,Qa as zf,bb as II,nd as ql,qd as fy,t as Ea}from"./chunk-7JXA3533.js";import{Aa as ny,Pa as qo,ma as Mf,ya as sI}from"./chunk-BHE66SP3.js";import{$g as SI,Cf as Qe,Dc as Df,Df as Ta,Ef as _t,Fc as pI,Gb as lI,Gf as Ca,Hf as Ia,Ia as Qo,If as Hf,Ja as no,Kf as va,Lb as Nf,Ld as Xl,Lf as ba,Md as Bf,Mf as Ra,Nb as uI,Nf as Ci,Of as Wf,Pf as ro,Qf as yI,Ra as cI,Rf as jf,Sf as Uf,Tf as ly,Uf as Gf,Vf as wI,Wf as ka,Ze as Ff,_e as Zo,ac as dI,ah as uy,bc as fI,bh as xI,hg as Vf,ig as Kf,jf as mI,k as Jo,kf as cy,qb as oy,r as aI,rb as Vr,re as ay,t as mt,ub as sy,uf as hI,yf as gI}from"./chunk-BNVSKIAB.js";import{A as Pf,B as Of,F as $f,h as dr,j as Af,s as Lf}from"./chunk-77PNP27P.js";import{a as o,c as u$}from"./chunk-ONUPGMER.js";import{spawnSync as f$}from"node:child_process";function Tp(e){return e==="1"||e?.toLowerCase()==="true"}o(Tp,"isTruthyEnv");function ab(e){return e==="0"||e?.toLowerCase()==="false"}o(ab,"isFalseyEnv");function as(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}o(as,"isVsCodeTerminalHostEnv");function cs(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}o(cs,"hasCursorUpViewportYankRisk");function p$(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}o(p$,"isSshSession");function Va(e={}){let t=e.env??process.env;return Tp(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&p$(t)}o(Va,"isRemoteConptyHost");function ou(e={}){let t=e.env??process.env;return cs(e)||as(t)}o(ou,"hasMainScreenRenderScrollRisk");function m$(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}o(m$,"isTmuxControlModeEnvHeuristic");var ki;function Ka(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(m$(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(ki!==void 0||(ki=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return ki;try{let i=f$("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});i.status===0&&(ki=i.stdout.trim()==="1")}catch{ki=!1}return ki}o(Ka,"isTmuxControlMode");function Cp(){ki=void 0}o(Cp,"resetTmuxControlModeProbeForTesting");function co(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":Ka(e)?"tmux_control_mode":as(t)?"xtermjs_host":Va(e)?"remote_conpty_host":cs(e)?"degraded_vt":"native_vt"}o(co,"detectTerminalRenderHost");var lo=co;function ls(e={}){let t=e.env??process.env;if(Tp(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}o(ls,"resolveConfiguredTuiRendererMode");function uo(e={}){let t=ls(e);if(t==="legacy"||t==="owned")return t;let n=co(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}o(uo,"resolveEffectiveTuiRendererMode");function su(e={}){let t=e.env??process.env;if(Tp(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=ls({env:t});if(n==="legacy"||n==="owned")return"ink";let r=co(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}o(su,"resolveInteractiveSurfacePreference");var h$={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},cb={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function fo(e,t="owned",n={}){let r=n.env??process.env;return ab(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?cb:h$:g$(e,t)}o(fo,"resolveFullscreenPolicy");function g$(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 cb;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}o(g$,"buildFullscreenPolicy");function us(e,t={}){let n=t.rendererMode??"owned",r=fo(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(us,"getTerminalHostCapabilities");function au(e={}){return uo(e)==="owned"}o(au,"isOwnedRendererPreferred");function cu(e={}){let t=e.env??process.env;return Tp(t.KODAX_FORCE_CLASSIC_REPL)&&!ab(t.KODAX_FORCE_CLASSIC_REPL)}o(cu,"isClassicReplForced");var ds=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}},Ty=1,Cy=2,y$=1e3,lb;function vp(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return lb??=new Intl.Segmenter("en",{granularity:"grapheme"}),lb}o(vp,"getGraphemeSegmenter");function _n(e){if(!e)return 0;let t=vp();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}o(_n,"getCodePointLength");function Mr(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(Mr,"isWideChar");function _r(e){if(!e)return 0;let t=0,n=vp();if(n)for(let r of n.segment(e))t+=Mr(r.segment)?Cy:Ty;else for(let r of e)t+=Mr(r)?Cy:Ty;return t}o(_r,"getVisualWidth");function ub(e,t){if(!e||t<0)return"";let n=vp();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(ub,"getCharAtCodePoint");function In(e){if(!e)return[];let t=vp();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}o(In,"splitByCodePoints");function w$(e,t,n){return In(e).slice(t,n).join("")}o(w$,"sliceByCodePoints");function db(e,t){let n=Math.max(0,t),r=In(e),i=0,s=0;for(;i<r.length;){let a=Mr(r[i])?Cy:Ty;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(db,"splitAtVisualColumn");function za(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=In(e);for(let u of l){let f=Mr(u)?2:1;if(c+f>s)break;a+=u,c+=f}return n&&a.length<e.length&&(a+=r),a}o(za,"truncateByVisualWidth");var Ip=new ds(y$);function bp(e){let t=Ip.get(e);if(t!==void 0)return t;let n=_r(e);return Ip.set(e,n),n}o(bp,"getVisualWidthCached");function vn(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=In(l);for(;u<f.length;){let p="",h=0,m=u,g=-1;for(let T=u;T<f.length;T++){let x=f[T],C=Mr(x)?2:1;if(h+C>t){g>=0&&T-u>0?(p=f.slice(u,g).join(""),h=f.slice(u,g).reduce((b,A)=>b+(Mr(A)?2:1),0),m=g):p.length===0&&C>t&&(p=x,h=C,m=T+1);break}p+=x,h+=C,m=T+1,x===" "&&(g=T+1)}if(p.length>0||i.length===0){let T=u,x=i.length;i.push(p),s[c].push([x,T]),a.push([c,T])}u=m}}return{visualLines:i,logicalToVisualMap:s,visualToLogicalMap:a}}o(vn,"calculateVisualLayout");function Rp(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[m,g]of a)if(g<=s)c=[m,g];else break;let[l,u]=c??a[0],f=r[l]??"",p=Math.max(0,s-u),h=_r(w$(f,0,p));return[l,h]}o(Rp,"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"]}},Iy={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:Iy};function ue(e="dark"){return vy[e]??kp}o(ue,"getTheme");function S$(){return Object.keys(vy)}o(S$,"getThemeNames");import{jsx as Pn,jsxs as mr,Fragment as AD}from"react/jsx-runtime";import{useMemo as tm}from"react";import{jsx as K0}from"react/jsx-runtime";import{createContext as cD,useContext as Ss,useEffect as rc,useMemo as V0,useState as lD,useCallback as z0,useRef as Yp}from"react";import{Stream as B1}from"node:stream";import{openSync as F1,writeSync as P0}from"node:fs";import{performance as H1}from"node:perf_hooks";import{tmpdir as W1}from"node:os";import{join as j1}from"node:path";import by,{forwardRef as C$,useContext as I$}from"react";import{createContext as x$}from"react";var Xa=x$({isScreenReaderEnabled:!1});import{createContext as T$}from"react";var Ep=T$(void 0);var fb=C$(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":i,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=I$(Xa),u=n?by.createElement("ink-text",null,n):void 0;if(l&&r)return null;let f=by.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?by.createElement(Ep.Provider,{value:t},f):f});fb.displayName="Box";var pr=fb;import k$,{useContext as pb}from"react";import Ya from"chalk";import po from"chalk";var v$=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,b$=/^ansi256\(\s?(\d+)\s?\)$/;function R$(e){return e in po}o(R$,"isNamedColor");function Ar(e,t,n){if(!t)return e;if(R$(t)){let r=po;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"?po.hex(t)(e):po.bgHex(t)(e);if(t.startsWith("ansi256")){let r=b$.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?po.ansi256(i)(e):po.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=v$.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?po.rgb(i,s,a)(e):po.bgRgb(i,s,a)(e)}return e}o(Ar,"colorize");function An({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:h=!1}){let{isScreenReaderEnabled:m}=pb(Xa),g=pb(Ep),T=m&&f?f:u;if(T==null)return null;let x=o(C=>{let b=C;n&&(b=Ya.dim(b)),e&&(b=Ar(b,e,"foreground"));let A=t??g;return A&&(b=Ar(b,A,"background")),r&&(b=Ya.bold(b)),i&&(b=Ya.italic(b)),s&&(b=Ya.underline(b)),a&&(b=Ya.strikethrough(b)),c&&(b=Ya.inverse(b)),b},"transform");return m&&p?null:k$.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:x,...h?{internal_cursorAnchor:!0}:{}},m&&f?f:u)}o(An,"Text");import E$,{useLayoutEffect as M$,useMemo as mb,useState as _$}from"react";function Ry({items:e,children:t,style:n}){let[r,i]=_$(0),s=mb(()=>e.slice(r),[e,r]);M$(()=>{i(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=mb(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return E$.createElement("ink-box",{internal_static:!0,style:c},a)}o(Ry,"Static");import{writeSync as w1}from"node:fs";import ys from"node:process";import _0 from"react";import S1 from"es-toolkit/compat/throttle";import Ln from"ansi-escapes";import Oi from"is-in-ci";import x1 from"auto-bind";import{onExit as T1}from"signal-exit";import C1 from"patch-console";import{LegacyRoot as I1,ConcurrentRoot as v1}from"react-reconciler/constants.js";import b1 from"yoga-layout";import R1 from"wrap-ansi";import k1 from"terminal-size";import A$ from"node:process";var Mp=o(()=>A$.env.DEV==="true","isDev");import iN from"react-reconciler";import{DefaultEventPriority as oN,NoEventPriority as _b}from"react-reconciler/constants.js";import*as mo from"scheduler";import Rb from"yoga-layout";import{createContext as sN}from"react";import K$ from"yoga-layout";import L$ from"widest-line";var hb=new Map,P$=o(e=>{if(e.length===0)return{width:0,height:0};let t=hb.get(e);if(t)return t;let n=L$(e),r=e.split(`
|
|
3
|
+
`).length,i={width:n,height:r};return hb.set(e,i),i},"measureText"),ky=P$;import O$ from"wrap-ansi";import $$ from"cli-truncate";var gb={},N$=o((e,t,n)=>{let r=e+String(t)+String(n),i=gb[r];if(i)return i;let s=e;if(n==="wrap"&&(s=O$(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=$$(e,t,{position:a})}return gb[r]=s,s},"wrapText"),_p=N$;var D$=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),B$=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),F$=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),Sb=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),H$=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),xb=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),yb=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!D$(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!B$(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!F$(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),wb=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"),W$=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!Sb(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!H$(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),j$=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"),U$=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"),Ey=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(xb(t))return!0;return!1},"hasAnsiControlCharacters"),qa=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"),Tb=o(e=>{if(!Ey(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 qa(t,e,n,r);if(a==="["){let u=yb(e,r+2);if(u===void 0)return qa(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=j$(a);if(c!==void 0){let u=wb(e,r+2,c.allowBellTerminator);if(u===void 0)return qa(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=W$(e,r+1);if(l===void 0){if(Sb(a))return qa(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=yb(e,r+1);if(a===void 0)return qa(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=U$(i);if(s!==void 0){let a=wb(e,r+1,s.allowBellTerminator);if(a===void 0)return qa(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(xb(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 G$=/^[\d:;]*$/,V$=o(e=>{if(!Ey(e))return e;let t="";for(let n of Tb(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&G$.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),Cb=V$;var Ib=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=Ib(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return Cb(t)},"squashTextNodes"),lu=Ib;var Ap=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:K$.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(z$.bind(null,t)),t},"createNode"),Lp=o((e,t)=>{t.parentNode&&uu(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")&&Pp(e)},"appendChildNode"),My=o((e,t,n)=>{t.parentNode&&uu(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")&&Pp(e)},"insertBeforeNode"),uu=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")&&Pp(e)},"removeChildNode"),_y=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),Ay=o((e,t)=>{e.style=t},"setStyle"),vb=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return du(t,e),t},"createTextNode"),z$=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:lu(e),r=ky(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=_p(n,t,i);return ky(s)},"measureTextNode"),bb=o(e=>{if(e?.parentNode)return e.yogaNode??bb(e.parentNode)},"findClosestYogaNode"),Pp=o(e=>{bb(e)?.markDirty()},"markNodeAsDirty"),du=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Pp(e)},"setTextNodeValue");import ke from"yoga-layout";var Y$=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?ke.POSITION_TYPE_ABSOLUTE:ke.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(ke.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(ke.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(ke.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(ke.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),q$=o((e,t)=>{"margin"in t&&e.setMargin(ke.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(ke.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(ke.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(ke.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(ke.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(ke.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(ke.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),J$=o((e,t)=>{"padding"in t&&e.setPadding(ke.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(ke.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(ke.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(ke.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(ke.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(ke.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(ke.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),Q$=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(ke.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(ke.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(ke.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(ke.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(ke.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(ke.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(ke.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(ke.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(ke.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(ke.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(ke.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(ke.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(ke.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(ke.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(ke.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(ke.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(ke.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(ke.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(ke.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(ke.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(ke.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),Z$=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"),eN=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?ke.DISPLAY_FLEX:ke.DISPLAY_NONE)},"applyDisplayStyles"),tN=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(ke.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(ke.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(ke.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(ke.EDGE_RIGHT,n)}},"applyBorderStyles"),nN=o((e,t)=>{"gap"in t&&e.setGap(ke.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(ke.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(ke.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),rN=o((e,t={})=>{Y$(e,t),q$(e,t),J$(e,t),Q$(e,t),Z$(e,t),eN(e,t),tN(e,t),nN(e,t)},"styles"),Ly=rN;if(Mp())try{await import("./devtools-CD6KSIHE.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 kb=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"),Eb=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Op=_b,Py,Mb={name:void 0,version:void 0},Ei=iN({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=Ap(i);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){Ay(s,c),s.yogaNode&&Ly(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"){Py=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}_y(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 vb(e)},resetTextContent(){},hideTextInstance(e){du(e,"")},unhideTextInstance(e,t){du(e,t)},getPublicInstance:o(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(Rb.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(Rb.DISPLAY_FLEX)},appendInitialChild:Lp,appendChild:Lp,insertBefore:My,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:mo.unstable_scheduleCallback,cancelCallback:mo.unstable_cancelCallback,shouldYield:mo.unstable_shouldYield,now:mo.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:o(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:o(()=>null,"getInstanceFromScope"),appendChildToContainer:Lp,insertInContainerBefore:My,removeChildFromContainer(e,t){uu(e,t),Eb(t.yogaNode)},commitUpdate(e,t,n,r){Py&&e.internal_static&&(Py.isStaticDirty=!0);let i=kb(n,r),s=kb(n.style,r.style);if(!(!i&&!s)){if(i)for(let[a,c]of Object.entries(i)){if(a==="style"){Ay(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}_y(e,a,c)}s&&e.yogaNode&&Ly(e.yogaNode,s)}},commitTextUpdate(e,t,n){du(e,n)},removeChild(e,t){uu(e,t),Eb(t.yogaNode)},setCurrentUpdatePriority(e){Op=e},getCurrentUpdatePriority:o(()=>Op,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Op!==_b?Op:oN},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:sN(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:Mb.name,rendererVersion:Mb.version});import dN from"widest-line";import fN from"indent-string";import ho from"yoga-layout";import $p from"yoga-layout";var aN=o(e=>e.getComputedWidth()-e.getComputedPadding($p.EDGE_LEFT)-e.getComputedPadding($p.EDGE_RIGHT)-e.getComputedBorder($p.EDGE_LEFT)-e.getComputedBorder($p.EDGE_RIGHT),"getMaxWidth"),Ab=aN;import cN from"cli-boxes";import Np from"chalk";var lN=o((e,t,n,r)=>{if(n.style.borderStyle){let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?cN[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,h=n.style.borderBottomDimColor??n.style.borderDimColor,m=n.style.borderLeftDimColor??n.style.borderDimColor,g=n.style.borderRightDimColor??n.style.borderDimColor,T=n.style.borderTop!==!1,x=n.style.borderBottom!==!1,C=n.style.borderLeft!==!1,b=n.style.borderRight!==!1,A=i-(C?1:0)-(b?1:0),N=T?Ar((C?a.topLeft:"")+a.top.repeat(A)+(b?a.topRight:""),c,"foreground"):void 0;T&&p&&(N=Np.dim(N));let R=s;T&&(R-=1),x&&(R-=1);let E=(Ar(a.left,u,"foreground")+`
|
|
12
|
+
`).repeat(R);m&&(E=Np.dim(E));let P=(Ar(a.right,f,"foreground")+`
|
|
13
|
+
`).repeat(R);g&&(P=Np.dim(P));let B=x?Ar((C?a.bottomLeft:"")+a.bottom.repeat(A)+(b?a.bottomRight:""),l,"foreground"):void 0;x&&h&&(B=Np.dim(B));let $=T?1:0;N&&r.write(e,t,N,{transformers:[]}),C&&r.write(e,t+$,E,{transformers:[]}),b&&r.write(e+i-1,t+$,P,{transformers:[]}),B&&r.write(e,t+s-1,B,{transformers:[]})}},"renderBorder"),Lb=lN;var uN=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 h=Ar(" ".repeat(f),n.style.backgroundColor,"background");for(let m=0;m<p;m++)r.write(e+a,t+l+m,h,{transformers:[]})},"renderBackground"),Pb=uN;function Dp(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,h=Math.max(0,n-r),m=Math.max(0,Math.min(Math.floor(t),h)),T=s&&n>=i?h:m,x=a!==void 0||c!==void 0?Math.max(a??0,Math.min(T,Math.min(h,c??h))):T,C=l&&u!==void 0,b=Math.max(0,Math.floor(u??0)),A=l?C?b:0:x,N=C?A:x,R=null;if(f!==void 0&&f!==N&&r>0){let E=p+r-1;E>=p&&(R={top:p,bottom:E,delta:N-f})}return{scrollHeight:n,viewportTop:x,appliedScrollTop:N,scrollTop:x,scrollOffsetY:A,scrollHint:R}}o(Dp,"computeScrollState");var pN=o((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),i=n.getComputedTop();t=`
|
|
14
|
+
`.repeat(i)+fN(t,r)}return t},"applyPaddingToText"),Bp=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===ho.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=lu(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=>Bp(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"),Oy=null,$y=null;function Ob(){Oy=null,$y=null}o(Ob,"resetScrollHint");function $b(){return Oy}o($b,"getScrollHint");function Nb(){return $y}o(Nb,"getScrollRepaint");var Db=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()===ho.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 m=lu(e);if(m.length>0){let g=dN(m),T=Ab(c);if(g>T){let x=e.style.textWrap??"wrap";m=_p(m,T,x)}m=pN(e,m),t.write(l,u,m,{transformers:f})}return}let p=!1,h=0;if(e.nodeName==="ink-box"){Pb(l,u,e,t),Lb(l,u,e,t);let m=e.style.overflowX??e.style.overflow,g=e.style.overflowY??e.style.overflow,T=m==="hidden"||m==="scroll",x=g==="hidden"||g==="scroll";if(g==="scroll"){let C=c.getComputedBorder(ho.EDGE_TOP),b=c.getComputedBorder(ho.EDGE_BOTTOM),A=Math.max(0,c.getComputedHeight()-C-b),N=e.attributes?.virtualScrollWindowed===!0,R=e.childNodes[0],E=Math.max(0,Math.floor(N?e.attributes?.scrollHeight??0:R?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),P=typeof e.scrollHeight=="number"?e.scrollHeight:E,B=Dp({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:E,viewportHeight:A,previousScrollHeight:P,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:N,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+C});e.scrollHeight=B.scrollHeight,e.scrollViewportHeight=A,e.scrollViewportTop=B.viewportTop,e.appliedScrollTop=B.appliedScrollTop,B.scrollHint&&(Oy=B.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&($y={top:B.scrollHint.top,bottom:B.scrollHint.bottom})),e.attributes&&e.attributes.pendingScrollDelta&&(e.attributes.pendingScrollDelta=0),e.scrollTop=B.scrollTop,h=B.scrollOffsetY}if(T||x){let C=T?l+c.getComputedBorder(ho.EDGE_LEFT):void 0,b=T?l+c.getComputedWidth()-c.getComputedBorder(ho.EDGE_RIGHT):void 0,A=x?u+c.getComputedBorder(ho.EDGE_TOP):void 0,N=x?u+c.getComputedHeight()-c.getComputedBorder(ho.EDGE_BOTTOM):void 0;t.clip({x1:C,x2:b,y1:A,y2:N}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let m of e.childNodes)Db(m,t,{offsetX:l,offsetY:u-h,transformers:f,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),Ny=Db;import mN from"slice-ansi";import hN from"string-width";import{styledCharsFromTokens as gN,styledCharsToString as yN,tokenize as wN}from"@alcalzone/ansi-tokenize";var Dy=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=gN(wN(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=hN(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}},Ja=class{static{o(this,"Output")}width;height;operations=[];caches=new Dy;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",h=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let m=this.caches.getWidestLine(i);if(a+m<u.x1||a>u.x2)continue}if(h){let m=l.length;if(c+m<u.y1||c>u.y2)continue}if(p&&(l=l.map(m=>{let g=a<u.x1?u.x1-a:0,T=this.caches.getStringWidth(m),x=a+T>u.x2?u.x2-a:T;return mN(m,g,x)}),a<u.x1&&(a=u.x1)),h){let m=c<u.y1?u.y1-c:0,g=l.length,T=c+g>u.y2?u.y2-c:g;l=l.slice(m,T),c<u.y1&&(c=u.y1)}}let f=0;for(let[p,h]of l.entries()){let m=t[c+f];if(!m)continue;for(let x of s)h=x(h,p);let g=this.caches.getStyledChars(h),T=a;for(let x of g){m[T]=x;let C=Math.max(1,this.caches.getStringWidth(x.value));if(C>1)for(let b=1;b<C;b++)m[T+b]={type:"char",value:"",fullWidth:!1,styles:x.styles};T+=C}f++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let i=r.filter(s=>s!==void 0);return yN(i).trimEnd()}).join(`
|
|
18
|
+
`),height:t.length}}};var Jr={Single:0,Wide:1,SpacerTail:2},qr={char:" ",width:Jr.Single,style:"",hyperlink:void 0};function Bb(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(qr);return{width:e,height:t,cells:n}}o(Bb,"createScreen");function fs(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}o(fs,"cellAt");function Fb(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(qr),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(Fb,"createScreenBuilder");function*Fp(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=fs(e,s,i),c=fs(t,s,i);SN(a,c)||(yield{x:s,y:i,prev:a,next:c})}}o(Fp,"diffEach");function Hb(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]=qr},"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]??qr;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 h=0;h<a;h++)c[p*a+h]=e.cells[(p-f)*a+h]??qr;for(let p=i;p<=i+f-1;p++)u(p)}return{...e,cells:c}}o(Hb,"shiftRowsRegion");function SN(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(SN,"cellsEqual");var By="\x1B]8;";function xN(e){return e.endsWith("\x07")?e.slice(0,-1):e}o(xN,"stripOsc8Terminator");function TN(e){if(!e.startsWith(By))return;let t=e.slice(By.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),i=xN(r);return i.length>0?i:void 0}o(TN,"parseOsc8Url");function CN(e){if(e.value==="")return{char:"",width:Jr.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(By)){let i=TN(r.code);i!==void 0&&(n=i)}else t+=r.code;return{char:e.value,width:e.fullWidth?Jr.Wide:Jr.Single,style:t,hyperlink:n}}o(CN,"styledCharToCell");function Hp(e){let t=e.getGrid(),n=e.width,r=e.height,i=Fb(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=CN(f);p.char===qr.char&&p.width===qr.width&&p.style===qr.style&&p.hyperlink===qr.hyperlink||i.setCellAt(u,a,p)}}return i.build()}o(Hp,"outputToScreen");var IN=o((e,t,n)=>{if(e.yogaNode){if(t){let h=Bp(e,{skipStaticElements:!0}),m=h===""?0:h.split(`
|
|
19
|
+
`).length,g="";return e.staticNode&&(g=Bp(e.staticNode,{skipStaticElements:!1})),{output:h,outputHeight:m,staticOutput:g?`${g}
|
|
20
|
+
`:"",frame:void 0}}let r=new Ja({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});Ob(),Ny(e,r,{skipStaticElements:!0});let i;e.staticNode?.yogaNode&&(i=new Ja({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),Ny(e.staticNode,i,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Hp(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:$b(),scrollRepaint:Nb(),...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"),Fy=IN;function Xn(...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(Xn,"csi");function Wb(e=1){return e===0?"":Xn(e,"A")}o(Wb,"cursorUp");function vN(e=1){return e===0?"":Xn(e,"B")}o(vN,"cursorDown");function bN(e=1){return e===0?"":Xn(e,"C")}o(bN,"cursorForward");function RN(e=1){return e===0?"":Xn(e,"D")}o(RN,"cursorBack");function jb(e){return Xn(e,"G")}o(jb,"cursorTo");var kN=Xn("G"),Ub=Xn("H");function Gb(e,t){let n="";return e<0?n+=RN(-e):e>0&&(n+=bN(e)),t<0?n+=Wb(-t):t>0&&(n+=vN(t)),n}o(Gb,"cursorMove");var Hy=Xn(2,"K");function Vb(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=Hy,n<e-1&&(t+=Wb(1));return t+=kN,t}o(Vb,"eraseLines");var Kb=Xn("r"),zb="\x1B7",Xb="\x1B8";function Yb(e,t){return Xn(e,t,"r")}o(Yb,"setScrollRegion");function qb(e=1){return Xn(e,"S")}o(qb,"scrollUp");function Jb(e=1){return Xn(e,"T")}o(Jb,"scrollDown");var fu=Xn(0,"m");function Qb(e){return`\x1B]${e.join(";")}\x07`}o(Qb,"osc");function EN(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(EN,"osc8Id");function pu(e,t){if(!e)return Qa;let n={id:EN(e),...t??{}},r=Object.entries(n).map(([i,s])=>`${i}=${s}`).join(":");return Qb(["8",r,e])}o(pu,"link");var Qa=Qb(["8","",""]);function Wy(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=fs(t,c,s);!l||l.width===Jr.SpacerTail||(l.hyperlink!==i&&(i!==void 0&&(a+=Qa),l.hyperlink!==void 0&&(a+=pu(l.hyperlink)),i=l.hyperlink),l.style!==r&&(r!==""&&(a+=fu),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}i!==void 0&&(a+=Qa,i=void 0),r!==""&&(a+=fu,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
|
|
22
|
+
`)}]}o(Wy,"renderFullFrame");var MN=Object.freeze([]),_N=Object.freeze([]);function ps(e,t){if(e===t)return{patches:MN,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:fu}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}o(ps,"transitionStyle");function hu(e,t){let n=ps(e,t),r="";for(let i of n.patches)i.type==="stdout"&&(r+=i.content);return{str:r,current:n.current}}o(hu,"transitionStyleStr");function Mi(e,t){if(e===t)return{patches:_N,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:Qa}),t!==void 0&&n.push({type:"stdout",content:pu(t)}),{patches:n,current:t}}o(Mi,"transitionHyperlink");function Zb(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(Zb,"needsWidthCompensation");var ms=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}},_i={type:"carriageReturn"},mu={type:"stdout",content:`
|
|
23
|
+
`};function gu(e,t,n){let r=t.width===Jr.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&&Zb(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(gu,"writeCellWithStyleStr");function hs(e,t,n){e.txn(r=>{let i=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[_i,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:s!==0?[[_i,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:[[{type:"cursorMove",x:i,y:s}],{dx:i,dy:s}]})}o(hs,"moveCursorTo");function yu(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(h=>{let m=new Array(1+p);m[0]=_i;for(let g=0;g<p;g++)m[1+g]=mu;return[m,{dx:-h.x,dy:p}]})}for(let p=0;p<t.screen.width;p++){let h=fs(t.screen,p,c);if(!h||h.width===Jr.SpacerTail||h.char===" "&&h.style===""&&h.hyperlink===void 0)continue;hs(e,p,c);let m=Mi(a,h.hyperlink);for(let T of m.patches)e.txn(()=>[[T],{dx:0,dy:0}]);a=m.current;let g=hu(s,h.style);gu(e,h,g.str)&&(s=g.current)}let l=ps(s,"");for(let p of l.patches)e.txn(()=>[[p],{dx:0,dy:0}]);s=l.current;let u=Mi(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?[[_i],{dx:-p.x,dy:0}]:[[_i,mu],{dx:-p.x,dy:1}])}if(s!==""||a!==void 0){let c=ps(s,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);let l=Mi(a,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}])}}o(yu,"renderFrameSlice");function jy(e,t,n,r){let i=Math.max(0,Math.floor(n)),s=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(r));for(let a=i;a<=s;a++)AN(e,t,a)}o(jy,"repaintFrameRows");function AN(e,t,n){let r="",i;hs(e,0,n),e.txn(()=>[[{type:"stdout",content:Qa+fu},{type:"eraseLine"}],{dx:0,dy:0}]);for(let s=0;s<t.screen.width;s++){let a=fs(t.screen,s,n);if(!a||a.width===Jr.SpacerTail||a.char===" "&&a.style===""&&a.hyperlink===void 0)continue;hs(e,s,n);let c=Mi(i,a.hyperlink);for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);i=c.current;let l=hu(r,a.style);gu(e,a,l.str)&&(r=l.current)}for(let s of ps(r,"").patches)e.txn(()=>[[s],{dx:0,dy:0}]);for(let s of Mi(i,void 0).patches)e.txn(()=>[[s],{dx:0,dy:0}])}o(AN,"repaintFrameRow");function Uy(e,t){let n="";for(let r=0;r<e.width;r++){let i=fs(e,r,t);n+=i?.char??" "}return n.trimEnd()}o(Uy,"readLine");function Za(e,t,n=!1){let r=new ms({x:0,y:0},e.viewport.width);yu(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(Za,"fullResetSequence_CAUSES_FLICKER");function Wp(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(Wp,"computeViewportState");function e0(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=Wp(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 Fp(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(e0,"shouldFullReset");function t0(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}o(t0,"shouldSkipDiff");var jp=class{static{o(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return Wy(n);let i=r.inlineBottomAnchored??!1,s=n0(t,i),a=n0(n,i);if(r.altScreen===!0&&t.screen.height===0&&a.screen.height>0)return Za(a,"clear",i);let c=e0(s,a,Uy);if(c.reset)return Za(a,c.reason,i);if(a.scrollRepaint&&r.altScreen===!0)return LN(s,a,a.scrollRepaint);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:Hb(s.screen,l.top,l.bottom,l.delta)};return[u,...r0(f,a,i)]}return r0(s,a,i)}reset(){}};function Gy(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}o(Gy,"emitPatches");function Vy(e,t,n){if(t!==""){let r=ps(t,"");Gy(e,r.patches)}if(n!==void 0){let r=Mi(n,void 0);Gy(e,r.patches)}return{style:"",hyperlink:void 0}}o(Vy,"resetStyleAndHyperlink");function LN(e,t,n){let r=Wp(e,t),i=new ms(e.cursor,t.viewport.width);r.shrinking&&i0(i,e,t);let s=Math.max(0,Math.floor(n.top)),a=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(n.bottom)),c=a>=s?{top:s,bottom:a}:void 0;c&&jy(i,t,c.top,c.bottom);let l=o0(i,e,t,{...r,skipRows:c});return l.needsFullReset?Za(t,"offscreen"):(Vy(i,l.currentStyle,l.currentHyperlink),r.growing&&yu(i,t,e.screen.height,t.screen.height),s0(i,t),i.diff)}o(LN,"renderScrollRepaint");function i0(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(i0,"applyShrink");function o0(e,t,n,r){let i="",s,a=!1;for(let c of Fp(t.screen,n.screen)){let{x:l,y:u,prev:f,next:p}=c;if(r.growing&&u>=t.screen.height||r.skipRows&&u>=r.skipRows.top&&u<=r.skipRows.bottom)continue;let h=!!(p&&p.char===" "&&p.style===""&&p.hyperlink===void 0);if(!t0(f,p,h)){if(u<r.viewportY){a=!0;break}if(hs(e,l,u),p){let m=Mi(s,p.hyperlink);Gy(e,m.patches),s=m.current;let g=hu(i,p.style);gu(e,p,g.str)&&(i=g.current)}else if(f){let m=Vy(e,i,s);i=m.style,s=m.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:i,currentHyperlink:s,needsFullReset:a}}o(o0,"diffPass");function n0(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(n0,"clampRestingCursor");function s0(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]=_i;for(let a=0;a<r;a++)s[1+a]=mu;return[s,{dx:-n.x,dy:r}]}let i=t.cursor.y-n.y;return i!==0||n.x!==t.cursor.x?[[_i,{type:"cursorMove",x:t.cursor.x,y:i}],{dx:t.cursor.x-n.x,dy:i}]:[[],{dx:0,dy:0}]}):hs(e,t.cursor.x,t.cursor.y)}o(s0,"restoreCursor");function r0(e,t,n=!1){let r=Wp(e,t),i=new ms(e.cursor,t.viewport.width);r.shrinking&&i0(i,e,t);let s=o0(i,e,t,r);return s.needsFullReset?Za(t,"offscreen",n):(Vy(i,s.currentStyle,s.currentHyperlink),r.growing&&yu(i,t,e.screen.height,t.screen.height,n),s0(i,t),i.diff)}o(r0,"renderIncremental");var PN="\x1B[?25l",ON="\x1B[?25h",$N=`\x1B[2J${Ub}`,NN="\x1B[?2026h",DN="\x1B[?2026l";function BN(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return PN;case"cursorShow":return ON;case"cursorMove":return Gb(e.x,e.y);case"cursorTo":return jb(e.col);case"eraseLine":return Hy;case"clear":return Vb(e.count);case"clearTerminal":return $N;case"hyperlink":return pu(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,r=Math.abs(e.delta),i=e.delta>0?qb(r):Jb(r);return zb+Yb(t,n)+i+Kb+Xb}}}o(BN,"patchToBytes");function Up(e,t,n=!1){let r="",i=!1;for(let s of t)s.type==="clearTerminal"&&(i=!0),r+=BN(s);if(r.length!==0){if(n&&i){e.write(NN+r+DN);return}e.write(r)}}o(Up,"applyDiff");function a0(e,t,n={}){if(t===void 0)return!1;let r=e.cellLogUpdate.render(e.prevFrame,t,n);return Up(e.stdout,r,n.synchronized??!1),e.prevFrame=t,!0}o(a0,"applyCellFrame");function wu(e,t){return{screen:Bb(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}o(wu,"emptyFrame");import FN from"is-in-ci";var Ai="\x1B[?2026h",Qr="\x1B[?2026l";function Li(e){return"isTTY"in e&&e.isTTY===!0&&!FN}o(Li,"shouldSynchronize");var HN="\x1B[?1049h",WN="\x1B[?1049l";var jN="\x1B[2J",UN="\x1B[?1000h\x1B[?1002h\x1B[?1006h",GN="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function Gp(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return HN+(n?jN:"")+"\x1B[H"+(t?UN:"")}o(Gp,"buildAlternateScreenEnterSequence");function ec(e={}){return(e.mouseTracking!==!1?GN:"")+WN}o(ec,"buildAlternateScreenExitSequence");var VN=new WeakMap,c0=VN;import{EventEmitter as d1}from"node:events";import f1 from"node:process";import gs,{useState as Xy,useRef as tc,useCallback as Ot,useMemo as nc,useEffect as R0}from"react";import p1 from"cli-cursor";var KN=o(e=>e>=48&&e<=63,"isCsiParameterByte"),zN=o(e=>e>=32&&e<=47,"isCsiIntermediateByte"),u0=o(e=>e>=64&&e<=126,"isCsiFinalByte");function XN(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(!(KN(s)||zN(s))&&!(s===91&&i===r))return u0(s)?{sequence:e.slice(t,i+1),nextIndex:i+1}:void 0}return"pending"}o(XN,"parseCsiSequence");function YN(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let i=e.codePointAt(r-1);if(!(i===void 0||!u0(i)))return{sequence:e.slice(t,r),nextIndex:r}}o(YN,"parseSs3Sequence");function l0(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return XN(e,t,n);if(r==="O")return YN(e,t,n)}o(l0,"parseControlSequence");function qN(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(qN,"parseEscapedCodePoint");function JN(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=l0(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=l0(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=qN(e,i);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}o(JN,"parseKeypresses");function Vp(){let e="";return{push(t){let n=JN(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(Vp,"createInputParser");import{createContext as QN}from"react";var d0=QN({exit(){}});d0.displayName="InternalAppContext";var f0=d0;import{EventEmitter as ZN}from"node:events";import{createContext as e1}from"react";var t1={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},p0=e1({stdin:t1,internal_eventEmitter:new ZN,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});p0.displayName="InternalStdinContext";var m0=p0;import{createContext as n1}from"react";var r1={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},h0=n1({stdout:r1,write(){}});h0.displayName="InternalStdoutContext";var g0=h0;import{createContext as i1}from"react";var o1={isTTY:!1,write(){return!0},on(){},off(){}},y0=i1({stderr:o1,write(){}});y0.displayName="InternalStderrContext";var w0=y0;import{createContext as s1}from"react";var S0=s1({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});S0.displayName="InternalFocusContext";var x0=S0;import{createContext as a1}from"react";var T0=a1({setCursorPosition(){}});T0.displayName="InternalCursorContext";var C0=T0;import l1,{PureComponent as u1}from"react";import*as Kp from"node:fs";import{cwd as b0}from"node:process";import Wt from"react";import I0 from"stack-utils";import c1 from"code-excerpt";var Ky=o(e=>e?.replace(`file://${b0()}/`,""),"cleanupPath"),v0=new I0({cwd:b0(),internals:I0.nodeInternals()});function zy({error:e}){let t=e.stack?e.stack.split(`
|
|
24
|
+
`).slice(1):void 0,n=t?v0.parseLine(t[0]):void 0,r=Ky(n?.file),i,s=0;if(r&&n?.line&&Kp.existsSync(r)){let a=Kp.readFileSync(r,"utf8");if(i=c1(a,n.line),i)for(let{line:c}of i)s=Math.max(s,String(c).length)}return Wt.createElement(pr,{flexDirection:"column",padding:1},Wt.createElement(pr,null,Wt.createElement(An,{backgroundColor:"red",color:"white"}," ","ERROR"," "),Wt.createElement(An,null," ",e.message)),n&&r&&Wt.createElement(pr,{marginTop:1},Wt.createElement(An,{dimColor:!0},r,":",n.line,":",n.column)),n&&i&&Wt.createElement(pr,{marginTop:1,flexDirection:"column"},i.map(({line:a,value:c})=>Wt.createElement(pr,{key:a},Wt.createElement(pr,{width:s+1},Wt.createElement(An,{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," "),":")),Wt.createElement(An,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&Wt.createElement(pr,{marginTop:1,flexDirection:"column"},e.stack.split(`
|
|
25
|
+
`).slice(1).map(a=>{let c=v0.parseLine(a);return c?Wt.createElement(pr,{key:a},Wt.createElement(An,{dimColor:!0},"- "),Wt.createElement(An,{dimColor:!0,bold:!0},c.function),Wt.createElement(An,{dimColor:!0,color:"gray","aria-label":`at ${Ky(c.file)??""} line ${c.line} column ${c.column}`}," ","(",Ky(c.file)??"",":",c.line,":",c.column,")")):Wt.createElement(pr,{key:a},Wt.createElement(An,{dimColor:!0},"- "),Wt.createElement(An,{dimColor:!0,bold:!0},a,"\\t"," "))})))}o(zy,"ErrorOverview");var Su=class extends u1{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?l1.createElement(zy,{error:this.state.error}):this.props.children}};var m1=" ",h1="\x1B[Z",g1="\x1B";function k0({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:i,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,f]=Xy(!0),[p,h]=Xy(void 0),[,m]=Xy([]),g=tc(0),T=tc(0),x=tc(new d1);x.current.setMaxListeners(1/0);let C=tc(void 0),b=tc(Vp()),A=tc(void 0),N=Ot(()=>{A.current&&(clearImmediate(A.current),A.current=void 0)},[]),R=t.isTTY,E=Ot(()=>{C.current&&(t.removeListener("readable",C.current),C.current=void 0)},[t]),P=Ot(()=>{t.setRawMode(!1),E(),t.unref(),T.current=0,b.current.reset(),N()},[t,E,N]),B=Ot(he=>{R&&T.current>0&&P(),c(he)},[R,P,c]),$=Ot(he=>{if(he===""&&a){B();return}he===g1&&h(ve=>ve&&void 0)},[a,B]),V=Ot(he=>{$(he),x.current.emit("input",he)},[$]),ne=Ot(()=>{N(),A.current=setImmediate(()=>{A.current=void 0;let he=b.current.flushPendingEscape();he&&V(he)})},[N,V]),z=Ot(()=>{N();let he;for(;(he=t.read())!==null;){let ve=b.current.push(he);for(let G of ve)V(G)}b.current.hasPendingEscape()&&ne()},[t,V,N,ne]),y=Ot(he=>{if(!R)throw t===f1.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"),he){T.current===0&&(t.ref(),t.setRawMode(!0),C.current=z,t.addListener("readable",z)),T.current++;return}T.current!==0&&--T.current===0&&P()},[R,t,z,P]),_=Ot((he,ve)=>{let G=he.findIndex(je=>je.id===ve);for(let je=G+1;je<he.length;je++){let xt=he[je];if(xt?.isActive)return xt.id}},[]),ee=Ot((he,ve)=>{let G=he.findIndex(je=>je.id===ve);for(let je=G-1;je>=0;je--){let xt=he[je];if(xt?.isActive)return xt.id}},[]),j=Ot(()=>{m(he=>(h(ve=>{let G=he.find(xt=>xt.isActive)?.id;return _(he,ve)??G}),he))},[_]),de=Ot(()=>{m(he=>(h(ve=>{let G=he.findLast(xt=>xt.isActive)?.id;return ee(he,ve)??G}),he))},[ee]);R0(()=>{let he=o(G=>{!u||g.current===0||(G===m1&&j(),G===h1&&de())},"handleTabNavigation");x.current.on("input",he);let ve=x.current;return()=>{ve.off("input",he)}},[u,j,de]);let pe=Ot(()=>{f(!0)},[]),ge=Ot(()=>{f(!1)},[]),Me=Ot(he=>{m(ve=>(ve.some(je=>je?.id===he)&&h(he),ve))},[]),Ee=Ot((he,{autoFocus:ve})=>{m(G=>(g.current=G.length+1,[...G,{id:he,isActive:!0}])),ve&&h(G=>G??he)},[]),ie=Ot(he=>{h(ve=>ve===he?void 0:ve),m(ve=>{let G=ve.filter(je=>je.id!==he);return g.current=G.length,G})},[]),be=Ot(he=>{m(ve=>ve.map(G=>G.id!==he?G:{id:he,isActive:!0}))},[]),te=Ot(he=>{h(ve=>ve===he?void 0:ve),m(ve=>ve.map(G=>G.id!==he?G:{id:he,isActive:!1}))},[]);R0(()=>()=>{p1.show(n),R&&T.current>0&&P()},[n,R,P]);let se=nc(()=>({exit:B}),[B]),Ie=nc(()=>({stdin:t,setRawMode:y,isRawModeSupported:R,internal_exitOnCtrlC:a,internal_eventEmitter:x.current}),[t,y,R,a]),ot=nc(()=>({stdout:n,write:i}),[n,i]),Rt=nc(()=>({stderr:r,write:s}),[r,s]),Xe=nc(()=>({setCursorPosition:l}),[l]),Ke=nc(()=>({activeId:p,add:Ee,remove:ie,activate:be,deactivate:te,enableFocus:pe,disableFocus:ge,focusNext:j,focusPrevious:de,focus:Me}),[p,Ee,ie,be,te,pe,ge,j,de,Me]);return gs.createElement(f0.Provider,{value:se},gs.createElement(m0.Provider,{value:Ie},gs.createElement(g0.Provider,{value:ot},gs.createElement(w0.Provider,{value:Rt},gs.createElement(x0.Provider,{value:Ke},gs.createElement(C0.Provider,{value:Xe},gs.createElement(Su,{onError:B},e)))))))}o(k0,"App");k0.displayName="InternalApp";var E0=k0;var y1={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function M0(e){let t=0;for(let n of e)t|=y1[n];return t}o(M0,"resolveFlags");var Pi={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var Yy=o((e,t)=>(t<0?Ln.cursorUp(-t):t>0?Ln.cursorDown(t):"")+(e<0?Ln.cursorBackward(-e):e>0?Ln.cursorForward(e):""),"cursorMoveSeq"),qy=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"),zp=o(()=>{},"noop"),E1=27,M1=91,_1=63,A1=117,L1=48,P1=57,O1=o(e=>e>=L1&&e<=P1,"isDigitByte"),A0=o((e,t)=>{if(e[t]!==E1||e[t+1]!==M1||e[t+2]!==_1)return;let n=t+3,r=n;for(;n<e.length&&O1(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===A1)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),$1=o(e=>{for(let t=0;t<e.length;t++)if(A0(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),N1=o(e=>{let t=[],n=0;for(;n<e.length;){let r=A0(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),Jy=o(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),D1=class{static{o(this,"Ink")}isConcurrent;options;cursorPosition;isScreenReaderEnabled;isUnmounted;isUnmounting;lastOutput;lastOutputToRender;lastOutputHeight;lastTerminalWidth;container;rootNode;fullStaticOutput;exitPromise;exitResult;beforeExitHandler;restoreConsole;restoreStreamWriteGuard;rawStdoutWrite;rawStderrWrite;internalStreamWriteDepth=0;unsubscribeResize;throttledOnRender;hasPendingThrottledRender=!1;kittyProtocolEnabled=!1;cancelKittyDetection;terminalExitGuard;altScreenActive=!1;shellMode;mouseTrackingActive=!1;shellTransitionPhase=void 0;cursorHidden=!1;constructor(t){x1(this),this.options=t,this.rawStdoutWrite=t.stdout.write.bind(t.stdout),this.rawStderrWrite=t.stderr.write.bind(t.stderr),this.rootNode=Ap("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??ys.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=S1(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 jp({isTTY:!!t.stdout.isTTY}),this.prevFrame=wu(t.stdout.rows??24,t.stdout.columns??80),this.cursorPosition=void 0,this.isUnmounted=!1,this.isUnmounting=!1,this.installExternalStreamWriteGuard(),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?v1:I1;this.container=Ei.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=T1(this.unmount,{alwaysLast:!1}),Mp()&&Ei.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),Oi||(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:k1()?.columns??80,"getTerminalWidth");resized=o(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){this.returnCursorToRest();let n=this.altScreenActive?this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();n.length>0&&this.writeStdout(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=wu(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(Jy(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(){}registerTerminalExitGuard(t){return this.terminalExitGuard=t,()=>{this.terminalExitGuard===t&&(this.terminalExitGuard=void 0)}}installExternalStreamWriteGuard(){if(this.options.debug||Oi)return;let t=this.options.stdout,n=this.options.stderr,r=t.write,i=n.write,s=o((...c)=>{let l=this.rawStdoutWrite(...c);return this.internalStreamWriteDepth===0&&this.handleExternalStreamWrite(),l},"guardedStdoutWrite"),a=o((...c)=>{let l=this.rawStderrWrite(...c);return this.internalStreamWriteDepth===0&&this.handleExternalStreamWrite(),l},"guardedStderrWrite");t.write=s,n.write=a,this.restoreStreamWriteGuard=()=>{t.write===s&&(t.write=r),n.write===a&&(n.write=i)}}handleExternalStreamWrite(){this.isUnmounted||this.invalidateCellFrame()}withInternalStreamWrite(t){this.internalStreamWriteDepth+=1;try{return t()}finally{this.internalStreamWriteDepth-=1}}writeStdout(t,...n){return this.withInternalStreamWrite(()=>this.rawStdoutWrite(t,...n))}writeStderr(t,...n){return this.withInternalStreamWrite(()=>this.rawStderrWrite(t,...n))}restoreLastOutput=o(()=>{if(this.prevFrame.screen.height===0)return;let t=wu(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);this.withInternalStreamWrite(()=>Up(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,b1.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}=Fy(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t}),!Oi&&!this.options.debug&&!this.isScreenReaderEnabled&&!this.cursorHidden&&(this.writeStdout(Ln.cursorHide),this.cursorHidden=!0);let c=s&&s!==`
|
|
28
|
+
`;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.writeStdout(this.fullStaticOutput+r);return}if(Oi){c&&this.writeStdout(s),this.lastOutput=r,this.lastOutputToRender=r+`
|
|
29
|
+
`,this.lastOutputHeight=i;return}if(this.isScreenReaderEnabled){let x=Li(this.options.stdout);if(x&&this.writeStdout(Ai),c){let A=this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"";this.writeStdout(A+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){x&&this.writeStdout(Qr);return}let C=this.getTerminalWidth(),b=R1(r,C,{trim:!1,hard:!0});if(c)this.writeStdout(b);else{let A=this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"";this.writeStdout(A+b)}this.lastOutput=r,this.lastOutputToRender=b,this.lastOutputHeight=b===""?0:b.split(`
|
|
30
|
+
`).length,x&&this.writeStdout(Qr);return}c&&(this.fullStaticOutput+=s);let u=!this.altScreenActive&&!!(a&&a.inputCursor)?[]:null,f=o(x=>{x&&(u?u.push(x):this.writeStdout(x))},"emit"),p=u?{write:f}:null;f(this.computeReturnToRestSeq());let h=this.altScreenActive,g=this.options.stdout.isTTY&&i>=this.options.stdout.rows&&h?r:r+`
|
|
31
|
+
`;if(this.lastOutputHeight>=this.options.stdout.rows&&h){if(ys.env.KODAX_FULLSCREEN_CELLDIFF!=="0"&&this.altScreenActive&&this.fullStaticOutput===""){let b=Li(this.options.stdout);b&&this.writeStdout(Ai),this.applyCellFrame(a),b&&this.writeStdout(Qr),this.lastOutput=r,this.lastOutputToRender=g,this.lastOutputHeight=i;return}let x=Li(this.options.stdout);x&&this.writeStdout(Ai);let C=this.fullStaticOutput+g;if(this.altScreenActive){let b=this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"";this.writeStdout(b+C)}else this.writeStdout(Ln.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?C:g,this.lastOutputHeight=i,this.invalidateCellFrame(),x&&this.writeStdout(Qr);return}let T=!u&&Li(this.options.stdout);try{if(c?(T&&f(Ai),f(this.eraseInlineLiveBlock()+s),this.invalidateCellFrame(),this.applyCellFrame(a,p),T&&f(Qr)):!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?(T&&f(Ai),f(this.eraseInlineLiveBlock()),this.invalidateCellFrame(),this.applyCellFrame(a,p),T&&f(Qr)):this.applyCellFrame(a,p),a?.inputCursor){let x=qy(a,!this.altScreenActive),C=x(a.cursor),b=x(a.inputCursor),A=Yy(b.x-C.x,b.y-C.y);f(A),this.displayCursor=b}}finally{u&&this.flushCursorTxn(u)}this.lastOutput=r,this.lastOutputToRender=g,this.lastOutputHeight=i},"onRender");applyCellFrame=o((t,n=null)=>{let r={cellLogUpdate:this.cellLogUpdate,prevFrame:this.prevFrame,stdout:n??this.options.stdout},i=Li(this.options.stdout),s={altScreen:this.altScreenActive,decstbmSafe:i,synchronized:n?!1:i,inlineBottomAnchored:!this.altScreenActive},a=this.withInternalStreamWrite(()=>a0(r,t,s));return this.prevFrame=r.prevFrame,a},"applyCellFrame");invalidateCellFrame=o(()=>{this.cellLogUpdate.reset(),this.prevFrame=wu(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");eraseInlineLiveBlock=o(()=>this.lastOutputHeight>0?Ln.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}=Fy(this.rootNode,this.isScreenReaderEnabled,c);if(this.applyCellFrame(f,s),f?.inputCursor){let p=qy(f,!this.altScreenActive),h=p(f.cursor),m=p(f.inputCursor),g=Yy(m.x-h.x,m.y-h.y);i(g),this.displayCursor=m}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=Li(this.options.stdout);this.writeStdout(r?Ai+n+Qr:n)}render(t){let n=_0.createElement(Xa.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},_0.createElement(E0,{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?Ei.updateContainer(n,this.container,null,zp):(Ei.updateContainerSync(n,this.container,null,zp),Ei.flushSyncWork())}computeReturnToRestSeq(){if(this.displayCursor&&this.prevFrame){let t=qy(this.prevFrame,!this.altScreenActive)(this.prevFrame.cursor),n=Yy(t.x-this.displayCursor.x,t.y-this.displayCursor.y);return this.displayCursor=null,n}return""}returnCursorToRest(){let t=this.computeReturnToRestSeq();t&&this.writeStdout(t)}writeToStdout(t){if(this.isUnmounted)return;if(this.options.debug){this.writeStdout(t+this.fullStaticOutput+this.lastOutput);return}if(Oi){this.writeStdout(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStdout(t),this.invalidateCellFrame();return}let n=Li(this.options.stdout);n&&this.writeStdout(Ai),this.returnCursorToRest();let r=this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"";this.writeStdout(r+t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(Qr)}writeToStderr(t){if(this.isUnmounted)return;if(this.options.debug){this.writeStderr(t),this.writeStdout(this.fullStaticOutput+this.lastOutput);return}if(Oi){this.writeStderr(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStderr(t),this.invalidateCellFrame();return}let n=Li(this.options.stdout);n&&this.writeStdout(Ai),this.returnCursorToRest();let r=this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"";r.length>0&&this.writeStdout(r),this.writeStderr(t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(Qr)}restoreTrackedTerminalMode(){if(!this.altScreenActive)return;let t=ec({mouseTracking:this.mouseTrackingActive});try{typeof this.options.stdout.fd=="number"?w1(this.options.stdout.fd,t):this.rawStdoutWrite(t)}finally{this.altScreenActive=!1,this.mouseTrackingActive=!1,this.shellTransitionPhase=void 0}}restoreManagedTerminal(){let t=[],n=this.terminalExitGuard;this.terminalExitGuard=void 0;try{n?.()}catch(r){t.push(r)}try{this.restoreTrackedTerminalMode()}catch(r){t.push(r)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Terminal restoration failed")}fenceRendererAfterUnmountFailure(){this.isUnmounted=!0,this.hasPendingThrottledRender=!1,typeof this.throttledOnRender?.cancel=="function"&&this.throttledOnRender.cancel()}unmount(t){try{this.unmountUnsafe(t)}catch(n){this.fenceRendererAfterUnmountFailure();try{this.restoreManagedTerminal()}catch(r){throw new AggregateError([n,r],"Renderer unmount and terminal restoration both failed")}throw n}this.restoreManagedTerminal()}unmountUnsafe(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(ys.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.restoreStreamWriteGuard=="function"&&(this.restoreStreamWriteGuard(),this.restoreStreamWriteGuard=void 0),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),this.cancelKittyDetection&&this.cancelKittyDetection(),r){if(this.kittyProtocolEnabled)try{this.writeStdout("\x1B[<u")}catch{}Oi&&this.writeStdout(this.lastOutput+`
|
|
32
|
+
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?Ei.updateContainer(null,this.container,null,zp):(Ei.updateContainerSync(null,this.container,null,zp),Ei.flushSyncWork()),c0.delete(this.options.stdout);let{exitResult:s}=this,a=o(()=>{Jy(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!Jy(t),l=n._writableState!==void 0||n.writableLength!==void 0;c?a():r&&l?this.writeStdout("",a):setImmediate(a)}async waitUntilExit(){return this.exitPromise||=new Promise((t,n)=>{this.resolveExitPromise=t,this.rejectExitPromise=n}),this.beforeExitHandler||(this.beforeExitHandler=()=>{this.unmount()},ys.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!Oi&&!this.options.debug){this.returnCursorToRest();let t=this.altScreenActive?this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();t.length>0&&this.writeStdout(t),this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.invalidateCellFrame()}}patchConsole(){this.options.debug||(this.restoreConsole=C1((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=ys.env.TERM??"",s=ys.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in ys.env||i==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!Oi&&a&&this.confirmKittySupport(r)}confirmKittySupport(t){let{stdin:n}=this.options,r=[],i=o(()=>{this.cancelKittyDetection=void 0,clearTimeout(a),n.removeListener("data",s);let c=N1(r);r=[],c.length>0&&n.unshift(Buffer.from(c))},"cleanup"),s=o(c=>{let l=typeof c=="string"?Buffer.from(c):c;for(let u of l)r.push(u);$1(r)&&(i(),this.isUnmounted||this.enableKittyProtocol(t))},"onData");n.on("data",s);let a=setTimeout(i,200);this.cancelKittyDetection=i,this.writeStdout("\x1B[?u")}enableKittyProtocol(t){this.writeStdout(`\x1B[>${M0(t)}u`),this.kittyProtocolEnabled=!0}},L0=D1;var xu=class{static{o(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new L0(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");registerTerminalExitGuard=o(t=>this.engineInstance.registerTerminalExitGuard?.(t)??(()=>{}),"registerTerminalExitGuard");commitInlineScrollback=o(t=>{this.engineInstance.commitInlineScrollback?.(t)},"commitInlineScrollback")};var go=null;function O0(){if(go===-1)return null;if(go!==null)return go;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return go=-1,null;let t=e==="1"||e==="true"?j1(W1(),`kodax-render-trace-${process.pid}.log`):e;try{return go=F1(t,"a"),P0(go,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
|
|
33
|
+
`),go}catch{return go=-1,null}}o(O0,"resolveTraceFd");function U1(e){let t=O0();if(t!==null)try{P0(t,e)}catch{}}o(U1,"traceLine");var Xp=new WeakMap,G1={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},V1={isTTY:!1,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},K1={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function z1(e={}){return e instanceof B1?{stdout:e}:e}o(z1,"getOptions");function X1(e,t,n){let r=Xp.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(),Xp.set(e,r)),r}o(X1,"getInstance");function ws(e){return Xp.get(e)}o(ws,"getRendererInstance");function Qy(e,t){let n={stdout:G1,stdin:K1,stderr:V1,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...z1(t)};if(O0()!==null){let s=n.stdout,a=s.write.bind(s),c=0,l=0;s.write=((h,...m)=>(c+=1,l+=typeof h=="string"?Buffer.byteLength(h,"utf8"):h?.length??0,a(h,...m)));let u=0,f=0,p=n.onRender;n.onRender=h=>{let m=H1.now(),g=u===0?0:m-u,T=s,x=T.columns??0,C=T.rows??0;return U1(`frame=${f} renderTime=${h.renderTime.toFixed(2)}ms interval=${g.toFixed(2)}ms writes=${c} bytes=${l} viewport=${x}x${C}
|
|
34
|
+
`),c=0,l=0,u=m,f+=1,p?.(h)}}let i=X1(n.stdout,()=>new xu(n),n.concurrent??!1);return i.render(e),{rerender:i.render,unmount(){i.unmount()},waitUntilExit:i.waitUntilExit,cleanup:o(()=>{Xp.delete(n.stdout)},"cleanup"),clear:i.clear}}o(Qy,"render");var $0=pr,N0=An,D0=Ry;import{Buffer as q1}from"node:buffer";var J1=/^(?:\x1b)([a-zA-Z0-9])$/,Q1=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,F0={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"},H0=[...Object.values(F0),"backspace"],Z1=o(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),eD=o(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),W0=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,tD=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,nD={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},rD={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"},B0={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"},j0=o(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),Zy=o(e=>j0(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function U0(e){return e===3?"release":e===2?"repeat":"press"}o(U0,"resolveEventType");function G0(e){return{ctrl:!!(e&Pi.ctrl),shift:!!(e&Pi.shift),meta:!!(e&Pi.meta),option:!!(e&Pi.alt),super:!!(e&Pi.super),hyper:!!(e&Pi.hyper),capsLock:!!(e&Pi.capsLock),numLock:!!(e&Pi.numLock)}}o(G0,"parseKittyModifiers");function iD(e){let t=W0.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(!j0(n))return null;let a;s&&(a=s.split(":").map(u=>Zy(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):B0[n]?(c=B0[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=Zy(n).toLowerCase(),l=!0),l&&!a&&(a=Zy(n)),{name:c,...G0(r),eventType:U0(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}o(iD,"parseKittyKeypress");function oD(e){let t=tD.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==="~"?rD[n]:nD[s];return a?{name:a,...G0(r),eventType:U0(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}o(oD,"parseKittySpecialKey");var ew="\x1B[200~",sD="\x1B[201~";function aD(e){if(!e.startsWith(ew))return null;let t=e.indexOf(sD,ew.length);return t===-1?null:e.slice(ew.length,t)}o(aD,"extractBracketedPaste");function tw(e=""){let t=e,n;if(q1.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=aD(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=iD(t);if(r)return r;let i=oD(t);if(i)return i;if(W0.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=J1.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=Q1.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=F0[c]??"",s.shift=Z1(c)||s.shift,s.ctrl=eD(c)||s.ctrl}return s}o(tw,"parseKeypress");var uD=50;function qp(e){return{columns:e?.columns??80,rows:e?.rows??24}}o(qp,"resolveTerminalSize");var yo=cD(null),nw={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")};var X0={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function dD(e){for(let t of e)if(t.rawMode)return!0;return!1}o(dD,"hasRawModeSubscribers");function fD({stdin:e,setRawMode:t,isRawModeSupported:n}){let r=new Set,i,s=!1,a=!1,c=o(p=>{for(let h of r)h.listener(p)},"handleData"),l=o(()=>{if(a){try{t(!1)}catch{}a=!1}},"disableRawModeIfOwned"),u=o(()=>{let p=i;p?.off?.("data",c),l(),s&&(p?.unref?.(),s=!1),i=void 0},"detachInput"),f=o(()=>{if(i&&i!==e&&u(),!e||r.size===0){u();return}if(i!==e&&(e.hasRef?.()!==!0&&typeof e.ref=="function"&&(e.ref(),s=!0),e.on?.("data",c),e.resume?.(),i=e),!(n&&dD(r))){l();return}if(e.isRaw===!1&&!a)try{t(!0),a=!0}catch{a=!1}},"syncInputOwnership");return{subscribe(p,h={}){let m={listener:p,rawMode:h.rawMode!==!1};return r.add(m),f(),()=>{r.delete(m),f()}},dispose(){r.clear(),u()}}}o(fD,"createTerminalInputController");var pD=o(({children:e,runtime:t})=>{let[n,r]=lD(()=>t.terminalSize);rc(()=>{if(r(qp(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=o(()=>{r(qp(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let i=z0(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=V0(()=>fD({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);rc(()=>()=>{s.dispose()},[s]);let a=V0(()=>({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 K0(yo.Provider,{value:a,children:e})},"TuiRuntimeProvider");function mD(e){let t=e?.stdout??nw,n=e?.stdin??X0,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:qp(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(mD,"createRuntimeValue");function ic(e,t){let n=mD(t),r=Qy(K0(pD,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}o(ic,"render");var M=$0,k=N0,oc=D0;function hD(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&&H0.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(hD,"createCompatKeypress");function sc(e,t={}){let{isActive:n=!0}=t,r=Yp(e),i=Yp(null),s=Yp(null);rc(()=>{r.current=e},[e]),rc(()=>{if(!n){i.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return i.current=Vp(),()=>{i.current?.reset(),i.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=z0(c=>{let{input:l,key:u}=hD(tw(c));r.current(l,u)},[]);Cu(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)},uD))},{isActive:n,rawMode:!0})}o(sc,"useInput");function Zr(){return{stdout:Ss(yo)?.stdout??nw}}o(Zr,"useStdout");function Tu(){let e=Ss(yo),t=e?.stdin??X0,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}o(Tu,"useStdin");function ei(){return{exit:Ss(yo)?.exit??(()=>{})}}o(ei,"useApp");function ac(){return Ss(yo)?.stdout??nw}o(ac,"useTerminalOutput");function cc(){let e=ac();return Ss(yo)?.terminalSize??qp(e)}o(cc,"useTerminalSize");function lc(){let e=ac();return Ss(yo)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}o(lc,"useTerminalWrite");function Cu(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,i=Ss(yo),{stdin:s,setRawMode:a,isRawModeSupported:c}=Tu(),l=Yp(e);rc(()=>{l.current=e},[e]),rc(()=>{if(!n||!s)return;if(i)return i.subscribeInput(h=>{l.current(h)},{rawMode:r});let u=s,f=u.isRaw;r&&c&&f===!1&&a(!0);let p=o(h=>{l.current(h)},"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(Cu,"useTerminalInput");import{jsx as gD}from"react/jsx-runtime";import{writeSync as yD}from"node:fs";import{useInsertionEffect as wD,useMemo as SD}from"react";import{onExit as xD}from"signal-exit";function TD(e,t,n){if(!("fd"in e)||typeof e.fd!="number"){t(n);return}try{yD(e.fd,n)}catch{t(n)}}o(TD,"writeExitSequence");var rw=o(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let i=ac(),{rows:s}=cc(),a=lc(),c=SD(()=>n&&i.isTTY===!0,[n,i]);return wD(()=>{if(!c)return;let l=ws(i);l?.setShellMode?.("virtual",t);let u=!1,f=o(()=>{u||(u=!0,l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),TD(i,a,ec({mouseTracking:t})),l?.setAltScreenActive?.(!1))},"restoreTerminal"),p=l?.registerTerminalExitGuard?.(f)??(()=>{}),h=xD(f,{alwaysLast:!0});return l?.beginShellTransition?.("enter-alt-screen"),a(Gp({mouseTracking:t,clearOnEnter:r})),l?.setAltScreenActive?.(!0,t),()=>{h();try{f()}finally{p()}}},[r,c,t,i,a]),gD(M,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as wo,jsxs as Z0}from"react/jsx-runtime";import{jsx as ID}from"react/jsx-runtime";import vD,{useEffect as Jp,useImperativeHandle as bD,useMemo as RD,useRef as Qp,useCallback as vu,useState as kD}from"react";function CD(e,t,n){return Math.max(t,Math.min(e,n))}o(CD,"clamp");function Iu(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=CD(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),h=a-u;return{blockTop:u,blockHeight:p,inBlockOffset:h,bin:c}}o(Iu,"computeOverscanWindow");function Y0(e,t,n){let r=Iu({...n,globalScrollTop:e}),i=Iu({...n,globalScrollTop:t});return r.bin===i.bin}o(Y0,"staysWithinOverscanBlock");function q0(e){let t=e??void 0;for(;t?.parentNode;)t=t.parentNode;return t&&typeof t.onRender=="function"?(t.onRender(),!0):!1}o(q0,"scheduleRenderFromNode");function J0(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:Zp(t,t.scrollTop)}}o(J0,"normalizeScrollSnapshot");function Q0(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(Q0,"areSnapshotsEqual");function ED(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(ED,"areWindowsEqual");function Zp(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(Zp,"clampScrollTop");function iw(e){let t=Math.max(0,e.viewportHeight),n=Zp(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=Iu({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(iw,"resolveScrollWindow");function MD(e){let t=Zp(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}o(MD,"resolveNativeScrollTop");var ow=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:h,renderWindow:m,overscanRows:g})=>{let T=Qp(null),x=Qp(new Set),C=Qp(J0({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l,overscanRows:g})),[b,A]=kD(()=>iw(C.current)),N=Qp(null),R=vu(()=>{for(let de of x.current)de()},[]),E=vu((de,pe=!0)=>{let ge=C.current,Me=J0(de),Ee=iw(Me);return C.current=Me,A(ie=>ED(ie,Ee)?ie:Ee),pe&&!Q0(ge,Me)&&R(),{previous:ge,snapshot:Me,window:Ee,changed:!Q0(ge,Me)}},[R]),P=vu(de=>{let pe=C.current,ge=Math.max(0,Math.floor(pe.overscanRows??0)),Me=T.current;if(ge<=0||!Me||pe.viewportHeight<=0)return!1;let Ee=Math.max(0,pe.scrollHeight-pe.viewportHeight),ie=N.current??Zp(pe,pe.scrollTop),be=Math.max(0,Math.min(Math.floor(ie+de),Ee)),te=be-ie;if(be===ie)return!0;let se=Math.max(0,pe.scrollHeight-pe.viewportHeight-ie),Ie=Math.max(0,pe.scrollHeight-pe.viewportHeight-be),ot={viewportHeight:pe.viewportHeight,contentHeight:pe.scrollHeight,overscan:ge};if(!Y0(se,Ie,ot))return!1;let Rt=Iu({...ot,globalScrollTop:Ie});return Me.scrollTop=Ie,Me.attributes&&(Me.attributes.inWindowScrollTop=Rt.inBlockOffset,Me.attributes.pendingScrollDelta=te),q0(Me)?(N.current=be,pe.sticky&&(C.current={...C.current,sticky:!1},p?.(!1)),R(),!0):!1},[R,p]),B=vu(de=>{let pe=T.current;pe&&C.current.overscanRows&&(pe.scrollTop=de.viewportTop)},[]);Jp(()=>{let de=C.current,pe={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:de.clampMin,clampMax:de.clampMax,sticky:l,overscanRows:g},ge=E(pe);ge.previous.sticky!==l&&p?.(l),ge.window.scrollTop!==s&&f?.(ge.window.scrollTop)},[E,p,f,g,a,s,l,c]);let $=vu(()=>{let de=T.current;if(!de)return;N.current=null;let pe=typeof de.scrollHeight=="number"?Math.max(0,Math.floor(de.scrollHeight)):void 0,ge=typeof de.scrollViewportHeight=="number"?Math.max(0,Math.floor(de.scrollViewportHeight)):void 0,Me=typeof de.scrollViewportTop=="number"?Math.max(0,Math.floor(de.scrollViewportTop)):void 0;if(pe===void 0||ge===void 0||Me===void 0)return;let Ee=Math.max(0,pe-ge-Me),ie=E({...C.current,scrollTop:Ee,scrollHeight:pe,viewportHeight:ge});ie.changed&&ie.window.scrollTop!==ie.previous.scrollTop&&f?.(ie.window.scrollTop)},[E,f]);Jp(()=>{$()},[$]);let V=RD(()=>({scrollTo(de){N.current=null;let pe=E({...C.current,scrollTop:de,pendingDelta:0,sticky:!1});pe.previous.sticky!==!1&&p?.(!1),B(pe.window),f?.(pe.window.scrollTop)},scrollBy(de){if(P(de))return;let pe=N.current??C.current.scrollTop;N.current=null;let ge=E({...C.current,scrollTop:pe+de,pendingDelta:C.current.pendingDelta+Math.floor(de),sticky:!1});ge.previous.sticky!==!1&&p?.(!1),B(ge.window),f?.(ge.window.scrollTop)},scrollToElement(de,pe=0){N.current=null;let ge=E({...C.current,scrollTop:de-pe,pendingDelta:0,sticky:!1});ge.previous.sticky!==!1&&p?.(!1),B(ge.window),f?.(ge.window.scrollTop)},scrollToBottom(){N.current=null;let de=E({...C.current,scrollTop:0,pendingDelta:0,sticky:!0});B(de.window),f?.(de.window.scrollTop),de.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return N.current??C.current.scrollTop},getPendingDelta(){return C.current.pendingDelta},getScrollHeight(){return T.current?.scrollHeight??C.current.scrollHeight},getViewportHeight(){return T.current?.scrollViewportHeight??b.viewportHeight},getViewportTop(){return T.current?.scrollViewportTop??b.viewportTop},isSticky(){return C.current.sticky},subscribe(de){return x.current.add(de),()=>{x.current.delete(de)}},setClampBounds(de,pe){N.current=null;let ge=E({...C.current,clampMin:de,clampMax:pe});B(ge.window),ge.window.scrollTop!==ge.previous.scrollTop&&f?.(ge.window.scrollTop)}}),[E,f,p,P,B]);bD(u,()=>V,[V]),Jp(()=>{h?.(b)},[h,b]),Jp(()=>{C.current.pendingDelta!==0&&(C.current={...C.current,pendingDelta:0})},[b]);let ne=N.current!==null,z=ne?{...C.current,scrollTop:N.current}:C.current,y=ne?iw(z):b,_=m?m(y):e,ee=Math.max(0,c+i),j=MD(z);return vD.createElement("ink-box",{ref:T,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:ee,paddingTop:i,overflowX:"visible",overflowY:"scroll"},scrollTop:j,scrollHeight:C.current.scrollHeight,scrollViewportHeight:C.current.viewportHeight,scrollViewportTop:y.viewportTop,pendingScrollDelta:C.current.pendingDelta,virtualScrollWindowed:!!m,...C.current.overscanRows?{inWindowScrollTop:y.inWindowScrollTop}:{},...C.current.clampMin!==void 0?{scrollClampMin:C.current.clampMin}:{},...C.current.clampMax!==void 0?{scrollClampMax:C.current.clampMax}:{},...l?{stickyScroll:!0}:{}},ID(M,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:_}))},"ScrollBox");var _D=80;function bu(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}o(bu,"resolveFullscreenChromeSlotText");function em(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:_D)-2);return Math.max(1,vn(e.split(`
|
|
36
|
+
`),n,0,0).visualLines.length)}o(em,"measureFullscreenChromeSlotRows");var sw=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:h=!0,scrollRef:m,onScrollTopChange:g,onStickyChange:T,onWindowChange:x,overscanRows:C})=>{let b=o((V,ne)=>ne?wo(M,{paddingX:1,children:wo(k,{dimColor:V?.tone!=="accent",children:ne})}):null,"renderChromeSlot"),A=bu(a),N=bu(c),R=em(A,l),E=b(a,A),P=s?null:b(c,N),B=Math.max(0,e?t:0),$=Math.max(0,p-R-B);return Z0(M,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?wo(M,{flexDirection:"column",flexShrink:0,children:e}):null,Z0(M,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[wo(ow,{width:l,flexGrow:1,flexShrink:1,paddingTop:R,scrollTop:u,scrollHeight:f,viewportHeight:$,stickyScroll:h,scrollRef:m,onScrollTopChange:g,onStickyChange:T,onWindowChange:x,renderWindow:r,overscanRows:C,children:n}),E?wo(M,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:E}):null,P?wo(M,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:P}):null,s?wo(M,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),wo(M,{flexDirection:"column",flexShrink:0,children:i})]})},"FullscreenLayout");import LD from"string-width";function PD(){return cc().columns}o(PD,"useTerminalWidth");var nm=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=tm(()=>ue(u),[u]),h=PD(),m=f??h,g=LD(r)+1,T=tm(()=>{let R=Math.max(20,m-g);return vn(e,R,t,n)},[e,m,t,n,g]),x=tm(()=>{if(!T)return null;let[R,E]=Rp(T,[t,n]);return{row:R,col:E}},[T,t,n]),C=s&&a,b=c&&e.some(R=>R.length>0),A=T,N=x;return mr(M,{flexDirection:"column",borderStyle:"round",borderColor:p.colors.dim,borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,width:f??"100%",children:[b?Pn(M,{children:Pn(k,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,A.visualLines.length===0||A.visualLines.length===1&&A.visualLines[0]===""?mr(M,{children:[mr(k,{color:p.colors.primary,children:[r," "]}),C?mr(AD,{children:[Pn(k,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:" "}),Pn(k,{dimColor:!0,children:i})]}):Pn(k,{dimColor:!0,children:i})]}):A.visualLines.map((R,E)=>{let P=E===N.row,B=E===0?r:" ".repeat(g-1);if(P&&C){let{before:$,current:V,after:ne}=db(R,N.col),z=V||" ";return mr(M,{children:[mr(k,{color:p.colors.primary,children:[B," "]}),Pn(k,{color:p.colors.text,children:$}),Pn(k,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:z}),Pn(k,{color:p.colors.text,children:ne})]},E)}return mr(M,{children:[mr(k,{color:p.colors.dim,children:[B," "]}),Pn(k,{color:p.colors.text,children:R})]},E)})]})},"TextInput"),eR=o(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:i=!0,theme:s="dark"})=>{let a=tm(()=>ue(s),[s]);if(!e)return mr(M,{children:[mr(k,{color:a.colors.primary,children:[n," "]}),r&&Pn(k,{dimColor:!0,children:r}),i&&Pn(k,{backgroundColor:a.colors.primary,color:"#000000",children:" "})]});let c=In(e),l=c.slice(0,t).join(""),u=c[t]??" ",f=c.slice(t+1).join("");return mr(M,{children:[mr(k,{color:a.colors.primary,children:[n," "]}),Pn(k,{color:a.colors.text,children:l}),Pn(k,{backgroundColor:a.colors.primary,color:"#000000",children:u}),Pn(k,{color:a.colors.text,children:f})]})},"SingleLineTextInput");var aw={"[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"}},OD=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,$D=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function ND(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}o(ND,"parseMouseButton");function DD(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}o(DD,"parseModifier");function Ru(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($D);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:ND(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(OD);if(s){let[,l,u,f]=s,p=f||"~",m=aw[i];if(m)return Object.assign(n,m),n;let g="["+l+p+"]",T=aw[g];if(T&&T.name){if(n.name=T.name,u){let x=parseInt(u,10)-1,C=DD(x);Object.assign(n,C)}return n}}let c=aw[i];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),u=Ru(l);return n.name=u.name,n}}return n}o(Ru,"parseKeypress");var uc=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=Ru(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:r}=t;this.buffer=r;let i=Ru(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 cw(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(cw,"isFunctionKey");function tR(e){return e.ctrl||e.meta||cw(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}o(tR,"isPrintable");function nR(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(nR,"getKeyDisplayName");import BD,{createContext as FD,useContext as HD,useEffect as rR,useCallback as WD,useRef as lw}from"react";var jD=50;function rm(){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(rm,"createKeypressManager");var iR=FD(null);function ku({children:e,enabled:t=!0}){let{stdout:n}=Zr(),r=lw(rm()),i=lw(null),s=lw(null),a=WD(c=>{t&&r.current.dispatch(c)},[t]);return rR(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new uc;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]),Cu(c=>{t&&(s.current&&clearTimeout(s.current),i.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{i.current?.feed("",!0)},jD)))},{isActive:t,rawMode:!0}),BD.createElement(iR.Provider,{value:r.current},e)}o(ku,"KeypressProvider");function im(){let e=HD(iR);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}o(im,"useKeypressManager");function Yn(e,t,n=[]){let r=im(),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?Cn.High:Cn.Normal:u??Cn.Normal}else a=typeof e=="boolean"?e?Cn.High:Cn.Normal:e,s=t,c=!0;rR(()=>c?r.register(a,s):void 0,[r,a,c,...i?[]:n])}o(Yn,"useKeypress");function hr(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(hr,"createKeyMatcher");var uw={isEnter:hr({name:"return"}),isEscape:hr({name:"escape"}),isCtrlC:hr({name:"c",ctrl:!0}),isCtrlD:hr({name:"d",ctrl:!0}),isUp:hr({name:"up"}),isDown:hr({name:"down"}),isLeft:hr({name:"left"}),isRight:hr({name:"right"}),isBackspace:hr({name:"backspace"}),isDelete:hr({name:"delete"}),isTab:hr({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 XD}from"react/jsx-runtime";import{useState as YD,useEffect as aR,useCallback as So,useMemo as cR,createContext as qD,useContext as lR}from"react";function UD(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=GD(t,a);return i+=c,{matched:!0,score:i,highlights:a}}o(UD,"fuzzyMatch");function GD(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(GD,"calculateWordBoundaryBonus");function VD(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}o(VD,"prefixMatch");function KD(e,t){if(VD(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{...UD(e,t),isPrefix:!1}}o(KD,"combinedMatch");function oR(e,t,n=0){return e?t.map(r=>{let i=KD(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(oR,"sortCandidatesCombined");var zD={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},dw=class{static{o(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...zD,...t},this.completers=[new Sy(this.options.gitRoot),new ib,new ob,new xp(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 Sy)?.setGitRoot(this.options.gitRoot),r){let i=this.completers.findIndex(s=>s instanceof xp);i!==-1&&(this.completers[i]=new xp(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=xy(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){mt({source:"repl:autocomplete",level:"error",message:"Completer failed; continuing with remaining completers.",detail: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 oR(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=xy(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){mt({source:"repl:autocomplete",level:"error",message:"Listener failed during autocomplete state update.",detail:r})}}};function sR(e){return new dw(e)}o(sR,"createAutocompleteProvider");var fw=qD(null);function om({children:e,cwd:t,gitRoot:n}){let r=Eu({cwd:t,gitRoot:n,enabled:!0});return XD(fw.Provider,{value:r,children:e})}o(om,"AutocompleteContextProvider");function xo(){return lR(fw)}o(xo,"useAutocompleteContext");function JD(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(JD,"completionToSuggestion");function Eu(e={}){let t=lR(fw);return t&&!e.cwd&&!e.gitRoot?t:QD(e)}o(Eu,"useAutocomplete");function QD(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,i=cR(()=>sR({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:50}),[]);aR(()=>{i.updateOptions({cwd:t,gitRoot:n})},[i,t,n]);let[s,a]=YD({visible:!1,selectedIndex:0,completions:[],loading:!1});aR(()=>i.subscribe(C=>{a(C)}),[i]);let c=cR(()=>s.completions.map((x,C)=>JD(x,C)),[s.completions]),l=So((x,C)=>{if(!r){i.cancel();return}i.handleInput(x,C)},[i,r]),u=So(()=>s.visible?i.acceptCompletionWithType():null,[i,s.visible]),f=So(()=>s.visible?i.acceptCompletionWithType():null,[i,s.visible]),p=So(()=>{s.visible&&i.selectPrevious()},[i,s.visible]),h=So(()=>{s.visible&&i.selectNext()},[i,s.visible]),m=So(()=>{s.visible&&i.cancel()},[i,s.visible]),g=So(()=>{i.cancel()},[i]),T=So(()=>i,[i]);return{state:s,suggestions:c,handleInput:l,handleTab:u,handleEnter:f,handleUp:p,handleDown:h,handleEscape:m,cancel:g,getProvider:T}}o(QD,"useAutocompleteImpl");import{useCallback as Mu,useRef as uR}from"react";var gr=[];function sm(e={}){let{maxSize:t=1e3,onSave:n}=e,r=uR(-1),i=uR(""),s=Mu((f,p)=>{if(!f.trim())return;if(gr[gr.length-1]?.text!==f){let m={text:f,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};gr.push(m),gr.length>t&&gr.splice(0,gr.length-t),n?.(m)}r.current=-1,i.current=""},[t,n]),a=Mu(()=>gr.length===0?null:r.current===-1?(r.current=gr.length-1,gr[r.current]??null):r.current>0?(r.current--,gr[r.current]??null):null,[]),c=Mu(()=>r.current===-1?null:r.current<gr.length-1?(r.current++,gr[r.current]??null):(r.current=-1,{text:i.current,timestamp:Date.now()}),[]),l=Mu(()=>{r.current=-1,i.current=""},[]),u=Mu(f=>{r.current===-1&&(i.current=f)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}o(sm,"useInputHistory");function On(e,t,n){return In(e).slice(t,n).join("")}o(On,"sliceByCodePoints");var dc=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 _r(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=On(t,0,this._cursor.col);return{row:this._cursor.row,col:_r(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=In(t)[this._cursor.col];return r?Mr(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=In(n),i=0;for(let s=0;s<r.length;s++){let a=Mr(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=On(n,0,this._cursor.col),i=On(n,this._cursor.col);this._lines[this._cursor.row]=r+t+i,this._cursor.col+=_n(t),this._rememberedCol=this._cursor.col,this._updateText()}newline(){this._saveHistory(),this._insertNewline()}_insertNewline(){let t=this._lines[this._cursor.row],n=On(t,0,this._cursor.col),r=On(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=On(t,0,n),i=On(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=_n(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<_n(t)){this._saveHistory();let n=On(t,0,this._cursor.col),r=On(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=_n(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col)}_moveRight(){let t=this._lines[this._cursor.row];this._cursor.col<_n(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=_n(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col}_clampColumn(){let t=this._lines[this._cursor.row],n=_n(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,_n(this._lines[this._cursor.row]))),this._rememberedCol=this._cursor.col}killLineRight(){let t=this._lines[this._cursor.row];this._cursor.col<_n(t)&&(this._saveHistory(),this._lines[this._cursor.row]=On(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]=On(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=In(t);for(;n>0&&/\s/.test(r[n]??"");)n--;for(;n>0&&!/\s/.test(r[n-1]??"");)n--;let i=On(t,0,n),s=On(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:_n(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+=On(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=_n(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as ZD,useCallback as Yt,useRef as pw,useEffect as eB}from"react";function am(e={}){let{initialValue:t="",onTextChange:n}=e,r=pw(null),i=pw(null),s=pw(null),[a,c]=ZD({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new dc,t&&r.current.setText(t)),i.current===null&&(i.current=Yv());let l=r.current,u=i.current,f=Yt(z=>{c(y=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:z?.isPasting??y.isPasting,editingMode:z?.editingMode??y.editingMode})),n?.(l.text)},[l,n]),p=Yt(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{c(z=>({...z,isPasting:!1,editingMode:z.text?"typing":"idle"})),s.current=null},120)},[]),h=Yt(z=>{l.setText(z),f({isPasting:!1,editingMode:z?"typing":"idle"})},[l,f]),m=Yt((z,y,_)=>{l.replaceRange(z,y,_),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),g=Yt((z,y)=>{let _=y?.paste??!1;if(_&&zv(z)){let ee=z.replace(/\r\n/g,`
|
|
47
|
+
`).replace(/\r/g,`
|
|
48
|
+
`),{placeholder:j}=u.registerText(ee);l.insert(j,{paste:!0}),f({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(z,{paste:!1}),f({isPasting:_,editingMode:_?"pasting":"typing"}),_&&p()},[l,u,p,f]),T=Yt(()=>{l.newline(),f({isPasting:!1,editingMode:"typing"})},[l,f]),x=Yt(()=>{let z=l.getAbsoluteOffset(),y=wp(l.text,z);y?l.replaceRange(y.start,y.end,""):l.backspace(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),C=Yt(()=>{let z=l.getAbsoluteOffset(),y=Sp(l.text,z);y?l.replaceRange(y.start,y.end,""):l.delete(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),b=Yt(z=>{l.move(z),f()},[l,f]),A=Yt(()=>{l.clear(),f({isPasting:!1,editingMode:"idle"})},[l,f]),N=Yt(()=>{let z=l.undo();return z&&f(),z},[l,f]),R=Yt(()=>{let z=l.redo();return z&&f(),z},[l,f]),E=Yt(()=>{l.moveToEnd(),f()},[l,f]),P=Yt(z=>{l.moveToAbsoluteOffset(z),f()},[l,f]),B=Yt(()=>{l.killLineRight(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),$=Yt(()=>{l.killLineLeft(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),V=Yt(()=>{l.deleteWordLeft(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),ne=Yt(()=>{s.current&&(clearTimeout(s.current),s.current=null),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]);return eB(()=>()=>{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:ne,setText:h,replaceRange:m,insert:g,newline:T,backspace:x,delete:C,move:b,moveToEnd:E,moveToOffset:P,killLineRight:B,killLineLeft:$,deleteWordLeft:V,clear:A,undo:N,redo:R}}o(am,"useTextBuffer");import{jsx as xs,jsxs as dm}from"react/jsx-runtime";import{useState as gR}from"react";import{useCallback as fc,useEffect as yw,useRef as lm}from"react";function dR(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(dR,"buildAutocompleteReplacement");import{readFile as sB}from"node:fs/promises";var aB=/\.(png|jpe?g|gif|webp|bmp)$/i;async function mw(e){if(e.length===0)return process.platform==="darwin"?fR():{kind:"text",text:""};let t=cm(e);return t.length>0?cB(t,e):{kind:"text",text:e}}o(mw,"handleBracketedPaste");async function hw(){return fR()}o(hw,"triggerExplicitClipboardImage");async function fR(){let e;try{e=await Of()}catch(t){return{kind:"error",message:`Failed to read clipboard image: ${gw(t)}`}}return e?pR(e):{kind:"noop"}}o(fR,"readClipboardAsImagesOutcome");async function cB(e,t){let n=[],r=[];for(let i of e){let s;try{s=await sB(i)}catch(c){r.push(`Failed to read ${i}: ${gw(c)}`);continue}let a=await pR(s);a.kind==="images"?n.push(...a.blocks):a.kind==="error"&&r.push(a.message)}return n.length===0?r.length>0?{kind:"error",message:r.join("; ")}:{kind:"text",text:t}:{kind:"images",blocks:n}}o(cB,"readImagePathsAsOutcome");async function pR(e){try{let t=await Pf(e);return{kind:"images",blocks:[await $f(t)]}}catch(t){return t instanceof Lf?{kind:"error",message:t.message}:{kind:"error",message:`Failed to process pasted image: ${gw(t)}`}}}o(pR,"decodeBufferToOutcome");function cm(e){return e.split(/ (?=\/|[A-Za-z]:\\)/).filter(n=>aB.test(n.trim()))}o(cm,"extractImagePaths");function gw(e){return e instanceof Error?e.message:String(e)}o(gw,"describeError");function um(e,t){mt({source:"repl:prompt-input",level:"warn",message:e,...t!==void 0?{detail:t}:{}})}o(um,"reportPromptInputDiagnostic");var uB=500;function mR(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}o(mR,"shouldUseHistoryNavigation");function dB(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<uB?"clear-input":"arm-clear":"pass-through"}o(dB,"resolvePromptEscapeBehavior");function fB(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(fB,"resolvePromptEnterBehavior");function pB(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(pB,"resolvePromptEditingCommand");function hR({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:i,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onPasteFallback:l,onHistoryRecall:u,onPopPendingInputs:f}){let p=lm(0),{add:h,navigateUp:m,navigateDown:g,reset:T,saveTempInput:x}=sm(),{buffer:C,text:b,cursor:A,lines:N,isPasting:R,editingMode:E,pasteStore:P,resetTransientState:B,setText:$,replaceRange:V,clear:ne,move:z,moveToOffset:y,insert:_,backspace:ee,newline:j,delete:de,undo:pe,redo:ge,killLineRight:Me,killLineLeft:Ee,deleteWordLeft:ie}=am({initialValue:r,onTextChange:c}),be=lm(0);yw(()=>{if(R)return;if(b.length<=1e4){be.current=0;return}if(b.length===be.current)return;let xe=P.peekNextId(),{truncatedText:D,placeholderContent:Y}=Xv(b,xe);Y&&(P.registerTruncatedText(Y),be.current=D.length,$(D))},[b,R,P,$]);let te=xo(),se=Eu({cwd:i,gitRoot:s,enabled:a}),{state:Ie,suggestions:ot,handleInput:Rt,handleTab:Xe,handleEnter:Ke,handleUp:he,handleDown:ve,handleEscape:G}=te??se;yw(()=>{n||(p.current=0,B(),Ie.visible&&G())},[Ie.visible,n,G,B]);let je=lm(b);yw(()=>{a&&b!==je.current&&(je.current=b,Rt(b,C.getAbsoluteOffset()))},[a,C,Rt,b]);let xt=fc(xe=>{if(!xe?.text)return;let D=dR(b,C.getAbsoluteOffset(),xe),Y=b.slice(0,D.start)+D.replacement+b.slice(D.end);return V(D.start,D.end,D.replacement),Y},[C,V,b]),Gt=fc(xe=>{let D=xe??b;if(!D.trim())return;let Y=P.expand(D),H=new Set,oe=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let Ae of D.matchAll(oe)){let He=Number.parseInt(Ae[2]??"0",10);Number.isFinite(He)&&He>0&&H.add(He)}let F=[];for(let Ae of H){let He=P.get(Ae);He&&F.push(He)}h(D,{pastedContents:F}),e({displayText:D,fullText:Y,pastedContents:F}),ne()},[h,ne,e,P,b]),qe=fc(xe=>{if(xe){if(xe.pastedContents&&xe.pastedContents.length>0){for(let D of xe.pastedContents)P.adopt(D);u?.({text:xe.text,pastedContents:[...xe.pastedContents]})}$(xe.text)}},[u,P,$]),Pt=fc(async xe=>{try{let D=await mw(xe);if(D.kind==="images"){let Y=D.blocks.map(H=>`@${H.path}`).join(" ");_(`${Y} `,{paste:!1})}else D.kind==="error"&&(um(`Paste image handling failed: ${D.message}`),_(xe,{paste:!1}),l?.("Image paste failed; inserted as plain text."))}catch(D){um("Paste image handling failed.",D)}},[_,l]),Jt=lm(!1),nr=fc(async()=>{if(!Jt.current){Jt.current=!0;try{let xe=await hw();if(xe.kind==="images"){let D=xe.blocks.map(Y=>`@${Y.path}`).join(" ");_(`${D} `,{paste:!1})}else xe.kind==="error"&&um(`Clipboard image handling failed: ${xe.message}`)}catch(xe){um("Clipboard image handling failed.",xe)}finally{Jt.current=!1}}},[_]),Qt=fc(xe=>{if(!n)return!1;if(xe.name==="v"&&(xe.ctrl||xe.meta))return nr(),!0;if(xe.name==="paste"&&xe.isPasted&&cm(xe.sequence).length>0)return Pt(xe.sequence),!0;let D=Ie.visible&&ot.length>0;if(xe.name==="tab"&&D){let H=Xe();return H&&xt(H),!0}if(xe.ctrl&&xe.name==="c")return b.length>0?(ne(),T()):t?.(),!0;if(xe.name==="escape")switch(dB({isAutocompleteVisible:D,hasText:b.length>0,timeSinceLastEscapeMs:Date.now()-p.current})){case"cancel-autocomplete":return G(),p.current=0,!0;case"clear-input":return p.current=0,ne(),T(),!0;case"arm-clear":return p.current=Date.now(),!0;default:return!1}if(xe.name==="up"){if(D)return he(),!0;if(xe.ctrl)return z("up"),!0;if(b.length===0&&f){let H=f();if(typeof H=="string"&&H.length>0)return $(H),!0}if(mR(A.row,N.length,"up")){x(b);let H=m();qe(H)}else z("up");return!0}if(xe.name==="down"){if(D)return ve(),!0;if(xe.ctrl)return z("down"),!0;if(mR(A.row,N.length,"down")){let H=g();qe(H)}else z("down");return!0}if(xe.name==="left"){let H=C.getAbsoluteOffset(),oe=wp(C.text,H);return oe?y(oe.start):z("left"),!0}if(xe.name==="right"){let H=C.getAbsoluteOffset(),oe=Sp(C.text,H);return oe?y(oe.end):z("right"),!0}if(xe.name==="home")return z("home"),!0;if(xe.name==="end")return z("end"),!0;let Y=pB(xe);if(Y)switch(Y){case"move-home":return z("home"),!0;case"move-end":return z("end"),!0;case"undo":return pe(),!0;case"redo":return ge(),!0;case"kill-line-right":return Me(),!0;case"kill-line-left":return Ee(),!0;case"delete-word-left":return ie(),!0;default:break}if(xe.name==="backspace")return ee(),!0;if(xe.name==="delete")return de(),!0;if(xe.name==="return"||xe.name==="newline")switch(fB({keyName:xe.name,ctrl:xe.ctrl,shift:xe.shift,isAutocompleteVisible:D,isLineContinuation:!!N[A.row]?.endsWith("\\"),isPasting:R})){case"accept-completion-and-submit":{let oe=Ke();if(oe){let F=xt(oe);Gt(F)}else Gt();return!0}case"newline":return j(),!0;case"line-continuation":return ee(),j(),!0;default:return Gt(),!0}return xe.insertable&&!xe.ctrl&&!xe.meta?(_(xe.sequence,xe.isPasted?{paste:!0}:void 0),!0):!1},[xt,h,Ie.visible,ee,C,ne,A.row,de,n,ve,G,he,Ke,qe,Xe,Pt,nr,N,Ee,Me,z,y,g,m,j,t,f,ge,T,x,$,Gt,ot.length,b.length,ie,R,pe]);return{text:b,cursor:A,lines:N,isPasting:R,terminalFocused:n,editingMode:E,handleKey:Qt}}o(hR,"usePromptInputController");var Ts=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,onPasteFallback:p})=>{let{exit:h}=ei(),{cursor:m,lines:g,handleKey:T,isPasting:x,terminalFocused:C,editingMode:b}=hR({onSubmit:e,onExit:h,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:u,onInputChange:f,onPasteFallback:p,onHistoryRecall:t,onPopPendingInputs:n});return Yn(Cn.High,A=>T(A),[T]),xs(M,{flexDirection:"column",children:xs(nm,{lines:g,cursorRow:m.row,cursorCol:m.col,prompt:i,placeholder:r,focus:s,terminalFocused:C,isPasting:x,editingMode:b,theme:"dark"})})},"InputPrompt"),yR=o(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,i]=gR(""),[s,a]=gR(0);Yn(Cn.High,p=>{if(p.name==="return")return r.trim()&&(e(r),i(""),a(0)),!0;if(p.name==="backspace"&&s>0){let h=[...r].slice(0,s-1).join(""),m=[...r].slice(s).join("");return i(h+m),a(s-1),!0}if(p.name==="left"&&s>0)return a(s-1),!0;if(p.name==="right"&&s<[...r].length)return a(s+1),!0;if(p.insertable&&!p.ctrl&&!p.meta){let h=[...r].slice(0,s).join(""),m=[...r].slice(s).join("");return i(h+p.sequence+m),a(s+1),!0}return!1},[r,s,e]);let c=ue("dark");if(!r)return dm(M,{children:[dm(k,{color:c.colors.primary,children:[n," "]}),t&&xs(k,{dimColor:!0,children:t}),xs(k,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",f=[...r].slice(s+1).join("");return dm(M,{children:[dm(k,{color:c.colors.primary,children:[n," "]}),xs(k,{children:l}),xs(k,{backgroundColor:c.colors.primary,color:"#000000",children:u}),xs(k,{children:f})]})},"SimpleInputPrompt");import{jsx as It,jsxs as on}from"react/jsx-runtime";import{useState as SR,useEffect as xR}from"react";var wR=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],mB=80,fm=new Set,_u=null;function hB(){let e=Array.from(fm);for(let t of e)t()}o(hB,"dispatchSharedSpinnerTick");function gB(e){return fm.add(e),_u===null&&(_u=setInterval(hB,mB)),()=>{fm.delete(e),fm.size===0&&_u!==null&&(clearInterval(_u),_u=null)}}o(gB,"subscribeToSharedSpinnerClock");function Au(e=!0){let[t,n]=SR(0);return xR(()=>{if(e)return gB(()=>{n(r=>r+1)})},[e]),t}o(Au,"useSharedSpinnerTick");var qn=o(({color:e,theme:t})=>{let n=t??ue("dark"),i=Au(!0)%wR.length,s=e??n.colors.accent;return It(k,{color:s,children:wR[i]})},"Spinner");function yB(e){return e<=0?0:Math.round(e/4)}o(yB,"estimateOutputTokens");function wB(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(wB,"formatElapsedDuration");var TR=o(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??ue("dark");if(Au(e!==null),e===null)return null;let i=SB(Date.now()-e,t);return It(k,{color:r.colors.dim,wrap:"truncate",children:i})},"SpinnerStatsTail");function SB(e,t){let n=wB(e),r=yB(t);return r>0?` (${n} \xB7 \u2193 ${r} tokens)`:` (${n})`}o(SB,"buildSpinnerStatsText");var ww=o(({label:e,dotCount:t=3,theme:n})=>{let r=n??ue("dark"),[i,s]=SR(1);xR(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(i);return on(M,{children:[e&&It(k,{color:r.colors.text,children:e}),It(k,{color:r.colors.accent,children:a})]})},"DotsIndicator"),Sw=o(({progress:e,label:t,width:n=20,theme:r})=>{let i=r??ue("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 on(M,{flexDirection:"column",children:[t&&It(M,{marginBottom:1,children:It(k,{color:i.colors.text,children:t})}),on(M,{children:[It(k,{color:i.colors.primary,children:l}),It(k,{dimColor:!0,children:u}),on(k,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),CR=o(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??ue("dark"),i=e??"Thinking";return on(M,{children:[t&&It(M,{marginRight:1,children:It(qn,{theme:r})}),on(k,{color:r.colors.accent,children:[i,"\u2026"]})]})},"ThinkingIndicator"),IR=o(({message:e,subMessage:t,progress:n,type:r="spinner",compact:i=!1,theme:s})=>{let a=s??ue("dark"),c=e??"Loading";return i?on(M,{children:[It(qn,{theme:a}),on(k,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?on(M,{flexDirection:"column",children:[It(Sw,{progress:n,label:c,theme:a}),t&&It(M,{marginTop:1,children:It(k,{dimColor:!0,children:t})})]}):r==="dots"?on(M,{flexDirection:"column",children:[It(ww,{label:c,theme:a}),t&&It(M,{marginTop:1,children:It(k,{dimColor:!0,children:t})})]}):r==="simple"?on(M,{flexDirection:"column",children:[on(k,{color:a.colors.accent,children:[c,"\u2026"]}),t&&It(M,{marginTop:1,children:It(k,{dimColor:!0,children:t})}),n!==void 0&&It(M,{marginTop:1,children:on(k,{dimColor:!0,children:[n,"%"]})})]}):on(M,{flexDirection:"column",children:[on(M,{children:[It(qn,{theme:a}),on(k,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&on(k,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&It(M,{marginTop:1,children:It(k,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as Ce,jsxs as Ze,Fragment as Aw}from"react/jsx-runtime";import{useEffect as ak,useMemo as ri,memo as Jn}from"react";import*as Pu from"node:path";function Lu(e){if(dI(e)){let t=fI(e);return t?`[memory:${t}]`:"[memory]"}if(xB(e))return"[memory]"}o(Lu,"memoryBadgeFor");function xB(e){let t=Pu.resolve(e),n=no("projects");if(!t.startsWith(n+Pu.sep)&&t!==n)return!1;let i=t.slice(n.length+1).split(Pu.sep);return i.length>=2&&i[1]==="memory"}o(xB,"isInsideAnyMemoryDir");function st(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}o(st,"truncateValue");function vR(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}o(vR,"extractFirstMeaningfulLine");function kR(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(kR,"splitDisplayToolName");function pm(e){let{rolePrefix:t,toolLabel:n}=kR(e);return t?`${t} ${n}`:n}o(pm,"normalizeDisplayToolName");function Ou(e){return kR(e).toolLabel}o(Ou,"stripRolePrefix");function mm(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}o(mm,"asRecord");function ER(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}o(ER,"readString");function $t(e,...t){for(let n of t){let r=ER(e?.[n]);if(r)return r}}o($t,"readFirstString");function ti(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(ti,"readNumber");function MR(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(MR,"readStringArray");function TB(e){if(typeof e=="string")return e.trim()||void 0;let t=mm(e);if(t)return ER(t.preview)??void 0}o(TB,"extractPreview");function bR(e){if(e)try{return mm(JSON.parse(e))}catch{return}}o(bR,"parsePreviewRecord");function Ve(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}o(Ve,"extractFieldFromPreview");function ni(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}o(ni,"extractNumberFromPreview");function _R(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(_R,"extractPathsFromPreview");function CB(e){let t=TB(e);if(typeof e=="string")return{record:bR(t),preview:t};let n=mm(e),r=bR(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}o(CB,"resolveInputRecord");function pc(e,t,n,r=!1){let i=$t(t,"path","target_path","targetPath")??Ve(n,"path")??Ve(n,"target_path")??Ve(n,"targetPath"),s=MR(t?.paths)??_R(n);if(r&&s?.length){if(s.length===1){let a=Lu(s[0]);a&&e.push(a),e.push(st(s[0]))}else e.push(`${s.length} files`);return}if(i){let a=Lu(i);a&&e.push(a),e.push(st(i));return}if(s?.length)if(s.length===1){let a=Lu(s[0]);a&&e.push(a),e.push(st(s[0]))}else e.push(`${s.length} files`)}o(pc,"pushPathSummary");function mc(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}o(mc,"pushNumericSummary");function xw(e,t,n){let r=$t(t,"baseRef","base_ref")??Ve(n,"baseRef")??Ve(n,"base_ref"),i=$t(t,"targetRef","target_ref")??Ve(n,"targetRef")??Ve(n,"target_ref");r&&i&&e.push(st(`${r}...${i}`,88))}o(xw,"pushRangeSummary");function IB(e,t){let{record:n,preview:r}=CB(t),i=Ou(e).toLowerCase(),s=[];if(i.includes("changed_diff_bundle")){let a=MR(n?.paths)??_R(r);a?.length?(s.push(a.length===1?st(a[0]):`${a.length} files`),a.length>1&&s.push(st(a[0]))):pc(s,n,r,!0);let c=ti(n?.limit_per_path)??ti(n?.limitPerPath)??ni(r,"limit_per_path")??ni(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),xw(s,n,r),s}if(i.includes("changed_diff"))return pc(s,n,r),mc(s,"offset",ti(n?.offset)??ni(r,"offset")),mc(s,"limit",ti(n?.limit)??ni(r,"limit")),xw(s,n,r),s;if(i==="read"||i.includes("read_"))return pc(s,n,r),mc(s,"offset",ti(n?.offset)??ni(r,"offset")),mc(s,"limit",ti(n?.limit)??ni(r,"limit")),s;if(i.includes("changed_scope"))return pc(s,n,r,!0),xw(s,n,r),s;if(i.includes("repo_overview"))return pc(s,n,r),s;if(i.includes("bash")||i.includes("shell_command")){let a=$t(n,"command")??Ve(r,"command");return a&&s.push(`cmd=${st(a,140)}`),s}if(i==="glob"||i.includes("glob_")){let a=$t(n,"pattern")??Ve(r,"pattern"),c=$t(n,"path","root","directory","cwd")??Ve(r,"path")??Ve(r,"root")??Ve(r,"directory")??Ve(r,"cwd");if(a&&s.push(`pattern=${st(a,96)}`),c){let l=Lu(c);l&&s.push(l),s.push(st(c))}return s}if(i==="grep"||i.includes("grep_")){let a=$t(n,"pattern","query")??Ve(r,"pattern")??Ve(r,"query"),c=$t(n,"path","root","directory","cwd")??Ve(r,"path")??Ve(r,"root")??Ve(r,"directory")??Ve(r,"cwd");if(a&&s.push(`pattern=${st(a,96)}`),c){let l=Lu(c);l&&s.push(l),s.push(st(c))}return s}if(i==="web_fetch"){let a=$t(n,"url")??Ve(r,"url"),c=$t(n,"provider_id","providerId")??Ve(r,"provider_id")??Ve(r,"providerId"),l=$t(n,"capability_id","capabilityId")??Ve(r,"capability_id")??Ve(r,"capabilityId");return a&&s.push(st(a,120)),c&&s.push(`provider=${st(c,48)}`),l&&s.push(`cap=${st(l,48)}`),s}if(i==="mcp_describe"||i==="mcp_read_resource"){let a=$t(n,"id")??Ve(r,"id");return a&&s.push(st(a,120)),s}if(i==="mcp_call"){let a=$t(n,"id")??Ve(r,"id"),c=mm(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(st(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(i==="skill"){let a=$t(n,"skill","name")??Ve(r,"skill");return a&&s.push(st(a,64)),s}if(i==="mcp_search"){let a=$t(n,"query")??Ve(r,"query"),c=$t(n,"server")??Ve(r,"server"),l=$t(n,"kind")??Ve(r,"kind"),u=ti(n?.limit)??ni(r,"limit");return a&&s.push(`query=${st(a,96)}`),c&&s.push(`server=${st(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=$t(n,"query","pattern")??Ve(r,"query")??Ve(r,"pattern"),c=$t(n,"path","target_path","targetPath")??Ve(r,"path")??Ve(r,"target_path")??Ve(r,"targetPath"),l=$t(n,"provider_id","providerId")??Ve(r,"provider_id")??Ve(r,"providerId"),u=ti(n?.limit)??ni(r,"limit");return a&&s.push(`query=${st(a,96)}`),c&&s.push(st(c,72)),l&&s.push(`provider=${st(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return pc(s,n,r,!0),mc(s,"offset",ti(n?.offset)??ni(r,"offset")),mc(s,"limit",ti(n?.limit)??ni(r,"limit")),s}o(IB,"summarizeToolDetails");function AR(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(AR,"extractChangedDiffRange");function vB(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}o(vB,"extractDiffPreviewLine");function bB(e){let t=[],n=AR(e);if(n){let[i,s]=n.split("/");t.push(s?`Diff range: ${i} of ${s}`:`Diff range: ${n}`)}let r=vB(e);return r&&t.push(`Preview: ${st(r,220)}`),t}o(bB,"formatChangedDiffExplanation");function RB(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: ${st(r[1].trim(),220)}`),t}o(RB,"formatChangedDiffBundleExplanation");function LR(e,t){if(!t)return[];let n=Ou(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(st(s[1].trim())),r}if(n.includes("changed_diff")){let i=t.match(/^Changed diff for\s+(.+)$/im);i?.[1]&&r.push(st(i[1].trim()));let s=AR(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(st(i[1].trim())),r}return[]}o(LR,"summarizeToolOutputDetails");function Tw(e,t){let n=pm(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}o(Tw,"formatToolDetailSummary");function kB(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}o(kB,"formatDuration");function EB(e){switch(e.status){case K.Scheduled:return"scheduled";case K.Validating:return"validating";case K.AwaitingApproval:return"awaiting approval";case K.Executing:return"running";case K.Error:return"failed";case K.Cancelled:return"cancelled";default:return}}o(EB,"formatToolStatusDetail");function RR(e){switch(e.status){case K.Scheduled:return["Queued: waiting to start"];case K.Validating:return["Validating: checking inputs and policy"];case K.AwaitingApproval:return["Waiting: approval required before execution"];case K.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 K.Cancelled:return["Cancelled before completion"];default:return[]}}o(RR,"formatToolProgressExplanation");function Cw(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}o(Cw,"resolveToolExplanationTone");function MB(e){let t=vR(e.error),n=typeof e.output=="string"?vR(e.output):void 0,r=[];return t&&r.push(`Error: ${st(t,220)}`),e.status===K.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${st(n,220)}`),r}o(MB,"formatToolFailureExplanation");function Iw(e){if(typeof e.output!="string"||!e.output.trim())return RR(e);let t=Ou(e.name).toLowerCase();return e.status===K.Error?MB(e):e.status!==K.Success?RR(e):t.includes("changed_diff_bundle")?RB(e.output):t.includes("changed_diff")?bB(e.output):[]}o(Iw,"formatToolResultExplanation");function vw(e,t){return Tw(e,IB(e,t))}o(vw,"formatToolSummary");function hm(e){let t=typeof e.output=="string"?LR(e.name,e.output):[],n=t.length>0?Tw(e.name,t):vw(e.name,e.input),r=EB(e),i=kB(e.startTime,e.endTime),s=e.status===K.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===K.Executing&&e.preview?e.preview:void 0,a=[r,s,i].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}o(hm,"formatToolCallInlineText");function gm(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?LR(n.name,n.output):[],i=r.length>0?Tw(n.name,r):vw(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(gm,"collapseToolCalls");function $u(e){let t=hm(e.tool);return e.count>1?`${t} x${e.count}`:t}o($u,"formatCollapsedToolInlineText");function ym(e,t,n){let r=vw(e,t);return r!==pm(e)?`[Tools] ${r}`:n>0?`[Tools] ${pm(e)} (${n} chars)`:`[Tools] ${pm(e)}`}o(ym,"formatLiveToolLabel");function bw(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(bw,"countNewlines");function wm(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=bw(e),l=bw(s),u=bw(a),f=Math.max(0,c-l-u);return`${s}
|
|
49
|
+
\u2026 +${f} lines \u2026
|
|
50
|
+
${a}`}o(wm,"truncateUserMessageForDisplay");var PR="(?:\x1B[[0-9;]*m)*",_B=new RegExp(`^(${PR})(?:[ \r]*
|
|
51
|
+
)+`),AB=new RegExp(`(?:
|
|
52
|
+
[ \r]*)+(${PR})$`);function Rw(e){return e.replace(_B,"$1").replace(AB,"$1")}o(Rw,"stripOuterBlankLines");function jt(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(jt,"stripAnsi");var LB=new Set(["edit","write","multi_edit","insert_after_anchor"]),PB=20;function OB(e){return LB.has(Ou(e.name).trim().toLowerCase())}o(OB,"isMutationTool");function $B(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($B,"classifyDiffLine");function NB(e,t,n,r,i){let s=[],a=!1;for(let p of n.split(/\r?\n/)){let{color:h,skip:m}=$B(p);m||((h==="success"||h==="error")&&(a=!0),s.push({text:p,color:h}))}if(!a)return!1;let c=0,l=s.length;for(;c<l&&s[c].text.trim()==="";)c++;for(;l>c&&s[l-1].text.trim()==="";)l--;let u=s.slice(c,l);if(u.length===0)return!1;let f=i?u:u.slice(0,PB);return f.forEach((p,h)=>{Be(e,`${t}-diff-${h}`,p.text,ht(r,4),{color:p.color,indent:4})}),!i&&u.length>f.length&&Be(e,`${t}-diff-more`,`... (${u.length-f.length} more lines)`,ht(r,4),{color:"dim",indent:4}),!0}o(NB,"pushDiffRows");var OR=400,DB="... (thinking truncated; press Ctrl+O to inspect full reasoning)",$R=2e5,BB="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",FR=1e5,NR=120,FB=" \u2026 (Ctrl+O to expand)";function HR(){return process.env.KODAX_THINKING_COLLAPSE!=="0"}o(HR,"isThinkingCollapseEnabled");function HB(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>NR;return{summary:i?`${n.slice(0,NR).trimEnd()}\u2026`:n,hasMore:r||i}}o(HB,"buildCollapsedThinkingLine");function WB(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(WB,"normalizeManagedLiveActivityLabel");function Nu(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}o(Nu,"formatTimestamp");function WR(e){switch(e){case K.Scheduled:return"\u25CB";case K.Validating:return"\u25D0";case K.AwaitingApproval:return"\u23F8";case K.Executing:return"\u25CF";case K.Success:return"\u2713";case K.Error:return"\u2717";case K.Cancelled:return"\u2298";default:return"[tool]"}}o(WR,"getToolStatusIcon");function jR(e){switch(e){case K.Scheduled:case K.Validating:return"dim";case K.AwaitingApproval:return"accent";case K.Executing:return"primary";case K.Success:return"success";case K.Error:return"error";case K.Cancelled:return"dim";default:return"text"}}o(jR,"getToolStatusColor");function jB(e,t){let n=Math.max(1,t),r=e.split(`
|
|
53
|
+
`),i=vn(r.length>0?r:[""],n,0,0);return i.visualLines.length>0?i.visualLines:[""]}o(jB,"wrapText");function kw(e,t,n,r=!1){if(n||r)return e.length>$R?`${e.slice(0,$R)}
|
|
54
|
+
|
|
55
|
+
${BB}`:e;let i=e.split(/\r?\n/),s=i.length>t,a=s?i.slice(0,t).join(`
|
|
56
|
+
`):e,c=a.length>OR,l=c?a.slice(0,OR):a;return!s&&!c?e:`${l}
|
|
57
|
+
|
|
58
|
+
${DB}`}o(kw,"buildThinkingPreview");function UB(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user"&&e[t]?.isSessionUiOnly!==!0)return t;return 0}o(UB,"findActiveRoundStartIndex");function Be(e,t,n,r,i){let s=jt(n),a=jB(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(Be,"pushWrappedRows");function hc(e,t){e.push({key:t,text:" "})}o(hc,"pushBlankRow");function ht(e,t=0){return Math.max(20,e-t)}o(ht,"getBodyWidth");function GB(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(GB,"buildToolInputPreview");function VB(e,t,n,r,i,s=!1,a=!1){Be(e,`${t}-tool-${n.id}-main`,`${WR(n.status)} ${$u({tool:n,count:r})}`,ht(i,2),{color:jR(n.status),indent:2,bold:n.status===K.Executing}),Iw(n).forEach((u,f)=>{let p=Cw(u);Be(e,`${t}-tool-${n.id}-explanation-${f}`,u,ht(i,4),{color:p,indent:4})});let l=n.status===K.Success&&typeof n.output=="string"&&n.output.trim().length>0&&OB(n)&&NB(e,`${t}-tool-${n.id}`,n.output,i,a);if(s){let u=GB(n),f=a?u:u.slice(0,6);f.forEach((p,h)=>{Be(e,`${t}-tool-${n.id}-input-${h}`,p,ht(i,4),{color:"dim",indent:4})}),!a&&u.length>f.length&&Be(e,`${t}-tool-${n.id}-input-more`,`... (${u.length-f.length} more lines)`,ht(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((h,m)=>{Be(e,`${t}-tool-${n.id}-output-${m}`,h,ht(i,4),{color:"dim",indent:4})});let p=u.length;!a&&p>f.length&&Be(e,`${t}-tool-${n.id}-output-more`,`... (${p-f.length} more lines)`,ht(i,4),{color:"dim",indent:4})}}o(VB,"buildToolRows");function KB(e,t,n,r){let i=n.status===K.Executing,s=i?"":`${WR(n.status)} `;Be(e,`${t}-tool-${n.id}-main`,`${s}${$u({tool:n,count:1})}`,ht(r,2),{color:jR(n.status),indent:2,bold:i,spinner:i}),Iw(n).forEach((c,l)=>{let u=Cw(c);Be(e,`${t}-tool-${n.id}-explanation-${l}`,c,ht(r,4),{color:u,indent:4})})}o(KB,"buildLiveToolRows");function UR(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:h="",iterationHistory:m=[],currentIteration:g=1,isCompacting:T=!1,managedAgentMode:x,managedPhase:C,managedHarnessProfile:b,managedWorkerTitle:A,managedRound:N,managedMaxRounds:R,lastLiveActivityLabel:E,liveStatusLines:P=[],currentTodoActiveForm:B,showFullThinking:$=!1,showDetailedTools:V=!1,showAllContent:ne=!1,showLiveProgressRows:z=!0}=e,y=[];for(let _ of t)switch(_.type){case"user":Be(y,`${_.id}-header`,`You [${Nu(_.timestamp)}]`,n,{color:"primary",bold:!0,itemId:_.id}),Be(y,`${_.id}-body`,wm(_.text),ht(n,2),{color:"text",indent:2,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break;case"assistant":{let ee=Rw(ne?_.text:_.compactText??_.text);Be(y,`${_.id}-header`,`Assistant [${Nu(_.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:_.isStreaming,itemId:_.id}),Be(y,`${_.id}-body`,ee,ht(n,2),{color:"text",indent:2,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break}case"system":Be(y,`${_.id}-header`,`System [${Nu(_.timestamp)}]`,n,{color:"dim",bold:!0,itemId:_.id}),Be(y,`${_.id}-body`,_.text,ht(n,2),{color:"dim",indent:2,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break;case"tool_group":Be(y,`${_.id}-header`,`Tools [${Nu(_.timestamp)}]`,n,{color:"accent",bold:!0,itemId:_.id}),gm(_.tools).forEach(ee=>VB(y,_.id,ee.tool,ee.count,n,V,ne)),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break;case"thinking":{Be(y,`${_.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:_.id});let ee=HR()&&!$&&!ne?HB(_.compactText??_.text):void 0;if(ee?.hasMore){Be(y,`${_.id}-body`,`${ee.summary}${FB}`,ht(n,2),{color:"thinking",indent:2,italic:!0,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break}let j=ne?kw(_.text,i,$,ne):_.compactText??kw(_.text,i,$,ne);Be(y,`${_.id}-body`,j,ht(n,2),{color:"thinking",indent:2,italic:!0,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break}case"error":Be(y,`${_.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:_.id}),Be(y,`${_.id}-body`,_.text,ht(n,2),{color:"error",indent:2,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break;case"info":Be(y,`${_.id}-body`,`${_.icon??"\u2139"} ${Rw(ne?_.text:_.compactText??_.text)}`,n,{color:"info",itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break;case"event":Be(y,`${_.id}-body`,`${_.icon??">"} ${ne?_.text:_.compactText??_.text}`,n,{color:"text",itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break;case"hint":Be(y,`${_.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:_.id}),Be(y,`${_.id}-body`,_.text,ht(n,2),{color:"dim",indent:2,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break;case"sidecar":{let ee=_.delivery==="budget-exhausted"?"\u26A1 Sidecar Verifier \u2014 budget exhausted":_.verdict==="blocked"?"\u26A1 Sidecar Verifier \u2014 blocked":"\u26A1 Sidecar Verifier \u2014 revise";Be(y,`${_.id}-header`,`${ee} [${Nu(_.timestamp)}]`,n,{color:"warning",bold:!0,itemId:_.id}),Be(y,`${_.id}-body`,_.text,ht(n,2),{color:"dim",indent:2,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break}default:break}if(z&&m.length>0&&(m.forEach(_=>{if(Be(y,`iteration-${_.iteration}-header`,`\u2500\u2500 Round ${_.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),_.thinkingSummary){let ee=_.thinkingLength>60?` (${_.thinkingLength} chars total)`:"";Be(y,`iteration-${_.iteration}-thinking`,`\u{1F4AD} ${_.thinkingSummary}${ee}`,ht(n,1),{color:"thinking",indent:1,italic:!0})}if(_.response){let ee=_.response.slice(0,200);Be(y,`iteration-${_.iteration}-response`,ee,ht(n,1),{color:"text",indent:1}),_.response.length>200&&Be(y,`iteration-${_.iteration}-response-more`,`... (${_.response.length} chars total)`,ht(n,1),{color:"dim",indent:1})}_.toolsUsed.length>0&&Be(y,`iteration-${_.iteration}-tools`,`* tools: ${_.toolsUsed.join(", ")}`,ht(n,1),{color:"accent",indent:1}),hc(y,`iteration-${_.iteration}-blank`)}),Be(y,"iteration-current-header",`\u2500\u2500 Round ${g} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),hc(y,"iteration-current-blank")),r&&c){let _=kw(c,i,$,ne);Be(y,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),Be(y,"thinking-stream-body",_,ht(n,2),{color:"thinking",indent:2,italic:!0}),hc(y,"thinking-stream-blank")}if(r){let _="Thinking",ee="",j=WB(E,A),de=A??"Scout",pe=C==="routing"?`[${x?x.toUpperCase():"AMA"} Routing] `:C==="preflight"?`[${x?x.toUpperCase():"AMA"} ${de}] `:C==="verifying"?`[${x?x.toUpperCase():"AMA"} Verifying] `:b?`[${x?x.toUpperCase():"AMA"} ${A??"Worker"}] `:"",ge=f.filter(te=>te.status===K.Executing).length,Me=f.filter(te=>te.status===K.Success).length,Ee=f.filter(te=>te.status===K.Error).length,ie=f.filter(te=>te.status===K.Cancelled).length,be=f.length>0&&(ge>0||!l);if(T)_="Compacting";else if(C==="verifying")ee=pe,_="checking agent output";else if(be){let te=[];if(ge>0&&te.push(`${ge} running`),Me>0&&te.push(`${Me} done`),Ee>0&&te.push(`${Ee} error`),ie>0&&te.push(`${ie} cancelled`),te.length===0&&te.push(`${f.length} tools`),Be(y,"loading-tools-header",`${pe}[Tools] ${te.join(", ")}`,n,{color:"primary",bold:!0,spinner:ge>0}),f.forEach(se=>{KB(y,"loading-tools",se,n)}),hc(y,"loading-tools-blank"),ge>0&&!l&&!z)return y}else if(B)ee=pe||"[Plan] ",_=B;else if(u)ee=pe||"[Tool] ",_=j?.startsWith("[Tools]")?j:ym(u,h,p);else if(s){ee=pe||"[Thinking] ";let te=N&&R&&N>1?` round ${N}/${R}`:"";_=a>0?`${a} chars${te}`:j?`${j}${te}`:`processing${te}`}else j&&(_=j);z&&Be(y,"loading-indicator",`${ee}${_}...`,n,{color:"accent",spinner:!0})}if(z&&P.length>0&&(Be(y,"live-status-header","Live status",n,{color:"dim",bold:!0}),P.forEach((_,ee)=>{Be(y,`live-status-${ee}`,_,ht(n,2),{color:"dim",indent:2})}),hc(y,"live-status-blank")),l){let _=l.lastIndexOf(`
|
|
59
|
+
`),ee=_>=0?l.slice(0,_+1):"";ee.length>0&&(Be(y,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),Be(y,"streaming-body",ee,ht(n,2),{color:"text",indent:2}),hc(y,"streaming-blank"))}return y}o(UR,"buildTranscriptRows");function zB(e,t,n=1e3,r=!1,i=!1,s=!1){return gc(e,t,n,r,void 0,i,s)}o(zB,"buildStaticTranscriptSections");var DR=new WeakMap,BR=new Set(["thinking","tool_group"]);function XB(){return process.env.KODAX_TRANSCRIPT_TIGHT!=="0"}o(XB,"isTightRunSpacingEnabled");function YB(e,t){return XB()?t.map((n,r)=>{let i=e[r],s=e[r+1];if(!i||!s||!BR.has(i.type)||!BR.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(YB,"suppressTightRunBlanks");function gc(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}|${HR()?1:0}|${a?1:0}`,p=DR.get(l);if(p!==void 0&&p.sig===f)return p.section;let h={key:l.id,rows:UR({items:[l],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:u,showFullThinking:a})};return DR.set(l,{sig:f,section:h}),h});return YB(e,c)}o(gc,"buildHistoryItemTranscriptSections");function qB(e,t){return{key:e,rows:UR(t)}}o(qB,"buildDynamicTranscriptSection");function Sm(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=UB(t),u=t.slice(0,l),f=t.slice(l);return{staticSections:zB(u,n,r,i,s,a),activeItems:f}}o(Sm,"buildTranscriptStaticPortion");function xm(e){let{activeItems:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:i=!1,showAllContent:s=!1,showFullThinking:a=!1,expandedItemKeys:c,...l}=e,u=gc(t,n,r,i,c,s,a),f=qB("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(xm,"buildTranscriptDynamicPortion");function Tm(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:Cs(t.sections),previewSections:t.previewSections,previewRows:Cs(t.previewSections)}}o(Tm,"composeTranscriptRenderModel");function GR(e,t,n){let r=Tm(e,t);return n?{...r,staticSections:[n,...r.staticSections]}:r}o(GR,"buildInlinePromptRenderModel");function VR(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(h=>h.rows),u=s.slice(0,a).filter(h=>h.spinner!==!0);return{committedSections:[...l,...u].map((h,m)=>({key:`il-${m}`,rows:[{...h,key:`il-${m}`}]})),liveRows:c}}o(VR,"splitInlineLedgerModel");function JB(e){return e.replace(/^(You|Assistant|Tools|System) \[\d{1,2}:\d{2}[^\]]*\]$/u,"$1")}o(JB,"stripHeaderTimestamp");function KR(e){let t=5381;for(let n of e.rows){let r=JB(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(KR,"identifyInlineCommitSection");function Cm(e){let t=Sm({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=xm({...r,activeItems:t.activeItems});return Tm(t,i)}o(Cm,"buildTranscriptRenderModel");function Cs(e){return e.flatMap(t=>t.rows)}o(Cs,"flattenTranscriptSections");function zR(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(zR,"identifyTranscriptSection");function Ew(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:Cs(t),previewSections:[...e.previewSections],previewRows:Cs(e.previewSections)}}o(Ew,"materializeTranscriptRenderModel");function XR(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?Mw(e,a,c):e}o(XR,"resolveVisibleTranscriptRows");var YR=200,QB=50,qR=30;function JR(e,t,n=YR,r=QB){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(JR,"computeTranscriptCapStart");function QR(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"&&e[i]?.isSessionUiOnly!==!0&&(n++,n>t)){r=i+1;break}return e.slice(r)}o(QR,"sliceHistoryToRecentRounds");function ZR(e,t){if(t<=0||e.length===0)return[];let n=0;for(let r=e.length-1;r>=0;r-=1)if(e[r]?.isSessionUiOnly!==!0&&(n+=1,n>t))return e.slice(r+1);return e}o(ZR,"sliceHistoryToRecentCanonicalItems");function ek(e,t=YR){let n=e.reduce((r,i)=>r+(i.isSessionUiOnly===!0?1:0),0);return t+n}o(ek,"transcriptRenderCapForHistory");function Mw(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(Mw,"getVisibleTranscriptRows");function tk(e,t,n){if(!t||!n||n<=0)return 0;let r=Cs(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(tk,"resolveScrollOffsetForTranscriptItem");function nk(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(nk,"resolveTranscriptColor");var Im="__transcript_hidden_divider__";function rk(e,t){let n=e===1?"message":"messages";return{id:Im,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(rk,"buildTranscriptHiddenDivider");function _w(e){return e.id===Im}o(_w,"isTranscriptHiddenDivider");var ik=new ds(500);function ZB(e){let t=In(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(ZB,"buildTranscriptTextMetrics");function Du(e){let t=ik.get(e);if(t)return t;let n=ZB(e);return ik.set(e,n),n}o(Du,"getTranscriptTextMetrics");function To(e){return Du(e).length}o(To,"getTranscriptTextLength");function ok(e){return Du(e).displayWidth}o(ok,"getTranscriptTextDisplayWidth");function vm(e,t){let n=Du(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}o(vm,"charAtTranscriptText");function yc(e,t,n){let r=Du(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(yc,"sliceTranscriptText");function sk(e,t){let n=Du(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(sk,"resolveTranscriptTextIndexAtVisualColumn");function bm(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}o(bm,"formatTimestamp");function eF(e,t){let n=e.split(`
|
|
60
|
+
`),r=n.slice(0,t),i=n.length>t;return{lines:r,hasMore:i}}o(eF,"truncateLines");function tF(e){switch(e){case K.Scheduled:return"\u25CB";case K.Validating:return"\u25D0";case K.AwaitingApproval:return"\u23F8";case K.Executing:return"\u25CF";case K.Success:return"\u2713";case K.Error:return"\u2717";case K.Cancelled:return"\u2298";default:return"?"}}o(tF,"getToolStatusIcon");function nF(e,t){switch(e){case K.Scheduled:case K.Validating:return t.colors.dim;case K.AwaitingApproval:return t.colors.accent;case K.Executing:return t.colors.primary;case K.Success:return t.colors.success;case K.Error:return t.colors.error;case K.Cancelled:return t.colors.dim;default:return t.colors.text}}o(nF,"getToolStatusColor");var rF=Jn(({item:e,theme:t})=>{let n=ri(()=>wm(e.text),[e.text]);return Ze(M,{flexDirection:"column",marginBottom:1,children:[Ze(M,{children:[Ce(k,{color:t.colors.primary,bold:!0,children:"You"}),Ze(k,{dimColor:!0,children:[" [",bm(e.timestamp),"]"]})]}),Ce(M,{marginLeft:2,children:Ce(k,{color:t.colors.text,children:n})})]})}),iF=Jn(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:i,hasMore:s}=eF(r,n);return Ze(M,{flexDirection:"column",marginBottom:1,children:[Ze(M,{children:[Ce(k,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&Ze(Aw,{children:[Ce(k,{children:" "}),Ce(qn,{color:t.colors.accent})]}),Ze(k,{dimColor:!0,children:[" [",bm(e.timestamp),"]"]})]}),Ze(M,{marginLeft:2,flexDirection:"column",children:[i.map((a,c)=>Ce(k,{color:t.colors.text,children:a||" "},c)),s&&Ze(k,{dimColor:!0,children:["... (",r.split(`
|
|
61
|
+
`).length-n," more lines)"]})]})]})}),oF=Jn(({item:e,theme:t})=>Ze(M,{flexDirection:"column",marginBottom:1,children:[Ze(M,{children:[Ce(k,{color:t.colors.dim,bold:!0,children:"System"}),Ze(k,{dimColor:!0,children:[" [",bm(e.timestamp),"]"]})]}),Ce(M,{marginLeft:2,children:Ce(k,{dimColor:!0,children:e.text})})]})),sF=Jn(({tool:e,count:t=1,theme:n})=>{let r=tF(e.status),i=nF(e.status,n);return Ze(M,{flexDirection:"column",marginLeft:2,children:[Ze(M,{children:[Ze(k,{color:i,children:[r," "]}),Ce(k,{color:n.colors.text,bold:!0,children:$u({tool:e,count:t})})]}),e.error&&Ce(M,{marginLeft:2,children:Ce(k,{color:n.colors.error,children:e.error})})]})}),aF=Jn(({item:e,theme:t})=>{let n=gm(e.tools);return Ze(M,{flexDirection:"column",marginBottom:1,children:[Ze(M,{children:[Ce(k,{color:t.colors.accent,bold:!0,children:"Tools"}),Ze(k,{dimColor:!0,children:[" [",bm(e.timestamp),"]"]})]}),n.map(r=>Ce(sF,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),cF=Jn(({item:e,theme:t})=>Ze(M,{flexDirection:"column",marginBottom:1,children:[Ce(M,{children:Ce(k,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),Ce(M,{marginLeft:2,children:Ce(k,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),lF=Jn(({item:e,theme:t})=>Ze(M,{flexDirection:"column",marginBottom:1,children:[Ce(M,{children:Ze(k,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),Ce(M,{marginLeft:2,children:Ce(k,{color:t.colors.error,children:e.text})})]})),uF=Jn(({item:e,theme:t})=>Ce(M,{flexDirection:"column",marginBottom:1,children:Ze(k,{color:t.colors.text,children:[Ce(k,{color:t.colors.accent,bold:!0,children:e.icon??">"}),Ce(k,{children:" "}),e.compactText??e.text]})})),dF=Jn(({item:e,theme:t})=>Ce(M,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:Ze(k,{color:t.colors.info,children:[Ze(k,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),fF=Jn(({item:e,theme:t})=>Ze(M,{flexDirection:"column",marginBottom:1,children:[Ce(M,{children:Ze(k,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),Ce(M,{marginLeft:2,children:Ce(k,{dimColor:!0,children:e.text})})]})),ck=Jn(({item:e,theme:t,maxLines:n=1e3})=>{let r=ri(()=>ue("dark"),[]),i=t??r;switch(e.type){case"user":return Ce(rF,{item:e,theme:i});case"assistant":return Ce(iF,{item:e,theme:i,maxLines:n});case"system":return Ce(oF,{item:e,theme:i});case"tool_group":return Ce(aF,{item:e,theme:i});case"thinking":return Ce(cF,{item:e,theme:i});case"error":return Ce(lF,{item:e,theme:i});case"event":return Ce(uF,{item:e,theme:i});case"info":return Ce(dF,{item:e,theme:i});case"hint":return Ce(fF,{item:e,theme:i});default:return Ce(M,{children:Ce(k,{dimColor:!0,children:"Unknown item type"})})}});function pF(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(pF,"areTranscriptRowPropsEqual");var lk=Jn(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:i})=>{let s=nk(t,e.color),a=e.text===" "?"":e.text,c=a||" ",l=i&&a?yc(a,i.start,i.end):"",u=i&&a?yc(a,0,i.start):a,f=i&&a?yc(a,i.end):"",p=r&&!i,h=!p&&e.color==="dim",m={bold:e.bold||p,italic:e.italic,dimColor:h};return Ze(M,{marginLeft:e.indent??0,children:[e.spinner&&n&&Ze(Aw,{children:[Ce(qn,{color:t.colors.accent,theme:t}),Ce(k,{children:" "})]}),Ce(k,{color:p?t.colors.accent:s,...m,children:i&&a?Ze(Aw,{children:[u?Ce(k,{color:p?t.colors.accent:s,...m,children:u}):null,Ce(k,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:l}),f?Ce(k,{color:p?t.colors.accent:s,...m,children:f}):null]}):c})]})},pF),Lw=Jn(({section:e,theme:t,animateSpinners:n=!0})=>Ce(M,{flexDirection:"column",children:e.rows.map(r=>Ce(lk,{row:r,theme:t,animateSpinners:n},r.key))})),Co=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:h=1,isCompacting:m=!1,agentMode:g,managedPhase:T,managedHarnessProfile:x,managedWorkerTitle:C,managedRound:b,managedMaxRounds:A,managedGlobalWorkBudget:N,managedBudgetUsage:R,managedBudgetApprovalRequired:E,lastLiveActivityLabel:P,liveStatusLines:B,viewportRows:$,viewportWidth:V,scrollOffset:ne=0,animateSpinners:z=!0,windowed:y=!1,showFullThinking:_=!1,showDetailedTools:ee=!1,showAllContent:j=!1,showLiveProgressRows:de=!0,selectedItemId:pe,expandedItemKeys:ge,onMetricsChange:Me,onVisibleRowsChange:Ee,rendererWindow:ie,selectedTextRanges:be,transcriptModel:te,visibleRowsOverride:se})=>{let Ie=ri(()=>ue("dark"),[]),{stdout:ot}=Zr(),Rt=V??ot?.columns??80,Xe=ri(()=>te??Cm({items:e,viewportWidth:Rt,isLoading:t,maxLines:n,isThinking:r,thinkingCharCount:i,thinkingContent:s,streamingResponse:a,currentTool:c,activeToolCalls:l,toolInputCharCount:u,toolInputContent:f,iterationHistory:p,currentIteration:h,isCompacting:m,managedAgentMode:g,managedPhase:T,managedHarnessProfile:x,managedWorkerTitle:C,managedRound:b,managedMaxRounds:A,managedGlobalWorkBudget:N,managedBudgetUsage:R,managedBudgetApprovalRequired:E,lastLiveActivityLabel:P,liveStatusLines:B,windowed:y,showFullThinking:_,showDetailedTools:ee,showAllContent:j,showLiveProgressRows:de,expandedItemKeys:ge}),[te,e,Rt,t,n,r,i,s,a,c,l,u,f,p,h,m,g,T,x,C,b,A,N,R,E,P,B,y,_,ee,j,de,ge]),Ke=Xe.staticSections,he=Xe.rows,ve=Xe.previewRows,G=ri(()=>[...he,...ve],[ve,he]),xt=!(G.length>0)&&e.length===0&&!t,Gt=ri(()=>y||ie||se?G:he,[G,ie,he,se,y]),qe=ri(()=>se||XR(Gt,{viewportTop:ie?Math.max(0,ie.viewportTop):void 0,viewportHeight:ie?Math.max(0,ie.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:$,scrollOffset:ne,windowed:y}),[ie,ne,$,se,y,Gt]),Pt=ri(()=>se||y||ie?qe:G,[G,ie,qe,se,y]),Jt=ri(()=>G,[G]),nr=ie?Math.max(0,ie.viewportHeight):$;return ak(()=>{Me?.({scrollHeight:G.length,viewportHeight:ie?Math.max(0,ie.viewportHeight):nr??G.length})},[G.length,nr,Me,ie]),ak(()=>{Ee?.({rows:Pt,allRows:Jt})},[Jt,Ee,Pt]),xt?Ce(M,{paddingY:1,children:Ce(k,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):Ze(M,{flexDirection:"column",children:[!y&&Ke.length>0&&Ce(oc,{items:Ke,children:o(Qt=>Ce(Lw,{section:Qt,theme:Ie,animateSpinners:z},Qt.key),"children")}),Pt.map(Qt=>Ce(lk,{row:Qt,theme:Ie,animateSpinners:z,selectedItem:pe?Qt.key.startsWith(`${pe}-`):!1,selectionRange:be?.get(Qt.key)},Qt.key))]})},"MessageList");var uk=o(({role:e,content:t})=>{let n=ri(()=>ue("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return Ze(M,{flexDirection:"column",marginBottom:1,children:[Ce(k,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),Ce(k,{children:t})]})},"SimpleMessageDisplay");import{jsx as Ow,jsxs as Mm}from"react/jsx-runtime";import _F,{useMemo as $w}from"react";function Bu(e,t,n){let r=cy({triggerPercent:t,triggerTokens:n},e),i=r.config.triggerPercent,s=Math.round(r.triggerTokens/1e3);if(r.absoluteTriggerTokens===void 0)return`@ ${i}% (${s}k)`;let a=Math.round(r.absoluteTriggerTokens/1e3);return`@ min(${i}%, ${a}k) (${s}k)`}o(Bu,"formatCompactionPolicy");function dk(e,t,n=0,r){let i=aI(e,n);return cy({triggerPercent:t,triggerTokens:r},e,i).triggerTokens}o(dk,"resolveCompactionThresholdTokens");var mF="\u{1F504}",hF="\u2588",gF="\u2592",yF="\u2192",wF=" \xB7 ";function SF(e){switch(e){case"auto":return"auto";case"balanced":return"medium";case"quick":return"low";case"deep":return"high";case"off":return"off";default:return e.toLowerCase()}}o(SF,"formatReasoningModeShort");function xF(e){if(e)return e==="none"?"off":e}o(xF,"formatEffortShort");function TF(e){let t=e.split("->"),n=t[0]??e;if((t.length>1?t[t.length-1]:n)==="off")return"dim";switch(n){case"off":return"dim";case"low":return"green";case"medium":return"yellow";case"high":case"xhigh":case"max":return"magenta";default:return"cyan"}}o(TF,"getReasoningColor");function fk(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}o(fk,"formatTokenCount");function CF(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${hF.repeat(t)}${gF.repeat(n)}`}o(CF,"createMiniProgressBar");function IF(e,t,n,r,i){if(t===0)return"green";let s=dk(t,n,r,i);return e>=s?"red":e>=s*(2/3)?"yellow":"green"}o(IF,"getContextColor");function vF(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(vF,"getPermissionModeColor");function bF(e,t){let n=ep(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}o(bF,"buildPermissionModeText");function RF(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(RF,"formatToolAction");function Rm(e,t){return t&&t>0?`${e} (${t} chars)`:e}o(Rm,"formatThinkingStatus");function km(e,t,n){let r=RF(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}o(km,"formatToolStatus");function Pw({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 h=e&&e>0?`${e} tool${e===1?"":"s"} running`:void 0;if(i)return"Compacting";if(c==="routing")return h?`Routing - ${h}`:t?`Routing - ${km(t,s,a)}`:n?Rm("Routing",r):"Routing";if(c==="preflight"){let m=u??"Scout";return h?`${m} - ${h}`:t?`${m} - ${km(t,s,a)}`:n?Rm(m,r):m}if(c==="verifying")return"Verifying";if(l){let m=u??"Worker";if(f===!0&&!h&&!t&&!n){let g=p??0,T=g>1?`waiting for ${g} children`:g===1?"waiting for 1 child":"idle - resuming";return`${m} - ${T}`}return h?`${m} - ${h}`:t?`${m} - ${km(t,s,a)}`:n?Rm(m,r):m}if(h)return h;if(t)return km(t,s,a);if(n)return Rm("Thinking",r)}o(Pw,"buildBusyStatusText");function kF({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(kF,"resolveIterationSegments");function EF(e){if(e.length!==0)return`${mF} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(wF)}`}o(EF,"formatLabeledIterationStatus");function MF(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:h=u?"auto":"off",effort:m,reasoningEffortLabel:g,isCompacting:T,toolInputCharCount:x,toolInputContent:C,currentIteration:b,maxIter:A,contextUsage:N,learning:R,showBusyStatus:E=!0,managedPhase:P,managedHarnessProfile:B,managedWorkerTitle:$,managedRound:V,managedMaxRounds:ne,managedGlobalWorkBudget:z,managedBudgetUsage:y,managedIdleWaiting:_,managedIdleWaitingPendingCount:ee}=e,j=[{id:"agent-mode",text:`KodaX - ${r.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:bF(n,e.autoModeEngine),color:vF(n)}],de=g??xF(m)??SF(h);j.push({id:"reasoning-mode",text:de,color:TF(de)});let pe=kF({agentMode:r,managedPhase:P,managedHarnessProfile:B,managedRound:V,managedMaxRounds:ne,managedGlobalWorkBudget:z,managedBudgetUsage:y,currentIteration:b,maxIter:A}),ge=EF(pe);if(ge){let Ee=Math.max(...pe.map(be=>be.current/be.max)),ie="green";Ee>=.8?ie="red":Ee>=.5&&(ie="yellow"),j.push({id:"iteration-status",text:ge,color:ie})}j.push({id:"session-id",text:t,color:"dim"});let Me=E?Pw({activeToolCount:l,currentTool:c,isThinkingActive:f,thinkingCharCount:p,isCompacting:T,toolInputCharCount:x,toolInputContent:C,managedPhase:P,managedHarnessProfile:B,managedWorkerTitle:$,managedIdleWaiting:_,managedIdleWaitingPendingCount:ee}):void 0;if(Me&&j.push({id:"busy-status",text:Me,color:"dim"}),j.push({id:"provider-model",text:`${i}/${s}`,color:"secondary"}),N&&N.contextWindow!==0){let Ee=Math.round(N.currentTokens/N.contextWindow*100),ie=fk(N.currentTokens),be=fk(N.contextWindow),te=CF(Ee);j.push({id:"context-usage",text:`${ie}/${be} ${te} ${Ee}%`,color:IF(N.currentTokens,N.contextWindow,N.triggerPercent,N.reservedResponseTokens,N.triggerTokens)})}if(R&&(R.ready>0||R.newlyActive>0||R.attention>0)){let Ee=[...R.ready>0?[`${R.ready}R`]:[],...R.newlyActive>0?[`${R.newlyActive}N`]:[],...R.attention>0?[`${R.attention}!`]:[]];j.push({id:"learning",text:`Learn:${Ee.join("/")}`,color:R.attention>0||R.ready>0?"yellow":"cyan",tone:R.attention>0||R.ready>0?"warning":"accent"})}return a&&j.push({id:"token-usage",text:`${a.input}${yF}${a.output} (${a.total})`,color:"dim"}),j}o(MF,"buildStatusBarSegments");function Em(e){let t=MF(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}o(Em,"buildStatusBarViewModel");function AF(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(AF,"resolveViewModelSegmentColor");var Is=o(({viewModel:e,...t})=>{let n=$w(()=>ue("dark"),[]),r=$w(()=>e??Em(t),[t,e]);return Ow(M,{paddingX:1,children:r.segments.map((i,s)=>Mm(_F.Fragment,{children:[Ow(k,{color:AF(i,n),bold:i.bold,children:i.text}),s<r.segments.length-1?Ow(k,{dimColor:!0,children:" | "}):null]},i.id))})},"StatusBar"),pk=o(({permissionMode:e,provider:t,model:n})=>{let r=$w(()=>ue("dark"),[]);return Mm(M,{children:[Mm(k,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),Mm(k,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as Io,jsxs as Lm}from"react/jsx-runtime";import{useState as Nw,useCallback as _m,useMemo as mk}from"react";function Am(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}o(Am,"generateId");function LF(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(LF,"messageToHistoryItem");var hk=o(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:i="ama"})=>{let{stdout:s}=Zr(),a=mk(()=>ue("dark"),[]),[c,l]=Nw({messages:[],isLoading:!1,sessionId:Am()}),[u,f]=Nw(null),[p,h]=Nw(),m=_m(async C=>{if(!C.trim())return;let b={id:Am(),role:"user",content:C,timestamp:Date.now()};l(A=>({...A,messages:[...A.messages,b],isLoading:!0}));try{await n(C)}catch(A){let N={id:Am(),role:"system",content:`Error: ${A instanceof Error?A.message:"Unknown error"}`,timestamp:Date.now()};l(R=>({...R,messages:[...R.messages,N],isLoading:!1}))}finally{l(A=>({...A,isLoading:!1}))}},[n]),g=_m((C,b)=>{let A={id:Am(),role:C,content:b,timestamp:Date.now()};l(N=>({...N,messages:[...N.messages,A]}))},[]),T=_m((C,b)=>{f({input:C,output:b,total:C+b})},[]),x=_m(C=>{h(C)},[]);return Lm(M,{flexDirection:"column",children:[Io(M,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:Io(Co,{items:c.messages.map(LF),isLoading:c.isLoading})}),Io(M,{flexShrink:0,children:Io(Ts,{onSubmit:o(C=>m(C.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),Io(M,{flexShrink:0,children:Io(Is,{sessionId:c.sessionId,permissionMode:r,agentMode:i,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),gk=o(({model:e,provider:t,onInput:n})=>{let r=mk(()=>ue("dark"),[]);return Lm(M,{flexDirection:"column",children:[Lm(M,{marginBottom:1,children:[Io(k,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),Lm(k,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),Io(Ts,{onSubmit:o(i=>n(i.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as PF}from"react/jsx-runtime";var Pm=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:h=!0,scrollRef:m,onScrollTopChange:g,onStickyChange:T,onWindowChange:x,overscanRows:C})=>PF(sw,{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:h,scrollRef:m,onScrollTopChange:g,onStickyChange:T,onWindowChange:x,overscanRows:C}),"FullscreenTranscriptLayout");import{jsx as yk}from"react/jsx-runtime";function wc({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(wc,"buildMessageActionsText");var Om=o(({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:i=!1,matchNavigation:s=!1,dismissAction:a})=>{let c=ue("dark"),l=wc({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:r,selectionNavigation:i,matchNavigation:s,dismissAction:a});return l?yk(M,{paddingX:1,children:yk(k,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as wk}from"react/jsx-runtime";function Dw({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(Dw,"buildMessageSelectorText");var Sk=o(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let i=ue("dark"),s=Dw({itemSummary:e,itemKind:t,position:n,detailState:r});return s?wk(M,{paddingX:1,children:wk(k,{color:i.colors.dim,children:s})}):null},"MessageSelector");import{jsx as Sc,jsxs as OF}from"react/jsx-runtime";import{useMemo as xk}from"react";function $m(e,t){return Math.max(1,vn(e.length>0?e.split(`
|
|
62
|
+
`):[""],Math.max(1,t),0,0).visualLines.length)}o($m,"countWrappedRows");var Nm=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,h=f?.toolInput??!1,m=f?.copyOnSelect??!1,g=t?.toggleDetail??!1,T=t?.navigationCapabilities?.selection??!1,x=n?.statusText,C=n?.matches?.length??0,b=n?.surface,A=i.viewportWidth??80,N=Math.max(1,A-2),R=n?.query?.trim()?"close-search":a||p||h||g||T?"clear":void 0,E=Dw({itemSummary:a,itemKind:l,position:c,detailState:u}),P=xk(()=>wc({copyMessage:p,copyToolInput:h,copyOnSelect:m,toggleDetail:g,selectionNavigation:T,matchNavigation:!!x&&C>0,dismissAction:R}),[p,h,T,g,R,C,x,m]),B=xk(()=>{if(!s)return 0;let V=0;return e?.hintText&&(V+=$m(e.hintText,N)),E&&(V+=$m(E,N)),P&&(V+=$m(P,N)),x&&(V+=$m(x,N)),b&&(V+=1),V},[P,e?.hintText,N,s,x,b,E]),$=typeof i.viewportRows=="number"?Math.max(1,i.viewportRows-B):i.viewportRows;return OF(M,{flexDirection:"column",flexGrow:i.windowed?0:1,children:[s&&e?.hintText?Sc(M,{paddingX:1,children:Sc(k,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||h||m||g||T||C>0)?Sc(Om,{copyMessage:p,copyToolInput:h,copyOnSelect:m,toggleDetail:g,selectionNavigation:T,matchNavigation:!!x&&C>0,dismissAction:R}):null,s&&x?Sc(M,{paddingX:1,children:Sc(k,{dimColor:!0,children:x})}):null,s?b:null,Sc(Co,{...i,viewportRows:$})]})},"TranscriptViewport");import{jsx as Tk}from"react/jsx-runtime";var Dm=o(e=>Tk(M,{flexDirection:"column",children:Tk(Ts,{...e})}),"PromptComposer");import{jsx as vs,jsxs as Bm}from"react/jsx-runtime";import Ck from"react";var Ik=" \xB7 ",Fu=o(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ue("dark");return t.length===0?null:vs(M,{flexGrow:1,children:t.map((r,i)=>Bm(Ck.Fragment,{children:[vs(k,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),i<t.length-1?vs(k,{dimColor:!0,children:Ik}):null]},r.id))})},"PromptFooterLeftSide"),Hu=o(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ue("dark");return t.length===0?null:vs(M,{justifyContent:"flex-end",children:t.map((r,i)=>Bm(Ck.Fragment,{children:[vs(k,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),i<t.length-1?vs(k,{dimColor:!0,children:Ik}):null]},r.id))})},"PromptFooterRightSide"),Wu=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:h,inlineDialogs:m})=>Bm(M,{flexDirection:"column",children:[e||t?Bm(M,{paddingX:1,children:[vs(M,{flexGrow:1,children:e}),t]}):null,n,r,i,s,a,c,l,u,m,f,p,h]}),"PromptFooter");import{jsx as Bw,jsxs as vk}from"react/jsx-runtime";var Fm=o(({sections:e,title:t="Help"})=>{let n=ue("dark"),r=e.filter(i=>i.items.length>0);return r.length===0?null:vk(M,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[Bw(k,{color:n.colors.accent,bold:!0,children:t}),r.map(i=>vk(M,{flexDirection:"column",children:[Bw(k,{color:n.colors.primary,bold:!0,children:i.title}),Bw(k,{dimColor:!0,children:i.items.map(s=>s.label).join(" | ")})]},i.id))]})},"PromptHelpMenu");import{jsx as bk}from"react/jsx-runtime";import{createContext as Ek,useContext as Mk,useReducer as $F,useCallback as sn,useMemo as NF}from"react";var Rk=150;function Uu(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}o(Uu,"generateId");function ju(e){let t=e.timestamp;return{...e,id:Uu(),timestamp:t!==void 0&&Number.isFinite(t)&&t>=0?t:Date.now()}}o(ju,"createHistoryItem");function Fw(e){if(e.length<=Rk)return e;let t=0,n=e.length-Rk;for(let i=e.length-1;i>=0;i--)if(e[i]?.type==="user"&&(t++,t>50)){n=Math.max(n,i);break}let r=e.slice(n).findIndex(i=>i.type==="user");return r>0&&(n+=r),e.slice(n)}o(Fw,"trimCanonicalHistoryToRounds");function kk(e){if(!e.some(u=>u.isSessionUiOnly))return Fw(e);let t=e.filter(u=>!u.isSessionUiOnly),n=Fw(t),r=n[0],s=n.length<t.length&&r!==void 0?e.indexOf(r):0,a=e.filter((u,f)=>u.isSessionUiOnly===!0&&f>=s),c=Fw(a),l=new Set([...n,...c]);return e.filter(u=>l.has(u))}o(kk,"trimHistoryToRounds");function Hw(e,t){return e.filter(n=>n.type==="user"&&typeof n.id=="string"&&!t.has(n.id))}o(Hw,"selectUncommittedLedgerUserItems");function Hm(e){return{...e,id:Uu(),startTime:Date.now()}}o(Hm,"createToolCall");function DF(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:kk([...e.history,t.payload])};case"BULK_ADD_HISTORY_ITEMS":return{...e,history:kk([...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{...Qf,sessionId:e.sessionId};default:return e}}o(DF,"uiReducer");var _k=Ek(null),Ak=Ek(null);function Gu({children:e,initialState:t}){let[n,r]=$F(DF,{...Qf,...t}),i=sn(E=>{r({type:"SET_STREAMING_STATE",payload:E})},[]),s=sn(E=>{r({type:"APPEND_TO_RESPONSE",payload:E})},[]),a=sn(()=>{r({type:"CLEAR_RESPONSE"})},[]),c=sn(E=>{let P=ju(E);r({type:"ADD_HISTORY_ITEM",payload:P})},[]),l=sn(E=>{E.length!==0&&r({type:"BULK_ADD_HISTORY_ITEMS",payload:E.map(ju)})},[]),u=sn((E,P)=>{r({type:"UPDATE_HISTORY_ITEM",payload:{id:E,updates:P}})},[]),f=sn(()=>{r({type:"CLEAR_HISTORY"})},[]),p=sn(E=>{let P=Hm(E);return r({type:"ADD_TOOL_CALL",payload:P}),P.id},[]),h=sn((E,P)=>{r({type:"UPDATE_TOOL_CALL",payload:{id:E,updates:P}})},[]),m=sn(()=>{r({type:"CLEAR_TOOL_CALLS"})},[]),g=sn(E=>{r({type:"SET_SESSION_ID",payload:E})},[]),T=sn(E=>{r({type:"SET_MODE",payload:E})},[]),x=sn(E=>{r({type:"SET_PROVIDER",payload:E})},[]),C=sn(E=>{r({type:"SET_MODEL",payload:E})},[]),b=sn(E=>{r({type:"SET_TOKEN_USAGE",payload:E})},[]),A=sn(E=>{r({type:"SET_ERROR",payload:E})},[]),N=sn(E=>{r({type:"SET_LOADING",payload:E})},[]),R=NF(()=>({setStreamingState:i,appendToResponse:s,clearResponse:a,addHistoryItem:c,addHistoryItems:l,updateHistoryItem:u,clearHistory:f,addToolCall:p,updateToolCall:h,clearToolCalls:m,setSessionId:g,setMode:T,setProvider:x,setModel:C,setTokenUsage:b,setError:A,setLoading:N}),[i,s,a,c,l,u,f,p,h,m,g,T,x,C,b,A,N]);return bk(_k.Provider,{value:n,children:bk(Ak.Provider,{value:R,children:e})})}o(Gu,"UIStateProvider");function xc(){let e=Mk(_k);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}o(xc,"useUIState");function Tc(){let e=Mk(Ak);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}o(Tc,"useUIActions");function Ww(){let e=xc(),t=Tc();return{state:e,actions:t}}o(Ww,"useUI");function jw(){return ue()}o(jw,"useTheme");import{jsxs as vo,jsx as Wm,Fragment as BF}from"react/jsx-runtime";import{useMemo as FF}from"react";var HF=80,WF=7,jF={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function UF(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(UF,"getVisibleRange");function GF({suggestion:e,isSelected:t,width:n}){let r=jw(),i=e.icon||e.type&&jF[e.type]||"",s=i?_r(i)+1:0,a=_r(e.displayText||e.text),c=e.description?_r(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,f=Math.max(0,u),p=za(e.displayText||e.text,l),h=e.description?za(e.description,f):"";return vo(M,{children:[i&&vo(k,{color:t?r.colors.accent:r.colors.dim,children:[i," "]}),Wm(k,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),h&&vo(BF,{children:[Wm(k,{children:" "}),Wm(k,{color:r.colors.dim,children:za(e.description||"",f)})]}),t&&vo(k,{color:r.colors.accent,children:[" ","\u25C0"]})]})}o(GF,"SuggestionItem");function Vu({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=WF,width:i=HF,showCount:s=!1}){let a=jw();if(!n||e.length===0)return null;let{start:c,end:l}=FF(()=>UF(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return vo(M,{flexDirection:"column",marginLeft:2,children:[c>0&&vo(k,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((f,p)=>{let m=c+p===t;return Wm(GF,{suggestion:f,isSelected:m,width:i},f.id)}),l<e.length&&vo(k,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&vo(k,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}o(Vu,"SuggestionsDisplay");import{jsx as Cc,jsxs as VF}from"react/jsx-runtime";var jm=o(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let i=xo(),s=ue("dark");if(n)return null;if(!i)return e?Cc(M,{height:8}):null;let{state:a,suggestions:c}=i;return a.visible&&c.length>0?r==="overlay"?VF(M,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[Cc(k,{color:s.colors.accent,bold:!0,children:"Suggestions"}),Cc(Vu,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):Cc(M,{height:8,children:Cc(Vu,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?Cc(M,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as Lr,jsx as yr,Fragment as Uw}from"react/jsx-runtime";import KF,{useEffect as zF,useState as XF}from"react";var Ic=15,Lk=Math.max(1,Ic-2),Um=o(({confirm:e,request:t})=>e?Lr(M,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[Lr(k,{color:"yellow",bold:!0,children:[re("dialog.confirm")," ",e.prompt]}),e.planContent?yr(YF,{content:e.planContent}):null,e.instruction?yr(k,{dimColor:!0,children:e.instruction}):null]}):t?Lr(M,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?Lr(Uw,{children:[Lr(k,{color:"cyan",bold:!0,children:[re("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 Lr(Uw,{children:[c>0?yr(k,{dimColor:!0,children:re("select.more_above",{count:c})}):null,n.slice(a,a+r).map((u,f)=>{let p=a+f,h=p===i,m=t.selectedIndices?.includes(p)??!1,g=h?"\u276F ":" ",T=m?" \u2713":"",x=u.description?` - ${u.description}`:"";return yr(k,{color:h?"cyan":void 0,dimColor:!h,children:`${g}${u.label}${x}${T}`},`${u.value}-${p}`)}),l>0?yr(k,{dimColor:!0,children:re("select.more_below",{count:l})}):null]})})(),yr(k,{dimColor:!0,children:t.multiSelect?re("select.multiselect_hint"):re("select.navigate_hint")})]}):Lr(Uw,{children:[Lr(k,{color:"cyan",bold:!0,children:[re("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0?yr(k,{dimColor:!0,children:`${re("input.default")} ${t.defaultValue}`}):null,yr(k,{dimColor:!0,children:`${re("input.value")} ${t.buffer||re("input.type_response")}`}),yr(k,{dimColor:!0,children:re("select.confirm_hint")})]}),t.error?yr(k,{color:"red",children:t.error}):null]}):null,"DialogSurface"),YF=o(({content:e})=>{let t=KF.useMemo(()=>e.split(`
|
|
63
|
+
`),[e]),n=t.length,r=n>Ic,[i,s]=XF(0);zF(()=>{s(u=>{let f=Math.max(0,n-Ic);return u>f?f:u})},[n]),sc((u,f)=>{if(!r)return;let p=Math.max(0,n-Ic);f.upArrow?s(h=>Math.max(0,h-1)):f.downArrow?s(h=>Math.min(p,h+1)):f.pageUp?s(h=>Math.max(0,h-Lk)):f.pageDown&&s(h=>Math.min(p,h+Lk))},{isActive:!0});let a=t.slice(i,i+Ic),c=i,l=Math.max(0,n-i-Ic);return Lr(M,{flexDirection:"column",marginTop:1,children:[r&&c>0?Lr(k,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((u,f)=>yr(k,{children:u},`plan-line-${i+f}`)),r&&l>0?Lr(k,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,r?yr(k,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as Ku,jsx as qF}from"react/jsx-runtime";function Pk(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}o(Pk,"normalizePendingPreview");function Ok(e){if(e.length===0)return;let t=Pk(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(Ok,"formatPendingInputsSummary");function Gw(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:Pk(n)}))}o(Gw,"formatPendingInputsLines");function $k(e){let t=Gw(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($k,"formatPendingInputsBudgetText");var Gm=o(({pendingInputs:e})=>{let t=Gw(e);if(t.length===0)return null;let n=ue("dark");return Ku(M,{flexDirection:"column",children:[t.map(r=>Ku(M,{children:[Ku(k,{color:n.colors.hint,children:["\u23F3"," "]}),Ku(k,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),qF(M,{children:Ku(k,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as Nk}from"react/jsx-runtime";function JF(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}o(JF,"resolveNotificationColor");var zu=o(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=ue("dark");return t.length===0?null:Nk(M,{flexDirection:"column",paddingX:1,children:t.map(r=>Nk(k,{color:JF(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as Dk}from"react/jsx-runtime";var Vm=o(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=ue("dark");return Dk(M,{flexDirection:"column",paddingX:1,children:t.map((r,i)=>Dk(k,{color:n.colors.dim,children:r},`${r}-${i}`))})},"StatusNoticesSurface");import{jsxs as Bk,jsx as QF}from"react/jsx-runtime";var Xu=o(({text:e})=>{let t=e?.trim();if(!t)return null;let n=ue("dark");return Bk(M,{paddingX:1,children:[Bk(k,{color:n.colors.hint,children:["\u22EF"," "]}),QF(k,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as bs,jsxs as ZF}from"react/jsx-runtime";function Fk({text:e,accent:t=!1,selected:n=!1}){let r=ue("dark");return bs(M,{marginRight:1,children:bs(k,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}o(Fk,"Pill");var Yu=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:ZF(M,{flexDirection:"row",paddingX:1,children:[r?bs(M,{marginRight:1,children:bs(qn,{})}):null,i.map(s=>bs(Fk,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?bs(Fk,{text:t}):null,n?bs(k,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import{jsx as Ju,jsxs as oH}from"react/jsx-runtime";import eH from"string-width";var Vw=9,Kw=3,Hk=160,tH={shouldRender:!1,activeCount:0,rows:[]};function Wk(e,t=Vw){let n=eH(e);return n>=t?e:`${e}${" ".repeat(t-n)}`}o(Wk,"padChildActivitySymbol");function zw(e){let t=e.replace(/\s+/gu," ").trim();return t.length<=Hk?t:`${t.slice(0,Hk-3)}...`}o(zw,"truncateChildActivityDetail");function qu(e){return!!(e?.liveOnly===!0&&(e.workflowCorrelation||e.childAgentId))}o(qu,"shouldRouteToChildActivity");function jk(e,t){return!!(e?.liveOnly===!0&&e.workflowCorrelation?.workflowRunId&&t&&e.workflowCorrelation.workflowRunId===t)}o(jk,"shouldRouteWorkflowLiveOnlyNotice");function Uk(e){return!e.isTranscriptMode&&e.childActivityVisible&&(e.isLoading||e.hasWorkflowLiveSurface)}o(Uk,"shouldShowChildActivitySurface");function Xw(e){let t=e.childAgentId??e.workflowCorrelation?.childAgentId??"child",n=e.workflowCorrelation?.workflowRunId;return n?`${n}:${t}`:t}o(Xw,"childActivityId");function Gk(e){return e.childAgentName??e.childAgentId??e.workflowCorrelation?.childAgentId??"child"}o(Gk,"childActivityLabel");function Vk(e){return e.workflowCorrelation?"workflow":"normal"}o(Vk,"childActivitySource");function Kk(e,t){let n=t?.path??t?.pattern??t?.command??t?.preview,r=typeof n=="string"&&n.trim().length>0?` ${n}`:"";return zw(`${e}${r}`)}o(Kk,"toolActivityDetail");function zk(e,t){return e==="tool"&&["thinking","assistant","stream"].includes(t)}o(zk,"suppressesChurnOverToolAction");function nH(e){let t=Math.max(0,Math.floor(e/1e3)),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600);return i>0?`${i}h${String(r).padStart(2,"0")}m`:r>0?`${r}m${String(n).padStart(2,"0")}s`:`${n}s`}o(nH,"formatChildActivityElapsed");function rH(e){switch(e){case"assistant":return"Assistant";case"thinking":return"Thinking";case"tool":return"Tool";case"progress":return"Progress";case"prompt":return"Prompt";default:return"Status"}}o(rH,"kindLabel");function iH(e,t){let n=e.label.trim()||"child",r=e.startedAt!==void 0?` \xB7 ${nH(t-e.startedAt)}`:"",i=e.detail.trim(),s=i.length>0?`: ${i}`:"";return`${n}${r} - ${rH(e.kind)}${s}`}o(iH,"rowText");function Xk(e,t=Kw,n=Date.now()){let r=e.filter(u=>u.status==="running");if(r.length===0)return tH;let i=Math.max(1,Math.floor(t)),s=[],a=r.length>i&&i>1?i-1:i,c=r.slice(0,a);for(let u of c)s.push({kind:"activity",id:u.id,symbol:u.source==="workflow"?"agent":"child",symbolColor:"cyan",text:iH(u,n),isActive:!0});let l=r.length-c.length;return l>0&&s.length<i&&s.push({kind:"summary",id:"children-more",symbol:"more",symbolColor:"dim",text:`${l} more active`,isActive:!1}),{shouldRender:!0,activeCount:r.length,rows:s.slice(0,i)}}o(Xk,"buildChildActivityViewModel");var Yk=Vw;function sH(e){let t=ue("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;default:return t.colors.dim}}o(sH,"resolveSymbolColor");var aH=o(({row:e})=>{let t=sH(e.symbolColor);return oH(M,{flexDirection:"row",children:[Ju(M,{width:Yk,flexShrink:0,children:Ju(k,{color:t,bold:e.isActive,wrap:"truncate",children:Wk(e.symbol,Yk)})}),Ju(k,{color:e.kind==="summary"?ue("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"ChildActivityRowView");function Km(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}o(Km,"measureChildActivitySurfaceRows");var zm=o(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:Ju(M,{flexDirection:"column",flexGrow:1,children:e.rows.map(t=>Ju(aH,{row:t},`${t.kind}-${t.id}`))}),"ChildActivitySurface");import qk,{createContext as Zk,useContext as eE,useReducer as cH,useCallback as it,useRef as Jk,useEffect as Qk}from"react";function lH(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}o(lH,"isPendingPromptForAgent");function Xm(e){return dr().getSnapshot().filter(t=>lH(t,e))}o(Xm,"getPendingPrompts");function Yw(e){return Xm(e).map(t=>t.content)}o(Yw,"getPendingPromptContents");var qw={state:kr.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 Ym(e={}){let t=o(()=>e.getPendingInputAgentId?.(),"getPendingInputAgentId"),n={...qw,pendingInputs:Yw(t())},r=new Set,i="",s="",a=0,c=null,l=!1,u=80,f=o(()=>{for(let x of r)x(n)},"notify"),p=o(()=>{let x=Yw(t());if(x.length===n.pendingInputs.length){let C=!0;for(let b=0;b<x.length;b++)if(x[b]!==n.pendingInputs[b]){C=!1;break}if(C)return}n={...n,pendingInputs:x},f()},"syncReactStateFromQueue"),h=dr().subscribe(()=>{p()}),m=o(()=>dr().dequeue({agentId:t(),maxPriority:"user",mode:"prompt"}).map(C=>C.content),"drainOurSlice"),g=o(()=>{if(c&&(clearTimeout(c),c=null),i||s||a>0){let C=n.thinkingContent+s,b=s?C.length:n.thinkingCharCount+a;n={...n,currentResponse:n.currentResponse+i,thinkingContent:C,thinkingCharCount:b,...s||a>0?{isThinking:!0}:{}},i="",s="",a=0,f()}},"flushPendingUpdates"),T=o(()=>{c||(c=setTimeout(g,u))},"scheduleFlush");return{getState:o(()=>n,"getState"),setState:o(x=>{g(),n={...n,state:x},f()},"setState"),startStreaming:o(()=>{l=!1,i="",s="",a=0,c&&(clearTimeout(c),c=null),n={...n,state:kr.Responding,currentResponse:"",abortController:new AbortController,error:void 0,roundStartedAt:Date.now()},f()},"startStreaming"),stopStreaming:o(()=>{g(),n={...n,state:kr.Idle,abortController:void 0,roundStartedAt:null},f()},"stopStreaming"),appendResponse:o(x=>{l||(i+=x,T())},"appendResponse"),clearResponse:o(()=>{g(),n={...n,currentResponse:""},f()},"clearResponse"),setError:o(x=>{g(),n={...n,error:x,state:x?kr.Idle:n.state},f()},"setError"),abort:o(x=>{l=!0,g(),n.abortController?.abort(),i="",s="",a=0,c&&(clearTimeout(c),c=null),x?.preservePendingInputs||m(),n={...n,state:kr.Idle,abortController:void 0,roundStartedAt:null},f()},"abort"),reset:o(()=>{l=!0,g(),n.abortController?.abort(),i="",s="",a=0,c&&(clearTimeout(c),c=null),m(),n={...qw,pendingInputs:Yw(t())},l=!1,f()},"reset"),isStreaming:o(()=>n.state===kr.Responding||n.state===kr.WaitingForConfirmation,"isStreaming"),subscribe:o(x=>(r.add(x),()=>{r.delete(x)}),"subscribe"),startThinking:o(()=>{g(),n={...n,isThinking:!0,thinkingCharCount:0,thinkingContent:""},f()},"startThinking"),appendThinkingChars:o(x=>{l||(a+=x,T())},"appendThinkingChars"),appendThinkingContent:o(x=>{l||(s+=x,T())},"appendThinkingContent"),stopThinking:o(()=>{g(),n={...n,isThinking:!1,thinkingCharCount:0},f()},"stopThinking"),clearThinkingContent:o(()=>{g(),n={...n,isThinking:!1,thinkingCharCount:0,thinkingContent:""},f()},"clearThinkingContent"),setCurrentTool:o(x=>{g(),n={...n,currentTool:x,toolInputCharCount:0,toolInputContent:""},f()},"setCurrentTool"),appendToolInputChars:o(x=>{n={...n,toolInputCharCount:n.toolInputCharCount+x},f()},"appendToolInputChars"),appendToolInputContent:o(x=>{n.toolInputContent.length<240&&(n={...n,toolInputContent:(n.toolInputContent+x).slice(0,240)},f())},"appendToolInputContent"),clearToolInputContent:o(()=>{n={...n,toolInputContent:""},f()},"clearToolInputContent"),getSignal:o(()=>n.abortController?.signal,"getSignal"),getFullResponse:o(()=>n.currentResponse+i,"getFullResponse"),getThinkingContent:o(()=>n.thinkingContent+s,"getThinkingContent"),startNewIteration:o(x=>{g(),n.thinkingContent||n.currentResponse?n={...n,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:x}:n={...n,currentIteration:x},f()},"startNewIteration"),clearIterationHistory:o(()=>{g(),n={...n,iterationHistory:[],currentIteration:1,maxIter:qw.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},f()},"clearIterationHistory"),setMaxIter:o(x=>{g(),n={...n,maxIter:x},f()},"setMaxIter"),startCompacting:o(()=>{g(),n={...n,isCompacting:!0},f()},"startCompacting"),stopCompacting:o(()=>{g(),n={...n,isCompacting:!1},f()},"stopCompacting"),addPendingInput:o((x,C)=>{let b=x.trim();b&&(Xm(t()).length>=5||(g(),dr().enqueue({agentId:t(),priority:"user",mode:"prompt",delivery:C?.delivery,content:b})))},"addPendingInput"),removeLastPendingInput:o(()=>{let x=Xm(t()),C=x[x.length-1];C&&(g(),dr().dequeue({agentId:t(),maxPriority:"user",mode:"prompt",id:C.id}))},"removeLastPendingInput"),peekPendingInputDelivery:o(()=>Xm(t())[0]?.delivery,"peekPendingInputDelivery"),shiftPendingInput:o(()=>(g(),dr().dequeue({agentId:t(),maxPriority:"user",mode:"prompt",limit:1})[0]?.content),"shiftPendingInput"),clearPendingInputs:o(()=>{g(),m()},"clearPendingInputs"),consumePendingInputs:o(()=>(g(),m()),"consumePendingInputs"),dispose:o(()=>{h()},"dispose")}}o(Ym,"createStreamingManager");var tE=Zk(null),nE=Zk(null);function Zu({children:e,onStateChange:t,getPendingInputAgentId:n}){let r=Jk(n);r.current=n;let i=Jk(void 0);i.current||(i.current=Ym({getPendingInputAgentId:o(()=>r.current?.(),"getPendingInputAgentId")}));let s=i.current,[,a]=cH(ie=>ie+1,0);Qk(()=>s.subscribe(be=>{a(),t?.(be)}),[s,t]),Qk(()=>()=>{s.dispose()},[s]);let c=it(()=>{s.startStreaming()},[]),l=it(()=>{s.stopStreaming()},[]),u=it(ie=>{s.appendResponse(ie)},[]),f=it(()=>{s.clearResponse()},[]),p=it(ie=>{s.setError(ie)},[]),h=it(ie=>{s.abort(ie)},[]),m=it(()=>{s.reset()},[]),g=it(()=>{s.startThinking()},[]),T=it(ie=>{s.appendThinkingChars(ie)},[]),x=it(ie=>{s.appendThinkingContent(ie)},[]),C=it(()=>{s.stopThinking()},[]),b=it(()=>{s.clearThinkingContent()},[]),A=it(ie=>{s.setCurrentTool(ie)},[]),N=it(ie=>{s.appendToolInputChars(ie)},[]),R=it(ie=>{s.appendToolInputContent(ie)},[]),E=it(()=>{s.clearToolInputContent()},[]),P=it(()=>s.getSignal(),[]),B=it(()=>s.getFullResponse(),[]),$=it(()=>s.getThinkingContent(),[]),V=it(ie=>{s.startNewIteration(ie)},[]),ne=it(()=>{s.clearIterationHistory()},[]),z=it(ie=>{s.setMaxIter(ie)},[]),y=it(()=>{s.startCompacting()},[]),_=it(()=>{s.stopCompacting()},[]),ee=it((ie,be)=>{s.addPendingInput(ie,be)},[]),j=it(()=>{s.removeLastPendingInput()},[]),de=it(()=>s.shiftPendingInput(),[]),pe=it(()=>s.peekPendingInputDelivery(),[]),ge=it(()=>{s.clearPendingInputs()},[]),Me=it(()=>s.consumePendingInputs(),[]),Ee={startStreaming:c,stopStreaming:l,appendResponse:u,clearResponse:f,setError:p,abort:h,reset:m,startThinking:g,appendThinkingChars:T,appendThinkingContent:x,stopThinking:C,clearThinkingContent:b,setCurrentTool:A,appendToolInputChars:N,appendToolInputContent:R,clearToolInputContent:E,getSignal:P,getFullResponse:B,getThinkingContent:$,startNewIteration:V,clearIterationHistory:ne,setMaxIter:z,startCompacting:y,stopCompacting:_,addPendingInput:ee,removeLastPendingInput:j,peekPendingInputDelivery:pe,shiftPendingInput:de,clearPendingInputs:ge,consumePendingInputs:Me};return qk.createElement(tE.Provider,{value:s.getState()},qk.createElement(nE.Provider,{value:Ee},e))}o(Zu,"StreamingProvider");function vc(){let e=eE(tE);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}o(vc,"useStreamingState");function bc(){let e=eE(nE);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}o(bc,"useStreamingActions");function Jw(){let e=vc(),t=bc(),n=e.state===kr.Responding||e.state===kr.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}o(Jw,"useStreaming");import{useCallback as uH,useRef as dH}from"react";var fH=500;function rE(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:i=!0}=e,s=dH(0),{exit:a}=ei(),c=uH(l=>{if(!i)return!1;if(l.name==="escape"){let u=Date.now(),f=u-s.current<fH;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 Yn(c,{isActive:i}),{lastEscTime:s.current}}o(rE,"useKeypress");function iE(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(iE,"createKeyMatcher");import{useCallback as oE,useSyncExternalStore as pH}from"react";function mH(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}o(mH,"isQueuedPromptForAgent");var Qw=null,qm=new Map;function hH(e){let t=dr().getSnapshot();t!==Qw&&(Qw=t,qm.clear());let n=qm.get(e);if(n!==void 0)return n;let r=Object.freeze(t.filter(i=>mH(i,e)));return qm.set(e,r),r}o(hH,"getQueueSliceSnapshot");function Zw(e){let t=oE(r=>dr().subscribe(r),[]),n=oE(()=>hH(e),[e]);return pH(t,n,n)}o(Zw,"useQueuedPrompts");function sE(e){return Zw(e).map(n=>n.content)}o(sE,"useQueuedPromptContents");function aE(){Qw=null,qm.clear()}o(aE,"_resetQueuedPromptsCacheForTests");var Rc="Runtime state: run active until this approval is resolved.";function Jm(e,t){if(!t.confirmed)return{type:"reject",reason:"User rejected the tool call."};if(t.runtimeGrantKind===void 0)return{type:"allow_once"};let n=e.grantSuggestions?.find(r=>r.kind===t.runtimeGrantKind);return n?t.runtimeGrantKind==="session"?{type:"allow_session",suggestionId:n.id}:{type:"allow_always",suggestionId:n.id}:{type:"reject",reason:"Runtime grant suggestion expired."}}o(Jm,"resolveReplRuntimePermissionDecision");function kc(e){let t=e.classifierModelEnv??e.classifierModel;return{engine:e.engine,...t!==void 0?{classifierModel:t}:{},...e.timeoutMs!==void 0?{timeoutMs:e.timeoutMs}:{},...e.speculativeWindowMs!==void 0?{speculativeWindowMs:e.speculativeWindowMs}:{}}}o(kc,"toReplRuntimeAutoModeSettings");async function Ec(e){let t=e.existingArtifactLedger?.map(n=>({...n,metadata:n.metadata?{...n.metadata}:void 0}));return{messages:e.existingMessages??[],uiHistory:e.existingUiHistory?.map(n=>({...n})),lineage:e.existingLineage??void 0,artifactLedger:t,extensionState:e.existingExtensionState?structuredClone(e.existingExtensionState):void 0,extensionRecords:e.existingExtensionRecords?.map(n=>({...n})),extensionStateDirty:!1,extensionRecordsDirty:!1,sessionSnapshotDirty:!1,sessionId:e.sessionId??Rs(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}o(Ec,"createInteractiveContext");function Rs(){return wI()}o(Rs,"generateSessionId");function Pr(e){e.lastAccessed=new Date().toISOString()}o(Pr,"touchContext");async function Mc(e){let t=await UI({userKodaxDir:RI(),projectRoot:e.projectRoot}),n;return{getGuardrail:o(()=>n||(n=BI({rules:t.merged,getToolProjection:o(i=>(ql(i)??fy(i))?.toClassifierInput,"getToolProjection"),getToolSideEffect:o(i=>(ql(i)??fy(i))?.sideEffect,"getToolSideEffect"),resolveProvider:o(i=>{try{return qo(i)}catch{return}},"resolveProvider"),defaultProvider:e.getCurrentProviderName(),defaultModel:e.getCurrentModel()??"",getDefaultProvider:e.getCurrentProviderName,getDefaultModel:o(()=>e.getCurrentModel()??"","getDefaultModel"),askUser:e.askUser,allowOnClassifierFailure:o(i=>kv(i,e.projectRoot,e.executionCwd),"allowOnClassifierFailure"),admitWorkspaceSandboxCall:e.admitWorkspaceSandboxCall,log:e.log,onEngineChange:e.onEngineChange,sharedState:e.sharedState,projectRoot:e.projectRoot,executionCwd:e.executionCwd,trustProcessEnvironmentPathExpansion:e.trustProcessEnvironmentPathExpansion!==!1,extraCollectors:e.extraCollectors,extraAbsoluteDenyChecks:[Ev],initialEngine:e.autoModeSettings.engine,timeoutMs:e.autoModeSettings.timeoutMs,userSettings:e.autoModeSettings.classifierModel,envVar:e.autoModeSettings.classifierModelEnv,speculativeWindowMs:e.autoModeSettings.speculativeWindowMs}),n),"getGuardrail"),rulesLoadResult:t}}o(Mc,"bootstrapAutoMode");import{exec as gH}from"child_process";import{promisify as yH}from"util";var wH=yH(gH),SH={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function cE(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(cE,"splitTopLevelCommaList");function xH(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:cE(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=SH[i[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=i[2]?cE(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(xH,"parseAllowedTools");function TH(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}o(TH,"wildcardToRegExp");function lE(e,t){return TH(e).test(t)}o(lE,"matchesPattern");function uE(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=>lE(a,i)))}o(uE,"isToolAllowed");function CH(e,t){return e.matcher?lE(e.matcher,t):!0}o(CH,"hookMatches");function IH(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(IH,"resolveModelOverride");function vH(e,t){if(!t)return e;let n=t.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`/(?:skill:)?${n}(?![\\w/-])`,"i"),`the active Skill "${t.name}"`).trim()||`Execute the active Skill "${t.name}".`}o(vH,"buildModelUserInput");async function bH(e,t,n,r,i,s,a){let c=typeof n.displayName=="string"?n.displayName:"frontmatter invocation",l={command:t.command,_reason:`Frontmatter hook ${e} for ${c}`,_frontmatterHook:!0,_hookEvent:e,_hookMatcher:t.matcher};if(!uE(s,"bash",l))return{allow:!1,message:`Hook ${e} for ${c} is blocked by allowed-tools policy.`};let u=await i.beforeToolExecute?.("bash",l);if(u!==!0)return{allow:!1,message:typeof u=="string"?u:`Hook ${e} for ${c} was blocked by the current permission policy.`};try{let{stdout:f,stderr:p}=await wH(t.command,{cwd:a,env:{...process.env,KODAX_HOOK_EVENT:e,KODAX_HOOK_PAYLOAD:JSON.stringify(n)},maxBuffer:1048576,windowsHide:!0}),h=[f.trim(),p.trim()].filter(Boolean).join(`
|
|
65
|
+
`);h&&i.onToolResult?.({id:`frontmatter-hook:${e}`,name:"bash",content:h}),p.trim()&&await r(`[Hook ${e} stderr] ${p.trim()}`);let m=f.trim();if(!m)return{};try{let g=JSON.parse(m);return{allow:typeof g.allow=="boolean"?g.allow:typeof g.continue=="boolean"?g.continue:void 0,message:typeof g.message=="string"?g.message:void 0,additionalContext:typeof g.additionalContext=="string"?g.additionalContext:typeof g.additional_context=="string"?g.additional_context:void 0}}catch{return e==="PreToolUse"?{allow:!1,message:`Hook ${e} for ${c} returned invalid JSON.`}:{message:m,additionalContext:m}}}catch(f){let p=f instanceof Error?f.message:String(f);return await r(`[Hook ${e} failed] ${p}`),e==="PreToolUse"?{allow:!1,message:`Hook ${e} for ${c} failed.`}:{}}}o(bH,"executeHookCommand");async function _c(e,t,n,r,i,s,a,c){let l=e?.[t];if(!l||l.length===0)return{};let u={};for(let f of l){if(!CH(f,n))continue;let p=await bH(t,f,r,i,s,a,c);if(p.message&&await i(`[Hook ${t}] ${p.message}`),p.additionalContext&&(u.additionalContext=u.additionalContext?`${u.additionalContext}
|
|
66
|
+
${p.additionalContext}`:p.additionalContext),p.allow===!1){u.allow=!1;break}}return u}o(_c,"runHooks");async function ks(e,t,n,r){let i=e.events??{},s=xH(t.allowedTools),a=t.source==="skill"&&t.skillInvocation!==void 0,c=a?t.skillInvocation:void 0,l=e.context?.executionCwd??e.context?.gitRoot??process.cwd(),u=IH(e.provider,t.model),f=!1,p=o(async R=>{if(r(R),!(f||!t.hooks?.Notification?.length)){f=!0;try{await _c(t.hooks,"Notification",R,{displayName:t.displayName,source:t.source,path:t.path,message:R},async E=>{r(E)},i,s,l)}finally{f=!1}}},"emitWithNotifications");t.model&&!u&&await p(`[Info] Model preference '${t.model}' is not supported by provider '${e.provider}', using the current model.`),s.invalidEntries.length>0&&await p(`[Warning] ${t.displayName} has invalid allowed-tools entries: ${s.invalidEntries.join(", ")}`),s.configured&&s.rules.length===0&&await p(`[Warning] ${t.displayName} has no valid allowed-tools entries, so all tool execution will be blocked.`);let h=await _c(t.hooks,"SessionStart",t.displayName,{displayName:t.displayName,source:t.source,path:t.path},p,i,s,l);if(h.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped before execution.`,finalize:o(async()=>{},"finalize")};let m=await _c(t.hooks,"UserPromptSubmit",n,{displayName:t.displayName,source:t.source,prompt:n,path:t.path},p,i,s,l);if(m.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped by a UserPromptSubmit hook.`,finalize:o(async()=>{},"finalize")};let g=[t.agent?`Preferred agent: ${t.agent}`:void 0,h.additionalContext,m.additionalContext].filter(R=>typeof R=="string"&&R.trim().length>0),T=vH(n,c),x=[e.context?.promptOverlay,...g,c?void 0:t.prompt].filter(R=>typeof R=="string"&&R.trim().length>0),C=[g.length>0?g.join(`
|
|
67
|
+
|
|
68
|
+
`):void 0,c?void 0:t.prompt,`User request: ${T}`].filter(R=>typeof R=="string"&&R.trim().length>0),b={...i,beforeToolExecute:o(async(R,E,P)=>uE(s,R,E)?(await _c(t.hooks,"PreToolUse",R,{tool:R,input:E,displayName:t.displayName,source:t.source,path:t.path},p,i,s,l)).allow===!1?(await p(`[Blocked] PreToolUse hook blocked '${R}' for ${t.displayName}`),!1):i.beforeToolExecute?await i.beforeToolExecute(R,E,P):!0:(await p(`[Blocked] Tool '${R}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:o((R,E)=>{i.onToolResult?.(R,E),_c(t.hooks,"PostToolUse",R.name,{...R,displayName:t.displayName,source:t.source,path:t.path},p,i,s,l)},"onToolResult")},A=!1,N=o(async R=>{A||(A=!0,await _c(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:R?.message},p,i,s,l))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:C.join(`
|
|
69
|
+
|
|
70
|
+
`),options:{...e,modelOverride:u,context:{...e.context,...t.workflowIntent?{workflowIntent:t.workflowIntent}:{},rawUserInput:n,...x.length>0?{promptOverlay:x.join(`
|
|
71
|
+
|
|
72
|
+
`)}:{},skillInvocation:t.source==="skill"?t.skillInvocation&&{...t.skillInvocation,runtimePolicy:{enforceAtRuntime:!0}}:e.context?.skillInvocation},events:a?i:b},finalize:N}}o(ks,"prepareInvocationExecution");var Es=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,actorSnapshot:n.actorSnapshot??r?.actorSnapshot,extensionRecords:n.extensionRecords??r?.extensionRecords,tag:n.tag??r?.tag,lineage:Qe(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 loadFullLineage(t){return this.getLineage(t)}async setActiveEntry(t,n,r){let i=this.sessions.get(t);if(!i?.lineage)return null;let s=Ca(i.lineage,n,r);if(!s)return null;let a={...structuredClone(i),messages:_t(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=Ia(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=Ci(i.lineage,n);if(!s)return null;let a=r?.sessionId??await ka(),c={messages:_t(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??ba(r.lineage);if(!i)return null;let s=Ra(r.lineage,i);if(!s)return null;let a={...r,messages:_t(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?ro(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 dE(){return new Es}o(dE,"createMemorySessionStorage");import*as fE from"child_process";import*as pE from"util";import Qm from"chalk";var RH=pE.promisify(fE.exec),kH={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function ed(e,t={}){let n={...kH,...t},r=e.trim(),i=LI(r);if(i)return i.startsWith("[Blocked]")&&(console.log(Qm.yellow(`
|
|
73
|
+
${i}`)),console.log()),i;try{console.log(Qm.dim(`
|
|
74
|
+
[Executing: ${r}]`));let{stdout:s,stderr:a}=await RH(r,{cwd:n.cwd,maxBuffer:n.maxBuffer,timeout:n.timeout,windowsHide:!0}),c="";return s&&(c+=s),a&&(c+=(c?`
|
|
75
|
+
`:"")+`[stderr] ${a}`),c.length>n.maxOutputLength&&(c=c.slice(0,n.maxOutputLength)+`
|
|
76
|
+
...[output truncated]`),console.log(Qm.dim(c||"[No output]")),console.log(),`[Shell command executed: ${r}]
|
|
77
|
+
|
|
78
|
+
Output:
|
|
79
|
+
${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)+`
|
|
80
|
+
...[error truncated]`),console.log(Qm.red(`
|
|
81
|
+
[Shell Error: ${c}]`)),console.log(),`[Shell command failed: ${r}]
|
|
82
|
+
|
|
83
|
+
Error: ${c}`}}o(ed,"executeShellCommand");async function eS(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return ed(n,t)}return e}o(eS,"processSpecialSyntax");function mE(e){return e.trim().startsWith("!")}o(mE,"isShellCommand");function hE(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}o(hE,"isShellCommandSuccess");function td(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}o(td,"isShellCommandHandled");var gE=150,yE=50;function SE(e){if(e.length===0)return[];let t=[];for(let s=0;s<e.length;s+=1)e[s]?.type==="user"&&t.push(s);let n=[...e];if(t.length>yE){let s=t[t.length-yE]??0;n=e.slice(s)}if(n.length<=gE)return[...n];let r=n.slice(-gE),i=r.findIndex(s=>s.type==="user");return i>0?r.slice(i):r}o(SE,"trimHistoryWindow");function ii(e){return SE(e)}o(ii,"trimPersistedUiHistorySnapshot");function bo(e){if(e)return ii(e)}o(bo,"normalizePersistedUiHistory");function EH(e){let t=e.timestamp===void 0?{}:{timestamp:e.timestamp};switch(e.type){case"assistant":return{type:"assistant",text:e.text,...t,...e.compactText?{compactText:e.compactText}:{}};case"thinking":return{type:"thinking",text:e.text,...t,...e.compactText?{compactText:e.compactText}:{}};case"event":return{type:"event",text:e.text,...t,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"info":return{type:"info",text:e.text,...t,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"user":return{type:"user",text:e.text,...t};case"system":return{type:"system",text:e.text,...t};case"error":return{type:"error",text:e.text,...t};case"hint":return{type:"hint",text:e.text,...t};case"sidecar":{let n=e.icon;if(n==="budget-exhausted")return{type:"sidecar",text:e.text,delivery:"budget-exhausted",...t};let r=n==="blocked"?"blocked":"revise";return{type:"sidecar",text:e.text,verdict:r,...t}}}}o(EH,"toCreatableTextHistoryItem");function MH(e){if(e.type!=="tool_group")return EH(e);let t=e.tools.map(lp);return t.length>0?{type:"tool_group",tools:t,...e.timestamp===void 0?{}:{timestamp:e.timestamp}}:void 0}o(MH,"persistedUiHistoryItemToCreatableHistoryItem");function tS(e){let t=new Set,n=[];for(let r of e){if(r.type!=="tool_group"){n.push(r);continue}let i=r.tools.filter(s=>t.has(s.id)?!1:(t.add(s.id),!0));i.length>0&&n.push({...r,tools:i})}return n}o(tS,"dedupeToolGroups");function _H(e,t){if(e.type!==t.type)return!1;if(e.type==="tool_group"&&t.type==="tool_group")return e.tools.map(i=>i.id).join(`
|
|
84
|
+
`)===t.tools.map(i=>i.id).join(`
|
|
85
|
+
`);if(e.type==="tool_group"||t.type==="tool_group")return!1;let n=e.text.trim(),r=t.text.trim();return n===r||wE(n,r)||wE(r,n)}o(_H,"matchesTimestampSource");function wE(e,t){if(!e.endsWith(t))return!1;let n=e.slice(0,-t.length);return/^\[[^\]\r\n]+\]\s+$/.test(n)}o(wE,"hasDisplayPrefix");function AH(e,t){let n=new Map,r=e.length-1;for(let i=t.length-1;i>=0;i-=1){let s=t[i];if(!(!s||s.type==="tool_group"))for(let a=r;a>=0;a-=1){let c=e[a];if(!(!c||c.type==="tool_group")&&_H(c,s)){n.set(i,a),r=a-1;break}}}return n}o(AH,"alignCanonicalTextItems");function LH(e,t){if(e.type==="tool_group"||t.type==="tool_group")return e;let n=t.timestamp??e.timestamp,r=n===void 0?{}:{timestamp:n};switch(e.type){case"assistant":case"thinking":return{...e,...r,...t.type===e.type&&t.compactText?{compactText:t.compactText}:{}};case"event":case"info":return{...e,...r,...t.type===e.type&&t.icon?{icon:t.icon}:{},...t.type===e.type&&t.compactText?{compactText:t.compactText}:{}};case"sidecar":return t.type==="sidecar"?{...e,...r,verdict:t.verdict,delivery:t.delivery}:e;default:return{...e,...r}}}o(LH,"overlayCanonicalTextItem");function PH(e,t,n,r){if(e.type!=="event"||e.icon!=="tool")return!1;let i=e.text.trimStart();if(!i.startsWith("\u2699")||n===void 0&&r===void 0)return!1;let s=i.slice(1).trimStart(),a=n===void 0?0:n+1,c=r??t.length;return t.slice(a,c).some(l=>l.type==="tool_group"&&l.tools.some(u=>s===u.name||s.startsWith(`${u.name}(`)||s.startsWith(`${u.name} `)))}o(PH,"isLegacyToolSummary");function OH(e){let t=new Map;for(let n of e)if(n.type==="tool_group")for(let r of n.tools)t.has(r.id)||t.set(r.id,{tool:r,timestamp:n.timestamp});return t}o(OH,"collectPersistedTools");function $H(e){let t=new Set;for(let n of e)if(n.type==="tool_group")for(let r of n.tools)t.add(r.id);return t}o($H,"collectCanonicalToolIds");function NH(e,t,n){let r=new Map,i=new Set,s=AH(e,t);for(let[a,c]of s)a<n?i.add(c):r.set(a-n,c);return{anchors:r,outOfWindowPersistedIndices:i}}o(NH,"alignCanonicalWindow");function DH(e,t,n,r){return t.map((i,s)=>{if(i.type!=="tool_group"){let l=n.get(s),u=l===void 0?void 0:e[l];return u?LH(i,u):i}let a=i.tools.map(l=>r.get(l.id)?.tool??l),c=a.map(l=>r.get(l.id)?.timestamp).find(l=>l!==void 0)??i.timestamp;return{...i,tools:a,...c===void 0?{}:{timestamp:c}}})}o(DH,"buildCanonicalItems");function BH(e){let t=new Map;for(let[n,r]of e)t.set(r,n);return t}o(BH,"invertAnchors");function FH(e,t){let n=new Array(e),r;for(let i=e-1;i>=0;i-=1){let s=t.get(i);s===void 0?n[i]=r:r=s}return n}o(FH,"nextDerivedAnchors");function HH(e,t,n){if(e.type==="tool_group"){let i=e.tools.filter(s=>!t.has(s.id));return i.length>0?{...e,tools:i,isSessionUiOnly:!0}:void 0}return(e.type==="assistant"||e.type==="thinking"||e.type==="user"&&!e.text.trimStart().startsWith("/"))&&!n?void 0:{...e,isSessionUiOnly:!0}}o(HH,"markUiOnlyItem");function WH(e,t,n,r,i,s){let a=BH(t),c=FH(e.length,a),l=Math.max(-1,...a.keys()),u=new Map,f;for(let p=0;p<e.length;p+=1){let h=a.get(p);if(h!==void 0){f=h;continue}let m=e[p];if(!m||n.has(p))continue;let g=c[p];if(PH(m,r,f,g))continue;let T=HH(m,i,s);if(!T)continue;let x=t.size===0||p>l?r.length:f===void 0?g??0:f+1,C=u.get(x)??[];C.push(T),u.set(x,C)}return u}o(WH,"collectUiOnlyInsertions");function jH(e,t){let n=[];for(let r=0;r<=e.length;r+=1){n.push(...t.get(r)??[]);let i=e[r];i&&n.push(i)}return n}o(jH,"mergeAtCanonicalBoundaries");function UH(e,t,n,r,i){let s=NH(e,n,r),a=DH(e,t,s.anchors,OH(e)),c=WH(e,s.anchors,s.outOfWindowPersistedIndices,a,$H(n),i);return jH(a,c)}o(UH,"enrichCanonicalUiHistory");function nd(e){let t=bo(e.uiHistory),n=!!t?.length,r=up(e.messages).filter(l=>!n||l.type!=="task_completed").map(so),i=SE(r);if(!t||t.length===0)return tS(i);let s=tS(t.map(MH).filter(l=>!!l)),a=i[0],c=a===void 0?r.length:r.indexOf(a);return tS(UH(s,i,r,c,e.messages.length===0))}o(nd,"restoreHistoryItemsFromSession");async function Ac(e,t){return(await e.list(t,{limit:1e3})).find(r=>r.msgCount>0)}o(Ac,"findMostRecentResumableSession");function rd(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(rd,"createRetryHistoryItem");function xE(e,t,n,r){e(rd(t,n,r))}o(xE,"emitRetryHistoryItem");function id(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(id,"createRecoveryHistoryItem");function TE(e,t){e(id(t))}o(TE,"emitRecoveryHistoryItem");import{createHash as iS}from"node:crypto";var GH=16,VH=4*1024,CE=512,IE="kodax-conversation-entry-chain-v1\0",KH="kodax-conversation-history-v2\0";function nh(){return`sha256:${iS("sha256").update(IE).digest("hex")}`}o(nh,"emptyConversationEntryChain");function Lc(e,t){let n=e;for(let r of t){let i=JSON.stringify(r);n=`sha256:${iS("sha256").update(IE).update(n).update(`${Buffer.byteLength(i,"utf8")}:`).update(i).digest("hex")}`}return n}o(Lc,"extendConversationEntryChain");function Ms(e){return Lc(nh(),e)}o(Ms,"createConversationEntryChain");function _s(e,t=Ms(e.entries)){return`sha256:${iS("sha256").update(KH).update(t).update(JSON.stringify({sourceRevision:e.sourceRevision,status:e.status,issues:e.issues})).digest("hex")}`}o(_s,"createSessionConversationHistoryRevision");function vE(e){return e.type==="message"||e.type==="compaction"||e.type==="branch_summary"}o(vE,"isThreadEntry");function rh(e){return e._source==="managed-run-context"||e._source==="managed-runtime-context"}o(rh,"isManagedContextMessage");function $i(e){return e.type!=="message"?!1:!rh(e.message)}o($i,"isOrdinaryConversationMessageEntry");function Zm(e,t,n){let r=[],i=new Set,s=t.get(e),a=s!==void 0,c=0;for(;s!==void 0;){if(c%256===0&&n?.(),c+=1,i.has(s.id)){a=!1;break}if(i.add(s.id),r.push(s),s.parentId===null)break;let l=t.get(s.parentId);l===void 0&&(a=!1),s=l}return{entries:r.reverse(),complete:a}}o(Zm,"threadPath");function eh(e){return ih(e).length>0}o(eh,"hasExplicitProvenance");function ih(e){return[...new Set([...e.logicalId!==void 0&&e.logicalId!==e.id?[e.logicalId]:[],...e.sourceEntryId!==void 0&&e.sourceEntryId!==e.id?[e.sourceEntryId]:[]])]}o(ih,"explicitProvenanceKeys");function nS(e,t){let n=new Set([e.id,e.logicalId,e.sourceEntryId]);return ih(t).every(r=>n.has(r))}o(nS,"provenanceMatches");function zH(e,t,n){let r=-1;for(let s=0;s<t.length;s+=1)if(s>0&&s%256===0&&n?.(),eh(t[s])){r=s;break}if(r<0){let s=[],a=Math.max(0,e.length-t.length);for(let l=a;l<e.length;l+=1)l>a&&l%256===0&&n?.(),s.push(Ro(e[l].message));let c=[];for(let l=0;l<t.length;l+=1)l>0&&l%256===0&&n?.(),c.push(Ro(t[l].message));return oS(s,c,n).length>0}let i=Math.max(0,e.length-t.length);for(let s=0;s<e.length;s+=1){s%256===0&&n?.();let a=e[s],c=s-r;if(c<i||!nS(a,t[r]))continue;let l=e.length-c,u=l<=t.length;for(let f=0;u&&f<l;f+=1){f>0&&f%256===0&&n?.();let p=e[c+f],h=t[f];u=eh(h)?nS(p,h):sd(p.message,h.message)}if(u)return!0}return!1}o(zH,"retainedSuffixMatches");function XH(e,t,n,r,i){let s=[],a=new Map,c=new Map;for(let m=0;m<e.length;m+=1){m>0&&m%256===0&&i?.();let g=e[m];vE(g)&&(c.set(g.id,s.length),s.push(g),a.set(g.id,g))}let l=new Set;for(let m=0;m<s.length;m+=1){m>0&&m%256===0&&i?.();let g=s[m].parentId;g!==null&&l.add(g)}let u=[];for(let m=0;m<s.length;m+=1){m>0&&m%256===0&&i?.();let g=s[m];l.has(g.id)||u.push({leaf:g,path:Zm(g.id,a,i)})}let f=[];for(let m=0;m<u.length;m+=1)m>0&&m%256===0&&i?.(),u[m].path.complete||f.push(u[m]);if(f.length>0)return r.push({code:"lineage_path_incomplete",message:`A candidate predecessor path for compaction ${t.id} is incomplete.`,entryIds:[t.id,...f.map(m=>m.leaf.id)]}),[];let p=[];for(let m=0;m<u.length;m+=1){m>0&&m%256===0&&i?.();let g=u[m];bE(g.path,s.length,c,i)||p.push(g)}if(p.length>0)return r.push({code:"lineage_path_incomplete",message:`A candidate predecessor path for compaction ${t.id} is not append ordered.`,entryIds:[t.id,...p.map(m=>m.leaf.id)]}),[];if(t.firstKeptEntryId===void 0)return u;if(n.firstPhysicalMessageEntryId!==t.firstKeptEntryId)return r.push({code:"compaction_boundary_invalid",message:`Compaction ${t.id} does not identify its first retained message.`,entryIds:[t.id,t.firstKeptEntryId]}),[];let h=[];for(let m=0;m<u.length;m+=1){m>0&&m%256===0&&i?.();let g=u[m],T=[];for(let x=0;x<g.path.entries.length;x+=1){x>0&&x%256===0&&i?.();let C=g.path.entries[x];$i(C)&&T.push(C)}zH(T,n.messages,i)&&h.push(g)}return h.length===0&&u.length>0&&r.push({code:"compaction_boundary_invalid",message:`Compaction ${t.id} retained suffix conflicts with every predecessor branch.`,entryIds:[t.id,...n.messages.map(m=>m.id)]}),h}o(XH,"compactionPredecessorCandidates");function YH(e,t,n,r,i){let s=XH(e,t,n,r,i),a=[...new Map(s.map(c=>[c.leaf.id,c.leaf])).values()];if(a.length===1)return a[0];r.push({code:a.length===0?"compaction_predecessor_missing":"compaction_predecessor_ambiguous",message:a.length===0?`No topology-proven predecessor was retained for compaction ${t.id}.`:`Compaction ${t.id} has multiple possible predecessor branches.`,entryIds:[t.id,...a.map(c=>c.id)]})}o(YH,"resolveCompactionPredecessor");function qH(e,t,n){if(t.firstPhysicalMessageEntryId!==e.firstKeptEntryId)return[];let r=t.messages,i=-1;for(let c=0;c<r.length;c+=1)if(c>0&&c%256===0&&n?.(),!eh(r[c])){i=c;break}let s=i<0?r.length:i;if(s===0)return[];for(let c=s;c<r.length;c+=1)if(c>s&&c%256===0&&n?.(),eh(r[c]))return[];let a=[];for(let c=0;c<s;c+=1)c>0&&c%256===0&&n?.(),a.push(r[c]);return a}o(qH,"leadingExplicitRetainedCopies");function bE(e,t,n,r){let i=-1;for(let s=0;s<e.entries.length;s+=1){s>0&&s%256===0&&r?.();let a=e.entries[s],c=n.get(a.id);if(c===void 0||c>=t||c<=i)return!1;i=c}return!0}o(bE,"isAppendOrderedPriorPath");function JH(e,t,n,r,i,s,a){let c=qH(e,t,a),l=c.at(-1),u=l===void 0?void 0:ih(l)[0];if(l===void 0||u===void 0)return[];let f=[],p=s.get(u)??[];for(let m=0;m<p.length;m+=1){a?.();let g=p[m];if((i.get(g.id)??Number.MAX_SAFE_INTEGER)>=n)continue;let T=Zm(g.id,r,a),x=[];for(let N=0;N<T.entries.length;N+=1){N>0&&N%256===0&&a?.();let R=T.entries[N];$i(R)&&x.push(R)}if(!T.complete||!bE(T,n,i,a))continue;let C=Math.max(0,x.length-c.length),b=[];for(let N=C;N<x.length;N+=1)N>C&&N%256===0&&a?.(),b.push(x[N]);let A=b.length===c.length;for(let N=0;A&&N<b.length;N+=1){N>0&&N%256===0&&a?.();let R=b[N],E=c[N];A=nS(R,E)&&sd(R.message,E.message)}A&&f.push(g)}let h=new Map;for(let m=0;m<f.length;m+=1){m>0&&m%256===0&&a?.();let g=f[m];h.set(g.id,g)}return[...h.values()]}o(JH,"explicitCompactionPredecessorCandidates");function QH(e,t){let n=new Map;for(let r=0;r<e.length;r+=1){r>0&&r%256===0&&t?.();let i=e[r];if($i(i))for(let s of new Set([i.id,i.logicalId,i.sourceEntryId])){if(s===void 0)continue;let a=n.get(s)??[];a.push(i),n.set(s,a)}}return n}o(QH,"indexMessagesByIdentity");function ZH(e,t,n){let r=[],i=new Map,s=new Map,a=[];for(let m=0;m<e.entries.length;m+=1){m>0&&m%256===0&&n?.();let g=e.entries[m];s.set(g.id,m),vE(g)&&(r.push(g),i.set(g.id,g),$i(g)&&a.push(g.id))}if(e.activeEntryId===null&&a.length>0)return t.push({code:"active_entry_missing",message:"Conversation lineage contains messages but has no active entry.",entryIds:a}),[];let c=QH(r,n),l=new Map,u=0;for(let m=0;m<e.entries.length;m+=1){m>0&&m%256===0&&n?.();let g=e.entries[m];g.type==="compaction"&&g.parentId===null&&(l.set(g.id,u),u=m)}let f=[],p=new Set,h=e.activeEntryId===null?{entries:[],complete:!0}:Zm(e.activeEntryId,i,n);for(;h.entries.length>0;){let m=h.entries[0];if(p.has(m.id)){h={entries:[],complete:!1};break}p.add(m.id);let g=[],T;for(let E=0;E<h.entries.length;E+=1){E>0&&E%256===0&&n?.();let P=h.entries[E];P.type==="message"&&T===void 0&&(T=P.id),$i(P)&&g.push(P)}let x={root:m,messages:g,...T!==void 0?{firstPhysicalMessageEntryId:T}:{}};if(f.push(x),m.type!=="compaction"||m.reason==="rewind")break;let C=s.get(m.id)??0,b=l.get(m.id)??0,A=[],N=[];for(let E=b;E<C;E+=1)E>b&&E%256===0&&n?.(),N.push(e.entries[E]);let R=YH(N,m,x,A,n);if(R===void 0){let E=JH(m,x,C,i,s,c,n);E.length===1?[R]=E:(t.push(...A),E.length>1&&t.push({code:"compaction_predecessor_ambiguous",message:`Compaction ${m.id} provenance identifies multiple predecessor copies.`,entryIds:[m.id,...E.map(P=>P.id)]}))}if(R===void 0)break;h=Zm(R.id,i,n)}return h.complete||t.push({code:"lineage_path_incomplete",message:"Conversation lineage contains a missing parent or parent cycle.",entryIds:h.entries.map(m=>m.id)}),f.reverse()}o(ZH,"conversationEpochs");function Ro(e){return JSON.stringify([e.role,e.content,e._synthetic===!0,e._source,e._taskResult,e._taskResults])}o(Ro,"messageFingerprint");function oS(e,t,n){if(e.length===0||t.length===0)return[];let r=e.slice(Math.max(0,e.length-t.length)),i=[...t,void 0,...r],s=new Array(i.length).fill(0);for(let l=1;l<i.length;l+=1){l%256===0&&n?.();let u=s[l-1];for(;u>0&&i[l]!==i[u];)u=s[u-1];i[l]===i[u]&&(u+=1),s[l]=Math.min(u,t.length)}let a=[],c=s.at(-1)??0;for(;c>0;)a.push(c),c=s[c-1]??0;return a}o(oS,"prefixSuffixOverlapLengths");function sd(e,t){return e===t||Ro(e)===Ro(t)}o(sd,"messagesEqual");function eW(e){return e.logicalId??e.id}o(eW,"logicalIdentity");function RE(e,t){return th(e,t).groups}o(RE,"explicitPriorGroups");function th(e,t){let n=ih(e),r=n.filter(s=>!t.has(s)),i=[...new Set(n.flatMap(s=>{let a=t.get(s);return a===void 0?[]:[a]}))];return{keys:n,groups:i,unresolvedKeys:r}}o(th,"explicitPriorGroupResolution");function od(e,t,n){for(let r of[e.id,eW(e),e.sourceEntryId])r!==void 0&&!n.has(r)&&n.set(r,t)}o(od,"registerEntryIdentities");function rS(e,t){return e.sourceEntryId!==void 0&&e.sourceEntryId!==e.id&&t?.has(e.sourceEntryId)!==!0?[e.sourceEntryId,e.id]:[e.id]}o(rS,"physicalAuditEntryIds");function tW(e,t,n,r,i,s){let a=new Map,{messages:c}=t,l=e.firstKeptEntryId;if(l===void 0||n.length===0||c.length===0)return a;if(t.firstPhysicalMessageEntryId!==l)return i.push({code:"compaction_boundary_invalid",message:`Compaction ${e.id} does not identify the first retained message.`,entryIds:[e.id,l]}),a;let u=oS(n.slice(-c.length).map(A=>Ro(A.source.message)),c.map(A=>Ro(A.message)),s),f=!1,p=c.flatMap((A,N)=>{let R=th(A,r);return R.keys.length===0?[]:[{index:N,resolution:R}]}),h=p[0],m=h===void 0?u:u.filter(A=>A<=h.index),g;if(h!==void 0){let{index:A,resolution:N}=h,R=N.groups.length===1?N.groups[0].index:-1,E=n.length+A-R;g=N.unresolvedKeys.length===0&&N.groups.length===1&&R>=0&&u.includes(E)&&E>A?E:void 0,g===void 0&&u.some(P=>P>A)&&(f=!0)}for(let A of p.slice(1)){if(g===void 0||g<=A.index)continue;let{resolution:N}=A,R=N.groups.length===1?N.groups[0].index:-1;(N.unresolvedKeys.length>0||N.groups.length!==1||R<0||n.length+A.index-R!==g)&&(f=!0,g=void 0)}let x=[...m,...g===void 0?[]:[g]].map(A=>n.length-A),C=RE(c[0],r);if(x.length===0&&C.length===1&&!sd(C[0].source.message,c[0].message))return a;if(f&&i.push({code:"logical_identity_conflict",message:`Compaction ${e.id} contains provenance keys that name different history records.`,entryIds:[e.id,...c.map(A=>A.id)]}),x.length!==1)return i.push({code:"compaction_boundary_invalid",message:`Compaction ${e.id} has no unique retained suffix.`,entryIds:[e.id,...c.map(A=>A.id)]}),a;let b=x[0];for(let A=b;A<n.length;A+=1)a.set(c[A-b].id,n[A]);return a}o(tW,"provenLegacyOverlap");function nW(e,t,n,r){let[i=0]=oS(t.slice(-e.length).map(s=>Ro(s.source.message)),e.map(s=>Ro(s.message)),r);return e.slice(0,i).filter(s=>RE(s,n).length===0)}o(nW,"longestUnprovenOverlap");function rW(e,t,n,r,i){let s=t.get(e.id);if(s!==void 0){let f=th(e,r);if(f.unresolvedKeys.length>0||f.groups.length>1||f.groups.length===1&&f.groups[0]!==s){i.push({code:"logical_identity_conflict",message:`Transcript provenance for ${e.id} does not identify its topology-proven record.`,entryIds:[s.source.id,e.id]});let p={index:n.length,source:e,auditEntryIds:rS(e,r)};n.push(p),od(e,p,r);return}else{s.auditEntryIds.push(e.id),od(e,s,r);return}}let a=th(e,r),c=a.groups,l=a.keys.length>0&&a.unresolvedKeys.length===0&&c.length===1?c[0]:void 0;if(l!==void 0&&sd(l.source.message,e.message)){l.auditEntryIds.push(e.id),od(e,l,r);return}c.length>0&&(a.unresolvedKeys.length>0||c.length!==1||l===void 0||!sd(l.source.message,e.message))&&i.push({code:"logical_identity_conflict",message:`Transcript provenance for ${e.id} is conflicting or has a different payload.`,entryIds:[...c.map(f=>f.source.id),e.id]});let u={index:n.length,source:e,auditEntryIds:rS(e,r)};n.push(u),od(e,u,r)}o(rW,"appendConversationMessage");function iW(e){return e.some(t=>t.code==="legacy_overlap_ambiguous"||t.code==="compaction_boundary_invalid"||t.code==="compaction_predecessor_ambiguous"||t.code==="logical_identity_conflict")?"ambiguous":e.length>0?"partial":"resolved"}o(iW,"historyStatus");function kE(e){let t=new Map;for(let n of e){let r=t.get(n.code)??{message:n.message,occurrenceCount:0,entryCount:0,entryIds:[],evidenceBytes:0};r.occurrenceCount+=1,r.entryCount+=n.entryIds.length;for(let i of n.entryIds)r.entryIds.length<GH&&!r.entryIds.includes(i)&&r.evidenceBytes+Buffer.byteLength(i,"utf8")<=VH&&(r.entryIds.push(i),r.evidenceBytes+=Buffer.byteLength(i,"utf8"));t.set(n.code,r)}return[...t.entries()].map(([n,r])=>({code:n,message:r.message.length<=CE?r.message:`${r.message.slice(0,CE-1)}\u2026`,occurrenceCount:r.occurrenceCount,entryCount:r.entryCount,entryIds:r.entryIds}))}o(kE,"summarizeConversationIssues");function ad(e,t,n){let r=[];n?.();let i=ZH(e,r,n),s=r.some(p=>p.code==="active_entry_missing"||p.code==="compaction_boundary_invalid"||p.code==="compaction_predecessor_ambiguous"||p.code==="compaction_predecessor_missing"||p.code==="lineage_path_incomplete"),a=e.entries.filter($i),c=new Set(a.map(p=>p.id));if(s){let p=new Map;for(let h of a){let m=h.sourceEntryId;m===void 0||c.has(m)||p.set(m,(p.get(m)??0)+1)}for(let[h,m]of p)m>1&&c.add(h)}let l=s?a.map((p,h)=>({index:h,source:p,auditEntryIds:rS(p,c)})):[],u=new Map;if(s)for(let p of l)od(p.source,p,u);for(let p of i){if(s)break;let h=p.root,m=h.type==="compaction"&&h.reason!=="rewind"?tW(h,p,l,u,r,n):new Map;if(h.type==="compaction"&&h.firstKeptEntryId===void 0){let g=nW(p.messages,l,u,n);g.length>0&&r.push({code:"legacy_overlap_ambiguous",message:`Legacy compaction ${h.id} overlaps earlier history without durable provenance.`,entryIds:g.map(T=>T.id)})}for(let g=0;g<p.messages.length;g+=1){g%256===0&&n?.();let T=p.messages[g];rW(T,m,l,u,r)}}let f=l.map(p=>({boundaryId:p.source.id,auditEntryIds:p.auditEntryIds,message:p.source.message}));return{sourceRevision:t,status:iW(r),entries:f,issues:kE(r)}}o(ad,"buildSessionConversationHistory");function EE(e,t,n,r){r?.();let i={...e,activeEntryId:t},s=Ta(i,t,r);if(s.at(-1)?.id!==t)return null;let a=Ci(i,t,r);if(a===null)return null;let c=Ta(a,a.activeEntryId,r);if(c.length!==s.length)return null;let l=new Map(s.map((P,B)=>(B>0&&B%256===0&&r?.(),[P.id,c[B].id]))),u={...a,entries:a.entries.map((P,B)=>{B>0&&B%256===0&&r?.();let $=s[B];return P.type==="compaction"&&$?.type==="compaction"&&$.firstKeptEntryId!==void 0?{...P,firstKeptEntryId:l.get($.firstKeptEntryId)}:P})},f=s[0];if(f?.type!=="compaction"||f.reason==="rewind")return u;let p=ad(i,n,r);if(p.status!=="resolved"||f.firstKeptEntryId===void 0)return null;let h=[],m=new Set,g=-1,T=!1;for(let P=0;P<s.length;P+=1){P>0&&P%256===0&&r?.();let B=s[P];B.id===f.firstKeptEntryId&&(T=!0),$i(B)&&(T&&g<0&&(g=h.length),h.push(B),m.add(B.id))}if(g<0)return null;let x=new Map;for(let P=0;P<p.entries.length;P+=1){P>0&&P%256===0&&r?.();let B=p.entries[P].auditEntryIds;for(let $=0;$<B.length;$+=1){$>0&&$%256===0&&r?.();let V=B[$];x.set(V,P)}}let C=-1;for(let P=g;P<h.length;P+=1){P>g&&P%256===0&&r?.();let B=h[P],$=x.get(B.id);if($===void 0)return null;let V=!1,ne=p.entries[$].auditEntryIds;for(let z=0;z<ne.length;z+=1)if(z>0&&z%256===0&&r?.(),!m.has(ne[z])){V=!0;break}if(!V)break;if(C>=0&&$!==C+1)return null;C=$}if(C<0)return null;let b=new Map;for(let P=0;P<e.entries.length;P+=1){P>0&&P%256===0&&r?.();let B=e.entries[P];b.set(B.id,B)}let A=null,N=[];for(let P=0;P<=C;P+=1){P>0&&P%256===0&&r?.();let B=p.entries[P],$;for(let y=0;y<B.auditEntryIds.length;y+=1){y>0&&y%256===0&&r?.();let _=B.auditEntryIds[y];if(m.has(_)){$=_;break}}let V=$??B.boundaryId,ne=V===void 0?void 0:b.get(V);if(ne?.type!=="message")return null;let z={...ne,parentId:A};N.push(z),A=z.id}let R=N.at(-1);if(R===void 0)return null;let E=Ci({version:2,activeEntryId:R.id,entries:N},void 0,r);return E===null?null:{version:2,activeEntryId:u.activeEntryId,entries:[...E.entries,...u.entries]}}o(EE,"forkSessionConversationLineage");function ME(e,t,n){if(n?.(),e.length===0)return{sourceRevision:t,status:"resolved",entries:[],issues:[]};let r={code:"lineage_unavailable",message:"This legacy Session has messages but no lineage identity metadata.",entryIds:[]},i=[];for(let s=0;s<e.length;s+=1){s>0&&s%256===0&&n?.();let a=e[s];rh(a)||i.push({auditEntryIds:[],message:a})}return{sourceRevision:t,status:"partial",entries:i,issues:kE([r])}}o(ME,"buildLineageUnavailableConversationHistory");import{createHash as uS,randomUUID as WE}from"node:crypto";import Zn from"node:fs/promises";import Ut from"node:path";import{createHash as aS}from"node:crypto";var _E={main:0,islands:1,legacy_archive:2},Pc=64*1024;function sS(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(sS,"isRecord");function AE(e){let t=e.replace(/\\/g,"/");if(t.length===0||t.startsWith("/")||t.split("/").some(n=>n===".."))throw new Error(`Invalid Session source-relative path: ${e}`);return t}o(AE,"normalizeRelativePath");function oW(e,t){return aS("sha256").update("kodax-session-source-file-v1\0").update(`${e}:${Buffer.byteLength(t,"utf8")}:${t}`).digest("hex")}o(oW,"initialFileChain");function sW(e,t){return aS("sha256").update("kodax-session-source-chunk-v1\0").update(e,"hex").update(t).digest("hex")}o(sW,"extendChunkChain");function LE(e,t){let n=e,r=0,i=0;for(;t.length-i>=Pc;)n=sW(n,t.subarray(i,i+Pc)),r+=1,i+=Pc;return{chain:n,count:r,tail:t.subarray(i)}}o(LE,"consumeCompleteChunks");function PE(e,t){return _E[e.kind]-_E[t.kind]||e.relativePath.localeCompare(t.relativePath)}o(PE,"compareFileStates");function OE(e){let t=e.map(n=>{let r=AE(n.relativePath),i=LE(oW(n.kind,r),n.bytes);return{kind:n.kind,relativePath:r,byteLength:n.bytes.length,chunkCount:i.count,chain:i.chain,tail:i.tail.toString("base64")}}).sort(PE);if(new Set(t.map(n=>n.kind)).size!==t.length)throw new Error("Duplicate Session source file kind");return{version:1,files:t}}o(OE,"createSessionSourceRevisionState");function ko(e){let t=aS("sha256");t.update("kodax-session-source-bundle-v2\0");for(let n of e.files)t.update(`${n.kind}:${Buffer.byteLength(n.relativePath,"utf8")}:${n.relativePath}:${n.byteLength}:${n.chunkCount}:${n.chain}:`),t.update(Buffer.from(n.tail,"base64"));return`sha256:${t.digest("hex")}`}o(ko,"createSessionSourceRevision");function $E(e,t,n){if(n.length===0)return e;if(n[0]!==10)return;let r=AE(t),i=e.files.findIndex(l=>l.kind==="main"&&l.relativePath===r);if(i<0)return;let s=e.files[i],a=LE(s.chain,Buffer.concat([Buffer.from(s.tail,"base64"),n])),c=[...e.files];return c[i]={...s,byteLength:s.byteLength+n.length,chunkCount:s.chunkCount+a.count,chain:a.chain,tail:a.tail.toString("base64")},{version:1,files:c}}o($E,"extendSessionMainSourceRevisionState");function NE(e){if(!sS(e)||e.version!==1||!Array.isArray(e.files)||!e.files.some(r=>sS(r)&&r.kind==="main"))return!1;let t,n=new Set;for(let r of e.files){if(!sS(r))return!1;let i=r.kind;if(i!=="main"&&i!=="islands"&&i!=="legacy_archive"||typeof r.relativePath!="string"||r.relativePath.length===0||r.relativePath.includes("\\")||r.relativePath.startsWith("/")||r.relativePath.split("/").some(c=>c==="..")||!Number.isSafeInteger(r.byteLength)||Number(r.byteLength)<0||!Number.isSafeInteger(r.chunkCount)||Number(r.chunkCount)<0||typeof r.chain!="string"||!/^[0-9a-f]{64}$/.test(r.chain)||typeof r.tail!="string"||n.has(i))return!1;let s=Buffer.from(r.tail,"base64");if(s.length>=Pc||s.toString("base64")!==r.tail||Number(r.chunkCount)!==Math.floor(Number(r.byteLength)/Pc)||s.length!==Number(r.byteLength)%Pc)return!1;let a=r;if(t!==void 0&&PE(t,a)>=0)return!1;n.add(i),t=a}return!0}o(NE,"isSessionSourceRevisionState");import oh from"node:fs/promises";import cd from"node:path";var Ni=".conversation-cache.",DE=`${Ni}json`,Eo=class extends Error{static{o(this,"ConversationPageCacheCleanupError")}directory;cleanupCause;constructor(t,n){super(`Unable to remove recoverable Conversation page caches from ${t}`),this.directory=t,this.cleanupCause=n,this.name="ConversationPageCacheCleanupError"}};function sh(e){let t=e.lastIndexOf(Ni);if(t<=0)return;let n=e.slice(t+Ni.length);if(!(n!=="json"&&!(n.startsWith("json.")&&n.endsWith(".tmp"))&&!n.endsWith(".data")&&!n.endsWith(".index")))return e.slice(0,t)}o(sh,"cacheArtifactSessionId");async function Qn(e){let t=cd.dirname(e),n=cd.basename(e,cd.extname(e)),r;try{r=await oh.readdir(t)}catch(i){if(i.code==="ENOENT")return;throw i}await Promise.all(r.filter(i=>sh(i)===n).map(i=>oh.rm(cd.join(t,i),{force:!0})))}o(Qn,"removeConversationPageCache");async function ah(e){let t;try{t=await oh.readdir(e,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;throw new Eo(e,n)}try{await Promise.all(t.filter(n=>!n.isDirectory()&&sh(n.name)!==void 0).map(n=>oh.rm(cd.join(e,n.name),{force:!0})))}catch(n){throw new Eo(e,n)}}o(ah,"removeConversationPageCachesInDirectory");var jE=4,oi=24,aW=1024*1024,cW=1024*1024,lW=1024*1024,uW=4*1024*1024,dS=128*1024,dW=7,gt=class extends Error{static{o(this,"ConversationPageCacheStaleError")}constructor(t){super(t),this.name="ConversationPageCacheStaleError"}},Di=class extends Error{static{o(this,"ConversationPageCacheCapacityError")}constructor(){super("Conversation page capacity exceeded"),this.name="ConversationPageCacheCapacityError"}};function ld(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(ld,"isRecord");function cS(e){if(e?.aborted)throw new gt("Conversation page read cancelled")}o(cS,"throwIfAborted");function fS(e){return e.slice(0,-Ut.extname(e).length)+DE}o(fS,"cacheManifestPath");function BE(e,t,n){return`${e.slice(0,-Ut.extname(e).length)}${Ni}${t}.${n}`}o(BE,"cacheGenerationPath");function FE(e,t,n){let r=Ut.basename(e,Ut.extname(e));return Ut.basename(t)===t&&t.startsWith(`${r}${Ni}`)&&t.endsWith(`.${n}`)}o(FE,"isSafeCacheFileName");function fW(e){if(!ld(e))return!1;let t=new Set(["active_entry_missing","compaction_boundary_invalid","compaction_predecessor_ambiguous","compaction_predecessor_missing","legacy_overlap_ambiguous","lineage_path_incomplete","lineage_unavailable","logical_identity_conflict"]);return typeof e.code=="string"&&t.has(e.code)&&typeof e.message=="string"&&Number.isSafeInteger(e.occurrenceCount)&&Number(e.occurrenceCount)>=0&&Number.isSafeInteger(e.entryCount)&&Number(e.entryCount)>=0&&Array.isArray(e.entryIds)&&e.entryIds.every(n=>typeof n=="string")}o(fW,"isConversationIssue");function pW(e){return ld(e)&&(e.surface===void 0||typeof e.surface=="string")&&(e.profileId===void 0||typeof e.profileId=="string")}o(pW,"isConversationPageCacheAdmission");function UE(e){let t=uS("sha256").update("kodax-conversation-identity-filter-v1\0").update(e,"utf8").digest();return Array.from({length:dW},(n,r)=>t.readUInt32LE(r*4)%(dS*8))}o(UE,"identityPositions");function GE(e,t){return UE(t).every(n=>(e[n>>>3]&1<<(n&7))!==0)}o(GE,"identityFilterContains");function VE(e,t){for(let n of UE(t))e[n>>>3]=e[n>>>3]|1<<(n&7)}o(VE,"addIdentityToFilter");function KE(e){return[e.id,e.logicalId,e.sourceEntryId].filter(t=>t!==void 0)}o(KE,"lineageEntryIdentities");function ch(e){let t=Buffer.alloc(dS);for(let n of e.entries)for(let r of KE(n))VE(t,r);return t.toString("base64")}o(ch,"createConversationPageIdentityFilter");function pS(e,t){let n=Buffer.from(e,"base64");for(let r of t)for(let i of KE(r))VE(n,i);return n.toString("base64")}o(pS,"extendConversationPageIdentityFilter");function zE(e){if(typeof e!="string")return!1;let t=Buffer.from(e,"base64");return t.length===dS&&t.toString("base64")===e}o(zE,"isIdentityFilter");function XE(e,t){return zE(e)?GE(Buffer.from(e,"base64"),t):!0}o(XE,"conversationPageIdentityFilterContains");function mW(e,t){if(!(!ld(e)||e.version!==jE)&&!(typeof e.sessionId!="string"||typeof e.generation!="string"||typeof e.sourceRevision!="string"||!NE(e.sourceRevisionState)||ko(e.sourceRevisionState)!==e.sourceRevision||!zE(e.identityFilter)||typeof e.boundaryRevision!="string"||typeof e.revision!="string"||typeof e.entryChain!="string"||e.status!=="resolved"&&e.status!=="partial"&&e.status!=="ambiguous"||!Array.isArray(e.issues)||!e.issues.every(fW)||!Number.isSafeInteger(e.entryCount)||Number(e.entryCount)<0||!Number.isSafeInteger(e.lineageEntryCount)||Number(e.lineageEntryCount)<0||e.activeEntryId!==null&&typeof e.activeEntryId!="string"||!pW(e.admission)||!Number.isSafeInteger(e.chunkBytes)||Number(e.chunkBytes)<=0||Number(e.chunkBytes)>uW||typeof e.dataFile!="string"||!Number.isSafeInteger(e.dataBytes)||Number(e.dataBytes)<0||typeof e.indexFile!="string"||!Number.isSafeInteger(e.indexBytes)||Number(e.indexBytes)<0||!FE(t,e.dataFile,"data")||!FE(t,e.indexFile,"index")||e.dataFile!==`${e.sessionId}${Ni}${e.generation}.data`||e.indexFile!==`${e.sessionId}${Ni}${e.generation}.index`||e.sessionId!==Ut.basename(t,Ut.extname(t))||Number(e.indexBytes)!==Number(e.entryCount)*oi))return e}o(mW,"parseManifest");function YE(e){return{...e?.surface!==void 0?{surface:e.surface}:{},...e?.profileId!==void 0?{profileId:e.profileId}:{}}}o(YE,"cacheAdmission");async function $c(e){let t;try{t=await Zn.open(fS(e),"r");let n=(await t.stat()).size;if(n>cW)return;let r=JSON.parse((await Oc(t,0,n)).toString("utf8"));return mW(r,e)}catch(n){if(n.code==="ENOENT"||n instanceof SyntaxError)return;throw n}finally{await t?.close()}}o($c,"readConversationPageCacheManifest");function lh(e,t){let n=Ut.dirname(e);return{dataPath:Ut.join(n,t.dataFile),indexPath:Ut.join(n,t.indexFile)}}o(lh,"cachePaths");async function As(e,t){let n=lh(e,t),[r,i]=await Promise.all([Zn.stat(n.dataPath),Zn.stat(n.indexPath)]);if(r.size!==t.dataBytes||i.size!==t.indexBytes)throw new gt("Conversation page cache changed")}o(As,"assertCacheFilesStable");async function Oc(e,t,n){let r=Buffer.allocUnsafe(n),i=0;for(;i<n;){let s=await e.read(r,i,n-i,t+i);if(s.bytesRead===0)throw new gt("Conversation page cache ended unexpectedly");i+=s.bytesRead}return r}o(Oc,"readFully");function qE(e,t){let n=e.readBigUInt64LE(t),r=e.readBigUInt64LE(t+12);if(n>BigInt(Number.MAX_SAFE_INTEGER)||r>BigInt(Number.MAX_SAFE_INTEGER))throw new gt("Conversation page index offset is invalid");return{entryOffset:Number(n),entryLength:e.readUInt32LE(t+8),descriptorOffset:Number(r),descriptorLength:e.readUInt32LE(t+20)}}o(qE,"decodeIndexRecord");function JE(e,t,n){let r=e.entryOffset+e.entryLength,i=e.descriptorOffset+e.descriptorLength,s=Math.ceil(e.entryLength/n),a=Math.min(lW,e.entryLength+s*70+256);if(!Number.isSafeInteger(r)||!Number.isSafeInteger(i)||r>t||i>t||e.descriptorOffset<r||e.descriptorLength>a)throw new gt("Conversation page index is out of bounds")}o(JE,"assertIndexRecordBounds");function QE(e){let t=Buffer.allocUnsafe(oi);return t.writeBigUInt64LE(BigInt(e.entryOffset),0),t.writeUInt32LE(e.entryLength,8),t.writeBigUInt64LE(BigInt(e.descriptorOffset),12),t.writeUInt32LE(e.descriptorLength,20),t}o(QE,"encodeIndexRecord");function hW(e){if(!ld(e)||!Array.isArray(e.chunkDigests)||!e.chunkDigests.every(t=>typeof t=="string"&&/^[0-9a-f]{64}$/.test(t))||e.boundaryId!==void 0&&typeof e.boundaryId!="string")throw new gt("Conversation page descriptor is invalid");return{chunkDigests:e.chunkDigests,...typeof e.boundaryId=="string"?{boundaryId:e.boundaryId}:{}}}o(hW,"parseDescriptor");async function ZE(e,t){let n=await Oc(e,t.descriptorOffset,t.descriptorLength);try{return hW(JSON.parse(n.toString("utf8")))}catch(r){throw r instanceof gt?r:new gt("Conversation page descriptor is corrupt")}}o(ZE,"readDescriptor");function eM(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(uS("sha256").update(e.subarray(r,Math.min(e.length,r+t))).digest("hex"));return n}o(eM,"entryChunkDigests");function gW(e,t,n){let r=eM(e,n);if(r.length!==t.chunkDigests.length||r.some((i,s)=>i!==t.chunkDigests[s]))throw new gt("Conversation page cache entry is corrupt")}o(gW,"assertEntryIntegrity");function tM(e){if(e instanceof gt||e instanceof Di)return e;let t=new Set(["EACCES","EBADF","EBUSY","EIO","EISDIR","EMFILE","ENFILE","ENOENT","ENOTDIR","EPERM","ESTALE"]);return e instanceof SyntaxError||ld(e)&&typeof e.code=="string"&&t.has(e.code)?new gt("Conversation page cache changed or is unavailable"):e instanceof Error?e:new Error(String(e))}o(tM,"normalizeConversationPageCacheReadError");async function mS(e,t,n){let r=await Zn.open(e,n);try{let i=await Zn.open(t,n);return{data:r,index:i}}catch(i){throw await r.close(),i}}o(mS,"openCachePair");async function nM(e,t,n){try{return await yW(e,t,n)}catch(r){throw tM(r)}}o(nM,"readConversationPageCache");async function yW(e,t,n){cS(n.signal);let r=await $c(e);if(r===void 0||r.boundaryRevision!==t)return null;if(await n.authorize?.(r.admission),n.expectedRevision!==void 0&&n.expectedRevision!==r.revision)throw new gt("Conversation history changed; request a fresh page");await As(e,r);let i=Math.min(n.end??r.entryCount,r.entryCount),s=Math.max(0,i-n.limit),a=lh(e,r),{data:c,index:l}=await mS(a.dataPath,a.indexPath,"r");try{let u=await Oc(l,s*oi,(i-s)*oi),f=[],p=n.reservedBytes+Buffer.byteLength(JSON.stringify({revision:r.revision,sourceRevision:r.sourceRevision,status:r.status,issues:r.issues}),"utf8");if(p>n.maxPageBytes)throw new Di;for(let m=i-s-1;m>=0;m-=1){cS(n.signal);let g=s+m,T=qE(u,m*oi);JE(T,r.dataBytes,r.chunkBytes);let x=await ZE(c,T),C=T.entryLength<=n.maxInlineEntryBytes?await Oc(c,T.entryOffset,T.entryLength):void 0;C!==void 0&&gW(C,x,r.chunkBytes);let b={index:g,...x.boundaryId!==void 0?{boundaryId:x.boundaryId}:{},byteLength:T.entryLength,oversized:T.entryLength>n.maxInlineEntryBytes,...C!==void 0?{entry:JSON.parse(C.toString("utf8"))}:{}},A=Buffer.byteLength(JSON.stringify(b),"utf8");if(p+A>n.maxPageBytes){if(f.length===0)throw new Di;break}f.unshift(b),p+=A}let h=f[0]?.index??i;return await As(e,r),{revision:r.revision,sourceRevision:r.sourceRevision,status:r.status,issues:structuredClone(r.issues),entries:f,hasMore:h>0,...h>0?{nextEnd:h}:{}}}finally{await Promise.all([c.close(),l.close()])}}o(yW,"readConversationPageCacheInternal");async function rM(e,t,n){try{return await wW(e,t,n)}catch(r){throw tM(r)}}o(rM,"readConversationPageCacheChunk");async function wW(e,t,n){cS(n.signal);let r=await $c(e);if(r===void 0||r.boundaryRevision!==t)return null;if(await n.authorize?.(r.admission),r.revision!==n.revision||n.entryIndex>=r.entryCount)throw new gt("Conversation history changed; request a fresh page");if(n.offset<0||n.offset%r.chunkBytes!==0)throw new gt("Conversation entry cursor is invalid");await As(e,r);let i=lh(e,r),{data:s,index:a}=await mS(i.dataPath,i.indexPath,"r");try{let c=await Oc(a,n.entryIndex*oi,oi),l=qE(c,0);JE(l,r.dataBytes,r.chunkBytes);let u=await ZE(s,l);if(n.offset>l.entryLength)throw new gt("Conversation entry cursor is invalid");let f=Math.min(l.entryLength,n.offset+r.chunkBytes),p=await Oc(s,l.entryOffset+n.offset,f-n.offset);if(uS("sha256").update(p).digest("hex")!==u.chunkDigests[n.offset/r.chunkBytes])throw new gt("Conversation page cache entry is corrupt");return await As(e,r),{revision:r.revision,entryIndex:n.entryIndex,...u.boundaryId!==void 0?{boundaryId:u.boundaryId}:{},data:p,...f<l.entryLength?{nextOffset:f}:{}}}finally{await Promise.all([s.close(),a.close()])}}o(wW,"readConversationPageCacheChunkInternal");async function lS(e,t){let n=0;for(;n<t.length;){let r=await e.write(t,n,t.length-n);if(r.bytesWritten===0)throw new Error("Conversation page cache write made no progress");n+=r.bytesWritten}}o(lS,"writeFully");function iM(e,t,n){return Buffer.from(JSON.stringify({...e.boundaryId!==void 0?{boundaryId:e.boundaryId}:{},chunkDigests:eM(t,n)}),"utf8")}o(iM,"createDescriptor");async function SW(e,t,n,r){let{data:i,index:s}=await mS(e,t,"wx"),a=0,c=0,l=[],u=[],f=0,p=o(async()=>{f!==0&&(await Promise.all([lS(i,Buffer.concat(l)),lS(s,Buffer.concat(u))]),l=[],u=[],f=0)},"flush");try{for(let h of n){let m=Buffer.from(JSON.stringify(h),"utf8"),g=iM(h,m,r);l.push(m,g),u.push(QE({entryOffset:a,entryLength:m.length,descriptorOffset:a+m.length,descriptorLength:g.length})),a+=m.length+g.length,c+=oi,f+=m.length+g.length+oi,f>=aW&&await p()}return await p(),await Promise.all([i.sync(),s.sync()]),{dataBytes:a,indexBytes:c}}finally{await Promise.all([i.close(),s.close()])}}o(SW,"writeCacheEntries");async function hS(e,t){let n=fS(e),r=`${n}.${process.pid}.${WE()}.tmp`;await Zn.writeFile(r,JSON.stringify(t),{encoding:"utf8",flag:"wx"});try{await Zn.rename(r,n)}finally{await Zn.rm(r,{force:!0})}}o(hS,"replaceManifest");async function xW(e,t){let n=Ut.dirname(e),r=Ut.basename(e,Ut.extname(e)),s=`${`${r}${Ni}`}${t}.`,a=await Zn.readdir(n);await Promise.all(a.filter(c=>sh(c)===r&&!c.startsWith(s)&&c!==Ut.basename(fS(e))).map(c=>Zn.rm(Ut.join(n,c),{force:!0})))}o(xW,"removeGenerationFiles");async function gS(e,t,n,r,i,s,a){if(ko(n)!==r.sourceRevision)throw new gt("Conversation source revision state is inconsistent");let c=WE(),l=BE(e,c,"data"),u=BE(e,c,"index");try{let f=await SW(l,u,r.entries,a),p=Ms(r.entries);await hS(e,{version:jE,sessionId:Ut.basename(e,Ut.extname(e)),generation:c,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:ch(i),boundaryRevision:t,revision:_s(r,p),entryChain:p,status:r.status,issues:r.issues,entryCount:r.entries.length,lineageEntryCount:i.entries.length,activeEntryId:i.activeEntryId,admission:YE(s),chunkBytes:a,dataFile:Ut.basename(l),dataBytes:f.dataBytes,indexFile:Ut.basename(u),indexBytes:f.indexBytes})}catch(f){throw await Promise.all([Zn.rm(l,{force:!0}),Zn.rm(u,{force:!0})]),f}try{await xW(e,c)}catch(f){process.emitWarning(`Unable to remove an old Conversation page cache generation: ${String(f)}`,{code:"KODAX_CONVERSATION_PAGE_CACHE_GC_FAILED"})}}o(gS,"writeConversationPageCache");async function oM(e,t,n,r,i,s){if(ko(n)!==r.sourceRevision)return!1;let a=await $c(e);if(a===void 0||a.entryCount!==r.entries.length)return!1;await As(e,a);let c=Ms(r.entries);if(c!==a.entryChain||r.status!==a.status||JSON.stringify(r.issues)!==JSON.stringify(a.issues))return!1;let l=_s(r,c);return await hS(e,{...a,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:ch(i),boundaryRevision:t,revision:l,entryChain:c,status:r.status,issues:r.issues,lineageEntryCount:i.entries.length,activeEntryId:i.activeEntryId,admission:YE(s)}),await As(e,a),!0}o(oM,"refreshConversationPageCache");async function HE(e,t){if(t.length===0)return;let n=await Zn.open(e,"a");try{await lS(n,Buffer.concat(t)),await n.sync()}finally{await n.close()}}o(HE,"appendBuffers");async function sM(e,t,n,r,i,s,a){let c=ko(r),l=lh(e,t);await As(e,t);let u=[],f=[],p=t.dataBytes;for(let g of i){let T=Buffer.from(JSON.stringify(g),"utf8"),x=iM(g,T,t.chunkBytes);u.push(T,x),f.push(QE({entryOffset:p,entryLength:T.length,descriptorOffset:p+T.length,descriptorLength:x.length})),p+=T.length+x.length}await HE(l.dataPath,u),await HE(l.indexPath,f);let h=Lc(t.entryChain,i),m={sourceRevision:c,status:t.status,issues:t.issues,entries:[]};await hS(e,{...t,sourceRevision:c,sourceRevisionState:r,identityFilter:pS(t.identityFilter,s),boundaryRevision:n,revision:_s(m,h),entryChain:h,entryCount:t.entryCount+i.length,lineageEntryCount:t.lineageEntryCount+s.length,activeEntryId:a,dataBytes:p,indexBytes:t.indexBytes+i.length*oi})}o(sM,"appendConversationPageCache");function aM(e,t,n,r){if(e.status!=="resolved"||e.issues.length>0||e.activeEntryId!==t)return;if(n.length===0)return r===t?[]:void 0;let i=Buffer.from(e.identityFilter,"base64"),s=new Set,a=t,c=[];for(let l of n){if(l.type==="message"&&rh(l.message)){if(l.parentId!==a)return;a=l.id;continue}if(!$i(l)||l.parentId!==a||l.logicalId!==void 0&&l.logicalId!==l.id||l.sourceEntryId!==void 0||GE(i,l.id)||s.has(l.id))return;c.push({boundaryId:l.id,auditEntryIds:[l.id],message:l.message}),s.add(l.id),a=l.id}return r===a?c:void 0}o(aM,"canAppendConversationPageCache");import _e from"fs/promises";import at from"fs";import U from"path";import{createHash as Ao,randomUUID as pd}from"node:crypto";import{performance as $r}from"node:perf_hooks";import{isDeepStrictEqual as pj}from"node:util";import kM from"chalk";import{randomUUID as TW}from"node:crypto";import ud from"node:fs/promises";import uh from"node:path";function cM(e){let t=uh.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(cM,"comparableRoot");async function yS(e){let t;try{t=await ud.readFile(e,"utf8")}catch(r){if(r.code==="ENOENT")return;throw r}let n=JSON.parse(t);if(n===null||typeof n!="object"||typeof n.canonicalRoot!="string")throw new Error(`Invalid project identity manifest at ${e}`);return cM(n.canonicalRoot)}o(yS,"existingCanonicalRoot");async function lM(e){return await yS(uh.join(e,"project.json"))!==void 0}o(lM,"projectManifestExists");async function dh(e,t){if(t.canonicalRoot===null)return;await ud.mkdir(e,{recursive:!0});let n=uh.join(e,"project.json"),r=cM(t.canonicalRoot),i=await yS(n);if(i!==void 0){if(i!==r)throw new Error(`Conflicting project identity at ${n}`);return}let s=uh.join(e,`.project.${process.pid}.${TW()}.tmp`),a=await ud.open(s,"wx");try{await a.writeFile(JSON.stringify({canonicalRoot:t.canonicalRoot,displayName:t.displayName,lastUsed:new Date().toISOString()})+`
|
|
86
|
+
`,"utf8"),await a.sync()}finally{await a.close()}try{await ud.link(s,n)}catch(c){if(c.code!=="EEXIST")throw c;if(await yS(n)!==r)throw new Error(`Conflicting project identity at ${n}`)}finally{await ud.rm(s,{force:!0})}}o(dh,"publishProjectManifest");import vt from"fs/promises";import xS from"fs";import et from"path";var dM=3,CW=300*1e3,IW=65536,wS=o(e=>et.join(e,".layout.json"),"layoutMarkerPath"),TS=o(e=>et.join(e,".migration-lock"),"lockDirPath"),fM=o(e=>et.join(TS(e),"owner.json"),"ownerPath"),SS=o(e=>et.join(e,".migration-journal.jsonl"),"journalPath"),fh=o(e=>et.join(et.dirname(e),"sessions-archive"),"sessionsArchiveDir");function ph(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}o(ph,"isSessionFile");function pM(e){return e.endsWith(".archive.jsonl")||e.endsWith(".islands.jsonl")?e.slice(0,-14):null}o(pM,"sidecarId");async function vW(e){let t;try{t=await vt.open(e,"r");let n=[],r=0,i=0;for(;;){let c=Buffer.allocUnsafe(IW),{bytesRead:l}=await t.read(c,0,c.length,i);if(l===0)break;let u=c.subarray(0,l),f=u.indexOf(10),p=f>=0?u.subarray(0,f):u;if(n.push(p),r+=p.length,f>=0)break;i+=l}let s=Buffer.concat(n,r).toString("utf8").trim();if(!s)return null;let a=JSON.parse(s);if(a&&typeof a=="object"&&a._type==="meta"){let c=a;return{gitRoot:typeof c.gitRoot=="string"?c.gitRoot:void 0,runtimeInfo:c.runtimeInfo}}return null}catch{return null}finally{await t?.close()}}o(vW,"readMeta");async function mM(e,t){let n=await vW(e);if(!n)return fr({});let r=n.runtimeInfo!==null&&typeof n.runtimeInfo=="object"?n.runtimeInfo:void 0,i=n.runtimeInfo,s=typeof r?.workspaceRoot=="string"?r.workspaceRoot:n.gitRoot,a=s??(typeof r?.canonicalRepoRoot=="string"?r.canonicalRepoRoot:void 0);if(a&&xS.existsSync(a)){let c=et.resolve(a),l=t.get(c);l===void 0&&(l=Hv({cwd:a,timeoutMs:750}),t.set(c,l)),i={...r,canonicalRepoRoot:await l,...s!==void 0?{workspaceRoot:s}:{}}}return fr({gitRoot:n.gitRoot,runtimeInfo:i})}o(mM,"destIdentityFor");async function bW(e){let t=[],n=o(async(r,i)=>{let s=[];try{s=await vt.readdir(r,{withFileTypes:!0})}catch{return}for(let a of s)!a.isFile()||a.name.startsWith(".")||(ph(a.name)||i&&pM(a.name)!==null)&&t.push(et.join(r,a.name))},"pushDir");return await n(e,!0),await n(fh(e),!0),t}o(bW,"collectMigrationSources");function RW(e,t){return et.join(e,t)}o(RW,"targetDirectory");async function kW(e){let t=await bW(e),n=t.filter(a=>ph(et.basename(a))),r=new Set(n.map(a=>`${et.dirname(a)}\0${et.basename(a,".jsonl")}`)),i=[],s=new Map;for(let a of n){let c=et.basename(a,".jsonl"),l=(await mM(a,s)).key,u=RW(e,l);i.push({from:a,to:et.join(u,`${c}.jsonl`),reason:`session\u2192${l}`});for(let f of[".archive.jsonl",".islands.jsonl"]){let p=et.join(et.dirname(a),`${c}${f}`);xS.existsSync(p)&&i.push({from:p,to:et.join(u,`${c}.islands.jsonl`),reason:"sidecar\u2192islands"})}}for(let a of t){let c=pM(et.basename(a));c===null||r.has(`${et.dirname(a)}\0${c}`)||i.push({from:a,to:et.join(e,yy,"orphan-islands",`${c}.islands.jsonl`),reason:"orphan-sidecar\u2192_unknown"})}return i}o(kW,"planMigration");async function EW(e){try{let t=JSON.parse(await vt.readFile(wS(e),"utf8"));return t!==null&&typeof t=="object"&&t.version===dM}catch{return!1}}o(EW,"isMigrated");async function uM(e){await ah(e),await ah(fh(e))}o(uM,"removeLegacyConversationCaches");async function MW(e){try{let t=JSON.parse(await vt.readFile(fM(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>CW}catch{return!0}}o(MW,"lockIsStale");async function _W(e){let t=TS(e);for(let n=0;n<2;n+=1)try{return await vt.mkdir(t),await vt.writeFile(fM(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 MW(e)){await vt.rm(t,{recursive:!0,force:!0}).catch(()=>{});continue}return!1}return!1}o(_W,"acquireLock");async function AW(e){await vt.rm(TS(e),{recursive:!0,force:!0}).catch(()=>{})}o(AW,"releaseLock");async function LW(e){try{if((await vt.readdir(et.join(e,".write-locks"),{withFileTypes:!0})).some(n=>n.isFile()&&/^[0-9a-f]{64}\.lock$/.test(n.name)))throw new Error("Session layout migration deferred while a Session writer is active")}catch(t){if(t.code==="ENOENT")return;throw t}}o(LW,"assertNoActiveSessionWriters");async function PW(e){let t=new Set;try{let n=await vt.readFile(SS(e),"utf8");for(let r of n.split(`
|
|
87
|
+
`))if(r.trim())try{let i=JSON.parse(r);i.done&&typeof i.from=="string"&&t.add(i.from)}catch{}}catch{}return t}o(PW,"readJournalDone");async function OW(e,t){if(et.resolve(e.from)===et.resolve(e.to))return!1;if(await vt.mkdir(et.dirname(e.to),{recursive:!0}),xS.existsSync(e.to)){let n=et.dirname(e.from);return n===t||n===fh(t)?(await vt.unlink(e.from).catch(()=>{}),!0):!1}try{await vt.rename(e.from,e.to)}catch(n){let r=n.code;if(r==="EXDEV")await vt.copyFile(e.from,e.to),await vt.unlink(e.from).catch(()=>{});else if(r!=="ENOENT")throw n}return!0}o(OW,"executeMove");async function $W(e){let t=[],n=o(async r=>{try{for(let i of await vt.readdir(r,{withFileTypes:!0}))i.isFile()&&ph(i.name)&&t.push(et.join(r,i.name))}catch(i){if(i.code!=="ENOENT")throw i}},"append");return await n(e),await n(et.join(e,"archived")),t}o($W,"readBucketMainFiles");async function NW(e,t){let n=new Map,r=new Set(t.flatMap(i=>i.reason.startsWith("session\u2192")?[et.dirname(i.to)]:[]));for(let i of r){let s=et.basename(i);if(s===yy)continue;let a=await $W(i),c;for(let l of a){let u=await mM(l,n);if(u.canonicalRoot===null||u.key!==s||c!==void 0&&c.canonicalRoot!==u.canonicalRoot)throw new Error(`Cannot certify mixed project identities in ${i}`);c??=u}c!==void 0&&await dh(i,c)}}o(NW,"publishBucketManifests");async function DW(e){await vt.mkdir(e,{recursive:!0});let t=`${wS(e)}.${process.pid}.tmp`,n=JSON.stringify({version:dM,migratedAt:new Date().toISOString(),from:"flat-v1"});await vt.writeFile(t,n+`
|
|
88
|
+
`,"utf8"),await vt.rename(t,wS(e))}o(DW,"writeMarker");async function BW(e){let t=fh(e);try{(await vt.readdir(t)).length===0&&await vt.rmdir(t).catch(()=>{})}catch{}}o(BW,"retireSessionsArchive");async function FW(e){if(!await _W(e))return{moved:0,planned:0};try{await LW(e),await uM(e);let t=await kW(e),n=await PW(e),r=await vt.open(SS(e),"a"),i=0;try{for(let s of t){if(ph(et.basename(s.from)))try{await Qn(s.to)}catch(c){throw new Eo(et.dirname(s.to),c)}if(n.has(s.from))continue;let a=await OW(s,e);await r.write(JSON.stringify({from:s.from,to:s.to,done:!0})+`
|
|
89
|
+
`),a&&(i+=1)}}finally{await r.close()}return await BW(e),await uM(e),await NW(e,t),await DW(e),await vt.rm(SS(e),{force:!0}).catch(()=>{}),{moved:i,planned:t.length}}finally{await AW(e)}}o(FW,"runMigration");async function Ls(e){try{if(await EW(e))return;await FW(e)}catch(t){if(t instanceof Eo)throw t}}o(Ls,"ensureLayoutMigrated");import{createHash as vS,randomUUID as bS}from"node:crypto";import bt from"node:fs/promises";import Or from"node:path";var Dc=7,HW=".resume-index",WW="complete.json",jW="publish.lock",UW=".resume";var GW=2e3,yh=10,CS=3e4,Bc=40,mh=new Map,Nc=new Map;function Hc(e){return Or.join(e,HW)}o(Hc,"indexDir");function RS(e){return Or.join(Hc(e),WW)}o(RS,"manifestPath");function wh(e){return`${vS("sha256").update(e,"utf8").digest("hex")}${UW}`}o(wh,"markerName");function wM(e,t){return Or.join(Hc(e),wh(t))}o(wM,"markerPath");function hM(e){try{let t=JSON.parse(e);return!Fc(t)||typeof t.pid!="number"||!Number.isInteger(t.pid)||t.pid<=0||typeof t.token!="string"||t.token.length===0?void 0:{pid:t.pid,token:t.token}}catch{return}}o(hM,"parseIndexPublishLockOwner");async function gM(e){for(let t=0;t<Bc;t+=1)try{return await bt.rmdir(e),!0}catch(n){let r=n.code;if(r==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(r??""))return!1;t+1<Bc&&await new Promise(i=>setTimeout(i,yh))}return!1}o(gM,"removeEmptyIndexLockDirectory");async function VW(e){let t=`${e}.reclaim`;for(let n=0;n<2;n+=1)try{return await bt.mkdir(t),async()=>{await gM(t)||process.emitWarning(`Unable to release resume-index reclaim guard ${t}`,{code:"KODAX_RESUME_INDEX"})}}catch(r){if(r.code!=="EEXIST")throw r;if(n>0)return;try{let i=await bt.stat(t);if(Date.now()-i.mtimeMs<CS)return}catch(i){if(i.code==="ENOENT")continue;throw i}if(!await gM(t))return}}o(VW,"acquireIndexLockReclaimGuard");function yM(e){try{return process.kill(e,0),!1}catch(t){return t.code==="ESRCH"}}o(yM,"processIsDefinitelyDead");async function hh(e){try{let[t,n]=await Promise.all([bt.readFile(e,"utf8"),bt.stat(e)]);return{content:t,mtimeMs:n.mtimeMs}}catch(t){if(t.code==="ENOENT")return;throw t}}o(hh,"readIndexPublishLock");async function IS(e,t){for(let n=0;n<Bc;n+=1){let r=await hh(e);if(r===void 0)return!0;if(r.content!==t)return!1;try{return await bt.rm(e),!0}catch(i){let s=i.code;if(s==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(s??""))return!1;n+1<Bc&&await new Promise(a=>setTimeout(a,yh))}}return!1}o(IS,"removeObservedIndexPublishLock");async function KW(e){let t=await hh(e);if(t===void 0)return!0;if(Nc.get(e)===t.content){let i=await IS(e,t.content);return i&&Nc.delete(e),i}let n=hM(t.content);if(n!==void 0){if(!yM(n.pid))return!1}else if(Date.now()-t.mtimeMs<CS)return!1;let r=await VW(e);if(r===void 0)return!1;try{let i=await hh(e);if(i===void 0)return!0;let s=hM(i.content);return Nc.get(e)===i.content||(s!==void 0?yM(s.pid):Date.now()-i.mtimeMs>=CS)?IS(e,i.content):!1}finally{await r()}}o(KW,"reclaimAbandonedIndexPublishLock");async function zW(e){let t;for(let r=0;r<Bc;r+=1)try{await bt.rm(e,{force:!0});return}catch(i){t=i;let s=i.code;if(!["EPERM","EACCES","EBUSY"].includes(s??""))break;r+1<Bc&&await new Promise(a=>setTimeout(a,yh))}let n=t instanceof Error?t.message:String(t);process.emitWarning(`Unable to remove resume-index lock temp file ${e}: ${n}`,{code:"KODAX_RESUME_INDEX"})}o(zW,"removeIndexPublishLockTemp");async function XW(e,t){await bt.mkdir(Or.dirname(e),{recursive:!0});let n=`${e}.${process.pid}.${bS()}.tmp`;await bt.writeFile(n,t,{encoding:"utf8",flag:"wx"});let r=Date.now()+GW;try{for(;;)try{await bt.link(n,e);return}catch(i){let s=i.code;if(!["EEXIST","EPERM","EACCES","EBUSY"].includes(s??""))throw i;if(await hh(e)!==void 0&&await KW(e))continue;if(Date.now()>=r)throw new Error(`Resume index publish lock timed out: ${e}`,{cause:i});await new Promise(c=>setTimeout(c,yh))}}finally{await zW(n)}}o(XW,"acquireIndexPublishLock");async function YW(e,t){if(!await IS(e,t))throw Nc.set(e,t),new Error(`Resume index publish lock ownership changed: ${e}`);Nc.get(e)===t&&Nc.delete(e)}o(YW,"releaseIndexPublishLock");async function qW(e,t){let n=Or.join(Hc(e),jW),r=mh.get(n)??Promise.resolve(),i,s=new Promise(c=>{i=c});mh.set(n,s),await r.catch(()=>{});let a=JSON.stringify({pid:process.pid,token:bS()});try{await XW(n,a);try{return await t()}finally{await YW(n,a)}}finally{i(),mh.get(n)===s&&mh.delete(n)}}o(qW,"withIndexPublishLock");function Sh(e){let t=Or.dirname(e);return Or.basename(t)==="archived"?Or.dirname(t):t}o(Sh,"resumeIndexProjectDir");function Fc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(Fc,"isRecord");function JW(e){if(!(!Fc(e)||typeof e.id!="string"||e.id.length===0||Or.basename(e.id)!==e.id||typeof e.title!="string"||typeof e.msgCount!="number"||!Number.isInteger(e.msgCount)||e.msgCount<=0||e.createdAt!==void 0&&typeof e.createdAt!="string"||e.surface!==void 0&&typeof e.surface!="string"))return{id:e.id,title:e.title,msgCount:e.msgCount,...e.createdAt!==void 0?{createdAt:e.createdAt}:{},...e.surface!==void 0?{surface:e.surface}:{}}}o(JW,"parseEntry");function QW(e){if(!Fc(e))return;let t=Array.isArray(e.markerNames)&&e.markerNames.every(i=>typeof i=="string")?[...e.markerNames].sort():void 0,n=Array.isArray(e.sessionNames)&&e.sessionNames.every(i=>typeof i=="string")?[...e.sessionNames].sort():void 0,r=Array.isArray(e.excludedSources)?e.excludedSources.flatMap(i=>!Fc(i)||typeof i.name!="string"||typeof i.sourceSize!="number"||!Number.isInteger(i.sourceSize)||i.sourceSize<0||typeof i.sourceMtimeMs!="number"||!Number.isFinite(i.sourceMtimeMs)||typeof i.sourceCtimeMs!="number"||!Number.isFinite(i.sourceCtimeMs)||typeof i.sourceDev!="number"||!Number.isInteger(i.sourceDev)||typeof i.sourceIno!="number"||!Number.isInteger(i.sourceIno)?[]:[{name:i.name,sourceSize:i.sourceSize,sourceMtimeMs:i.sourceMtimeMs,sourceCtimeMs:i.sourceCtimeMs,sourceDev:i.sourceDev,sourceIno:i.sourceIno}]):void 0;if(!(e.version!==Dc||t===void 0||typeof e.markerCount!="number"||!Number.isInteger(e.markerCount)||e.markerCount<0||typeof e.markerDigest!="string"||n===void 0||typeof e.sessionFileCount!="number"||!Number.isInteger(e.sessionFileCount)||e.sessionFileCount<0||typeof e.sessionFileDigest!="string"||r===void 0||typeof e.excludedSourceCount!="number"||!Number.isInteger(e.excludedSourceCount)||e.excludedSourceCount<0||typeof e.excludedSourceDigest!="string"||t.length!==e.markerCount||gh(t)!==e.markerDigest||n.length!==e.sessionFileCount||gh(n)!==e.sessionFileDigest||r.length!==e.excludedSourceCount||SM(r)!==e.excludedSourceDigest))return{version:Dc,markerNames:t,markerCount:e.markerCount,markerDigest:e.markerDigest,sessionNames:n,sessionFileCount:e.sessionFileCount,sessionFileDigest:e.sessionFileDigest,excludedSources:r,excludedSourceCount:e.excludedSourceCount,excludedSourceDigest:e.excludedSourceDigest}}o(QW,"parseManifest");function ZW(e,t){if(!Fc(e)||e.version!==Dc||e.state!=="pending"&&e.state!=="ready")return;let n=JW(e.entry);if(!n||wh(n.id)!==t)return;let r=Fc(e.source)&&typeof e.source.size=="number"&&Number.isInteger(e.source.size)&&e.source.size>=0&&typeof e.source.mtimeMs=="number"&&Number.isFinite(e.source.mtimeMs)&&typeof e.source.ctimeMs=="number"&&Number.isFinite(e.source.ctimeMs)&&typeof e.source.dev=="number"&&Number.isInteger(e.source.dev)&&typeof e.source.ino=="number"&&Number.isInteger(e.source.ino)?{size:e.source.size,mtimeMs:e.source.mtimeMs,ctimeMs:e.source.ctimeMs,dev:e.source.dev,ino:e.source.ino}:void 0;if(!(e.state==="ready"&&r===void 0))return{version:Dc,state:e.state,entry:n,...r!==void 0?{source:r}:{}}}o(ZW,"parseMarker");function gh(e){let t=vS("sha256");for(let n of[...e].sort())t.update(n),t.update(`
|
|
90
|
+
`);return t.digest("hex")}o(gh,"digestMarkerNames");function SM(e){let t=vS("sha256");for(let n of[...e].sort((r,i)=>r.name.localeCompare(i.name)))t.update(JSON.stringify([n.name,n.sourceSize,n.sourceMtimeMs,n.sourceCtimeMs,n.sourceDev,n.sourceIno])),t.update(`
|
|
91
|
+
`);return t.digest("hex")}o(SM,"digestScannedFiles");async function ej(e,t){let n;try{n=await bt.readFile(Or.join(Hc(e),t),"utf8")}catch(r){if(r.code!=="ENOENT")throw r;return}try{return ZW(JSON.parse(n),t)}catch{return}}o(ej,"readMarker");async function xM(e,t){let n=`${e}.${process.pid}.${bS()}.tmp`;await bt.writeFile(n,t,"utf8");try{await bt.rename(n,e)}catch(r){if(!["EEXIST","EPERM"].includes(r.code??""))throw r;await bt.rm(e,{force:!0}),await bt.rename(n,e)}finally{await bt.rm(n,{force:!0})}}o(xM,"replaceDerivedFile");async function tj(e){await bt.rm(RS(e),{force:!0})}o(tj,"invalidateManifest");async function TM(e,t,n,r,i){let s=Hc(e),a=wM(e,t.id);if(await bt.mkdir(s,{recursive:!0}),!r)try{return await bt.access(a),!1}catch(u){if(u.code!=="ENOENT")throw u}let c=r?await ej(e,wh(t.id)):void 0,l={version:Dc,state:n,entry:{...c?.entry,...t},...i!==void 0?{source:i}:{}};return await xM(a,JSON.stringify(l)),!0}o(TM,"writeMarker");async function nj(e,t){try{let n=await bt.stat(Or.join(e,`${t}.jsonl`));return n.isFile()?{size:n.size,mtimeMs:n.mtimeMs,ctimeMs:n.ctimeMs,dev:n.dev,ino:n.ino}:void 0}catch(n){if(n.code==="ENOENT")return;throw n}}o(nj,"canonicalSource");async function rj(e,t,n,r){await bt.mkdir(Hc(e),{recursive:!0});let i=[...t].sort(),s=[...n].sort(),a=[...r].sort((l,u)=>l.name.localeCompare(u.name)),c={version:Dc,markerNames:i,markerCount:i.length,markerDigest:gh(i),sessionNames:s,sessionFileCount:s.length,sessionFileDigest:gh(s),excludedSources:a,excludedSourceCount:a.length,excludedSourceDigest:SM(a)};await xM(RS(e),JSON.stringify(c))}o(rj,"writeManifest");async function xh(e,t){try{await TM(e,t,"pending",!1)}catch(n){try{await tj(e)}catch(r){throw new AggregateError([n,r],`Unable to prepare or invalidate the resume index for ${t.id}`)}throw n}}o(xh,"prepareResumeIndexEntry");async function ij(e,t){try{return await bt.rm(wM(e,t)),!0}catch(n){if(n.code==="ENOENT")return!1;throw n}}o(ij,"removeResumeIndexEntry");async function dd(e,t,n){await qW(e,async()=>{let r=await nj(e,t.id);if(n){if(r===void 0)return;await TM(e,t,"ready",!0,r)}else await ij(e,t.id);await oj(e,t.id,n,r)})}o(dd,"commitResumeIndexEntry");async function oj(e,t,n,r){let i;try{i=await bt.readFile(RS(e),"utf8")}catch(p){if(p.code==="ENOENT")return;throw p}let s;try{s=QW(JSON.parse(i))}catch{return}if(!s)return;let a=wh(t),c=`${t}.jsonl`;if(n&&s.markerNames.includes(a))return;let l=new Set(s.markerNames),u=new Set(s.sessionNames),f=s.excludedSources.filter(p=>p.name!==c);r===void 0?u.delete(c):u.add(c),n?l.add(a):(l.delete(a),r!==void 0&&f.push({name:c,sourceSize:r.size,sourceMtimeMs:r.mtimeMs,sourceCtimeMs:r.ctimeMs,sourceDev:r.dev,sourceIno:r.ino})),await rj(e,[...l],[...u],f)}o(oj,"refreshCompleteManifestAfterCommit");var sj=new Set(["user","assistant","system"]),aj=new Set(["user","assistant","system","thinking","error","event","info","hint"]),cj=new Set(["success","error","cancelled","awaiting_approval"]);function tt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(tt,"isRecord");function Bi(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(Bi);if(!tt(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(Bi)}o(Bi,"isKodaXJsonValue");function IM(e){return tt(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||Bi(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}o(IM,"isKodaXExtensionSessionRecord");function vM(e){return tt(e)?Object.values(e).every(t=>tt(t)?Object.values(t).every(Bi):!1):!1}o(vM,"isKodaXExtensionSessionState");function lj(e){if(!tt(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"&&tt(e.input);case"tool_result":return typeof e.tool_use_id=="string"&&(typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(uj))&&(e.is_error===void 0||typeof e.is_error=="boolean")&&(e.metadata===void 0||tt(e.metadata));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";case"cache-boundary":return e.hint===void 0||e.hint==="system"||e.hint==="tools"||e.hint==="role-prompt";default:return!1}}o(lj,"isKodaXContentBlock");function uj(e){return tt(e)?e.type==="text"?typeof e.text=="string":e.type==="image"&&typeof e.path=="string"&&(e.mediaType===void 0||typeof e.mediaType=="string"):!1}o(uj,"isKodaXToolResultContentItem");function kS(e){return!tt(e)||typeof e.role!="string"||!sj.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(lj)}o(kS,"isKodaXMessage");function bM(e){return tt(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(bM,"isSessionErrorMetadata");function dj(e){return tt(e)&&Object.values(e).every(Bi)}o(dj,"isKodaXSessionUiToolInput");function fj(e){return tt(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.status=="string"&&cj.has(e.status)&&(e.input===void 0||dj(e.input))&&(e.preview===void 0||typeof e.preview=="string")&&(e.output===void 0||typeof e.output=="string")&&(e.error===void 0||typeof e.error=="string")&&(e.startTime===void 0||typeof e.startTime=="number")&&(e.endTime===void 0||typeof e.endTime=="number")}o(fj,"isKodaXSessionUiToolCall");function CM(e){return e===void 0||typeof e=="number"&&Number.isFinite(e)&&e>=0}o(CM,"isOptionalHistoryTimestamp");function RM(e){return!tt(e)||typeof e.type!="string"?!1:e.type==="tool_group"?CM(e.timestamp)&&Array.isArray(e.tools)&&e.tools.length>0&&e.tools.every(fj):aj.has(e.type)&&typeof e.text=="string"&&CM(e.timestamp)&&(e.icon===void 0||typeof e.icon=="string")&&(e.compactText===void 0||typeof e.compactText=="string")}o(RM,"isKodaXSessionUiHistoryItem");var mj=[10,25,50,100],bh=6e4,hj=bh+5e3,gj=15e3,LS=".location-topology",yj=".location-topology.lock",Rh=".location-index",wj=64*1024,EM=256*1024,YM=256,ES=0,PS=class extends Error{static{o(this,"ActorSnapshotSaveCancelledError")}attemptId;code="actor_snapshot_save_cancelled";constructor(t){super(`Actor snapshot save ${t} was cancelled before canonical commit.`),this.attemptId=t,this.name="ActorSnapshotSaveCancelledError"}};function Th(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}o(Th,"deferredValue");function $n(e){return Math.max(0,$r.now()-e)}o($n,"elapsedMs");function Sj(e){return JSON.parse(JSON.stringify(e))}o(Sj,"jsonPersistedValue");var OS=class{static{o(this,"ActorSaveLifecycleState")}attempt;queueObserver;canonicalObserver;attemptId;startedAt=$r.now();dequeued=Th();eligible=Th();canonical=Th();completion=Th();timings={};cancelled;phaseValue="queued";activeStage="storageQueue";activeStageStartedAt=this.startedAt;failedStage;fileLockStartedAt=this.startedAt;committedAt;canonicalOutcome="pending";completionOutcome="pending";constructor(t,n){this.attemptId=`${t}:${n}:${pd()}`,this.cancelled=new PS(this.attemptId),this.attempt=this.createAttempt(),this.queueObserver={onDequeued:o(()=>this.onDequeued(),"onDequeued"),beforeFileLock:o(()=>this.beforeFileLock(),"beforeFileLock"),onFileLockAcquired:o(()=>this.onFileLockAcquired(),"onFileLockAcquired"),onFileLockSettled:o(()=>this.onFileLockSettled(),"onFileLockSettled")},this.canonicalObserver={beforeCommit:o(()=>this.beforeCommit(),"beforeCommit"),afterCommit:o(()=>this.afterCommit(),"afterCommit"),beginTiming:o(r=>this.beginTiming(r),"beginTiming"),recordTiming:o((r,i)=>this.recordTiming(r,i),"recordTiming")},this.dequeued.promise.catch(()=>{}),this.eligible.promise.catch(()=>{}),this.canonical.promise.catch(()=>{}),this.completion.promise.catch(()=>{})}settleCompletion(t){t.then(()=>{this.completionOutcome="succeeded",this.recordCompletionTimings(),this.completion.resolve(void 0)},n=>{this.completionOutcome="failed",this.activeStage!==void 0&&this.timings[this.activeStage]===void 0&&this.recordTiming(this.activeStage,$n(this.activeStageStartedAt)),this.phaseValue==="committed"?this.failedStage??=this.activeStage??"postCommit":this.rejectBeforeCommit(n),this.recordCompletionTimings(),this.completion.reject(n)})}createAttempt(){return{dequeued:this.dequeued.promise,eligible:this.eligible.promise,canonical:this.canonical.promise,completion:this.completion.promise,phase:o(()=>this.phaseValue,"phase"),cancelBeforeCommit:o(()=>this.cancelBeforeCommit(),"cancelBeforeCommit"),diagnostics:o(()=>this.diagnostics(),"diagnostics")}}markCommitNotObserved(t){this.phaseValue==="commit_inflight"&&(this.phaseValue="not_committed",this.canonicalOutcome="not_committed",this.rejectBeforeCommit(t))}markCommitObservedByReadback(){this.phaseValue==="commit_inflight"&&(this.failedStage??="rename",this.afterCommit("committed_by_readback"))}cancelBeforeCommit(){return this.phaseValue!=="queued"&&this.phaseValue!=="precommit"?!1:(this.failedStage??=this.activeStage,this.phaseValue="not_committed",this.canonicalOutcome="not_committed",this.rejectBeforeCommit(this.cancelled),!0)}onDequeued(){this.recordTiming("storageQueue",$n(this.startedAt)),this.dequeued.resolve(void 0)}beforeFileLock(){if(this.phaseValue==="not_committed")throw this.cancelled;this.beginTiming("fileLock"),this.fileLockStartedAt=$r.now()}onFileLockAcquired(){if(this.recordTiming("fileLock",$n(this.fileLockStartedAt)),this.phaseValue==="not_committed")throw this.cancelled;this.phaseValue="precommit",this.eligible.resolve(void 0)}onFileLockSettled(){this.timings.fileLock===void 0&&this.recordTiming("fileLock",$n(this.fileLockStartedAt))}beforeCommit(){if(this.phaseValue!=="precommit")throw this.cancelled;this.phaseValue="commit_inflight",this.canonicalOutcome="ambiguous"}afterCommit(t="committed"){this.phaseValue!=="committed"&&(this.phaseValue="committed",this.canonicalOutcome=t,this.beginTiming("postCommit"),this.committedAt=$r.now(),this.canonical.resolve(void 0))}recordCompletionTimings(){this.committedAt!==void 0&&this.recordTiming("postCommit",$n(this.committedAt)),this.recordTiming("total",$n(this.startedAt)),this.activeStage=void 0}rejectBeforeCommit(t){this.failedStage??=this.activeStage,this.phaseValue!=="commit_inflight"&&(this.phaseValue="not_committed",this.canonicalOutcome="not_committed"),this.dequeued.reject(t),this.eligible.reject(t),this.canonical.reject(t)}beginTiming(t){this.activeStage=t,this.activeStageStartedAt=$r.now()}recordTiming(t,n){this.timings[t]=n}diagnostics(){return{attemptId:this.attemptId,phase:this.phaseValue,...this.activeStage!==void 0?{activeStage:this.activeStage}:{},...this.activeStage!==void 0?{activeStageElapsedMs:$n(this.activeStageStartedAt)}:{},...this.failedStage!==void 0?{failedStage:this.failedStage}:{},canonicalOutcome:this.canonicalOutcome,completionOutcome:this.completionOutcome,timingsMs:{...this.timings}}}};function xj(e,t){return new OS(e,t)}o(xj,"createActorSaveLifecycle");function qM(e){let t=e??gj;if(!Number.isSafeInteger(t)||t<=0)throw new Error("Session read timeoutMs must be a positive safe integer");return t}o(qM,"normalizeSessionReadTimeout");function er(e){if(e?.aborted)throw new Te("read_cancelled","Session history read cancelled")}o(er,"throwIfSessionReadAborted");function _h(e,t){er(e.signal);let n=qM(e.timeoutMs);if(!(Date.now()-t<n))throw new Te("read_timeout",`Session history read timed out after ${n}ms`)}o(_h,"assertSessionReadBudget");async function Wc(e,t){let n=qM(t.timeoutMs),r,i;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new Te("read_timeout",`Session history read timed out after ${n}ms`)),n),t.signal!==void 0&&(i=o(()=>a(new Te("read_cancelled","Session history read cancelled")),"abort"),t.signal.addEventListener("abort",i,{once:!0}))})])}finally{r!==void 0&&clearTimeout(r),i!==void 0&&t.signal?.removeEventListener("abort",i)}}o(Wc,"raceSessionRead");async function MS(e,t){for(let n=0;;n+=1)try{await _e.rename(e,t);return}catch(r){let i=mj[n];if(i===void 0||!Tj(r))throw r;await new Promise(s=>setTimeout(s,i))}}o(MS,"replaceSessionFile");function Tj(e){if(!(e instanceof Error)||!("code"in e))return!1;let t=e.code;return t==="EPERM"||t==="EBUSY"||t==="EACCES"}o(Tj,"isTransientRenameError");function Cj(e){return!tt(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||Array.isArray(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")&&(e.lineageIdentityFilterHash===void 0||typeof e.lineageIdentityFilterHash=="string"&&/^[a-f0-9]{64}$/.test(e.lineageIdentityFilterHash))}o(Cj,"isPersistedMetaUpdateLine");function JM(e){if(!Array.isArray(e))return;let t=e.filter(RM).map(n=>n.type==="tool_group"?{...n,tools:n.tools.map(r=>({...r}))}:{...n});return t.length>0?t:void 0}o(JM,"normalizeKodaXSessionUiHistory");var Te=class extends Error{static{o(this,"SessionReadError")}code;constructor(t,n){super(n),this.code=t,this.name="SessionReadError"}};function MM(e,t){let n=Ta(e,t);if(!(n.at(-1)?.id!==t||n[0]?.parentId!==null))return n.every((r,i)=>i===0||r.parentId===n[i-1].id)?n:void 0}o(MM,"completeLineageBoundaryPath");function jc(e,t){let n=Ao("sha256").update(t,"utf8").digest("hex");return U.join(e,".write-locks",`${n}.lock`)}o(jc,"sessionWriteLockPath");function Os(e){return U.join(e,yj)}o(Os,"sessionLocationTopologyLockPath");function QM(e,t){let n=Ao("sha256").update(t,"utf8").digest("hex");return U.join(e,Rh,`${n}.json`)}o(QM,"sessionLocationHintPath");function ZM(e,t){return`${jc(e,t)}.queue`}o(ZM,"sessionWriteQueuePath");function FS(e){return U.join(e,".write-locks")}o(FS,"sessionGlobalWriteBoundaryPath");function _M(e){let t=FS(e);try{let n=Ao("sha256"),r=at.readdirSync(t,{withFileTypes:!0}).filter(i=>i.isDirectory()&&i.name.endsWith(".lock.queue")).sort((i,s)=>i.name.localeCompare(s.name));for(let i of r){let s=$s(at.statSync(U.join(t,i.name),{bigint:!0}));n.update(i.name),n.update("\0"),n.update(s.dev.toString()),n.update("\0"),n.update(s.ino.toString()),n.update("\0"),n.update(s.size.toString()),n.update("\0"),n.update(s.mtimeNs.toString()),n.update("\0"),n.update(s.ctimeNs.toString()),n.update(`
|
|
92
|
+
`)}return n.digest("hex")}catch(n){return n.code==="ENOENT"?Ao("sha256").digest("hex"):void 0}}o(_M,"sessionWriterTopologyDigestSync");function Hi(e,t){let n=[jc(e,t),Os(e),U.join(e,".migration-lock"),U.join(e,".migration-journal.jsonl")].find(r=>at.existsSync(r));if(n!==void 0)throw new Te("data_changed",`Session data changed during the read boundary: ${U.basename(n)}`)}o(Hi,"assertStableSessionReadBoundary");async function e_(e,t){let n=jc(e,t);at.existsSync(n)&&await pI(n),Hi(e,t)}o(e_,"prepareStableSessionReadBoundary");function Ij(e){let t=[U.join(e,".migration-lock"),U.join(e,".migration-journal.jsonl")].find(n=>at.existsSync(n));if(t!==void 0)throw new Te("data_changed",`Session layout migration is active: ${U.basename(t)}`)}o(Ij,"assertSessionMigrationInactive");function AM(e){try{return at.statSync(e).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}o(AM,"inspectSessionCandidate");async function _S(e){try{return(await _e.stat(e)).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}o(_S,"inspectSessionCandidateAsync");function kh(e,t){return new Te("data_changed",`Session candidate could not be verified for ${e}: ${U.basename(t)}`)}o(kh,"inaccessibleSessionCandidate");async function LM(e,t){let n=[],r=U.join(e,`${t}.jsonl`),i=AM(r);if(i==="present"&&n.push(r),i==="unverifiable")throw kh(t,r);let s=[];try{s=await _e.readdir(e,{withFileTypes:!0})}catch(a){if(a.code!=="ENOENT")throw kh(t,e)}for(let a of s){if(!a.isDirectory()||a.name.startsWith("."))continue;let c=U.join(e,a.name);for(let l of[U.join(c,`${t}.jsonl`),U.join(c,"archived",`${t}.jsonl`)]){let u=AM(l);if(u==="present"&&n.push(l),u==="unverifiable")throw kh(t,l)}}return n.sort()}o(LM,"findStableSessionCandidates");async function vj(e,t){let n;try{n=await _e.open(t,"r")}catch(r){if(r.code==="ENOENT")return null;throw r}try{let r=await n.stat({bigint:!0}),i=await n.readFile(),s=await n.stat({bigint:!0}),a=$s(r),c=$s(s);if(!Nr(a,c)||BigInt(i.length)!==c.size)throw new Te("data_changed",`Session file changed while reading: ${U.basename(t)}`);return{file:{kind:e,path:t,bytes:i,modifiedAt:new Date(Number(c.mtimeNs/1000000n)).toISOString()},identity:c}}catch(r){throw r.code==="ENOENT"?new Te("data_changed",`Session file changed while reading: ${U.basename(t)}`):r}finally{await n.close()}}o(vj,"readStableBundleFile");function $s(e){return{dev:e.dev,ino:e.ino,size:e.size,mtimeNs:e.mtimeNs,ctimeNs:e.ctimeNs}}o($s,"stableFileIdentity");function PM(e){return{dev:e.dev.toString(),ino:e.ino.toString(),size:e.size.toString(),mtimeNs:e.mtimeNs.toString(),ctimeNs:e.ctimeNs.toString()}}o(PM,"persistStableFileIdentity");function OM(e){if(!(!tt(e)||!["dev","ino","size","mtimeNs","ctimeNs"].every(n=>typeof e[n]=="string"&&/^\d+$/.test(e[n]))))return{dev:BigInt(e.dev),ino:BigInt(e.ino),size:BigInt(e.size),mtimeNs:BigInt(e.mtimeNs),ctimeNs:BigInt(e.ctimeNs)}}o(OM,"parsePersistedStableFileIdentity");function Nr(e,t){return e.dev===t.dev&&e.ino===t.ino&&e.size===t.size&&e.mtimeNs===t.mtimeNs&&e.ctimeNs===t.ctimeNs}o(Nr,"sameStableFileIdentity");function $S(e,t){return e===null||t===null?e===t:Nr(e,t)}o($S,"sameOptionalStableFileIdentity");function Mo(e,t){return Nr(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&$S(e.writerIdentity,t.writerIdentity)&&$S(e.activeWriterIdentity,t.activeWriterIdentity)}o(Mo,"sameSessionTopologyIdentity");function bj(e,t){return Nr(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&$S(e.writerIdentity,t.writerIdentity)}o(bj,"sameSessionTopologyWithoutActiveWriter");function Rj(e,t){return e===null||t===null?e===t:Mo(e,t)}o(Rj,"sameOptionalSessionTopologyIdentity");function kj(e,t,n){if(U.isAbsolute(n))return;let i=n.replace(/\\/g,"/").split("/"),s=`${t}.jsonl`;if(!(i.length===1&&i[0]===s||i.length===2&&!i[0].startsWith(".")&&i[1]===s||i.length===3&&!i[0].startsWith(".")&&i[1]==="archived"&&i[2]===s)||i.some(u=>u===".."||u===""))return;let c=U.resolve(e),l=U.resolve(e,...i);return l.startsWith(`${c}${U.sep}`)?l:void 0}o(kj,"resolvePersistedSessionLocationPath");async function Ej(e,t){let n;try{n=await _e.open(QM(e,t),"r");let r=(await n.stat()).size;if(r>wj)return;let i=Buffer.allocUnsafe(r),s=0;for(;s<r;){let{bytesRead:f}=await n.read(i,s,r-s,s);if(f===0)return;s+=f}let a=JSON.parse(i.toString("utf8"));if(!tt(a)||a.version!==1||a.id!==t||!Array.isArray(a.filePaths)||a.filePaths.length===0||a.filePaths.length>16||!tt(a.topology)||a.topology.epoch!==null&&typeof a.topology.epoch!="string")return;let c=OM(a.topology.root),l=a.topology.writerIdentity===null?null:OM(a.topology.writerIdentity);if(c===void 0||l===void 0)return;let u=a.filePaths.flatMap(f=>{if(typeof f!="string")return[];let p=kj(e,t,f);return p===void 0?[]:[p]});return u.length!==a.filePaths.length||new Set(u).size!==u.length?void 0:{filePaths:u,topology:{root:c,epoch:a.topology.epoch,writerScope:"session",writerIdentity:l,activeWriterIdentity:null}}}catch(r){if(r.code==="ENOENT"||r instanceof SyntaxError)return;throw r}finally{await n?.close()}}o(Ej,"readSessionLocationHint");async function Ch(e,t,n="session"){let r=await tr(e);if(r===null)return null;let i=await tr(n==="session"?ZM(e,t):FS(e)),s=n==="session"?await tr(jc(e,t)):null;try{return{root:r,epoch:(await _e.readFile(U.join(e,LS),"utf8")).trim(),writerScope:n,writerIdentity:i,activeWriterIdentity:s}}catch(a){if(a.code==="ENOENT")return{root:r,epoch:null,writerScope:n,writerIdentity:i,activeWriterIdentity:s};throw a}}o(Ch,"statSessionTopologyIdentity");async function tr(e){try{return $s(await _e.stat(e,{bigint:!0}))}catch(t){if(t.code==="ENOENT")return null;throw t}}o(tr,"statStableFileIdentity");function t_(e,t){return OE(t.map(n=>({kind:n.kind,relativePath:U.relative(e,n.path).replace(/\\/g,"/"),bytes:n.bytes})))}o(t_,"createStableBundleSourceRevisionState");function HS(e,t){let n=Ao("sha256");n.update("kodax-session-bundle-boundary-v1\0");for(let r of t){if(r===null)continue;let i=U.relative(e,r.file.path).replace(/\\/g,"/"),s=r.identity;n.update(`${r.file.kind}:${i}:`),n.update([s.dev,s.ino,s.size,s.mtimeNs,s.ctimeNs].map(a=>a.toString()).join(":"))}return`sha256:${n.digest("hex")}`}o(HS,"createStableBundleBoundaryRevision");async function NS(e,t,n,r,i=!1,s){er(r),i||Hi(e,t);let a=U.dirname(n),c=[{kind:"main",filePath:n},{kind:"islands",filePath:U.join(a,`${t}.islands.jsonl`)},{kind:"legacy_archive",filePath:U.join(a,`${t}.archive.jsonl`)}],l=[];for(let p of c)if(er(r),p.kind==="main"&&s!==void 0){let h=await tr(p.filePath);if(h===null||h.size!==BigInt(s.length))throw new Te("data_changed","Session main file changed after append");l.push({identity:h,file:{kind:"main",path:p.filePath,bytes:s,modifiedAt:new Date(Number(h.mtimeNs/1000000n)).toISOString()}})}else l.push(await vj(p.kind,p.filePath));if(l[0]===null)throw new Te("data_changed","Session main file moved during the read boundary");i||Hi(e,t);for(let p=0;p<c.length;p+=1){er(r);let h=await tr(c[p].filePath),m=l[p];if(m===null&&h!==null||m!==null&&(h===null||!Nr(m.identity,h)))throw new Te("data_changed",`Session file changed during the read boundary: ${U.basename(c[p].filePath)}`)}i||Hi(e,t);let u=l.flatMap(p=>p===null?[]:[p.file]),f=t_(e,u);return{candidates:[n],files:u,sourceRevision:ko(f),sourceRevisionState:f,boundaryRevision:HS(e,l)}}o(NS,"readStableSessionBundleAtPath");async function Ps(e,t,n,r=!1){return(await md(e,t,n,r)).revision}o(Ps,"readStableSessionBundleBoundaryAtPath");async function md(e,t,n,r=!1){r||Hi(e,t);let i=U.dirname(n),s=[{kind:"main",filePath:n},{kind:"islands",filePath:U.join(i,`${t}.islands.jsonl`)},{kind:"legacy_archive",filePath:U.join(i,`${t}.archive.jsonl`)}],a=[];for(let c of s){let l=await tr(c.filePath);a.push(l===null?null:{identity:l,file:{kind:c.kind,path:c.filePath,bytes:Buffer.alloc(0),modifiedAt:""}})}if(a[0]===null)throw new Te("data_changed","Session main file moved during the read boundary");r||Hi(e,t);for(let c=0;c<s.length;c+=1){let l=await tr(s[c].filePath),u=a[c];if(u===null&&l!==null||u!==null&&(l===null||!Nr(u.identity,l)))throw new Te("data_changed",`Session file changed during the read boundary: ${U.basename(s[c].filePath)}`)}return r||Hi(e,t),{revision:HS(e,a),identities:a.map(c=>c?.identity??null)}}o(md,"readStableSessionBundleBoundarySnapshotAtPath");function Mj(e,t,n){let r=e.identities[0],i=t.identities[0];return r==null||i===null||i===void 0||r.dev!==i.dev||r.ino!==i.ino||i.size!==r.size+BigInt(n)?!1:[1,2].every(s=>{let a=e.identities[s]??null,c=t.identities[s]??null;return a===null?c===null:c!==null&&Nr(a,c)})}o(Mj,"isExpectedAppendBoundaryTransition");async function n_(e,t,n){let r=U.resolve(e);er(n),await e_(r,t);let i=await LM(r,t);if(i.length!==1){let c=t_(r,[]);return{candidates:i,files:[],sourceRevision:ko(c),sourceRevisionState:c,boundaryRevision:HS(r,[])}}let s=await NS(r,t,i[0],n);er(n);let a=await LM(r,t);if(a.length!==i.length||a.some((c,l)=>c!==i[l]))throw new Te("data_changed","Session location changed during the read boundary");return s}o(n_,"readStableSessionBundleFiles");function At(e,t,n){mt({source:"repl:session-storage",level:e,message:t,...n!==void 0?{detail:n}:{}})}o(At,"reportStorageDiagnostic");function $M(e,t){t!==0&&At("warn",`Skipped ${t} malformed session record(s) from ${U.basename(e)}.`)}o($M,"warnMalformedSessionData");function Fi(e){At("info",e)}o(Fi,"writeStorageNotice");function NM(e){return{_type:"extension_record",...e}}o(NM,"toExtensionRecordLine");function DM(e){return{_type:"lineage_entry",entry:e}}o(DM,"toLineageEntryLine");function BM(e){return{_type:"artifact_ledger_entry",entry:e}}o(BM,"toArtifactLedgerLine");function _j(e){switch(e.type){case"message":case"branch_summary":return 1;case"compaction":return e.reason==="rewind"?0:1+(e.postCompactAttachments?.length??0);case"archive_marker":return 0;case"label":case"rewind_marker":case"client_notice":case"memory_outcome_digest":case"memory_review_receipt":case"goal":return;default:return e}}o(_j,"activeMessageContribution");function Aj(e,t,n,r){if(e===void 0)return;let i=new Map(n.map(l=>[l.id,l])),s=new Set,a=r,c=0;for(;a!==e;){if(a===null||s.has(a))return;s.add(a);let l=i.get(a);if(l===void 0)return;let u=_j(l);if(u===void 0)return;c+=u,a=l.parentId}if(!n.some(l=>l.type==="message"&&!s.has(l.id)))return t+c}o(Aj,"activeMessageCountAfterAppend");function FM(e,t){let n=new Set;for(let r of e){if(t.has(r.id)||n.has(r.id))return!0;n.add(r.id)}return!1}o(FM,"hasTailIdCollision");function DS(e){return[e.kind,e.sourceTool??"",e.action??"",e.target].join("::")}o(DS,"artifactLedgerDedupKey");function Lj(e,t){if(t.size+e.length>YM)return!0;let n=new Set;for(let r of e){let i=DS(r);if(t.has(i)||n.has(i))return!0;n.add(i)}return!1}o(Lj,"hasArtifactTailConflict");function Ih(e){return Ao("sha256").update("kodax-conversation-identity-filter-authority-v1\0").update(e,"utf8").digest("hex")}o(Ih,"conversationIdentityFilterHash");function Pj(e,t,n,r){if(e===void 0)return!1;let i=e,s=new Set;for(let a of t){if(a.type!=="message"||a.parentId!==i||a.logicalId!==void 0&&a.logicalId!==a.id||a.sourceEntryId!==void 0||XE(r,a.id)||s.has(a.id))return!1;s.add(a.id),i=a.id}return n===i}o(Pj,"isLinearPreparedMessageTail");function Oj(e){return tt(e)&&e._type==="extension_record"&&IM(e)}o(Oj,"isPersistedExtensionRecordLine");function $j(e){return tt(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"&&(e.logicalId===void 0||typeof e.logicalId=="string")&&(e.sourceEntryId===void 0||typeof e.sourceEntryId=="string")}o($j,"hasEntryBase");function r_(e){if(!$j(e))return!1;let t=e;switch(t.type){case"message":return kS(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||Bi(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";case"rewind_marker":return typeof t.targetId=="string"&&(t.fromId===void 0||typeof t.fromId=="string")&&typeof t.truncatedCount=="number"&&typeof t.summary=="string";case"client_notice":return typeof t.source=="string"&&typeof t.content=="string"&&(t.turnId===void 0||typeof t.turnId=="string")&&(t.payload===void 0||Bi(t.payload));case"goal":return typeof t.event=="string";case"memory_outcome_digest":return tt(t.digest)&&typeof t.digest.id=="string"&&typeof t.digest.reviewKey=="string"&&typeof t.digest.sessionId=="string"&&typeof t.digest.branchId=="string"&&Number.isSafeInteger(t.digest.sequence)&&(t.jobId===void 0||typeof t.jobId=="string");case"memory_review_receipt":return typeof t.reviewKey=="string"&&Array.isArray(t.proposalIds)&&t.proposalIds.every(n=>typeof n=="string")&&(t.status==="completed"||t.status==="no_action")&&typeof t.completedAt=="string"&&(t.jobId===void 0||typeof t.jobId=="string");default:return!1}}o(r_,"isKodaXSessionEntry");function Nj(e){return tt(e)&&e._type==="lineage_entry"&&r_(e.entry)}o(Nj,"isPersistedLineageEntryLine");function Dj(e){return tt(e)&&e._type==="archived_entry"&&typeof e.archiveBatchId=="string"&&r_(e.entry)}o(Dj,"isPersistedArchivedEntryLine");function HM(e){return typeof e=="string"||e===null?e:void 0}o(HM,"archivedEntryAnchor");function _o(e){return e.type!=="message"?!1:e.message.content==="[compacted]"?!0:Array.isArray(e.message.content)&&e.message.content.length===1&&e.message.content[0]?.type==="text"&&e.message.content[0].text==="[compacted]"}o(_o,"isCompactedPlaceholder");function Bj(e,t){let n=new Map;for(let r of e)n.set(r.id,r);for(let r of t){let i=n.get(r.id);(!i||_o(i))&&n.set(r.id,r)}return[...n.values()]}o(Bj,"mergeConcurrentLineageEntries");function hd(e,t,n,r){if(!n||!r||n===r||!t.has(n)||!t.has(r))return;let i=e.get(n)??new Set;i.add(r),e.set(n,i)}o(hd,"addOrderingEdge");function Fj(e,t,n){let r=new Set,i;for(let s of n)!t.has(s)||r.has(s)||(hd(e,t,i,s),i=s,r.add(s))}o(Fj,"addSequenceEdges");function WM(e,t){let n=e.length;for(e.push(t);n>0;){let r=Math.floor((n-1)/2);if(e[r]<=t)break;e[n]=e[r],n=r}e[n]=t}o(WM,"pushMin");function Hj(e){let t=e[0],n=e.pop();if(t===void 0||n===void 0||e.length===0)return t;let r=0;for(;;){let i=r*2+1;if(i>=e.length)break;let s=i+1,a=s<e.length&&e[s]<e[i]?s:i;if(e[a]>=n)break;e[r]=e[a],r=a}return e[r]=n,t}o(Hj,"popMin");function jM(e,t){let n=new Map(e.map(r=>[r,0]));for(let r of t.values())for(let i of r)n.set(i,(n.get(i)??0)+1);return n}o(jM,"orderingIndegrees");function UM(e,t,n,r){for(;e.length>0;){let i=Hj(e),s=t[i];if(!n.has(s)&&r(s))return i}}o(UM,"popEligibleIndex");function Wj(e,t,n){let r=e.find(a=>!t.has(a));if(!r)return;let i=new Set,s=r;for(;s&&!t.has(s);){if(i.has(s))return s;i.add(s),s=n.get(s)}}o(Wj,"findParentCycleNode");function GM(e,t,n,r,i){for(let s of t.get(e)??[]){if(r.has(s))continue;let a=n.get(s)??0;a<=0||(n.set(s,a-1),a===1&&i(s))}}o(GM,"releaseOrderingTargets");function jj(e,t,n,r){let i=new Map(e.map((h,m)=>[h,m])),s=jM(e,t),a=jM(e,n),c=[],l=[],u=new Set,f=[],p=o(h=>{s.get(h)===0&&WM(l,i.get(h)),s.get(h)===0&&a.get(h)===0&&WM(c,i.get(h))},"queueIfReady");for(let h of e)p(h);for(;f.length<e.length;){let h=UM(c,e,u,g=>s.get(g)===0&&a.get(g)===0);if(h??=UM(l,e,u,g=>s.get(g)===0),h===void 0){let g=Wj(e,u,r);if(!g)break;s.set(g,0),p(g);continue}let m=e[h];u.add(m),f.push(m),GM(m,t,s,u,p),GM(m,n,a,u,p)}return f}o(jj,"stablePriorityTopologicalOrder");function fd(e,t){let n=new Map,r=new Map,i=[];for(let p of e){let h=r.get(p.entry.id);h||i.push(p.entry.id),(!h||Uj(p,h))&&r.set(p.entry.id,p)}for(let[p,h]of r)n.set(p,h.entry);for(let p of t){let h=n.get(p.id);h||i.push(p.id),(!h||!_o(p))&&n.set(p.id,p)}let s=new Set(n.keys()),a=new Map;Fj(a,s,t.map(p=>p.id));let c=new Set(t.filter(p=>!_o(p)).map(p=>p.id)),l=new Map;for(let p of e){let h=`${p.streamId}:${p.archiveBatchId}`;if(!(r.get(p.entry.id)===p&&!c.has(p.entry.id))){l.delete(h);continue}hd(a,s,l.get(h),p.entry.id),l.set(h,p.entry.id),hd(a,s,p.previousEntryId,p.entry.id),hd(a,s,p.entry.id,p.nextEntryId)}let u=new Map,f=new Map;for(let p of n.values())hd(u,s,p.parentId,p.id),p.parentId&&s.has(p.parentId)&&p.parentId!==p.id&&f.set(p.id,p.parentId);return jj(i,u,a,f).map(p=>n.get(p))}o(fd,"mergeFullLineageEntries");function Uj(e,t){let n=!_o(e.entry),r=!_o(t.entry);return n!==r?n:e.streamId!==t.streamId?e.streamId<t.streamId:!0}o(Uj,"shouldPreferArchivedRecord");function Gj(e,t){let n=e.lineage,r=t.lineage,i=n&&r?{...n,entries:Bj(r.entries,n.entries)}:n??r,s=new Map;for(let c of t.artifactLedger??[])s.set(c.id,c);for(let c of e.artifactLedger??[])s.set(c.id,c);let a=new Map;for(let c of t.extensionRecords??[])a.set(c.id,c);for(let c of e.extensionRecords??[])a.set(c.id,c);return{...e,...i?{lineage:i}:{},...e.artifactLedger!==void 0||t.artifactLedger!==void 0?{artifactLedger:[...s.values()]}:{},...e.extensionRecords!==void 0||t.extensionRecords!==void 0?{extensionRecords:[...a.values()]}:{}}}o(Gj,"mergeConcurrentAppendData");function Vj(e,t,n){let r=n.map(f=>f.entry),i=Kj(e,t)?Xj(t,e):e,s=new Set(Ta(i).map(f=>f.id)),a=new Map(r.map(f=>[f.id,f])),c=new Map;for(let f of r)_o(f)||c.set(f.id,f);for(let f of t?.entries??[])_o(f)||c.set(f.id,f);let l=[],u=new Set;for(let f of i.entries){if(a.has(f.id)&&!s.has(f.id))continue;let p=_o(f)?c.get(f.id):void 0,h=p?.type==="message"&&f.type==="message"?{...f,message:p.message}:f;l.push(h),u.add(f.id)}for(let f of t?.entries??[])(f.type==="archive_marker"||f.type==="memory_outcome_digest"||f.type==="memory_review_receipt"||f.type==="client_notice")&&!u.has(f.id)&&(l.push(f),u.add(f.id));return{...i,entries:l}}o(Vj,"reconcileCompactionLineage");function Kj(e,t){if(t===void 0)return!1;let n=new Set(e.entries.map(r=>r.id));return t.entries.some(r=>zj(r)&&!n.has(r.id))}o(Kj,"persistedTopologySupersedesIncoming");function zj(e){return e.type==="compaction"||e.type==="rewind_marker"}o(zj,"isTopologyEntry");function Xj(e,t){let n=[...e.entries],r=new Set(n.map(i=>i.id));for(let i of t.entries)!r.has(i.id)&&Yj(i)&&(n.push(i),r.add(i.id));return{...e,entries:n}}o(Xj,"mergeContextSilentLineageEntries");function Yj(e){return e.type==="archive_marker"||e.type==="label"||e.type==="goal"||e.type==="client_notice"||e.type==="memory_outcome_digest"||e.type==="memory_review_receipt"}o(Yj,"isContextSilentLineageEntry");function qj(e){return tt(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||Bi(e.metadata))}o(qj,"isKodaXSessionArtifactLedgerEntry");function Jj(e){return tt(e)&&e._type==="artifact_ledger_entry"&&qj(e.entry)}o(Jj,"isPersistedArtifactLedgerLine");function Eh(e){return tt(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")&&(e.sandboxWorktreeRoots===void 0||Array.isArray(e.sandboxWorktreeRoots)&&e.sandboxWorktreeRoots.every(t=>typeof t=="string"))}o(Eh,"isKodaXSessionRuntimeInfo");function Qj(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(n&&n.type!=="label"&&n.type!=="goal"&&n.type!=="client_notice"&&n.type!=="rewind_marker")return n.id}return null}o(Qj,"getLastNavigableEntryId");var Zj="1970-01-01T00:00:00.000Z";function e2(e){let t=e.meta?.id??Ao("sha256").update(e.rawContent).digest("hex"),n=e.meta?.createdAt??Zj,r=null,i=e.legacyMessages.map((s,a)=>{let l=`entry_${Ao("sha256").update("kodax-legacy-lineage-v1\0").update(`${t}\0${a}:`).update(JSON.stringify(s)).digest("hex").slice(0,12)}`,u={type:"message",id:l,parentId:r,logicalId:l,timestamp:s.timestamp??n,message:structuredClone(s)};return r=l,u});return{version:2,activeEntryId:r,entries:i}}o(e2,"buildDeterministicLegacyLineage");function t2(e){return e.lineageEntries.length>0?{version:2,activeEntryId:e.meta?.activeEntryId??Qj(e.lineageEntries),entries:e.lineageEntries}:e.legacyMessages.length===0?e.meta?.lineageVersion===2?{version:2,activeEntryId:e.meta.activeEntryId??null,entries:[]}:void 0:e2(e)}o(t2,"buildLineage");function VM(e){return typeof e=="string"?`t:${e}`:`j:${JSON.stringify(e)}`}o(VM,"serializeMessageContentForCompare");function n2(e,t){return e===t?!0:e.role===t.role&&e._synthetic===!0==(t._synthetic===!0)&&VM(e.content)===VM(t.content)}o(n2,"sameMessageByContent");function r2(e,t){if(e.lineage)return e.lineage;if(t){let n=_t(t),r=e.messages;if(r.length<=n.length&&r.every((s,a)=>n2(s,n[a])))return t}return Qe(e.messages,t)}o(r2,"resolveSnapshotLineage");function KM(e,t){let n=t2(e),r=n?_t(n):[...e.legacyMessages];return{createdAt:e.meta?.createdAt,filePath:t,...e.mainIdentity!==void 0?{mainIdentity:e.mainIdentity}:{},activeMessageCount:r.length,...e.meta?.lineageIdentityFilterHash!==void 0?{lineageIdentityFilterHash:e.meta.lineageIdentityFilterHash}:{},data:{messages:r,title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",tag:typeof e.meta?.tag=="string"?e.meta.tag:void 0,runtimeInfo:Eh(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:JM(e.meta?.uiHistory),...bM(e.meta?.errorMetadata)?{errorMetadata:{...e.meta.errorMetadata}}:{},extensionState:vM(e.meta?.extensionState)?e.meta?.extensionState:void 0,extensionRecords:e.extensionRecords.map(i=>({...i})),lineage:n,artifactLedger:e.artifactLedger.map(i=>({...i,metadata:i.metadata?structuredClone(i.metadata):void 0})),actorSnapshot:e.meta?.actorSnapshot?structuredClone(e.meta.actorSnapshot):void 0}}}o(KM,"buildSessionData");function i2(e,t,n,r,i){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,actorSnapshot:t.actorSnapshot?structuredClone(t.actorSnapshot):void 0,lineageVersion:n?.version,activeEntryId:n?.activeEntryId,lineageEntryCount:n?.entries.length??0,activeMessageCount:n?ro(n):t.messages.length,lineageIdentityFilterHash:i}}o(i2,"createSessionMeta");function vh(e,t,n,r,i){return{id:e,title:t,msgCount:n,...r!==void 0?{createdAt:r}:{},...i!==void 0?{surface:i}:{}}}o(vh,"createResumeIndexEntry");async function AS(e,t=!1,n){let r=n,i;if(r===void 0)try{let l=await tr(e);r=await _e.readFile(e,"utf-8");let u=await tr(e);if(i=l!==null&&u!==null&&Nr(l,u)?u:void 0,t&&i===void 0)throw new Te("data_changed",`Session data changed while reading ${U.basename(e)}; re-read the Session.`)}catch(l){if(l?.code==="ENOENT")return null;throw l}let s=r.trim();if(!s)return null;let a={legacyMessages:[],lineageEntries:[],artifactLedger:[],extensionRecords:[],malformedCount:0,rawContent:r,...i!==void 0?{mainIdentity:i}:{}},c=s.split(`
|
|
93
|
+
`);for(let l=0;l<c.length;l+=1)if(c[l].trim().length!==0)try{let u=JSON.parse(c[l]);if(l===0&&tt(u)&&u._type==="meta"){if(t&&u.lineageVersion!==void 0&&u.lineageVersion!==2)throw new Te("version_incompatible",`Unsupported Session lineage version in ${U.basename(e)}: ${String(u.lineageVersion)}`);a.meta=u;continue}if(Cj(u)){a.meta&&(u.title!==void 0&&(a.meta.title=u.title),u.tag!==void 0&&(a.meta.tag=u.tag),u.activeEntryId!==void 0&&(a.meta.activeEntryId=u.activeEntryId),u.activeMessageCount!==void 0&&(a.meta.activeMessageCount=u.activeMessageCount),u.uiHistory!==void 0&&(a.meta.uiHistory=JM(u.uiHistory)),u.scope!==void 0&&(a.meta.scope=u.scope),u.lineageIdentityFilterHash!==void 0&&(a.meta.lineageIdentityFilterHash=u.lineageIdentityFilterHash));continue}if(Nj(u)){a.lineageEntries.push(u.entry);continue}if(Jj(u)){a.artifactLedger.push(u.entry);continue}if(Oj(u)){a.extensionRecords.push({id:u.id,extensionId:u.extensionId,type:u.type,ts:u.ts,data:u.data,dedupeKey:u.dedupeKey});continue}if(kS(u)){a.legacyMessages.push(u);continue}if(t)throw new Te("version_incompatible",`Unsupported Session record at ${U.basename(e)}:${l+1}`);a.malformedCount+=1}catch(u){if(u instanceof Te)throw u;if(t)throw new Te("data_corrupt",`Malformed Session record at ${U.basename(e)}:${l+1}`);a.malformedCount+=1}return a}o(AS,"readPersistedSessionFile");var BS=65536;async function o2(e){let t=await _e.open(e,"r");try{let n=Buffer.allocUnsafe(BS),{bytesRead:r}=await t.read(n,0,n.length,0);if(r===0)throw new Te("data_corrupt","Session metadata is empty");let i=n.toString("utf8",0,r),s=i.indexOf(`
|
|
94
|
+
`);if(s<0&&r===n.length)throw new Te("data_corrupt","Session metadata exceeds the bounded page-admission record");let a;try{a=JSON.parse((s<0?i:i.slice(0,s)).trim())}catch(l){throw new Te("data_corrupt",`Session metadata is invalid: ${l instanceof Error?l.message:String(l)}`)}if(!tt(a)||a._type!=="meta")return{};let c=Eh(a.runtimeInfo)?a.runtimeInfo:void 0;return{...c?.surface!==void 0?{surface:c.surface}:{},...c?.profileId!==void 0?{profileId:c.profileId}:{}}}finally{await t.close()}}o(o2,"readConversationPageAdmission");async function Mh(e){let t;try{t=await _e.open(e,"r");let n=Buffer.allocUnsafe(BS),{bytesRead:r}=await t.read(n,0,BS,0);if(r===0)return null;let i=n.toString("utf8",0,r),s=i.indexOf(`
|
|
95
|
+
`);if(s>=0)return i.slice(0,s).trim();let a=await _e.readFile(e,"utf-8"),c=a.indexOf(`
|
|
96
|
+
`);return(c>=0?a.slice(0,c):a).trim()}catch{return null}finally{await t?.close()}}o(Mh,"readSessionFirstLine");async function zM(e){try{let t=(await _e.readFile(e,"utf-8")).trim();return t?t.split(`
|
|
97
|
+
`).length:0}catch{return 0}}o(zM,"countSessionLines");var XM=new Map;function s2(e){let t=XM.get(e);return t===void 0&&(t=new Map,XM.set(e,t)),t}o(s2,"processSessionLocationIndex");var wr=class{static{o(this,"FileSessionStorage")}actorSnapshotEligibilityTimeoutMs=hj;sessionsDir;configHome;sessionLocations;verifiedLocationMisses=new Map;hostCwd;emitMismatchWarnings;constructor(t){this.sessionsDir=U.resolve(t?.sessionsDir??Kr),this.configHome=U.resolve(t?.configHome??np),this.sessionLocations=s2(this.sessionsDir),this.hostCwd=t?.cwd,this.emitMismatchWarnings=t?.emitMismatchWarnings??!1}getSessionsDir(){return this.sessionsDir}currentPreparedSessionAppend(t){let n=this.appendState.get(t);return n===void 0||n.filePath===void 0||n.mainIdentity===void 0||n.lineageIdentityFilter===void 0||n.lineageIdentityFilterHash===void 0||n.bundleBoundaryRevision===void 0||n.artifactCount>YM||n.artifactEntryIds.size!==n.artifactCount||n.artifactDedupKeys.size!==n.artifactCount||n.extensionRecordIds.size!==n.extensionCount?null:{sessionId:t,revision:n.appendRevision,lineageCount:n.lineageCount,artifactCount:n.artifactCount,extensionCount:n.extensionCount,activeEntryId:n.activeEntryId??null,...n.tag!==void 0?{tag:n.tag}:{}}}async prepareSessionAppend(t){let n=this.currentPreparedSessionAppend(t);if(n!==null)return n;let r=this.appendState.get(t);if(r?.filePath===void 0||r.mainIdentity===void 0)return null;let i=r.appendRevision;try{let s=await $c(r.filePath);if(s===void 0)return null;let a=await md(this.sessionsDir,t,r.filePath),c=this.appendState.get(t),l=a.identities[0];return c===void 0||c.appendRevision!==i||c.mainIdentity===void 0||l===null||l===void 0||!Nr(c.mainIdentity,l)||s.boundaryRevision!==a.revision||Ih(s.identityFilter)!==c.lineageIdentityFilterHash?null:(c.lineageIdentityFilter=s.identityFilter,c.bundleBoundaryRevision=a.revision,this.currentPreparedSessionAppend(t))}catch(s){if(s instanceof Te&&s.code==="data_changed")return null;throw s}}indexSessionLocations(t,n,r){let i=n&&r!==void 0,s=new Map;for(let a of t){let c=U.basename(a,".jsonl"),l=s.get(c)??[];l.push(a),s.set(c,l)}for(let[a,c]of s){let l=[...new Set(c)].sort();if(i){this.sessionLocations.set(a,l.length===1?{kind:"located",filePath:l[0],globallyVerified:!0,topologyIdentity:r}:{kind:"ambiguous",filePaths:l});continue}let u=this.sessionLocations.get(a),f=[...new Set([...l,...u?.kind==="located"?[u.filePath]:u?.filePaths??[]])].filter(h=>at.existsSync(h)).sort();if(f.length===0){this.sessionLocations.delete(a);continue}let p=u?.kind==="located"&&u.filePath===f[0]&&this.isLocationGloballyVerified(a);this.sessionLocations.set(a,f.length===1?{kind:"located",filePath:f[0],globallyVerified:p,...p&&u?.kind==="located"?{topologyIdentity:u.topologyIdentity}:{}}:{kind:"ambiguous",filePaths:f})}}beginSessionLocationTraversal(){let t=!0;try{at.mkdirSync(U.join(this.sessionsDir,Rh),{recursive:!0})}catch(n){t=!1,At("warn","Unable to prepare the durable Session location index.",n)}return{topologyBefore:t?this.readSessionTopologyIdentitySync("","global"):void 0,writerTopologyDigestBefore:t?_M(this.sessionsDir):void 0,topologyMutationBefore:!t||at.existsSync(Os(this.sessionsDir))}}completeSessionLocationTraversal(t,n,r){let i=this.readSessionTopologyIdentitySync("","global"),s=_M(this.sessionsDir);if(!(r&&!t.topologyMutationBefore&&!at.existsSync(Os(this.sessionsDir))&&t.topologyBefore!==void 0&&t.writerTopologyDigestBefore!==void 0&&i!==void 0&&s!==void 0&&Mo(t.topologyBefore,i)&&t.writerTopologyDigestBefore===s)){this.indexSessionLocations(n,!1);return}let c=new Map;for(let p of n){let h=U.basename(p,".jsonl"),m=c.get(h)??[];m.push(p),c.set(h,m)}let l=new Map;for(let p of c.keys()){let h=this.readSessionTopologyIdentitySync(p);if(h===void 0){this.indexSessionLocations(n,!1);return}l.set(p,h)}let u=this.readSessionTopologyIdentitySync("","global");if(!(u!==void 0&&i!==void 0&&!at.existsSync(Os(this.sessionsDir))&&Mo(i,u))){this.indexSessionLocations(n,!1);return}for(let[p,h]of c)this.indexSessionLocations(h,!0,l.get(p))}writeQueues=new Map;serializedWrite(t,n,r){let i=this.writeQueues.get(t)??Promise.resolve(),s=o(async()=>{r?.onDequeued(),r?.beforeFileLock();try{await Df(this.sessionWriteLockPath(t),async()=>{r?.onFileLockAcquired(),Ij(this.sessionsDir),await n()},bh)}finally{r?.onFileLockSettled()}this.refreshSelfVerifiedLocationTopology(t),await this.persistSessionLocationHint(t)},"locked"),a=i.then(s,s);return this.writeQueues.set(t,a),a}refreshSelfVerifiedLocationTopology(t){let n=this.sessionLocations.get(t);if(n?.kind!=="located"||!n.globallyVerified||n.topologyIdentity?.writerScope!=="session"||n.topologyIdentity.activeWriterIdentity===null)return;let r=n.topologyIdentity,i=this.readSessionTopologyIdentitySync(t);i===void 0||i.activeWriterIdentity!==null||!bj(r,i)||this.sessionLocations.set(t,{kind:"located",filePath:n.filePath,globallyVerified:!0,topologyIdentity:i})}sessionWriteLockPath(t){return jc(this.sessionsDir,t)}async persistSessionLocationHint(t){let n=QM(this.sessionsDir,t);try{let r=this.sessionLocations.get(t);if(r===void 0){await _e.rm(n,{force:!0});return}if(r.kind!=="located"||!r.globallyVerified){await _e.rm(n,{force:!0});return}let i=[r.filePath];if((await Promise.all(i.map(_S))).some(p=>p!=="present"))return;await _e.mkdir(U.dirname(n),{recursive:!0});let a=await Ch(this.sessionsDir,t);if(a===null||a.activeWriterIdentity!==null||at.existsSync(Os(this.sessionsDir))||r.topologyIdentity===void 0||!Mo(r.topologyIdentity,a))return;let c=i.map(p=>U.relative(this.sessionsDir,p).replace(/\\/g,"/")),l={version:1,id:t,filePaths:c,topology:{root:PM(a.root),epoch:a.epoch,writerIdentity:a.writerIdentity===null?null:PM(a.writerIdentity)}},u=`${n}.${process.pid}.${pd()}.tmp`,f;try{f=await _e.open(u,"wx"),await f.writeFile(JSON.stringify(l),"utf8"),await f.sync(),await f.close(),f=void 0,await MS(u,n)}finally{await f?.close().catch(()=>{}),await _e.rm(u,{force:!0})}this.sessionLocations.set(t,{kind:"located",filePath:i[0],globallyVerified:!0,topologyIdentity:a})}catch(r){At("warn",`Unable to update the Session location hint for ${t}.`,r)}}async resolveSessionLocationHint(t,n){let r;try{r=await Ej(this.sessionsDir,t)}catch(l){At("warn",`Unable to read the Session location hint for ${t}.`,l);return}if(r===void 0||at.existsSync(Os(this.sessionsDir)))return;let i=await Ch(this.sessionsDir,t);if(i===null||i.activeWriterIdentity!==null||!Mo(r.topology,i))return;let s=await Promise.all(r.filePaths.map(_S)),a=s.findIndex(l=>l==="unverifiable");if(a>=0&&n)throw kh(t,r.filePaths[a]);if(s.some(l=>l!=="present"))return;if(r.filePaths.length===1)return this.sessionLocations.set(t,{kind:"located",filePath:r.filePaths[0],globallyVerified:!0,topologyIdentity:i}),r.filePaths[0];let c=[...r.filePaths].sort();if(this.sessionLocations.set(t,{kind:"ambiguous",filePaths:c}),n)throw new Te("data_changed",`Ambiguous Session id ${t} has multiple persisted main files`);return this.resolveAmbiguousSessionLocation(t,c)}appendState=new Map;lineageIdentityFilterHashes=new Map;projectJsonWritten=new Map;migrationPromise;ensureMigrated(){if(!this.migrationPromise){let t;t=Ls(this.sessionsDir).catch(n=>{throw this.migrationPromise===t&&(this.migrationPromise=void 0),n}),this.migrationPromise=t}return this.migrationPromise}syncAppendState(t,n,r,i){let s=this.appendState.get(t);this.appendState.set(t,{appendRevision:pd(),lineageCount:n.lineage?.entries.length??s?.lineageCount??0,artifactCount:n.artifactLedger?.length??s?.artifactCount??0,extensionCount:n.extensionRecords?.length??s?.extensionCount??0,activeEntryId:n.lineage===void 0?s?.activeEntryId:n.lineage.activeEntryId,activeMessageCount:i??(n.lineage?ro(n.lineage):n.messages.length),lineageIdentityFilter:void 0,lineageIdentityFilterHash:this.lineageIdentityFilterHashes.get(t),bundleBoundaryRevision:void 0,artifactEntryIds:n.artifactLedger?new Set(n.artifactLedger.map(a=>a.id)):s?.artifactEntryIds??new Set,artifactDedupKeys:n.artifactLedger?new Set(n.artifactLedger.map(DS)):s?.artifactDedupKeys??new Set,extensionRecordIds:n.extensionRecords?new Set(n.extensionRecords.map(a=>a.id)):s?.extensionRecordIds??new Set,tag:n.tag!==void 0?n.tag:s?.tag,scope:n.scope??s?.scope,surface:n.runtimeInfo?.surface??s?.surface,projectCanonicalRoot:fr(n).canonicalRoot??s?.projectCanonicalRoot,filePath:r?.filePath??s?.filePath,mainIdentity:r?.mainIdentity})}async syncAppendStateFromFile(t,n,r,i){this.syncAppendState(t,n,{filePath:r,mainIdentity:await tr(r)??void 0},i)}legacyFlatPath(t){return U.join(this.sessionsDir,`${t}.jsonl`)}legacyFlatArchivePath(t){return U.join(this.sessionsDir,`${t}.archive.jsonl`)}projectDir(t){return U.join(this.sessionsDir,t)}resolveWriteDir(t,n){let r=this.sessionLocations.get(t);if(r?.kind==="located"){let s=U.dirname(r.filePath);if(s!==this.sessionsDir)return U.basename(s)==="archived"?U.dirname(s):s}let i=fr(n);return this.projectDir(i.key)}isLocationGloballyVerified(t){return this.verifiedLocationTopology(t)!==void 0}verifiedLocationTopology(t){let n=this.sessionLocations.get(t);if(n?.kind!=="located"||!n.globallyVerified||n.topologyIdentity===void 0)return;let r=this.readSessionTopologyIdentitySync(t,n.topologyIdentity.writerScope);return r!==void 0&&Mo(n.topologyIdentity,r)?n.topologyIdentity:void 0}verifiedMissingLocationTopology(t){let n=this.verifiedLocationMisses.get(t);if(n===void 0)return;let r=this.readSessionTopologyIdentitySync(t,n.writerScope);if(r!==void 0&&Mo(n,r))return n;this.verifiedLocationMisses.delete(t)}assertLocationTopologyUnchanged(t,n){Hi(this.sessionsDir,t);let r=n===void 0?void 0:this.readSessionTopologyIdentitySync(t,n.writerScope);if(n===void 0||r===void 0||!Mo(n,r))throw new Te("data_changed",`Session location topology changed during the read boundary for ${t}`)}readSessionTopologyIdentitySync(t,n="session"){try{let r=$s(at.statSync(this.sessionsDir,{bigint:!0})),i;try{i=$s(at.statSync(n==="session"?ZM(this.sessionsDir,t):FS(this.sessionsDir),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return;i=null}let s=null;if(n==="session")try{s=$s(at.statSync(jc(this.sessionsDir,t),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return}try{return{root:r,epoch:at.readFileSync(U.join(this.sessionsDir,LS),"utf8").trim(),writerScope:n,writerIdentity:i,activeWriterIdentity:s}}catch(a){return a.code==="ENOENT"?{root:r,epoch:null,writerScope:n,writerIdentity:i,activeWriterIdentity:s}:void 0}}catch{return}}async advanceSessionLocationTopology(){let t=U.join(this.sessionsDir,LS),n=`${t}.${process.pid}.${Date.now()}.${ES++}.tmp`,r;try{r=await _e.open(n,"wx"),await r.writeFile(`${pd()}
|
|
98
|
+
`,"utf8"),await r.sync(),await r.close(),r=void 0,await MS(n,t)}finally{await r?.close().catch(()=>{}),await _e.unlink(n).catch(i=>{if(i.code!=="ENOENT")throw i})}}withSessionLocationTopologyChange(t,n){return Df(Os(this.sessionsDir),async()=>(await this.advanceSessionLocationTopology(),n?.(),t()),bh)}writeFilePath(t,n){return U.join(this.resolveWriteDir(t,n),`${t}.jsonl`)}async resolveSessionLocation(t,n=!1){n&&await e_(this.sessionsDir,t);let r=this.sessionLocations.get(t);if(r?.kind==="located"&&at.existsSync(r.filePath)&&(!n||this.isLocationGloballyVerified(t)))return r.filePath;if(r?.kind==="ambiguous"){let m=r.filePaths.filter(g=>at.existsSync(g));if(m.length===r.filePaths.length){if(n)throw new Te("data_changed",`Ambiguous Session id ${t} has multiple persisted main files`);return this.resolveAmbiguousSessionLocation(t,m)}}let i=await this.resolveSessionLocationHint(t,n);if(i!==void 0)return i;let s=!0;try{await _e.mkdir(U.join(this.sessionsDir,Rh),{recursive:!0})}catch(m){s=!1,At("warn",`Unable to prepare the durable Session location index for ${t}.`,m)}let a=this.legacyFlatPath(t),c;try{c=await Ch(this.sessionsDir,t)}catch{s=!1}let l=[];try{l=await _e.readdir(this.sessionsDir,{withFileTypes:!0})}catch(m){m.code!=="ENOENT"&&(s=!1),l=[]}let u=[a];for(let m of l)!m.isDirectory()||m.name.startsWith(".")||u.push(U.join(this.sessionsDir,m.name,`${t}.jsonl`),U.join(this.sessionsDir,m.name,"archived",`${t}.jsonl`));let f=[],p=48;for(let m=0;m<u.length;m+=p){let g=u.slice(m,m+p),T=await Promise.all(g.map(_S));for(let[x,C]of T.entries()){let b=g[x];C==="present"&&f.push(b),C==="unverifiable"&&(s=!1)}}f.sort();let h;try{h=await Ch(this.sessionsDir,t)}catch{s=!1}if(s=s&&c!==void 0&&h!==void 0&&Rj(c,h),n&&!s)throw new Te("data_changed",`Session location topology could not be verified for ${t}`);if(n&&Hi(this.sessionsDir,t),f.length===0)return this.sessionLocations.delete(t),s&&h!==null&&h!==void 0?this.verifiedLocationMisses.set(t,h):this.verifiedLocationMisses.delete(t),await this.persistSessionLocationHint(t),null;if(this.verifiedLocationMisses.delete(t),f.length===1)return this.sessionLocations.set(t,{kind:"located",filePath:f[0],globallyVerified:s,...s&&h!==null&&h!==void 0?{topologyIdentity:h}:{}}),await this.persistSessionLocationHint(t),f[0];if(this.sessionLocations.set(t,{kind:"ambiguous",filePaths:f}),await this.persistSessionLocationHint(t),n)throw new Te("data_changed",`Ambiguous Session id ${t} has multiple persisted main files`);return this.resolveAmbiguousSessionLocation(t,f)}async resolveAmbiguousSessionLocation(t,n){if(this.hostCwd){let r=await Xr({cwd:this.hostCwd}),i=await bi(this.hostCwd),s=this.projectDir(fr({gitRoot:i??void 0,runtimeInfo:r}).key),a=n.find(c=>{let l=U.dirname(c);return l===s||U.basename(l)==="archived"&&U.dirname(l)===s});if(a)return a}return Fi(`[KodaX] Ambiguous session id ${t} found in ${n.length} projects; ${this.hostCwd?"no current-project match \u2014 ":""}returning the first match. Specify projectKey to disambiguate.`),n[0]}async readSession(t,n={}){n.migrate!==!1&&await this.ensureMigrated();let r=await this.resolveSessionLocation(t,n.strict===!0);if(!r)return null;let i=n.strict===!0?this.verifiedLocationTopology(t):void 0,s=await AS(r,n.strict===!0);if(!s)return null;n.strict===!0&&this.assertLocationTopologyUnchanged(t,i),$M(r,s.malformedCount);let a=KM(s,r);return a.lineageIdentityFilterHash===void 0?this.lineageIdentityFilterHashes.delete(t):this.lineageIdentityFilterHashes.set(t,a.lineageIdentityFilterHash),a}async readArchivedEntries(t,n,r=!1,i){let s=n??await this.resolveSessionLocation(t);if(!s)return[];let a=U.dirname(s),c=[U.join(a,`${t}.islands.jsonl`),U.join(a,`${t}.archive.jsonl`)],l=[];for(let u=0;u<c.length;u+=1){let f=c[u],p;if(i?.has(f)){let g=i.get(f);if(g==null)continue;p=g}else try{p=await _e.readFile(f,"utf-8")}catch(g){if(g.code==="ENOENT")continue;throw g}let h=p.split(/\r?\n/),m=-1;for(let g=h.length-1;g>=0;g-=1)if((h[g]??"").trim().length>0){m=g;break}for(let g=0;g<h.length;g+=1){let T=h[g]??"";if(T.trim())try{let x=JSON.parse(T);if(Dj(x)){let C=x;l.push({...x,previousEntryId:HM(C.previousEntryId),nextEntryId:HM(C.nextEntryId),streamId:u})}else{if(tt(x)&&x._type==="archive_batch")continue;if(r)throw new Te("version_incompatible",`Unsupported island sidecar record at ${U.basename(f)}:${g+1}`)}}catch(x){if(x instanceof Te)throw x;if(r)throw new Te("data_corrupt",`Malformed island sidecar record at ${U.basename(f)}:${g+1}`);At("warn",g===m?`Ignored incomplete island sidecar tail ${U.basename(f)}:${g+1}.`:`Skipped malformed island sidecar record ${U.basename(f)}:${g+1}.`,x)}}}return l}async completeConversationLineage(t,n,r){let i=await this.readArchivedEntries(t,n);return i.length===0?r:{...r,entries:fd(i,r.entries)}}async appendIslandArchive(t,n,r,i,s,a){if(r.length===0)return;let c=a?U.dirname(a):this.resolveWriteDir(t,n);await _e.mkdir(c,{recursive:!0});let l=U.join(c,`${t}.islands.jsonl`),u=new Map(s.map((p,h)=>[p.id,h])),f=await _e.open(l,"a");try{await f.write(JSON.stringify({_type:"archive_batch",archiveBatchId:i,sessionId:t,archivedAt:new Date().toISOString(),entryCount:r.length})+`
|
|
99
|
+
`);for(let p of r){let h=u.get(p.id);await f.write(JSON.stringify({_type:"archived_entry",archiveBatchId:i,...h===void 0?{}:{previousEntryId:s[h-1]?.id??null,nextEntryId:s[h+1]?.id??null},entry:p})+`
|
|
100
|
+
`)}await f.sync()}finally{await f.close()}}async ensureProjectJson(t,n,r){if(n.canonicalRoot===null)return;let i=this.projectJsonWritten.get(t);if(i===n.canonicalRoot)return;if(i!==void 0)throw new Te("data_changed",`Refusing to change the cached project identity for ${t}`);let s=U.join(t,"project.json"),a;try{a=await lM(t)}catch(c){let l=c instanceof Error?c.message:String(c);throw new Te("data_changed",`Unable to validate ${s}: ${l}`)}if(!a){let c=o(p=>p.endsWith(".jsonl")&&!p.endsWith(".archive.jsonl")&&!p.endsWith(".islands.jsonl")&&!p.startsWith("."),"isMainSessionFile"),u=(await _e.readdir(t,{withFileTypes:!0})).some(p=>p.isFile()&&c(p.name)),f=!1;try{f=(await _e.readdir(U.join(t,"archived"),{withFileTypes:!0})).some(p=>p.isFile()&&c(p.name))}catch(p){if(p.code!=="ENOENT"){let h=p instanceof Error?p.message:String(p);throw new Te("data_changed",`Unable to inspect ${t}: ${h}`)}}if(u||f){let p=[t,U.join(t,"archived")],h=[];for(let m of p)try{for(let g of await _e.readdir(m,{withFileTypes:!0}))g.isFile()&&c(g.name)&&h.push(U.join(m,g.name))}catch(g){if(g.code!=="ENOENT")throw g}for(let m=0;m<h.length;m+=48)if((await Promise.all(h.slice(m,m+48).map(async T=>{let x=await Mh(T);if(!x)return r!==void 0&&U.basename(t)===n.key&&U.resolve(T)===U.resolve(r);try{let C=JSON.parse(x);if(!tt(C)||C._type!=="meta")return!1;let b=fr({gitRoot:typeof C.gitRoot=="string"?C.gitRoot:void 0,runtimeInfo:Eh(C.runtimeInfo)?C.runtimeInfo:void 0});return b.key===n.key&&b.canonicalRoot===n.canonicalRoot}catch{return!1}}))).some(T=>!T))throw new Te("data_changed",`Refusing to claim a mixed or unverifiable project bucket at ${s}`)}}try{await dh(t,n)}catch(c){let l=c instanceof Error?c.message:String(c);throw new Te("data_changed",`Unable to publish ${s}: ${l}`)}this.projectJsonWritten.set(t,n.canonicalRoot)}async rebuildConversationCache(t,n,r,i){try{let s=await this.readArchivedEntries(t,n,!0),a=s.length===0?r:{...r,entries:fd(s,r.entries)},c=await NS(this.sessionsDir,t,n,void 0,!0),l=ad(a,c.sourceRevision);if(await oM(n,c.boundaryRevision,c.sourceRevisionState,l,a,i))return;await gS(n,c.boundaryRevision,c.sourceRevisionState,l,a,i,EM)}catch(s){try{await Qn(n)}catch(a){At("warn",`Unable to invalidate Conversation page cache for ${t}.`,new AggregateError([s,a]));return}At("warn",`Unable to prepare Conversation pages for ${t}; reads will use the canonical fallback.`,s)}}async updateConversationCacheAfterAppend(t,n,r,i,s,a,c){try{let l=await $c(n),u=l?.boundaryRevision===r.revision?aM(l,i,s,a):void 0;if(l===void 0||u===void 0){l!==void 0&&await Qn(n);return}let f=$E(l.sourceRevisionState,U.relative(this.sessionsDir,n).replace(/\\/g,"/"),Buffer.from(c,"utf8"));if(f===void 0){await Qn(n);return}let p=await md(this.sessionsDir,t,n,!0);if(!Mj(r,p,Buffer.byteLength(c,"utf8"))){await Qn(n);return}await sM(n,l,p.revision,f,u,s,a)}catch(l){At("warn",`Unable to extend Conversation page cache for ${t}; invalidating it.`,l);try{await Qn(n)}catch(u){At("warn",`Unable to invalidate Conversation page cache for ${t}.`,new AggregateError([l,u]))}}}async writeSessionInternal(t,n,r,i,s=this.verifiedLocationTopology(t),a,c){let l=i?U.dirname(i):this.resolveWriteDir(t,n),u=i??U.join(l,`${t}.jsonl`),f=U.basename(l)==="archived"?U.dirname(l):l,p=fr(n),h=this.appendState.get(t)?.projectCanonicalRoot;if(i!==void 0&&h!==void 0&&p.canonicalRoot!==null&&h!==p.canonicalRoot)throw new Te("data_changed",`Refusing to move Session ${t} across cached project identities`);await _e.mkdir(l,{recursive:!0}),await this.ensureProjectJson(f,p,u);let m=`${u}.${process.pid}.${Date.now()}.${ES++}.tmp`,g=n.lineage??Qe(n.messages),T=a===void 0?void 0:ch(a),x=T===void 0?void 0:Ih(T),C=i2(t,n,g,r,x),b=Sh(u),N=U.basename(U.dirname(u))!=="archived"&&C.scope!=="managed-task-worker"&&(C.activeMessageCount??0)>0,R=vh(t,C.title,C.activeMessageCount??0,C.createdAt,C.runtimeInfo?.surface);if(N)try{await xh(b,R)}catch(z){At("warn",`Unable to prepare the resume index for ${t}.`,z)}let E=this.legacyFlatPath(t),P=!at.existsSync(u)||E!==u&&at.existsSync(E),B=o(async()=>{try{c?.beginTiming("tempWrite");let z=$r.now(),y=await _e.open(m,"w");try{try{await y.write(JSON.stringify(C)+`
|
|
101
|
+
`);for(let j of g.entries)await y.write(JSON.stringify(DM(j))+`
|
|
102
|
+
`);for(let j of n.artifactLedger??[])await y.write(JSON.stringify(BM(j))+`
|
|
103
|
+
`);for(let j of n.extensionRecords??[])await y.write(JSON.stringify(NM(j))+`
|
|
104
|
+
`)}finally{c?.recordTiming("tempWrite",$n(z))}c?.beginTiming("fsync");let ee=$r.now();try{await y.sync()}finally{c?.recordTiming("fsync",$n(ee))}}finally{await y.close()}c?.beginTiming("rename"),c?.beforeCommit();let _=$r.now();try{await MS(m,u)}finally{c?.recordTiming("rename",$n(_))}if(c?.afterCommit(),E!==u&&at.existsSync(E)){await _e.unlink(E).catch(()=>{});let ee=this.legacyFlatArchivePath(t);at.existsSync(ee)&&await _e.rename(ee,U.join(f,`${t}.islands.jsonl`)).catch(()=>{})}}finally{at.existsSync(m)&&await _e.unlink(m).catch(()=>{})}},"write");if(P){c?.beginTiming("topology");let z=$r.now(),y=!1;try{await this.withSessionLocationTopologyChange(B,()=>{y=!0,c?.recordTiming("topology",$n(z))})}finally{y||c?.recordTiming("topology",$n(z))}}else await B();try{await dd(b,R,N)}catch(z){At("warn",`Unable to refresh the resume index for ${t}.`,z)}a===void 0?await Qn(u):await this.rebuildConversationCache(t,u,a,n.runtimeInfo);let $=[u];E!==u&&at.existsSync(E)&&$.push(E);let V=this.readSessionTopologyIdentitySync(t),ne=s!==void 0&&V!==void 0;return this.verifiedLocationMisses.delete(t),this.sessionLocations.set(t,$.length===1?{kind:"located",filePath:u,globallyVerified:ne,...ne?{topologyIdentity:V}:{}}:{kind:"ambiguous",filePaths:$.sort()}),x===void 0?this.lineageIdentityFilterHashes.delete(t):this.lineageIdentityFilterHashes.set(t,x),u}async mergeAndWriteInternal(t,n,r=!1){let i=await this.readSession(t),s=i===null?this.verifiedMissingLocationTopology(t):this.verifiedLocationTopology(t),a={...n,scope:n.scope??i?.data.scope??"user",uiHistory:n.uiHistory??i?.data.uiHistory,extensionState:n.extensionState??i?.data.extensionState,artifactLedger:n.artifactLedger??i?.data.artifactLedger,actorSnapshot:i?.data.actorSnapshot??n.actorSnapshot,extensionRecords:n.extensionRecords??i?.data.extensionRecords,runtimeInfo:n.runtimeInfo===void 0?i?.data.runtimeInfo:{...n.runtimeInfo,...!r&&i?.data.runtimeInfo?.sandboxWorktreeRoots!==void 0?{sandboxWorktreeRoots:i.data.runtimeInfo.sandboxWorktreeRoots}:{}},errorMetadata:Object.prototype.hasOwnProperty.call(n,"errorMetadata")?n.errorMetadata:i?.data.errorMetadata,tag:n.tag??i?.data.tag,lineage:r2(n,i?.data.lineage)};if(i!==null){let h=fr(i.data),m=fr(a);if(h.canonicalRoot!==null&&m.canonicalRoot!==null&&h.canonicalRoot!==m.canonicalRoot)throw new Te("data_changed",`Refusing to move Session ${t} across project identities during an in-place save`)}let c=await this.readArchivedEntries(t),l=Vj(a.lineage,i?.data.lineage,c),u=yI(l);await this.appendIslandArchive(t,a,u.archivedEntries,u.archiveBatchId,l.entries,i?.filePath);let f={...a,lineage:u.slimmedLineage},p=await this.writeSessionInternal(t,f,i?.createdAt,i?.filePath,s,l);await this.syncAppendStateFromFile(t,{...a,lineage:l},p)}async appendSessionDelta(t,n){await this.ensureMigrated(),await this.serializedWrite(t,async()=>{let r=this.appendState.get(t),i=r?.filePath===void 0?null:await tr(r.filePath);if(!(r!==void 0&&(r.mainIdentity===void 0||i===null||!Nr(r.mainIdentity,i)))){await this.mergeAndWriteInternal(t,n);return}let a=await this.readSession(t);await this.mergeAndWriteInternal(t,a?Gj(n,a.data):n)})}async appendPreparedSessionTail(t,n){let r=structuredClone(n);await this.ensureMigrated();let i,s=!1;try{await this.serializedWrite(t,async()=>{let a=this.appendState.get(t),c=r.baseline;if(a===void 0||c.sessionId!==t||a.appendRevision!==c.revision||a.lineageCount!==c.lineageCount||a.artifactCount!==c.artifactCount||a.extensionCount!==c.extensionCount||(a.activeEntryId??null)!==c.activeEntryId||a.tag!==c.tag)throw new Te("data_changed",`Prepared Session append boundary changed for ${t}; reload before retrying`);let l=r.lineageEntries,u=r.artifactEntries??[],f=r.extensionRecords??[];if(a.lineageIdentityFilter===void 0||a.lineageIdentityFilterHash===void 0||Ih(a.lineageIdentityFilter)!==a.lineageIdentityFilterHash||a.bundleBoundaryRevision===void 0||!Pj(a.activeEntryId,l,r.activeEntryId,a.lineageIdentityFilter)||FM(u,a.artifactEntryIds)||Lj(u,a.artifactDedupKeys)||FM(f,a.extensionRecordIds))throw new Te("data_changed",`Prepared Session tail for ${t} is not a new linear append; use appendSessionDelta()`);let p=Aj(a.activeEntryId,a.activeMessageCount,l,r.activeEntryId);if(p===void 0)throw new Te("data_changed",`Prepared Session tail for ${t} is not a linear append; use appendSessionDelta()`);let h=a.filePath===void 0?null:await tr(a.filePath);if(a.filePath===void 0||a.mainIdentity===void 0||h===null||!Nr(a.mainIdentity,h))throw new Te("data_changed",`Persisted Session changed after the prepared append boundary for ${t}`);let m=await md(this.sessionsDir,t,a.filePath,!0);if(m.revision!==a.bundleBoundaryRevision)throw new Te("data_changed",`Persisted Session bundle changed after the prepared append boundary for ${t}`);let g=[];for(let $ of l)g.push(JSON.stringify(DM($)));for(let $ of u)g.push(JSON.stringify(BM($)));for(let $ of f)g.push(JSON.stringify(NM($)));let T=pS(a.lineageIdentityFilter,l),x=Ih(T),C={_type:"meta_update",title:r.title,activeEntryId:r.activeEntryId,activeMessageCount:p,...r.uiHistory!==void 0?{uiHistory:[...r.uiHistory]}:{},...r.scope!==void 0?{scope:r.scope}:{},lineageIdentityFilterHash:x};g.push(JSON.stringify(C));let b=`
|
|
105
|
+
${g.join(`
|
|
106
|
+
`)}`,A=r.scope??a.scope??"user",R=U.basename(U.dirname(a.filePath))!=="archived"&&A!=="managed-task-worker"&&p>0,E=Sh(a.filePath),P=vh(t,r.title,p,void 0,a.surface);if(R)try{await xh(E,P)}catch($){At("warn",`Unable to prepare the resume index for ${t}.`,$)}await _e.appendFile(a.filePath,b,"utf-8"),s=!0;try{await dd(E,P,R)}catch($){At("warn",`Unable to refresh the resume index for ${t}.`,$)}await this.updateConversationCacheAfterAppend(t,a.filePath,m,a.activeEntryId,l,r.activeEntryId,b);for(let $ of u)a.artifactEntryIds.add($.id);for(let $ of u)a.artifactDedupKeys.add(DS($));for(let $ of f)a.extensionRecordIds.add($.id);let B=await md(this.sessionsDir,t,a.filePath,!0);this.appendState.set(t,{...a,appendRevision:pd(),lineageCount:a.lineageCount+l.length,artifactCount:a.artifactCount+u.length,extensionCount:a.extensionCount+f.length,activeEntryId:r.activeEntryId,activeMessageCount:p,scope:A,lineageIdentityFilter:T,lineageIdentityFilterHash:x,bundleBoundaryRevision:B.revision,mainIdentity:await tr(a.filePath)??void 0}),this.lineageIdentityFilterHashes.set(t,x),i=this.currentPreparedSessionAppend(t)??void 0})}catch(a){if(!s)throw a;return this.appendState.delete(t),At("error",`Prepared Session tail for ${t} committed, but its successor boundary could not be prepared; reload before the next append.`,a),null}return i??null}async save(t,n){await this.serializedWrite(t,async()=>{await this.mergeAndWriteInternal(t,n)})}async createGenerated(t,n){await this.serializedWrite(t,async()=>{await _e.mkdir(U.join(this.sessionsDir,Rh),{recursive:!0});let r=this.writeFilePath(t,n);if(at.existsSync(r)||at.existsSync(this.legacyFlatPath(t)))throw Object.assign(new Error(`Session already exists: ${t}`),{code:"conflict"});await this.writeSessionInternal(t,n,void 0,r,void 0,n.lineage??Qe(n.messages));let i=this.readSessionTopologyIdentitySync(t);i!==void 0&&this.sessionLocations.set(t,{kind:"located",filePath:r,globallyVerified:!0,topologyIdentity:i}),await this.syncAppendStateFromFile(t,n,r)})}async mutateLineage(t,n){let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(i===null)return;r=!0;let s=i.data.lineage??Qe(i.data.messages),a=n(s);a!==s&&await this.mergeAndWriteInternal(t,{...i.data,lineage:a})}),r}async mutateRuntimeInfo(t,n){let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(i===null)return;r=!0;let s=i.data.runtimeInfo===void 0?void 0:structuredClone(i.data.runtimeInfo),a=n(s);await this.mergeAndWriteInternal(t,{...i.data,runtimeInfo:a},!0)}),r}beginActorSnapshotSave(t,n,r){let i=xj(t,n.revision),s=this.serializedWrite(t,async()=>{i.canonicalObserver.beginTiming("readCas");let a=$r.now(),c;try{let h=await this.readSession(t);if(!h)throw new Error(`Session not found: ${t}`);let m=h.data.actorSnapshot?.revision??0;if(m!==r)throw new SI(r,m,t);c=h}finally{i.canonicalObserver.recordTiming("readCas",$n(a))}let l={...c.data,actorSnapshot:structuredClone(n)};i.canonicalObserver.beginTiming("lineage");let u=$r.now(),f;try{f=l.lineage===void 0?void 0:await this.completeConversationLineage(t,c.filePath,l.lineage)}finally{i.canonicalObserver.recordTiming("lineage",$n(u))}let p;try{p=await this.writeSessionInternal(t,l,c.createdAt,c.filePath,void 0,f,i.canonicalObserver)}catch(h){let m=h;if(i.attempt.phase()==="commit_inflight")try{let g=await this.readSession(t),T=g?.data.actorSnapshot,x=g?.data.actorSnapshot?.revision??0;pj(T,Sj(n))?i.markCommitObservedByReadback():x===r?i.markCommitNotObserved(h):m=new AggregateError([h,new Error(`Actor snapshot readback observed revision ${x}; expected prior ${r} or exact target ${n.revision}.`)],"Actor snapshot replacement result is ambiguous.")}catch(g){m=new AggregateError([h,g],"Actor snapshot replacement failed and canonical readback was unavailable.")}throw m}await this.syncAppendStateFromFile(t,l,p)},i.queueObserver);return i.settleCompletion(s),i.attempt}async saveActorSnapshot(t,n,r){await this.beginActorSnapshotSave(t,n,r).completion}async peek(t){let n=await this.readSession(t,{migrate:!1});return n?structuredClone(n.data):null}async read(t,n={}){er(n.signal);let r=await Wc(this.readSession(t,{migrate:!1,strict:!0}),n);return r?structuredClone(r.data):null}async readConversationPageCache(t,n,r={}){er(r.signal);let i=(async()=>{let s=await this.resolveSessionLocation(t,!0);if(s===null)return null;let a=this.verifiedLocationTopology(t);try{let c=await Ps(this.sessionsDir,t,s),l=await nM(s,c,{...n,signal:r.signal}),u=await Ps(this.sessionsDir,t,s);if(this.assertLocationTopologyUnchanged(t,a),c!==u)throw new gt("Conversation history changed during paging");if(l===null&&n.expectedRevision!==void 0)throw new gt("Conversation history changed; request a fresh page");return l}catch(c){if(c instanceof gt){if(n.expectedRevision===void 0)return null;throw new Te("data_changed",c.message)}throw c}})();return Wc(i,r)}async readConversationPageBoundary(t,n={}){er(n.signal);let r=(async()=>{let i=await this.resolveSessionLocation(t,!0);if(i===null)return null;let s=this.verifiedLocationTopology(t),a=await Ps(this.sessionsDir,t,i),c=await o2(i),l=await Ps(this.sessionsDir,t,i);if(this.assertLocationTopologyUnchanged(t,s),a!==l)throw new Te("data_changed","Session changed while validating a Conversation page boundary");return{boundaryRevision:l,admission:c}})();return Wc(r,n)}async prepareConversationPageCache(t,n,r,i,s,a,c={}){er(c.signal);let l=await this.resolveSessionLocation(t,!0);if(l===null)throw new Te("data_changed","Session moved before page preparation");await Wc(this.serializedWrite(t,async()=>{if(er(c.signal),await Ps(this.sessionsDir,t,l,!0)!==s)throw new Te("data_changed","Session changed before page preparation");await gS(l,s,a,n,r,i,EM)}),c)}async readConversationPageCacheChunk(t,n,r={}){er(r.signal);let i=(async()=>{let s=await this.resolveSessionLocation(t,!0);if(s===null)return null;let a=this.verifiedLocationTopology(t);try{let c=await Ps(this.sessionsDir,t,s),l=await rM(s,c,{...n,signal:r.signal}),u=await Ps(this.sessionsDir,t,s);if(this.assertLocationTopologyUnchanged(t,a),c!==u||l===null)throw new gt("Conversation history changed; request a fresh page");return l}catch(c){throw c instanceof gt?new Te("data_changed",c.message):c}})();return Wc(i,r)}async readFullSnapshot(t,n={}){er(n.signal);let r=(async()=>{let i=await this.resolveSessionLocation(t,!0);return i===null?null:this.readFullSnapshotAtPath(t,i,n.signal,!1)})();return Wc(r,n)}async readFullSnapshotAtPath(t,n,r,i){let s=this.verifiedLocationTopology(t),a=await NS(this.sessionsDir,t,n,r,i),c=a.files.find(T=>T.kind==="main");if(c===void 0)throw new Te("data_changed","Session main file moved during the read boundary");let l=await AS(c.path,!0,c.bytes.toString("utf8"));if(l===null)return null;let u=KM(l,c.path),f=U.dirname(c.path),p=new Map([[U.join(f,`${t}.islands.jsonl`),null],[U.join(f,`${t}.archive.jsonl`),null]]);for(let T of a.files)T.kind!=="main"&&p.set(T.path,T.bytes.toString("utf8"));let h=await this.readArchivedEntries(t,c.path,!0,p),m=fd(h,u.data.lineage?.entries??[]),g=u.data.lineage===void 0?m.length===0?null:{version:2,activeEntryId:null,entries:m}:{...u.data.lineage,entries:m};return i||this.assertLocationTopologyUnchanged(t,s),{data:structuredClone(u.data),lineage:g,sourceRevision:a.sourceRevision,sourceRevisionState:a.sourceRevisionState,boundaryRevision:a.boundaryRevision}}async load(t){let n=await this.readSession(t);if(!n)return null;this.syncAppendState(t,n.data,{filePath:n.filePath,mainIdentity:n.mainIdentity},n.activeMessageCount);let{data:r}=n,i=this.legacyFlatPath(t);if(this.emitMismatchWarnings){let s=await bi(this.hostCwd),a=await Xr({cwd:this.hostCwd}),c=Mn(r);(a.canonicalRepoRoot&&c?.canonicalRepoRoot&&!gy(a,c)||s&&r.gitRoot&&s!==r.gitRoot&&!gy(a,{canonicalRepoRoot:r.gitRoot}))&&(Fi(kM.yellow(`
|
|
107
|
+
[Warning] Session project mismatch:`)),a.workspaceRoot&&Fi(` Current workspace: ${a.workspaceRoot}`),c?.workspaceRoot&&Fi(` Session workspace: ${c.workspaceRoot}`),a.canonicalRepoRoot&&Fi(` Current repo: ${a.canonicalRepoRoot}`),c?.canonicalRepoRoot?Fi(` Session repo: ${c.canonicalRepoRoot}`):r.gitRoot&&Fi(` Session repo: ${r.gitRoot}`),Fi(` Continuing anyway...
|
|
108
|
+
`))}if(r.errorMetadata?.consecutiveErrors&&r.errorMetadata.consecutiveErrors>0){let s=r,a=!1;return await this.serializedWrite(t,async()=>{let c=await this.readSession(t);if(!c){s=null;return}s=c.data;let l=c.data.actorSnapshot;if(l?.schemaVersion===2&&l.owner!==void 0||l?.turns.some(m=>m.state==="accepted"||m.state==="running")){this.syncAppendState(t,c.data,{filePath:c.filePath,mainIdentity:c.mainIdentity});return}if(!c.data.errorMetadata?.consecutiveErrors||c.data.errorMetadata.consecutiveErrors<=0){this.syncAppendState(t,c.data,{filePath:c.filePath,mainIdentity:c.mainIdentity});return}let u=uI(c.data.messages);if(u===c.data.messages){this.syncAppendState(t,c.data,{filePath:c.filePath,mainIdentity:c.mainIdentity});return}let f={...c.data,messages:u,errorMetadata:{...c.data.errorMetadata,consecutiveErrors:0},lineage:Qe(u,c.data.lineage)},p=await this.completeConversationLineage(t,c.filePath,f.lineage),h=await this.writeSessionInternal(t,f,c.createdAt,c.filePath,void 0,p);await this.syncAppendStateFromFile(t,f,h),s=f,a=!0}),a&&Fi(kM.cyan("[Session Recovery] Cleaned incomplete tool calls from previous session")),s}return $M(i,0),r}async has(t){try{return await this.ensureMigrated(),await this.resolveSessionLocation(t)!==null}catch(n){return At("warn",`Unable to locate Session ${t}.`,n),!1}}async isArchived(t){await this.ensureMigrated();let n=await this.resolveSessionLocation(t);return n!==null&&U.basename(U.dirname(n))==="archived"}async getLineage(t){return(await this.readSession(t))?.data.lineage??null}async loadFullLineage(t){return await this.ensureMigrated(),Df(this.sessionWriteLockPath(t),async()=>{let n=await this.readSession(t);if(!n?.data.lineage)return null;let r=await this.readArchivedEntries(t,n.filePath);return r.length===0?n.data.lineage:{...n.data.lineage,entries:fd(r,n.data.lineage.entries)}},bh)}async setActiveEntry(t,n,r){let i=null;return await ay({configHome:this.configHome,sessionId:t},async s=>this.serializedWrite(t,async()=>{let a=await this.readSession(t);if(!a?.data.lineage)return;let c=Ca(a.data.lineage,n,r);if(!c)return;await s(ly(c));let l={...a.data,messages:_t(c),lineage:c},u=await this.completeConversationLineage(t,a.filePath,c),f=await this.writeSessionInternal(t,l,a.createdAt,a.filePath,void 0,u);await this.syncAppendStateFromFile(t,l,f),i=l})),i}async rewind(t,n,r){let i=null;return await ay({configHome:this.configHome,sessionId:t},async s=>this.serializedWrite(t,async()=>{let a=await this.readSession(t);if(!a?.data.lineage)return;let c=r?.historyBoundary,l=c===void 0?void 0:await this.readFullSnapshotAtPath(t,a.filePath,void 0,!0);if(l!==void 0&&l?.sourceRevision!==c?.sourceRevision)throw new Te("data_changed",`Conversation history boundary is stale for ${t}`);let u=l?.lineage??a.data.lineage;if(u===null)return;let f=n??ba(u);if(!f)return;let p=l===void 0?void 0:MM(u,f);if(l!==void 0&&p===void 0)return;let m=Ra(p===void 0?u:{version:2,activeEntryId:f,entries:p},f);if(!m)return;let g=m.entries.at(-1);if(g?.type!=="rewind_marker")return;let T=u.entries.findIndex(ne=>ne.id===f);if(T<0)return;let{fromId:x,...C}=g,b={...C,...u.activeEntryId!==null?{fromId:u.activeEntryId}:{},truncatedCount:u.entries.length-T-1},A={...m,entries:[...m.entries.slice(0,-1),b]};await s(ly(A));let N=await this.readArchivedEntries(t,a.filePath),R=l?.lineage?.entries??(N.length===0?a.data.lineage.entries:fd(N,a.data.lineage.entries)),E=new Set(A.entries.map(ne=>ne.id)),P=a.data.lineage.entries.filter(ne=>!E.has(ne.id)),B={...a.data,messages:_t(A),lineage:A};await this.appendIslandArchive(t,B,P,b.id,[...R,b],a.filePath);let $=await this.completeConversationLineage(t,a.filePath,A),V=await this.writeSessionInternal(t,B,a.createdAt,a.filePath,void 0,$);await this.syncAppendStateFromFile(t,B,V),i=B})),i}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=Ia(s.data.lineage,n,r);if(!a)return;let c={...s.data,lineage:a},l=await this.completeConversationLineage(t,s.filePath,a),u=await this.writeSessionInternal(t,c,s.createdAt,s.filePath,void 0,l);await this.syncAppendStateFromFile(t,c,u),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=r?.historyBoundary,c=a===void 0?void 0:await this.readFullSnapshotAtPath(t,s.filePath,void 0,!0);if(c!==void 0&&c?.sourceRevision!==a?.sourceRevision)throw new Te("data_changed",`Conversation history boundary is stale for ${t}`);if(a!==void 0&&c===null)return;let l=c?.lineage??s.data.lineage;if(l===null||c!==void 0&&(n===void 0||MM(l,n)===void 0))return;let u=Date.now(),f=c===void 0?Ci(l,n):c===null?null:EE(l,n,c.sourceRevision,()=>_h({},u));if(!f)return;let p=r?.sessionId??await ka(),h={messages:_t(f),title:r?.title??s.data.title,gitRoot:s.data.gitRoot,tag:s.data.tag,runtimeInfo:s.data.runtimeInfo?{...s.data.runtimeInfo}:void 0,uiHistory:s.data.uiHistory?s.data.uiHistory.map(m=>({...m})):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:f};await this.writeSessionInternal(p,h,void 0,void 0,void 0,f),i={sessionId:p,data:h}}),i}async list(t,n){await this.ensureMigrated(),await _e.mkdir(this.sessionsDir,{recursive:!0});let r=t&&t.trim()?t:void 0,i=r!==void 0||this.hostCwd!==void 0,s=r??(this.hostCwd?await bi(this.hostCwd):null),a=i?await Xr({cwd:s??this.hostCwd??process.cwd()}):void 0,c=i?void 0:this.beginSessionLocationTraversal(),l=await _e.readdir(this.sessionsDir,{withFileTypes:!0}),u=[],f=[],h=(a===void 0?void 0:fr({gitRoot:s??void 0,runtimeInfo:a}))?.key,m=o(P=>P.endsWith(".archive.jsonl")||P.endsWith(".islands.jsonl"),"isSidecar"),g=h!==void 0?[h]:l.filter(P=>P.isDirectory()&&!P.name.startsWith(".")).map(P=>P.name),T=!i,x=o(async P=>{try{return{files:await _e.readdir(P),complete:!0}}catch(B){return{files:[],complete:B.code==="ENOENT"}}},"readDirectory"),C=48;for(let P=0;P<g.length;P+=C){let B=await Promise.all(g.slice(P,P+C).map(async $=>{let V=this.projectDir($),[ne,z]=await Promise.all([x(V),x(U.join(V,"archived"))]);return{projectDir:V,active:ne,archived:z}}));for(let $ of B){(!$.active.complete||!$.archived.complete)&&(T=!1);for(let V of $.active.files){if(!V.endsWith(".jsonl")||m(V))continue;let ne=U.join($.projectDir,V);f.push(ne),u.push({path:ne,archived:!1})}for(let V of $.archived.files){if(!V.endsWith(".jsonl")||m(V))continue;let ne=U.join($.projectDir,"archived",V);f.push(ne),n?.includeArchived&&u.push({path:ne,archived:!0})}}}for(let P of l)if(P.isFile()&&P.name.endsWith(".jsonl")&&!m(P.name)&&!P.name.startsWith("archived-")&&!P.name.startsWith(".")){let B=U.join(this.sessionsDir,P.name);f.push(B),u.push({path:B,archived:!1})}c===void 0?this.indexSessionLocations(f,!1):this.completeSessionLocationTraversal(c,f,T);let b=[],A=o(async(P,B)=>{try{let $=await Mh(P);if(!$)return null;let V=JSON.parse($);if(tt(V)&&V._type==="meta"){let z=typeof V.gitRoot=="string"?V.gitRoot:"",y=Eh(V.runtimeInfo)?V.runtimeInfo:void 0,_=V.scope==="managed-task-worker"?"managed-task-worker":"user";if(a!==void 0&&h!==void 0&&!pp({gitRoot:z||void 0,runtimeInfo:y},[a.canonicalRepoRoot,a.workspaceRoot,a.executionCwd,s].filter(pe=>typeof pe=="string"&&pe.length>0))||_!=="user")return null;let ee=typeof V.extensionRecordCount=="number"&&V.extensionRecordCount>0?V.extensionRecordCount:0,j=typeof V.activeMessageCount=="number"&&V.activeMessageCount>=0?V.activeMessageCount:Math.max(0,await zM(P)-1-ee);return{id:U.basename(P,".jsonl"),title:typeof V.title=="string"?V.title:"",msgCount:j,...typeof V.tag=="string"?{tag:V.tag}:{},createdAt:typeof V.createdAt=="string"?V.createdAt:void 0,runtimeInfo:y?{...y}:z?{canonicalRepoRoot:z}:void 0,...B?{archived:!0}:{}}}let ne=await zM(P);return{id:U.basename(P,".jsonl"),title:"",msgCount:ne,...B?{archived:!0}:{}}}catch{return null}},"parseSessionFile"),N=48,R=new Set;for(let P=0;P<u.length;P+=N){let B=await Promise.all(u.slice(P,P+N).map($=>A($.path,$.archived)));for(let $ of B)$&&!R.has($.id)&&(R.add($.id),b.push($))}let E=n?.limit??10;return b.sort((P,B)=>{let $=P.createdAt?Date.parse(P.createdAt):Number.NaN,V=B.createdAt?Date.parse(B.createdAt):Number.NaN;return Number.isFinite($)&&Number.isFinite(V)&&$!==V?V-$:Number.isFinite(V)&&!Number.isFinite($)?1:Number.isFinite($)&&!Number.isFinite(V)?-1:B.id.localeCompare(P.id)}).slice(0,E).map(({id:P,title:B,msgCount:$,tag:V,runtimeInfo:ne,createdAt:z,archived:y})=>({id:P,title:B,msgCount:$,...V!==void 0?{tag:V}:{},...ne?{runtimeInfo:ne}:{},...z!==void 0?{createdAt:z}:{},...y?{archived:!0}:{}}))}async archive(t){return this.archiveWithActorOwner(t)}async archiveOwned(t,n){return this.archiveWithActorOwner(t,n)}sessionConversationCacheMainPaths(t,n){let r=U.dirname(n),i=U.basename(r)==="archived"?U.join(U.dirname(r),`${t}.jsonl`):U.join(r,"archived",`${t}.jsonl`);return[n,i,this.legacyFlatPath(t)]}async removeSessionConversationCaches(t,n){let r=new Set;for(let i of this.sessionConversationCacheMainPaths(t,n)){let s=U.resolve(i);r.has(s)||(r.add(s),await Qn(i))}}async removeResumeMembership(t,n){try{await dd(Sh(n),vh(t,"",0),!1)}catch(r){At("warn",`Unable to remove ${t} from the resume index.`,r)}}async archiveWithActorOwner(t,n){await this.ensureMigrated();let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(!i)return;this.assertActorFileOwner(i.data.actorSnapshot,n);let s=U.dirname(i.filePath);if(U.basename(s)==="archived"){for(let f of this.sessionConversationCacheMainPaths(t,i.filePath).slice(1))await Qn(f);await this.removeResumeMembership(t,i.filePath),r=!0;return}let a=this.verifiedLocationTopology(t),c=U.join(s,"archived");await this.removeSessionConversationCaches(t,i.filePath),await this.withSessionLocationTopologyChange(()=>this.movePair(t,s,c)),await this.removeResumeMembership(t,i.filePath);let l=this.readSessionTopologyIdentitySync(t),u=a!==void 0&&l!==void 0;this.sessionLocations.set(t,{kind:"located",filePath:U.join(c,`${t}.jsonl`),globallyVerified:u,...u?{topologyIdentity:l}:{}}),await this.rebuildConversationCache(t,U.join(c,`${t}.jsonl`),i.data.lineage??Qe(i.data.messages),i.data.runtimeInfo),r=!0}),r}async unarchive(t){return this.unarchiveWithActorOwner(t)}async unarchiveOwned(t,n){return this.unarchiveWithActorOwner(t,n)}async unarchiveWithActorOwner(t,n){await this.ensureMigrated();let r=!1;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(!i)return;this.assertActorFileOwner(i.data.actorSnapshot,n);let s=U.dirname(i.filePath);if(U.basename(s)!=="archived"){for(let m of this.sessionConversationCacheMainPaths(t,i.filePath).slice(1))await Qn(m);r=!0;return}let a=this.verifiedLocationTopology(t),c=U.dirname(s),l=i.data.lineage?ro(i.data.lineage):i.data.messages.length,u=i.data.scope!=="managed-task-worker"&&l>0,f=vh(t,i.data.title,l,i.createdAt,i.data.runtimeInfo?.surface);if(u)try{await xh(c,f)}catch(m){At("warn",`Unable to prepare the resume index for ${t}.`,m)}await this.removeSessionConversationCaches(t,i.filePath),await this.withSessionLocationTopologyChange(()=>this.movePair(t,s,c));try{await dd(c,f,u)}catch(m){At("warn",`Unable to refresh the resume index for ${t}.`,m)}let p=this.readSessionTopologyIdentitySync(t),h=a!==void 0&&p!==void 0;this.sessionLocations.set(t,{kind:"located",filePath:U.join(c,`${t}.jsonl`),globallyVerified:h,...h?{topologyIdentity:p}:{}}),await this.rebuildConversationCache(t,U.join(c,`${t}.jsonl`),i.data.lineage??Qe(i.data.messages),i.data.runtimeInfo),r=!0}),r}async movePair(t,n,r){let i=[`${t}.jsonl`,`${t}.islands.jsonl`,`${t}.archive.jsonl`];for(let c of i)if(at.existsSync(U.join(r,c)))throw new Error(`Refusing to overwrite existing Session archive file: ${c}`);await _e.mkdir(r,{recursive:!0});let s=i.filter(c=>at.existsSync(U.join(n,c))),a=[];try{for(let c of s){let l=U.join(n,c);await _e.rename(l,U.join(r,c)),a.push(c)}}catch(c){let l=[];for(let u of a.reverse())try{await _e.rename(U.join(r,u),U.join(n,u))}catch(f){l.push(f)}throw l.length>0?new AggregateError([c,...l],`Session ${t} move failed and rollback was incomplete.`):c}}async removeFileSetAtomically(t,n){let r=[];try{for(let i of[...new Set(n)]){let s=`${i}.${process.pid}.${Date.now()}.${ES++}.deleting.tmp`;try{await _e.rename(i,s),r.push({source:i,tombstone:s})}catch(a){if(a.code!=="ENOENT")throw a}}}catch(i){let s=[];for(let a of r.reverse())try{await _e.rename(a.tombstone,a.source)}catch(c){s.push(c)}throw s.length>0?new AggregateError([i,...s],`Session ${t} deletion failed and rollback was incomplete.`):i}for(let i of r)try{await _e.unlink(i.tombstone)}catch(s){At("warn",`Session ${t} was deleted, but a recoverable tombstone could not be removed.`,s)}return r.length}assertActorFileOwner(t,n){if(n!==void 0){if(t?.schemaVersion!==2||t.owner?.ownerId!==n)throw new uy(t?.schemaVersion===2?t.owner?.runtimeId:void 0,t?.revision??0,!1);return}if(t?.schemaVersion===2&&t.owner)throw new uy(t.owner.runtimeId,t.revision,!1);if(t?.turns.some(r=>r.state==="accepted"||r.state==="running"))throw new xI(t.revision)}async delete(t){return this.deleteWithActorOwner(t)}async deleteOwned(t,n){if(n.trim().length===0)throw new Error("Actor owner ID is required for owned Session deletion.");return this.deleteWithActorOwner(t,n)}async deleteWithActorOwner(t,n){await this.ensureMigrated(),await this.serializedWrite(t,async()=>{let r=await this.readSession(t);if(!r)return;this.assertActorFileOwner(r.data.actorSnapshot,n);let i=r.filePath,s=[],a=o(l=>{s.includes(l)||s.push(l)},"addTarget");a(i.replace(/\.jsonl$/,".archive.jsonl")),a(i.replace(/\.jsonl$/,".islands.jsonl")),a(this.legacyFlatArchivePath(t)),a(this.legacyFlatPath(t));let c=s.indexOf(i);c>=0&&s.splice(c,1),s.push(i),await this.removeSessionConversationCaches(t,i),await this.withSessionLocationTopologyChange(()=>this.removeFileSetAtomically(t,s)),await this.removeResumeMembership(t,i),this.sessionLocations.delete(t)})}async deleteAll(t){let n=t??(this.hostCwd?await bi(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=[],i=Date.now()-t*24*60*60*1e3,s=o(async a=>{let c=U.basename(a);if(!c.endsWith(".jsonl")||c.endsWith(".archive.jsonl")||c.endsWith(".islands.jsonl"))return;let l=c.slice(0,-6);try{await this.serializedWrite(l,async()=>{if((await _e.stat(a)).mtimeMs>=i)return;let f=await AS(a),p=f?.meta?.actorSnapshot;!f?.meta||p!==void 0&&(p.schemaVersion===2&&p.owner!==void 0||p.turns.some(h=>h.state==="accepted"||h.state==="running"))||(await this.removeSessionConversationCaches(l,a),n+=await this.withSessionLocationTopologyChange(()=>this.removeFileSetAtomically(l,[a.replace(/\.jsonl$/,".archive.jsonl"),a.replace(/\.jsonl$/,".islands.jsonl"),a])),this.sessionLocations.delete(l))})}catch(u){r.push(u)}},"unlinkSessionIfOld");try{await _e.mkdir(this.sessionsDir,{recursive:!0});let a=await _e.readdir(this.sessionsDir,{withFileTypes:!0});for(let c of a){let l=U.join(this.sessionsDir,c.name);if(c.isFile()){await s(l);continue}if(!c.isDirectory()||c.name.startsWith("."))continue;let u=[];try{u=await _e.readdir(l,{withFileTypes:!0})}catch{continue}for(let f of u){let p=U.join(l,f.name);if(f.isFile())await s(p);else if(f.isDirectory()&&f.name==="archived"){let h=[];try{h=await _e.readdir(p)}catch{continue}for(let m of h)await s(U.join(p,m))}}}}catch(a){r.push(a)}if(r.length>0)throw new AggregateError(r,"One or more Session retention cleanups failed.");return n}};import{jsx as me,jsxs as Nn,Fragment as qG}from"react/jsx-runtime";import qL,{useState as ze,useCallback as q,useRef as ye,useEffect as We,useMemo as Se}from"react";import{jsx as si,Fragment as a2,jsxs as Ah}from"react/jsx-runtime";var WS=" | ",i_=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=ue("dark"),p=r.trim(),h=a?.trim(),m=l?.trim(),g=u?.trim(),T=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`,C=c>0?c===1?"1 new update":`${c} new updates`:void 0,b=e&&s>0?`${Math.max(0,i)}/${s}`:void 0,A=e&&h||m,N=!!(A||g);return Ah(M,{flexDirection:"column",children:[Ah(M,{paddingX:1,children:[si(k,{color:f.colors.dim,children:T}),si(k,{dimColor:!0,children:WS}),si(k,{color:f.colors.dim,children:x}),b||C?si(M,{flexGrow:1}):null,b?Ah(a2,{children:[si(k,{dimColor:!0,children:b}),C?si(k,{dimColor:!0,children:WS}):null]}):null,C?si(k,{color:f.colors.accent,bold:!0,children:C}):null]}),N?Ah(M,{paddingX:1,children:[A?si(k,{color:f.colors.dim,children:A}):null,A&&g?si(k,{dimColor:!0,children:WS}):null,g?si(k,{color:f.colors.accent,bold:!0,children:g}):null]}):null]})},"TranscriptModeFooter");import{jsx as c2,jsxs as l2}from"react/jsx-runtime";var o_=o(({banner:e,...t})=>l2(M,{flexDirection:"column",children:[e,c2(Co,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as u2,jsxs as d2}from"react/jsx-runtime";var s_=o(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...i})=>d2(M,{flexDirection:"column",children:[e,u2(Nm,{...i,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as f2,jsx as p2}from"react/jsx-runtime";var a_=o(({text:e,tone:t="success"})=>{let n=e?.trim();if(!n)return null;let r=ue("dark"),i=t==="warning"?r.colors.warning:r.colors.accent,s=t==="warning"?"!":"\u2713";return p2(M,{paddingX:1,backgroundColor:r.colors.inputBackground,children:f2(k,{color:i,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as Lo,Fragment as m2,jsxs as jS}from"react/jsx-runtime";var h2=" \u23BF ";function g2(e){let t=ue("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(g2,"resolveSymbolColor");var y2=o(({row:e})=>{let t=g2(e.symbolColor),n=e.kind!=="item";return jS(M,{flexDirection:"row",children:[Lo(k,{color:t,bold:e.isActive,children:e.symbol}),Lo(k,{children:" "}),Lo(k,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?jS(m2,{children:[Lo(k,{children:" "}),Lo(k,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),c_=o(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=ue("dark").colors.dim;return jS(M,{flexDirection:"row",children:[Lo(k,{color:t,children:h2}),Lo(M,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>Lo(y2,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");import{jsx as gd,jsxs as w2}from"react/jsx-runtime";var l_=jv;function S2(e){let t=ue("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(S2,"resolveSymbolColor");var x2=o(({row:e})=>{let t=S2(e.symbolColor);return w2(M,{flexDirection:"row",children:[gd(M,{width:l_,flexShrink:0,children:gd(k,{color:t,bold:e.isActive,wrap:"truncate",children:Uv(e.symbol,l_)})}),gd(k,{color:e.kind==="hint"?ue("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"WorkflowRunRow");function u_(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}o(u_,"measureWorkflowRunSurfaceRows");var d_=o(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:gd(M,{flexDirection:"column",flexGrow:1,children:e.rows.map((t,n)=>gd(x2,{row:t},`${t.kind}-${t.id??n}`))}),"WorkflowRunSurface");var f_=6;var T2=1;function p_(e){return re("todo.progress",{completed:e.completedCount,total:e.totalCount})}o(p_,"formatTodoPlanProgressText");function m_(e){if(!e.shouldRender||e.rows.length===0)return[];let t=[re("todo.transcript.progress",{completed:e.completedCount,total:e.totalCount})];for(let n of e.rows){let r=n.evaluatorBadge?` ${n.evaluatorBadge}`:"";t.push(`${n.symbol} ${n.text}${r}`)}return t}o(m_,"formatTodoPlanViewModelForTranscript");var h_="\u2610",C2="\u25CF",g_="\u2713",I2="\u2717",v2="\u2298",b2="\u2612";function R2(e){switch(e){case"in_progress":return{symbol:C2,color:"cyan"};case"completed":return{symbol:g_,color:"green"};case"failed":return{symbol:I2,color:"red"};case"skipped":return{symbol:v2,color:"gray"};case"cancelled":return{symbol:b2,color:"gray"};default:return{symbol:h_,color:"dim"}}}o(R2,"symbolForStatus");function k2(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(k2,"pickAnchorIndex");function E2(e){let{symbol:t,color:n}=R2(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(E2,"buildItemRow");function M2(e){return{kind:"summary_done",symbol:g_,symbolColor:"green",text:re("todo.summary.done",{count:e}),isActive:!1,summaryCount:e}}o(M2,"buildDoneSummary");function US(e){return{kind:"summary_pending",symbol:h_,symbolColor:"dim",text:re("todo.summary.more",{count:e}),isActive:!1,summaryCount:e}}o(US,"buildPendingSummary");function _2(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}o(_2,"pickFailedToPromote");function A2(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(A2,"decideWindow");function y_(e,t){let n=e.length,r=e.reduce((m,g)=>g.status==="completed"?m+1:m,0),i=o((m,g)=>({shouldRender:g,rows:m,completedCount:r,totalCount:n}),"baseVm");if(n<T2)return i([],!1);t.now,t.lastAllCompletedAt;let s=k2(e),a=A2(e,s),c=new Set(a.visibleIdx),l=_2(e,c),u=[...a.visibleIdx],f=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let m=-1;for(let g=u.length-1;g>=0;g--){let T=u[g];if(T!==s&&e[T].status==="pending"){m=g;break}}if(m>=0){let g=u[m];u[m]=l,p+=1,u.sort((C,b)=>C-b);let T=u[0],x=0;for(let C=0;C<T;C++)e[C].status==="completed"&&x++;f=x}}let h=[];f>0&&h.push(M2(f));for(let m of u)h.push(E2(e[m]));if(p>0&&h.push(US(p)),h.length>f_)for(;h.length>f_;){let m=!1;for(let g=h.length-1;g>=0;g--){let T=h[g];if(T.kind==="item"&&!T.isActive){h.splice(g,1);let x=h[h.length-1];if(x&&x.kind==="summary_pending"){let C=(x.summaryCount??0)+1;h[h.length-1]=US(C)}else h.push(US(1));m=!0;break}}if(!m)break}return i(h,!0)}o(y_,"buildTodoPlanViewModel");function w_(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(w_,"buildFooterHeaderViewModel");function Lh(e,t,n,r){if(r?.contextKind==="child")return null;let i=n?.preCompactionMessages?Qe([...n.preCompactionMessages],e):e;return n?.anchor?Hf(i,t,n.anchor,n.postCompactAttachments??[]):Qe(t,i)}o(Lh,"prepareRootCompactionLineage");function S_(e,t){let n=e.loadFullLineage;if(!n)return e;let r=o(async i=>(await t(),n.call(e,i)),"guardedLoadFullLineage");return new Proxy(e,{get(i,s){if(s==="loadFullLineage")return r;let a=Reflect.get(i,s,i);return typeof a=="function"?a.bind(i):a}})}o(S_,"withSessionHistoryReadBarrier");function x_(){let e=Promise.resolve();return t=>{let n=e.then(t);return e=n.then(()=>{},()=>{}),n}}o(x_,"createConfirmationDialogQueue");function L2(e){return cv(e.provider,e.model,"off",{longRunning:!0})}o(L2,"evaluateSessionTransitionPolicy");function P2(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(P2,"formatSessionTransitionGuardMessage");function Po(e,t,n){let r=L2(e);if(!r||r.status==="allow")return!0;let[i,...s]=P2(t,r);return n(r.status,i,s),r.status!=="block"}o(Po,"enforceSessionTransitionGuard");function O2(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(O2,"summarizeEntry");function T_(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} ${O2(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,f)=>{T_(u,l,f===e.children.length-1,r)})}o(T_,"formatNode");function Ph(e){let t=[];return e.forEach((n,r)=>{T_(n,"",r===e.length-1,t)}),t}o(Ph,"formatSessionTree");function C_(e,t){return e!==null&&e.attempt===t.attempt&&e.maxAttempts===t.maxAttempts&&e.waitMs===t.delayMs}o(C_,"isDuplicateLegacyRateLimit");var $2=100,N2=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,v_=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,b_=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,R_=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function Uc(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}o(Uc,"readString");function hn(e,t,n){n&&e.push({label:t,value:n})}o(hn,"pushField");function D2(e){return e.replace(/\s+/g," ").trim()}o(D2,"normalizeWhitespace");function B2(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(B2,"truncateMiddle");function F2(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(F2,"maskSensitiveSegments");function I_(e){return B2(F2(D2(e)),$2)}o(I_,"summarizeCommand");function H2(e){return Jl(e)?re("intent.read"):v_.test(e)?re("intent.delete"):b_.test(e)?re("intent.deps"):vi(e)||R_.test(e)?re("intent.modify"):re("intent.execute")}o(H2,"classifyShellIntent");function W2(e){let t=[];return v_.test(e)?t.push(re("risk.destructive")):b_.test(e)?t.push(re("risk.deps")):vi(e)||R_.test(e)?t.push(re("risk.modify")):Jl(e)||t.push(re("risk.unknown")),N2.test(e)&&t.push(re("risk.network")),t}o(W2,"classifyShellRisks");function j2(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}o(j2,"readSignals");function U2(e){if(e){if(e.some(t=>t.kind==="protected_path"))return re("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return re("scope.outside")}}o(U2,"scopeFromSignals");function G2(e){if(e._outsideProject===!0)return re("scope.outside");if(e._alwaysConfirm===!0)return re("scope.protected")}o(G2,"scopeFromMarkers");function V2(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(re("risk.destructive")):r&&t.push(re("risk.modify")),e.some(i=>i.kind==="network")&&t.push(re("risk.network")),e.some(i=>i.kind==="package_install")&&t.push(re("risk.deps")),t}o(V2,"risksFromSignals");var K2={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function z2(e){return re(K2[e])}o(z2,"localizeFieldLabel");function Gc(e,t){return{title:e,fields:t,details:t.map(n=>`${z2(n.label)}: ${n.value}`)}}o(Gc,"buildDisplayFromFields");function Oh(e,t){if(e==="confirm"){let l=Uc(t._message);if(l)return Gc(l,[])}if(e==="exit_plan_mode"){let l=Uc(t.plan),u="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:u,fields:[],details:l.split(`
|
|
109
|
+
`)}:Gc(u,[])}let n=[],r=Uc(t.path),i=Uc(t.command),s=Uc(t._reason)??Uc(t.justification),a=j2(t._classifierSignals),c=U2(a)??G2(t);switch(hn(n,"Reason",s),e){case"bash":case"shell_command":{if(i){hn(n,"Intent",H2(i)),hn(n,"Scope",c);let l=V2(a),u=l.length>0?l:W2(i);u.length>0&&hn(n,"Risk",u.join("; ")),hn(n,"Summary",I_(i))}else hn(n,"Scope",c);return Gc(e==="bash"?re("tool.bash.title"):re("tool.shell.title"),n)}case"write":return hn(n,"Intent",re("intent.write_file")),hn(n,"Target",r),hn(n,"Scope",c),Gc(re("tool.write.title"),n);case"edit":return hn(n,"Intent",re("intent.edit_file")),hn(n,"Target",r),hn(n,"Scope",c),Gc(re("tool.edit.title"),n);default:return hn(n,"Intent",re("intent.use_tool",{tool:e})),hn(n,"Target",r),hn(n,"Scope",c),i&&hn(n,"Summary",I_(i)),Gc(re("tool.generic.title",{tool:e}),n)}}o(Oh,"buildToolConfirmationDisplay");function k_(e,t){let n=Oh(e,t);return n.details.length>0?`${n.title}
|
|
110
|
+
${n.details.join(`
|
|
111
|
+
`)}`:n.title}o(k_,"buildToolConfirmationPrompt");function E_(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}o(E_,"truncateToolPreview");function M_(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}o(M_,"truncateToolOutputPreview");function GS(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}o(GS,"stripToolRolePrefix");function VS(e){return GS(e).toLowerCase()}o(VS,"normalizeToolNameForMatch");function KS(e){return e===`[${re("managed.completed")}]`||e===`[${re("managed.completed.blocked")}]`||e===`[${re("managed.completed.continuation")}]`}o(KS,"isCompletionTranscriptItem");function $h(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($h,"formatManagedLiveActivityLabel");function Wi(e,t){return $h(`[Tools] ${hm(e)}`,t)??`[Tools] ${hm(e)}`}o(Wi,"formatManagedLiveToolLabel");function Nh(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(Nh,"areManagedLiveItemsEquivalent");function __(e){return e==="Task completed"?re("managed.completed"):e==="Task needs continuation"?re("managed.completed.continuation"):e==="Task ended: blocked"?re("managed.completed.blocked"):e==="Task ended: needs_continuation"?re("managed.completed.continuation"):e.startsWith("Task ended:")?re("managed.completed.blocked"):e}o(__,"localizeManagedCompletionSummary");function A_(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(A_,"mergeLiveThinkingContent");function Vc(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,r=e.activeWorkerTitle?`${e.agentMode.toUpperCase()} ${e.activeWorkerTitle}`:e.agentMode.toUpperCase(),i=e.activeWorkerTitle??"Scout",s=`${e.agentMode.toUpperCase()} ${i}`,a=`${e.agentMode.toUpperCase()} Routing`,c=e.currentRound&&e.maxRounds&&e.currentRound>1?` - Round ${e.currentRound}/${e.maxRounds}`:"";switch(e.phase){case"routing":return`${a} - Routing ready`;case"starting":return n?`${r} - ${n}`:`${r} - Managed task starting`;case"preflight":return n?`${s} - ${n}`:`${s} - ${i} preflight starting`;case"round":return n?`${r} - ${n}`:`${r} - Managed task round update${c}`;case"worker":return n?`${r} - ${n}${c}`:`${r} - ${e.activeWorkerTitle??"Worker"} starting${c}`;case"upgrade":return n?`${r} - ${n}`:`${r} - Harness transition${c}`;case"verifying":return n?`${e.agentMode.toUpperCase()} Verifying - ${n}`:`${e.agentMode.toUpperCase()} Verifying`;case"completed":return n?`${r} - ${n}`:`${r} - Managed task completed`;default:return}}o(Vc,"formatManagedTaskBreadcrumb");var L_=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function P_(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&&!L_)return r;let p=f?`[${__(s)}]`:void 0,h=p??s,m=p??a;return r.push({item:{id:c,type:"event",timestamp:l,text:m,icon:i.kind==="warning"?"!":f?"\u2713":">",...h!==m?{compactText:h}:{}},persistToHistory:u}),r},[]);if(e.phase==="completed"&&!L_)return[];let t=Vc(e),n=Vc(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(P_,"buildManagedLiveEventDrafts");function X2(e,t,n){return e.role!=="evaluator"?!1:e.signal==="COMPLETE"?!t:n}o(X2,"shouldFilterSidecarEvidenceEntry");function O_(e,t){let n=e.managedTask;if(!n)return[];let r=t?.verifierLog??process.env.KODAX_VERIFIER_LOG==="1",i=t?.sidecarMessageDelivered===!0,s=o(p=>{if(!e.interrupted&&!n.verdict.signalReason?.includes("Orchestration cancelled"))return!1;let h=p.signalReason?.trim()??"",m=p.summary?.trim()??"",g=p.output?.trim()??"",T=h.includes("Orchestration cancelled"),x=m.includes("Orchestration cancelled"),C=!g||m==="No textual output produced.";return p.status!=="completed"&&(T||x||C)||(T||x)&&C},"isInterruptedCancellation"),a=new Map(n.roleAssignments.map((p,h)=>[p.id,h])),c=n.verdict.decidedByAssignmentId,l=Math.max(0,...n.evidence.entries.filter(p=>p.assignmentId===c).map(p=>p.round??1)),u=[...n.evidence.entries].sort((p,h)=>{let m=(p.round??1)-(h.round??1);return m!==0?m:(a.get(p.assignmentId)??0)-(a.get(h.assignmentId)??0)}).filter(p=>!s(p)).filter(p=>!X2(p,r,i)).filter(p=>e.interrupted||!(p.assignmentId===c&&(p.round??1)===l)).map(p=>{let h=p.output?.trim()??"",m=p.summary?.trim()??"",g=h?Ga(h):"",T=m?Ga(m):"",x=p.role==="scout"?T?`Scout completed: ${T}`:"Scout completed.":T;return{entry:p,text:T||g||x}}).filter(({text:p})=>!!p).map(({entry:p,text:h})=>{let m=p.role==="scout"?" Preflight":(p.round??1)>1?` Round ${p.round}`:"";return`[${p.role==="evaluator"?`\u26A1 Sidecar Verifier${m}`:`${p.title??p.assignmentId}${m}`}]
|
|
112
|
+
${h}`}),f=n.verdict.disposition==="complete"?re("managed.completed"):n.verdict.disposition==="needs_continuation"?re("managed.completed.continuation"):n.verdict.disposition==="blocked"?re("managed.completed.blocked"):void 0;return[...u,...f?[`[${f}]`]:[]]}o(O_,"buildManagedTaskTranscriptItems");function $_(e){let r=e.slice(0,400).match(new RegExp("\\*\\*([^*\\n]{1,80}?)\\*\\*"))?.[1]?.trim();return r?{header:r}:{}}o($_,"extractBoldHeader");var zS=[" \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 St from"chalk";var Dh=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 ")}},ai=o(()=>Dh.getInstance(),"getShortcutsRegistry");import{useEffect as Y2,useCallback as q2,useRef as J2}from"react";function ji(e,t,n={}){let{context:r,isActive:i=!0}=n,s=ai(),a=J2(t);a.current=t,Y2(()=>(s.setHandler(e,u=>a.current(u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=q2(u=>{if(!i)return!1;let p=s.getAllShortcuts().find(T=>T.definition.id===e);if(!p)return!1;let h=r??p.definition.context,m=h==="global"?"input":h,g=s.findMatchingShortcut(u,m);return g&&g.definition.id===e?a.current(u)===!0:!1},[s,e,i,r]),l=Q2(e,s);Yn(c,{isActive:i,priority:l})}o(ji,"useShortcut");function Q2(e,t){let r=t.getAllShortcuts().find(i=>i.definition.id===e);return r?r.definition.priority:0}o(Q2,"getShortcutPriority");import Z2,{createContext as eU,useContext as tU,useState as N_,useCallback as XS}from"react";var D_=eU(null);function YS({children:e,initialContext:t="input"}){let[n,r]=N_(!1),[i,s]=N_(t);ai().registerAll(Ba);let c=XS(()=>{r(p=>!p)},[]),l=XS(()=>{let h=ai().getAllShortcuts(),m={global:[],mode:[],navigation:[],editing:[]};for(let g of h){let T=g.definition.category;m[T]||(m[T]=[]),m[T].push(g)}return m},[]),u=XS(()=>ai().getShortcutsByContext(i),[i]),f={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:i,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return Z2.createElement(D_.Provider,{value:f},e)}o(YS,"ShortcutsProvider");function qS(){let e=tU(D_);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}o(qS,"useShortcutsContext");import nU from"chalk";var B_={off:0,minimal:1,low:2,medium:3,high:4,xhigh:5,max:6,auto:7};function rU(e,t){let n=e.indexOf(t);if(n!==-1)return n;let r=B_[t];if(r===void 0)return-1;let i=-1,s=-1;for(let a=0;a<e.length;a++){let c=B_[e[a]];c===void 0||c>r||c>s&&(s=c,i=a)}return i}o(rU,"nearestCycleIndex");function JS({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:h,onOpenTranscriptSearch:m,canOpenTranscriptSearch:g=!0,isInteractiveDialogActive:T=!1,onSetAgentMode:x,onSetPermissionMode:C,isInputEmpty:b,onSavePermissionMode:A}){let N=o(R=>R?.name?.toLowerCase()==="c"&&R.ctrl===!0,"isCtrlCInterrupt");return ji("interrupt",R=>N(R)&&n?(r(),i(),s(),a(void 0),c(!1),console.log(nU.yellow(`
|
|
113
|
+
[Interrupted]`)),!0):!1,{isActive:n}),ji("showHelp",()=>T?!1:b?(l(),!0):!1,{isActive:b}),ji("toggleThinking",()=>{if(T)return!1;let R=lv(e.provider,e.model);if(R.length===0)return!1;let E=e.permissionMode==="plan"&&!e.effortOverride&&e.planModeEffort!==void 0?e.planModeEffort:e.effortOverride?e.effort:void 0,B=rU(R,E===void 0||E==="auto"?"auto":E==="none"?"off":E),$=R[(B+1)%R.length]??R[0],V=$==="auto"?void 0:$==="off"?"none":$,ne=$!=="auto",z=$!=="off",y=$==="off"?"off":"auto";return t(_=>({..._,effort:V,effortOverride:ne,thinking:z,reasoningMode:y})),rs({effort:V,thinking:z,reasoningMode:y}),p?.(y),f?.(z),u(!1),!0}),ji("toggleTranscriptMode",()=>T?!1:(h?.(),u(!1),!0)),ji("openTranscriptSearch",()=>T||!g?!1:(m?.(),u(!1),!0)),ji("togglePermissionMode",()=>{if(T)return!1;let R=["plan","accept-edits","auto"],E=e.permissionMode==="auto-in-project"?"auto":e.permissionMode,B=(R.indexOf(E)+1)%R.length,$=R[B];return t(V=>({...V,permissionMode:$})),C?.($),A?.($),u(!1),!0}),ji("toggleAgentMode",()=>{if(T)return!1;let R=Av(e.agentMode);return t(E=>({...E,agentMode:R})),rs({agentMode:R}),x?.(R),u(!1),!0}),null}o(JS,"GlobalShortcuts");import{appendFileSync as iU,mkdirSync as oU,writeFileSync as sU}from"node:fs";import{join as H_}from"node:path";import F_ from"node:v8";var ex=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),tx=ex>=1,nx=Qo(),W_=H_(nx,"memory-diag.log"),QS=0,ZS=!1;function j_(){if(!ZS)try{oU(nx,{recursive:!0}),ZS=!0}catch{ZS=!0}}o(j_,"ensureLogDir");function aU(e){j_();try{iU(W_,e+`
|
|
114
|
+
`)}catch{}}o(aU,"writeLog");function Nt(e){return`${(e/1024/1024).toFixed(2)}MB`}o(Nt,"formatMB");function cU(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}o(cU,"tryGC");function Lt(e){return e?e.length*2:0}o(Lt,"strBytes");function Ns(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+=Ns(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+=Ns(i,t+1);return n}return 16}o(Ns,"estimateJsonBytes");function U_(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+=U_(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+=Ns(t.input));for(let[i,s]of Object.entries(t))r.has(i)||(n+=i.length*2+Ns(s));return n}o(U_,"estimateBlockBytes");function rx(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+=U_(n);return t}return 200}o(rx,"estimateMessageBytes");function yd(e){let t=128;switch(t+=Lt(e.id)+Lt(e.parentId??void 0)+Lt(e.timestamp),e.type){case"message":return t+rx(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+=Ns(e.details)),e.memorySeed!==void 0&&(t+=Ns(e.memorySeed)),t;case"branch_summary":return t+=Lt(e.summary),t+=Lt(e.fromId),e.details!==void 0&&(t+=Ns(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;case"rewind_marker":return t+=Lt(e.targetId),t+=Lt(e.fromId),t+=Lt(e.summary),t+=8,t;default:return t}}o(yd,"estimateEntryBytes");function lU(e){let t={},n=[];for(let i=0;i<e.length;i++){let s=e[i],a=rx(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(lU,"buildMessageBreakdown");function Bh(){return tx}o(Bh,"memDiagEnabled");function Fh(e,t){if(!tx)return;e==="turn-start"&&QS++;let n=process.memoryUsage(),r=new Date().toISOString(),i=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${QS} phase=${e} @${r} \u2550\u2550\u2550`,` V8 heap: used=${Nt(n.heapUsed)} total=${Nt(n.heapTotal)} rss=${Nt(n.rss)} ext=${Nt(n.external)}`," \u2500\u2500 Data breakdown \u2500\u2500",` context.messages: ${t.messageCount} msgs, ${Nt(t.messageBytes)}`,` lineage.entries: ${t.lineageEntryCount} total (msg=${t.lineageMessageEntryCount}, compact=${t.lineageCompactionCount}, branch=${t.lineageBranchSummaryCount}, label=${t.lineageLabelCount}, archive=${t.lineageArchiveMarkerCount}, rewind=${t.lineageRewindMarkerCount})`,` lineage non-message: ${Nt(t.lineageNonMessageBytes)} (sidecar payloads)`,` lineage orphan messages: ${t.lineageOrphanMessageCount} msgs, ${Nt(t.lineageOrphanMessageBytes)} (in lineage but not in context.messages \u2014 branches/pruned)`,` UI history: ${t.historyItemCount} items, ${Nt(t.historyTextBytes)}`,` foreground turn: ${t.foregroundItemCount} items, ${Nt(t.foregroundTextBytes)}`,` streaming response: ${Nt(t.streamingResponseBytes)}`,` streaming thinking: ${Nt(t.streamingThinkingBytes)}`,` persisted UI history: ${t.persistedUiHistoryCount} items, ${Nt(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} ${Nt(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=F_.getHeapSpaceStatistics();for(let u of c)u.space_used_size>1024*1024&&s.push(` ${u.space_name.padEnd(25)} used=${Nt(u.space_used_size)} allocated=${Nt(u.space_size)}`);if(s.push(" \u2500\u2500 Summary \u2500\u2500"),s.push(` tracked data total: ${Nt(a)}`),s.push(` V8 heap used: ${Nt(n.heapUsed)}`),s.push(` unaccounted (overhead): ${Nt(n.heapUsed-a)}`),s.push(" (React/Ink tree, provider SDK buffers, module metadata,"),s.push(' tokenizer caches, source maps \u2014 see "Blind spots" note)'),cU()){let u=process.memoryUsage();s.push(` after forced GC: heap=${Nt(u.heapUsed)} (freed ${Nt(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(ex>=2)try{let u=H_(nx,`heap-turn${QS}-${e}.heapsnapshot`);F_.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}aU(s.join(`
|
|
115
|
+
`))}o(Fh,"memDiagSnapshot");function Hh(e,t,n){let r=lU(e),i=new Set(e),s=0,a=0,c=0,l=0,u=0,f=0,p=0,h=0,m=0,g=t?.entries??[];for(let b of g)switch(b.type){case"message":m++,i.has(b.message)||(c++,a+=rx(b.message));break;case"compaction":l++,s+=yd(b);break;case"branch_summary":u++,s+=yd(b);break;case"label":f++,s+=yd(b);break;case"archive_marker":p++,s+=yd(b);break;case"rewind_marker":h++,s+=yd(b);break}let T=0;for(let b of n.historyItems)T+=Lt(b.text);let x=0;for(let b of n.foregroundItems)x+=Lt(b.text);let C=0;for(let b of n.persistedUiHistory)C+=Lt(b.text);return{messageCount:e.length,messageBytes:r.totalBytes,biggestMessages:r.biggest,lineageEntryCount:g.length,lineageMessageEntryCount:m,lineageCompactionCount:l,lineageBranchSummaryCount:u,lineageLabelCount:f,lineageArchiveMarkerCount:p,lineageRewindMarkerCount:h,lineageNonMessageBytes:s,lineageOrphanMessageBytes:a,lineageOrphanMessageCount:c,historyItemCount:n.historyItems.length,historyTextBytes:T,foregroundItemCount:n.foregroundItems.length,foregroundTextBytes:x,streamingResponseBytes:Lt(n.streamingResponse),streamingThinkingBytes:Lt(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:C}}o(Hh,"buildMemDiagBreakdown");function G_(){if(tx){j_();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${ex} 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(`
|
|
116
|
+
`);sU(W_,t+`
|
|
117
|
+
`)}catch{}}}o(G_,"memDiagReset");import uU from"node:fs";import ox from"node:path";var dU={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},fU=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function pU(e){return dU[ox.extname(e).toLowerCase()]}o(pU,"resolveImageMediaType");var ix="[Image unavailable]";function mU(e){return""}o(mU,"buildImageAnchor");function Kc(e,t){let n=[],r=[],i=new Set,s=new Map,a=new Set,c=[],l=0;for(let f of e.matchAll(fU)){let p=f.index??l;c.push(e.slice(l,p));let h=f[1]??f[2]??f[3];if(!h){c.push(f[0]),l=p+f[0].length;continue}let m=pU(h);if(!m){c.push(f[0]),l=p+f[0].length;continue}let g=ox.resolve(t,h);try{if(!uU.statSync(g).isFile()){a.has(g)||(r.push(`[Image input skipped] ${h} is not a file.`),a.add(g)),c.push(ix),l=p+f[0].length;continue}}catch{a.has(g)||(r.push(`[Image input missing] ${h} was not found from ${t}.`),a.add(g)),c.push(ix),l=p+f[0].length;continue}if(!i.has(g)){i.add(g);let T=mU(n.length+1);s.set(g,T),n.push({kind:"image",path:g,mediaType:m,source:"user-inline",description:`Attached image ${ox.basename(g)}`})}c.push(s.get(g)??ix),l=p+f[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:EI(u,n),inputArtifacts:n,warnings:r}}o(Kc,"preparePromptInputArtifacts");function V_(e){let t=hU(e.stage),n=gU(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}o(V_,"createRepoIntelTraceHistoryItem");function hU(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(hU,"stageDisplayName");function gU(e){let t=[],n=e.capability;n&&(t.push(`mode=${n.mode}`),t.push(`engine=${n.engine}`),n.status!=="ok"&&t.push(`status=${n.status}`));let r=e.trace;return r&&(r.cacheHit!==void 0&&t.push(r.cacheHit?"cache hit":"cache miss"),r.capsuleEstimatedTokens!==void 0&&t.push(`${yU(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?wU(e.summary):t.join(" \xB7 ")}o(gU,"buildRepoIntelDetailLine");function yU(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}o(yU,"formatTokens");function wU(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}o(wU,"stripSummaryStagePrefix");function K_(e,t,n,r,i){let s=e?.gitRoot??t??void 0,a=e?.executionCwd??i??s??process.cwd();return{...e,gitRoot:s,executionCwd:a,contextTokenSnapshot:n,taskSurface:"repl",skillsPrompt:r}}o(K_,"buildManagedRunContext");var SU=["global","mode","navigation","editing"],xU={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},TU={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},CU={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 IU(e){let t=ai(),n=t.getAllShortcuts().find(i=>i.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let r=Ba.find(i=>i.id===e);if(r?.defaultBindings?.length)return t.formatBindings(r.defaultBindings)}o(IU,"resolveShortcutBindingLabel");function vU(e){return`${IU(e.id)??e.id} ${e.name}`}o(vU,"buildMenuItemLabel");function bU(e){return ai().getAllShortcuts().find(r=>r.definition.id===e)?.definition??Ba.find(r=>r.id===e)}o(bU,"resolveShortcutDefinition");function Wh(){return[...SU.map(t=>{let n=xU[t].map(r=>bU(r)).filter(r=>!!r).map(r=>({id:r.id,label:vU(r)}));return{id:t,title:TU[t],items:n}}).filter(t=>t.items.length>0),CU]}o(Wh,"buildHelpMenuSections");var sx=2,z_=1,X_=4;function yt(e,t){let n=vn(e.length>0?e.split(`
|
|
118
|
+
`):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}o(yt,"wrapLineCount");function RU(e,t,n=">"){let r=n.length+1,i=Math.max(20,t-r),s=vn(e.length>0?e.split(`
|
|
119
|
+
`):[""],i,0,0);return Math.max(1,s.visualLines.length)+2}o(RU,"calculateInputPromptRows");function Y_(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:h,suggestionsReserved:m,suggestionsMode:g="inline",showHelp:T,statusBarText:x,confirmPrompt:C,confirmInstruction:b,uiRequest:A,dialogMode:N="inline",historySearch:R,maxVisibleSelectOptions:E=5,reviewHint:P,todoSurfaceRows:B=0,workflowSurfaceRows:$=0,childActivitySurfaceRows:V=0,activityBarVisible:ne=!1}=e,z=Math.max(0,Math.floor(B)),y=Math.max(0,Math.floor($)),_=Math.max(0,Math.floor(V)),ee=a?yt(a,Math.max(1,n-2)):0,j=c?yt(c,Math.max(1,n-2)):0,de=ne?1:j,pe=l?yt(l,Math.max(1,n-2)):0,ge=u?yt(u,Math.max(1,n-2)):0,Me=f?yt(f,Math.max(1,n-2)):0,Ee=p?yt(p,Math.max(1,n-2)):0,ie=h?yt(h,Math.max(1,n-2)):0,be=RU(i,n,s),te=m?8:0,se=T?z_+X_+Wh().reduce((qe,Pt)=>qe+yt(Pt.title,Math.max(1,n-sx))+yt(Pt.items.map(Jt=>Jt.label).join(" | "),Math.max(1,n-sx)),0):0,Ie=yt(x,Math.max(1,n-2)),ot=0;if(C&&b){let qe=Math.max(1,n-4);ot=3+yt(`[Confirm] ${C}`,qe)+yt(b,qe)}let Rt=0,Xe=0;if(A){let qe=Math.max(1,n-4);A.kind==="select"?(Xe=Math.min(E,A.options.length),Rt=3+yt(`[Select] ${A.title}`,qe)+A.options.slice(0,Xe).reduce((Pt,Jt,nr)=>Pt+yt(`${nr+1}. ${Jt.label}${Jt.description?` - ${Jt.description}`:""}`,qe),0)+(A.options.length>Xe?2:0)+yt(`Choice: ${A.buffer||"(type a number)"}`,qe)+1+(A.error?yt(A.error,qe):0)):Rt=3+yt(`[Input] ${A.prompt}`,qe)+(A.defaultValue!==void 0?yt(`Default: ${A.defaultValue}`,qe):0)+yt(`Value: ${A.buffer||"(type your response)"}`,qe)+1+(A.error?yt(A.error,qe):0)}let Ke=0;if(R){let qe=Math.max(1,n-4);Ke=3+yt(`Query: ${R.query||"(type to search)"}`,qe)+(R.matchCount===0?yt("No matches yet",qe):yt(`${Math.max(1,R.matchCount)} matches`,qe)+yt(R.selectedExcerpt||"",qe))+1}let he=P?yt(P,Math.max(1,n-2)):0,ve=ee+de+y+z+_+pe+ge+Me+be+se+Ee+he+(g==="inline"?te:0)+(N==="inline"?ot+Rt+Ke:0),G=(g==="overlay"?te:0)+(N==="overlay"?ot+Rt+Ke:0),je=ve+ie+Ie,xt=Math.max(1,t-je);return{messageRows:xt,reservedBottomRows:je,headerRows:ee,activityRows:de,pendingInputRows:pe,stashNoticeRows:ge,notificationRows:Me,workStripRows:ie,inputRows:be,suggestionsRows:te,helpRows:se,statusNoticeRows:Ee,statusRows:Ie,confirmRows:ot,uiRequestRows:Rt,historySearchRows:Ke,footerRows:ve,overlayRows:G,visibleSelectOptions:Xe,reviewHintRows:he,todoSurfaceRows:z,workflowSurfaceRows:y,childActivitySurfaceRows:_,slots:[{name:"transcript",rows:xt},{name:"footer",rows:ve},{name:"overlay",rows:G},{name:"status",rows:Ie},{name:"task-bar",rows:ie}]}}o(Y_,"calculateViewportBudget");function q_(e,t={}){let n=us(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(q_,"createTranscriptDisplayState");function J_(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}o(J_,"enterTranscriptMode");function Q_(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}o(Q_,"exitTranscriptMode");function Z_(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}o(Z_,"setTranscriptPendingLiveUpdates");function eA(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}o(eA,"setTranscriptScrollAnchor");function tA(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}o(tA,"jumpTranscriptToLatest");function nA(e,t){return{...e,stickyPromptVisible:t}}o(nA,"setTranscriptStickyPromptVisible");function zc(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}o(zc,"setTranscriptSelectedItem");function rA(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(rA,"openTranscriptSearch");function iA(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}o(iA,"closeTranscriptSearch");function oA(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}o(oA,"setTranscriptSearchMatchIndex");function sA(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}o(sA,"shouldWindowTranscript");function aA(e){return e.surface==="transcript"}o(aA,"shouldPauseLiveTranscript");function ax(e){return e.supportsSelection}o(ax,"ownsTranscriptSelectionPath");function jh(e,t,n){if(!(!ax(e)||!n))return t.includes(n)?n:void 0}o(jh,"resolveTranscriptSelectedItemId");function cA(e){return e.supportsSelection&&e.supportsCopyOnSelect}o(cA,"supportsPassiveTranscriptCopyOnSelect");function lA(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(lA,"buildTranscriptBrowseHint");var uA="Slash commands cannot be queued mid-task. Press Esc twice or Ctrl+C to abort the current task, then run the command.",dA="slash-guard";function cx(e){return e.trimStart().startsWith("/")}o(cx,"isSlashCommandText");var kU=`
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
`;async function fA(e){let{initialPrompt:t,runRound:n,shiftPendingPrompt:r,peekPendingPromptDelivery:i,onRoundComplete:s,onBeforeQueuedRound:a,shouldContinue:c=o(()=>!0,"shouldContinue"),shouldDrainQueuedPrompts:l=o(()=>!0,"shouldDrainQueuedPrompts")}=e,u=t,f=await n(u);for(;;){if(await s?.(f),!c(f)||!l())return f;let p=[],h;for(;;){let m=i?.();if(p.length>0&&(h==="host"||m==="host"))break;let g=r();if(g===void 0)break;let T=typeof g=="string"?g.trim():"";T.length>0&&(p.push(T),h=m)}if(p.length===0)return f;u=p.length===1?p[0]:p.join(kU),await a?.(u),f=await n(u)}}o(fA,"runQueuedPromptSequence");function mA(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}o(mA,"hasTranscriptInputActivity");function EU(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}o(EU,"shouldHandleManagedTranscriptMouse");function pA(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}o(pA,"shouldHandleManagedTranscriptWheel");function hA(e){if(EU({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"?pA({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?pA({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(hA,"resolveTranscriptPointerAction");function gA(e){return e.isTranscriptMode&&e.hasTextSelection}o(gA,"shouldDeferInterruptToTranscriptSelectionCopy");function yA(e){return e.hasActiveWorkflow?e.ctrl&&e.keyName==="c"?!gA({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection}):e.keyName!=="escape"||e.isTranscriptMode||e.isAwaitingUserInteraction?!1:e.isDoubleEscape&&e.isInputEmpty&&e.pendingInputCount===0:!1}o(yA,"shouldStopWorkflowFromInterruptKey");function wA(e){return e.ctrl&&e.keyName==="c"?gA({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection})?{kind:"none"}:{kind:"interrupt"}:e.keyName!=="escape"?{kind:"none"}:e.isTranscriptMode||e.isAwaitingUserInteraction?{kind:"none"}:e.isInputEmpty&&e.pendingInputCount>0?{kind:"pop-pending-input"}:e.isInputEmpty?e.isDoubleEscape?{kind:"interrupt"}:{kind:"none"}:{kind:"none"}}o(wA,"resolveStreamingInterruptAction");function SA(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(SA,"resolveTranscriptKeyboardAction");function xA(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(xA,"executeTranscriptKeyboardAction");function Oo(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(Oo,"stripAnsi");function MU(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
|
|
124
|
+
`)}o(MU,"serializeToolGroup");function _U(e){switch(e.type){case"thinking":return null;case"user":return`user: ${Oo(e.text)}`;case"assistant":return`assistant: ${Oo(e.text)}`;case"system":return`system: ${Oo(e.text)}`;case"info":return`info: ${Oo(e.text)}`;case"error":return`error: ${Oo(e.text)}`;case"event":return`event: ${Oo(e.text)}`;case"hint":return`hint: ${Oo(e.text)}`;case"sidecar":return`sidecar: ${Oo(e.text)}`;case"tool_group":return MU(e);default:return e}}o(_U,"serializeOne");function AU(e){let t=[];for(let n of e){let r=_U(n);r!==null&&r!==""&&t.push(r)}return t.join(`
|
|
125
|
+
|
|
126
|
+
`)}o(AU,"serializeTranscriptForScrollback");function TA(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:i}=e,s=AU(t);r(),s.length>0&&n(`${s}
|
|
127
|
+
`),i()}o(TA,"dumpTranscriptToNativeScrollback");var Xc={committed:[],width:0,hasBanner:!1};function CA(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(CA,"planInlineScrollback");import{jsx as XA}from"react/jsx-runtime";import vG from"yoga-layout";import{LegacyRoot as bG}from"react-reconciler/constants.js";import iG from"react-reconciler";import{DefaultEventPriority as oG,NoEventPriority as FA}from"react-reconciler/constants.js";import*as $o from"scheduler";import $A from"yoga-layout";import{createContext as sG}from"react";import KU from"yoga-layout";import LU from"widest-line";var IA=new Map,PU=o(e=>{if(e.length===0)return{width:0,height:0};let t=IA.get(e);if(t)return t;let n=LU(e),r=e.split(`
|
|
128
|
+
`).length,i={width:n,height:r};return IA.set(e,i),i},"measureText"),lx=PU;import OU from"wrap-ansi";import $U from"cli-truncate";var vA={},NU=o((e,t,n)=>{let r=e+String(t)+String(n),i=vA[r];if(i)return i;let s=e;if(n==="wrap"&&(s=OU(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=$U(e,t,{position:a})}return vA[r]=s,s},"wrapText"),Uh=NU;var DU=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),BU=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),FU=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),kA=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),HU=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),EA=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),bA=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!DU(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!BU(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!FU(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),RA=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"),WU=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!kA(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!HU(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),jU=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"),UU=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"),ux=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(EA(t))return!0;return!1},"hasAnsiControlCharacters"),Yc=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"),MA=o(e=>{if(!ux(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 Yc(t,e,n,r);if(a==="["){let u=bA(e,r+2);if(u===void 0)return Yc(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=jU(a);if(c!==void 0){let u=RA(e,r+2,c.allowBellTerminator);if(u===void 0)return Yc(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=WU(e,r+1);if(l===void 0){if(kA(a))return Yc(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=bA(e,r+1);if(a===void 0)return Yc(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=UU(i);if(s!==void 0){let a=RA(e,r+1,s.allowBellTerminator);if(a===void 0)return Yc(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(EA(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 GU=/^[\d:;]*$/,VU=o(e=>{if(!ux(e))return e;let t="";for(let n of MA(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&GU.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),_A=VU;var AA=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=AA(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return _A(t)},"squashTextNodes"),wd=AA;var Gh=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:KU.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(zU.bind(null,t)),t},"createNode"),Vh=o((e,t)=>{t.parentNode&&Sd(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")&&Kh(e)},"appendChildNode"),dx=o((e,t,n)=>{t.parentNode&&Sd(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")&&Kh(e)},"insertBeforeNode"),Sd=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")&&Kh(e)},"removeChildNode"),fx=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),px=o((e,t)=>{e.style=t},"setStyle"),LA=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return xd(t,e),t},"createTextNode"),zU=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:wd(e),r=lx(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=Uh(n,t,i);return lx(s)},"measureTextNode"),PA=o(e=>{if(e?.parentNode)return e.yogaNode??PA(e.parentNode)},"findClosestYogaNode"),Kh=o(e=>{PA(e)?.markDirty()},"markNodeAsDirty"),xd=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Kh(e)},"setTextNodeValue");import Pe from"yoga-layout";var XU=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?Pe.POSITION_TYPE_ABSOLUTE:Pe.POSITION_TYPE_RELATIVE)},"applyPositionStyles"),YU=o((e,t)=>{"margin"in t&&e.setMargin(Pe.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(Pe.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(Pe.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(Pe.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(Pe.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(Pe.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(Pe.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),qU=o((e,t)=>{"padding"in t&&e.setPadding(Pe.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(Pe.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(Pe.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(Pe.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(Pe.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(Pe.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(Pe.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),JU=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(Pe.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(Pe.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(Pe.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(Pe.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(Pe.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(Pe.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(Pe.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(Pe.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(Pe.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(Pe.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(Pe.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(Pe.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(Pe.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(Pe.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(Pe.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(Pe.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(Pe.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(Pe.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(Pe.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(Pe.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(Pe.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),QU=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"),ZU=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Pe.DISPLAY_FLEX:Pe.DISPLAY_NONE)},"applyDisplayStyles"),eG=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(Pe.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(Pe.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(Pe.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(Pe.EDGE_RIGHT,n)}},"applyBorderStyles"),tG=o((e,t)=>{"gap"in t&&e.setGap(Pe.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(Pe.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(Pe.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),nG=o((e,t={})=>{XU(e,t),YU(e,t),qU(e,t),JU(e,t),QU(e,t),ZU(e,t),eG(e,t),tG(e,t)},"styles"),mx=nG;import rG from"node:process";var OA=o(()=>rG.env.DEV==="true","isDev");if(OA())try{await import("./devtools-XR5F2C6T.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
129
|
+
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
130
|
+
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
131
|
+
|
|
132
|
+
To install use this command:
|
|
133
|
+
|
|
134
|
+
$ npm install --save-dev react-devtools-core
|
|
135
|
+
`.trim()+`
|
|
136
|
+
`);else throw e}var NA=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"),DA=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),zh=FA,hx,BA={name:void 0,version:void 0},qc=iG({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=Gh(i);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){px(s,c),s.yogaNode&&mx(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){hx=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}fx(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 LA(e)},resetTextContent(){},hideTextInstance(e){xd(e,"")},unhideTextInstance(e,t){xd(e,t)},getPublicInstance:o(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay($A.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay($A.DISPLAY_FLEX)},appendInitialChild:Vh,appendChild:Vh,insertBefore:dx,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:$o.unstable_scheduleCallback,cancelCallback:$o.unstable_cancelCallback,shouldYield:$o.unstable_shouldYield,now:$o.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:o(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:o(()=>null,"getInstanceFromScope"),appendChildToContainer:Vh,insertInContainerBefore:dx,removeChildFromContainer(e,t){Sd(e,t),DA(t.yogaNode)},commitUpdate(e,t,n,r){hx&&e.internal_static&&(hx.isStaticDirty=!0);let i=NA(n,r),s=NA(n.style,r.style);if(!(!i&&!s)){if(i)for(let[a,c]of Object.entries(i)){if(a==="style"){px(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}fx(e,a,c)}s&&e.yogaNode&&mx(e.yogaNode,s)}},commitTextUpdate(e,t,n){xd(e,n)},removeChild(e,t){Sd(e,t),DA(t.yogaNode)},setCurrentUpdatePriority(e){zh=e},getCurrentUpdatePriority:o(()=>zh,"getCurrentUpdatePriority"),resolveUpdatePriority(){return zh!==FA?zh:oG},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:sG(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:BA.name,rendererVersion:BA.version});import hG from"widest-line";import gG from"indent-string";import No from"yoga-layout";import Xh from"yoga-layout";var aG=o(e=>e.getComputedWidth()-e.getComputedPadding(Xh.EDGE_LEFT)-e.getComputedPadding(Xh.EDGE_RIGHT)-e.getComputedBorder(Xh.EDGE_LEFT)-e.getComputedBorder(Xh.EDGE_RIGHT),"getMaxWidth"),HA=aG;import fG from"cli-boxes";import Yh from"chalk";import Ui from"chalk";var cG=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,lG=/^ansi256\(\s?(\d+)\s?\)$/,uG=o(e=>e in Ui,"isNamedColor"),dG=o((e,t,n)=>{if(!t)return e;if(uG(t)){if(n==="foreground")return Ui[t](e);let r=`bg${t[0].toUpperCase()+t.slice(1)}`;return Ui[r](e)}if(t.startsWith("#"))return n==="foreground"?Ui.hex(t)(e):Ui.bgHex(t)(e);if(t.startsWith("ansi256")){let r=lG.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?Ui.ansi256(i)(e):Ui.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=cG.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?Ui.rgb(i,s,a)(e):Ui.bgRgb(i,s,a)(e)}return e},"colorize"),Ds=dG;var pG=o((e,t,n,r)=>{if(n.style.borderStyle){let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?fG[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,h=n.style.borderBottomDimColor??n.style.borderDimColor,m=n.style.borderLeftDimColor??n.style.borderDimColor,g=n.style.borderRightDimColor??n.style.borderDimColor,T=n.style.borderTop!==!1,x=n.style.borderBottom!==!1,C=n.style.borderLeft!==!1,b=n.style.borderRight!==!1,A=i-(C?1:0)-(b?1:0),N=T?Ds((C?a.topLeft:"")+a.top.repeat(A)+(b?a.topRight:""),c,"foreground"):void 0;T&&p&&(N=Yh.dim(N));let R=s;T&&(R-=1),x&&(R-=1);let E=(Ds(a.left,u,"foreground")+`
|
|
137
|
+
`).repeat(R);m&&(E=Yh.dim(E));let P=(Ds(a.right,f,"foreground")+`
|
|
138
|
+
`).repeat(R);g&&(P=Yh.dim(P));let B=x?Ds((C?a.bottomLeft:"")+a.bottom.repeat(A)+(b?a.bottomRight:""),l,"foreground"):void 0;x&&h&&(B=Yh.dim(B));let $=T?1:0;N&&r.write(e,t,N,{transformers:[]}),C&&r.write(e,t+$,E,{transformers:[]}),b&&r.write(e+i-1,t+$,P,{transformers:[]}),B&&r.write(e,t+s-1,B,{transformers:[]})}},"renderBorder"),WA=pG;var mG=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 h=Ds(" ".repeat(f),n.style.backgroundColor,"background");for(let m=0;m<p;m++)r.write(e+a,t+l+m,h,{transformers:[]})},"renderBackground"),jA=mG;var yG=o((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),i=n.getComputedTop();t=`
|
|
139
|
+
`.repeat(i)+gG(t,r)}return t},"applyPaddingToText"),qh=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===No.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=wd(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
|
|
140
|
+
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>qh(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"),gx=null,yx=null;function UA(){gx=null,yx=null}o(UA,"resetScrollHint");function GA(){return gx}o(GA,"getScrollHint");function VA(){return yx}o(VA,"getScrollRepaint");var KA=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()===No.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 m=wd(e);if(m.length>0){let g=hG(m),T=HA(c);if(g>T){let x=e.style.textWrap??"wrap";m=Uh(m,T,x)}m=yG(e,m),t.write(l,u,m,{transformers:f})}return}let p=!1,h=0;if(e.nodeName==="ink-box"){jA(l,u,e,t),WA(l,u,e,t);let m=e.style.overflowX??e.style.overflow,g=e.style.overflowY??e.style.overflow,T=m==="hidden"||m==="scroll",x=g==="hidden"||g==="scroll";if(g==="scroll"){let C=c.getComputedBorder(No.EDGE_TOP),b=c.getComputedBorder(No.EDGE_BOTTOM),A=Math.max(0,c.getComputedHeight()-C-b),N=e.attributes?.virtualScrollWindowed===!0,R=e.childNodes[0],E=Math.max(0,Math.floor(N?e.attributes?.scrollHeight??0:R?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),P=typeof e.scrollHeight=="number"?e.scrollHeight:E,B=Dp({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:E,viewportHeight:A,previousScrollHeight:P,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:N,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+C});e.scrollHeight=B.scrollHeight,e.scrollViewportHeight=A,e.scrollViewportTop=B.viewportTop,e.appliedScrollTop=B.appliedScrollTop,B.scrollHint&&(gx=B.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&(yx={top:B.scrollHint.top,bottom:B.scrollHint.bottom})),e.attributes&&e.attributes.pendingScrollDelta&&(e.attributes.pendingScrollDelta=0),e.scrollTop=B.scrollTop,h=B.scrollOffsetY}if(T||x){let C=T?l+c.getComputedBorder(No.EDGE_LEFT):void 0,b=T?l+c.getComputedWidth()-c.getComputedBorder(No.EDGE_RIGHT):void 0,A=x?u+c.getComputedBorder(No.EDGE_TOP):void 0,N=x?u+c.getComputedHeight()-c.getComputedBorder(No.EDGE_BOTTOM):void 0;t.clip({x1:C,x2:b,y1:A,y2:N}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let m of e.childNodes)KA(m,t,{offsetX:l,offsetY:u-h,transformers:f,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),wx=KA;import wG from"slice-ansi";import SG from"string-width";import{styledCharsFromTokens as xG,styledCharsToString as TG,tokenize as CG}from"@alcalzone/ansi-tokenize";var Sx=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=xG(CG(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=SG(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(`
|
|
141
|
+
`))r=Math.max(r,this.getStringWidth(i));n=r,this.blockWidths.set(t,n)}return n}},Jc=class{static{o(this,"Output")}width;height;operations=[];caches=new Sx;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(`
|
|
142
|
+
`),u=n.at(-1);if(u){let p=typeof u?.x1=="number"&&typeof u?.x2=="number",h=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let m=this.caches.getWidestLine(i);if(a+m<u.x1||a>u.x2)continue}if(h){let m=l.length;if(c+m<u.y1||c>u.y2)continue}if(p&&(l=l.map(m=>{let g=a<u.x1?u.x1-a:0,T=this.caches.getStringWidth(m),x=a+T>u.x2?u.x2-a:T;return wG(m,g,x)}),a<u.x1&&(a=u.x1)),h){let m=c<u.y1?u.y1-c:0,g=l.length,T=c+g>u.y2?u.y2-c:g;l=l.slice(m,T),c<u.y1&&(c=u.y1)}}let f=0;for(let[p,h]of l.entries()){let m=t[c+f];if(!m)continue;for(let x of s)h=x(h,p);let g=this.caches.getStyledChars(h),T=a;for(let x of g){m[T]=x;let C=Math.max(1,this.caches.getStringWidth(x.value));if(C>1)for(let b=1;b<C;b++)m[T+b]={type:"char",value:"",fullWidth:!1,styles:x.styles};T+=C}f++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let i=r.filter(s=>s!==void 0);return TG(i).trimEnd()}).join(`
|
|
143
|
+
`),height:t.length}}};var IG=o((e,t,n)=>{if(e.yogaNode){if(t){let p=qh(e,{skipStaticElements:!0}),h=p===""?0:p.split(`
|
|
144
|
+
`).length,m="";return e.staticNode&&(m=qh(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:h,staticOutput:m?`${m}
|
|
145
|
+
`:"",frame:void 0}}let r=new Jc({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});UA(),wx(e,r,{skipStaticElements:!0});let i;e.staticNode?.yogaNode&&(i=new Jc({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),wx(e.staticNode,i,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Hp(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:GA(),scrollRepaint:VA()};return{output:s,outputHeight:a,staticOutput:i?`${i.get().output}
|
|
146
|
+
`:"",frame:f}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),xx=IG;var RG=o((e,t)=>{let n=t?.columns??80,r=Gh("ink-root"),i="";r.onComputeLayout=()=>{r.yogaNode.setWidth(n),r.yogaNode.calculateLayout(void 0,void 0,vG.DIRECTION_LTR)},r.onImmediateRender=()=>{let{staticOutput:l}=xx(r,!1);l&&l!==`
|
|
147
|
+
`&&(i+=l)};let s,a=qc.createContainer(r,bG,null,!1,null,"render-to-string",l=>{s??=l},()=>{},()=>{},()=>{}),c=!1;try{qc.updateContainerSync(e,a,null,()=>{}),qc.flushSyncWork();let{output:l}=xx(r,!1);if(qc.updateContainerSync(null,a,null,()=>{}),qc.flushSyncWork(),c=!0,r.yogaNode.free(),s!==void 0)throw s instanceof Error?s:new Error(String(s));let u=i.endsWith(`
|
|
148
|
+
`)?i.slice(0,-1):i;return u&&l?u+`
|
|
149
|
+
`+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),zA=RG;var kG="\x1B[0m";function YA(e,t){if(e.length===0)return"";let n=XA(M,{flexDirection:"column",children:e.map(s=>XA(Lw,{section:s,theme:t.theme,animateSpinners:!1},s.key))}),r=zA(n,{columns:t.width});return(r.endsWith(`
|
|
150
|
+
`)?r.slice(0,-1):r)+kG+`
|
|
151
|
+
`}o(YA,"renderFinalizedSectionsToScrollbackText");function qA(e){return e.enabled&&!e.useRendererViewportShell&&!e.isTranscriptMode&&e.hasCommitHandle}o(qA,"isInlineLedgerActive");function JA(e){if(!e.active)return{kind:"reset"};if(!e.hasCommitHandle)return{kind:"skip"};let t=!e.wasActive,n=t?Xc:e.prior,{plan:r,nextState:i}=CA({bannerSection:e.bannerSection??null,finalizedSections:e.finalizedSections,width:e.width},e.identify??zR,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(JA,"computeInlineLedgerStep");function QA(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:Xc,wasActive:!1,owns:!0}:{state:Xc,wasActive:!1,owns:n}}o(QA,"resolveInlineLedgerState");function ZA(e,t){return t?{...e,staticSections:[]}:e}o(ZA,"gateInlinePromptModel");function EG(e){switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[t.name];return typeof t.output=="string"&&n.push(jt(t.output)),t.error&&n.push(jt(t.error)),n.join(`
|
|
152
|
+
`)}).join(`
|
|
153
|
+
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return jt(e.text);default:return""}}o(EG,"buildSearchText");function MG(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(MG,"buildExcerpt");function eL(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:EG(t)}))}o(eL,"createTranscriptSearchIndex");function tL(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:MG(i,t.trim())}]:[]}):[]}o(tL,"searchTranscriptIndex");function Tx(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(Tx,"stepTranscriptSearchMatch");function nL(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(nL,"buildTranscriptSearchSummary");function rL(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(rL,"resolveTranscriptSearchMatchIndex");function iL(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:_G(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(iL,"buildTranscriptSelectionSummary");function _G(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}o(_G,"summarizeToolGroup");function oL(e){return e.map(t=>t.id)}o(oL,"getSelectableTranscriptItemIds");function sL(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(sL,"moveTranscriptSelection");function Cx(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: ${jt(t.output)}`),t.error&&n.push(`Error: ${jt(t.error)}`),n.join(`
|
|
154
|
+
`)}).join(`
|
|
155
|
+
|
|
156
|
+
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return jt(e.text);default:return}}o(Cx,"buildTranscriptCopyText");function aL(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(`
|
|
157
|
+
`)}).filter(n=>!!n);return t.length>0?t.join(`
|
|
158
|
+
|
|
159
|
+
`):void 0}o(aL,"buildTranscriptToolInputCopyText");import{useCallback as Td,useRef as AG,useState as cL}from"react";function lL(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:i,isTranscriptMode:s,historySearchQuery:a}=e,c=lA(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(lL,"buildTranscriptChromeModel");function uL(e){return Math.max(1,e-2)}o(uL,"resolveTranscriptPageSize");function dL(e){return Math.max(3,Math.floor(e/4))}o(dL,"resolveTranscriptWheelStep");function LG(e,t){return Math.max(0,e+t)}o(LG,"incrementTranscriptScrollOffset");function fL(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}o(fL,"clampTranscriptScrollOffset");function pL(){let e=AG(null),[t,n]=cL(0),[r,i]=cL(!0),s=Td(f=>{n(Math.max(0,f))},[]),a=Td(f=>{i(f)},[]),c=Td(f=>{if(e.current){e.current.scrollTo(f);return}n(Math.max(0,f)),i(f===0)},[]),l=Td(f=>{if(e.current){e.current.scrollBy(f);return}n(p=>LG(p,f)),i(!1)},[]),u=Td(()=>{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(pL,"useTranscriptViewportScrollController");function mL(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??gc(t,r,i,u,l)).find(g=>g.key===a);if(!p||p.rows.length===0)return!1;let h=new Set(c.map(g=>g.key)),m=Math.max(0,s??0);return m>0&&p.rows.length<=m?p.rows.every(g=>h.has(g.key)):h.has(p.rows[0]?.key??"")}o(mL,"isTranscriptItemVisible");function hL(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:i,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,u=n?.sections??gc(t,r,i,l,c);return tk(u,a,s)}o(hL,"resolveTranscriptSelectionOffset");function gL(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??gc(t,i,s,u,l),h=n?.rows??Cs(p),g=Mw(h,a,c)[0]?.key,T=g?p.find(x=>x.rows.some(C=>C.key===g)):void 0;if(T?.key)return T.key}return t[t.length-1]?.id}o(gL,"resolveTranscriptSearchAnchorItemId");function yL(e){let t=bu(e.stickyHeader),n=em(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}o(yL,"resolveTranscriptOwnedWindowGeometry");function PG(e){return e.text===" "?"":jt(e.text)}o(PG,"normalizeTranscriptRowText");function Ix(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}o(Ix,"buildTranscriptRowIndexByKey");function OG(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}o(OG,"resolveTranscriptTextStartColumn");function wL(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??Ix(t.allRows??e),i=e.map((s,a)=>{let c=PG(s),l=OG(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+ok(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(wL,"buildTranscriptScreenBuffer");function $G(e,t){let n=Math.max(1,Math.floor(t));return sk(e.text,n-e.textStartColumn)}o($G,"clampTextColumn");function vx(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:$G(e,t)}}}o(vx,"toHit");function bx(e,t,n){let r=e.rows.find(i=>i.screenRow===t);return r?vx(r,n):void 0}o(bx,"hitTestTranscriptScreen");function Rx(e,t,n){if(e.rows.length!==0)return t<=e.topRow?vx(e.rows[0],n):t>=e.bottomRow?vx(e.rows[e.rows.length-1],n):bx(e,t,n)}o(Rx,"clampTranscriptScreenHit");function SL(e){return e.text===" "?"":jt(e.text)}o(SL,"normalizeTranscriptRowText");function xL(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}o(xL,"comparePoints");function TL(e,t,n,r={}){if(e.length===0)return;let[i,s]=xL(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=xL(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(SL(u))}:s,h=new Map,m=[],g=0;for(let T=f.modelRowIndex;T<=p.modelRowIndex;T+=1){let x=e[T];if(!x)continue;let C=SL(x),b=To(C),A=T===f.modelRowIndex?f.column:0,N=T===p.modelRowIndex?p.column:b,R=Math.max(0,Math.min(A,b)),E=Math.max(R,Math.min(N,b)),P=yc(C,R,E);E>R&&(h.set(x.key,{start:R,end:E}),g+=E-R),m.push(P)}if(h.size!==0)return{anchor:t,focus:n,rowRanges:h,rowCount:m.length,charCount:g,text:m.join(`
|
|
160
|
+
`)}}o(TL,"buildTranscriptScreenSelection");function CL(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(CL,"buildTranscriptScreenSelectionSummary");function IL(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}o(IL,"resolveTranscriptDragEdgeScrollDirection");var NG="Other...";function Jh(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}o(Jh,"toSelectOptions");function kx(e,t){return t.kind==="input"||t.allowCustomInput===!1||e.some(n=>n.value===Vr)?e:[...e,{label:t.customInputLabel??NG,value:Vr}]}o(kx,"appendCustomInputOption");function Ex(e){return e.question}o(Ex,"getAskUserDialogTitle");function vL(e){return!!e.activity}o(vL,"shouldRenderPromptActivityInFooter");function DG(e){switch(e){case"confirm":return re("waiting.confirm");case"select":return re("waiting.select");case"input":return re("waiting.input")}}o(DG,"formatPromptWaitingText");function bL(e){return e.waitingReason==="confirm"?re("placeholder.confirm"):e.waitingReason==="select"?re("placeholder.select"):e.waitingReason==="input"?re("placeholder.input"):e.isLoading?e.canQueueFollowUps?re("placeholder.queue"):re("placeholder.busy"):re("placeholder.idle")}o(bL,"buildPromptPlaceholderText");function RL(e){return e.isTranscriptMode?void 0:e.waitingReason?{kind:"waiting",text:DG(e.waitingReason),showSpinner:!1}:e.workflowBuilderMessage?{kind:"busy",text:e.workflowBuilderMessage,showSpinner:!0}:e.backgroundWorkflowMessage?{kind:"busy",text:e.backgroundWorkflowMessage,showSpinner:!0}:e.isLoading?{kind:"busy",text:Pw({activeToolCount:e.streamingState.activeToolCalls.filter(n=>n.status===K.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})??"Thinking",showSpinner:!0}:void 0}o(RL,"buildPromptActivityViewModel");function kL(e,t,n){if(!e)return;let r=e.userOverrideContextWindow??e.contextWindow,i=e.reservedResponseTokens;try{let s=n(t.provider);e.userOverrideContextWindow===void 0&&(r=s?.getEffectiveContextWindow?.(t.model)??r),i=s?.getEffectiveMaxOutputTokens?.(t.model)??i}catch{}return r===e.contextWindow&&i===e.reservedResponseTokens?e:{...e,contextWindow:r,reservedResponseTokens:i}}o(kL,"resolveEffectiveCompactionInfo");function Bs(e,t,n){return e==="auto"||e==="auto-in-project"?t??n:void 0}o(Bs,"resolveSurfaceAutoModeEngine");function EL(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===K.Executing).length,thinking:e.thinking,reasoningMode:e.reasoningMode,effort:e.effort,reasoningEffortLabel:e.reasoningEffortLabel,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,learning:e.learning,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(EL,"buildSurfaceStatusBarProps");function ML(e){let t=ax(e.state),n=t?jh(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&&cA(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}o(ML,"buildTranscriptSelectionRuntimeState");function _L(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(_L,"buildTranscriptSelectionViewModel");function AL(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}o(AL,"buildTranscriptSearchViewModel");function BG(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}o(BG,"clampTranscriptSearchSelectedIndex");function FG(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(FG,"buildTranscriptSearchDetailText");function LL(e){let t=BG(e.matches.length,e.selectedIndex),n=nL(e.matches,t),r=FG({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:AL({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}o(LL,"buildTranscriptSearchChrome");function HG(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}o(HG,"buildDefaultTranscriptSecondaryText");function PL(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(PL,"buildFooterNotifications");function OL(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(OL,"buildBaseFooterNotices");function $L(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}o($L,"buildStashNoticeText");function NL(e){return[...e]}o(NL,"buildPromptFooterNotices");function WG(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?HG(e.showAllActive):n.join(" | ")}o(WG,"buildTranscriptFooterSecondaryText");function jG(e){let t=[];return e&&t.push(e),t}o(jG,"buildTranscriptFooterBudgetNotices");function DL(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,i=CL(e.textSelection),s=e.textSelection?wc({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?wc({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=WG({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:i,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:i,actionSummary:s,secondaryText:a,budgetNotices:jG(a)}}o(DL,"buildTranscriptFooterViewModel");import{jsx as hre,jsxs as gre}from"react/jsx-runtime";function BL(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(BL,"formatAmaWorkStripText");function FL(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}o(FL,"stripLiveActivityPrefix");function HL(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?FL(ym(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?FL(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(HL,"buildBackgroundTaskViewModel");function WL(e,t){if(!(!t||!e||e.agentMode!=="ama"))return BL(e.childFanoutClass,e.childFanoutCount)}o(WL,"buildAmaWorkStripFromStatus");function Mx(e){let t=WL(e.status,e.isLoading);return{workStripText:t,backgroundTask:HL({isLoading:e.isLoading,showPrimary:!!(e.parallelTextOverride??t),activeWorkerTitle:e.status?.activeWorkerTitle,activePhase:e.status?.phase??(e.agentMode==="ama"?"AMA active":void 0),parallelText:e.parallelTextOverride??t,currentTool:e.currentTool,toolInputCharCount:e.toolInputCharCount,toolInputContent:e.toolInputContent,liveActivityLabel:e.liveActivityLabel,isThinkingActive:e.isThinkingActive})}}o(Mx,"buildAmaSummaryViewModel");function _x(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}o(_x,"captureTranscriptSnapshot");function jL(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(jL,"countPendingTranscriptUpdates");function UL(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}o(UL,"resolveTranscriptSurfaceItems");function GL(e){let t=[];for(let n of e)switch(n.type){case"user":case"system":case"error":case"tool_group":case"event":case"info":case"sidecar":t.push({...n});break;case"assistant":case"thinking":{let{compactText:r,...i}=n;t.push(i);break}default:break}return t}o(GL,"buildPromptSurfaceItems");function VL(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}o(VL,"resolveFullscreenShellMode");function UG(e,t){return e.enabled&&VL(e,t)==="virtual"}o(UG,"shouldUseRendererViewportShell");function KL(e,t){let n=VL(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(KL,"resolveTranscriptInteractionPolicy");function zL(e,t,n){return UG(e,t)?t==="transcript"||n:!1}o(zL,"shouldOwnTranscriptViewport");var GG=500,VG=1,KG=/[\p{L}\p{N}_/.\-+~\\]/u;function zG(e){return e.text===" "?"":e.text}o(zG,"normalizeTranscriptRowText");function XL(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}o(XL,"comparePoints");function Ax(e){return e===""||/\s/.test(e)?0:KG.test(e)?1:2}o(Ax,"charClass");function YL(e){let t=e.timeoutMs??GG,n=e.distance??VG,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(YL,"resolveTranscriptMultiClickState");function Qh(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let i=zG(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=Ax(vm(i,a)),l=a,u=a+1;for(;l>0&&Ax(vm(i,l-1))===c;)l-=1;for(;u<s&&Ax(vm(i,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}o(Qh,"resolveTranscriptSelectionSpanAt");function Lx(e,t){return XL(t.end,e.start)<0?{anchor:e.end,focus:t.start}:XL(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}o(Lx,"extendTranscriptSelectionSpan");function Qc(e){return{messages:e.messages,title:e.title,gitRoot:e.gitRoot??"",...e.runtimeInfo!==void 0?{runtimeInfo:e.runtimeInfo}:{},...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}:{},...e.extensionState!==void 0?{extensionState:e.extensionState}:{},...e.extensionRecords!==void 0?{extensionRecords:e.extensionRecords}:{}}}o(Qc,"buildHostSessionPayload");var JG=500;function Fs(e){mt({source:"repl:session-persistence",level:"error",message:"Failed to persist interactive Session state in the background.",detail:e})}o(Fs,"reportBackgroundSessionPersistenceError");function QG(e){let t=[{label:"Acknowledge notification",value:"acknowledge"}];return e.lifecycle==="ready"?t.push({label:"Review",value:"review"},{label:"Review & Trust",value:"trust"},{label:"Snooze for 24 hours",value:"snooze"},{label:"Reject",value:"reject"}):e.lifecycle==="active_learned"?t.push({label:"Disable",value:"disable"},{label:"Promote to user catalog",value:"promote"}):e.lifecycle==="quarantined"&&t.push({label:"Rollback",value:"rollback"},{label:"Disable",value:"disable"}),t}o(QG,"learningCenterActions");function ZG(e){let t=new Map;for(let n of e)t.set(n.slug,(t.get(n.slug)??0)+1);return e.map(n=>{let r=(t.get(n.slug)??0)>1?` \xB7 ${n.capabilityId}`:"";return{label:`${n.displayName} \xB7 ${n.carrier} \xB7 ${n.lifecycle}${r}`,value:n.capabilityId}})}o(ZG,"buildLearningCenterOptions");async function eV(e,t,n){n==="acknowledge"?await e.acknowledge(t):n==="snooze"?await e.snooze(t,new Date(Date.now()+1440*6e4).toISOString()):n==="reject"?await e.reject(t):n==="disable"?await e.disable(t):n==="rollback"?await e.rollback(t):n==="promote"?await e.promote(t,"user"):n==="review"?await e.review(t):n==="trust"&&await e.trust(t)}o(eV,"applyLearningCenterAction");function tV(e){return typeof e.appendSessionDelta=="function"}o(tV,"hasAppendSessionDelta");function JL(e,t){let n=t.runtimeSessionSnapshot;n&&("extensionState"in n&&(e.extensionState=n.extensionState?structuredClone(n.extensionState):{},e.extensionStateDirty=!0),"extensionRecords"in n&&(e.extensionRecords=n.extensionRecords?.map(r=>({...r}))??[],e.extensionRecordsDirty=!0))}o(JL,"applyRuntimeSessionSnapshot");function QL(e){let t=e;return typeof t.prepareSessionAppend=="function"&&typeof t.appendPreparedSessionTail=="function"&&typeof t.appendSessionDelta=="function"}o(QL,"hasPreparedSessionAppend");function nV(e,t,n){if(n||e.lineage===void 0||e.lineage.entries.length<t.lineageCount||e.artifactLedger!==void 0&&e.artifactLedger.length<t.artifactCount||e.artifactLedger===void 0&&t.artifactCount>0||e.extensionRecords!==void 0&&t.extensionCount>0||e.tag!==t.tag||e.extensionState!==void 0||e.actorSnapshot!==void 0||Object.prototype.hasOwnProperty.call(e,"errorMetadata"))return;let r=e.lineage.entries.slice(t.lineageCount),i=t.activeEntryId;for(let s of r){if(s.type!=="message"||s.parentId!==i)return;i=s.id}if(e.lineage.activeEntryId===i)return{baseline:t,title:e.title,activeEntryId:e.lineage.activeEntryId,lineageEntries:r,artifactEntries:e.artifactLedger?.slice(t.artifactCount),extensionRecords:e.extensionRecords?.slice(t.extensionCount),...e.uiHistory!==void 0?{uiHistory:e.uiHistory}:{},...e.scope!==void 0?{scope:e.scope}:{}}}o(nV,"createPreparedSessionTail");async function rV(e,t,n,r){let i=QL(e)?await e.prepareSessionAppend(t):null,s=i===null?void 0:nV(n,i,r);if(QL(e)&&s!==void 0)try{await e.appendPreparedSessionTail(t,s);return}catch(a){if(!(a instanceof Te)||a.code!=="data_changed")throw a;await e.appendSessionDelta(t,n);return}if(tV(e)){await e.appendSessionDelta(t,n);return}await e.save(t,n)}o(rV,"persistHostSessionPayload");var iV=12,ZL="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 Px(e,t){if(Er(e))return[t.getGuardrail()]}o(Px,"buildAutoModeGuardrails");function oV(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}o(oV,"resolveInitialReasoningMode");function Ox(e){return jt(e.map(t=>typeof t=="string"?t:String(t)).join(" "))}o(Ox,"formatCapturedConsoleOutput");function $x(e){let t=e.map(jt).join(`
|
|
161
|
+
`).trimEnd();return t.trim().length>0?t:void 0}o($x,"joinCapturedConsoleOutput");function sV(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(sV,"buildManagedTranscriptCompactText");function eP(e){let t=sV(e);return{type:"event",icon:KS(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}o(eP,"toManagedTranscriptEventItem");function Do(e){switch(e.type){case"assistant":return{type:"assistant",text:e.text,timestamp:e.timestamp,...e.compactText?{compactText:e.compactText}:{}};case"thinking":return{type:"thinking",text:e.text,timestamp:e.timestamp,...e.compactText?{compactText:e.compactText}:{}};case"event":return{type:"event",text:e.text,timestamp:e.timestamp,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"info":return{type:"info",text:e.text,timestamp:e.timestamp,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"error":return{type:"error",text:e.text,timestamp:e.timestamp};case"system":return{type:"system",text:e.text,timestamp:e.timestamp};case"hint":return{type:"hint",text:e.text,timestamp:e.timestamp};case"sidecar":return{type:"sidecar",text:e.text,timestamp:e.timestamp,...e.verdict?{verdict:e.verdict}:{},...e.delivery?{delivery:e.delivery}:{}};case"tool_group":return{type:"tool_group",tools:e.tools,timestamp:e.timestamp};case"user":return{type:"user",text:e.text,timestamp:e.timestamp};default:return e}}o(Do,"toCreatableHistoryItem");function Dx(e){return Bv(e)?"":Ga(e).trim()}o(Dx,"sanitizeInterruptedAssistantText");function aV(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}o(aV,"escapeRegExpLiteral");function cV(e,t){let n=t?.trim();return n?e.replace(new RegExp(`^\\[${aV(n)}\\]\\s*`),""):e}o(cV,"stripManagedWorkerPrefix");function tP(e,t){let n=Ga(e);return cV(n,t).trim().length>0}o(tP,"hasSubstantiveManagedAssistantText");function lV(e,t){return e?t||e.trim().length>0:!1}o(lV,"shouldAppendManagedAssistantTextDelta");function uV(e,t,n){if(n==="append")return[...e];let r=new Set(t.filter(i=>i!==void 0));return r.size===0?[...e]:e.filter(i=>!r.has(i.id))}o(uV,"discardReplacedOutputSegmentItems");function dV(e,t,n){let r=_f(e,{type:"segment.started",...t}).state;return r!==e&&n(r),r}o(dV,"applyDistinctOutputSegmentStart");function fV(e){e.stopThinking(),e.clearToolInputContent(),e.clearCurrentTool(),e.resetLiveToolCalls(),e.clearLiveActivityLabel()}o(fV,"applyProviderRecoveryTransientReset");function nP(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}o(nP,"isForegroundManagedStreamingStatus");function pV(e,t,n){let r=[],i=n?.infoItems??[],s=Bx({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=Dx(t);return a&&r.push({type:"assistant",text:`${a}
|
|
162
|
+
|
|
163
|
+
[Interrupted]`}),r}o(pV,"buildInterruptedPersistenceItems");function Bx({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(Bx,"buildRoundHistoryItems");var mV=20,hV="Session ended before the tool completed.";function gV(e){switch(e.status){case K.Success:return{status:"success"};case K.Error:return{status:"error"};case K.Cancelled:return{status:"cancelled"};case K.AwaitingApproval:case K.Scheduled:case K.Validating:case K.Executing:return{status:"cancelled",error:hV};default:return e.status}}o(gV,"toPersistedToolStatus");function yV(e){if(!e.id||!e.name)return;let t=gV(e),n=t.status==="success"?hy(e.output):void 0,r=t.status==="error"||t.status==="cancelled"?my(e.error??hy(e.output)??t.error??""):void 0,i=$v(e.input);return{id:e.id,name:e.name,status:t.status,...i?{input:i}:{},...typeof e.preview=="string"&&e.preview.trim().length>0?{preview:my(e.preview.trim(),500)}:{},...n&&n.trim().length>0?{output:n}:{},...r&&r.trim().length>0?{error:r}:{},...typeof e.startTime=="number"?{startTime:e.startTime}:{},...typeof e.endTime=="number"?{endTime:e.endTime}:{}}}o(yV,"toPersistedToolCall");function wV(e){let t=e.tools.slice(0,mV).map(yV).filter(r=>!!r),n=Fx(e);return t.length>0?{type:"tool_group",tools:t,...n===void 0?{}:{timestamp:n}}:void 0}o(wV,"toPersistedToolGroup");function Fx(e){return e.timestamp!==void 0&&Number.isFinite(e.timestamp)&&e.timestamp>=0?e.timestamp:void 0}o(Fx,"persistedHistoryTimestamp");function aP(e){if(e.type==="tool_group")return wV(e);let t="text"in e&&typeof e.text=="string"?e.text.trimEnd():"";if(!t)return;if(e.type==="sidecar"){let s=e.delivery==="budget-exhausted"?"budget-exhausted":e.verdict??"revise",a=Fx(e);return{type:"sidecar",text:t,icon:s,...a===void 0?{}:{timestamp:a}}}let n="icon"in e&&typeof e.icon=="string"&&e.icon.length>0?e.icon:void 0,r="compactText"in e&&typeof e.compactText=="string"&&e.compactText.length>0?e.compactText.trimEnd():void 0,i=Fx(e);return{type:e.type,text:t,...i===void 0?{}:{timestamp:i},...n?{icon:n}:{},...r?{compactText:r}:{}}}o(aP,"toPersistedUiHistoryItem");var rP=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1",SV=process.env.KODAX_SCROLL_OVERSCAN==="1"?80:void 0;function iP(e){return ii(e.map(t=>aP(t)).filter(t=>!!t))}o(iP,"serializeUiHistorySnapshot");function xV(e){return e.map(t=>aP(t)).filter(t=>!!t)}o(xV,"serializeCreatableHistoryItems");function Zh(e,t){return t.length===0?ii(e):ii([...e,...xV(t)])}o(Zh,"appendPersistedUiHistorySnapshot");function Cd(e,t,n){console.log((e==="block"?St.red:St.yellow)(t)),n.forEach(r=>console.log(St.dim(r)))}o(Cd,"logSessionTransitionGuard");var Nx=o(({config:e,sessionId:t,workingDir:n,compactionInfo:r})=>{let i=ue("dark"),s=e.model??zr(e.provider)??e.provider,a=oo({provider:e.provider,model:e.model,effort:e.effort,effortOverride:e.effortOverride,thinking:e.thinking,reasoningMode:e.reasoningMode}),c=r?Math.round(r.contextWindow/1e3):0,l=r?Bu(r.contextWindow,r.triggerPercent,r.triggerTokens):void 0;return Nn(M,{flexDirection:"column",marginBottom:1,children:[zS.map((u,f)=>me(k,{color:i.colors.primary,children:u},f)),Nn(M,{children:[me(k,{color:i.colors.primary,children:" \u258E "}),me(k,{color:i.colors.primary,children:"AI Coding Agent \xB7 Minimalist & Intelligent"})]}),Nn(M,{children:[me(k,{color:i.colors.success,children:" \u258E "}),Nn(k,{bold:!0,color:i.colors.text,children:["v",ts]}),me(k,{dimColor:!0,children:" \xB7 "}),Nn(k,{color:i.colors.success,children:[e.provider,"/",s]}),me(k,{dimColor:!0,children:` \xB7 effort:${a}`}),me(k,{dimColor:!0,children:" \xB7 "}),me(k,{color:i.colors.primary,children:e.agentMode.toUpperCase()}),me(k,{dimColor:!0,children:" / "}),me(k,{color:i.colors.accent,children:e.permissionMode})]}),r&&Nn(M,{children:[me(k,{color:i.colors.accent,children:" \u258E "}),me(k,{color:i.colors.text,children:`ctx ${c}k \xB7 compaction `}),me(k,{color:r.enabled?i.colors.success:i.colors.text,children:r.enabled?"on":"off"}),me(k,{color:i.colors.text,children:` \xB7 ${l}`})]}),Nn(M,{children:[me(k,{color:i.colors.secondary,children:" \u258E "}),me(k,{color:i.colors.text,children:"session "}),me(k,{color:i.colors.primary,children:t}),me(k,{color:i.colors.text,children:" \xB7 "}),me(k,{color:i.colors.text,children:n})]})]})},"Banner");function TV(e){let t=e.config.model??zr(e.config.provider)??e.config.provider,n=oo({provider:e.config.provider,model:e.config.model,effort:e.config.effort,effortOverride:e.config.effortOverride,thinking:e.config.thinking,reasoningMode:e.config.reasoningMode}),r=e.compactionInfo?Math.round(e.compactionInfo.contextWindow/1e3):0,i=e.compactionInfo?Bu(e.compactionInfo.contextWindow,e.compactionInfo.triggerPercent,e.compactionInfo.triggerTokens):void 0,s=" \u258E AI Coding Agent \xB7 Minimalist & Intelligent",a=` \u258E v${ts} \xB7 ${e.config.provider}/${t} \xB7 effort:${n} \xB7 ${e.config.agentMode.toUpperCase()} / ${e.config.permissionMode}`,c=e.compactionInfo?` \u258E ctx ${r}k \xB7 compaction ${e.compactionInfo.enabled?"on":"off"} \xB7 ${i}`:void 0,l=` \u258E session ${e.sessionId} \xB7 ${e.workingDir}`,u=[],f=o(h=>{let m=vn(h.length>0?h.split(`
|
|
164
|
+
`):[""],Math.max(1,e.terminalWidth),0,0);return m.visualLines.length>0?m.visualLines:[""]},"wrapBannerLine"),p=o((h,m,g)=>{f(m).forEach((T,x)=>{u.push({key:`${h}-${x}`,text:T,...g})})},"pushLineRows");return zS.forEach((h,m)=>{p(`banner-logo-${m}`,h,{color:"primary"})}),p("banner-tagline",s,{color:"primary"}),p("banner-version",a,{color:"text",bold:!0}),c&&p("banner-compaction",c,{color:"text"}),p("banner-session",l,{color:"text"}),u.push({key:"banner-blank",text:" "}),{key:"banner",rows:u}}o(TV,"buildBannerTranscriptSection");function oP(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}o(oP,"prependTranscriptSection");var CV=process.env.KODAX_INLINE_LEDGER!=="0";function sP(e,t){process.env.KODAX_INLINE_LEDGER_DEBUG==="1"&&mt({source:"repl:inline-ledger",level:"debug",message:`${e}; rebuilding on next change.`,...t!==void 0?{detail:t}:{}})}o(sP,"reportInlineLedgerFailure");var IV=o(({options:e,config:t,context:n,startupRuntimeInfo:r,storage:i,autoModeSettings:s,rendererMode:a,fullscreenPolicy:c,onExit:l,compactionInfo:u,autoModeBootstrap:f,setAutoModeAskUser:p,setAutoModeEngineChange:h,setCurrentConfigRef:m,teamModeHandle:g})=>{let{exit:T}=ei(),{stdout:x}=Zr(),C=x.rows??24,{stdin:b,setRawMode:A,isRawModeSupported:N}=Tu(),R=lc(),{history:E}=xc(),P=qL.useRef(null),B=qL.useRef(HI()),{addHistoryItem:$,addHistoryItems:V,clearHistory:ne,setSessionId:z}=Tc(),y=ye(E),_=ye(iP(E));We(()=>{y.current=E,_.current=iP(E)},[E]),We(()=>{G_()},[]),We(()=>{Zv()},[]);let ee=x.columns||80,j=vc(),de=ye(j);We(()=>{de.current=j},[j]);let{startStreaming:pe,stopStreaming:ge,abort:Me,startThinking:Ee,appendThinkingChars:ie,appendThinkingContent:be,stopThinking:te,clearThinkingContent:se,setCurrentTool:Ie,appendToolInputChars:ot,appendToolInputContent:Rt,clearToolInputContent:Xe,clearResponse:Ke,appendResponse:he,getSignal:ve,getFullResponse:G,getThinkingContent:je,startNewIteration:xt,clearIterationHistory:Gt,startCompacting:qe,stopCompacting:Pt,setMaxIter:Jt,addPendingInput:nr,removeLastPendingInput:Qt,peekPendingInputDelivery:xe,shiftPendingInput:D,consumePendingInputs:Y}=bc(),[H,oe]=ze(!1),[F,Ae]=ze(t),He=Se(()=>ns({provider:F.provider,model:F.model,effort:F.effort,effortOverride:F.effortOverride,permissionMode:F.permissionMode,planModeEffort:F.planModeEffort,thinking:F.thinking,reasoningMode:F.reasoningMode}),[F.provider,F.model,F.effort,F.effortOverride,F.permissionMode,F.planModeEffort,F.thinking,F.reasoningMode]),Ue=He.configuredEffort,Oe=He.runtimeEffort,an=Se(()=>({...F,effort:Ue}),[F,Ue]),gn=Se(()=>kL(u,{provider:F.provider,model:F.model},qo),[u,F.provider,F.model]),[Dr,zi]=ze(!0),[Gs,cn]=ze(!0),[rr,Vs]=ze(0),[ug,sl]=ze(!1),[wT,ST]=ze(void 0),[xT,Pd]=ze([]),TT=ye(!1),dg=q(()=>{TT.current=!0,Pd(Ov)},[]),[CT,xr]=ze(null),al=ye(!1),xO=Se(()=>lo(),[]),cl=ye(null),Od=ye(null),fg=ye(Promise.resolve()),$d=ye(null),Fo=ye({requested:!1,uiHistoryOverride:void 0}),Ks=ye(null),ll=ye(!1),ul=ye(null);We(()=>{let d=e.learning;if(!d)return;let w=!0,S,I=o(async()=>{let O=await d.getSnapshot();return w&&ST(W=>W!==void 0&&W.revision>O.revision?W:O),O},"refresh"),v=o(O=>{mt({source:"repl:learning",level:"warn",message:"Failed to refresh the Learning Center snapshot.",detail:O instanceof Error?O.message:String(O)})},"reportRefreshFailure"),L=o(O=>{if(w){if(O.kind==="ready"||O.kind==="activated"||O.kind==="attention"){let W=O.kind==="ready"?"is ready for review":O.kind==="activated"?"became active":"requires attention";Pd(J=>[{id:O.eventId,text:`A learned ${O.carrier} ${W}: ${O.displayName} [/learn]`,tone:O.kind==="activated"?"accent":"warning"},...J.filter(Q=>Q.id!==O.eventId)].slice(0,2))}I().catch(v)}},"onEvent");return I().then(O=>{if(!w)return;let W=cp(O);if(W&&!TT.current){let J=O.attention>0||O.ready>0?"warning":"accent";Pd(Q=>[{id:"learning-recovery",text:W,tone:J},...Q.filter($e=>$e.id!=="learning-recovery")].slice(0,2))}S=d.subscribe(L,{afterRevision:O.revision})}).catch(v),()=>{w=!1,S?.close()}},[e.learning]);let[dl,Nd]=ze(!0),[pg,Dd]=ze(""),[Ye,Br]=ze(()=>q_(xO,{rendererMode:a})),[Vt,mg]=ze(!1),[TO,CO]=ze(0),{scrollRef:IO,scrollOffset:Tr,sticky:hg,setScrollOffset:vO,handleScrollTopChange:bO,handleStickyChange:RO,scrollTo:Bd,scrollBy:Fd,scrollToBottom:Hd}=pL(),gg=ye(null),Wd=ye(null),fl=ye([]),jd=ye([]),zs=ye(null),Cr=ye(null),IT=ye({time:0,row:-1,column:-1,count:0}),[Ud,yg]=ze(void 0),[di,wg]=ze(void 0),[Xs,vT]=ze(void 0),[Fn,kO]=ze(()=>new Set),[Sg,bT]=ze(null),[ln,RT]=ze(null),[Z,Gd]=ze(null),[kT,Ys]=ze(null),[xg,ET]=ze(null),pl=ye(null),ml=q(d=>{pl.current=d,ET(d)},[]),hl=q(d=>{let w=d(pl.current);pl.current=w,ET(w)},[]),gl=q((d,w)=>{let S=pl.current;return S?.status!=="running"||!jk(d,S.runId)?!1:(ml({...S,message:w}),!0)},[ml]),Tg=q(d=>{if(d.status==="running"){ml({runId:d.runId,workflow:d.workflow,status:d.status,...d.phase!==void 0?{phase:d.phase}:{},...d.phaseIndex!==void 0?{phaseIndex:d.phaseIndex}:{},...d.phaseTotal!==void 0?{phaseTotal:d.phaseTotal}:{},...d.startedAt!==void 0?{startedAt:d.startedAt}:{},...d.elapsedMs!==void 0?{elapsedMs:d.elapsedMs}:{},activeAgents:d.activeAgents,totalSpawned:d.totalSpawned,...d.plannedAgents!==void 0?{plannedAgents:d.plannedAgents}:{},...d.agentCap!==void 0?{agentCap:d.agentCap}:{},...d.tokenBudgetSpent!==void 0?{tokenBudgetSpent:d.tokenBudgetSpent}:{},...d.tokenBudgetTotal!==void 0?{tokenBudgetTotal:d.tokenBudgetTotal}:{},completedAgents:d.completedAgents,failedAgents:d.failedAgents,stoppedAgents:d.stoppedAgents,...d.message!==void 0?{message:d.message}:{},...d.locale!==void 0?{locale:d.locale}:{}});return}hl(w=>w?.runId===d.runId?null:w)},[ml,hl]),EO=q(d=>{let w=d.type==="workflow_updated"?d.message:void 0,S=ru(d.snapshot.goal,d.snapshot.workflowName,d.snapshot.displayName,d.snapshot.latestMessage,w);Tg(Gv(d.snapshot,w===void 0?{locale:S}:{locale:S,message:w}))},[Tg]),[Vd,fi]=ze([]),qs=Se(()=>{for(let d of Vd)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}},[Vd]),[qK,yl]=ze([]),[wl,MO]=ze([]),[Kd,Mt]=ze(void 0),[Ho,Sl]=ze(void 0),wt=ye(null),zd=ye(null),Wo=ye([]),Js=ye([]),yn=ye([]),Xd=ye(!1),Cg=ye(new Set),ct=ye({}),ft=ye({activeToolGroupTools:[]}),jo=ye(ry()),Uo=ye({}),MT=ye(0),xl=ye({itemId:void 0,kind:"thinking",pendingText:""}),Ir=ye(null),_O=80,AO=20,LO=ye(null),Tl=Se(()=>[...E,...wl],[E,wl]),Ig=Se(()=>{let d=JR(Tl,LO,ek(Tl));return d===0?Tl:Tl.slice(d)},[Tl]),Yd=Se(()=>QR(Ig,AO),[Ig]),Qs=Ig,un=ye(null),Fr=ye(null),Hr=ye([]),dn=ye([]),[Go,PO]=ze([]),pi=ye([]),[vg,OO]=ze([]),Cl=ye([]),ir=q(d=>{pi.current=d,PO(d)},[]),Zs=q(d=>{Cl.current=d,OO(d)},[]),bg=q(()=>{Zs([])},[Zs]),_T=q(d=>{if(!qu(d))return!1;let w=Xw(d),S=Cl.current.filter(I=>I.id!==w);return S.length===Cl.current.length||Zs(S),!0},[Zs]),or=q((d,w,S,I)=>{if(!qu(d))return!1;let v=Xw(d),L=Cl.current.find(Ne=>Ne.id===v);if(I?.skipIfExisting&&L?.kind===w||zk(L?.kind,w))return!0;let O=I?.append&&L?.kind===w?`${L.detail}${S}`:S||L?.detail||"running",W={id:v,label:Gk(d),source:Vk(d),status:"running",kind:w,detail:zw(O),startedAt:L?.startedAt??Date.now()},J=Cl.current,Q=J.findIndex(Ne=>Ne.id===v),$e=Q>=0?J.map((Ne,mn)=>mn===Q?W:Ne):[...J,W].slice(0,iV);return Zs($e),!0},[Zs]),AT=q(d=>{Wo.current=d,yl(d)},[]),ea=q(d=>{yn.current=d,MO(d)},[]),qd=q(d=>{let w=d([...yn.current]);ea(w)},[ea]),LT=q(d=>{d.length!==0&&ea([...yn.current,...d])},[ea]),Jd=q(d=>{let w=ft.current,S=w.activeToolGroupTools.some(I=>I.status===K.Executing);ft.current={...d?.clearOwner?{}:{workerId:w.workerId,workerTitle:w.workerTitle},...S?{activeToolGroupItemId:w.activeToolGroupItemId,activeToolGroupTools:w.activeToolGroupTools}:{activeToolGroupTools:[]}},d?.clearOwner&&(ct.current={})},[]),Qd=q(d=>{for(let w of d)w.type==="user"&&typeof w.id=="string"&&Cg.current.add(w.id)},[]),Il=q(()=>{xl.current={itemId:void 0,kind:"thinking",pendingText:""},Ir.current&&(clearTimeout(Ir.current),Ir.current=null);let d=Hw(yn.current,Cg.current);if(d.length>0){for(let w of d)Cg.current.add(w.id);Ks.current?.(d.map(w=>Do(w)))}Jd({clearOwner:!0}),ea([])},[Jd,ea]),Zd=q(d=>(MT.current+=1,`managed-foreground-${d}-${MT.current}`),[]),Zt=q(d=>(LT([d]),d.id),[LT]),kn=q((d,w)=>{ct.current.workerId?Zt({id:`${w}-${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()}):$(d)},[$,Zt]),PT=q((d,w)=>{let S=Date.now();ct.current.workerId?Zt({id:`${w}-${S}-${Math.random().toString(36).slice(2,7)}`,type:"sidecar",text:d.text,...d.verdict?{verdict:d.verdict}:{},...d.delivery?{delivery:d.delivery}:{},timestamp:S}):$(d)},[$,Zt]),mi=q((d,w)=>{if(!d)return;let S;return qd(I=>I.map(v=>v.id!==d?v:(S=w(v),S))),S},[qd]),ta=q((d,w)=>{let S=ft.current;if(S.activeKind===d){if(d==="thinking"&&S.activeThinkingItemId)return S.activeThinkingItemId;if(d==="assistant"&&S.activeAssistantItemId)return S.activeAssistantItemId;if(d==="tool_group"&&S.activeToolGroupItemId)return S.activeToolGroupItemId}let I=Date.now(),v=w?.trim()?`[${w.trim()}] `:"",L=S.activeToolGroupTools.some(W=>W.status===K.Executing);if(d==="thinking"){let W=Zt({id:Zd("thinking"),type:"thinking",timestamp:I,text:v});return ft.current={...ft.current,activeKind:"thinking",activeThinkingItemId:W,currentTurnThinkingItemId:W,activeAssistantItemId:void 0,...L?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},W}if(d==="assistant"){let W=Zt({id:Zd("assistant"),type:"assistant",timestamp:I,text:v});return ft.current={...ft.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:W,...L?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},W}let O=Zt({id:Zd("tool_group"),type:"tool_group",timestamp:I,tools:[]});return ft.current={...ft.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:O,activeToolGroupTools:[]},O},[Zt,Zd]),Hn=q(()=>{Ir.current&&(clearTimeout(Ir.current),Ir.current=null);let d=xl.current;if(!d.pendingText||!d.itemId)return;let w=d.pendingText,S=d.itemId,I=d.kind;d.pendingText="",mi(S,v=>v.type!==I?v:{...v,text:`${v.text}${w}`})},[mi]),OT=q(()=>{Ir.current||(Ir.current=setTimeout(Hn,_O))},[Hn]),Rg=q((d,w)=>{if(!w)return;let S=ft.current;if(d==="assistant"&&!lV(w,S.activeKind==="assistant"&&!!S.activeAssistantItemId))return;let I=S.workerTitle,v=ta(d,I),L=xl.current;L.itemId===v&&L.kind===d?L.pendingText+=w:(Hn(),L.itemId=v,L.kind=d,L.pendingText=w),OT()},[ta,Hn,OT]),$T=q(d=>{jo.current=dV(jo.current,d,w=>{if(ct.current.workerId){Hn();let v=Uo.current;d.mode==="replace"&&qd(O=>uV(O,[v.assistantItemId,v.thinkingItemId],d.mode));let L=ft.current;ft.current={...L,activeKind:L.activeKind==="tool_group"?"tool_group":void 0,activeAssistantItemId:void 0,activeThinkingItemId:void 0,currentTurnThinkingItemId:void 0},xl.current={itemId:void 0,kind:"thinking",pendingText:""},Uo.current={providerRequestId:d.providerRequestId};return}Ke(),se();let S=iy(w,"assistant"),I=iy(w,"thinking");S&&he(S),I&&(Ee(),ie(I.length),be(I))})},[he,ie,be,Ke,se,Hn,qd,Ee]),NT=q(d=>{let w=d.trim();if(!w)return;let S=xl.current;S.kind==="thinking"&&S.pendingText&&(S.pendingText="",Ir.current&&(clearTimeout(Ir.current),Ir.current=null));let I=ft.current.workerTitle?.trim(),v=I?`[${I}] ${w}`:w,L=ft.current.currentTurnThinkingItemId;if(L){mi(L,W=>W.type==="thinking"?{...W,text:v}:W);return}let O=ta("thinking",ft.current.workerTitle);mi(O,W=>W.type==="thinking"?{...W,text:v}:W)},[ta,mi]),vr=q(d=>{Hn();let w=ft.current;if(w.activeToolGroupItemId&&w.activeToolGroupTools.some(O=>O.id===d.id)){let O=w.activeToolGroupTools.map(J=>J.id===d.id?d:J),W=O.every(J=>J.status===K.Success||J.status===K.Error||J.status===K.Cancelled);ft.current={...w,...W?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:O}},mi(w.activeToolGroupItemId,J=>J.type==="tool_group"?{...J,tools:O}:J);return}let S=yn.current;for(let O=S.length-1;O>=0;O-=1){let W=S[O];if(W.type!=="tool_group"||!W.tools.some(Q=>Q.id===d.id))continue;let J=W.tools.map(Q=>Q.id===d.id?d:Q);mi(W.id,Q=>Q.type==="tool_group"?{...Q,tools:J}:Q);return}let I=ta("tool_group",w.workerTitle),L=w.activeKind==="tool_group"&&w.activeToolGroupItemId===I?w.activeToolGroupTools.some(O=>O.id===d.id)?w.activeToolGroupTools.map(O=>O.id===d.id?d:O):[...w.activeToolGroupTools,d]:[d];ft.current={...ft.current,activeKind:"tool_group",activeToolGroupItemId:I,activeToolGroupTools:L},mi(I,O=>O.type==="tool_group"?{...O,tools:L}:O)},[ta,mi,Hn]),$O=q(d=>{Hn();let w=ft.current,S=w.activeToolGroupTools.some(L=>L.status===K.Executing),I=pi.current.filter(L=>L.status===K.Executing),v=new Set(I.map(L=>L.id));ft.current={workerId:d?.workerId,workerTitle:d?.workerTitle,...S?{activeToolGroupItemId:w.activeToolGroupItemId,activeToolGroupTools:w.activeToolGroupTools}:{activeToolGroupTools:[]}},ct.current={workerId:d?.workerId,workerTitle:d?.workerTitle},Hr.current=[],dn.current=dn.current.filter(L=>v.has(L.id)),ir(I),Xe(),Ie(void 0),te(),se(),Ke(),Mt(void 0)},[Hn,Xe,Ke,se,Ie,ir,Mt,te]),NO=q(d=>{if(d.length===0)return[];let w=[],S=[...Wo.current],I=[...Js.current];for(let v of d){let L=v.item,O=S.findIndex(W=>W.id===L.id);if(O>=0){let W=S[O];Nh(W,L)||(S=S.map((J,Q)=>Q===O?{...L,timestamp:W.timestamp}:J))}else S=[...S,L].slice(-12),w.push(L);if(v.persistToHistory){let W=I.findIndex(J=>J.id===L.id);if(W>=0){let J=I[W];Nh(J,L)||(I=I.map((Q,$e)=>$e===W?{...L,timestamp:J.timestamp}:Q))}else I=[...I,L].slice(-48)}}return Js.current=I,(w.length>0||S.some((v,L)=>!Nh(v,Wo.current[L]??v)||v.id!==Wo.current[L]?.id))&&AT(S),w},[AT]),ef=q(d=>{if(dn.current.findIndex(S=>S.id===d.id)===-1){dn.current=[...dn.current,d];return}dn.current=dn.current.map(S=>S.id===d.id?d:S)},[]),Xi=q(d=>{let w=pi.current.filter(S=>S.status===K.Executing);if(w.length!==0){if(d){let S=VS(d);for(let I=w.length-1;I>=0;I-=1){let v=w[I];if(VS(v.name)===S)return v}}return w[w.length-1]}},[]),na=q(()=>{let d=Xi();Ie(d?GS(d.name):void 0)},[Xi,Ie]),DT=q(d=>(ef(d),ir([...pi.current.filter(w=>w.id!==d.id),d]),na(),d),[ir,na,ef]),ra=q((d,w)=>{let S=pi.current.find(v=>v.id===d);if(!S)return null;let I=w(S);return ef(I),ir(pi.current.map(v=>v.id===d?I:v)),na(),I},[ir,na,ef]),BT=q((d,w,S)=>{if(d){let v=ra(d,S);if(v)return v}let I=Xi(w);return I?ra(I.id,S):null},[Xi,ra]),tf=q((d,w,S,I,v)=>{let L=d??Xi(v)?.id;return L?ra(L,O=>({...O,status:w,endTime:Date.now(),error:S,output:I})):null},[Xi,ra]),vl=q((d,w)=>{let S=Date.now(),I=new Map;for(let v of pi.current){if(v.status!==K.Executing)continue;let L=w(v);I.set(v.id,{...v,status:d,endTime:S,...L})}return I.size===0?[]:(dn.current=dn.current.map(v=>I.get(v.id)??v),ir(pi.current.map(v=>I.get(v.id)??v)),na(),[...I.values()])},[ir,na]),Yi=q(()=>{ir([])},[ir]),{showHelp:FT,toggleHelp:DO,setShowHelp:HT}=qS(),BO=q(d=>{Dd(d),Nd(d.trim().length===0)},[]),nf=xo(),WT=Se(()=>nf?nf.state.visible&&nf.suggestions.length>0:!1,[nf]),[bl,jT]=ze(!1),UT=ye(rr),Vo=q(()=>{un.current&&(clearTimeout(un.current),un.current=null),Fr.current&&(clearTimeout(Fr.current),Fr.current=null)},[]);We(()=>{WT&&!bl&&jT(!0)},[WT,bl]),We(()=>{rr!==UT.current&&(UT.current=rr,bl&&jT(!1))},[rr,bl]);let[Je,ia]=ze(null),sr=ye(null),FO=ye(x_()),[Ge,Wn]=ze(null),Wr=ye(null),rf=ye(Ge);rf.current=Ge;let[wn,oa]=ze(""),[of,br]=ze(0),kg=ye(""),Rl=ye(void 0),GT=Se(()=>{if(!gn)return;let{contextWindow:d,triggerPercent:w,triggerTokens:S,reservedResponseTokens:I}=gn;return{currentTokens:CT??n.contextTokenSnapshot?.currentTokens??Jo(n.messages),contextWindow:d,triggerPercent:w,triggerTokens:S,reservedResponseTokens:I}},[n.messages,n.contextTokenSnapshot,gn,CT]),kl=Se(()=>{if(!Je)return;let d=new Set(Je.runtimeGrantSuggestions?.map(I=>I.kind)??[]);if(d.has("persistent"))return re("confirm.instruction.runtime_persistent");if(d.has("session"))return re("confirm.instruction.runtime_session");if(Je.runtimeGrantSuggestions!==void 0)return re("confirm.instruction.basic");let w=!!Je.input._alwaysConfirm,S=F.permissionMode==="accept-edits"&&!w;return w?re("confirm.instruction.protected"):S?re("confirm.instruction.always"):re("confirm.instruction.basic")},[Je,F.permissionMode]),Tt=Ye.searchMode==="history",fe=Ye.surface==="transcript",jr=!!Je||!!Ge||Tt,Bt=fe?Vt?FR:1e3:12,qi=KL(c,Ye.surface),VT=qi.shellMode,Eg=qi.usesAlternateScreenShell,Ko=qi.usesRendererViewportShell,sf=qi.usesRendererMouseTracking,KT=qi.usesManagedMouseClicks,zT=qi.usesManagedMouseWheel,Mg=qi.usesManagedSelection,Ft=zL(c,Ye.surface,sA(Ye)),XT=aA(Ye),af=bl&&!fe,YT=q(()=>_x({items:Qs,managedLiveEvents:[],isLoading:H,isThinking:j.isThinking,thinkingCharCount:j.thinkingCharCount,thinkingContent:j.thinkingContent,currentResponse:j.currentResponse,currentTool:j.currentTool,activeToolCalls:Go,toolInputCharCount:j.toolInputCharCount,toolInputContent:j.toolInputContent,lastLiveActivityLabel:Kd,workStripText:Ho,iterationHistory:j.iterationHistory,currentIteration:j.currentIteration,isCompacting:j.isCompacting}),[Qs,H,j.isThinking,j.thinkingCharCount,j.thinkingContent,j.currentResponse,j.currentTool,Go,j.toolInputCharCount,j.toolInputContent,Kd,Ho,j.iterationHistory,j.currentIteration,j.isCompacting]);We(()=>{if(fe){bT(d=>d??YT());return}bT(null)},[YT,fe]);let El=Se(()=>jL({isTranscriptMode:fe,snapshot:Sg,currentItemsLength:Qs.length,currentManagedLiveEventsLength:0,isLoading:H,currentResponse:j.currentResponse,thinkingContent:j.thinkingContent,activeToolCallsLength:Go.length}),[Go.length,H,fe,Qs.length,j.currentResponse,j.thinkingContent,Sg]),en=fe?Sg:null,_g=Se(()=>GL(Yd),[Yd]),HO=Se(()=>!!(wl.length>0||nP(Z)),[wl.length,Z]),cf=wl.length>0,fn=c.streamingPreview&&HO,sa=Se(()=>UL({surface:"transcript",snapshot:en,promptItems:Yd,transcriptItems:Qs}),[en,Yd,Qs]),Ml=Se(()=>{if(!fe||Vt)return sa;let d=ZR(sa,qR);if(d.length===sa.length)return sa;let w=sa.length-d.length;return[rk(w,d[0]?.timestamp),...d]},[sa,fe,Vt]),Ct=en?.isLoading??H,pt=c.streamingPreview?{isThinking:fn?!1:j.isThinking,thinkingCharCount:fn?0:j.thinkingCharCount,thinkingContent:fn?"":j.thinkingContent,currentResponse:fn?"":j.currentResponse,currentTool:fn?void 0:j.currentTool,activeToolCalls:fn?[]:Go,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:fn?Kd:void 0,iterationHistory:[],currentIteration:j.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:j.currentIteration,isCompacting:!1},Re=c.streamingPreview?{isThinking:fn?!1:en?.isThinking??j.isThinking,thinkingCharCount:fn?0:en?.thinkingCharCount??j.thinkingCharCount,thinkingContent:fn?"":en?.thinkingContent??j.thinkingContent,currentResponse:fn?"":en?.currentResponse??j.currentResponse,currentTool:fn?void 0:en?.currentTool??j.currentTool,activeToolCalls:fn?[]:en?.activeToolCalls??Go,toolInputCharCount:fn?0:en?.toolInputCharCount??j.toolInputCharCount,toolInputContent:fn?"":en?.toolInputContent??j.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:en?.lastLiveActivityLabel??Kd,iterationHistory:fn?[]:en?.iterationHistory??j.iterationHistory,currentIteration:en?.currentIteration??j.currentIteration,isCompacting:en?.isCompacting??j.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:en?.currentIteration??j.currentIteration,isCompacting:!1},hi=fe?di:Ud,qT=!!Ud,JT=q(()=>_x({items:_g,managedLiveEvents:[],isLoading:H,isThinking:pt.isThinking,thinkingCharCount:pt.thinkingCharCount,thinkingContent:pt.thinkingContent,currentResponse:pt.currentResponse,currentTool:pt.currentTool,activeToolCalls:pt.activeToolCalls,toolInputCharCount:pt.toolInputCharCount,toolInputContent:pt.toolInputContent,lastLiveActivityLabel:pt.lastLiveActivityLabel,iterationHistory:pt.iterationHistory,currentIteration:pt.currentIteration,isCompacting:pt.isCompacting}),[H,_g,pt.activeToolCalls,pt.currentIteration,pt.currentResponse,pt.currentTool,pt.isCompacting,pt.isThinking,pt.iterationHistory,pt.lastLiveActivityLabel,pt.thinkingCharCount,pt.thinkingContent,pt.toolInputCharCount,pt.toolInputContent]);We(()=>{if(!qT){RT(null);return}RT(d=>d??JT())},[JT,qT]);let _l=ln?.items??_g,Sn=ln?.isLoading??H,Fe=ln?{isThinking:ln.isThinking,thinkingCharCount:ln.thinkingCharCount,thinkingContent:ln.thinkingContent,currentResponse:ln.currentResponse,currentTool:ln.currentTool,activeToolCalls:ln.activeToolCalls,toolInputCharCount:ln.toolInputCharCount,toolInputContent:ln.toolInputContent,managedLiveEvents:ln.managedLiveEvents,lastLiveActivityLabel:ln.lastLiveActivityLabel,iterationHistory:ln.iterationHistory,currentIteration:ln.currentIteration,isCompacting:ln.isCompacting}:pt,tn=fe?Ml:_l,Ur=fe?Ct:Sn,rt=fe?Re:Fe,QT=Sn&&!j.currentResponse&&!j.thinkingContent&&Go.length===0,WO=Au(xg?.status==="running"),Kt=Se(()=>Kv(xg,Date.now()),[xg,WO]),ZT=Kt.shouldRender?`Workflow ${Kt.workflow}${Kt.phase?` - ${Kt.phase}`:""}`:void 0,gi=Se(()=>y_(Vd,{now:Date.now(),lastAllCompletedAt:null}),[Vd]),eC=C<=20?1:Kw,jO=Au(vg.length>0),Ag=Se(()=>Xk(vg,eC,Date.now()),[eC,vg,jO]),tC=Uk({isTranscriptMode:fe,isLoading:H,hasWorkflowLiveSurface:Kt.shouldRender,childActivityVisible:Ag.shouldRender}),aa=Se(()=>{if(!fe)return[];let d=[];return d.push(...Vv(Kt)),H&&gi.shouldRender&&d.push(...m_(gi)),d},[fe,H,gi,Kt]),zo=Se(()=>({config:an,sessionId:n.sessionId,workingDir:e.context?.executionCwd||e.context?.gitRoot||n.runtimeInfo?.executionCwd||n.gitRoot||process.cwd(),terminalWidth:ee,compactionInfo:gn??void 0}),[gn,n.sessionId,an,n.runtimeInfo?.executionCwd,e.context?.gitRoot,e.context?.executionCwd,ee]),Ji=Se(()=>c.enabled&&Gs?TV(zo):void 0,[zo,c.enabled,Gs]),nC=ye(Xc),rC=ye(!1),Lg=ye(!1),ca=qA({enabled:CV,useRendererViewportShell:Ko,isTranscriptMode:fe,hasCommitHandle:typeof ws(x)?.commitInlineScrollback=="function"}),Al=Se(()=>Sm({items:_l,viewportWidth:ee,maxLines:Bt,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[_l,ee,Bt]),Xo=Se(()=>{let d=xm({activeItems:Al.activeItems,viewportWidth:ee,isLoading:Sn,maxLines:Bt,isThinking:Fe.isThinking,thinkingCharCount:Fe.thinkingCharCount,thinkingContent:Fe.thinkingContent,streamingResponse:Fe.currentResponse,currentTool:Fe.currentTool,activeToolCalls:Fe.activeToolCalls,toolInputCharCount:Fe.toolInputCharCount,toolInputContent:Fe.toolInputContent,iterationHistory:Fe.iterationHistory,currentIteration:Fe.currentIteration,isCompacting:Fe.isCompacting,managedAgentMode:F.agentMode,managedPhase:Sn?Z?.phase:void 0,managedHarnessProfile:Sn?Z?.harnessProfile:void 0,managedWorkerTitle:Sn?Z?.activeWorkerTitle:void 0,managedRound:Sn?Z?.currentRound:void 0,managedMaxRounds:Sn?Z?.maxRounds:void 0,managedGlobalWorkBudget:Sn?Z?.globalWorkBudget:void 0,managedBudgetUsage:Sn?Z?.budgetUsage:void 0,managedBudgetApprovalRequired:Sn?Z?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Fe.lastLiveActivityLabel,currentTodoActiveForm:qs,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:QT}),w=GR(Al,d,Ji);return ZA(w,ca)},[F.agentMode,ca,Sn,Fe.activeToolCalls,Fe.currentIteration,Fe.currentTool,Fe.isCompacting,Fe.currentResponse,Fe.isThinking,Fe.iterationHistory,Fe.lastLiveActivityLabel,Fe.thinkingCharCount,Fe.thinkingContent,Fe.toolInputCharCount,Fe.toolInputContent,Z?.activeWorkerTitle,Z?.budgetApprovalRequired,Z?.budgetUsage,Z?.currentRound,Z?.globalWorkBudget,Z?.harnessProfile,Z?.maxRounds,Z?.phase,QT,Al,Ji,ee,Bt,qs]),Pg=Se(()=>Sm({items:Ml,viewportWidth:ee,maxLines:Bt,showDetailedTools:Vt,showAllContent:Vt,showFullThinking:!0,windowed:!1}),[Ml,ee,Bt,Vt]),lf=Se(()=>{if(!fe||Ko)return;let d=xm({activeItems:Pg.activeItems,viewportWidth:ee,isLoading:Ct,maxLines:Bt,isThinking:Re.isThinking,thinkingCharCount:Re.thinkingCharCount,thinkingContent:Re.thinkingContent,streamingResponse:Re.currentResponse,currentTool:Re.currentTool,activeToolCalls:Re.activeToolCalls,toolInputCharCount:Re.toolInputCharCount,toolInputContent:Re.toolInputContent,iterationHistory:Re.iterationHistory,currentIteration:Re.currentIteration,isCompacting:Re.isCompacting,managedAgentMode:F.agentMode,managedPhase:Ct?Z?.phase:void 0,managedHarnessProfile:Ct?Z?.harnessProfile:void 0,managedWorkerTitle:Ct?Z?.activeWorkerTitle:void 0,managedRound:Ct?Z?.currentRound:void 0,managedMaxRounds:Ct?Z?.maxRounds:void 0,managedGlobalWorkBudget:Ct?Z?.globalWorkBudget:void 0,managedBudgetUsage:Ct?Z?.budgetUsage:void 0,managedBudgetApprovalRequired:Ct?Z?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Re.lastLiveActivityLabel,liveStatusLines:aa,currentTodoActiveForm:qs,showFullThinking:!0,showDetailedTools:Vt,showAllContent:Vt,showLiveProgressRows:!cf,expandedItemKeys:Fn});return oP(Ew(Tm(Pg,d)),Ji)},[F.agentMode,Fn,cf,Ji,fe,Z?.activeWorkerTitle,Z?.budgetApprovalRequired,Z?.budgetUsage,Z?.currentRound,Z?.globalWorkBudget,Z?.harnessProfile,Z?.maxRounds,Z?.phase,ee,Ct,Bt,Pg,Re.activeToolCalls,Re.currentIteration,Re.currentResponse,Re.currentTool,Re.isCompacting,Re.isThinking,Re.iterationHistory,Re.lastLiveActivityLabel,Re.thinkingCharCount,Re.thinkingContent,Re.toolInputCharCount,Re.toolInputContent,Vt,aa,Ko,qs]),Ll=Se(()=>{if(Ft)return fe?oP(Cm({items:tn,viewportWidth:ee,isLoading:Ur,maxLines:Bt,isThinking:rt.isThinking,thinkingCharCount:rt.thinkingCharCount,thinkingContent:rt.thinkingContent,streamingResponse:rt.currentResponse,currentTool:rt.currentTool,activeToolCalls:rt.activeToolCalls,toolInputCharCount:rt.toolInputCharCount,toolInputContent:rt.toolInputContent,iterationHistory:rt.iterationHistory,currentIteration:rt.currentIteration,isCompacting:rt.isCompacting,managedAgentMode:F.agentMode,managedPhase:Ur?Z?.phase:void 0,managedHarnessProfile:Ur?Z?.harnessProfile:void 0,managedWorkerTitle:Ur?Z?.activeWorkerTitle:void 0,managedRound:Ur?Z?.currentRound:void 0,managedMaxRounds:Ur?Z?.maxRounds:void 0,managedGlobalWorkBudget:Ur?Z?.globalWorkBudget:void 0,managedBudgetUsage:Ur?Z?.budgetUsage:void 0,managedBudgetApprovalRequired:Ur?Z?.budgetApprovalRequired:void 0,lastLiveActivityLabel:rt.lastLiveActivityLabel,liveStatusLines:aa,currentTodoActiveForm:qs,windowed:!0,showFullThinking:fe,showDetailedTools:Vt,showAllContent:Vt,showLiveProgressRows:fe&&!cf,expandedItemKeys:fe?Fn:void 0}),Ji):Ew(Xo)},[F.agentMode,Ur,tn,cf,Ji,rt.activeToolCalls,rt.currentIteration,rt.currentResponse,rt.currentTool,rt.isCompacting,rt.isThinking,rt.iterationHistory,rt.lastLiveActivityLabel,rt.thinkingCharCount,rt.thinkingContent,rt.toolInputCharCount,rt.toolInputContent,Fn,fe,Z?.activeWorkerTitle,Z?.budgetApprovalRequired,Z?.budgetUsage,Z?.currentRound,Z?.globalWorkBudget,Z?.harnessProfile,Z?.maxRounds,Z?.phase,Xo,H,fe,ee,Bt,Ft,aa,Vt,qs]),Gr=Se(()=>Ll??lf,[Ll,lf]),Pl=Se(()=>Mx({status:Z,isLoading:H,agentMode:F.agentMode}),[F.agentMode,H,Z]).workStripText,Ol=en?.workStripText??Ho,la=Se(()=>Mx({status:Z,isLoading:H,agentMode:F.agentMode,parallelTextOverride:Ol}),[F.agentMode,Ol,H,Z]),Yo=Se(()=>oL(tn).filter(d=>d!==Im),[tn]),ut=Se(()=>jh(Ye,Yo,Ye.selectedItemId),[Yo,Ye]),jn=Se(()=>tn.find(d=>d.id===ut),[tn,ut]),iC=Se(()=>({...Ye,supportsSelection:Ye.supportsSelection&&Ft,supportsCopyOnSelect:Ye.supportsCopyOnSelect&&Ft}),[Ye,Ft]),ar=Se(()=>ML({state:iC,selectableItemIds:Yo,selectedItemId:ut,selectedItemType:jn?.type,isExpanded:ut?Fn.has(ut):!1}),[Fn,Yo,jn?.type,ut,iC]),oC=ar.selectionEnabled,sC=ar.copyCapabilities.copyOnSelect,ZK=ar.selectedItemIndex,aC=Se(()=>iL(jn),[jn]),uf=Se(()=>eL(tn.filter(d=>!_w(d))),[tn]),zt=Se(()=>tL(uf,wn),[uf,wn]),df=Se(()=>LL({isHistorySearchActive:Tt,historySearchQuery:wn,matches:zt,selectedIndex:of,anchorItemId:Ye.searchAnchorItemId,useOverlaySurface:Ye.supportsOverlaySurface&&Ye.supportsSearchViewport&&Ft}),[zt,wn,of,Tt,Ye.searchAnchorItemId,Ye.supportsOverlaySurface,Ye.supportsSearchViewport,Ft]),Qi=df.clampedSelectedIndex,cC=df.statusText,Og=df.detailText,lC=df.searchState,ez=ar.detailState==="expanded",ff=ar.selectionEnabled&&Yo.length>0&&!hi,ua=ar.copyCapabilities.message,pf=ar.copyCapabilities.toolInput,mf=ar.toggleDetail;We(()=>{if(Pl){if(Fr.current&&(clearTimeout(Fr.current),Fr.current=null),Ho===Pl)return;if(Ho){un.current&&(clearTimeout(un.current),un.current=null),Sl(Pl);return}un.current&&clearTimeout(un.current),un.current=setTimeout(()=>{Sl(Pl),un.current=null},400);return}if(!Ho){un.current&&(clearTimeout(un.current),un.current=null);return}un.current&&(clearTimeout(un.current),un.current=null),Fr.current&&clearTimeout(Fr.current),Fr.current=setTimeout(()=>{Sl(void 0),Fr.current=null},300)},[Vo,Pl,Ho]),We(()=>()=>{Vo()},[Vo]);let Zi=Se(()=>lL({state:Ye,ownsViewport:Ft,isAwaitingUserInteraction:jr,isHistorySearchActive:Tt,isTranscriptMode:fe,historySearchQuery:wn}),[wn,jr,Tt,fe,Ye,Ft]);We(()=>{Br(d=>{let w=eA(d,Tr);return w=Z_(w,El),w=nA(w,c.enabled&&Ft?!hg||Tt||jr:fe||Tt||jr),w=oA(w,Qi),w})},[Qi,c.enabled,Tr,jr,Tt,fe,El,Ft,hg]),We(()=>{of!==Qi&&br(Qi)},[Qi,of]),We(()=>{if(!Tt){kg.current=wn;return}if(wn===kg.current)return;kg.current=wn;let d=rL(uf,zt,Ye.searchAnchorItemId);br(d)},[zt,wn,Tt,Ye.searchAnchorItemId,uf]);let uC=fe?Re:{isThinking:Fe.isThinking,thinkingCharCount:Fe.thinkingCharCount,currentTool:Fe.currentTool,activeToolCalls:Fe.activeToolCalls,toolInputCharCount:Fe.toolInputCharCount,toolInputContent:Fe.toolInputContent,currentIteration:Fe.currentIteration,isCompacting:Fe.isCompacting},$l=fe?Ct:Sn,[$g,cr]=ze(()=>Bs(F.permissionMode,e.runtimeAutoModeControl?void 0:f.getGuardrail().getEngine(),s.engine));We(()=>{if(!e.runtimeAutoModeControl){Er(F.permissionMode)||cr(void 0);return}if(!Er(F.permissionMode)){cr(void 0),e.runtimeAutoModeControl.syncSettings?.(n.sessionId,F.permissionMode,s);return}cr(I=>Bs(F.permissionMode,I,s.engine));let d=!0;o(async()=>{let I=await e.runtimeAutoModeControl?.syncSettings?.(n.sessionId,F.permissionMode,s)??await e.runtimeAutoModeControl?.getStats(n.sessionId);d&&cr(Bs(F.permissionMode,I?.engine,s.engine))},"refresh")();let S=e.runtimeAutoModeControl.subscribe?.(n.sessionId,I=>{d&&cr(Bs(F.permissionMode,I?.engine,s.engine))});return()=>{d=!1,S?.close()}},[s,n.sessionId,F.permissionMode,e.runtimeAutoModeControl]);let hf=Se(()=>EL({sessionId:n.sessionId,permissionMode:F.permissionMode,agentMode:F.agentMode,provider:F.provider,model:F.model??zr(F.provider)??F.provider,thinking:F.thinking,reasoningMode:F.reasoningMode,effort:Ue,reasoningEffortLabel:oo({provider:F.provider,model:F.model,effort:Ue,effortOverride:F.effortOverride,thinking:F.thinking,reasoningMode:F.reasoningMode}),isTranscriptMode:fe,streamingState:uC,maxIter:j.maxIter,contextUsage:GT,learning:wT,isLoading:$l,managedState:{phase:Z?.phase,harnessProfile:Z?.harnessProfile,workerTitle:Z?.activeWorkerTitle,round:Z?.currentRound,maxRounds:Z?.maxRounds,globalWorkBudget:Z?.globalWorkBudget,budgetUsage:Z?.budgetUsage,budgetApprovalRequired:Z?.budgetApprovalRequired,idleWaiting:Z?.idleWaiting,idleWaitingPendingCount:Z?.idleWaitingPendingCount},autoModeEngine:$g}),[n.sessionId,F.permissionMode,F.agentMode,F.provider,F.model,F.thinking,F.reasoningMode,F.effortOverride,Ue,fe,uC,j.maxIter,GT,wT,$l,Z?.phase,Z?.harnessProfile,Z?.activeWorkerTitle,Z?.currentRound,Z?.maxRounds,Z?.globalWorkBudget,Z?.budgetUsage,Z?.budgetApprovalRequired,Z?.idleWaiting,Z?.idleWaitingPendingCount,$g]),Ng=Je?"confirm":Ge?.kind,dC=Se(()=>RL({isTranscriptMode:fe,isLoading:$l,streamingState:Fe,managedState:$l?{phase:Z?.phase,harnessProfile:Z?.harnessProfile,workerTitle:Z?.activeWorkerTitle}:void 0,waitingReason:Ng,workflowBuilderMessage:kT??void 0,backgroundWorkflowMessage:ZT}),[Fe.activeToolCalls,Fe.currentTool,Fe.isCompacting,Fe.isThinking,Fe.thinkingCharCount,Fe.toolInputCharCount,Fe.toolInputContent,fe,Z?.activeWorkerTitle,Z?.harnessProfile,Z?.phase,Ng,$l,kT,ZT]),yi=vL({activity:dC})?dC:void 0,fC=yi?.text,pC=!!yi,mC=ye(!1);We(()=>{mC.current&&!H&&fi(d=>d.length>0?[]:d),mC.current=H},[H]);let Dg=Se(()=>Em(hf),[hf]),hC=Se(()=>Dg,[Dg]),gC=hC.text,UO=Se(()=>$k(j.pendingInputs),[j.pendingInputs]),Bg=Se(()=>w_({isHistorySearchActive:Tt,isTranscriptMode:fe,pendingInputCount:j.pendingInputs.length,buffering:Ye.buffering,pendingLiveUpdates:El}),[Tt,fe,El,j.pendingInputs.length,Ye.buffering]),yC=Bg.leftItems,wC=Bg.rightItems,SC=Bg.summary,gf=Se(()=>OL({historySearchQuery:wn,pendingInputCount:j.pendingInputs.length}),[wn,j.pendingInputs.length]),yf=Se(()=>[...PL({historySearchQuery:wn,isHistorySearchActive:Tt,historySearchMatchCount:zt.length,pendingInputCount:j.pendingInputs.length,maxPendingInputs:5}),...xT],[zt.length,wn,Tt,xT,j.pendingInputs.length]),xC=Se(()=>yf.map(d=>d.text).join(" | "),[yf]),wf=Se(()=>$L({inputText:pg,isTranscriptMode:fe,isHistorySearchActive:Tt}),[pg,Tt,fe]),TC=Ye.supportsOverlaySurface&&Ye.supportsSearchViewport&&Ft,Sf=Se(()=>_L({runtime:ar,itemSummary:aC}),[aC,ar]),Fg=Se(()=>NL(gf),[gf]),CC=Se(()=>DL({textSelection:hi,selectionState:Sf,isHistorySearchActive:Tt,historySearchDetailText:Og,historySearchHasMatches:!!cC&&zt.length>0,showAllActive:Vt,baseFooterNotices:gf}),[hi,gf,Og,zt.length,cC,Tt,Vt,Sf]),GO=CC.secondaryText,VO=CC.budgetNotices,IC=fe?VO:Fg,vC=C,bC=fe?"":pg,RC=fe?void 0:UO,kC=Ol,EC=fe?!1:FT,MC=Kt.shouldRender?u_(Kt):0,_C=H&&gi.shouldRender?gi.rows.length:0,AC=tC?Km(Ag):0,nn=Se(()=>Y_({terminalRows:vC,terminalWidth:ee,windowedTranscript:Ko,inputText:bC,footerHeaderText:SC,activitySummary:fe?void 0:fC,activityBarVisible:fe?!1:pC,workflowSurfaceRows:fe?0:MC,childActivitySurfaceRows:fe?0:AC,todoSurfaceRows:fe?0:_C,pendingInputSummary:RC,stashNoticeSummary:wf,notificationSummary:xC,statusNoticeSummary:IC.join(" | "),workStripText:kC,suggestionsReserved:af,suggestionsMode:"inline",showHelp:EC,statusBarText:gC,confirmPrompt:Je?.prompt,confirmInstruction:kl,dialogMode:"inline",reviewHint:c.enabled&&Ft?void 0:Zi.browseHintText,uiRequest:Ge?Ge.kind==="select"?{kind:"select",title:Ge.title,options:Ge.options.map(d=>({label:d.label,description:d.description})),buffer:Ge.buffer,error:Ge.error}:{kind:"input",prompt:Ge.prompt,defaultValue:Ge.defaultValue,buffer:Ge.buffer,error:Ge.error}:null}),[vC,ee,bC,SC,fC,pC,fe,MC,AC,_C,RC,wf,xC,IC,kC,af,TC,EC,gC,Je,kl,c.enabled,Zi.browseHintText,Ft,Ge]),Hg=Se(()=>{if(!ca)return{model:Xo,committedSections:[]};let{committedSections:d,liveRows:w}=VR(Al.staticSections,Xo.rows,Xo.previewRows,nn.messageRows);return{model:{...Xo,staticSections:[],rows:w,previewRows:[]},committedSections:d}},[ca,Xo,Al.staticSections,nn.messageRows]),LC=Hg.model;We(()=>{let d=ws(x),w=typeof d?.commitInlineScrollback=="function",S=JA({active:ca,hasCommitHandle:w,wasActive:rC.current,forceRebuild:Lg.current,prior:nC.current,finalizedSections:Hg.committedSections,bannerSection:Ji,width:ee,identify:KR}),I=!1,v=!1;if(S.kind==="commit"){let O=S.sections.flatMap(J=>J.rows),W=YA(O.length>0?[{key:"il-delta",rows:O}]:[],{width:ee,theme:ue("dark")});if(v=W.length>0,S.mode==="append"&&!W)sP("empty-append-text");else try{d?.commitInlineScrollback?.({mode:S.mode,text:W}),I=!0}catch(J){sP("commit-threw",J)}}let L=QA(S,{committed:I,hadContent:v},Lg.current);nC.current=L.state,rC.current=L.wasActive,Lg.current=L.owns},[ca,Hg.committedSections,Ji,ee,x]);let KO=Se(()=>me(jm,{reserveSpace:af,width:ee,hidden:fe,mode:"inline"}),[af,ee,fe,TC]),Nl=Se(()=>uL(nn.messageRows),[nn.messageRows]),PC=Se(()=>dL(Nl),[Nl]),da=!XT&&c.transcriptSpinnerAnimation,Dl=Gr?Gr.rows.length+Gr.previewRows.length:TO,xf=q(d=>{Gr||CO(d.scrollHeight)},[Gr]),Bl=q(d=>yL({window:d,stickyHeader:Zi.stickyHeader,width:ee,topChromeRows:0}),[ee,Zi.stickyHeader]),fa=q((d=fl.current,w=jd.current,S=gg.current?Bl(gg.current):Wd.current)=>{if(!S||d.length===0){zs.current=null;return}Wd.current=S,zs.current=wL(d,{allRows:w,rowIndexByKey:Ix(w),topOffsetRows:S.topOffsetRows,viewportHeight:S.contentWindow.viewportHeight,animateSpinners:da})},[Bl,da]),Fl=q(()=>{let d=Wd.current;return d?.contentWindow.viewportHeight&&d.contentWindow.viewportHeight>0?d.contentWindow.viewportHeight:nn.messageRows},[nn.messageRows]),zO=q(d=>{gg.current=d;let w=Bl(d);Wd.current=w,fa(fl.current,jd.current,w)},[fa,Bl]),Tf=q(d=>{fl.current=d.rows,jd.current=d.allRows,fa(d.rows,d.allRows)},[fa]),pn=q(()=>{Cr.current=null,yg(void 0),wg(void 0)},[]),Wg=q(()=>{pn(),Br(d=>zc(d,void 0))},[pn]);We(()=>{fa()},[fa]),We(()=>{vO(d=>fL(d,Dl,nn.messageRows))},[Dl,nn.messageRows]),We(()=>{if(!Xs)return;let d=setTimeout(()=>{vT(void 0)},2e3);return()=>{clearTimeout(d)}},[Xs]);let Un=q((d,w="success")=>{let S=d?.trim();S&&vT({text:S,tone:w})},[]);We(()=>e.subscribeTransientNotices?.(d=>{Un(d.text,d.tone)}),[e.subscribeTransientNotices,Un]);let XO=q(d=>{Un(d,"warning")},[Un]),pa=q((d,w)=>{let S=w instanceof Error?w.message:String(w);return`${d}: ${S}`},[]),Cf=q(async d=>{let w=d??hi;if(!w)return!1;let S=w.text.trimEnd();if(!S)return!1;try{return await nu(S,{terminalWrite:R}),Un(`Copied ${w.rowCount} selected line${w.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(I){return Un(pa("Failed to copy transcript selection",I),"warning"),!1}},[hi,pa,Un,R]),ma=q(d=>{if(!d||mL({items:tn,renderModel:Gr,terminalWidth:ee,transcriptMaxLines:Bt,viewportRows:Fl(),itemId:d,visibleRows:fl.current,expandedItemKeys:Fn,showDetailedTools:!1}))return;let w=hL({items:tn,renderModel:Gr,terminalWidth:ee,transcriptMaxLines:Bt,viewportRows:Fl(),itemId:d,expandedItemKeys:Fn,showDetailedTools:!1});Bd(w)},[tn,ee,Bt,Gr,Fn,Fl,Bd,fl]),OC=q(d=>{Br(w=>zc(w,d)),d&&ma(d)},[ma]),jg=q(d=>{d&&ma(d)},[ma]),$C=q(d=>{if(!ff)return;let w=sL(Yo,ut,d);w&&OC(w)},[ff,Yo,ut,OC]),NC=q(()=>{!mf||!ut||(kO(d=>{let w=new Set(d);return w.has(ut)?w.delete(ut):w.add(ut),w}),ma(ut))},[ma,mf,ut]),DC=q(async()=>{if(!ua||!jn)return;let d=Cx(jn);if(d)try{await nu(d,{terminalWrite:R}),Un("Copied selected transcript entry to clipboard.","success")}catch(w){Un(pa("Failed to copy transcript entry",w),"warning")}},[pa,ua,jn,Un,R]),BC=q(async()=>{if(!pf||!jn)return;let d=aL(jn);if(d)try{await nu(d,{terminalWrite:R}),Un("Copied selected tool args to clipboard.","success")}catch(w){Un(pa("Failed to copy tool args",w),"warning")}},[pa,pf,jn,Un,R]),Hl=q(()=>jd.current,[]),FC=q((d,w)=>{if(!c.enabled||!Ft)return;let S=zs.current;return S?bx(S,d,w):void 0},[c.enabled,Ft]),ha=q((d,w,S)=>{let I=Hl(),v=TL(I,d,w,{animateSpinners:da,selectFullRowOnCollapsed:S?.selectFullRowOnCollapsed});fe?wg(v):yg(v);let L=I[Math.max(0,Math.min(w.modelRowIndex,I.length-1))];return S?.updateSelectedItem&&L?.itemId&&Br(O=>zc(O,L.itemId)),v},[fe,Hl,da]),HC=q((d,w)=>{if(!d)return;Cr.current=null;let S={...d,focus:w?.focusPoint??d.focus};if(!(S.mode!=="char"||S.didDrag)){pn();return}let v=ha(S.anchor,S.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!v){pn();return}return w?.copySelection!==!1&&Cf(v),v},[pn,Cf,ha]),Ug=q(()=>{if(!fe||!tn.length||Je||Ge)return;pn();let d=gL({items:tn,selectedItemId:ut,renderModel:Gr,terminalWidth:ee,transcriptMaxLines:Bt,viewportRows:Fl(),scrollOffset:Tr,expandedItemKeys:Fn,showDetailedTools:!1,preferViewportAnchor:!0});Br(w=>rA(w,{anchorItemId:d,initialMatchIndex:0})),oa(""),br(0)},[Je,tn,Fn,Tr,fe,ut,Gr,ee,Bt,Ge,Fl,pn]),Gg=q(()=>{Br(d=>iA(d)),oa(""),br(0),pn()},[pn]),If=q(()=>{!Tt||zt.length===0||br(-1)},[zt.length,Tt]),WC=Se(()=>{if(!Je)return null;if(Je.tool==="exit_plan_mode"){let d=typeof Je.input.plan=="string"?Je.input.plan:void 0;return{prompt:Je.prompt.split(`
|
|
165
|
+
`,1)[0]??Je.prompt,instruction:kl,planContent:d}}return{prompt:Je.prompt,instruction:kl}},[kl,Je]),jC=Se(()=>Ge?Ge.kind==="select"?{kind:"select",title:Ge.title,options:Ge.options,buffer:Ge.buffer,error:Ge.error,visibleSelectOptions:nn.visibleSelectOptions,focusedIndex:Ge.focusedIndex,selectedIndices:Ge.selectedIndices,multiSelect:Ge.multiSelect}:{kind:"input",prompt:Ge.prompt,defaultValue:Ge.defaultValue,buffer:Ge.buffer,error:Ge.error}:null,[Ge,nn.visibleSelectOptions]),YO=Se(()=>me(Um,{confirm:WC,request:jC}),[WC,jC]),Vg=Se(()=>{if(Xs)return me(a_,{text:Xs.text,tone:Xs.tone})},[Xs]),Kg=Se(()=>{if(Vg)return me(M,{flexDirection:"column",width:"100%",children:Vg})},[Vg]),vf=q(()=>{Br(d=>tA(Q_(d))),mg(!1),Hd(),oa(""),br(0),pn()},[pn,Hd]),UC=q(()=>{fe&&mg(d=>!d)},[fe]),qO=q(()=>{if(fe){vf();return}mg(!1),Br(d=>J_(d)),oa(""),br(0),pn()},[pn,vf,fe]);We(()=>{oC||!Ye.selectedItemId||Br(d=>zc(d,void 0))},[oC,Ye.selectedItemId]),We(()=>{if(!fe||!ua||!sC){Rl.current=void 0;return}if(di||!ut||!jn)return;if(!Rl.current){Rl.current=ut;return}if(Rl.current===ut)return;Rl.current=ut;let d=Cx(jn);d&&nu(d,{terminalWrite:R}).catch(()=>{})},[fe,jn,ut,ua,sC,di,R]),We(()=>{if(x?.isTTY!==!0)return;let d=ws(x);d?.setShellMode?.(VT,sf),Eg||d?.setAltScreenActive?.(!1)},[VT,x,Eg,sf]);let JO=Se(()=>S_(i,()=>fg.current),[i]),Le=ye({...e,thinking:F.thinking,reasoningMode:F.reasoningMode,effort:Oe,agentMode:F.agentMode,workflowRunsBaseDir:no("workflow-runs",os(process.cwd()).key),context:{...e.context,gitRoot:n.gitRoot??void 0,executionCwd:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),repoIntelligenceMode:F.repoIntelligenceMode,repoIntelligenceTrace:F.repoIntelligenceTrace,toolConstructionMode:!0},session:{...e.session,id:n.sessionId,storage:JO,persistedByHost:!0},guardrails:e.runtimeRunner?void 0:Px(F.permissionMode,f)});We(()=>{Le.current.effort=Oe},[Oe]);let Wl=q(d=>{let w=d.workspaceRoot??void 0;n.runtimeInfo=d,n.gitRoot=w,Le.current.context={...Le.current.context,gitRoot:w,executionCwd:d.executionCwd??w??process.cwd()}},[n]),Gn=ye(F.permissionMode),GC=ye(0);We(()=>{Gn.current=F.permissionMode},[F.permissionMode]);let QO=Se(()=>Wa(),[]),VC=ye(QO),kt=ye(F);We(()=>{kt.current=F},[F]);let zg=ye(null);zg.current===null&&(zg.current=Jf({getProvider:o(()=>qo(kt.current.provider),"getProvider"),getModel:o(()=>kt.current.model??"","getModel")}));let KC=ye(tp());We(()=>{F.permissionMode==="auto-in-project"&&KC.current()},[]);let Xg=q(async d=>{let w=++GC.current;Ae(v=>({...v,permissionMode:d})),Gn.current=d,cr(Bs(d,void 0,s.engine));let S=await e.runtimeAutoModeControl?.syncSettings?.(n.sessionId,d,s);if(w!==GC.current)return;let I=ns({provider:kt.current.provider,model:kt.current.model,effort:kt.current.effort,effortOverride:kt.current.effortOverride,permissionMode:d,planModeEffort:kt.current.planModeEffort,thinking:kt.current.thinking,reasoningMode:kt.current.reasoningMode});if(Le.current={...Le.current,effort:I.runtimeEffort,guardrails:e.runtimeRunner?void 0:Px(d,f)},!Er(d))cr(void 0);else if(e.runtimeAutoModeControl){let v=S??await e.runtimeAutoModeControl.getStats(n.sessionId);cr(Bs(d,v?.engine,s.engine))}else cr(f.getGuardrail().getEngine());d==="auto-in-project"&&KC.current()},[f,s,n.sessionId,e.runtimeAutoModeControl,e.runtimeRunner]),zC=ye(j.pendingInputs),dt=ye(!1),XC=ye(0),Yg=ye(null),jl=ye(0),bf=q(()=>{if(ll.current)return;let d=zd.current?.trim(),w=y.current.length>0?y.current[y.current.length-1]:void 0,S=w&&"text"in w&&typeof w.text=="string"?w.text.trim():void 0,v=yn.current.length>0?[...yn.current.map(L=>Do(L)),...d&&d!==S?[{type:"info",text:d}]:[]]:[...yn.current.map(L=>Do(L)),...pV(je(),G(),{toolCalls:dn.current,toolNames:Hr.current,infoItems:d&&d!==S?[d]:[]})];v.length!==0&&(ll.current=!0,Qd(yn.current),Ks.current?.(v))},[G,je,Qd]);We(()=>{zC.current=j.pendingInputs},[j.pendingInputs]);let YC=q(()=>{dt.current=!0,Me(),ge(),te(),se(),Xe(),Ke(),Ie(void 0),Yi(),Mt(void 0),Il(),Wo.current=[],Js.current=[],wt.current=null,zd.current=null,yl([]),Gd(null),Ys(null),Vo(),Sl(void 0),oe(!1),x?.isTTY===!0&&ws(x)?.clear?.()},[Me,Ke,se,Xe,Vo,Yi,Il,Ie,yl,oe,Mt,ge,te,x]),Rf=q(d=>{let w=MI(),S=w.list().filter(v=>v.status==="running"||v.status==="paused");if(S.length===0)return!1;for(let v of S)w.stop(v.runId,d);hl(v=>!v||v.status!=="running"||!S.some(L=>L.runId===v.runId)?v:{...v,status:"stopped",activeAgents:[],message:"Workflow stopped by user."});let I=S[0];return S.length===1&&I?kn({type:"info",text:`Stopped workflow ${I.workflow} (${I.runId}).`},"workflow-stop"):kn({type:"info",text:`Stopped ${S.length} active workflows.`},"workflow-stop"),!0},[kn,hl]);We(()=>{if(!Kt.shouldRender)return;let d=o(()=>{Rf("stopped by Ctrl+C")},"handleSigint");return process.on("SIGINT",d),()=>{process.off("SIGINT",d)}},[Rf,Kt.shouldRender]),Yn(Cn.Critical,d=>{let w=d.name==="escape",S=Date.now(),I=w&&!fe&&!jr&&dl&&j.pendingInputs.length===0&&(H||Kt.shouldRender),v=I&&(d.meta===!0||S-XC.current<JG);if(XC.current=I?S:0,yA({keyName:d.name,ctrl:!!d.ctrl,isTranscriptMode:fe,isAwaitingUserInteraction:jr,isInputEmpty:dl,isDoubleEscape:v,pendingInputCount:j.pendingInputs.length,hasTranscriptTextSelection:!!di,hasActiveWorkflow:Kt.shouldRender}))return Rf(d.ctrl?"stopped by Ctrl+C":"stopped by Escape");if(!H)return!1;switch(wA({keyName:d.name,ctrl:!!d.ctrl,isTranscriptMode:fe,isAwaitingUserInteraction:jr,isInputEmpty:dl,isDoubleEscape:v,pendingInputCount:j.pendingInputs.length,hasTranscriptTextSelection:!!di}).kind){case"interrupt":return bf(),YC(),!0;case"pop-pending-input":return Qt(),!0;default:break}return!1},[H,fe,jr,dl,j.pendingInputs.length,Qt,bf,YC,Rf,di,Kt.shouldRender]),Yn(Cn.Critical,d=>{let w=mA({itemsLength:tn.length,currentResponse:rt.currentResponse,thinkingContent:rt.thinkingContent,activeToolCallsLength:rt.activeToolCalls.length}),S=hA({keyName:d.name,hasTranscript:w,historyScrollOffset:Tr,reviewPageSize:Nl,reviewWheelStep:PC,hasMouse:!!d.mouse,mouseButton:d.mouse?.button,mouseAction:d.mouse?.action,usesManagedMouseClicks:KT,supportsMouseTracking:Ye.supportsMouseTracking,usesRendererMouseTracking:sf,usesManagedMouseWheel:zT,supportsWheelHistory:Ye.supportsWheelHistory});if(S.kind==="mouse-phase"){let v=d.mouse;if(!v)return!1;S.phase==="press"&&Cr.current&&HC(Cr.current);let L=FC(v.row,v.column);if(S.phase==="press"){if(!L||!w)return hi||ut?(Wg(),!0):(pn(),!1);let O=YL({previous:IT.current,time:Date.now(),row:v.row,column:v.column});IT.current=O;let W=O.count>=3?"line":O.count===2?"word":"char";if(If(),Br(J=>zc(J,void 0)),fe?wg(void 0):yg(void 0),W!=="char"){let J=Qh(Hl(),L.point,W);if(J)return Cr.current={anchor:J.start,focus:J.end,didDrag:!1,mode:W,anchorSpan:J},ha(J.start,J.end,{updateSelectedItem:!1}),!0}return Cr.current={anchor:L.point,focus:L.point,didDrag:!1,mode:"char"},!0}if(!Cr.current)return!1;if(S.phase==="drag"){let O=zs.current,W=O?IL(O,v.row):0;W!==0&&Fd(W);let J=L??(O?Rx(O,v.row,v.column):void 0);if(!J)return!1;let Q=Cr.current;if(Q.mode!=="char"&&Q.anchorSpan){let $e=Qh(Hl(),J.point,Q.mode);if(!$e)return!1;let Ne=Lx(Q.anchorSpan,$e);return Cr.current={...Q,anchor:Ne.anchor,focus:Ne.focus,didDrag:!0},ha(Ne.anchor,Ne.focus,{updateSelectedItem:!1}),!0}return Cr.current={...Q,focus:J.point,didDrag:!0},ha(Q.anchor,J.point,{updateSelectedItem:!1}),!0}if(S.phase==="release"){let O=Cr.current,W=O.focus,Q=(L??(zs.current?Rx(zs.current,v.row,v.column):void 0))?.point??W;if(O.mode!=="char"&&O.anchorSpan){let $e=Qh(Hl(),Q,O.mode);if($e){let Ne=Lx(O.anchorSpan,$e);O.anchor=Ne.anchor,Q=Ne.focus}}return HC(O,{focusPoint:Q}),!0}}if(S.kind==="scroll-by")return If(),Fd(S.delta),!0;if(S.kind==="consume")return!0;let I=SA({key:d,isTranscriptMode:fe,isHistorySearchActive:Tt,historySearchMatchCount:zt.length,hasTextSelection:!!hi,hasFocusedItem:!!ut,canCopySelectedItem:ua,canCopySelectedToolInput:pf,canToggleSelectedDetail:mf,canCycleTranscriptSelection:ff});return xA({action:I,hasTranscript:w,isTranscriptMode:fe,pageScrollDelta:Nl,disarmHistorySearchSelection:If,scrollTranscriptBy:Fd,closeHistorySearchSurface:Gg,backspaceHistorySearchQuery:o(()=>{oa(v=>v.slice(0,-1)),br(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:o(v=>{br(L=>Tx(zt.length,L,v))},"stepHistorySearchSelection"),submitHistorySearchSelection:o(()=>{let v=zt[Qi];v&&(jg(v.itemId),Gg())},"submitHistorySearchSelection"),appendHistorySearchQuery:o(v=>{oa(L=>L+v),br(0)},"appendHistorySearchQuery"),openHistorySearchSurface:Ug,clearTranscriptSelectionFocus:Wg,exitTranscriptModeSurface:vf,toggleTranscriptShowAll:UC,scrollTranscriptHome:o(()=>{Bd(Math.max(0,Dl-nn.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:o(()=>{Hd(),pn()},"scrollTranscriptToBottom"),cycleTranscriptSelection:$C,copySelectedTranscriptText:o(()=>{Cf()},"copySelectedTranscriptText"),copySelectedTranscriptItem:o(()=>{DC()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:o(()=>{BC()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:NC,navigateSearchMatch:o(v=>{br(L=>{let O=Tx(zt.length,L,v),W=zt[O];return W&&jg(W.itemId),O})},"navigateSearchMatch"),dumpTranscriptToScrollback:o(()=>{TA({items:tn.filter(v=>!_w(v)),exitAltScreen:o(()=>{R(ec({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:o(v=>{R(v)},"writeToScrollback"),enterAltScreen:o(()=>{R(Gp({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[fe,tn,rt.currentResponse,rt.thinkingContent,rt.activeToolCalls,Tr,Dl,Nl,PC,ut,Wg,vf,UC,Ye,Fd,Bd,Hd,ff,Qi,pn,Cf,zt,Ug,Gg,If,$C,ua,DC,pf,BC,mf,NC,jg,hi,FC,Ye.supportsMouseTracking,di,KT,zT,Mg,Ko,sf,ha,nn.messageRows]),Yn(d=>{if(!Je)return!1;let w=d.sequence.trim().toLowerCase(),S=Je.runtimeGrantSuggestions?.find(J=>J.kind==="session"),I=Je.runtimeGrantSuggestions?.find(J=>J.kind==="persistent"),v=!!Je.input._alwaysConfirm,L=Je.runtimeGrantSuggestions!==void 0,O=I!==void 0||!L&&F.permissionMode==="accept-edits"&&!v,W=o(J=>{let Q=`${re("dialog.confirm")} ${Je.prompt}
|
|
166
|
+
\u2192 ${re(`confirm.result.${J}`)}`;!!ct.current.workerId?Zt({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:Q,timestamp:Date.now()}):$({type:"info",text:Q})},"recordConfirmResult");return w==="y"||w==="yes"?(W("approved"),ia(null),sr.current?.({confirmed:!0}),sr.current=null,!0):S&&(w==="s"||w==="session")?(W("approved_session"),ia(null),sr.current?.({confirmed:!0,runtimeGrantKind:"session"}),sr.current=null,!0):O&&(w==="a"||w==="always")?(W("approved_always"),ia(null),sr.current?.(I?{confirmed:!0,runtimeGrantKind:"persistent"}:{confirmed:!0,always:!0}),sr.current=null,!0):w==="n"||w==="no"||d.name==="escape"?(W("denied"),ia(null),sr.current?.({confirmed:!1}),sr.current=null,!0):d.insertable||d.name==="return"},{isActive:!!Je,priority:Cn.Critical});let kf=q(d=>{Wn(null),Wr.current?.(d),Wr.current=null},[]),wi=q((d,w,S,I,v)=>w.length===0||v?.aborted?Promise.resolve(void 0):new Promise(L=>{let O=o(Q=>{v?.removeEventListener("abort",W),Wr.current===O&&(Wr.current=null),L(Q)},"settle"),W=o(()=>{Wr.current===O&&(Wn(null),O(void 0))},"onAbort");Wr.current=O,v?.addEventListener("abort",W,{once:!0});let J=I?.defaultValue===void 0?-1:w.findIndex(Q=>Q.value===I.defaultValue);Wn({kind:"select",title:d,options:w,buffer:"",focusedIndex:Math.max(0,J),selectedIndices:S===!0&&J>=0?[J]:[],multiSelect:S,minSelections:I?.minSelections,maxSelections:I?.maxSelections})}),[]),ZO=q((d,w)=>wi(d,w.map(S=>({label:S,value:S}))).then(S=>Array.isArray(S)?S[0]:S),[wi]),e$=q(async d=>{let w=e.learning;if(!w)return;let S=d;if(!S){let O=await w.list({limit:200});if(O.items.length===0){Pd([{id:"learning-center-empty",text:"Learning Center has no learned capabilities.",tone:"accent"}]);return}let W=await wi("Learning Center \u2014 type to search",ZG(O.items));S=Array.isArray(W)?W[0]:W}if(!S)return;let I=await w.get(S),v=await wi(`${I.displayName} \xB7 ${I.carrier} \xB7 ${I.lifecycle}`,QG(I)),L=Array.isArray(v)?v[0]:v;L&&(await eV(w,I.capabilityId,L),ST(await w.getSnapshot()))},[e.learning,wi]),qC=q(async d=>{let w=d.options?Jh(d.options):[],S=await wi(Ex(d),w,!1);return S===void 0?Ea:Array.isArray(S)?S[0]??Ea:S},[wi]);We(()=>{let d=!1;return(async()=>{let{bindAskUserForConstruction:w}=await import("./construction-bootstrap-YCWHHUYO.js");d||w(qC)})(),()=>{d=!0,(async()=>{let{bindAskUserForConstruction:w}=await import("./construction-bootstrap-YCWHHUYO.js");w(null)})()}},[qC]);let ga=q((d,w,S)=>S?.aborted?Promise.resolve(void 0):new Promise(I=>{let v=o(O=>{S?.removeEventListener("abort",L),Wr.current===v&&(Wr.current=null),I(Array.isArray(O)?O[0]:O)},"settle"),L=o(()=>{Wr.current===v&&(Wn(null),v(void 0))},"onAbort");Wr.current=v,S?.addEventListener("abort",L,{once:!0}),Wn({kind:"input",prompt:d,defaultValue:w,buffer:""})}),[]);Yn(d=>{let w=rf.current;if(!w)return!1;if(d.name==="escape")return kf(void 0),!0;if(w.kind==="select"){let S=w.options.length;if(d.name==="up"||d.sequence==="k")return Wn(I=>I&&I.kind==="select"?{...I,focusedIndex:(I.focusedIndex-1+S)%S,error:void 0}:I),!0;if(d.name==="down"||d.sequence==="j")return Wn(I=>I&&I.kind==="select"?{...I,focusedIndex:(I.focusedIndex+1)%S,error:void 0}:I),!0;if(d.sequence===" "&&w.multiSelect)return Wn(I=>{if(!I||I.kind!=="select")return I;let v=I.focusedIndex,L=I.selectedIndices.includes(v)?I.selectedIndices.filter(O=>O!==v):[...I.selectedIndices,v];return{...I,selectedIndices:L,error:void 0}}),!0;if(d.name==="return"){let I=rf.current;if(!I||I.kind!=="select")return!1;if(I.multiSelect){let v=I.selectedIndices.length,{minSelections:L,maxSelections:O}=I,W=v===0&&L!==0?re("select.multiselect_empty"):L!==void 0&&v<L?re("select.multiselect_min",{min:String(L)}):O!==void 0&&v>O?re("select.multiselect_max",{max:String(O)}):void 0;if(W!==void 0)return Wn(Q=>Q&&Q.kind==="select"?{...Q,error:W}:Q),!0;let J=I.selectedIndices.slice().sort((Q,$e)=>Q-$e).map(Q=>I.options[Q]?.value).filter(Q=>typeof Q=="string"&&Q.length>0);kf(J)}else kf(I.options[I.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(d.sequence)){let I=Number.parseInt(d.sequence,10)-1;if(I>=0&&I<S)return w.multiSelect?Wn(v=>{if(!v||v.kind!=="select")return v;let L=v.selectedIndices.includes(I)?v.selectedIndices.filter(O=>O!==I):[...v.selectedIndices,I];return{...v,focusedIndex:I,selectedIndices:L,error:void 0}}):Wn(v=>v&&v.kind==="select"?{...v,focusedIndex:I,error:void 0}:v),!0}return!1}if(d.name==="return"){let S=rf.current;if(!S||S.kind!=="input")return!1;let I=S.buffer.trim();return kf(I===""?S.defaultValue??void 0:I),!0}return d.name==="backspace"||d.name==="delete"?(Wn(S=>S&&S.kind==="input"?{...S,buffer:S.buffer.slice(0,-1),error:void 0}:S),!0):(d.insertable||d.isPasted===!0)&&!d.ctrl&&!d.meta?(Wn(S=>S&&S.kind==="input"?{...S,buffer:S.buffer+d.sequence,error:void 0}:S),!0):!1},{isActive:!!Ge,priority:Cn.Critical}),We(()=>{if(E.length===0){if(n.uiHistory?.length){let d=ii(n.uiHistory);d.length!==n.uiHistory.length&&(n.uiHistory=d),V(nd({messages:n.messages,uiHistory:d}));return}n.messages.length>0&&V(nd({messages:n.messages}))}},[n.messages,n.uiHistory,E.length,V]);let qg=ye(!1);We(()=>{let d=!0;return qg.current=!1,Bf(n.gitRoot).finally(()=>{d&&(qg.current=!0)}),()=>{d=!1}},[n.gitRoot]),We(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&II({executionCwd:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:F.repoIntelligenceMode})},[n.gitRoot,n.runtimeInfo?.executionCwd,F.repoIntelligenceMode]);let Ul=q(()=>({onOutputSegmentStart:o((d,w)=>{dt.current||qu(w)||$T(d)},"onOutputSegmentStart"),onMemoryOutcomeDigest:o((d,w)=>{if(d.sessionId!==n.sessionId){e.events?.onMemoryOutcomeDigest?.(d,w);return}n.lineage=jf(n.lineage??Qe(n.messages),d,w?.jobId)},"onMemoryOutcomeDigest"),onMemoryReviewReceipt:o(d=>{if(d.sessionId!==void 0&&d.sessionId!==n.sessionId){e.events?.onMemoryReviewReceipt?.(d);return}n.lineage=Uf(n.lineage??Qe(n.messages),d)},"onMemoryReviewReceipt"),onMemoryNotice:o(d=>{if(d.sessionId!==void 0&&d.sessionId!==n.sessionId){e.events?.onMemoryNotice?.(d);return}let w=n.lineage??Qe(n.messages),S=Gf(w,{...d,createdAt:new Date().toISOString()});n.lineage=S,S!==w&&$({type:"info",text:`[memory] ${d.summaries.slice(0,3).join("; ")}`}),e.events?.onMemoryNotice?.(d)},"onMemoryNotice"),onThinkingDelta:o((d,w)=>{if(dt.current||or(w,"thinking",d,{append:!0}))return;if(w?.providerRequestId!==void 0){let v=_f(jo.current,{type:"thinking.delta",providerRequestId:w.providerRequestId,text:d});if(jo.current=v.state,!v.accepted)return}j.currentTool&&(Ie(void 0),Xe());let{header:S}=$_(je()+d),I=S?`[Thinking: ${S}]`:"[Thinking]";Mt($h(wt.current?.activeWorkerTitle?`[${wt.current.activeWorkerTitle}] ${I}`:I,wt.current?.activeWorkerTitle)),ie(d.length),be(d),ct.current.workerId&&(Rg("thinking",d),Uo.current={...Uo.current,thinkingItemId:ft.current.activeThinkingItemId})},"onThinkingDelta"),onThinkingEnd:o((d,w)=>{if(dt.current||or(w,"thinking",d))return;let S=je(),I=A_(S,d);I&&I!==S&&(se(),Ee(),ie(I.length),be(I)),ct.current.workerId&&NT(I),te()},"onThinkingEnd"),onTextDelta:o((d,w)=>{if(!dt.current&&!or(w,"assistant",d,{append:!0})){if(w?.providerRequestId!==void 0){let S=_f(jo.current,{type:"assistant.delta",providerRequestId:w.providerRequestId,text:d});if(jo.current=S.state,!S.accepted)return}j.currentTool&&(Ie(void 0),Xe()),te(),Mt(void 0),he(d),ct.current.workerId&&(Rg("assistant",d),Uo.current={...Uo.current,assistantItemId:ft.current.activeAssistantItemId})}},"onTextDelta"),onToolUseStart:o((d,w)=>{if(dt.current||or(w,"tool",Kk(d.name,d.input)))return;Hr.current.includes(d.name)||(Hr.current=[...Hr.current,d.name]);let S=wt.current?.activeWorkerTitle?`[${wt.current.activeWorkerTitle}] `:"",I={id:d.id,name:`${S}${d.name}`,status:K.Executing,startTime:Date.now(),input:d.input};DT(I),ct.current.workerId&&vr(I),Mt(Wi(I,wt.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:o((d,w,S)=>{if(dt.current||or(S,"tool",d,{skipIfExisting:!0}))return;ot(w.length),Rt(w);let I=BT(S?.toolId,d,v=>{let L=v.preview??"",O=E_(`${L}${w}`);return{...v,preview:O||void 0,input:v.input?O?{...v.input,preview:O}:{...v.input}:O?{preview:O}:void 0}});I&&(ct.current.workerId&&vr(I),Mt(Wi(I,wt.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:o((d,w)=>{if(dt.current||or(w,"tool",`${d.name} completed`))return;let S=typeof d.content=="string"?d.content:String(d.content??""),I=M_(S);if(/^\[(?:Tool Error|Error)\]/.test(S)){let L=tf(d.id,K.Error,I,I,d.name);L&&(ct.current.workerId&&vr(L),Mt(Wi(L,wt.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(S)){let L=tf(d.id,K.Cancelled,void 0,I,d.name);L&&(ct.current.workerId&&vr(L),Mt(Wi(L,wt.current?.activeWorkerTitle)));return}let v=tf(d.id,K.Success,void 0,I||void 0,d.name);v&&(ct.current.workerId&&vr(v),Mt(Wi(v,wt.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:o((d,w)=>{if(dt.current||or(w,"progress",d.message))return;let S=d.message.length>100?d.message.slice(0,97)+"...":d.message,I=ra(d.id,v=>({...v,preview:S,progressLines:[...(v.progressLines??[]).slice(-4),S]}));I&&ct.current.workerId&&vr(I),Mt(S)},"onToolProgress"),onStreamEnd:o(d=>{if(dt.current||qu(d))return;let w=vl(K.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),S=w[w.length-1];ct.current.workerId&&w.forEach(I=>vr(I)),S&&Mt(Wi(S,wt.current?.activeWorkerTitle)),te(),Xe(),Ie(void 0)},"onStreamEnd"),onChildActivityEnd:o(d=>{_T(d)},"onChildActivityEnd"),hasPendingInputs:o(()=>zC.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:o(d=>{if(!dt.current)for(let w of d){let S=w.trim();S&&(ct.current.workerId?Zt({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:S,timestamp:Date.now()}):$({type:"user",text:S}))}},"onMidTurnUserMessages"),onSidecarMessage:o(d=>{if(dt.current)return;let w=d.suggestedFix?`${d.content}
|
|
167
|
+
Suggested fix: ${d.suggestedFix}`:d.content;if(d.delivery==="budget-exhausted")PT({type:"sidecar",text:w,delivery:"budget-exhausted"},"sidecar-message");else{let S=d.verdict==="blocked"?"blocked":"revise";PT({type:"sidecar",text:w,verdict:S},"sidecar-message")}Xd.current=!0},"onSidecarMessage"),onError:o(d=>{let w=Xi();w?.name&&Mt(Wi(w,wt.current?.activeWorkerTitle));let S=vl(K.Error,()=>({error:d.message,output:void 0})),I=S[S.length-1];ct.current.workerId&&S.forEach($e=>vr($e)),I&&Mt(Wi(I,wt.current?.activeWorkerTitle));let v=TI(d),L=["Transient","Permanent","Tool Call ID","User Abort"];if(v.category===Yl.USER_ABORT)return;let W=[`\u274C API Error (${L[v.category]||"Unknown"}): ${d.message}`];v.shouldCleanup&&W.push(" \u{1F9F9} Cleaned incomplete tool calls"),v.category===Yl.PERMANENT?(W.push(" \u{1F4A1} This error requires manual intervention. Please check:"),d.message.includes("auth")||d.message.includes("401")?(W.push(" - Your API key is valid"),W.push(" - Run /config to check provider settings")):d.message.includes("400")?(W.push(" - The request parameters are correct"),W.push(" - Try restarting the conversation")):W.push(" - The error details above")):v.category===Yl.TRANSIENT?W.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):v.category===Yl.TOOL_CALL_ID&&W.push(" \u2705 Session cleaned, ready to continue");let J=W.join(`
|
|
168
|
+
`);!!ct.current.workerId?Zt({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:J,timestamp:Date.now()}):$({type:"error",text:J})},"onError"),onRetry:o((d,w,S,I)=>{if(dt.current)return;let v=rd(d,w,S);if(gl(I,v.text)||or(I,"progress",v.text))return;!!ct.current.workerId?Zt({...v,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):$(v)},"onRetry"),onProviderRecovery:o((d,w)=>{if(dt.current)return;let S=id(d);if(gl(w,S.text)||or(w,"progress",S.text))return;let I=!!ct.current.workerId;fV({clearResponse:Ke,clearThinkingContent:se,stopThinking:te,clearToolInputContent:Xe,clearCurrentTool:o(()=>Ie(void 0),"clearCurrentTool"),resetLiveToolCalls:Yi,clearLiveActivityLabel:o(()=>Mt(void 0),"clearLiveActivityLabel")}),I?Zt({...S,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):$(S)},"onProviderRecovery"),onManagedTaskStatus:o(d=>{if(dt.current)return;let w=ct.current;if(nP(d)){if(w.workerId&&w.workerId!==d.activeWorkerId)$O({workerId:d.activeWorkerId,workerTitle:d.activeWorkerTitle});else if(w.workerId!==d.activeWorkerId){let O=ft.current,W=O.activeToolGroupTools.some(J=>J.status===K.Executing);ft.current={workerId:d.activeWorkerId,workerTitle:d.activeWorkerTitle,...W?{activeToolGroupItemId:O.activeToolGroupItemId,activeToolGroupTools:O.activeToolGroupTools}:{activeToolGroupTools:[]}},ct.current={workerId:d.activeWorkerId,workerTitle:d.activeWorkerTitle}}}wt.current=d,Gd(d);let S=P_(d);NO(S);let I=Vc(d),L=Vc(d,{expanded:!0})??I;L&&(zd.current=L)},"onManagedTaskStatus"),onProviderRateLimit:o((d,w,S,I)=>{if(dt.current)return;let v=Yg.current;if(Yg.current=null,C_(v,{attempt:d,maxAttempts:w,delayMs:S}))return;let L=`[Rate Limit] Retrying in ${S/1e3}s (${d}/${w})...`;gl(I,L)||or(I,"progress",L)||kn({type:"info",icon:"\u23F3",text:L},"ratelimit")},"onProviderRateLimit"),onRetryAfter:o((d,w)=>{if(dt.current)return;Yg.current={attempt:d.attempt,maxAttempts:d.maxAttempts,waitMs:d.waitMs};let S=Math.round(d.waitMs/1e3),I=d.source==="exponential-backoff"?"no-header \u2192 backoff":d.source,L=`[${d.reason==="overloaded"?"Overloaded":"Rate limited"}] (${d.provider}) \u2014 retrying in ${S}s [${I}] (${d.attempt}/${d.maxAttempts})`;gl(w,L)||or(w,"progress",L)||kn({type:"info",icon:"\u23F3",text:L},"ratelimit")},"onRetryAfter"),onReasoningEffortRejected:o(d=>{cI(d.provider,d.model,d.effort,"observed",new Date().toISOString());let S=ns({provider:d.provider,model:d.model,effort:kt.current.effort,effortOverride:kt.current.effortOverride,permissionMode:kt.current.permissionMode,planModeEffort:kt.current.planModeEffort,thinking:kt.current.thinking,reasoningMode:kt.current.reasoningMode}).runtimeEffort;Ae(I=>({...I,effort:S,effortOverride:S!==void 0})),rs({effort:S}),Le.current.effort=S,kn({type:"info",icon:"\u26A0",text:`[${d.provider}/${d.model} \u4E0D\u652F\u6301 effort "${d.effort}",\u5DF2\u8BB0\u5F55;\u540E\u7EED\u4E0D\u518D\u63D0\u4F9B\u8BE5\u6863${S?`,\u5DF2\u5207\u5230 ${S}`:""}]`},"ratelimit")},"onReasoningEffortRejected"),onRepoIntelligenceTrace:o(d=>{dt.current||kn(V_(d),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:o(d=>{dt.current||fi(d)},"onTodoUpdate"),onScoutSuspiciousCompletion:o(d=>{dt.current||rP&&kn({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,w)=>{if(dt.current)return;if(w&&Jt(w),wt.current?.globalWorkBudget){let Q={...wt.current,budgetUsage:Math.min(wt.current.globalWorkBudget,(wt.current.budgetUsage??0)+1)};wt.current=Q,Gd(Q)}let S=d>1?je().trim():"",I=d>1?Dx(G()):"",v=d>1?[...Hr.current]:[],L=d>1?[...dn.current]:[],O=!!ct.current.workerId;xt(d),O&&Jd({clearOwner:!1});let W=pi.current.filter(Q=>Q.status===K.Executing),J=new Set(W.map(Q=>Q.id));if(Hr.current=[],dn.current=dn.current.filter(Q=>J.has(Q.id)),ir(W),Xe(),Ie(void 0),Mt($h(wt.current?.activeWorkerTitle?`[Thinking] [${wt.current.activeWorkerTitle}]`:void 0,wt.current?.activeWorkerTitle)),Ee(),d>1&&!O){let Q=Bx({thinking:S,response:I,toolCalls:L,toolNames:v});Ks.current?Ks.current(Q):V([...Q])}},"onIterationStart"),beforeToolExecute:o(async(d,w)=>{let S=Gn.current,I=La(S),v=VC.current,L=n.gitRoot;if(Zf(S,$g))return!0;if(WI(B.current,d,w))return`[Skipped] Previously denied operation. ${jI(B.current)}`;if(S==="plan"&&(Ii.has(d)||d==="undo"))return`[Blocked] Tool '${d}' is not allowed in plan mode (read-only). ${ZL}`;if(S==="plan"&&d==="bash"){let O=w.command??"";if(vi(O))return`[Blocked] Bash write operation not allowed in plan mode: ${O.slice(0,50)}... ${ZL}`}if(d==="bash"){let O=w.command??"";if(Aa(O,L??process.cwd(),n.runtimeInfo?.executionCwd??L??process.cwd()))return!0}if(d==="bash"){let O=w.command??"",W=DI(O);if(W.level==="dangerous"){let J=await Si(d,{...w,_dangerousCommand:!0});return J.confirmed?J.confirmed:(B.current=py(B.current,d,w,W.reason),`[Blocked] Dangerous command requires confirmation: ${W.reason}`)}}if(L){let O=!1;if(Ii.has(d)){let W=w.path;W&&_a(W,L)&&(O=!0)}if(d==="bash"){let W=w.command;W&&Xf(W,L)&&(O=!0)}if(O){let W=await Si(d,{...w,_alwaysConfirm:!0});if(Gn.current==="plan"&&(Ii.has(d)||d==="undo"))return!1;if(Gn.current==="plan"&&d==="bash"){let J=w.command??"";if(vi(J))return!1}return W.confirmed}}if(I.has(d)){if(S==="accept-edits"&&d==="bash"&&await Ma(d,w,v,zg.current??void 0))return!0;let O=await Si(d,w);if(Gn.current==="plan"&&(Ii.has(d)||d==="undo"))return!1;if(Gn.current==="plan"&&d==="bash"){let W=w.command??"";if(vi(W))return!1}if(!O.confirmed)return $({type:"info",text:re("cancelled")}),B.current=py(B.current,d,w),!1;O.always&&S==="accept-edits"&&(sp(d,w,!1),VC.current=Wa())}return!0},"beforeToolExecute"),askUser:o(async(d,w,S)=>{let I=kx(d.options?Jh(d.options):[],d),v=await wi(Ex(d),I,d.multiSelect,{minSelections:d.minSelections,maxSelections:d.maxSelections,defaultValue:d.default},S?.signal);if(v===void 0)return Ea;if(v===Vr){let L=await ga(d.customInputPrompt??d.question,d.customInputDefault,S?.signal);return L===void 0?Ea:{kind:"customInput",value:L}}if(Array.isArray(v)&&v.includes(Vr)){let L=await ga(d.customInputPrompt??d.question,d.customInputDefault,S?.signal);return L===void 0?Ea:v.map(O=>O===Vr?{kind:"customInput",value:L}:O)}return v},"askUser"),exitPlanMode:o(async d=>Gn.current!=="plan"?"not-in-plan-mode":(await Si("exit_plan_mode",{plan:d})).confirmed?(Xg("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:o(async(d,w,S)=>{let I=d.questions,v={},L=0;for(;L<I.length;){let O=I[L],W=kx(Jh(O.options),O);L>0&&W.push({label:re("select.back_prev"),value:oy});let J=`[${L+1}/${I.length}] ${O.question}`,Q=await wi(J,W,O.multiSelect,{minSelections:O.minSelections,maxSelections:O.maxSelections,defaultValue:O.default},S?.signal);if(Q===void 0)return;if(!Array.isArray(Q)&&Q===oy){L--;continue}if(!Array.isArray(Q)&&Q===Vr){let $e=await ga(O.customInputPrompt??O.question,O.customInputDefault,S?.signal);if($e===void 0)return;v[O.question]={kind:"customInput",value:$e},L++;continue}if(Array.isArray(Q)&&Q.includes(Vr)){let $e=await ga(O.customInputPrompt??O.question,O.customInputDefault,S?.signal);if($e===void 0)return;v[O.question]=Q.map(Ne=>Ne===Vr?{kind:"customInput",value:$e}:Ne),L++;continue}v[O.question]=Q,L++}return v},"askUserMulti"),askUserInput:o(async(d,w,S)=>ga(d.question,d.default,S?.signal),"askUserInput"),onCompactStart:o(()=>{qe()},"onCompactStart"),onCompactStats:o(d=>{cl.current=d.tokensBefore,xr(d.tokensAfter)},"onCompactStats"),onCompactedMessages:o(async(d,w,S)=>{let I=Lh(n.lineage,d,w,S);if(!I)return;n.messages=d,w?.artifactLedger&&w.artifactLedger.length>0&&(n.artifactLedger=Zo(n.artifactLedger??[],w.artifactLedger),n.sessionSnapshotDirty=!0),n.lineage=I;let v=Jo(d);if(n.contextTokenSnapshot={currentTokens:v,baselineEstimatedTokens:v,source:"estimate"},Pr(n),xr(v),e.runtimeRunner){n.lineage===I&&(n.lineage=va(I));return}let L=Od.current;if(!L)throw new Error("Ink REPL compaction persistence is not initialized.");try{await L(),n.lineage===I&&(n.lineage=va(I))}catch(O){throw mt({source:"repl:compaction",level:"error",message:"Failed to durably persist compacted session history.",detail:O}),O}},"onCompactedMessages"),onCompact:o(d=>{Pt();let w=cl.current??d;cl.current=null;let S=Math.round(w/1e3);kn({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${S}k tokens)`},"compact")},"onCompact"),onCompactEnd:o(()=>{cl.current=null,Pt()},"onCompactEnd"),onIterationEnd:o(d=>{d.scope!=="worker"&&(n.contextTokenSnapshot=d.contextTokenSnapshot),xr(d.tokenCount)},"onIterationEnd")}),[ie,be,te,he,Ie,ot,Rt,Xe,xt,Ee,F,n,qe,Pt,$,se,je,G,Jd,Mt,Rg,NT,vr,$T,DT,BT,tf,vl,Xi,Yi,ir,_T,gl,or,kn,j.currentTool]),Si=o((d,w,S,I)=>{let v=k_(d,w),L=S?.map(J=>J.label)??[],O=S===void 0?[]:[Rc,...L.map(J=>`Runtime scope: ${J}`)],W=O.length>0?`${v}
|
|
169
|
+
${O.join(`
|
|
170
|
+
`)}`:v;return FO.current(()=>I?.aborted?Promise.resolve({confirmed:!1}):(Hn(),new Promise(J=>{let Q=o(Ne=>{I?.removeEventListener("abort",$e),sr.current===Q&&(sr.current=null),J(Ne)},"settle"),$e=o(()=>{sr.current===Q&&(ia(null),Q({confirmed:!1}))},"onAbort");sr.current=Q,I?.addEventListener("abort",$e,{once:!0}),ia({tool:d,input:w,prompt:W,...S!==void 0?{runtimeGrantSuggestions:S}:{}})})))},"showConfirmDialog"),t$=o(async(d,w)=>{let S=await Si(d.toolName,{...d.input,...d.reason!==void 0?{_reason:d.reason}:{},...d.executionCwd!==void 0?{_executionCwd:d.executionCwd}:{},...d.risk!==void 0?{_runtimeRisk:d.risk}:{}},d.grantSuggestions??[],w.signal);return Jm(d,S)},"requestRuntimePermission");We(()=>(p(async(d,w,S)=>(await Si(d.name,{...d.input,_reason:`[auto-mode] ${w}`,...S&&S.length>0?{_classifierSignals:S}:{}})).confirmed?"allow":"block"),h(d=>{cr(d)}),()=>{p(null),h(null)}),[]),We(()=>{m(F)},[F,m]),We(()=>{let d=o(()=>Ul(),"resolve");return sy({askUser:o((w,S)=>{let I=d().askUser;if(!I)throw new Error("askUser surface unavailable");return I(w,void 0,S)},"askUser"),askUserMulti:o(async(w,S)=>{let I=d().askUserMulti;return I?I(w,void 0,S):void 0},"askUserMulti"),askUserInput:o(async(w,S)=>{let I=d().askUserInput;return I?I(w,void 0,S):void 0},"askUserInput")}),()=>sy(void 0)},[Ul]);let eo=o(async(d,w,S=n.lineage?_t(n.lineage,n.lineage.activeEntryId):n.messages,I)=>{jo.current=ry(),Uo.current={};let v={...Ul(),getCostReport:P,onWorkflowProcessEvent:EO,onWorkflowAgentDigest:o(({runId:Q,event:$e})=>{let Ne=$e.data??{},mn=typeof Ne.summary=="string"?Ne.summary:void 0,Kn=typeof Ne.name=="string"?Ne.name:void 0,to=pl.current,Vl=mn!==void 0||Kn!==void 0?ru(mn,Kn):to?.runId===Q?to.locale??"en":"en",Ti=mp($e,Vl,Q);Ti&&(ct.current.workerId?Zt({id:`wf-digest-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"assistant",text:Ti,timestamp:Date.now()}):lr([{type:"assistant",text:Ti}]))},"onWorkflowAgentDigest")},O=Xl(n.gitRoot).getSystemPromptSnippet(),W=K_(d.context,n.gitRoot,n.contextTokenSnapshot,O,n.runtimeInfo?.executionCwd);I&&I.length>0&&(W.inputArtifacts=[...I]),W.planModeBlockCheck=(Q,$e)=>Gn.current!=="plan"?null:io(Q,$e,n.gitRoot??n.runtimeInfo?.executionCwd??process.cwd());let J={...d,session:{...d.session,initialMessages:S,initialExtensionState:n.extensionState??{},initialExtensionRecords:n.extensionRecords??[]},context:W,events:v,abortSignal:ve()};try{return e.runtimeRunner?await e.runtimeRunner({options:J,prompt:w,sessionId:n.sessionId,permissionMode:Gn.current,autoModeSettings:s,requestPermission:t$,legacyPermissionHook:!0}):await Ql(J,w)}finally{vI()}},"runAgentRound"),Vn=q(d=>{let w=Qe([...d],n.lineage);return n.lineage=w,w},[n]),Gl=q(async d=>{if(n.messages.length===0)return;let w=ao(n.messages),S=ii(d??_.current);_.current=S,n.title=w,n.uiHistory=S;let I=n.lineage??Vn(n.messages);n.lineage=I;let v={...n.extensionStateDirty?{extensionState:n.extensionState??{}}:{},...n.extensionRecordsDirty?{extensionRecords:n.extensionRecords??[]}:{}},L=Qc({messages:n.messages,title:w,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Le.current.session?.tag,uiHistory:S,lineage:I,artifactLedger:n.artifactLedger,...v});await rV(i,n.sessionId,L,n.sessionSnapshotDirty===!0),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,Bh()&&Fh("persist",Hh(n.messages,I,{historyItems:y.current,foregroundItems:yn.current,streamingResponse:de.current.currentResponse,streamingThinking:de.current.thinkingContent,persistedUiHistory:_.current}))},[n,Vn,i]),Jg=q(()=>{if($d.current)return $d.current;let d=(async()=>{try{for(;Fo.current.requested;){Fo.current.requested=!1;let w=Fo.current.uiHistoryOverride;Fo.current.uiHistoryOverride=void 0,await Gl(w)}}finally{$d.current=null,Fo.current.requested&&Jg().catch(Fs)}})();return $d.current=d,fg.current=d,d},[Gl]),xi=q(d=>{if(d!==void 0){let w=ii(d);_.current=w,Fo.current.uiHistoryOverride=w}return Fo.current.requested=!0,Jg()},[Jg]),n$=q(async()=>{if(ul.current)return ul.current;let d=(async()=>{dt.current=!0,Me(),ge(),te(),se(),Xe(),Ke(),Ie(void 0),oe(!1),await fg.current.catch(Fs),await Od.current?.().catch(Fs),zi(!1),N&&b?.isRaw&&A(!1),b?.pause?.(),b?.unref?.(),T(),l()})();return ul.current=d.finally(()=>{ul.current=null}),ul.current},[Me,Ke,se,Xe,T,N,l,Ie,oe,A,b,ge,te]);We(()=>(Od.current=xi,()=>{Od.current=null}),[xi]);let Ef=q(d=>{if(d.length===0)return;let w=Zh(_.current,d);_.current=w,xi(w).catch(Fs)},[xi]),lr=q(d=>{d.length!==0&&(V([...d]),Ef(d))},[V,Ef]),ya=q(d=>{d.length!==0&&(V([...d]),_.current=Zh(_.current,d))},[V]);We(()=>(Ks.current=lr,()=>{Ks.current=null}),[lr]);let JC=q(async d=>{Hn();let w=Xd.current;Xd.current=!1,n.messages=d.messages,n.contextTokenSnapshot=d.contextTokenSnapshot,JL(n,d),Vn(d.messages);let S=d.success===!1&&!d.interrupted,I=je().trim(),v=Dv(d.messages,G(),d.managedTask?.verdict.summary,d.lastText),L=ft.current.workerTitle,O=[...yn.current],W=O.length>0;Qd(O);let J=W&&O.some(ce=>ce.type==="assistant"&&"text"in ce&&tP(String(ce.text??""),L)),Q=O.filter(ce=>ce.type!=="assistant"||!("text"in ce)||tP(String(ce.text??""),L)),$e=!S&&v&&!J,Ne=[...Js.current],mn=O_(d,{sidecarMessageDelivered:w}),Kn=S?[]:Ne.length===0?rP?mn:mn.filter(ce=>!KS(ce)):[],to=W?[]:Bx({thinking:I,response:void 0,toolCalls:dn.current,toolNames:Hr.current}),Vl=[...Q.map(ce=>Do(ce)),...to,...S?[]:Ne.map(ce=>Do(ce)),...Kn.map(ce=>eP(ce)),...$e?[{type:"assistant",text:d.interrupted?`${v}
|
|
171
|
+
|
|
172
|
+
[Interrupted]`:v}]:!v&&!J&&!d.interrupted&&!S?[{type:"info",text:"[No response text was produced for this round]"}]:[]],Ti=Zh(_.current,Vl);se(),Ke();let Kl=[...Q.map(ce=>Do(ce)),...to,...S?[]:[...Kn.map(ce=>eP(ce)),...Ne.map(ce=>Do(ce))],...$e?[{type:"assistant",text:d.interrupted?`${v}
|
|
173
|
+
|
|
174
|
+
[Interrupted]`:v}]:!v&&!J&&!d.interrupted&&!S?[{type:"info",text:"[No response text was produced for this round]"}]:[]];V(Kl),Hr.current=[],dn.current=[],Yi(),Xe(),Ie(void 0),Mt(void 0),Il(),Wo.current=[],Js.current=[],yl([]),Gt(),xi(Ti).catch(Fs)},[V,Gt,Xe,Ke,se,n,Hn,G,je,xi,Vn,Yi,Il,Ie,Mt,j.currentIteration]),wa=q(async d=>{let w=d.trim();w&&($({type:"user",text:w}),Vs(S=>S+1),Pr(n))},[$,n]),Sa=q(async d=>{let w=n.contextTokenSnapshot,S;try{S=await is(d,{workingDirectory:Le.current.context?.executionCwd??process.cwd(),projectRoot:n.gitRoot??void 0,sessionId:n.sessionId,environment:{},executeDynamicContext:n.skillDynamicContext?.execute,disableDynamicContext:n.skillDynamicContext?.disable})}catch(v){if(!(v instanceof ja))throw v;let L=`[${v.message}]`;return $({type:"info",text:L}),tu({success:!1,lastText:L,signal:"BLOCKED",signalReason:v.message,messages:[...n.messages],sessionId:n.sessionId},w)}if(!S){let v=cx(d)?Ri(d.trim()):null;if(!v)return;let O=`[Unknown command: /${v.skillInvocation?.name??v.command}. Type /help for available commands]`;return tu({success:!0,lastText:O,messages:[...n.messages,{role:"user",content:d},{role:"assistant",content:O}],sessionId:n.sessionId},w)}let I=await ks({...Le.current,provider:F.provider,thinking:F.thinking,reasoningMode:F.reasoningMode},S,d,v=>$({type:"info",text:v}));if(I.mode==="manual"||!I.prompt||!I.options)return I.manualOutput&&$({type:"info",text:I.manualOutput}),await I.finalize(),tu({success:!1,lastText:"",signal:"BLOCKED",signalReason:I.manualOutput??"Queued Skill invocation was blocked.",messages:[...n.messages],sessionId:n.sessionId},w);try{let v=I.mode==="fork"?[]:n.lineage?_t(n.lineage,n.lineage.activeEntryId):n.messages,L=await eo(I.options,I.prompt,v);if(await I.finalize(),I.mode!=="fork")return L;let O=L.messages.find(J=>J.role==="user"),W=L.messages.slice().reverse().find(J=>J.role==="assistant");return tu({...L,messages:[...n.messages,...O?[O]:[],...W?[W]:[]]},w)}catch(v){throw await I.finalize(v instanceof Error?v:new Error(String(v))),v}},[$,n,F.provider,F.reasoningMode,F.thinking,eo]),xa=q(async(d,w)=>{let S=jl.current;dt.current=!1,ll.current=!1,Xd.current=!1,sl(!0);try{return await fA({initialPrompt:d,runRound:w,shiftPendingPrompt:D,peekPendingPromptDelivery:xe,onRoundComplete:o(async I=>{jl.current===S&&await JC(I)},"onRoundComplete"),onBeforeQueuedRound:o(async I=>{dt.current=!1,ll.current=!1,await wa(I)},"onBeforeQueuedRound"),shouldContinue:o(I=>!dt.current&&I.success!==!1,"shouldContinue"),shouldDrainQueuedPrompts:o(()=>al.current?de.current.pendingInputs.length===0?(al.current=!1,!0):!1:!0,"shouldDrainQueuedPrompts")})}finally{sl(!1)}},[xe,JC,D,wa]),QC=q(async d=>{if(n.messages.length===0)return"empty";if(!Po(F,"Recovering into a new session",Cd))return"blocked";let S=n.sessionId,I=n.lineage??Vn(n.messages);n.lineage=I;let v=n.artifactLedger?structuredClone(n.artifactLedger):void 0,L=Kf({sourceSessionId:S,messages:n.messages,lineage:I,artifactLedger:v,reason:"provider session recovery"}),O=n.title||ao(n.messages);await i.save(n.sessionId,Qc({messages:n.messages,title:O,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Le.current.session?.tag,uiHistory:_.current,lineage:I,artifactLedger:v,extensionState:n.extensionState,extensionRecords:n.extensionRecords}));let W=Rs(),J=Qe(L.messages);await i.save(W,Qc({messages:L.messages,title:L.title,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Le.current.session?.tag,uiHistory:[],lineage:J,artifactLedger:v}));let Q=new Date().toISOString();n.sessionId=W,n.messages=L.messages,n.uiHistory=[],n.title=L.title,n.contextTokenSnapshot=void 0,n.lineage=J,n.artifactLedger=v,n.extensionState=void 0,n.extensionRecords=void 0,n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,n.createdAt=Q,n.lastAccessed=Q,_.current=[],Le.current.session={...Le.current.session,id:W},xr(null),ne(),fi([]),wy()?.reset(),z(W),g?.writer.update({sessionId:W}),ya([{type:"info",text:`Recovered into new session ${W}
|
|
175
|
+
Source session saved: ${S}
|
|
176
|
+
Raw provider history was not replayed.`}]),await i.save(W,Qc({messages:n.messages,title:n.title,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Le.current.session?.tag,uiHistory:_.current,lineage:n.lineage,artifactLedger:n.artifactLedger}));let $e=Vf(d);try{await wa($e),await xa($e,async Ne=>{let mn=await Sa(Ne);if(mn)return mn;let Kn=Kc(Ne,Le.current.context?.executionCwd??process.cwd());for(let to of Kn.warnings)$({type:"info",text:to});return eo(Le.current,Kn.promptText,n.messages,Kn.inputArtifacts)})}catch(Ne){let mn=Ne instanceof Error?Ne.message:String(Ne);return lr([{type:"error",text:`[Recover failed] ${mn}`}]),"failed"}return"recovered"},[$,lr,ya,ne,n,F,Vn,xa,Sa,wa,i,g]),Qg=q(async()=>{let d=D();if(!d||!d.trim())return;let w=d.trim();await wa(w),await xa(w,async S=>await Sa(S)??eo(Le.current,S))},[eo,xa,Sa,D,wa]),Zg=q(d=>{let w=d[d.length-1];if(w?.role!=="assistant")return;let S=Ua(w);V(S.map(so))},[V]),ZC=q(async(d,w)=>{let S=await ks({...Le.current,provider:F.provider,thinking:F.thinking,reasoningMode:F.reasoningMode},d,w,I=>$({type:"info",text:I}));if(S.mode==="manual"){S.manualOutput&&$({type:"info",text:S.manualOutput}),await S.finalize();return}if(!S.prompt||!S.options){await S.finalize();return}sl(!0);try{let I=S.mode==="fork"?[]:n.lineage?_t(n.lineage,n.lineage.activeEntryId):n.messages,v=jl.current,L=await eo(S.options,S.prompt,I);if(jl.current!==v)await S.finalize();else{let O=_.current,W=[];if(S.mode==="fork"){let J=L.messages.find($e=>$e.role==="user");J&&n.messages.push(J);let Q=L.messages.slice().reverse().find($e=>$e.role==="assistant");if(Q){n.messages.push({role:"assistant",content:Q.content}),Vn(n.messages);for(let $e of Ua(Q)){let Ne=so($e);$(Ne),W.push(Ne)}}}else{n.messages=L.messages,n.contextTokenSnapshot=L.contextTokenSnapshot,Vn(L.messages),Zg(L.messages);let J=L.messages[L.messages.length-1];if(J?.role==="assistant")for(let Q of Ua(J))W.push(so(Q))}JL(n,L),await Gl(Zh(O,W)),Bh()&&Fh("round-end",Hh(n.messages,n.lineage,{historyItems:y.current,foregroundItems:yn.current,streamingResponse:de.current.currentResponse,streamingThinking:de.current.thinkingContent,persistedUiHistory:_.current})),await S.finalize()}}catch(I){let v=I instanceof Error?I:new Error(String(I));throw await S.finalize(v),sl(!1),v}sl(!1),await Qg()},[$,Zg,n,F.provider,F.thinking,Qg,Gl,Vn,eo]),r$=q(async d=>{for(let w of d.pastedContents)if(w.type==="text"&&!w.content&&w.contentHash)try{let S=await Qv(w.contentHash);S&&(w.content=S)}catch{}},[]),i$=q(async d=>{let{displayText:w,fullText:S,pastedContents:I}=d;if(!S.trim()||!Dr||Je||Ge)return;for(let ce of I){if(ce.type!=="text"||ce.content.length<1024)continue;let De=qv(ce.content);Jv(De,ce.content)}if(HT(!1),H){if(!ug)return;if(j.pendingInputs.length>=5){kn({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}let ce=cx(S),De=ce?Ri(S.trim()):null,rn=De!==null&&De.skillInvocation===void 0&&rb(De.command,n.gitRoot??void 0),En=Xl(n.gitRoot),xn;try{xn=rn?void 0:Lv(S,Tn=>En.has(Tn),qg.current)}catch(Tn){if(!(Tn instanceof ja))throw Tn;kn({type:"info",icon:"\u26A0",text:Tn.message},"multiple-user-skill-references");return}if(ce&&!xn){kn({type:"info",icon:"\u26A0",text:uA},dA);return}let Rr=xn?{delivery:"host"}:void 0;dg();let zn=j.currentTool;if(zn&&ql(zn)?.interruptBehavior==="cancel"){nr(S,Rr),Me({preservePendingInputs:!0}),Dd(""),Nd(!0),Vs(X=>X+1),Pr(n);return}nr(S,Rr),Dd(""),Nd(!0),Vs(Tn=>Tn+1),Pr(n);return}dg();let v=Dx(G()),L=yn.current.map(ce=>Do(ce)),O=L.length>0;L.length>0&&(Qd(yn.current),ya(L)),!O&&v&&ya([{type:"assistant",text:v+`
|
|
177
|
+
|
|
178
|
+
[Interrupted]`}]),ya([{type:"user",text:w}]),Dd(""),Nd(!0),Vs(ce=>ce+1),Bh()&&Fh("turn-start",Hh(n.messages,n.lineage,{historyItems:y.current,foregroundItems:yn.current,streamingResponse:de.current.currentResponse,streamingThinking:de.current.thinkingContent,persistedUiHistory:_.current})),oe(!0),dt.current=!1,ll.current=!1,++jl.current,Gd(null),Ys(null),wt.current=null,zd.current=null,Mt(void 0),Il(),Wo.current=[],Js.current=[],yl([]),Vo(),Sl(void 0),Hr.current=[],dn.current=[],Yi(),bg(),Ke(),Xe(),Ie(void 0),Gt(),pe(),Pr(n),await new Promise(ce=>setTimeout(ce,50));let W=o(ce=>{if(ce.stage==="started"||ce.stage==="generating"||ce.stage==="validating"||ce.stage==="ready"){Ys(ce.message);return}Ys(null)},"handleWorkflowBuilderEvent"),J=Tg,Q=o(ce=>{if(ce.type==="event")return;let De=jt(ce.text).trimEnd();if(De.trim()){if(ce.type==="error"){$({type:"error",text:De});return}if(ce.type==="assistant"){lr([{type:"assistant",text:De}]);return}kn({type:"info",text:De},"workflow-message")}},"handleWorkflowRunMessage"),$e=o(async(ce,De,rn)=>{if(Yf({source:ce.source}).action==="none")return!1;let xn=[],Rr=console.log;console.log=(...ae)=>{xn.push(Ox(ae))};let zn=!1,Tn=o(()=>{zn||(zn=!0,n.messages.push({role:"user",content:De||ce.request}))},"commitWorkflowUserMessage"),X={...rn,onWorkflowRunMessage:o(ae=>{if(rn.onWorkflowRunMessage?.(ae),ae.type!=="assistant"||ae.final!==!0)return;let we=jt(ae.text).trimEnd();we.trim()&&(Tn(),n.messages.push({role:"assistant",content:we}),Vn(n.messages),xi().catch(Fs),de.current.pendingInputs.length>0&&(al.current=!0))},"onWorkflowRunMessage")};try{let ae=await hp({request:ce.request,callbacks:X,approval:F.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:ce.displayName,processSource:ce.processSource??"command",...ce.builtin!==void 0?{builtin:ce.builtin}:{},onBuilderEvent:X.onWorkflowBuilderEvent});return ae==="started"&&de.current.pendingInputs.length>0&&(al.current=!0),qf({outcome:ae})}finally{Ys(null),console.log=Rr;let ae=$x(xn.filter((we,Ht,Xt)=>Xt.indexOf(we)===Ht));ae&&$({type:"info",text:ae})}},"runWorkflowInvocation"),Ne=Ri(S.trim()),mn;try{mn=Ne||S.trim().startsWith("!")?void 0:await is(S.trim(),{workingDirectory:Le.current.context?.executionCwd??process.cwd(),projectRoot:n.gitRoot??void 0,sessionId:n.sessionId,environment:{},executeDynamicContext:n.skillDynamicContext?.execute,disableDynamicContext:n.skillDynamicContext?.disable})}catch(ce){if(!(ce instanceof ja))throw ce;$({type:"info",text:`[${ce.message}]`});return}if(Ne||mn){let ce=!1,De=o(X=>{Ne?.command==="workflow"&&(ce||(ce=!0,n.messages.push({role:"user",content:S.trim()})),n.messages.push({role:"assistant",content:X}),Vn(n.messages),xi().catch(Fs))},"commitSlashWorkflowFinalMessage"),rn={getRuntimeStatus:e.getRuntimeStatus,validateSetupA2AConfig:e.validateSetupA2AConfig,prepareSetupSandbox:e.prepareSetupSandbox,inspectSandbox:e.inspectSandbox,learning:e.learning,getLearningSummary:e.learning?()=>e.learning.getSnapshot():void 0,openLearningCenter:e$,exit:n$,saveSession:o(async()=>{if(n.messages.length>0){let X=ao(n.messages);n.title=X;let ae=n.lineage??Vn(n.messages);n.lineage=ae,await i.save(n.sessionId,Qc({messages:n.messages,title:X,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Le.current.session?.tag,uiHistory:_.current,lineage:ae,artifactLedger:n.artifactLedger,extensionState:n.extensionState,extensionRecords:n.extensionRecords})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1}},"saveSession"),startNewSession:o(()=>{let X=Rs(),ae=new Date().toISOString();n.sessionId=X,n.title="",n.uiHistory=[],n.contextTokenSnapshot=void 0,n.lineage=void 0,n.artifactLedger=void 0,n.extensionState=void 0,n.extensionRecords=void 0,n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,_.current=[],n.createdAt=ae,n.lastAccessed=ae,Wl(r),Le.current.session={...Le.current.session,id:X},xr(null),ne(),fi([]),wy()?.reset(),z(X),g?.writer.update({sessionId:X})},"startNewSession"),loadSession:o(async X=>{let ae=await i.load(X);if(ae){if(!Po(F,"Resuming a saved session",Cd))return"blocked";let Ht=await Xr({cwd:process.cwd()}),Xt=Mn(ae),ur=Xt??Ht;return Xt?.workspaceRoot&&!fp(Xt)&&(ur=Ht),n.messages=ae.messages,n.uiHistory=bo(ae.uiHistory),n.lineage=ae.lineage,n.artifactLedger=ae.artifactLedger,n.extensionState=ae.extensionState?structuredClone(ae.extensionState):void 0,n.extensionRecords=ae.extensionRecords?.map(zl=>({...zl})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ae.title,n.sessionId=X,n.contextTokenSnapshot=void 0,Wl(ur),n.sessionSnapshotDirty=JSON.stringify(ur)!==JSON.stringify(Xt),Le.current.session={...Le.current.session,id:X,tag:ae.tag},_.current=n.uiHistory??[],xr(null),ne(),fi([]),z(X),g?.writer.update({sessionId:X}),console.log(St.green(`[Session loaded: ${X}]`)),"loaded"}return"missing"},"loadSession"),listSessions:o(async()=>{let X=await i.list(n.gitRoot??void 0);if(X.length===0){console.log(St.dim(`
|
|
179
|
+
[No saved sessions]`));return}console.log(St.bold(`
|
|
180
|
+
Recent Sessions:
|
|
181
|
+
`));for(let ae of X.slice(0,10))console.log(` ${St.cyan(ae.id)} ${St.dim(`(${ae.msgCount} messages)`)} ${ae.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:o(()=>{n.uiHistory=[],ne(),fi([])},"clearHistory"),printHistory:o(()=>{if(n.messages.length===0){console.log(St.dim(`
|
|
182
|
+
[No conversation history]`));return}console.log(St.bold(`
|
|
183
|
+
Conversation History:
|
|
184
|
+
`));let X=n.messages.slice(-20);for(let ae=0;ae<X.length;ae++){let we=X[ae],Ht=St.cyan(we.role.padEnd(10)),Xt=dp(we.content),ur=Xt.slice(0,60).replace(/\n/g," "),zl=Xt.length>60?"...":"";console.log(` ${(ae+1).toString().padStart(2)}. ${Ht} ${ur}${zl}`)}console.log()},"printHistory"),switchProvider:o((X,ae)=>{let we=ns({provider:X,model:ae,effort:kt.current.effort,effortOverride:kt.current.effortOverride,permissionMode:kt.current.permissionMode,planModeEffort:kt.current.planModeEffort,thinking:kt.current.thinking,reasoningMode:kt.current.reasoningMode});Ae(Ht=>({...Ht,provider:X,model:ae})),Le.current.provider=X,Le.current.model=ae,Le.current.effort=we.runtimeEffort,we.diagnostic&&console.log(St.yellow(`
|
|
185
|
+
[${we.diagnostic}]`))},"switchProvider"),setThinking:o(X=>{let ae=X?"auto":"off";Ae(we=>({...we,thinking:X,reasoningMode:ae})),Le.current.thinking=X,Le.current.reasoningMode=ae},"setThinking"),setEffort:o(X=>{Ae(ae=>({...ae,effort:X,effortOverride:X!==void 0}))},"setEffort"),setReasoningMode:o(X=>{let ae=X!=="off";Ae(we=>({...we,thinking:ae,reasoningMode:X})),Le.current.thinking=ae,Le.current.reasoningMode=X},"setReasoningMode"),setAgentMode:o(X=>{Ae(ae=>({...ae,agentMode:X})),Le.current.agentMode=X},"setAgentMode"),setPermissionMode:Xg,setRepoIntelligenceRuntime:o(X=>{Ae(ae=>({...ae,...X.mode!==void 0?{repoIntelligenceMode:X.mode}:{},...X.trace!==void 0?{repoIntelligenceTrace:X.trace}:{}})),X.mode!==void 0&&(process.env.KODAX_REPO_INTELLIGENCE=X.mode,Le.current.context={...Le.current.context,repoIntelligenceMode:X.mode}),X.trace!==void 0&&(X.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,Le.current.context={...Le.current.context,repoIntelligenceTrace:X.trace})},"setRepoIntelligenceRuntime"),deleteSession:o(async X=>{await i.delete?.(X)},"deleteSession"),deleteAllSessions:o(async()=>{await i.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:o(async()=>{let X=await i.getLineage?.(n.sessionId);if(!X){console.log(St.dim(`
|
|
186
|
+
[No session tree available for this session]`));return}let ae=Ph(Wf(X));console.log(St.bold(`
|
|
187
|
+
Session Tree:
|
|
188
|
+
`)),ae.forEach(we=>console.log(` ${we}`)),console.log()},"printSessionTree"),switchSessionBranch:o(async X=>{if(!Po(F,"Switching session branches",Cd))return"blocked";let we=await i.setActiveEntry?.(n.sessionId,X,{summarizeCurrentBranch:!0});if(!we)return"missing";n.messages=we.messages,n.uiHistory=bo(we.uiHistory),n.lineage=we.lineage,n.artifactLedger=we.artifactLedger,n.extensionState=we.extensionState?structuredClone(we.extensionState):void 0,n.extensionRecords=we.extensionRecords?.map(ur=>({...ur})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=we.title,n.contextTokenSnapshot=void 0;let Ht=Mn(we),Xt=Ht??n.runtimeInfo??r;return Wl(Xt),n.sessionSnapshotDirty=JSON.stringify(Xt)!==JSON.stringify(Ht),_.current=n.uiHistory??[],xr(null),ne(),fi([]),console.log(St.green(`
|
|
189
|
+
[Switched to tree entry: ${X}]`)),console.log(St.dim(` Messages: ${we.messages.length}`)),"switched"},"switchSessionBranch"),labelSessionBranch:o(async(X,ae)=>{let we=await i.setLabel?.(n.sessionId,X,ae);if(!we)return!1;n.lineage=we.lineage;let Ht=ae&&ae.trim()?`checkpoint label set: ${ae.trim()}`:"checkpoint label cleared";return console.log(St.green(`
|
|
190
|
+
[${Ht}]`)),!0},"labelSessionBranch"),forkSession:o(async X=>{if(!Po(F,"Forking a session branch",Cd))return"blocked";let we=await i.fork?.(n.sessionId,X);if(!we)return"failed";n.sessionId=we.sessionId,n.messages=we.data.messages,n.uiHistory=bo(we.data.uiHistory),n.lineage=we.data.lineage,n.artifactLedger=we.data.artifactLedger,n.extensionState=we.data.extensionState?structuredClone(we.data.extensionState):void 0,n.extensionRecords=we.data.extensionRecords?.map(zl=>({...zl})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=we.data.title,n.contextTokenSnapshot=void 0;let Ht=Mn(we.data),Xt=Ht??n.runtimeInfo??r;Wl(Xt),n.sessionSnapshotDirty=JSON.stringify(Xt)!==JSON.stringify(Ht),_.current=n.uiHistory??[];let ur=new Date().toISOString();return n.createdAt=ur,n.lastAccessed=ur,Le.current.session={...Le.current.session,id:we.sessionId,tag:we.data.tag},xr(null),ne(),fi([]),z(we.sessionId),g?.writer.update({sessionId:we.sessionId}),console.log(St.green(`
|
|
191
|
+
[Forked session: ${we.sessionId}]`)),console.log(St.dim(` Messages: ${we.data.messages.length}`)),"forked"},"forkSession"),recoverSession:QC,rewindSession:o(async X=>{if(!Po(F,"Rewinding session",Cd))return"blocked";let we=await i.rewind?.(n.sessionId,X);if(!we)return"failed";n.messages=we.messages,n.uiHistory=bo(we.uiHistory),n.lineage=we.lineage,n.artifactLedger=we.artifactLedger,n.extensionState=we.extensionState?structuredClone(we.extensionState):void 0,n.extensionRecords=we.extensionRecords?.map(ur=>({...ur})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=we.title,n.contextTokenSnapshot=void 0;let Ht=Mn(we),Xt=Ht??n.runtimeInfo??r;return Wl(Xt),n.sessionSnapshotDirty=JSON.stringify(Xt)!==JSON.stringify(Ht),_.current=n.uiHistory??[],xr(null),ne(),fi([]),console.log(St.green(`
|
|
192
|
+
[Rewound session${X?` to ${X}`:" to previous turn"}]`)),console.log(St.dim(` Messages: ${we.messages.length}`)),"rewound"},"rewindSession"),getCostReport:o(()=>P.current?.()??null,"getCostReport"),getAutoModeStats:o(async()=>{if(Er(Gn.current))return e.runtimeAutoModeControl?e.runtimeAutoModeControl.getStats(n.sessionId):f.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:o(async X=>{if(Er(Gn.current)){if(e.runtimeAutoModeControl){let ae=await e.runtimeAutoModeControl.setEngine(n.sessionId,X);cr(ae?.engine??X);return}f.getGuardrail().setEngine(X),cr(X)}},"setAutoModeEngine"),createKodaXOptions:o(()=>({...Le.current,provider:F.provider,model:F.model,effort:Oe,thinking:F.thinking,reasoningMode:F.reasoningMode,agentMode:F.agentMode,guardrails:e.runtimeRunner?void 0:Px(Gn.current,f),events:Ul()}),"createKodaXOptions"),reloadAgentsFiles:o(async()=>await kI({cwd:process.cwd(),projectRoot:n.gitRoot??void 0}),"reloadAgentsFiles"),startCompacting:o(()=>{qe()},"startCompacting"),stopCompacting:o(()=>{Pt()},"stopCompacting"),onCompactStats:o(X=>{cl.current=X.tokensBefore,xr(X.tokensAfter)},"onCompactStats"),confirm:o(async X=>(await Si("confirm",{_alwaysConfirm:!0,_message:X})).confirmed,"confirm"),onWorkflowBuilderEvent:W,onWorkflowRunMessage:o(X=>{if(Q(X),X.type!=="assistant"||X.final!==!0)return;let ae=jt(X.text).trimEnd();ae.trim()&&De(ae)},"onWorkflowRunMessage"),onWorkflowRunUpdate:J,ui:{select:o(async(X,ae)=>ZO(X,ae),"select"),confirm:o(async X=>(await Si("confirm",{_alwaysConfirm:!0,_message:X})).confirmed,"confirm"),input:o(async(X,ae)=>ga(X,ae),"input")}},En=[],xn=console.log;console.log=(...X)=>{En.push(Ox(X))};let Rr=mn,zn;try{let X=Ne?await ss(Ne,n,rn,F,S.trim()):void 0;typeof X=="object"&&X!==null&&"invocation"in X&&(Rr=X.invocation),typeof X=="object"&&X!==null&&"workflow"in X&&(zn=X.workflow)}finally{Ys(null),console.log=xn}let Tn=$x(En);if(Tn&&$({type:"info",text:Tn}),zn){try{await $e(zn,S.trim(),rn)}finally{de.current.pendingInputs.length>0&&(al.current=!0),oe(!1),ge(),se()}return}if(Rr){oe(!1),ge(),oe(!0),pe(),Ee();try{await ZC(Rr,S.trim())}catch(X){let ae=X instanceof Error?X:new Error(String(X)),we=ae.name==="AbortError"||ae.message.includes("aborted")||ae.message.includes("ABORTED");console.log=xn,we?bf():lr([{type:"error",text:ae.message}])}finally{oe(!1),ge(),se()}return}oe(!1),ge();return}let Kn=await eS(S.trim());if(S.trim().startsWith("!")&&td(Kn)){oe(!1),ge();return}let to=Le.current.context?.executionCwd??process.cwd(),Vl=o(ce=>{ce.length!==0&&lr(ce.map(De=>({type:"info",text:De})))},"emitArtifactWarnings");Ee();let Ti=[],Kl=console.log;console.log=(...ce)=>{Ti.push(Ox(ce))};try{await xa(Kn,async ce=>{let De=await Sa(ce);if(De)return De;let rn=Kc(ce,Le.current.context?.executionCwd??process.cwd());return Vl(rn.warnings),eo(Le.current,rn.promptText,n.messages,rn.inputArtifacts)})}catch(ce){let De=ce instanceof Error?ce:new Error(String(ce));if(De.name==="AbortError"||De.message.includes("aborted")||De.message.includes("ABORTED"))console.log=Kl,bf();else{let En=De.message;if(De.message.includes("rate limit")||De.message.includes("Rate limit")?En=`[Rate Limit] ${De.message}
|
|
193
|
+
Suggestion: Wait a moment and try again, or switch provider with /mode`:De.message.includes("API key")||De.message.includes("not configured")?En=`[Configuration Error] ${De.message}
|
|
194
|
+
Suggestion: Set the required API key environment variable`:De.message.includes("network")||De.message.includes("ECONNREFUSED")||De.message.includes("ETIMEDOUT")?En=`[Network Error] ${De.message}
|
|
195
|
+
Suggestion: Check your internet connection`:(De.message.includes("token")||De.message.includes("context too long"))&&(En=`[Context Error] ${De.message}
|
|
196
|
+
Suggestion: Use /clear to start fresh`),console.log=Kl,ct.current.workerId?Zt({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:En,timestamp:Date.now()}):lr([{type:"error",text:En}]),yp({error:De,messageCount:n.messages.length})){let xn={type:"info",text:iu};if(ct.current.workerId?(Zt({id:`recover-hint-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,...xn,timestamp:Date.now()}),Ef([xn])):lr([xn]),(await Si("confirm",{_alwaysConfirm:!0,_message:gp})).confirmed)try{await QC(Kn)}catch(zn){let Tn=zn instanceof Error?zn.message:String(zn);lr([{type:"error",text:`[Recover failed] ${Tn}`}])}}}}finally{if(console.log=Kl,Ti.length>0){let De=Ti.filter((En,xn,Rr)=>Rr.indexOf(En)===xn),rn=$x(De);rn&&$({type:"info",text:rn})}if(!dt.current){let De=vl(K.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));De.length>0&&ct.current.workerId&&De.forEach(rn=>vr(rn))}oe(!1),ge(),Ke(),bg(),se();let ce=Jo(n.messages);n.contextTokenSnapshot={currentTokens:ce,baselineEstimatedTokens:ce,source:"estimate"},xr(ce)}},[Dr,n,F,ug,j.pendingInputs.length,i,Je,Ge,T,l,$,ne,pe,ge,Ke,Ul,ZC,ve,G,je,Zt,ya,lr,Zg,Gl,xi,Ef,Vn,xa,Sa,Qg,qe,Pt,Yi,bg,vl,vr,Vo,dg,ml,hl]),eI=Kt.shouldRender?me(M,{paddingX:1,children:me(d_,{viewModel:Kt})}):void 0,tI=H&&gi.shouldRender?me(M,{paddingX:1,children:me(c_,{viewModel:gi})}):void 0,nI=tC?me(M,{paddingX:1,children:me(zm,{viewModel:Ag})}):void 0,o$=eI||tI||nI?Nn(M,{flexDirection:"column",children:[tI,eI,nI]}):void 0,rI=Kt.shouldRender?Kt.counterText:void 0,s$=me(Wu,{left:me(Fu,{items:yC}),right:me(Hu,{items:wC}),queued:me(Gm,{pendingInputs:j.pendingInputs}),stashNotice:me(Xu,{text:wf}),notifications:me(zu,{notifications:yf}),inlineNotices:Fg.length>0?me(Vm,{notices:Fg}):void 0,activityBar:yi?Nn(M,{paddingX:1,flexDirection:"row",children:[Nn(M,{flexGrow:1,children:[yi?.showSpinner?me(qn,{color:ue("dark").colors.accent}):null,yi?Nn(k,{color:yi.kind==="waiting"?ue("dark").colors.warning:ue("dark").colors.accent,wrap:"truncate",children:[yi.showSpinner?" ":"",yi.text]}):null,yi?.showSpinner&&j.roundStartedAt!=null?me(TR,{roundStartedAt:j.roundStartedAt,charCount:j.currentResponse.length,theme:ue("dark")}):null]}),rI?me(k,{dimColor:!0,wrap:"truncate",children:rI}):H&&gi.shouldRender?me(k,{dimColor:!0,wrap:"truncate",children:p_(gi)}):null]}):void 0,todoSurface:o$,composer:me(Dm,{onSubmit:i$,onHistoryRecall:r$,onPopPendingInputs:o(()=>{let d=Y();if(d.length!==0)return d.join(`
|
|
197
|
+
---
|
|
198
|
+
`)},"onPopPendingInputs"),prompt:">",placeholder:bL({isLoading:H,canQueueFollowUps:ug,waitingReason:Ng}),focus:!Je&&!Ge&&!Tt,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:BO,onPasteFallback:XO}),inlineSuggestions:KO,helpSurface:FT?me(Fm,{sections:Wh()}):void 0,taskBar:Ol?me(Yu,{items:la.backgroundTask.items,overflowLabel:la.backgroundTask.overflowLabel,ctaHint:la.backgroundTask.ctaHint,showSpinner:H}):void 0,statusLine:me(M,{children:me(Is,{...hf,viewModel:hC})}),inlineDialogs:YO}),a$=me(Wu,{left:me(Fu,{items:yC}),right:me(Hu,{items:wC}),stashNotice:me(Xu,{text:wf}),notifications:me(zu,{notifications:yf}),composer:me(i_,{searchActive:Tt,selectionActive:!!(hi||ut),showAllActive:Vt,searchQuery:wn,searchCurrent:zt.length>0?Qi+1:0,searchCount:zt.length,searchDetailText:Og,pendingLiveUpdates:El,secondaryText:GO}),taskBar:Ol?me(Yu,{items:la.backgroundTask.items,overflowLabel:la.backgroundTask.overflowLabel,ctaHint:la.backgroundTask.ctaHint,showSpinner:Ct}):void 0,statusLine:me(M,{children:me(Is,{...hf,viewModel:Dg})})}),ey=q(d=>me(o_,{banner:d?.bannerVisible?me(Nx,{...zo}):void 0,items:_l,isLoading:Sn,viewportRows:nn.messageRows,viewportWidth:ee,scrollOffset:Tr,windowed:!!d?.rendererWindow,rendererWindow:d?.rendererWindow,transcriptModel:d?.rendererWindow?Ll:LC,maxLines:Bt,selectedTextRanges:Mg?Ud?.rowRanges:void 0,onMetricsChange:xf,onVisibleRowsChange:Tf}),[zo,_l,Sn,xf,Tf,Tr,LC,ee,Bt,Ud?.rowRanges,nn.messageRows,Mg]),ty=q(d=>me(s_,{banner:d?.bannerVisible?me(Nx,{...zo}):void 0,items:Ml,browse:{hintText:Zi.browseHintText},selection:Sf,search:lC,isLoading:Ct,isThinking:Re.isThinking,thinkingCharCount:Re.thinkingCharCount,thinkingContent:Re.thinkingContent,streamingResponse:Re.currentResponse,currentTool:Re.currentTool,activeToolCalls:Re.activeToolCalls,toolInputCharCount:Re.toolInputCharCount,toolInputContent:Re.toolInputContent,iterationHistory:Re.iterationHistory,currentIteration:Re.currentIteration,isCompacting:Re.isCompacting,agentMode:F.agentMode,managedPhase:Ct?Z?.phase:void 0,managedHarnessProfile:Ct?Z?.harnessProfile:void 0,managedWorkerTitle:Ct?Z?.activeWorkerTitle:void 0,managedRound:Ct?Z?.currentRound:void 0,managedMaxRounds:Ct?Z?.maxRounds:void 0,managedGlobalWorkBudget:Ct?Z?.globalWorkBudget:void 0,managedBudgetUsage:Ct?Z?.budgetUsage:void 0,managedBudgetApprovalRequired:Ct?Z?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Re.lastLiveActivityLabel,liveStatusLines:aa,viewportRows:nn.messageRows,viewportWidth:ee,scrollOffset:Tr,windowed:!!d?.windowed,animateSpinners:!!d?.rendererWindow&&da,rendererWindow:d?.rendererWindow,transcriptModel:d?.rendererWindow?Ll:lf,maxLines:Bt,showDetailedTools:Vt,showAllContent:Vt,selectedItemId:ar.selectionEnabled?ut:void 0,selectedTextRanges:di?.rowRanges,expandedItemKeys:ar.selectionEnabled?Fn:void 0,onMetricsChange:xf,onVisibleRowsChange:Tf}),[zo,F.agentMode,Ct,Fn,c.transcriptSpinnerAnimation,xf,Tf,Tr,XT,Z?.activeWorkerTitle,Z?.budgetApprovalRequired,Z?.budgetUsage,Z?.currentRound,Z?.globalWorkBudget,Z?.harnessProfile,Z?.maxRounds,Z?.phase,Ll,lf,Zi.browseHintText,ut,Sf,ee,da,Ml,Bt,Re.activeToolCalls,Re.currentIteration,Re.currentResponse,Re.currentTool,Re.isCompacting,Re.isThinking,Re.iterationHistory,Re.lastLiveActivityLabel,Re.thinkingCharCount,Re.thinkingContent,Re.toolInputCharCount,Re.toolInputContent,aa,di?.rowRanges,lC,Vt,nn.messageRows]),c$=fe?ty({bannerVisible:!1,windowed:Ft}):ey({bannerVisible:!1}),iI=fe?a$:s$,l$=c.enabled&&Ko,oI=Nn(M,{flexDirection:"column",width:ee,flexShrink:0,flexGrow:l$?1:0,children:[me(JS,{currentConfig:F,setCurrentConfig:Ae,isLoading:H,abort:Me,stopThinking:te,clearThinkingContent:se,setCurrentTool:Ie,setIsLoading:oe,onToggleHelp:DO,setShowHelp:HT,onSetThinking:o(d=>{Le.current.thinking=d},"onSetThinking"),onSetReasoningMode:o(d=>{Le.current.reasoningMode=d,Le.current.thinking=d!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:qO,onOpenTranscriptSearch:Ug,canOpenTranscriptSearch:fe&&!Je&&!Ge,isInteractiveDialogActive:!!(Je||Ge),onSetAgentMode:o(d=>{Le.current.agentMode=d},"onSetAgentMode"),onSetPermissionMode:o(d=>{Xg(d)},"onSetPermissionMode"),isInputEmpty:dl,onSavePermissionMode:_v}),Gs&&(c.enabled?null:me(oc,{items:[1],children:o(()=>me(Nx,{...zo},"banner"),"children")})),Ko?me(Pm,{width:ee,stickyHeader:Zi.stickyHeader,jumpToLatest:Zi.jumpToLatest,transcript:!c.enabled||!Ft?fe?ty({bannerVisible:!1}):ey({bannerVisible:!1}):void 0,renderTranscriptWindow:c.enabled&&Ft?d=>(()=>{let S=Bl(d).contentWindow;return fe?ty({bannerVisible:!1,windowed:!0,rendererWindow:S}):ey({bannerVisible:!1,rendererWindow:S})})():void 0,overlay:Kg,scrollTop:Tr,scrollHeight:Dl,viewportHeight:nn.messageRows,stickyScroll:!fe&&!jr&&hg,overscanRows:SV,scrollRef:IO,onWindowChange:zO,onScrollTopChange:bO,onStickyChange:RO,footer:iI}):Nn(qG,{children:[Nn(M,{flexDirection:"column",flexGrow:1,children:[c$,Kg?me(M,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:Kg}):null]}),iI]})]});return Eg?me(rw,{mouseTracking:qi.usesRendererMouseTracking,children:oI}):oI},"InkREPLInner"),vV=o(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return me(Gu,{children:me(Zu,{getPendingInputAgentId:o(()=>Af(e.context.sessionId,"/root"),"getPendingInputAgentId"),children:me(ku,{children:me(YS,{children:me(om,{cwd:t,gitRoot:n,children:me(IV,{...e})})})})})})},"InkREPL");function bV(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}o(bV,"isRawModeSupported");async function eg(e){if(!bV())throw new dy("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 Es,n=lo(),r=uo(),i=fo(n,r),{prepareRuntimeConfig:s}=await import("./utils-P7PBSL3R.js"),{loadCompactionConfig:a}=await import("./compaction-config-EGS4577X.js"),{resolveProvider:c}=await import("./dist-KFYN3OKD.js"),l=s(),u=$a({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,configuredProvider:l.provider,defaultProvider:Mf}),f=Na({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,explicitModel:e.model,configuredProvider:l.provider,configuredModel:l.model}),p=oV(e,l),h=Da({explicitEffort:e.effort,environmentEffort:process.env.KODAX_EFFORT,configuredEffort:l.effort}),m=ip(e,l,process.env.KODAX_EFFORT),g=e.agentMode??l.agentMode??"ama",T=p!=="off",x=Pa(l.permissionMode,"accept-edits")??"accept-edits",C=zf(),b=l.repoIntelligenceTrace===!0,A={provider:u,model:f,effort:h,effortOverride:m,planModeEffort:l.planModeEffort,thinking:T,reasoningMode:p,agentMode:g,permissionMode:x,repoIntelligenceMode:C.mode,repoIntelligenceTrace:b},N=e.session?.id,R=[],E,P,B,$,V,ne="",z=await Xr({cwd:process.cwd()}),y=z.workspaceRoot??void 0,_=z,ee=y,j=Nf({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(j){let te=o(()=>{j.shutdown()},"teamModeCleanup");process.on("exit",te),process.on("SIGTERM",te)}try{let{bootstrapConstructionRuntime:te}=await import("./construction-bootstrap-YCWHHUYO.js"),se=await te(y??process.cwd());if(se.loaded>0||se.failed>0||se.tampered>0){let Ie=se.failed>0?`; ${se.failed} failed`:"",ot=se.tampered>0?`; ${se.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";mt({source:"repl:construction",level:se.failed>0||se.tampered>0?"warn":"info",message:`Rehydrated ${se.loaded} active tool(s)${Ie}${ot}.`})}if(se.markdownLoaded>0||se.markdownFailures.length>0){mt({source:"repl:agents",level:se.markdownFailures.length>0?"warn":"info",message:`Loaded ${se.markdownLoaded} markdown agent(s).`});for(let Ie of se.markdownFailures)mt({source:"repl:agents",level:"warn",message:`Skipped markdown agent ${Ie.path}: ${Ie.reason}`})}}catch(te){mt({source:"repl:construction",level:"warn",message:`Bootstrap failed: ${te.message}. Self-construction disabled this session.`})}let de;try{let te=await a(y),se=c(u);de={contextWindow:te.contextWindow??se.getContextWindow?.()??2e5,triggerPercent:te.triggerPercent,triggerTokens:te.triggerTokens,enabled:te.enabled,reservedResponseTokens:se.getEffectiveMaxOutputTokens?.(f),userOverrideContextWindow:te.contextWindow}}catch{}if(e.session?.id&&!e.session.resume){let te=await t.load(e.session.id);te&&(R=te.messages,E=bo(te.uiHistory),P=te.lineage,B=te.artifactLedger,$=te.extensionState,V=te.extensionRecords,ne=te.title,N=e.session.id,_=Mn(te)??z,ee=_.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:N,tag:te.tag}},console.log(St.green(`[Session loaded: ${N}]`)))}else if(e.session?.resume||e.session?.autoResume){let te=await Ac(t,y);if(te){let se=await t.load(te.id);se&&(R=se.messages,E=bo(se.uiHistory),P=se.lineage,B=se.artifactLedger,$=se.extensionState,V=se.extensionRecords,ne=se.title,N=te.id,_=Mn(se)??z,ee=_.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:N,tag:se.tag}},console.log(St.green(`[Continuing session: ${te.id}]`)))}}let pe=await Ec({sessionId:N,gitRoot:ee,runtimeInfo:_,existingMessages:R,existingUiHistory:E,existingLineage:P,existingArtifactLedger:B,existingExtensionState:$,existingExtensionRecords:V});pe.title=ne,e={...e,context:{...e.context,gitRoot:pe.gitRoot??void 0,executionCwd:pe.runtimeInfo?.executionCwd??pe.gitRoot??process.cwd()}},j?.writer.update({sessionId:pe.sessionId});let ge={current:null},Me={current:null},Ee={current:A},ie=Ha(),be=await Mc({askUser:o(async(te,se,Ie)=>{let ot=ge.current;return ot?ot(te,se,Ie):"block"},"askUser"),projectRoot:y??process.cwd(),executionCwd:_.executionCwd??y??process.cwd(),getCurrentProviderName:o(()=>Ee.current.provider,"getCurrentProviderName"),getCurrentModel:o(()=>Ee.current.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>Ee.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:ie,log:o((te,se)=>{mt({source:"repl:auto-mode",level:te==="warn"?"warn":"info",message:se})},"log"),onEngineChange:o(te=>{Me.current?.(te)},"onEngineChange"),extraCollectors:[Fa]});try{let te=process.stdout,se=process.stdin,Ie=!1,{waitUntilExit:ot,cleanup:Rt}=ic(me(vV,{options:e,config:A,context:pe,startupRuntimeInfo:z,storage:t,autoModeSettings:kc(ie),compactionInfo:de,rendererMode:r,fullscreenPolicy:i,autoModeBootstrap:be,setAutoModeAskUser:o(Ke=>{ge.current=Ke},"setAutoModeAskUser"),setAutoModeEngineChange:o(Ke=>{Me.current=Ke},"setAutoModeEngineChange"),setCurrentConfigRef:o(Ke=>{Ee.current=Ke},"setCurrentConfigRef"),teamModeHandle:j,onExit:o(()=>{Ie=!0},"onExit")}),{stdout:te,stdin:se,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:i.enabled?i.promptShell:"main-screen"});await ot(),Rt(),j?.shutdown(),se.isTTY===!0&&typeof se.setRawMode=="function"&&se.isRaw&&se.setRawMode(!1),se.pause?.(),se.unref?.(),Ie&&console.log(St.dim(`
|
|
199
|
+
[Exiting KodaX...]`));let Xe=e.hardExitOnClose??process.env.VITEST!=="true";if(Ie&&Xe){let Ke=process.exitCode??0,he=!1,ve=o(()=>{he||(he=!0,process.exit(Ke))},"requestProcessExit");setTimeout(ve,0).unref?.(),te.write("",ve);return}}catch(te){throw te instanceof Error&&te.message.includes("Raw mode")?new dy("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):te}}o(eg,"runInkInteractiveMode");import{jsx as Id,jsxs as Zc}from"react/jsx-runtime";import{useMemo as RV,useRef as kV,useState as Hx}from"react";var EV=40;function MV(e,t){let n=t.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return n.length===0?[...e]:e.filter(r=>{let i=[r.title,r.id,r.surface??"",r.createdAt??"",String(r.msgCount)].join(" ").toLocaleLowerCase();return n.every(s=>i.includes(s))})}o(MV,"filterSessionPickerItems");function _V(e,t,n){let r=Math.max(1,n),i=e.length===0?0:Math.max(0,Math.min(t,e.length-1)),s=Math.floor(i/r)*r;return{items:e.slice(s,s+r),selectedIndex:i,pageStart:s,pageIndex:Math.floor(s/r),pageCount:Math.max(1,Math.ceil(e.length/r))}}o(_V,"buildSessionPickerPage");function AV(e){if(!e)return"unknown time";let t=new Date(e);if(Number.isNaN(t.getTime()))return e;let n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0");return`${n}-${r}-${i} ${s}:${a}`}o(AV,"formatTimestamp");function LV({sessions:e,onSelect:t,onSelectionError:n,onCancel:r,pageSize:i=8}){let{exit:s}=ei(),[a,c]=Hx(""),[l,u]=Hx(0),[f,p]=Hx(!1),h=kV(!1),m=RV(()=>MV(e,a),[e,a]),g=_V(m,l,i),T=m[g.selectedIndex];return sc((x,C)=>{if(!h.current){if(C.escape||C.ctrl&&x==="c"){r(),s();return}if(C.return){let b=m[g.selectedIndex];b&&(h.current=!0,p(!0),(async()=>{await new Promise(A=>setTimeout(A,EV));try{await t(b)}catch(A){n(A)}finally{s()}})());return}if(C.upArrow)u(b=>Math.max(0,b-1));else if(C.downArrow)u(b=>Math.min(Math.max(0,m.length-1),b+1));else if(C.pageUp)u(b=>Math.max(0,b-i));else if(C.pageDown)u(b=>Math.min(Math.max(0,m.length-1),b+i));else if(C.home)u(0);else if(C.end)u(Math.max(0,m.length-1));else if(C.tab){let b=m[g.selectedIndex];b&&(c(b.title),u(0))}else C.backspace||C.delete?(c(b=>b.slice(0,-1)),u(0)):x&&!C.ctrl&&!C.meta&&!C.super&&(c(b=>b+x),u(0))}}),Zc(M,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,children:[Id(k,{bold:!0,color:"cyan",children:"Resume a session"}),Zc(k,{children:["Search: ",Id(k,{color:"yellow",children:a||"type to filter"})]}),Id(k,{dimColor:!0,children:f?"Loading selected session...":"\u2191/\u2193 select \xB7 PgUp/PgDn page \xB7 Tab complete \xB7 Enter resume \xB7 Esc cancel"}),Zc(M,{flexDirection:"column",marginTop:1,children:[g.items.length===0?Id(k,{color:"yellow",children:"No matching sessions."}):null,g.items.map((x,C)=>{let A=g.pageStart+C===g.selectedIndex,N=x.title.trim()||"Untitled session",R=x.surface?` \xB7 ${x.surface}`:"";return Zc(k,{color:A?"cyan":void 0,bold:A,children:[A?"\u276F":" "," ",N," \xB7 ",x.msgCount," msgs",R," \xB7 ",AV(x.createdAt)," \xB7 ",x.id.slice(0,8)]},x.id)})]}),Zc(k,{dimColor:!0,children:[m.length," matches \xB7 Page ",g.pageIndex+1,"/",g.pageCount]}),Zc(k,{dimColor:!0,children:["Selected ID: ",T?.id??"none"]})]})}o(LV,"SessionPicker");async function cP(e,t={}){if(process.stdin.isTTY!==!0||process.stdout.isTTY!==!0)throw new Error("Searchable session resume requires an interactive terminal. Pass an exact session ID or title to -r/--resume instead.");let n,r=!1,i=!1,s,a=Math.max(4,Math.min(12,(process.stdout.rows??24)-8)),c=ic(Id(LV,{sessions:e,pageSize:a,onSelect:o(async l=>{n=l,await t.prepareSelection?.(l)},"onSelect"),onSelectionError:o(l=>{i=!0,s=l},"onSelectionError"),onCancel:o(()=>{r=!0},"onCancel")}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1,patchConsole:!1});try{await c.waitUntilExit()}finally{c.unmount(),c.cleanup()}if(i)throw s;if(!n&&!r)throw new Error("Session picker exited unexpectedly before selection or cancellation.");return n}o(cP,"runSessionPicker");import bn from"chalk";var lP=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],uP=["\x1B[36m","\x1B[35m","\x1B[34m"],bd=null,el=!1;function vd(){let e=0,t=0,n=!1,r="Thinking...",i=o(()=>{if(n)return;let c=uP[t%uP.length],l="\x1B[0m",u=lP[e%lP.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 bd=a,a}o(vd,"startWaitingDots");function dP(e=!0){let t=null,n=0,r=!1;return{onSessionStart:o(s=>{console.log(e?bn.cyan(`[KodaX] Provider: ${s.provider} | Session: ${s.sessionId}`):bn.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=vd()),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(bn.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:o(s=>{t||(el||(process.stdout.write(`
|
|
200
|
+
`),el=!0),t=vd()),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())&&(el||(process.stdout.write(`
|
|
201
|
+
`),el=!0,r=!1),t=vd(),t.updateText(`Receiving ${s}... (${l} chars)`))},"onToolInputDelta"),onToolResult:o(s=>{t&&(t.stop(),t=null),console.log(bn.green(`[Result] ${s.content.slice(0,300)}${s.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:o(s=>{t&&(t.stop(),t=null),console.log(bn.dim(`[RepoIntel] ${s.summary}`))},"onRepoIntelligenceTrace"),onSidecarMessage:o(s=>{t&&(t.stop(),t=null);let a=s.delivery==="budget-exhausted"?"\u26A1 Sidecar Verifier \u2014 budget exhausted":s.verdict==="blocked"?"\u26A1 Sidecar Verifier \u2014 blocked":"\u26A1 Sidecar Verifier \u2014 revise",c=s.suggestedFix?`${s.content}
|
|
202
|
+
Suggested fix: ${s.suggestedFix}`:s.content;process.stdout.write(bn.yellow(`
|
|
203
|
+
${a}
|
|
204
|
+
`)+bn.dim(`${c}
|
|
205
|
+
`))},"onSidecarMessage"),onStreamEnd:o(()=>{bd&&!bd.isStopped()&&bd.stop(),bd=null,el=!1,r&&(console.log(),r=!1),(!t||t.isStopped())&&(t=vd(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:o((s,a)=>{t&&!t.isStopped()&&t.stop(),el=!1,r=!1,console.log(bn.magenta(`
|
|
206
|
+
[Assistant]`)),t=vd()},"onIterationStart"),onCompactStart:o(()=>{console.log(bn.dim(`
|
|
207
|
+
[KodaX] Compacting context...`))},"onCompactStart"),onCompact:o(s=>{console.log(bn.dim(`[KodaX] Compaction finished (${s} tokens).`))},"onCompact"),onCompactEnd:o(()=>{},"onCompactEnd"),onRetry:o((s,a,c)=>{console.log(bn.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(bn.yellow(`[KodaX] ${a} (${s.errorClass}, ${s.stage})`))},"onProviderRecovery"),onComplete:o(()=>{t&&(t.stop(),t=null),console.log(bn.green(`
|
|
208
|
+
[KodaX] Done!`))},"onComplete"),onError:o(s=>{t&&(t.stop(),t=null),console.log(bn.red(`
|
|
209
|
+
[Error] ${s.message}`))},"onError"),onScoutSuspiciousCompletion:o(s=>{console.log(bn.yellow(`
|
|
210
|
+
[Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:o(async(s,a)=>!0,"beforeToolExecute")}}o(dP,"createCliEvents");function qt(e){return{...e?.sessionId!==void 0?{sessionId:e.sessionId}:{},...e?.seq!==void 0?{seq:e.seq}:{},...e?.turnId!==void 0?{turnId:e.turnId}:{},...e?.deliveryId!==void 0?{deliveryId:e.deliveryId}:{},...e?.timestamp!==void 0?{timestamp:e.timestamp}:{},...e?.workflowCorrelation!==void 0?{workflowCorrelation:e.workflowCorrelation}:{},...e?.childAgentId!==void 0?{childAgentId:e.childAgentId}:{},...e?.childAgentName!==void 0?{childAgentName:e.childAgentName}:{},...e?.parentToolId!==void 0?{parentToolId:e.parentToolId}:{},...e?.liveOnly!==void 0?{liveOnly:e.liveOnly}:{}}}o(qt,"activityMetaFields");function Hs(e){return{...e.sessionId!==void 0?{sessionId:e.sessionId}:{},...e.seq!==void 0?{seq:e.seq}:{},...e.turnId!==void 0?{turnId:e.turnId}:{},...e.deliveryId!==void 0?{deliveryId:e.deliveryId}:{},...e.timestamp!==void 0?{timestamp:e.timestamp}:{}}}o(Hs,"liveMetaFields");function lt(e,t){e.write(`${JSON.stringify(t)}
|
|
211
|
+
`)}o(lt,"writeJsonLine");function PV(e,t){return{type:"error",name:e.name,message:e.message,stack:e.stack,...qt(t)}}o(PV,"serializeError");function fP(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:o(r=>{lt(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId,...Hs(r)})},"onSessionStart"),onTurnStarted:o(r=>{lt(t,{type:"turn.started",...r})},"onTurnStarted"),onTurnCompleted:o(r=>{lt(t,{type:"turn.completed",...r})},"onTurnCompleted"),onTurnFailed:o(r=>{lt(t,{type:"turn.failed",...r})},"onTurnFailed"),onIterationStart:o((r,i,s)=>{lt(t,{type:"iteration.start",iter:r,maxIter:i,...qt(s)})},"onIterationStart"),onIterationEnd:o(r=>{lt(t,{type:"iteration.end",iter:r.iter,maxIter:r.maxIter,tokenCount:r.tokenCount,tokenSource:r.tokenSource,usage:r.usage,contextTokenSnapshot:r.contextTokenSnapshot,...r.scope!==void 0?{scope:r.scope}:{},...Hs(r)})},"onIterationEnd"),onTextDelta:o((r,i)=>{lt(t,{type:"text.delta",text:r,...qt(i)})},"onTextDelta"),onThinkingDelta:o((r,i)=>{lt(t,{type:"thinking.delta",text:r,...qt(i)})},"onThinkingDelta"),onThinkingEnd:o((r,i)=>{lt(t,{type:"thinking.end",thinking:r,...qt(i)})},"onThinkingEnd"),onToolUseStart:o((r,i)=>{lt(t,{type:"tool.start",id:r.id,name:r.name,input:r.input,...qt(i)})},"onToolUseStart"),onToolInputDelta:o((r,i,s)=>{lt(t,{type:"tool.input.delta",toolName:r,partialJson:i,toolId:s?.toolId,...qt(s)})},"onToolInputDelta"),onToolResult:o((r,i)=>{lt(t,{type:"tool.result",id:r.id,name:r.name,content:r.content,...qt(i)})},"onToolResult"),onStreamEnd:o(r=>{lt(t,{type:"stream.end",...qt(r)})},"onStreamEnd"),onCompactStart:o(r=>{lt(t,{type:"compact.start",...qt(r)})},"onCompactStart"),onCompact:o((r,i)=>{lt(t,{type:"compact.finish",estimatedTokens:r,...qt(i)})},"onCompact"),onCompactStats:o(r=>{lt(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter,...Hs(r)})},"onCompactStats"),onCompactEnd:o(r=>{lt(t,{type:"compact.end",...qt(r)})},"onCompactEnd"),onRetry:o((r,i,s,a)=>{lt(t,{type:"retry",reason:r,attempt:i,maxAttempts:s,...qt(a)})},"onRetry"),onProviderRecovery:o((r,i)=>{lt(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,...qt(i)})},"onProviderRecovery"),onProviderRateLimit:o((r,i,s,a)=>{lt(t,{type:"provider.rate_limit",attempt:r,maxRetries:i,delayMs:s,...qt(a)})},"onProviderRateLimit"),onRepoIntelligenceTrace:o(r=>{lt(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace,...Hs(r)})},"onRepoIntelligenceTrace"),onSidecarMessage:o(r=>{lt(t,{type:"sidecar.message",source:r.source,verdict:r.verdict,recipient:r.recipient,delivery:r.delivery,content:r.content,...r.suggestedFix!==void 0?{suggestedFix:r.suggestedFix}:{},...r.trace!==void 0?{trace:r.trace}:{},...Hs(r)})},"onSidecarMessage"),onToolProgress:o((r,i)=>{lt(t,{type:"tool.progress",id:r.id,message:r.message,...qt(i)})},"onToolProgress"),onToolSandboxObservation:o((r,i)=>{lt(t,{type:"tool.sandbox",id:r.id,observation:r.observation,...qt(i)})},"onToolSandboxObservation"),onManagedTaskStatus:o(r=>{lt(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,...Hs(r)})},"onManagedTaskStatus"),onScoutSuspiciousCompletion:o(r=>{lt(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview,...Hs(r)})},"onScoutSuspiciousCompletion"),onComplete:o(r=>{lt(t,{type:"complete",...qt(r)})},"onComplete"),onError:o((r,i)=>{lt(n,PV(r,i))},"onError")}}o(fP,"createJsonEvents");import{jsx as Et,jsxs as Dn}from"react/jsx-runtime";import BV,{useMemo as Rd}from"react";var Wx=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,pP=/^---\s+(.+)$/;function mP(e){if(!e)return[];let t=e.split(`
|
|
212
|
+
`),n=[],r=[],i=[],s=!1,a=null,c=null,l=0,u=0,f=o(()=>{if(r.length===0)return;let h=r.join(`
|
|
213
|
+
`);h.length>0&&n.push({kind:"text",text:h}),r=[]},"flushText"),p=o(()=>{i.length!==0&&(n.push({kind:"diff",text:i.join(`
|
|
214
|
+
`),addedLines:l,removedLines:u,filePath:c}),i=[],l=0,u=0,c=null)},"flushDiff");for(let h=0;h<t.length;h++){let m=t[h];if(!s){let x=pP.exec(m);if(x){let C=Math.min(h+3,t.length-1),b=!1;for(let A=h+1;A<=C;A++)if(t[A]?.startsWith("+++ ")||Wx.test(t[A]??"")){b=!0;break}if(b){f(),s=!0,a=x[1]??null,c=a,i.push(m);continue}}if(Wx.test(m)){f(),s=!0,i.push(m);continue}r.push(m);continue}let g=pP.exec(m);if(g){let x=Math.min(h+3,t.length-1),C=!1;for(let b=h+1;b<=x;b++)if(t[b]?.startsWith("+++ ")||Wx.test(t[b]??"")){C=!0;break}if(C){p(),c=g[1]??null,i.push(m);continue}}let T=m[0];if(T==="+"||T==="-"||T===" "||T==="@"||m===""){T==="+"&&!m.startsWith("+++ ")&&l++,T==="-"&&!m.startsWith("--- ")&&u++,i.push(m);continue}p(),s=!1,a=null,r.push(m)}return p(),f(),n}o(mP,"parseUnifiedDiff");function hP(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}o(hP,"containsUnifiedDiff");import{jsxs as tl,jsx as OV}from"react/jsx-runtime";import $V from"react";function NV(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(NV,"classifyLine");function DV(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(DV,"colorFor");var jx=$V.memo(({text:e,addedLines:t,removedLines:n,filePath:r,theme:i,maxLines:s=16,extremeThreshold:a=200})=>{let c=i??ue("dark"),l=e.split(`
|
|
215
|
+
`),u=l.map(NV),f=`(${t>0?`+${t}`:"\xB10"} ${n>0?`-${n}`:""})`.trim();if(l.length>a)return tl(M,{flexDirection:"column",marginLeft:4,children:[r&&tl(k,{dimColor:!0,children:[r," ",f]}),tl(k,{dimColor:!0,children:["[diff too large to render inline \u2014 ",l.length," lines, ",t,"+ / ",n,"-]"]})]});let p,h=0;if(l.length>s){let m=Math.floor(s/2),g=u.slice(0,m),T=u.slice(-m);h=l.length-g.length-T.length,p=[...g,{text:"",kind:"context"},...T]}else p=u;return tl(M,{flexDirection:"column",marginLeft:4,children:[r&&tl(k,{dimColor:!0,children:[r," ",f]}),p.map((m,g)=>{if(g===Math.floor(s/2)&&h>0&&m.kind==="context"&&m.text==="")return tl(k,{dimColor:!0,children:["... ",h," lines collapsed ..."]},`collapse-${g}`);let x=DV(m.kind,c);return OV(k,{color:x,children:m.text||" "},g)})]})});jx.displayName="DiffHunk";function gP(e){switch(e){case K.Scheduled:return"\u25CB";case K.Validating:return"\u25D0";case K.AwaitingApproval:return"\u23F8";case K.Executing:return"\u25CF";case K.Success:return"\u2713";case K.Error:return"\u2717";case K.Cancelled:return"\u2298";default:return"?"}}o(gP,"getStatusIcon");function yP(e,t){switch(e){case K.Scheduled:case K.Validating:return t.colors.dim;case K.AwaitingApproval:return t.colors.accent;case K.Executing:return t.colors.primary;case K.Success:return t.colors.success??t.colors.primary;case K.Error:return t.colors.error;case K.Cancelled:return t.colors.dim;default:return t.colors.text}}o(yP,"getStatusColor");function FV(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}o(FV,"formatDuration");function HV(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}o(HV,"formatInputSummary");var wP=o(({status:e,theme:t})=>{let n=t??Rd(()=>ue("dark"),[]),r=gP(e),i=yP(e,n);return Et(k,{color:i,children:r})},"ToolStatusBadge"),Ux=o(({progress:e,width:t=20,theme:n})=>{let r=n??Rd(()=>ue("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 Dn(M,{children:[Et(k,{color:r.colors.primary,children:c}),Et(k,{dimColor:!0,children:l}),Dn(k,{children:[" ",i,"%"]})]})},"ToolProgressBar"),Gx=o(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??Rd(()=>ue("dark"),[]),i=gP(e.status),s=yP(e.status,r),a=HV(e.input),c=FV(e.startTime,e.endTime);return t?Dn(M,{children:[Dn(k,{color:s,children:[i," "]}),Et(k,{color:r.colors.text,children:e.name})]}):Dn(M,{flexDirection:"column",marginLeft:2,children:[Dn(M,{children:[Dn(k,{color:s,children:[i," "]}),Et(k,{color:r.colors.text,bold:!0,children:e.name}),a&&Dn(k,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===K.Executing&&Et(M,{marginLeft:2,children:Et(Ux,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===K.Executing&&Et(M,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>Et(k,{dimColor:!0,children:l},u))}),e.error&&Et(M,{marginLeft:2,children:Et(k,{color:r.colors.error,children:e.error})}),e.status===K.Success&&typeof e.output=="string"&&e.output.length>0&&Et(SP,{output:e.output,theme:r}),c&&e.status!==K.Executing&&Et(M,{marginLeft:2,children:Dn(k,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),SP=BV.memo(({output:e,theme:t})=>{if(!hP(e))return Et(M,{marginLeft:2,children:Et(k,{dimColor:!0,children:e})});let n=mP(e);return Et(M,{flexDirection:"column",marginLeft:2,children:n.map((r,i)=>r.kind==="text"?Et(k,{dimColor:!0,children:r.text},i):Et(jx,{text:r.text,addedLines:r.addedLines,removedLines:r.removedLines,filePath:r.filePath,theme:t},i))})});SP.displayName="ToolOutputBlock";var xP=o(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let i=r??Rd(()=>ue("dark"),[]);if(e.length===0)return null;let s=Rd(()=>{let c={[K.Scheduled]:0,[K.Validating]:0,[K.AwaitingApproval]:0,[K.Executing]:0,[K.Success]:0,[K.Error]:0,[K.Cancelled]:0};for(let l of e)c[l.status]++;return c},[e]),a=n??"Tools";if(t){let c=s[K.Success],l=s[K.Error],u=s[K.Executing]+s[K.Scheduled]+s[K.Validating];return Et(M,{flexDirection:"column",marginBottom:1,children:Dn(M,{children:[Et(k,{color:i.colors.accent,bold:!0,children:a}),Dn(k,{dimColor:!0,children:[" ","(",e.length," tools",c>0&&`, ${c} succeeded`,l>0&&`, ${l} failed`,u>0&&`, ${u} running`,")"]})]})})}return Dn(M,{flexDirection:"column",marginBottom:1,children:[Dn(M,{children:[Et(k,{color:i.colors.accent,bold:!0,children:a}),Dn(k,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>Et(Gx,{tool:c,theme:i},c.id))]})},"ToolGroup");import{jsxs as TP,jsx as WV}from"react/jsx-runtime";var CP=o(({pendingInputs:e})=>{let t=Ok(e);if(!t)return null;let n=ue("dark");return TP(M,{children:[TP(k,{color:n.colors.hint,children:["\u23F3"," "]}),WV(k,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as IP from"child_process";var kd;function jV(){if(process.platform!=="win32")return null;if(kd!==void 0)return kd;try{kd=IP.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{kd=null}return kd}o(jV,"detectWindowsCodePage");function Ed(){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(Ed,"supportsTrueColor");function Vx(){if(Ed())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}o(Vx,"supports256Colors");function ci(){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:jV()==="65001":!0}o(ci,"supportsUnicode");function Kx(){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(Kx,"supportsEmoji");function zx(){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(zx,"getTerminalWidth");function Xx(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}o(Xx,"isScreenReader");function UV(){return process.stdout?.isTTY??!1}o(UV,"isTTY");function vP(){return{trueColor:Ed(),colors256:Vx(),unicode:ci(),emoji:Kx(),tty:UV(),columns:zx(),screenReader:Xx()}}o(vP,"detectTerminalCapabilities");var nl=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 bP(e){let t=new nl;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}o(bP,"withCapture");function RP(e){let t=new nl;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}o(RP,"withCaptureSync");import*as NP from"readline";import le from"chalk";import Bn from"chalk";var GV=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],VV=[{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 KV(e,t=!0){return e.map(n=>{let r=Bn.dim(`[${n.key}]`);return t?`${r} ${Bn.cyan(n.label)} ${Bn.dim(`- ${n.description}`)}`:`${r} ${n.label}`}).join(" ")}o(KV,"formatOptions");function Yx(){return process.stdout.columns??80}o(Yx,"getTerminalWidth");function zV(){return ci()}o(zV,"supportsUnicode");function XV(){let e=zV();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(XV,"getSymbols");async function YV(e,t){let{message:n,default:r,options:i,showDescription:s=!0,signal:a}=t,c=i??GV,l=KV(c,s);console.log(),console.log(Bn.cyan(`? ${n}`));let u=Yx();if(l.length>u-4)for(let f of c){let p=Bn.dim(` [${f.key}]`);console.log(`${p} ${Bn.cyan(f.label)}`),s&&console.log(Bn.dim(` ${f.description}`))}else console.log(Bn.dim(` ${l}`));return a?.aborted?"no":new Promise(f=>{let p=r?` (${r})`:"",h=!1,m=o(x=>{h||(h=!0,a?.removeEventListener("abort",g),f(x))},"finish"),g=o(()=>m("no"),"onAbort"),T=o(x=>{let C=x.trim().toLowerCase()||r||"",b=c.find(A=>A.key===C||A.value===C||A.label.toLowerCase()===C);m(b?b.value:C===""?"no":C)},"onAnswer");a?.addEventListener("abort",g,{once:!0}),a?e.question(Bn.dim(` Choose${p}: `),{signal:a},T):e.question(Bn.dim(` Choose${p}: `),T)})}o(YV,"confirmEnhanced");async function rl(e,t,n,r){let{isOutsideProject:i=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits",runtimeGrantSuggestions:c,signal:l}=r??{},u=XV(),f,p,h={...n,...i?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},m=Oh(t,h),g=m.details.map(x=>` ${Bn.dim(x)}`);i||s?(f=`${Bn.yellow(u.warning)} Safety Warning`,g.length>0&&(f+=`
|
|
216
|
+
${g.join(`
|
|
217
|
+
`)}`),p=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]):(f=m.title,g.length>0&&(f+=`
|
|
218
|
+
${g.join(`
|
|
219
|
+
`)}`),c!==void 0&&(f+=`
|
|
220
|
+
${Bn.dim(Rc)}`,f+=`
|
|
221
|
+
${c.map(x=>` ${Bn.dim(`Runtime scope: ${x.label}`)}`).join(`
|
|
222
|
+
`)}`),c!==void 0?p=[{key:"y",label:"Once",description:"Allow this operation once",value:"yes"},...c.some(x=>x.kind==="session")?[{key:"s",label:"Session",description:"Allow this Runtime-issued scope for this session",value:"session"}]:[],...c.some(x=>x.kind==="persistent")?[{key:"a",label:"Always",description:"Always allow this Runtime-issued scope",value:"always"}]:[],{key:"n",label:"No",description:"Cancel",value:"no"}]:p=a==="accept-edits"?VV:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let T=await YV(e,{message:f,default:"n",options:p,signal:l});return T==="always"?c!==void 0?{confirmed:!0,runtimeGrantKind:"persistent"}:{confirmed:!0,always:!0}:T==="session"?{confirmed:!0,runtimeGrantKind:"session"}:{confirmed:T==="yes"}}o(rl,"confirmToolExecution");import Hae from"chalk";function kP(){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(kP,"getUnicodeSymbols");function qx(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}o(qx,"getAsciiSymbols");var EP={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:ci()?kP():qx(),spinner:{frames:ci()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},qV={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:ci()?kP():qx(),spinner:{frames:ci()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},JV={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:qx(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},QV={dark:EP,light:qV,minimal:JV},MP=EP;function Ws(){return MP}o(Ws,"getCurrentTheme");function Md(e){let t=QV[e];return t?(MP=t,!0):!1}o(Md,"setTheme");function ZV(){if(!process.stdout.isTTY){Md("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){Md("dark");return}Md("dark")}o(ZV,"autoSelectTheme");ZV();var tg=class{static{o(this,"ReadlineUIContext")}rl;constructor(t){this.rl=t}async select(t,n){if(n.length!==0)return console.log(`
|
|
223
|
+
${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 _P from"child_process";import*as Ad from"path";import*as _d from"fs";import*as AP from"os";import li from"chalk";function LP(e,t){let n=Ws(),r=e==="plan"?li.hex(n.colors.warning):li.hex(n.colors.success),i=t.model??zr(t.provider)??t.provider,s=oo({provider:t.provider,model:t.model,effort:op(t),effortOverride:t.effortOverride,thinking:t.thinking,reasoningMode:t.reasoningMode}),a=Yx();if(a<60){let l=e==="plan"?"?":n.symbols.prompt;return r(`${l} `)}if(a<100){let l=li.hex(n.colors.dim)(`[${s}]`);return r(`kodax:${e}${l}> `)}let c=li.hex(n.colors.info)(`[effort:${s}]`);return r(`kodax:${e} (${t.provider}:${i})${c}> `)}o(LP,"getPrompt");async function PP(e,t){let n=Ws(),r=[],i=await new Promise(s=>{e.question(t,s)});if(i===""||i.toLowerCase()==="/e")return Jx(r.join(`
|
|
224
|
+
`));for(r.push(i);eK(r.join(`
|
|
225
|
+
`));){let s=li.hex(n.colors.dim)("... "),a=await new Promise(c=>{e.question(s,c)});r.push(a)}return r.join(`
|
|
226
|
+
`).replace(/\\\n/g,`
|
|
227
|
+
`)}o(PP,"askInput");async function Jx(e){let t=Ad.join(AP.tmpdir(),"kodax"),n=Ad.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await _d.promises.mkdir(t,{recursive:!0}),await _d.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=Ad.basename(r);console.log(li.yellow(`
|
|
228
|
+
[Security] Editor path sanitized: ${a}`)),r=a}console.log(li.dim(`
|
|
229
|
+
[Opening editor: ${r}]`));let i=process.platform==="win32"&&(r.toLowerCase()==="notepad"||r.toLowerCase()==="notepad.exe");return console.log(i?li.dim(`Note: Please close Notepad manually after editing to continue.
|
|
230
|
+
`):li.dim(`Save and close the editor to continue...
|
|
231
|
+
`)),_P.spawnSync(r,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await _d.promises.readFile(n,"utf-8")).trim()}catch(r){let i=r instanceof Error?r:new Error(String(r));return console.log(li.red(`
|
|
232
|
+
[Editor Error] ${i.message}`)),e}finally{try{await _d.promises.unlink(n)}catch{}}}o(Jx,"openExternalEditor");function eK(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!==void 0){if((s==='"'||s==="'"||s==="`")&&e[i-1]!=="\\"){r===s?r=null:r===null&&(r=s);continue}if(!r){if(s in t)t[s]+=1;else if(s in n){let a=n[s];a&&(t[a]-=1)}}}}return Object.values(t).some(i=>i>0)?!0:r!==null}o(eK,"needsContinuation");import nt from"chalk";function OP(e){e?.workspaceRoot&&(console.log(nt.dim(` Workspace: ${Yr(e)}`)),console.log(nt.dim(` Use /status workspace for runtime details.
|
|
233
|
+
`)))}o(OP,"printWorkspaceEntryNotice");function $P(e,t,n,r){let i=Ws(),s=e.model??zr(e.provider)??e.provider,a=oo({provider:e.provider,model:e.model,effort:op(e),effortOverride:e.effortOverride,thinking:e.thinking,reasoningMode:e.reasoningMode}),c=`
|
|
234
|
+
\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
|
|
235
|
+
\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
|
|
236
|
+
\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
|
|
237
|
+
\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
|
|
238
|
+
\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
|
|
239
|
+
\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`,l=o(f=>nt.hex(f)(" \u258E "),"bar"),u=nt.hex(i.colors.dim)(" \xB7 ");if(console.log(nt.hex(i.colors.primary)(`
|
|
240
|
+
`+c)),console.log(""),console.log(l(i.colors.primary)+nt.hex(i.colors.primary)("AI Coding Agent \xB7 Minimalist & Intelligent")),console.log(l(i.colors.success)+nt.bold.hex(i.colors.text)(`v${ts}`)+u+nt.hex(i.colors.success)(`${e.provider}:${s}`)+u+nt.hex(i.colors.primary)(e.agentMode.toUpperCase())+nt.hex(i.colors.dim)(" / ")+nt.hex(i.colors.accent)(t)+nt.hex(i.colors.dim)(" \xB7 ")+nt.hex(i.colors.warning)(`effort:${a}`)),n){let f=Math.round(n.contextWindow/1e3),p=n.enabled?nt.hex(i.colors.success)("on"):nt.hex(i.colors.secondary)("off"),h=Bu(n.contextWindow,n.triggerPercent,n.triggerTokens);console.log(l(i.colors.accent)+nt.hex(i.colors.secondary)(`ctx ${f}k \xB7 compaction `)+p+nt.hex(i.colors.secondary)(` \xB7 ${h}`))}r&&console.log(l(i.colors.secondary)+nt.hex(i.colors.secondary)(`${r.length} project rule file(s) loaded \u2014 `)+nt.hex(i.colors.dim)("/reload to refresh")),console.log(""),console.log(nt.hex(i.colors.dim)(" Quick tips:")),console.log(nt.hex(i.colors.primary)(" /help ")+nt.hex(i.colors.dim)("Show all commands")),console.log(nt.hex(i.colors.primary)(" /mode ")+nt.hex(i.colors.dim)("Switch permission mode")),console.log(nt.hex(i.colors.primary)(" /clear ")+nt.hex(i.colors.dim)("Clear conversation")),console.log(nt.hex(i.colors.primary)(" @path ")+nt.hex(i.colors.dim)("Attach image to context")),console.log(nt.hex(i.colors.primary)(" !cmd ")+nt.hex(i.colors.dim)("Run read-only shell command")),console.log(nt.hex(i.colors.dim)(`
|
|
241
|
+
Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
|
|
242
|
+
`))}o($P,"printStartupBanner");async function tK(e,t,n){if(e?.id){let r=await t.load(e.id);if(!r)return null;let i=Mn(r);return{id:e.id,data:r,kind:"load",...i?{runtimeInfo:i}:{}}}if(e?.resume||e?.autoResume){let r=await Ac(t,n);if(!r)return null;let i=await t.load(r.id);if(!i)return null;let s=Mn(i);return{id:r.id,data:i,kind:"continue",...s?{runtimeInfo:s}:{}}}return null}o(tK,"loadClassicStartupSession");async function nK(e){return(await Bf(e)).getSystemPromptSnippet()}o(nK,"buildClassicCliSkillsPrompt");function rK(e,t){let n=Xl(e);t.context={...t.context,skillsPrompt:n.getSystemPromptSnippet()}}o(rK,"syncClassicCliSkillsPrompt");var eT=class{static{o(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t),i=Qe(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 loadFullLineage(t){return this.getLineage(t)}async setActiveEntry(t,n,r){let i=this.sessions.get(t);if(!i?.data.lineage)return null;let s=Ca(i.data.lineage,n,r);if(!s)return null;let a={...structuredClone(i.data),messages:_t(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=Ia(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=Ci(i.data.lineage,n);if(!s)return null;let a=r?.sessionId??await ka(),c={messages:_t(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??ba(r.data.lineage);if(!i)return null;let s=Ra(r.data.lineage,i);if(!s)return null;let a={...r.data,messages:_t(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?ro(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 Qx(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(Qx,"applyRuntimeContext");function ng(e,t){let n=t.runtimeSessionSnapshot;n&&("extensionState"in n&&(e.extensionState=n.extensionState?structuredClone(n.extensionState):{},e.extensionStateDirty=!0),"extensionRecords"in n&&(e.extensionRecords=n.extensionRecords?.map(r=>({...r}))??[],e.extensionRecordsDirty=!0))}o(ng,"applyRuntimeSessionSnapshot");function Gi(e){return{...e.extensionStateDirty?{extensionState:e.extensionState??{}}:{},...e.extensionRecordsDirty?{extensionRecords:e.extensionRecords??[]}:{}}}o(Gi,"contextExtensionSessionData");function il(e){e.extensionStateDirty=!1,e.extensionRecordsDirty=!1}o(il,"markExtensionSessionPersisted");function iK(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}o(iK,"resolveInitialReasoningMode");var tT={current:null};async function DP(e){let t=await Xr({cwd:process.cwd()}),n=t.workspaceRoot??await bi()??void 0,r=e.storage??new eT,i=await tK(e.session,r,n),s=i?i.runtimeInfo??t:t,a=s.workspaceRoot??n;i&&(e={...e,session:{...e.session??{},id:i.id,tag:i.data.tag}});let c=Nf({meta:{cwd:process.cwd(),startedAt:Date.now()}}),l=rp(),u=$a({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,configuredProvider:l.provider,defaultProvider:Mf}),f=Na({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,explicitModel:e.model,configuredProvider:l.provider,configuredModel:l.model}),p=iK(e,l),h=Da({explicitEffort:e.effort,environmentEffort:process.env.KODAX_EFFORT,configuredEffort:l.effort}),m=ip(e,l,process.env.KODAX_EFFORT),g=e.agentMode??l.agentMode??"ama",T=p!=="off",x=Pa(l.permissionMode,"accept-edits")??"accept-edits",C=tp();x==="auto-in-project"&&C();let b=zf(),A=l.theme;A&&Md(A);let N=Ws(),R={provider:u,model:f,effort:h,effortOverride:m,planModeEffort:l.planModeEffort,thinking:T,reasoningMode:p,agentMode:g,permissionMode:x,repoIntelligenceMode:b.mode,repoIntelligenceTrace:b.trace,fallbackProviders:l.fallbackProviders},E=x,P=Wa(),B=o(D=>ns({provider:D?.provider??R.provider,model:D?.model??R.model,effort:R.effort,effortOverride:R.effortOverride,permissionMode:D?.permissionMode??R.permissionMode,planModeEffort:R.planModeEffort,thinking:R.thinking,reasoningMode:R.reasoningMode}),"resolveCurrentRuntimeEffort"),$=0,V="",ne=!1,z=500,y=await Ec({sessionId:i?.id??e.session?.id,gitRoot:a,runtimeInfo:s,existingMessages:i?.data.messages,existingUiHistory:i?.data.uiHistory,existingLineage:i?.data.lineage,existingArtifactLedger:i?.data.artifactLedger,existingExtensionState:i?.data.extensionState,existingExtensionRecords:i?.data.extensionRecords});if(y.title=i?.data.title??"",i){let D=i.kind==="continue"?"Continuing session":"Session loaded";process.stdout.write(`${le.green(`[${D}: ${i.id}]`)}
|
|
243
|
+
`)}y.skillDynamicContext=e.skillDynamicContext,c?.writer.update({sessionId:y.sessionId});let _=o(D=>Po(R,D,(Y,H,oe)=>{console.log((Y==="block"?le.red:le.yellow)(`
|
|
244
|
+
${H}`));for(let F of oe)console.log(le.dim(F));console.log()}),"guardSessionTransition"),ee=await ap(a??void 0),{resolveProvider:j}=await import("./dist-KFYN3OKD.js"),de=j(R.provider),pe=ee.contextWindow??de.getEffectiveContextWindow?.(R.model)??de.getContextWindow?.()??2e5,{loadAgentsFiles:ge}=await import("./dist-KFYN3OKD.js"),Me=o(async()=>ge({cwd:process.cwd(),projectRoot:y.gitRoot??void 0}),"reloadAgentsFiles"),Ee=await Me();if($P(R,R.permissionMode,{contextWindow:pe,triggerPercent:ee.triggerPercent,triggerTokens:ee.triggerTokens,enabled:ee.enabled},Ee),OP(s),e.learning)try{let D=cp(await e.learning.getSnapshot());D&&console.log(le.yellow(`
|
|
245
|
+
${D}
|
|
246
|
+
`))}catch(D){mt({source:"repl:learning",level:"warn",message:"Failed to recover the Learning Center startup summary.",detail:D instanceof Error?D.message:String(D)})}let ie=sb(()=>y.gitRoot??process.cwd()),be=NP.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:o((D,Y)=>{ie(D).then(H=>{Y(null,H)}).catch(()=>{Y(null,[[],D])})},"completer")}),te=o(async(D,Y)=>{let H=await rl(be,D.toolName,{...D.input,...D.reason!==void 0?{_reason:D.reason}:{},...D.executionCwd!==void 0?{_executionCwd:D.executionCwd}:{},...D.risk!==void 0?{_runtimeRisk:D.risk}:{}},{permissionMode:E,runtimeGrantSuggestions:D.grantSuggestions??[],signal:Y.signal});return Jm(D,H)},"requestRuntimePermission"),se=Ha(),Ie=kc(se);await e.runtimeAutoModeControl?.syncSettings?.(y.sessionId,E,Ie);let ot=await Mc({askUser:o(async(D,Y,H)=>(await rl(be,D.name,{...D.input,...H&&H.length>0?{_classifierSignals:H}:{}},{permissionMode:E,reason:`[auto-mode] ${Y}`})).confirmed?"allow":"block","askUser"),projectRoot:a??process.cwd(),executionCwd:s.executionCwd??a??process.cwd(),getCurrentProviderName:o(()=>R.provider,"getCurrentProviderName"),getCurrentModel:o(()=>R.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>E,"getCurrentPermissionMode"),autoModeSettings:se,log:o((D,Y)=>{console.log(D==="warn"?le.yellow(Y):le.dim(Y))},"log"),extraCollectors:[Fa]}),Rt=Jf({getProvider:o(()=>j(R.provider),"getProvider"),getModel:o(()=>R.model??"","getModel")}),Xe=`
|
|
247
|
+
Keyboard Shortcuts:
|
|
248
|
+
Tab Auto-complete (@paths, /commands)
|
|
249
|
+
Esc+Esc Edit last message
|
|
250
|
+
Ctrl+T Cycle reasoning effort
|
|
251
|
+
Ctrl+E Open external editor
|
|
252
|
+
Ctrl+R Search command history (built-in)
|
|
253
|
+
Ctrl+C Cancel current input
|
|
254
|
+
Ctrl+D Exit REPL`,Ke=o(()=>{console.log(le.dim(Xe))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(D,Y)=>{if(Y&&Y.name==="escape"){let H=Date.now();H-$<z&&V&&(ne=!0,console.log(le.dim(`
|
|
255
|
+
[Opening editor with last message...]`)),be.pause()),$=H}});let he=await nK(a),ve=!0,G={...e,provider:u,model:f,effort:B().runtimeEffort,agentMode:g,reasoningMode:p,thinking:T,workflowRunsBaseDir:no("workflow-runs",os(a??s.executionCwd??process.cwd()).key),context:{...e.context,gitRoot:a,executionCwd:s.executionCwd,repoIntelligenceMode:b.mode,repoIntelligenceTrace:b.trace,skillsPrompt:he},session:{...e.session,id:y.sessionId,storage:r,persistedByHost:!0}},je=o(()=>{let D=B();G.effort=D.runtimeEffort},"refreshCurrentEffort");tT.current=null;let xt=o(async D=>{if(y.messages.length===0)return"empty";if(!_("Recovering into a new session"))return"blocked";let Y=y.sessionId,H=y.lineage??Qe(y.messages);y.lineage=H;let oe=y.artifactLedger?structuredClone(y.artifactLedger):void 0,F=y.title||ui(y.messages),Ae=Kf({sourceSessionId:Y,messages:y.messages,lineage:H,artifactLedger:oe,reason:"provider session recovery"});await r.save(Y,{messages:y.messages,title:F,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,lineage:H,artifactLedger:oe,uiHistory:y.uiHistory,...Gi(y),...G.session?.tag!==void 0?{tag:G.session.tag}:{}});let He=Rs(),Ue=Qe(Ae.messages);await r.save(He,{messages:Ae.messages,title:Ae.title,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,lineage:Ue,artifactLedger:oe,...G.session?.tag!==void 0?{tag:G.session.tag}:{}});let Oe=new Date().toISOString();y.sessionId=He,y.messages=Ae.messages,y.title=Ae.title,y.contextTokenSnapshot=void 0,y.lineage=Ue,y.artifactLedger=oe,y.extensionState=void 0,y.extensionRecords=void 0,y.extensionStateDirty=!1,y.extensionRecordsDirty=!1,y.createdAt=Oe,y.lastAccessed=Oe,G.session={...G.session,id:He},c?.writer.update({sessionId:He}),console.log(le.green(`
|
|
256
|
+
[Recovered session: ${He}]`)),console.log(le.dim(` Source session saved: ${Y}`)),console.log(le.dim(" Raw provider history was not replayed."));let an;try{an=await Zx(G,y,Vf(D),y.messages,void 0,e.runtimeRunner,E,te,Ie)}catch(Dr){let zi=Dr instanceof Error?Dr.message:String(Dr);return console.log(le.red(`
|
|
257
|
+
[Recover failed] ${zi}`)),"failed"}y.messages=an.messages,y.contextTokenSnapshot=an.contextTokenSnapshot,ng(y,an),y.artifactLedger=Zo(y.artifactLedger??[],an.artifactLedger??Ff(an.messages)),y.lineage=Qe(y.messages,y.lineage);let gn=ui(y.messages);return y.title=gn,await r.save(y.sessionId,{messages:y.messages,title:gn,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,lineage:y.lineage,artifactLedger:y.artifactLedger,...Gi(y),...G.session?.tag!==void 0?{tag:G.session.tag}:{}}),il(y),"recovered"},"recoverCurrentSession"),Gt={getRuntimeStatus:e.getRuntimeStatus,validateSetupA2AConfig:e.validateSetupA2AConfig,prepareSetupSandbox:e.prepareSetupSandbox,inspectSandbox:e.inspectSandbox,learning:e.learning,getLearningSummary:e.learning?()=>e.learning.getSnapshot():void 0,exit:o(()=>{ve=!1,c?.shutdown(),be.close()},"exit"),saveSession:o(async()=>{if(y.messages.length>0){let D=ui(y.messages);y.title=D,await r.save(y.sessionId,{messages:y.messages,title:D,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,artifactLedger:y.artifactLedger,...Gi(y),...G.session?.tag!==void 0?{tag:G.session.tag}:{}}),il(y)}},"saveSession"),startNewSession:o(()=>{y.sessionId=Rs(),y.title="",y.contextTokenSnapshot=void 0,y.artifactLedger=void 0,y.extensionState=void 0,y.extensionRecords=void 0,y.extensionStateDirty=!1,y.extensionRecordsDirty=!1,y.createdAt=new Date().toISOString(),y.lastAccessed=y.createdAt,Qx(y,G,t),G.session={...G.session,id:y.sessionId},c?.writer.update({sessionId:y.sessionId})},"startNewSession"),loadSession:o(async D=>{let Y=await r.load(D);if(Y){if(!_("Resuming a saved session"))return"blocked";let H=await Xr({cwd:process.cwd()}),oe=Mn(Y),F=oe??H;return oe?.workspaceRoot&&!fp(oe)?(console.log(le.yellow(`
|
|
258
|
+
[Saved workspace unavailable]`)),console.log(le.dim(` Session workspace: ${Yr(oe)}`)),console.log(le.dim(` Falling back to current workspace: ${Yr(H)}`)),F=H):oe?.workspaceRoot&&H.workspaceRoot&&oe.workspaceRoot!==H.workspaceRoot&&(console.log(le.cyan(`
|
|
259
|
+
[Loading sibling workspace session]`)),console.log(le.dim(` Current workspace: ${Yr(H)}`)),console.log(le.dim(` Session workspace: ${Yr(oe)}`))),y.messages=Y.messages,y.title=Y.title,y.sessionId=D,y.contextTokenSnapshot=void 0,y.artifactLedger=Y.artifactLedger,y.extensionState=Y.extensionState?structuredClone(Y.extensionState):void 0,y.extensionRecords=Y.extensionRecords?.map(Ae=>({...Ae})),y.extensionStateDirty=!1,y.extensionRecordsDirty=!1,y.lastAccessed=new Date().toISOString(),Qx(y,G,F),G.session={...G.session,id:D,tag:Y.tag},c?.writer.update({sessionId:D}),console.log(le.green(`
|
|
260
|
+
[Loaded session: ${D}]`)),console.log(le.dim(` Messages: ${Y.messages.length}`)),y.runtimeInfo?.workspaceRoot&&console.log(le.dim(` Workspace: ${Yr(y.runtimeInfo)}`)),"loaded"}return"missing"},"loadSession"),listSessions:o(async()=>{let D=await r.list(y.gitRoot??void 0);if(D.length===0){console.log(le.dim(`
|
|
261
|
+
[No saved sessions]`));return}console.log(le.bold(`
|
|
262
|
+
Recent Sessions:
|
|
263
|
+
`)),y.runtimeInfo?.workspaceRoot&&(console.log(le.dim(` Current workspace: ${Yr(y.runtimeInfo)}`)),console.log());for(let Y of D.slice(0,10))if(console.log(` ${le.cyan(Y.id)} ${le.dim(`(${Y.msgCount} messages)`)} ${Y.title.slice(0,40)}`),Y.runtimeInfo?.workspaceRoot){let oe=y.runtimeInfo?.workspaceRoot===Y.runtimeInfo.workspaceRoot?" (current workspace)":"";console.log(le.dim(` workspace: ${Yr(Y.runtimeInfo)}${oe}`))}console.log()},"listSessions"),clearHistory:o(()=>{y.messages=[],y.contextTokenSnapshot=void 0},"clearHistory"),printHistory:o(()=>{if(y.messages.length===0){console.log(le.dim(`
|
|
264
|
+
[No conversation history]`));return}console.log(le.bold(`
|
|
265
|
+
Conversation History:
|
|
266
|
+
`));let D=y.messages.slice(-20);for(let Y=0;Y<D.length;Y++){let H=D[Y],oe=le.cyan(H.role.padEnd(10)),F=typeof H.content=="string"?H.content:"[Complex content]",Ae=F.slice(0,60).replace(/\n/g," "),He=F.length>60?"...":"";console.log(` ${(Y+1).toString().padStart(2)}. ${oe} ${Ae}${He}`)}console.log()},"printHistory"),switchProvider:o((D,Y)=>{let H=B({provider:D,model:Y});R.provider=D,R.model=Y,G.provider=D,G.model=Y,G.effort=H.runtimeEffort,H.diagnostic&&console.log(le.yellow(`
|
|
267
|
+
[${H.diagnostic}]`))},"switchProvider"),setThinking:o(D=>{R.thinking=D,G.thinking=D,R.reasoningMode=D?"auto":"off",G.reasoningMode=R.reasoningMode},"setThinking"),setEffort:o(D=>{R.effort=D,R.effortOverride=D!==void 0,je()},"setEffort"),setReasoningMode:o(D=>{let Y=D!=="off";R.reasoningMode=D,R.thinking=Y,G.reasoningMode=D,G.thinking=Y},"setReasoningMode"),setAgentMode:o(D=>{R.agentMode=D,G.agentMode=D},"setAgentMode"),setPermissionMode:o(async D=>{await e.runtimeAutoModeControl?.syncSettings?.(y.sessionId,D,Ie),R.permissionMode=D,E=D,je(),D==="auto-in-project"&&C()},"setPermissionMode"),setRepoIntelligenceRuntime:o(D=>{D.mode!==void 0&&(R.repoIntelligenceMode=D.mode,process.env.KODAX_REPO_INTELLIGENCE=D.mode,G.context={...G.context,repoIntelligenceMode:D.mode}),D.trace!==void 0&&(R.repoIntelligenceTrace=D.trace,D.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,G.context={...G.context,repoIntelligenceTrace:D.trace})},"setRepoIntelligenceRuntime"),deleteSession:o(async D=>{await r.delete?.(D)},"deleteSession"),deleteAllSessions:o(async()=>{await r.deleteAll?.(y.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:o(async()=>{let D=await r.getLineage?.(y.sessionId);if(!D){console.log(le.dim(`
|
|
268
|
+
[No session tree available for this session]`));return}let Y=Ph(Wf(D));console.log(le.bold(`
|
|
269
|
+
Session Tree:
|
|
270
|
+
`));for(let H of Y)console.log(` ${H}`);console.log()},"printSessionTree"),switchSessionBranch:o(async D=>{if(!_("Switching session branches"))return"blocked";let Y=await r.setActiveEntry?.(y.sessionId,D,{summarizeCurrentBranch:!0});return Y?(y.messages=Y.messages,y.title=Y.title,y.contextTokenSnapshot=void 0,console.log(le.green(`
|
|
271
|
+
[Switched to tree entry: ${D}]`)),console.log(le.dim(` Messages: ${Y.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:o(async(D,Y)=>{if(!await r.setLabel?.(y.sessionId,D,Y))return!1;let oe=Y&&Y.trim()?`checkpoint label set: ${Y.trim()}`:"checkpoint label cleared";return console.log(le.green(`
|
|
272
|
+
[${oe}]`)),!0},"labelSessionBranch"),forkSession:o(async D=>{if(!_("Forking a session branch"))return"blocked";let Y=await r.fork?.(y.sessionId,D);return Y?(y.sessionId=Y.sessionId,y.messages=Y.data.messages,y.title=Y.data.title,y.contextTokenSnapshot=void 0,y.createdAt=new Date().toISOString(),y.lastAccessed=y.createdAt,Qx(y,G,Mn(Y.data)??y.runtimeInfo),G.session={...G.session,id:Y.sessionId},console.log(le.green(`
|
|
273
|
+
[Forked session: ${Y.sessionId}]`)),console.log(le.dim(` Messages: ${Y.data.messages.length}`)),"forked"):"failed"},"forkSession"),recoverSession:xt,rewindSession:o(async D=>{if(!_("Rewinding session"))return"blocked";let Y=await r.rewind?.(y.sessionId,D);return Y?(y.messages=Y.messages,y.title=Y.title,y.contextTokenSnapshot=void 0,y.lastAccessed=new Date().toISOString(),console.log(le.green(`
|
|
274
|
+
[Rewound session${D?` to ${D}`:" to previous turn"}]`)),console.log(le.dim(` Messages: ${Y.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:o(()=>tT.current?.()??null,"getCostReport"),getAutoModeStats:o(async()=>{if(Er(E))return e.runtimeAutoModeControl?e.runtimeAutoModeControl.getStats(y.sessionId):ot.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:o(async D=>{if(Er(E)){if(e.runtimeAutoModeControl){await e.runtimeAutoModeControl.setEngine(y.sessionId,D);return}ot.getGuardrail().setEngine(D)}},"setAutoModeEngine"),createKodaXOptions:o(()=>{let D=o((H,oe)=>E!=="plan"?null:io(H,oe,a??process.cwd()),"planModeBlockCheck"),Y=!e.runtimeRunner&&Er(E)?[ot.getGuardrail()]:void 0;return{...G,provider:R.provider,model:R.model,effort:B().runtimeEffort,thinking:R.thinking,reasoningMode:R.reasoningMode,guardrails:Y,context:{...G.context,planModeBlockCheck:D},events:{...G.events,onMemoryOutcomeDigest:o((H,oe)=>{if(H.sessionId!==y.sessionId){G.events?.onMemoryOutcomeDigest?.(H,oe);return}y.lineage=jf(y.lineage??Qe(y.messages),H,oe?.jobId),G.events?.onMemoryOutcomeDigest?.(H,oe)},"onMemoryOutcomeDigest"),onMemoryReviewReceipt:o(H=>{if(H.sessionId!==void 0&&H.sessionId!==y.sessionId){G.events?.onMemoryReviewReceipt?.(H);return}y.lineage=Uf(y.lineage??Qe(y.messages),H),G.events?.onMemoryReviewReceipt?.(H)},"onMemoryReviewReceipt"),onMemoryNotice:o(H=>{if(H.sessionId!==void 0&&H.sessionId!==y.sessionId){G.events?.onMemoryNotice?.(H);return}let oe=y.lineage??Qe(y.messages),F=Gf(oe,{...H,createdAt:new Date().toISOString()});y.lineage=F,F!==oe&&console.log(le.dim(`
|
|
275
|
+
[memory] ${H.summaries.slice(0,3).join("; ")}`)),G.events?.onMemoryNotice?.(H)},"onMemoryNotice"),exitPlanMode:o(async H=>E!=="plan"?"not-in-plan-mode":(await rl(be,"exit_plan_mode",{plan:H},{isProtectedPath:!1,permissionMode:E})).confirmed?(R.permissionMode="accept-edits",E="accept-edits",je(),!0):!1,"exitPlanMode"),beforeToolExecute:o(async(H,oe)=>{let F=E,Ae=La(F);if(F==="plan"){let He=io(H,oe,a??process.cwd());if(He)return console.log(le.yellow(He)),`${He} 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(H==="bash"){let He=oe.command??"";if(Aa(He,a??process.cwd(),s.executionCwd??a??process.cwd()))return!0}if(Zf(F,ot.getGuardrail().getEngine()))return!0;if(a&&Ii.has(H)){let He=oe.path;if(He&&_a(He,a))return(await rl(be,H,oe,{isProtectedPath:!0,permissionMode:F})).confirmed?!0:(console.log(le.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(Ae.has(H)){if(F==="accept-edits"&&H==="bash"&&await Ma(H,oe,P,Rt))return!0;let He=await rl(be,H,oe,{isOutsideProject:oe._outsideProject===!0,reason:oe._reason,permissionMode:F});if(!He.confirmed)return console.log(le.dim("[Cancelled] Operation cancelled by user")),!1;He.always&&F==="accept-edits"&&(sp(H,oe,!1),P=Wa())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:o(async()=>(Ee=await Me(),Ee),"reloadAgentsFiles"),readline:be,ui:new tg(be)},qe=o(async D=>{y.uiHistory=[...y.uiHistory??[],D];let Y=y.title||ui(y.messages);y.title=Y,await r.save(y.sessionId,{messages:y.messages,title:Y,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,lineage:y.lineage,artifactLedger:y.artifactLedger,uiHistory:y.uiHistory,...Gi(y),...G.session?.tag!==void 0?{tag:G.session.tag}:{}})},"appendPersistedUiHistoryItem"),Pt=o(async(D,Y)=>{if(!yp({error:D,messageCount:y.messages.length}))return!1;console.log(le.dim(`
|
|
276
|
+
${iu}`));try{await qe({type:"info",text:iu})}catch(Ae){let He=Ae instanceof Error?Ae.message:String(Ae);console.log(le.dim(`Could not persist recovery hint: ${He}`))}let H=Wv(Gt);if(!H)return console.log(),!1;if(!await H(gp))return!1;let F;try{F=await Gt.recoverSession?.(Y)}catch(Ae){let He=Ae instanceof Error?Ae.message:String(Ae);return console.log(le.red(`
|
|
277
|
+
[Recover failed] ${He}`)),!1}return F==="failed"&&console.log(le.dim(`Recovery session was created, but the continuation request still failed.
|
|
278
|
+
`)),F==="recovered"},"maybeRecoverAfterProviderError");be.on("SIGINT",async()=>{console.log(le.dim(`
|
|
279
|
+
|
|
280
|
+
[Press /exit to quit]`)),be.prompt()});let Jt=o(()=>{c?.shutdown(),be.close()},"cleanup");process.on("exit",Jt),process.on("SIGTERM",Jt);let nr=o(async(D,Y)=>{if(Yf({source:D.source}).action==="none")return!1;let oe=!1,F=o(Ue=>{oe||(oe=!0,y.messages.push({role:"user",content:Y||D.request,timestamp:new Date().toISOString()})),y.messages.push({role:"assistant",content:Ue,timestamp:new Date().toISOString()});let Oe=ui(y.messages);y.title=Oe,r.save(y.sessionId,{messages:y.messages,title:Oe,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,artifactLedger:y.artifactLedger,...G.session?.tag!==void 0?{tag:G.session.tag}:{}}).catch(an=>{let gn=an instanceof Error?an.message:String(an);console.log(le.red(`
|
|
281
|
+
[workflow] failed to save final answer: ${gn}
|
|
282
|
+
`))})},"commitWorkflowFinal"),Ae={...Gt,onWorkflowRunMessage:o(Ue=>{if(Ue.type==="event")return;let Oe=Ue.text.trimEnd();if(Oe.trim()){if(Ue.type==="error"){console.log(le.red(`
|
|
283
|
+
${Oe}
|
|
284
|
+
`));return}if(Ue.type==="success"){console.log(le.green(`
|
|
285
|
+
${Oe}
|
|
286
|
+
`));return}if(Ue.type==="assistant"){console.log(`
|
|
287
|
+
${Oe}
|
|
288
|
+
`),Ue.final===!0&&F(Oe);return}console.log(le.dim(`
|
|
289
|
+
${Oe}
|
|
290
|
+
`))}},"onWorkflowRunMessage")},He=await hp({request:D.request,callbacks:Ae,approval:R.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:D.displayName,processSource:D.processSource??"command",...D.builtin!==void 0?{builtin:D.builtin}:{}});return qf({outcome:He})},"startWorkflowInvocation"),Qt=o(async(D,Y)=>{if(!D||typeof D!="object")return;if(D.workflow){await nr(D.workflow,Y);return}if(!D.invocation)return;let H=await ks({...G,provider:R.provider,thinking:R.thinking,reasoningMode:R.reasoningMode},D.invocation,Y,oe=>console.log(le.dim(`
|
|
291
|
+
${oe}`)));if(H.mode==="manual"){H.manualOutput&&console.log(le.yellow(`
|
|
292
|
+
${H.manualOutput}
|
|
293
|
+
`)),await H.finalize();return}if(!H.prompt||!H.options){await H.finalize();return}try{let oe=H.mode==="fork"?[]:y.messages,F=await Zx(H.options,y,H.prompt,oe,void 0,e.runtimeRunner,E,te,Ie);if(H.mode==="fork"){let Ae=Nv(F.messages);Ae.trim()&&(console.log(`
|
|
294
|
+
${Ae}
|
|
295
|
+
`),y.messages.push({role:"assistant",content:Ae,timestamp:new Date().toISOString()}))}else y.messages=F.messages,y.contextTokenSnapshot=F.contextTokenSnapshot;if(ng(y,F),y.messages.length>0){let Ae=ui(y.messages);y.title=Ae,await r.save(y.sessionId,{messages:y.messages,title:Ae,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,...Gi(y),...G.session?.tag!==void 0?{tag:G.session.tag}:{}}),il(y)}await H.finalize()}catch(oe){throw await H.finalize(oe instanceof Error?oe:new Error(String(oe))),oe}},"handleCommandResult"),xe=o(async D=>{try{return{invocation:await is(D,{workingDirectory:G.context?.executionCwd??process.cwd(),projectRoot:y.gitRoot??void 0,sessionId:y.sessionId,environment:{},executeDynamicContext:y.skillDynamicContext?.execute,disableDynamicContext:y.skillDynamicContext?.disable}),rejected:!1}}catch(Y){if(!(Y instanceof ja))throw Y;return console.log(le.yellow(`
|
|
296
|
+
${Y.message}
|
|
297
|
+
`)),{invocation:void 0,rejected:!0}}},"resolveInlineSkillInvocation");for(;ve;){if(ne&&V){ne=!1,be.resume();let Ue=await Jx(V);if(Ue&&Ue.trim()&&Ue!==V){console.log(le.dim(`
|
|
298
|
+
[Edited message ready to send]`));let Oe=Ue.trim();Pr(y);let an=Ri(Oe);if(an){let cn=await ss(an,y,Gt,R,Oe);await Qt(cn,Oe);continue}let gn=await rg(Oe,G.context?.executionCwd);if(Oe.startsWith("!")&&td(gn))continue;let Dr=await xe(Oe);if(Dr.rejected)continue;if(Dr.invocation){await Qt({invocation:Dr.invocation},Oe);continue}let zi=Kc(gn,G.context?.executionCwd??process.cwd());for(let cn of zi.warnings)console.log(le.yellow(`
|
|
299
|
+
${cn}`));y.messages.push({role:"user",content:zi.messageContent}),V=Oe;let Gs=y.lineage?FI({getLineage:o(()=>y.lineage,"getLineage"),setLineage:o(cn=>{y.lineage=cn},"setLineage"),saveSession:o(async()=>{await r.save(y.sessionId,{messages:y.messages,title:y.title??ui(y.messages),gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,artifactLedger:y.artifactLedger,lineage:y.lineage,...Gi(y),...G.session?.tag!==void 0?{tag:G.session.tag}:{}}),il(y)},"saveSession"),getLatestUsage:o(()=>{},"getLatestUsage"),getTurnStartMs:o(()=>{},"getTurnStartMs"),getPermissionMode:o(()=>E,"getPermissionMode"),hasPendingUserInput:o(()=>dr().has({agentId:Af(y.sessionId,"/root"),maxPriority:"user",mode:"prompt"}),"hasPendingUserInput"),verifyComplete:o(async()=>({ok:!0}),"verifyComplete")}):void 0;try{let cn=await Ql({...G,provider:R.provider,thinking:R.thinking,reasoningMode:R.reasoningMode,session:{...G.session,initialMessages:y.lineage?_t(y.lineage,y.lineage.activeEntryId):y.messages,initialExtensionState:y.extensionState??{},initialExtensionRecords:y.extensionRecords??[]},context:{...G.context,taskSurface:"repl",planModeBlockCheck:o((rr,Vs)=>E!=="plan"?null:io(rr,Vs,a??process.cwd()),"planModeBlockCheck"),...zi.inputArtifacts.length>0?{inputArtifacts:zi.inputArtifacts}:{},...Gs?{goalRuntime:Gs}:{}}},gn);if(y.messages=cn.messages,y.contextTokenSnapshot=cn.contextTokenSnapshot,ng(y,cn),y.artifactLedger=Zo(y.artifactLedger??[],cn.artifactLedger??Ff(cn.messages)),y.messages.length>0){let rr=ui(y.messages);y.title=rr,await r.save(y.sessionId,{messages:y.messages,title:rr,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,artifactLedger:y.artifactLedger,...Gi(y),...G.session?.tag!==void 0?{tag:G.session.tag}:{}}),il(y)}}catch(cn){let rr=cn instanceof Error?cn:new Error(String(cn));if(y.messages.pop(),console.log(le.red(`
|
|
300
|
+
[Error] ${rr.message}`)),await Pt(rr,gn))continue}continue}else Ue===V&&console.log(le.dim(`
|
|
301
|
+
[No changes made, continuing...]`))}let D=LP(R.permissionMode,R),Y=await PP(be,D);if(!ve)break;let H=Y.trim();if(!H)continue;Pr(y);let oe=Ri(H);if(oe){let Ue=await ss(oe,y,Gt,R,H);await Qt(Ue,H);continue}let F=await rg(H,G.context?.executionCwd);if(H.startsWith("!")&&td(F))continue;let Ae=await xe(H);if(Ae.rejected)continue;if(Ae.invocation){await Qt({invocation:Ae.invocation},H);continue}let He=Kc(F,G.context?.executionCwd??process.cwd());for(let Ue of He.warnings)console.log(le.yellow(`
|
|
302
|
+
${Ue}`));y.messages.push({role:"user",content:He.messageContent}),V=H;try{let Ue=await Zx(G,y,F,y.messages,He.inputArtifacts,e.runtimeRunner,E,te,Ie);if(y.messages=Ue.messages,y.contextTokenSnapshot=Ue.contextTokenSnapshot,ng(y,Ue),y.artifactLedger=Zo(y.artifactLedger??[],Ue.artifactLedger??Ff(Ue.messages)),y.messages.length>0){let Oe=ui(y.messages);y.title=Oe,await r.save(y.sessionId,{messages:y.messages,title:Oe,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,artifactLedger:y.artifactLedger,...Gi(y),...G.session?.tag!==void 0?{tag:G.session.tag}:{}}),il(y)}}catch(Ue){let Oe=Ue instanceof Error?Ue:new Error(String(Ue));y.messages.pop(),Oe.message.includes("rate limit")||Oe.message.includes("Rate limit")?(console.log(le.yellow(`
|
|
303
|
+
[Rate Limit] ${Oe.message}`)),console.log(le.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
|
|
304
|
+
`))):Oe.message.includes("API key")||Oe.message.includes("not configured")?(console.log(le.red(`
|
|
305
|
+
[Configuration Error] ${Oe.message}`)),console.log(le.dim(`Suggestion: Set the required API key environment variable
|
|
306
|
+
`))):Oe.message.includes("network")||Oe.message.includes("ECONNREFUSED")||Oe.message.includes("ETIMEDOUT")?(console.log(le.red(`
|
|
307
|
+
[Network Error] ${Oe.message}`)),console.log(le.dim(`Suggestion: Check your internet connection and try again
|
|
308
|
+
`))):Oe.message.includes("token")||Oe.message.includes("context too long")?(console.log(le.yellow(`
|
|
309
|
+
[Context Error] ${Oe.message}`)),console.log(le.dim(`Suggestion: Use /clear to start a fresh conversation
|
|
310
|
+
`))):(console.log(le.red(`
|
|
311
|
+
[Error] ${Oe.message}`)),console.log(le.dim(`Your message was not sent. Please try again.
|
|
312
|
+
`))),await Pt(Oe,F)}}}o(DP,"runInteractiveMode");async function rg(e,t=process.cwd()){let n=e.match(/@[\w./-]+/g);if(n)for(let r of n){let i=r.slice(1)}if(e.startsWith("!")){let r=e.slice(1).trim();return ed(r,{cwd:t})}return e}o(rg,"processSpecialSyntax");function oK(e){let t=e.snapshot;if(e.type==="workflow_started")return le.dim(`
|
|
313
|
+
\u25B6 workflow ${t.workflowName} started (${t.runId})`);if(e.type==="workflow_finished"){let n=t.status==="completed"?le.green("\u2713"):t.status==="failed"?le.red("\u2717"):le.yellow("\u2022"),r=t.resultSummary?` \u2014 ${t.resultSummary.split(`
|
|
314
|
+
`)[0]}`:"";return`${n} workflow ${t.workflowName} ${t.status}${r}`}if(e.type==="workflow_updated"&&e.message)return le.dim(` ${e.message}`)}o(oK,"renderInlineWorkflowProcessLine");async function Zx(e,t,n,r=t.messages,i,s,a="accept-edits",c,l){let u={...e.events??{},getCostReport:tT,onWorkflowProcessEvent:o(p=>{let h=oK(p);h&&console.log(h)},"onWorkflowProcessEvent"),onWorkflowAgentDigest:o(({runId:p,event:h})=>{let m=h.data??{},g=typeof m.summary=="string"?m.summary:void 0,T=typeof m.name=="string"?m.name:void 0,x=ru(g,T),C=mp(h,x,p);C&&console.log(`
|
|
315
|
+
${C}
|
|
316
|
+
`)},"onWorkflowAgentDigest"),onCompactedMessages:o(async(p,h,m)=>{let g=Lh(t.lineage,p,h,m);if(!g){await e.events?.onCompactedMessages?.(p,h,m);return}if(t.messages=p,t.lineage=g,h?.artifactLedger?.length&&(t.artifactLedger=Zo(t.artifactLedger??[],h.artifactLedger)),s)t.lineage=va(g);else{let T=e.session?.storage;if(!T)throw new Error("Classic REPL compaction requires Session storage.");try{await T.save(t.sessionId,{messages:p,title:ui(p),gitRoot:t.gitRoot??"",runtimeInfo:t.runtimeInfo,lineage:g,artifactLedger:t.artifactLedger,...Gi(t),...e.session?.tag!==void 0?{tag:e.session.tag}:{}}),t.lineage=va(g)}catch(x){throw mt({source:"repl:compaction",level:"error",message:"Failed to durably persist compacted session history.",detail:x}),x}}await e.events?.onCompactedMessages?.(p,h,m)},"onCompactedMessages")};rK(t.gitRoot,e);let f={...e,events:u,session:{...e.session,initialExtensionState:t.extensionState??{},initialExtensionRecords:t.extensionRecords??[],initialMessages:r},context:{...e.context,contextTokenSnapshot:t.contextTokenSnapshot,taskSurface:"repl",...i&&i.length>0?{inputArtifacts:[...i]}:{}}};return s?s({options:f,prompt:n,sessionId:t.sessionId,permissionMode:a,...l!==void 0?{autoModeSettings:l}:{},...c!==void 0?{requestPermission:c}:{},legacyPermissionHook:!0}):Ql(f,n)}o(Zx,"runAgentRound");function ui(e){return ao(e)}o(ui,"extractTitle");import ig from"node:fs";import sK from"node:path";function BP(){let e=ag();return cg(e).map(n=>og(n))}o(BP,"listCustomProviders");function FP(e){if(typeof e!="string"||e.length===0)return;let t=cg(ag()).find(n=>n.name===e);return t?og(t):void 0}o(FP,"getCustomProviderConfig");function HP(e){sI(e);let t=og(e),n=sg(),r=Zl(n,()=>{let i=ag(),s=cg(i),a=s.findIndex(l=>l.name===t.name),c=a>=0?s.map((l,u)=>u===a?t:l):[...s,t];return jP({...i,customProviders:c}),c});return ny(r),og(t)}o(HP,"upsertCustomProvider");function WP(e){if(typeof e!="string"||e.length===0)return!1;let t=sg(),n=Zl(t,()=>{let r=ag(),i=cg(r),s=i.filter(a=>a.name!==e);if(s.length!==i.length)return jP({...r,customProviders:s}),s});return n?(ny(n),!0):!1}o(WP,"removeCustomProvider");function sg(){return no("config.json")}o(sg,"configFilePath");function ag(){let e=sg();if(!ig.existsSync(e))return{};try{let t=JSON.parse(ig.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}o(ag,"readWholeConfig");function jP(e){let t=sg();ig.mkdirSync(sK.dirname(t),{recursive:!0}),ig.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}o(jP,"writeWholeConfig");function cg(e){let t=e.customProviders;return Array.isArray(t)?t:[]}o(cg,"extractCustomProviders");function og(e){return structuredClone(e)}o(og,"cloneCustomProvider");function UP(){return structuredClone(es(Qo()).document.servers)}o(UP,"listMcpServers");function GP(e){if(typeof e!="string"||e.length===0)return;let t=es(Qo()).document.servers[e];return t===void 0?void 0:structuredClone(t)}o(GP,"getMcpServerConfig");function VP(e,t){nT(e,t);let n=Qo(),r=es(n),i=structuredClone(t);return eu({domain:"mcp",configHome:n,...r.source==="user"?{expectedRevision:r.revision}:{},document:{version:1,servers:{...r.document.servers,[e]:i}},validate:Oa}),structuredClone(i)}o(VP,"upsertMcpServer");function KP(e){if(typeof e!="string"||e.length===0)return!1;let t=Qo(),n=es(t);if(!(e in n.document.servers))return!1;let r=structuredClone(n.document.servers);return delete r[e],eu({domain:"mcp",configHome:t,...n.source==="user"?{expectedRevision:n.revision}:{},document:{version:1,servers:r},validate:Oa}),!0}o(KP,"removeMcpServer");function nT(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("MCP server name must be a non-empty string");Oa({version:1,servers:{[e]:t}})}o(nT,"validateMcpServerConfig");import js from"node:fs/promises";import Rn from"node:path";var aK=8;function zP(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(zP,"isRecord");function XP(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")&&!e.startsWith("archived-")}o(XP,"isSessionFile");async function cK(e){let t=[],n=[];try{n=await js.readdir(e,{withFileTypes:!0})}catch{return t}for(let r of n){if(r.isFile()){XP(r.name)&&t.push(Rn.join(e,r.name));continue}if(!r.isDirectory()||r.name.startsWith("."))continue;let i=Rn.join(e,r.name),s=[];try{s=await js.readdir(i)}catch{continue}for(let a of s)XP(a)&&t.push(Rn.join(i,a))}return t}o(cK,"collectSessionFiles");function lK(e,t){let r=Rn.relative(e,t).split(Rn.sep);return r.length>1?r[0]:void 0}o(lK,"getProjectKey");async function uK(e,t){let n=Rn.relative(e,t),r=Rn.basename(t,".jsonl");try{let s=(await js.readFile(t,"utf8")).split(/\r?\n/,1)[0];if(!s)return null;let a=JSON.parse(s);if(!zP(a)||a._type!=="meta")return null;let c=zP(a.runtimeInfo)?a.runtimeInfo:void 0,l=typeof c?.canonicalRepoRoot=="string"?c.canonicalRepoRoot:typeof c?.workspaceRoot=="string"?c.workspaceRoot:void 0,u=typeof a.createdAt=="string"?Date.parse(a.createdAt):Number.NaN,f=Array.isArray(a.uiHistory)?a.uiHistory:void 0,p=typeof a.artifactLedgerCount=="number"?a.artifactLedgerCount:0,h=typeof a.activeEntryId=="string"||a.activeEntryId===null;return{id:typeof a.id=="string"?a.id:r,filePath:t,relativePath:n,projectKey:lK(e,t),isRunner:r.startsWith("runner-"),title:typeof a.title=="string"?a.title:"",gitRoot:typeof a.gitRoot=="string"?a.gitRoot:"",runtimeRoot:l,createdAtMs:Number.isFinite(u)?u:void 0,scope:a.scope==="managed-task-worker"?"managed-task-worker":"user",activeMessageCount:typeof a.activeMessageCount=="number"?a.activeMessageCount:void 0,hasHostState:!!(f&&f.length>0||a.lineageVersion===2||h||p>0)}}catch{return null}}o(uK,"parseCandidate");function dK(e,t){return e.projectKey&&t.projectKey&&e.projectKey===t.projectKey||e.runtimeRoot&&t.runtimeRoot&&e.runtimeRoot===t.runtimeRoot?!0:!!(e.gitRoot&&t.gitRoot&&e.gitRoot===t.gitRoot)}o(dK,"sameProject");function fK(e,t){if(t.isRunner||t.scope!=="user"||!dK(e,t))return null;let n=0,r=[];if(e.projectKey&&t.projectKey&&e.projectKey===t.projectKey?(n+=4,r.push("same-project-dir")):(n+=3,r.push("same-project-identity")),e.title&&t.title&&e.title===t.title)n+=2,r.push("same-title");else if(e.title&&t.title)return null;return e.activeMessageCount!==void 0&&t.activeMessageCount!==void 0&&e.activeMessageCount===t.activeMessageCount&&(n+=1,r.push("same-active-message-count")),e.createdAtMs!==void 0&&t.createdAtMs!==void 0&&Math.abs(e.createdAtMs-t.createdAtMs)<=3600*1e3&&(n+=1,r.push("near-created-at")),t.hasHostState&&!e.hasHostState&&(n+=2,r.push("canonical-has-host-state")),n>=aK?{canonical:t,score:n,reasons:r}:null}o(fK,"scoreCandidate");function pK(e){let t=o(n=>String(n).padStart(2,"0"),"pad");return[e.getUTCFullYear(),t(e.getUTCMonth()+1),t(e.getUTCDate()),"-",t(e.getUTCHours()),t(e.getUTCMinutes()),t(e.getUTCSeconds())].join("")}o(pK,"formatArchiveBatch");async function mK(e){let t=e,n=1;for(;;){try{await js.access(t)}catch{return t}let r=Rn.extname(e);t=`${e.slice(0,e.length-r.length)}.${n}${r}`,n+=1}}o(mK,"uniqueTargetPath");async function YP(e={}){let t=e.sessionsDir??Kr;e.apply&&(await js.mkdir(t,{recursive:!0}),await Ls(t));let n=await cK(t),r=[],i=[];for(let f of n){let p=await uK(t,f);if(!p){Rn.basename(f).startsWith("runner-")&&i.push({runnerId:Rn.basename(f,".jsonl"),path:f,reason:"unreadable"});continue}if(p.isRunner&&p.scope==="managed-task-worker"){i.push({runnerId:p.id,path:p.filePath,reason:"managed-task-worker"});continue}r.push(p)}let s=r.filter(f=>f.isRunner&&f.scope==="user"),a=r.filter(f=>!f.isRunner&&f.scope==="user"),c=[];for(let f of s){let p=a.map(m=>fK(f,m)).filter(m=>m!==null).sort((m,g)=>g.score-m.score);if(p.length===0){i.push({runnerId:f.id,path:f.filePath,reason:"no-match"});continue}if(p.length>1){i.push({runnerId:f.id,path:f.filePath,reason:"ambiguous-match",detail:p.map(m=>`${m.canonical.id}:${m.score}`).join(", ")});continue}let h=p[0];c.push({runnerId:f.id,runnerPath:f.filePath,canonicalId:h.canonical.id,canonicalPath:h.canonical.filePath,score:h.score,reasons:h.reasons})}let l=[],u=Rn.join(t,".dedupe-archive",pK(e.now??new Date));if(e.apply)for(let f of c){let p=Rn.relative(t,f.runnerPath),h;try{h=await mK(Rn.join(u,p)),await js.mkdir(Rn.dirname(h),{recursive:!0}),await js.rename(f.runnerPath,h),l.push({runnerId:f.runnerId,from:f.runnerPath,to:h})}catch(m){i.push({runnerId:f.runnerId,path:f.runnerPath,reason:"move-failed",detail:`target=${h??Rn.join(u,p)}; ${m instanceof Error?m.message:String(m)}`})}}return{scanned:n.length,runnerCandidates:s.length,matches:c,moved:l,skipped:i,...e.apply?{archiveDir:u}:{}}}o(YP,"dedupeSessions");function hK(e){return e?.storage?e.storage:e?.sessionsDir!==void 0?new wr({sessionsDir:e.sessionsDir}):new wr}o(hK,"resolveStorage");async function ol(e,t){let n={compacted:!1,tokensBefore:0,tokensAfter:0,messages:[]};try{let r=hK(t),i=await r.load(e);if(!i)return{...n,reason:`session not found: ${e}`};let s=i.messages,a=t?.provider??i.runtimeInfo?.provider??"anthropic",c=qo(a);if(!c)return{...n,messages:s,reason:`provider not found: ${a}`};let l=t?.contextWindow??c.getEffectiveContextWindow?.(t?.model)??c.getContextWindow?.()??2e5,u=Jo(s),f=await ap(),p=mI({...f,contextWindow:l,triggerPercent:t?.triggerPercent??f.triggerPercent,triggerTokens:t?.triggerTokens??f.triggerTokens}),h=await hI(s,p,c,l,t?.customInstructions,void 0,u,_I,AI,t?.model,!0,c.getEffectiveMaxOutputTokens(t?.model));if(!h.compacted)return{compacted:!1,tokensBefore:h.tokensBefore,tokensAfter:h.tokensAfter,messages:s,reason:"no compaction needed"};let m=h.anchor??{summary:h.summary??"",tokensBefore:h.tokensBefore,tokensAfter:h.tokensAfter,reason:"manual"},g=h.artifactLedger??i.artifactLedger??[],T=Math.max(0,(h.tokensBefore??0)-(h.tokensAfter??0)),{ledgerMessage:x}=gI(g,T),C=x?[x]:[],b=Qe(s,i.lineage),A=Hf(b,h.messages,m,C),N=_t(A),R=Jo(N),E=[...A.entries].reverse().find($=>$.type==="compaction"),P=E?{...A,entries:A.entries.map($=>$.id===E.id&&$.type==="compaction"?{...$,tokensAfter:R}:$)}:A,B={...i,messages:N,lineage:P,artifactLedger:h.artifactLedger??i.artifactLedger};return await r.save(e,B),{compacted:!0,tokensBefore:h.tokensBefore,tokensAfter:R,messages:N,report:h.report}}catch(r){return{...n,reason:r instanceof Error?r.message:String(r)}}}o(ol,"compactSession");import Us from"node:fs";import Ki from"node:fs/promises";import Dt from"node:path";import{createHash as gK,randomUUID as yK}from"node:crypto";async function wK(e,t){let n=[],r=!0,i=o(a=>a.endsWith(".jsonl")&&!a.endsWith(".archive.jsonl")&&!a.endsWith(".islands.jsonl")&&!a.startsWith("."),"isSession"),s=[];try{s=await Ki.readdir(e,{withFileTypes:!0})}catch{return{paths:n,complete:!1}}for(let a of s){if(a.isFile()){i(a.name)&&(t||!a.name.startsWith("archived-"))&&n.push(Dt.join(e,a.name));continue}if(!a.isDirectory()||a.name.startsWith("."))continue;let c=Dt.join(e,a.name);try{for(let l of await Ki.readdir(c))i(l)&&n.push(Dt.join(c,l))}catch(l){l.code!=="ENOENT"&&(r=!1)}if(t){let l=Dt.join(c,"archived");try{for(let u of await Ki.readdir(l))i(u)&&n.push(Dt.join(l,u))}catch(u){u.code!=="ENOENT"&&(r=!1)}}}return{paths:n,complete:r}}o(wK,"collectSessionFilePaths");function SK(e,t,n){return n?.trim()?pp({...t===void 0?{}:{gitRoot:t},...e===void 0?{}:{runtimeInfo:{...e.gitRoot===void 0?{}:{canonicalRepoRoot:e.gitRoot},...e.workspaceRoot===void 0?{}:{workspaceRoot:e.workspaceRoot}}}},[n]):!0}o(SK,"sessionMatchesProjectRoot");async function xK(e){let t=[],n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=await Ki.readdir(r,{withFileTypes:!0})}catch{continue}for(let s of i){let a=Dt.join(r,s.name);s.isDirectory()&&!s.isSymbolicLink()?n.push(a):s.isFile()&&s.name.endsWith(".jsonl")&&t.push(a)}}return t}o(xK,"collectJsonlFiles");async function TK(e,t){let n;try{n=new Set(await Ki.readdir(t))}catch{return new Set}let r=new Set,i=o(s=>{for(let a of s.matchAll(/[a-zA-Z0-9._-]+\.txt/g)){let c=a[0];n.has(c)&&r.add(Dt.join(t,c))}},"collectNames");for(let s of await xK(e)){let a;try{a=await Ki.readFile(s,"utf-8")}catch{continue}i(a)}for(let s of[...r].filter(a=>Dt.basename(a).includes("-bash-recovery-manifest-")))try{i(await Ki.readFile(s,"utf-8"))}catch{}return r}o(TK,"collectToolOutputReferences");function CK(e){let t=CI();setTimeout(()=>{bI(t,()=>TK(e,t))},3e4).unref()}o(CK,"scheduleToolOutputRetention");async function IK(e){let t=await Mh(e);if(!t)return;let n=JSON.parse(t);if(n===null||typeof n!="object")return;let r=n;return r._type==="meta"?r:void 0}o(IK,"readSessionMetaRecord");async function vK(e,t){if(typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0)return t.activeMessageCount;let n=(await Ki.readFile(e,"utf-8")).trim(),r=typeof t.extensionRecordCount=="number"&&t.extensionRecordCount>0?t.extensionRecordCount:0;return Math.max(0,n.split(`
|
|
317
|
+
`).length-1-r)}o(vK,"readActiveMessageCount");async function bK(e,t){let n=await IK(e);if(!n)return;let r=n.scope==="managed-task-worker"?"managed-task-worker":"user";if(t.scope!=="all"&&t.scope!==r)return;let i=typeof n.createdAt=="string"?n.createdAt:void 0,s=i?Date.parse(i):void 0;if(t.before!==void 0&&s!==void 0&&Number.isFinite(s)&&s>=t.before)return;let a=typeof n.tag=="string"?n.tag:void 0;if(t.tag!==void 0&&a!==t.tag)return;let c=n.runtimeInfo!==null&&typeof n.runtimeInfo=="object"?tO(n.runtimeInfo):void 0,l=typeof n.gitRoot=="string"?n.gitRoot:void 0,u=c??(l?{gitRoot:l}:void 0);if(!SK(u,l,t.gitRoot)||t.surface!==void 0&&u?.surface!==t.surface)return;let f=Dt.basename(e,".jsonl"),p=Dt.basename(Dt.dirname(e))==="archived";return{id:f,title:typeof n.title=="string"?n.title:"",msgCount:await vK(e,n),...a!==void 0?{tag:a}:{},...i!==void 0?{createdAt:i}:{},...u!==void 0?{runtimeInfo:u}:{},projectKey:os(u?.gitRoot??u?.workspaceRoot).key,...p?{archived:!0}:{},_createdAtMs:s}}o(bK,"readSessionListCandidate");function Sr(e,t){return e!==void 0||t!==void 0?new wr({...e===void 0?{}:{sessionsDir:e},...t===void 0?{}:{configHome:t}}):new wr}o(Sr,"getStorage");function ZP(e){return e??Kr}o(ZP,"resolveSessionsDir");function cT(e){return Buffer.from(e,"utf8").toString("base64url")}o(cT,"encodeSessionCursor");function RK(e){if(!(!e||e.length>1024))try{let t=Buffer.from(e,"base64url").toString("utf8");return t&&cT(t)===e?t:void 0}catch{return}}o(RK,"decodeSessionCursor");async function lT(e){return eO(e,void 0)}o(lT,"listSessions");async function eO(e,t){try{let n=ZP(t);await Ls(n);let r=e?.projectRoot,i=Sr(t);await Ki.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,f=e?.surface,p=e?.cursor===void 0?void 0:RK(e.cursor);if(e?.cursor!==void 0&&p===void 0)return[];if(s==="user"&&l===void 0&&!a&&u===void 0&&f===void 0&&p===void 0)return(await i.list(r,{limit:c})).map(kK);let h=i.beginSessionLocationTraversal(),m=await wK(n,!0),g=m.paths;i.completeSessionLocationTraversal(h,g.filter(E=>!Dt.basename(E).startsWith("archived-")),m.complete);let T=a?g:g.filter(E=>Dt.basename(Dt.dirname(E))!=="archived"&&!Dt.basename(E).startsWith("archived-")),x=[],C=new Set,b={scope:s,...l!==void 0?{before:l}:{},...u!==void 0?{tag:u}:{},...f!==void 0?{surface:f}:{},...r!==void 0?{gitRoot:r}:{}},A=48;for(let E=0;E<T.length;E+=A){let P=await Promise.all(T.slice(E,E+A).map(async B=>{try{return await bK(B,b)}catch($){mt({source:"session.public-api",level:"warn",message:"Unreadable session record was skipped.",detail:{filePath:B,error:$}});return}}));for(let B of P)B&&!C.has(B.id)&&(C.add(B.id),x.push(B))}x.sort((E,P)=>{let B=E._createdAtMs,$=P._createdAtMs;return Number.isFinite(B)&&Number.isFinite($)&&B!==$?$-B:Number.isFinite($)&&!Number.isFinite(B)?1:Number.isFinite(B)&&!Number.isFinite($)?-1:P.id.localeCompare(E.id)});let N=p===void 0?-1:x.findIndex(E=>E.id===p);if(p!==void 0&&N<0)return[];let R=N+1;return x.slice(R,R+c).map(({id:E,title:P,msgCount:B,tag:$,createdAt:V,runtimeInfo:ne,projectKey:z,archived:y})=>({id:E,cursor:cT(E),title:P,msgCount:B,...$!==void 0?{tag:$}:{},...V!==void 0?{createdAt:V}:{},...ne!==void 0?{runtimeInfo:ne}:{},...z!==void 0?{projectKey:z}:{},...y?{archived:!0}:{}}))}catch{return[]}}o(eO,"listSessionsImpl");function tO(e){let t={...e.workspaceRoot?{workspaceRoot:e.workspaceRoot}:{},...e.canonicalRepoRoot?{gitRoot:e.canonicalRepoRoot}:{},...e.surface?{surface:e.surface}:{},...e.profileId?{profileId:e.profileId}:{}};return Object.keys(t).length>0?t:void 0}o(tO,"extractRuntimeInfoSummary");function kK(e){let t=e.runtimeInfo?tO(e.runtimeInfo):void 0,n=os(t?.gitRoot??t?.workspaceRoot).key;return{id:e.id,cursor:cT(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(kK,"toSessionSummary");function lg(e){return typeof e=="object"&&e!==null}o(lg,"isRecord");function nO(e){let t=new Map(e.entries.map(i=>[i.id,i])),n=new Set,r=e.activeEntryId;for(;r;){let i=t.get(r);if(!i)break;n.add(i.id),r=i.parentId}return n}o(nO,"collectActiveIds");function qP(e,t){return t==="branch_summary"?{role:"user",content:`The following is a summary of a branch that this conversation came back from:
|
|
318
|
+
|
|
319
|
+
<summary>
|
|
320
|
+
${e}
|
|
321
|
+
</summary>`}:{role:"system",content:`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
|
|
322
|
+
|
|
323
|
+
${e}`}}o(qP,"summaryMessage");function JP(e){return{role:"system",content:`[Rewind] ${e}`}}o(JP,"rewindMarkerMessage");function EK(e){return{role:"system",content:e.content,_source:"client_notice",timestamp:e.timestamp,...e.turnId!==void 0?{turnId:e.turnId}:{}}}o(EK,"clientNoticeMessage");function rT(e,t){let n=e[t];return typeof n=="string"?n:void 0}o(rT,"messageStringField");function MK(e){if(e.role==="user")return"user";if(e.role==="assistant")return"assistant";if(e.role==="system")return"system"}o(MK,"messageSource");function QP(e){return lg(e)?e.type==="task_result"&&(e.source==="workflow"||e.source==="child_task")&&typeof e.taskId=="string"&&(e.status==="completed"||e.status==="failed"||e.status==="cancelled")&&(e.runId===void 0||typeof e.runId=="string")&&(e.title===void 0||typeof e.title=="string")&&(e.summary===void 0||typeof e.summary=="string")&&(e.artifactRefs===void 0||Array.isArray(e.artifactRefs)&&e.artifactRefs.every(t=>typeof t=="string")):!1}o(QP,"isTaskResultMetadata");function _K(e){if(QP(e._taskResult))return[e._taskResult];if(Array.isArray(e._taskResults))return e._taskResults.filter(QP);if(e._source!=="task-completed"||typeof e.content!="string")return[];let t=[],n=/<task-completed\s+task_id="([^"]+)">([\s\S]*?)<\/task-completed>/g;for(let r of e.content.matchAll(n)){let i=r[1];if(!i)continue;let s=r[2]?.trim()??"";t.push({type:"task_result",source:"child_task",taskId:i,status:s.startsWith("failed:")||s.startsWith("[Tool Error]")?"failed":"completed",...s.length>0?{summary:s}:{}})}return t}o(_K,"taskResultsFromMessage");function AK(e){if(e.length===1)return e[0];let t=e[0];return t?{type:"task_result",source:t.source,taskId:t.taskId,status:t.status,results:e}:void 0}o(AK,"taskResultPayload");function LK(e){if(!lg(e))return{};let t=typeof e.rewindTargetId=="string"?e.rewindTargetId:void 0,n=typeof e.truncatedCount=="number"?e.truncatedCount:void 0;return{...t!==void 0?{rewindTargetId:t}:{},...n!==void 0?{truncatedCount:n}:{}}}o(LK,"legacyRewindDetails");function PK(e,t,n){return t.has(e.id)?!0:e.type!=="client_notice"&&e.type!=="rewind_marker"?!1:e.parentId===null?n===null:t.has(e.parentId)}o(PK,"transcriptEntryActive");function Bo(e){return{entryId:e.id,parentId:e.parentId,logicalId:e.logicalId??e.id,...e.sourceEntryId!==void 0?{sourceEntryId:e.sourceEntryId}:{}}}o(Bo,"transcriptEntryIdentity");function rO(e,t,n){let r=PK(e,t,n);switch(e.type){case"message":{let i=_K(e.message);if(i.length>0){let s=i[0];return{...Bo(e),timestamp:e.timestamp,type:"task_result",source:s.source,turnId:rT(e.message,"turnId"),message:e.message,active:r,payload:AK(i),taskResults:i}}return e.message._source==="client_notice"?{...Bo(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:rT(e.message,"turnId"),message:e.message,active:r,payload:{content:e.message.content,entersModelContext:!1}}:{...Bo(e),timestamp:e.timestamp,type:"message",source:MK(e.message),turnId:rT(e.message,"turnId"),message:e.message,active:r}}case"compaction":if(e.reason==="rewind"){let i=LK(e.details),s=r||(e.parentId===null?n===null:t.has(e.parentId));return{...Bo(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:JP(e.summary),active:s,summary:e.summary,payload:{summary:e.summary,reason:"rewind",...i.rewindTargetId!==void 0?{rewindTargetId:i.rewindTargetId}:{},...i.truncatedCount!==void 0?{truncatedCount:i.truncatedCount}:{},...e.details!==void 0?{details:e.details}:{}}}}return{...Bo(e),timestamp:e.timestamp,type:"compaction",source:"system",message:qP(e.summary,"compaction"),active:r,summary:e.summary,payload:{summary:e.summary,tokensBefore:e.tokensBefore,tokensAfter:e.tokensAfter,reason:e.reason,details:e.details}};case"rewind_marker":return{...Bo(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:JP(e.summary),active:r,summary:e.summary,payload:{summary:e.summary,rewindTargetId:e.targetId,...e.fromId!==void 0?{fromId:e.fromId}:{},truncatedCount:e.truncatedCount}};case"branch_summary":return{...Bo(e),timestamp:e.timestamp,type:"branch_summary",source:"system",message:qP(e.summary,"branch_summary"),active:r,summary:e.summary,payload:{summary:e.summary,fromId:e.fromId,details:e.details}};case"client_notice":return{...Bo(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:e.turnId,message:EK(e),active:r,payload:{source:e.source,content:e.content,entersModelContext:!1,...e.payload!==void 0?{payload:e.payload}:{}}};case"archive_marker":case"label":case"goal":case"memory_outcome_digest":case"memory_review_receipt":return null;default:return e}}o(rO,"toTranscriptEntry");function OK(e){let t=nO(e);return e.entries.map(n=>rO(n,t,e.activeEntryId)).filter(n=>n!==null)}o(OK,"buildTranscriptEntries");async function iO(e){return $K(e,void 0)}o(iO,"loadSession");async function $K(e,t){return iT(e,Sr(t))}o($K,"loadSessionImpl");async function iT(e,t){try{return await t.load(e)}catch{return null}}o(iT,"loadSessionWithStorage");async function oO(e){return WK(e,void 0)}o(oO,"loadFullTranscript");async function sO(e,t={}){return uO(e,void 0,t)}o(sO,"readFullTranscript");async function aO(e,t={}){return oT(e,Sr(),t)}o(aO,"readConversationHistory");function uT(e,t){return e.transcript.lineage===void 0?ME(e.transcript.activeMessages,e.sourceRevision,t):ad(e.transcript.lineage,e.sourceRevision,t)}o(uT,"conversationHistoryFromCapture");async function cO(e,t={}){return Vi(e,Sr(),t)}o(cO,"readSessionCapture");async function lO(e,t={}){if(t.signal?.aborted)throw new Te("read_cancelled","Session bundle export cancelled");let n=Dt.resolve(t.sessionsDir??Kr),r=FK(t.timeoutMs),i=(async()=>{let s=await n_(n,e,t.signal);if(s.candidates.length===0)return{sessionId:e,status:"missing",files:[],diagnostics:[]};if(s.candidates.length>1)return{sessionId:e,status:"ambiguous",files:[],candidates:s.candidates,diagnostics:[]};let a=s.files.map(l=>({kind:l.kind,path:l.path,byteLength:l.bytes.length,sha256:gK("sha256").update(l.bytes).digest("hex"),modifiedAt:l.modifiedAt,content:l.bytes.toString("utf8"),contentBase64:l.bytes.toString("base64")})),c=a.flatMap(NK);return{sessionId:e,status:BK(c),files:a,diagnostics:c}})();return HK(i,t,r)}o(lO,"exportSessionBundle");function NK(e){let t=[],n=e.content.split(/\r?\n/),r=-1;for(let i=n.length-1;i>=0;i-=1)if((n[i]??"").trim().length>0){r=i;break}for(let i=0;i<=r;i+=1){let s=n[i]??"";if(!s.trim())continue;let a;try{a=JSON.parse(s)}catch{t.push({code:i===r?"partial_tail":"malformed_record",file:e.path,line:i+1,message:i===r?"Trailing partial record was preserved verbatim.":"Malformed record was preserved verbatim."});continue}if(e.kind==="main"&&i===0&&lg(a)&&a._type==="meta"&&a.lineageVersion!==void 0&&a.lineageVersion!==2){t.push({code:"unsupported_version",file:e.path,line:1,message:`Unsupported Session lineage version: ${String(a.lineageVersion)}`});continue}DK(a,e.kind)||t.push({code:"unsupported_record",file:e.path,line:i+1,message:"Unknown record was preserved verbatim."})}return t}o(NK,"inspectSessionBundleFile");function DK(e,t){return lg(e)?t!=="main"?e._type==="archive_batch"||e._type==="archived_entry":e._type==="meta"||e._type==="meta_update"||e._type==="lineage_entry"||e._type==="artifact_ledger_entry"||e._type==="extension_record"?!0:(e.role==="user"||e.role==="assistant"||e.role==="system")&&(typeof e.content=="string"||Array.isArray(e.content)):!1}o(DK,"isRecognizedBundleRecord");function BK(e){return e.some(t=>t.code==="malformed_record")?"corrupt":e.some(t=>t.code==="unsupported_record"||t.code==="unsupported_version")?"unsupported":e.some(t=>t.code==="partial_tail")?"partial":"ok"}o(BK,"bundleExportStatus");function FK(e){let t=e??15e3;if(!Number.isSafeInteger(t)||t<=0)throw new Error("Session bundle export timeoutMs must be a positive safe integer");return t}o(FK,"normalizeBundleExportTimeout");async function HK(e,t,n){let r,i;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new Te("read_timeout",`Session bundle export timed out after ${n}ms`)),n),t.signal!==void 0&&(i=o(()=>a(new Te("read_cancelled","Session bundle export cancelled")),"abort"),t.signal.addEventListener("abort",i,{once:!0}))})])}finally{r!==void 0&&clearTimeout(r),i!==void 0&&t.signal?.removeEventListener("abort",i)}}o(HK,"raceBundleExport");async function WK(e,t){try{return await uO(e,t,{})}catch{return null}}o(WK,"loadFullTranscriptImpl");async function uO(e,t,n){return(await Vi(e,Sr(t),n))?.transcript??null}o(uO,"readFullTranscriptImpl");async function Vi(e,t,n){let r=await t.readFullSnapshot(e,n);if(r===null)return null;let i=jK(r);return{data:r.data,transcript:i,sourceRevision:r.sourceRevision,sourceRevisionState:r.sourceRevisionState,boundaryRevision:r.boundaryRevision}}o(Vi,"readSessionCaptureWithStorage");async function oT(e,t,n){let r=Date.now(),i=await Vi(e,t,n);if(i===null)return null;let s=uT(i,()=>_h(n,r));return await new Promise(a=>setImmediate(a)),_h(n,r),s}o(oT,"readConversationHistoryWithStorage");function jK(e){if(e.lineage===null)return{...e.data,activeMessages:e.data.messages,transcriptEntries:[]};let t=OK(e.lineage);return{...e.data,messages:t.filter(n=>n.type!=="rewind_marker").map(n=>n.message),activeMessages:e.data.messages,transcriptEntries:t,lineage:e.lineage}}o(jK,"fullTranscriptFromSnapshot");function UK(e){let t=e?.trim();return t&&t.length>0?t:"client"}o(UK,"normalizeClientNoticeSource");function GK(e,t){let n=`notice_${yK().replace(/-/g,"").slice(0,12)}`;return{type:"client_notice",id:n,parentId:e.activeEntryId,timestamp:t.timestamp??new Date().toISOString(),logicalId:n,source:UK(t.source),content:t.content,...t.turnId!==void 0?{turnId:t.turnId}:{},...t.payload!==void 0?{payload:t.payload}:{}}}o(GK,"createClientNoticeEntry");async function dO(e,t){return VK(e,t,void 0)}o(dO,"appendClientNotice");async function VK(e,t,n){return sT(e,t,Sr(n))}o(VK,"appendClientNoticeImpl");async function sT(e,t,n){try{let r=await n.load(e);if(!r)return null;let i=r.lineage??Qe(r.messages),s=GK(i,t),a={...i,entries:[...i.entries,s]},c={...r,lineage:a,messages:r.messages};await n.appendSessionDelta(e,c);let l=nO(a);return rO(s,l,a.activeEntryId)}catch{return null}}o(sT,"appendClientNoticeWithStorage");async function dT(e,t){return fO(e,t,void 0)}o(dT,"forkSession");async function fO(e,t,n){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let r=t?.historyBoundary;return await Sr(n).fork(e,r?.boundaryId??t?.selector,{sessionId:t?.sessionId,title:t?.title,...r!==void 0?{historyBoundary:{sourceRevision:r.sourceRevision}}:{}})}catch{return null}}o(fO,"forkSessionImpl");async function fT(e,t){return pO(e,t,void 0)}o(fT,"rewindSession");async function pO(e,t,n,r){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let i=t?.historyBoundary;return await Sr(n,r).rewind(e,i?.boundaryId??t?.selector,i===void 0?void 0:{historyBoundary:{sourceRevision:i.sourceRevision}})}catch{return null}}o(pO,"rewindSessionImpl");async function pT(e,t){return mO(e,t,void 0)}o(pT,"setActiveEntry");async function mO(e,t,n,r){try{return await Sr(n,r).setActiveEntry(e,t)}catch{return null}}o(mO,"setActiveEntryImpl");async function Ld(){try{return lI({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(Ld,"listRunningSessions");async function mT(e){return hO(e,void 0)}o(mT,"deleteSession");async function hO(e,t){try{let r=(await Ld()).find(i=>i.sessionId===e);return r?{error:{code:"session_running",runningProcess:{pid:r.pid,startedAt:r.startedAt}}}:(await Sr(t).delete(e),{ok:!0})}catch(n){return mt({source:"session.public-api",level:"error",message:"Session deletion failed.",detail:{sessionId:e,error:n}}),{error:{code:"delete_failed"}}}}o(hO,"deleteSessionImpl");async function hT(e){return gO(e,void 0)}o(hT,"archiveSession");async function gO(e,t){try{return await Sr(t).archive(e)}catch(n){return mt({source:"session.public-api",level:"error",message:"Session archive failed.",detail:{sessionId:e,error:n}}),!1}}o(gO,"archiveSessionImpl");async function gT(e){return yO(e,void 0)}o(gT,"unarchiveSession");async function yO(e,t){try{return await Sr(t).unarchive(e)}catch(n){return mt({source:"session.public-api",level:"error",message:"Session unarchive failed.",detail:{sessionId:e,error:n}}),!1}}o(yO,"unarchiveSessionImpl");function yT(e){return wO(e,void 0)}o(yT,"watchSessions");function wO(e,t){let n=ZP(t);return Ls(n).catch(()=>{}),process.platform==="win32"?XK(e,n):KK(e,n)}o(wO,"watchSessionsImpl");function aT(e){let t=Dt.basename(e);return!t.endsWith(".jsonl")||t.endsWith(".archive.jsonl")||t.endsWith(".islands.jsonl")||t.startsWith(".")?null:t.slice(0,-6)}o(aT,"sessionIdFromFilename");function KK(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(!Us.existsSync(t)){setTimeout(a,1e3);return}let c=o((l,u)=>{if(!u)return;let f=typeof u=="string"?u:u.toString(),p=aT(f);if(!p)return;let h=l==="rename"?zK(t,f):"change";s(h,p)},"onEvent");try{n=Us.watch(t,{recursive:!0},c)}catch{n=Us.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(KK,"watchSessionsPosix");function zK(e,t){try{return Us.statSync(Dt.join(e,t)),"add"}catch{return"remove"}}o(zK,"detectRenameKind");function XK(e,t){let n=!1,r=new Set;function i(c,l){try{for(let u of Us.readdirSync(l)){let f=aT(u);f&&c.add(f)}}catch{}}o(i,"addIds");function s(){let c=new Set;try{if(!Us.existsSync(t))return c;for(let l of Us.readdirSync(t,{withFileTypes:!0}))if(l.isFile()){let u=aT(l.name);u&&c.add(u)}else if(l.isDirectory()&&!l.name.startsWith(".")){let u=Dt.join(t,l.name);i(c,u),i(c,Dt.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(XK,"watchSessionsWindows");function SO(e){let t=e?.sessionsDir,n=e?.configHome;CK(t??Kr);let r=t!==void 0||n!==void 0?new wr({...t===void 0?{}:{sessionsDir:t},...n===void 0?{}:{configHome:n}}):new wr;return t===void 0&&n===void 0?{listSessions:lT,loadSession:o(i=>iT(i,r),"loadSession"),loadFullTranscript:o(async i=>{try{return(await Vi(i,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:o(async(i,s)=>(await Vi(i,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:o((i,s)=>oT(i,r,s??{}),"readConversationHistory"),readSessionCapture:o((i,s)=>Vi(i,r,s??{}),"readSessionCapture"),appendClientNotice:o((i,s)=>sT(i,s,r),"appendClientNotice"),forkSession:dT,rewindSession:fT,setActiveEntry:pT,deleteSession:mT,archiveSession:hT,unarchiveSession:gT,listRunningSessions:Ld,watchSessions:yT,compactSession:o((i,s)=>ol(i,{...s,storage:r}),"compactSession"),storage:r}:{listSessions:o(i=>eO(i,t),"listSessions"),loadSession:o(i=>iT(i,r),"loadSession"),loadFullTranscript:o(async i=>{try{return(await Vi(i,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:o(async(i,s)=>(await Vi(i,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:o((i,s)=>oT(i,r,s??{}),"readConversationHistory"),readSessionCapture:o((i,s)=>Vi(i,r,s??{}),"readSessionCapture"),appendClientNotice:o((i,s)=>sT(i,s,r),"appendClientNotice"),forkSession:o((i,s)=>fO(i,s,t),"forkSession"),rewindSession:o((i,s)=>pO(i,s,t,n),"rewindSession"),setActiveEntry:o((i,s)=>mO(i,s,t,n),"setActiveEntry"),deleteSession:o(i=>hO(i,t),"deleteSession"),archiveSession:o(i=>gO(i,t),"archiveSession"),unarchiveSession:o(i=>yO(i,t),"unarchiveSession"),listRunningSessions:Ld,watchSessions:o(i=>wO(i,t),"watchSessions"),compactSession:o((i,s)=>ol(i,{...s,storage:r}),"compactSession"),storage:r}}o(SO,"createSessionManager");var YK={};u$(YK,{App:()=>hk,AutocompleteContextProvider:()=>om,BUILTIN_COMMANDS:()=>tb,BackgroundTaskBar:()=>Yu,CONFIG_TEMPLATES:()=>KI,ChildActivitySurface:()=>zm,ConsoleCapturer:()=>nl,ConversationPageCacheCapacityError:()=>Di,CoreConfigWriteConflictError:()=>XI,DEFAULT_UI_STATE:()=>Qf,DialogSurface:()=>Um,DotsIndicator:()=>ww,FILE_MODIFICATION_TOOLS:()=>Ii,FileSessionStorage:()=>wr,FullscreenTranscriptLayout:()=>Pm,HistoryItemRenderer:()=>ck,InputPrompt:()=>Ts,IntegrationConfigConflictError:()=>qI,IntegrationConfigController:()=>nv,KODAX_CONFIG_FILE:()=>rv,KODAX_DIR:()=>np,KODAX_EXAMPLE_CONFIG_FILE:()=>pv,KODAX_INTEGRATION_EXAMPLE_FILES:()=>mv,KODAX_SESSIONS_DIR:()=>Kr,KODAX_VERSION:()=>ts,KeyMatchers:()=>uw,KeypressHandlerPriority:()=>Cn,KeypressParser:()=>uc,KeypressProvider:()=>ku,LRUCache:()=>ds,LoadingIndicator:()=>IR,MemorySessionStorage:()=>Es,MessageActions:()=>Om,MessageList:()=>Co,MessageSelector:()=>Sk,NotificationsSurface:()=>zu,PERMISSION_MODES:()=>GI,PREVIEW_MAX_LENGTH:()=>iv,PendingInputsIndicator:()=>CP,ProgressIndicator:()=>Sw,PromptComposer:()=>Dm,PromptFooter:()=>Wu,PromptFooterLeftSide:()=>Fu,PromptFooterRightSide:()=>Hu,PromptHelpMenu:()=>Fm,PromptSuggestionsSurface:()=>jm,ProviderSetupConfigConflictError:()=>wv,ProviderSetupInvalidConfigError:()=>Sv,QueuedCommandsSurface:()=>Gm,RUNTIME_PERMISSION_PENDING_NOTICE:()=>Rc,SessionReadError:()=>Te,SimpleApp:()=>gk,SimpleInputPrompt:()=>yR,SimpleMessageDisplay:()=>uk,SimpleStatusBar:()=>pk,SingleLineTextInput:()=>eR,Spinner:()=>qn,StashNotice:()=>Xu,StatusBar:()=>Is,StatusNoticesSurface:()=>Vm,StreamingProvider:()=>Zu,StreamingState:()=>kr,SuggestionsDisplay:()=>Vu,TOOL_STATUS_ICONS:()=>d$,TextBuffer:()=>dc,TextInput:()=>nm,ThinkingIndicator:()=>CR,ToolCallDisplay:()=>Gx,ToolCallStatus:()=>K,ToolGroup:()=>xP,ToolProgressBar:()=>Ux,ToolStatusBadge:()=>wP,TranscriptViewport:()=>Nm,UIStateProvider:()=>Gu,_resetQueuedPromptsCacheForTests:()=>aE,appendClientNotice:()=>dO,archiveSession:()=>hT,bootstrapAutoMode:()=>Mc,calculateVisualCursorFromLayout:()=>Rp,calculateVisualLayout:()=>vn,collectBashWriteTargets:()=>$I,compactSession:()=>ol,computeConfirmTools:()=>La,conversationHistoryFromCapture:()=>uT,coreConfigWriteLockPath:()=>YI,createCliEvents:()=>dP,createConversationEntryChain:()=>Ms,createHistoryItem:()=>ju,createInteractiveContext:()=>Ec,createJsonEvents:()=>fP,createKeyMatcher:()=>iE,createKeypressManager:()=>rm,createMemorySessionStorage:()=>dE,createRecoveryHistoryItem:()=>id,createRetryHistoryItem:()=>rd,createSessionConversationHistoryRevision:()=>_s,createSessionManager:()=>SO,createStreamingManager:()=>Ym,createToolCall:()=>Hm,createUserSkillInvocation:()=>Pv,darkTheme:()=>kp,dedupeSessions:()=>YP,deleteSession:()=>mT,detectTerminalCapabilities:()=>vP,detectTerminalHostProfile:()=>lo,detectTerminalRenderHost:()=>co,emitRecoveryHistoryItem:()=>TE,emitRetryHistoryItem:()=>xE,emptyConversationEntryChain:()=>nh,ensureExampleConfigFile:()=>gv,ensureExampleConfigFiles:()=>hv,executeCommand:()=>ss,executeShellCommand:()=>ed,exportSessionBundle:()=>lO,extendConversationEntryChain:()=>Lc,extractHistorySeedsFromMessage:()=>Ua,extractHistorySeedsFromMessages:()=>up,extractTextContent:()=>dp,extractTitle:()=>ao,findMostRecentResumableSession:()=>Ac,forkSession:()=>dT,formatMessagePreview:()=>Fv,generateId:()=>Uu,generateSavePattern:()=>PI,getBashOutsideProjectWriteRisk:()=>NI,getCharAtCodePoint:()=>ub,getCodePointLength:()=>_n,getCommandRegistry:()=>nb,getConfigTemplate:()=>zI,getCustomProviderConfig:()=>FP,getGitRoot:()=>bi,getKeyDisplayName:()=>nR,getMcpServerConfig:()=>GP,getPlanModeBlockReason:()=>io,getProviderList:()=>uv,getProviderModel:()=>zr,getProviderSetupCatalog:()=>xv,getTerminalHostCapabilities:()=>us,getTerminalWidth:()=>zx,getTheme:()=>ue,getThemeNames:()=>S$,getVersion:()=>av,getVisualWidth:()=>_r,getVisualWidthCached:()=>bp,hasCursorUpViewportYankRisk:()=>cs,hasMainScreenRenderScrollRisk:()=>ou,hydrateProcessEnvFromShell:()=>ov,initializeSetupConfiguration:()=>vv,inspectProviderSetupReadiness:()=>Tv,isAlwaysConfirmPath:()=>_a,isBashReadCommand:()=>Jl,isBashReadCommandAutoAllowed:()=>Aa,isBashWriteCommand:()=>vi,isClassicReplForced:()=>cu,isCommandOnProtectedPath:()=>Xf,isFunctionKey:()=>cw,isOwnedRendererPreferred:()=>au,isPathInsideProject:()=>OI,isPermissionMode:()=>VI,isPrintable:()=>tR,isProviderConfigured:()=>dv,isRemoteConptyHost:()=>Va,isScreenReader:()=>Xx,isShellCommand:()=>mE,isShellCommandSuccess:()=>hE,isTmuxControlMode:()=>Ka,isToolCallAllowed:()=>Ma,isVsCodeTerminalHostEnv:()=>as,isWideChar:()=>Mr,listCustomProviders:()=>BP,listMcpServers:()=>UP,listRegisteredCommands:()=>eb,listRunningSessions:()=>Ld,listSessions:()=>lT,loadAutoModeSettings:()=>Ha,loadConfig:()=>fv,loadFullTranscript:()=>oO,loadSession:()=>iO,measureChildActivitySurfaceRows:()=>Km,migrateLegacyIntegrationConfig:()=>tv,minimalTheme:()=>Iy,normalizePermissionMode:()=>Pa,parseCommand:()=>Ri,parseExtensionsIntegrationDocument:()=>JI,parseKeypress:()=>Ru,parseMcpIntegrationDocument:()=>Oa,permissionModeDisplayName:()=>ep,persistProviderSetupChoice:()=>Cv,planLegacyIntegrationMigration:()=>ev,prepareInvocationExecution:()=>ks,prepareRuntimeConfig:()=>rp,processSpecialSyntax:()=>rg,providerSetupRestartInstructions:()=>Iv,rateLimitedCall:()=>yv,readConversationHistory:()=>aO,readExtensionsIntegration:()=>ZI,readFullTranscript:()=>sO,readMcpIntegration:()=>es,readSessionCapture:()=>cO,registerConfiguredCustomProviders:()=>sv,removeCustomProvider:()=>WP,removeMcpServer:()=>KP,renderSetupGuide:()=>bv,replBashPathSignalCollector:()=>Fa,resetTmuxControlModeProbeForTesting:()=>Cp,resolveAutoModeSettings:()=>Mv,resolveConfiguredTuiRendererMode:()=>ls,resolveEffectiveTuiRendererMode:()=>uo,resolveFullscreenPolicy:()=>fo,resolveIntegrationConfigPath:()=>QI,resolveInteractiveSurfacePreference:()=>su,resolveRuntimeEffortSelection:()=>Da,resolveRuntimeModelSelection:()=>Na,resolveRuntimeProviderSelection:()=>$a,resolveUserSkillInvocation:()=>is,restoreHistoryItemsFromSession:()=>nd,rewindSession:()=>fT,runInkInteractiveMode:()=>eg,runInteractiveMode:()=>DP,runProviderSetupWizard:()=>Rv,runSessionPicker:()=>cP,saveConfig:()=>rs,seedToHistoryItem:()=>so,setActiveEntry:()=>pT,splitByCodePoints:()=>In,supports256Colors:()=>Vx,supportsEmoji:()=>Kx,supportsTrueColor:()=>Ed,supportsUnicode:()=>ci,themes:()=>vy,toReplRuntimeAutoModeSettings:()=>kc,toolCallSeedToHistoryToolCall:()=>lp,touchContext:()=>Pr,trimPersistedUiHistorySnapshot:()=>ii,truncateByVisualWidth:()=>za,unarchiveSession:()=>gT,upsertCustomProvider:()=>HP,upsertMcpServer:()=>VP,useAutocomplete:()=>Eu,useAutocompleteContext:()=>xo,useInputHistory:()=>sm,useKeypress:()=>rE,useKeypressManager:()=>im,useQueuedPromptContents:()=>sE,useQueuedPrompts:()=>Zw,useStreaming:()=>Jw,useStreamingActions:()=>bc,useStreamingState:()=>vc,useTextBuffer:()=>am,useUI:()=>Ww,useUIActions:()=>Tc,useUIState:()=>xc,validateMcpServerConfig:()=>nT,visualWidthCache:()=>Ip,watchSessions:()=>yT,withCapture:()=>bP,withCaptureSync:()=>RP,withCoreConfigWriteLock:()=>Zl,writeIntegrationDocument:()=>eu});export{as as a,cs as b,Va as c,ou as d,Ka as e,Cp as f,co as g,lo as h,ls as i,uo as j,su as k,fo as l,us as m,au as n,cu as o,ds as p,_n as q,Mr as r,_r as s,ub as t,In as u,za as v,Ip as w,bp as x,vn as y,Rp as z,kp as A,Iy as B,vy as C,ue as D,S$ as E,nm as F,eR as G,Ru as H,uc as I,cw as J,tR as K,nR as L,rm as M,ku as N,im as O,uw as P,om as Q,xo as R,Eu as S,sm as T,dc as U,am as V,Ts as W,yR as X,qn as Y,ww as Z,Sw as _,CR as $,IR as aa,ck as ba,Co as ca,uk as da,Is as ea,pk as fa,hk as ga,gk as ha,Pm as ia,Om as ja,Sk as ka,Nm as la,Dm as ma,Fu as na,Hu as oa,Wu as pa,Fm as qa,Uu as ra,ju as sa,Hm as ta,Gu as ua,xc as va,Tc as wa,Ww as xa,Vu as ya,jm as za,Um as Aa,Gm as Ba,zu as Ca,Vm as Da,Xu as Ea,Yu as Fa,Km as Ga,zm as Ha,Ym as Ia,Zu as Ja,vc as Ka,bc as La,Jw as Ma,rE as Na,iE as Oa,Zw as Pa,sE as Qa,aE as Ra,Rc as Sa,kc as Ta,Ec as Ua,Pr as Va,Mc as Wa,ks as Xa,Es as Ya,dE as Za,ed as _a,mE as $a,hE as ab,ii as bb,nd as cb,Ac as db,rd as eb,xE as fb,id as gb,TE as hb,nh as ib,Lc as jb,Ms as kb,_s as lb,Di as mb,Te as nb,wr as ob,eg as pb,cP as qb,dP as rb,fP as sb,wP as tb,Ux as ub,Gx as vb,xP as wb,CP as xb,Ed as yb,Vx as zb,ci as Ab,Kx as Bb,zx as Cb,Xx as Db,vP as Eb,nl as Fb,bP as Gb,RP as Hb,DP as Ib,rg as Jb,BP as Kb,FP as Lb,HP as Mb,WP as Nb,UP as Ob,GP as Pb,VP as Qb,KP as Rb,nT as Sb,YP as Tb,ol as Ub,lT as Vb,iO as Wb,oO as Xb,sO as Yb,aO as Zb,uT as _b,cO as $b,lO as ac,dO as bc,dT as cc,fT as dc,pT as ec,Ld as fc,mT as gc,hT as hc,gT as ic,yT as jc,SO as kc,YK as lc};
|