@kodax-ai/kodax 0.7.91 → 0.7.93

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.
Files changed (62) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +27 -0
  3. package/README_CN.md +24 -0
  4. package/dist/chunks/{agent-YLYM2UIQ.js → agent-R7HVNARP.js} +1 -1
  5. package/dist/chunks/argument-completer-JHXUJWHC.js +2 -0
  6. package/dist/chunks/{chunk-MGM5SUKU.js → chunk-3YOZIFSJ.js} +2 -2
  7. package/dist/chunks/{chunk-XQWPHL6U.js → chunk-4BY53JTF.js} +123 -123
  8. package/dist/chunks/{chunk-X75UGXP3.js → chunk-7QBWHCIZ.js} +1 -1
  9. package/dist/chunks/{chunk-4R4QTBO6.js → chunk-7XSZVOG7.js} +135 -135
  10. package/dist/chunks/chunk-A3ZQE2BX.js +519 -0
  11. package/dist/chunks/{chunk-FBL7IVMK.js → chunk-BHE66SP3.js} +14 -14
  12. package/dist/chunks/chunk-D27EY4XC.js +383 -0
  13. package/dist/chunks/{chunk-7RF2XYFK.js → chunk-GH3KBC2H.js} +1 -1
  14. package/dist/chunks/{chunk-G5XXC7ON.js → chunk-GRWUC6H7.js} +1 -1
  15. package/dist/chunks/{chunk-3SVR6PC4.js → chunk-HLZWPB32.js} +2 -2
  16. package/dist/chunks/{chunk-P7AW3CQW.js → chunk-JJ2YDBSN.js} +2 -2
  17. package/dist/chunks/{chunk-UNTT2ZKN.js → chunk-JTZKC4TV.js} +205 -204
  18. package/dist/chunks/{chunk-7YQT4RAW.js → chunk-PRASABCC.js} +2 -2
  19. package/dist/chunks/{chunk-YQSQEF6J.js → chunk-SMVC3Q3U.js} +173 -173
  20. package/dist/chunks/{chunk-HXORFXTH.js → chunk-XTWIGVUL.js} +1 -1
  21. package/dist/chunks/{chunk-ZNH2MKN5.js → chunk-YVG6OKN7.js} +1 -1
  22. package/dist/chunks/{client-SKLNEU3G.js → client-OVYKC3ND.js} +1 -1
  23. package/dist/chunks/{compaction-config-UEGW2ZBT.js → compaction-config-2TVSYSB4.js} +1 -1
  24. package/dist/chunks/{construction-bootstrap-OUKXVNUQ.js → construction-bootstrap-474QPSYB.js} +1 -1
  25. package/dist/chunks/{dist-7EWVACPM.js → dist-H4PT2QAV.js} +1 -1
  26. package/dist/chunks/{dist-WNMK42WE.js → dist-ITTXQHRJ.js} +1 -1
  27. package/dist/chunks/host-OR3IO2A4.js +2 -0
  28. package/dist/chunks/{run-manager-J4WO55J2.js → run-manager-MNOTWIFX.js} +1 -1
  29. package/dist/chunks/{utils-NZXGH43M.js → utils-5J4BHNBV.js} +1 -1
  30. package/dist/index.d.ts +4 -4
  31. package/dist/index.js +1 -1
  32. package/dist/kodax_bootstrap.js +1 -1
  33. package/dist/kodax_cli.js +1365 -1364
  34. package/dist/runtime-worker.js +1168 -1167
  35. package/dist/sandbox-workspace-session.js +268 -267
  36. package/dist/sdk-a2a.d.ts +2 -2
  37. package/dist/sdk-a2a.js +1 -1
  38. package/dist/sdk-agent.d.ts +6 -1
  39. package/dist/sdk-agent.js +1 -1
  40. package/dist/sdk-coding.js +1 -1
  41. package/dist/sdk-experimental-memory.js +1 -1
  42. package/dist/sdk-llm.js +1 -1
  43. package/dist/sdk-mcp.js +1 -1
  44. package/dist/sdk-repl.d.ts +6 -6
  45. package/dist/sdk-repl.js +1 -1
  46. package/dist/sdk-runtime.d.ts +5 -4
  47. package/dist/sdk-runtime.js +1 -1
  48. package/dist/sdk-sandbox.d.ts +1 -1
  49. package/dist/sdk-sandbox.js +1 -1
  50. package/dist/sdk-session.d.ts +2 -2
  51. package/dist/sdk-session.js +1 -1
  52. package/dist/sdk-skills.js +1 -1
  53. package/dist/semantic-worker.js +77 -76
  54. package/dist/types-chunks/{public-api.d-ItHKrP7K.d.ts → public-api.d-BsZWOq3P.d.ts} +2 -0
  55. package/dist/types-chunks/{repl.d-Beg6tiSz.d.ts → repl.d-DxD0Olm0.d.ts} +2 -2
  56. package/dist/types-chunks/{sdk-session-C7aoqrIR.d.ts → sdk-session-BTzblJTQ.d.ts} +1 -1
  57. package/dist/types-chunks/{utils.d-Qa_Z1w2Q.d.ts → utils.d-50Q24Few.d.ts} +1 -1
  58. package/package.json +2 -1
  59. package/dist/chunks/argument-completer-4WND7KNM.js +0 -2
  60. package/dist/chunks/chunk-4S5ZAR6N.js +0 -383
  61. package/dist/chunks/chunk-XC2GKTSX.js +0 -519
  62. package/dist/chunks/host-GDDQKQKH.js +0 -2
@@ -1,6 +1,6 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{$ as In,A as $a,Aa as jv,B as xv,Ba as Uv,C as Tv,Ca as Vv,D as Na,Da as Gv,E as Jf,Ea as ts,F as Cv,Fa as ns,G as Iv,Ga as uy,H as Zf,Ha as Kv,I as Ul,J as oy,Ja as dy,K as vv,Ka as dp,L as sy,La as zv,M as eo,Ma as Xv,N as ep,O as Oa,P as tp,Q as np,R as bv,S as Rv,T as Da,U as kv,V as to,W as Ev,X as Mv,Y as Ur,Z as ay,_ as rp,a as Cr,aa as Vr,b as z,ba as cy,c as q$,ca as es,d as Sn,da as sr,e as Uf,ea as ip,f as NI,fa as Vl,g as Ir,ga as op,h as Vf,ha as _v,i as Gf,ia as Av,j as Kf,ja as Lv,k as Ra,ka as Pv,l as OI,la as $v,m as ka,ma as Nv,n as lv,na as sp,o as uv,oa as ap,p as dv,pa as Gl,q as fv,qa as cp,r as pv,ra as lp,s as mv,sa as up,t as hv,ta as Ov,u as La,ua as Dv,v as gv,va as Bv,w as yv,wa as ly,x as Sv,xa as Fv,y as Pa,ya as Hv,z as wv,za as Wv}from"./chunk-MGM5SUKU.js";import{$ as _a,E as ZI,J as ev,K as Zi,L as Qo,O as tv,P as nv,Q as rv,R as iv,S as ov,T as sv,U as av,X as Xf,Y as Zo,Z as Yf,_ as Ma,a as ie,aa as Aa,b as DI,ba as qf,c as BI,ca as Ti,d as FI,e as HI,f as Wl,g as WI,ga as cv,h as Ea,i as jI,j as UI,k as qo,l as VI,m as GI,n as KI,o as jl,p as zI,q as zf,r as Wr,s as XI,t as YI,u as qI,w as JI,x as QI,y as Jo,z as jr}from"./chunk-3SVR6PC4.js";import{a as Qf}from"./chunk-G5XXC7ON.js";import{N as AI,P as iy,Q as LI,R as PI,a as Xg,aa as $I,b as xf,c as Yg,da as jf,f as ny,q as Hf,r as Wf,y as _I,z as Hl}from"./chunk-XQWPHL6U.js";import{Bb as Ff,Cb as ba,D as wI,Db as bI,Gb as RI,Ib as kI,Jb as Qi,Ua as TI,Va as CI,Wb as EI,hb as wi,p as Dl,q as fI,sb as Fl,tb as II,ub as xi,wb as Ia,wc as MI,xb as vI,yb as va}from"./chunk-P7AW3CQW.js";import{J as xI}from"./chunk-7YQT4RAW.js";import{Hb as hI,Md as gI,N as pI,Qd as yI,Rd as SI,Wa as Bf,hb as mI,td as Bl,wd as ry,z as Ca}from"./chunk-UNTT2ZKN.js";import{Aa as zg,Pa as Ko,ma as wf,ya as JC}from"./chunk-FBL7IVMK.js";import{Bc as iI,Bf as ga,Cf as ya,Db as eI,Df as Af,Ff as Sa,Gd as Ef,Gf as wa,Hd as Mf,Hf as xa,Ia as Xo,Ib as Rf,If as Si,Ja as qi,Jf as Lf,Kb as tI,Kf as Ji,Lf as cI,Mf as Pf,Nf as $f,Of as ey,Pf as Nf,Qf as lI,Ra as ZC,Rf as Ta,Ue as _f,Ve as Yo,Wg as uI,Xg as ty,Yg as dI,Zb as nI,_b as rI,cg as Of,dg as Df,ef as oI,ff as Zg,k as zo,me as Qg,nb as qg,ob as Hr,pf as sI,r as QC,rb as Jg,t as ft,tf as aI,xf as qe,yf as ha,zc as kf,zf as Lt}from"./chunk-4R4QTBO6.js";import{A as vf,E as bf,h as or,j as Tf,r as Cf,z as If}from"./chunk-QFV6YCIH.js";import{a as o,c as Y$}from"./chunk-ONUPGMER.js";import{spawnSync as J$}from"node:child_process";function fp(e){return e==="1"||e?.toLowerCase()==="true"}o(fp,"isTruthyEnv");function Yv(e){return e==="0"||e?.toLowerCase()==="false"}o(Yv,"isFalseyEnv");function rs(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}o(rs,"isVsCodeTerminalHostEnv");function is(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}o(is,"hasCursorUpViewportYankRisk");function Q$(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}o(Q$,"isSshSession");function Ba(e={}){let t=e.env??process.env;return fp(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&Q$(t)}o(Ba,"isRemoteConptyHost");function Kl(e={}){let t=e.env??process.env;return is(e)||rs(t)}o(Kl,"hasMainScreenRenderScrollRisk");function Z$(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}o(Z$,"isTmuxControlModeEnvHeuristic");var Ci;function Fa(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(Z$(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(Ci!==void 0||(Ci=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return Ci;try{let i=J$("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});i.status===0&&(Ci=i.stdout.trim()==="1")}catch{Ci=!1}return Ci}o(Fa,"isTmuxControlMode");function pp(){Ci=void 0}o(pp,"resetTmuxControlModeProbeForTesting");function no(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":Fa(e)?"tmux_control_mode":rs(t)?"xtermjs_host":Ba(e)?"remote_conpty_host":is(e)?"degraded_vt":"native_vt"}o(no,"detectTerminalRenderHost");var ro=no;function os(e={}){let t=e.env??process.env;if(fp(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}o(os,"resolveConfiguredTuiRendererMode");function io(e={}){let t=os(e);if(t==="legacy"||t==="owned")return t;let n=no(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}o(io,"resolveEffectiveTuiRendererMode");function zl(e={}){let t=e.env??process.env;if(fp(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=os({env:t});if(n==="legacy"||n==="owned")return"ink";let r=no(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}o(zl,"resolveInteractiveSurfacePreference");var eN={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},qv={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function oo(e,t="owned",n={}){let r=n.env??process.env;return Yv(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?qv:eN:tN(e,t)}o(oo,"resolveFullscreenPolicy");function tN(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 qv;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}o(tN,"buildFullscreenPolicy");function ss(e,t={}){let n=t.rendererMode??"owned",r=oo(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(ss,"getTerminalHostCapabilities");function Xl(e={}){return io(e)==="owned"}o(Xl,"isOwnedRendererPreferred");function Yl(e={}){let t=e.env??process.env;return fp(t.KODAX_FORCE_CLASSIC_REPL)&&!Yv(t.KODAX_FORCE_CLASSIC_REPL)}o(Yl,"isClassicReplForced");var as=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}},fy=1,py=2,nN=1e3,Jv;function hp(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return Jv??=new Intl.Segmenter("en",{granularity:"grapheme"}),Jv}o(hp,"getGraphemeSegmenter");function vn(e){if(!e)return 0;let t=hp();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}o(vn,"getCodePointLength");function vr(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(vr,"isWideChar");function br(e){if(!e)return 0;let t=0,n=hp();if(n)for(let r of n.segment(e))t+=vr(r.segment)?py:fy;else for(let r of e)t+=vr(r)?py:fy;return t}o(br,"getVisualWidth");function Qv(e,t){if(!e||t<0)return"";let n=hp();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(Qv,"getCharAtCodePoint");function wn(e){if(!e)return[];let t=hp();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}o(wn,"splitByCodePoints");function rN(e,t,n){return wn(e).slice(t,n).join("")}o(rN,"sliceByCodePoints");function Zv(e,t){let n=Math.max(0,t),r=wn(e),i=0,s=0;for(;i<r.length;){let a=vr(r[i])?py:fy;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(Zv,"splitAtVisualColumn");function Ha(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=wn(e);for(let u of l){let d=vr(u)?2:1;if(c+d>s)break;a+=u,c+=d}return n&&a.length<e.length&&(a+=r),a}o(Ha,"truncateByVisualWidth");var mp=new as(nN);function gp(e){let t=mp.get(e);if(t!==void 0)return t;let n=br(e);return mp.set(e,n),n}o(gp,"getVisualWidthCached");function xn(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,d=wn(l);for(;u<d.length;){let p="",h=0,m=u,g=-1;for(let C=u;C<d.length;C++){let w=d[C],T=vr(w)?2:1;if(h+T>t){g>=0&&C-u>0?(p=d.slice(u,g).join(""),h=d.slice(u,g).reduce((v,_)=>v+(vr(_)?2:1),0),m=g):p.length===0&&T>t&&(p=w,h=T,m=C+1);break}p+=w,h+=T,m=C+1,w===" "&&(g=C+1)}if(p.length>0||i.length===0){let C=u,w=i.length;i.push(p),s[c].push([w,C]),a.push([c,C])}u=m}}return{visualLines:i,logicalToVisualMap:s,visualToLogicalMap:a}}o(xn,"calculateVisualLayout");function yp(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],d=r[l]??"",p=Math.max(0,s-u),h=br(rN(d,0,p));return[l,h]}o(yp,"calculateVisualCursorFromLayout");var Sp={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"]}},my={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 hy={dark:Sp,minimal:my};function ae(e="dark"){return hy[e]??Sp}o(ae,"getTheme");function iN(){return Object.keys(hy)}o(iN,"getThemeNames");import{jsx as kn,jsxs as cr,Fragment as fD}from"react/jsx-runtime";import{useMemo as zp}from"react";import{jsx as $0}from"react/jsx-runtime";import{createContext as W1,useContext as hs,useEffect as Ya,useMemo as P0,useState as j1,useCallback as N0,useRef as Fp}from"react";import{Stream as y1}from"node:stream";import{openSync as S1,writeSync as T0}from"node:fs";import{performance as w1}from"node:perf_hooks";import{tmpdir as x1}from"node:os";import{join as T1}from"node:path";import gy,{forwardRef as aN,useContext as cN}from"react";import{createContext as oN}from"react";var Wa=oN({isScreenReaderEnabled:!1});import{createContext as sN}from"react";var wp=sN(void 0);var eb=aN(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":i,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=cN(Wa),u=n?gy.createElement("ink-text",null,n):void 0;if(l&&r)return null;let d=gy.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?gy.createElement(wp.Provider,{value:t},d):d});eb.displayName="Box";var ar=eb;import fN,{useContext as tb}from"react";import ja from"chalk";import so from"chalk";var lN=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,uN=/^ansi256\(\s?(\d+)\s?\)$/;function dN(e){return e in so}o(dN,"isNamedColor");function Rr(e,t,n){if(!t)return e;if(dN(t)){let r=so;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"?so.hex(t)(e):so.bgHex(t)(e);if(t.startsWith("ansi256")){let r=uN.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?so.ansi256(i)(e):so.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=lN.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?so.rgb(i,s,a)(e):so.bgRgb(i,s,a)(e)}return e}o(Rr,"colorize");function bn({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":d,"aria-hidden":p=!1,internal_cursorAnchor:h=!1}){let{isScreenReaderEnabled:m}=tb(Wa),g=tb(wp),C=m&&d?d:u;if(C==null)return null;let w=o(T=>{let v=T;n&&(v=ja.dim(v)),e&&(v=Rr(v,e,"foreground"));let _=t??g;return _&&(v=Rr(v,_,"background")),r&&(v=ja.bold(v)),i&&(v=ja.italic(v)),s&&(v=ja.underline(v)),a&&(v=ja.strikethrough(v)),c&&(v=ja.inverse(v)),v},"transform");return m&&p?null:fN.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:w,...h?{internal_cursorAnchor:!0}:{}},m&&d?d:u)}o(bn,"Text");import pN,{useLayoutEffect as mN,useMemo as nb,useState as hN}from"react";function yy({items:e,children:t,style:n}){let[r,i]=hN(0),s=nb(()=>e.slice(r),[e,r]);mN(()=>{i(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=nb(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return pN.createElement("ink-box",{internal_static:!0,style:c},a)}o(yy,"Static");import ps from"node:process";import S0 from"react";import QO from"es-toolkit/compat/throttle";import Rn from"ansi-escapes";import Mi from"is-in-ci";import ZO from"auto-bind";import{onExit as e1}from"signal-exit";import t1 from"patch-console";import{LegacyRoot as n1,ConcurrentRoot as r1}from"react-reconciler/constants.js";import i1 from"yoga-layout";import o1 from"wrap-ansi";import s1 from"terminal-size";import gN from"node:process";var xp=o(()=>gN.env.DEV==="true","isDev");import UN from"react-reconciler";import{DefaultEventPriority as VN,NoEventPriority as Sb}from"react-reconciler/constants.js";import*as ao from"scheduler";import mb from"yoga-layout";import{createContext as GN}from"react";import AN from"yoga-layout";import yN from"widest-line";var rb=new Map,SN=o(e=>{if(e.length===0)return{width:0,height:0};let t=rb.get(e);if(t)return t;let n=yN(e),r=e.split(`
3
- `).length,i={width:n,height:r};return rb.set(e,i),i},"measureText"),Sy=SN;import wN from"wrap-ansi";import xN from"cli-truncate";var ib={},TN=o((e,t,n)=>{let r=e+String(t)+String(n),i=ib[r];if(i)return i;let s=e;if(n==="wrap"&&(s=wN(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=xN(e,t,{position:a})}return ib[r]=s,s},"wrapText"),Tp=TN;var CN=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),IN=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),vN=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),ab=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),bN=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),cb=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),ob=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!CN(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!IN(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!vN(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),sb=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"),RN=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!ab(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!bN(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),kN=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"),EN=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"),wy=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(cb(t))return!0;return!1},"hasAnsiControlCharacters"),Ua=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"),lb=o(e=>{if(!wy(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 Ua(t,e,n,r);if(a==="["){let u=ob(e,r+2);if(u===void 0)return Ua(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=kN(a);if(c!==void 0){let u=sb(e,r+2,c.allowBellTerminator);if(u===void 0)return Ua(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=RN(e,r+1);if(l===void 0){if(ab(a))return Ua(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=ob(e,r+1);if(a===void 0)return Ua(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=EN(i);if(s!==void 0){let a=sb(e,r+1,s.allowBellTerminator);if(a===void 0)return Ua(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(cb(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 MN=/^[\d:;]*$/,_N=o(e=>{if(!wy(e))return e;let t="";for(let n of lb(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&MN.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),ub=_N;var db=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=db(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return ub(t)},"squashTextNodes"),ql=db;var Cp=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:AN.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(LN.bind(null,t)),t},"createNode"),Ip=o((e,t)=>{t.parentNode&&Jl(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")&&vp(e)},"appendChildNode"),xy=o((e,t,n)=>{t.parentNode&&Jl(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")&&vp(e)},"insertBeforeNode"),Jl=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")&&vp(e)},"removeChildNode"),Ty=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),Cy=o((e,t)=>{e.style=t},"setStyle"),fb=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return Ql(t,e),t},"createTextNode"),LN=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:ql(e),r=Sy(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=Tp(n,t,i);return Sy(s)},"measureTextNode"),pb=o(e=>{if(e?.parentNode)return e.yogaNode??pb(e.parentNode)},"findClosestYogaNode"),vp=o(e=>{pb(e)?.markDirty()},"markNodeAsDirty"),Ql=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,vp(e)},"setTextNodeValue");import Me from"yoga-layout";var $N=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?Me.POSITION_TYPE_ABSOLUTE:Me.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(Me.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(Me.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(Me.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(Me.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),NN=o((e,t)=>{"margin"in t&&e.setMargin(Me.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(Me.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(Me.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(Me.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(Me.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(Me.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(Me.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),ON=o((e,t)=>{"padding"in t&&e.setPadding(Me.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(Me.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(Me.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(Me.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(Me.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(Me.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(Me.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),DN=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(Me.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(Me.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(Me.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(Me.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(Me.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(Me.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(Me.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(Me.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(Me.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(Me.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(Me.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(Me.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(Me.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(Me.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(Me.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(Me.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(Me.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(Me.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(Me.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(Me.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(Me.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),BN=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"),FN=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Me.DISPLAY_FLEX:Me.DISPLAY_NONE)},"applyDisplayStyles"),HN=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(Me.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(Me.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(Me.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(Me.EDGE_RIGHT,n)}},"applyBorderStyles"),WN=o((e,t)=>{"gap"in t&&e.setGap(Me.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(Me.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(Me.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),jN=o((e,t={})=>{$N(e,t),NN(e,t),ON(e,t),DN(e,t),BN(e,t),FN(e,t),HN(e,t),WN(e,t)},"styles"),Iy=jN;if(xp())try{await import("./devtools-CD6KSIHE.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
2
+ import{$ as In,A as Oa,Aa as Uv,B as Tv,Ba as Vv,C as Cv,Ca as Gv,D as $a,Da as Kv,E as Jf,Ea as ts,F as Iv,Fa as ns,G as vv,Ga as uy,H as Zf,Ha as zv,I as Vl,J as oy,Ja as dy,K as bv,Ka as dp,L as sy,La as Xv,M as eo,Ma as Yv,N as ep,O as Na,P as tp,Q as np,R as Rv,S as kv,T as Da,U as Ev,V as to,W as Mv,X as _v,Y as Ur,Z as ay,_ as rp,a as Cr,aa as Vr,b as z,ba as cy,c as t$,ca as es,d as Sn,da as sr,e as Uf,ea as ip,f as NI,fa as Gl,g as Ir,ga as op,h as Vf,ha as Av,i as Gf,ia as Lv,j as Kf,ja as Pv,k as Ra,ka as Ov,l as DI,la as $v,m as ka,ma as Nv,n as uv,na as sp,o as dv,oa as ap,p as fv,pa as Kl,q as pv,qa as cp,r as mv,ra as lp,s as hv,sa as up,t as gv,ta as Dv,u as La,ua as Bv,v as yv,va as Fv,w as Sv,wa as ly,x as wv,xa as Hv,y as Pa,ya as Wv,z as xv,za as jv}from"./chunk-3YOZIFSJ.js";import{$ as _a,E as ev,J as tv,K as Zi,L as Qo,O as nv,P as rv,Q as iv,R as ov,S as sv,T as av,U as cv,X as Xf,Y as Zo,Z as Yf,_ as Ma,a as ie,aa as Aa,b as BI,ba as qf,c as FI,ca as Ti,d as HI,e as WI,f as jl,g as jI,ga as lv,h as Ea,i as UI,j as VI,k as qo,l as GI,m as KI,n as zI,o as Ul,p as XI,q as zf,r as Wr,s as YI,t as qI,u as JI,w as QI,x as ZI,y as Jo,z as jr}from"./chunk-HLZWPB32.js";import{a as Qf}from"./chunk-GRWUC6H7.js";import{N as LI,P as iy,Q as PI,R as OI,a as Xg,aa as $I,b as xf,c as Yg,da as jf,f as ny,q as Hf,r as Wf,y as AI,z as Wl}from"./chunk-4BY53JTF.js";import{Bb as Ff,Cb as ba,D as xI,Db as RI,Gb as kI,Ib as EI,Jb as Qi,Ua as CI,Va as II,Wb as MI,hb as wi,p as Bl,q as pI,sb as Hl,tb as vI,ub as xi,wb as Ia,wc as _I,xb as bI,yb as va}from"./chunk-JJ2YDBSN.js";import{J as TI}from"./chunk-PRASABCC.js";import{Hb as gI,Md as yI,N as mI,Qd as SI,Rd as wI,Wa as Bf,hb as hI,td as Fl,wd as ry,z as Ca}from"./chunk-JTZKC4TV.js";import{Aa as zg,Pa as Ko,ma as wf,ya as QC}from"./chunk-BHE66SP3.js";import{Ac as kf,Af as Lt,Cc as oI,Cf as ga,Db as tI,Df as ya,Ef as Af,Gf as Sa,Hd as Ef,Hf as wa,Ia as Xo,Ib as Rf,Id as Mf,If as xa,Ja as qi,Jf as Si,Kb as nI,Kf as Lf,Lf as Ji,Mf as lI,Nf as Pf,Of,Pf as ey,Qf as $f,Ra as eI,Rf as uI,Sf as Ta,Ve as _f,We as Yo,Xg as dI,Yg as ty,Zb as rI,Zg as fI,_b as iI,dg as Nf,eg as Df,ff as sI,gf as Zg,k as zo,nb as qg,ne as Qg,ob as Hr,qf as aI,r as ZC,rb as Jg,t as ft,uf as cI,yf as qe,zf as ha}from"./chunk-7XSZVOG7.js";import{A as vf,E as bf,h as or,j as Tf,r as Cf,z as If}from"./chunk-QFV6YCIH.js";import{a as o,c as e$}from"./chunk-ONUPGMER.js";import{spawnSync as n$}from"node:child_process";function fp(e){return e==="1"||e?.toLowerCase()==="true"}o(fp,"isTruthyEnv");function qv(e){return e==="0"||e?.toLowerCase()==="false"}o(qv,"isFalseyEnv");function rs(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}o(rs,"isVsCodeTerminalHostEnv");function is(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}o(is,"hasCursorUpViewportYankRisk");function r$(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}o(r$,"isSshSession");function Ba(e={}){let t=e.env??process.env;return fp(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&r$(t)}o(Ba,"isRemoteConptyHost");function zl(e={}){let t=e.env??process.env;return is(e)||rs(t)}o(zl,"hasMainScreenRenderScrollRisk");function i$(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}o(i$,"isTmuxControlModeEnvHeuristic");var Ci;function Fa(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(i$(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(Ci!==void 0||(Ci=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return Ci;try{let i=n$("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});i.status===0&&(Ci=i.stdout.trim()==="1")}catch{Ci=!1}return Ci}o(Fa,"isTmuxControlMode");function pp(){Ci=void 0}o(pp,"resetTmuxControlModeProbeForTesting");function no(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":Fa(e)?"tmux_control_mode":rs(t)?"xtermjs_host":Ba(e)?"remote_conpty_host":is(e)?"degraded_vt":"native_vt"}o(no,"detectTerminalRenderHost");var ro=no;function os(e={}){let t=e.env??process.env;if(fp(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}o(os,"resolveConfiguredTuiRendererMode");function io(e={}){let t=os(e);if(t==="legacy"||t==="owned")return t;let n=no(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}o(io,"resolveEffectiveTuiRendererMode");function Xl(e={}){let t=e.env??process.env;if(fp(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=os({env:t});if(n==="legacy"||n==="owned")return"ink";let r=no(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}o(Xl,"resolveInteractiveSurfacePreference");var o$={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},Jv={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function oo(e,t="owned",n={}){let r=n.env??process.env;return qv(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?Jv:o$:s$(e,t)}o(oo,"resolveFullscreenPolicy");function s$(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 Jv;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}o(s$,"buildFullscreenPolicy");function ss(e,t={}){let n=t.rendererMode??"owned",r=oo(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(ss,"getTerminalHostCapabilities");function Yl(e={}){return io(e)==="owned"}o(Yl,"isOwnedRendererPreferred");function ql(e={}){let t=e.env??process.env;return fp(t.KODAX_FORCE_CLASSIC_REPL)&&!qv(t.KODAX_FORCE_CLASSIC_REPL)}o(ql,"isClassicReplForced");var as=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}},fy=1,py=2,a$=1e3,Qv;function hp(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return Qv??=new Intl.Segmenter("en",{granularity:"grapheme"}),Qv}o(hp,"getGraphemeSegmenter");function vn(e){if(!e)return 0;let t=hp();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}o(vn,"getCodePointLength");function vr(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(vr,"isWideChar");function br(e){if(!e)return 0;let t=0,n=hp();if(n)for(let r of n.segment(e))t+=vr(r.segment)?py:fy;else for(let r of e)t+=vr(r)?py:fy;return t}o(br,"getVisualWidth");function Zv(e,t){if(!e||t<0)return"";let n=hp();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(Zv,"getCharAtCodePoint");function wn(e){if(!e)return[];let t=hp();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}o(wn,"splitByCodePoints");function c$(e,t,n){return wn(e).slice(t,n).join("")}o(c$,"sliceByCodePoints");function eb(e,t){let n=Math.max(0,t),r=wn(e),i=0,s=0;for(;i<r.length;){let a=vr(r[i])?py:fy;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(eb,"splitAtVisualColumn");function Ha(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=wn(e);for(let u of l){let f=vr(u)?2:1;if(c+f>s)break;a+=u,c+=f}return n&&a.length<e.length&&(a+=r),a}o(Ha,"truncateByVisualWidth");var mp=new as(a$);function gp(e){let t=mp.get(e);if(t!==void 0)return t;let n=br(e);return mp.set(e,n),n}o(gp,"getVisualWidthCached");function xn(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=wn(l);for(;u<f.length;){let p="",h=0,m=u,g=-1;for(let C=u;C<f.length;C++){let w=f[C],T=vr(w)?2:1;if(h+T>t){g>=0&&C-u>0?(p=f.slice(u,g).join(""),h=f.slice(u,g).reduce((v,A)=>v+(vr(A)?2:1),0),m=g):p.length===0&&T>t&&(p=w,h=T,m=C+1);break}p+=w,h+=T,m=C+1,w===" "&&(g=C+1)}if(p.length>0||i.length===0){let C=u,w=i.length;i.push(p),s[c].push([w,C]),a.push([c,C])}u=m}}return{visualLines:i,logicalToVisualMap:s,visualToLogicalMap:a}}o(xn,"calculateVisualLayout");function yp(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=br(c$(f,0,p));return[l,h]}o(yp,"calculateVisualCursorFromLayout");var Sp={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"]}},my={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 hy={dark:Sp,minimal:my};function ae(e="dark"){return hy[e]??Sp}o(ae,"getTheme");function l$(){return Object.keys(hy)}o(l$,"getThemeNames");import{jsx as kn,jsxs as cr,Fragment as yD}from"react/jsx-runtime";import{useMemo as zp}from"react";import{jsx as $0}from"react/jsx-runtime";import{createContext as K1,useContext as hs,useEffect as Ya,useMemo as O0,useState as z1,useCallback as N0,useRef as Fp}from"react";import{Stream as C1}from"node:stream";import{openSync as I1,writeSync as C0}from"node:fs";import{performance as v1}from"node:perf_hooks";import{tmpdir as b1}from"node:os";import{join as R1}from"node:path";import gy,{forwardRef as f$,useContext as p$}from"react";import{createContext as u$}from"react";var Wa=u$({isScreenReaderEnabled:!1});import{createContext as d$}from"react";var wp=d$(void 0);var tb=f$(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":i,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=p$(Wa),u=n?gy.createElement("ink-text",null,n):void 0;if(l&&r)return null;let f=gy.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?gy.createElement(wp.Provider,{value:t},f):f});tb.displayName="Box";var ar=tb;import y$,{useContext as nb}from"react";import ja from"chalk";import so from"chalk";var m$=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,h$=/^ansi256\(\s?(\d+)\s?\)$/;function g$(e){return e in so}o(g$,"isNamedColor");function Rr(e,t,n){if(!t)return e;if(g$(t)){let r=so;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"?so.hex(t)(e):so.bgHex(t)(e);if(t.startsWith("ansi256")){let r=h$.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?so.ansi256(i)(e):so.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=m$.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?so.rgb(i,s,a)(e):so.bgRgb(i,s,a)(e)}return e}o(Rr,"colorize");function bn({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}=nb(Wa),g=nb(wp),C=m&&f?f:u;if(C==null)return null;let w=o(T=>{let v=T;n&&(v=ja.dim(v)),e&&(v=Rr(v,e,"foreground"));let A=t??g;return A&&(v=Rr(v,A,"background")),r&&(v=ja.bold(v)),i&&(v=ja.italic(v)),s&&(v=ja.underline(v)),a&&(v=ja.strikethrough(v)),c&&(v=ja.inverse(v)),v},"transform");return m&&p?null:y$.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:w,...h?{internal_cursorAnchor:!0}:{}},m&&f?f:u)}o(bn,"Text");import S$,{useLayoutEffect as w$,useMemo as rb,useState as x$}from"react";function yy({items:e,children:t,style:n}){let[r,i]=x$(0),s=rb(()=>e.slice(r),[e,r]);w$(()=>{i(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=rb(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return S$.createElement("ink-box",{internal_static:!0,style:c},a)}o(yy,"Static");import ps from"node:process";import w0 from"react";import r1 from"es-toolkit/compat/throttle";import Rn from"ansi-escapes";import Mi from"is-in-ci";import i1 from"auto-bind";import{onExit as o1}from"signal-exit";import s1 from"patch-console";import{LegacyRoot as a1,ConcurrentRoot as c1}from"react-reconciler/constants.js";import l1 from"yoga-layout";import u1 from"wrap-ansi";import d1 from"terminal-size";import T$ from"node:process";var xp=o(()=>T$.env.DEV==="true","isDev");import X$ from"react-reconciler";import{DefaultEventPriority as Y$,NoEventPriority as wb}from"react-reconciler/constants.js";import*as ao from"scheduler";import hb from"yoga-layout";import{createContext as q$}from"react";import N$ from"yoga-layout";import C$ from"widest-line";var ib=new Map,I$=o(e=>{if(e.length===0)return{width:0,height:0};let t=ib.get(e);if(t)return t;let n=C$(e),r=e.split(`
3
+ `).length,i={width:n,height:r};return ib.set(e,i),i},"measureText"),Sy=I$;import v$ from"wrap-ansi";import b$ from"cli-truncate";var ob={},R$=o((e,t,n)=>{let r=e+String(t)+String(n),i=ob[r];if(i)return i;let s=e;if(n==="wrap"&&(s=v$(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=b$(e,t,{position:a})}return ob[r]=s,s},"wrapText"),Tp=R$;var k$=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),E$=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),M$=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),cb=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),_$=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),lb=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),sb=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!k$(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!E$(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!M$(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),ab=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"),A$=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!cb(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!_$(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),L$=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"),P$=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"),wy=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(lb(t))return!0;return!1},"hasAnsiControlCharacters"),Ua=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"),ub=o(e=>{if(!wy(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 Ua(t,e,n,r);if(a==="["){let u=sb(e,r+2);if(u===void 0)return Ua(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=L$(a);if(c!==void 0){let u=ab(e,r+2,c.allowBellTerminator);if(u===void 0)return Ua(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=A$(e,r+1);if(l===void 0){if(cb(a))return Ua(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=sb(e,r+1);if(a===void 0)return Ua(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=P$(i);if(s!==void 0){let a=ab(e,r+1,s.allowBellTerminator);if(a===void 0)return Ua(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(lb(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 O$=/^[\d:;]*$/,$$=o(e=>{if(!wy(e))return e;let t="";for(let n of ub(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&O$.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),db=$$;var fb=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=fb(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return db(t)},"squashTextNodes"),Jl=fb;var Cp=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:N$.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(D$.bind(null,t)),t},"createNode"),Ip=o((e,t)=>{t.parentNode&&Ql(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")&&vp(e)},"appendChildNode"),xy=o((e,t,n)=>{t.parentNode&&Ql(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")&&vp(e)},"insertBeforeNode"),Ql=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")&&vp(e)},"removeChildNode"),Ty=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),Cy=o((e,t)=>{e.style=t},"setStyle"),pb=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return Zl(t,e),t},"createTextNode"),D$=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Jl(e),r=Sy(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=Tp(n,t,i);return Sy(s)},"measureTextNode"),mb=o(e=>{if(e?.parentNode)return e.yogaNode??mb(e.parentNode)},"findClosestYogaNode"),vp=o(e=>{mb(e)?.markDirty()},"markNodeAsDirty"),Zl=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,vp(e)},"setTextNodeValue");import Me from"yoga-layout";var F$=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?Me.POSITION_TYPE_ABSOLUTE:Me.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(Me.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(Me.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(Me.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(Me.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),H$=o((e,t)=>{"margin"in t&&e.setMargin(Me.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(Me.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(Me.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(Me.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(Me.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(Me.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(Me.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),W$=o((e,t)=>{"padding"in t&&e.setPadding(Me.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(Me.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(Me.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(Me.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(Me.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(Me.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(Me.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),j$=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(Me.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(Me.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(Me.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(Me.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(Me.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(Me.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(Me.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(Me.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(Me.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(Me.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(Me.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(Me.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(Me.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(Me.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(Me.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(Me.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(Me.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(Me.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(Me.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(Me.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(Me.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),U$=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"),V$=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Me.DISPLAY_FLEX:Me.DISPLAY_NONE)},"applyDisplayStyles"),G$=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(Me.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(Me.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(Me.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(Me.EDGE_RIGHT,n)}},"applyBorderStyles"),K$=o((e,t)=>{"gap"in t&&e.setGap(Me.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(Me.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(Me.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),z$=o((e,t={})=>{F$(e,t),H$(e,t),W$(e,t),j$(e,t),U$(e,t),V$(e,t),G$(e,t),K$(e,t)},"styles"),Iy=z$;if(xp())try{await import("./devtools-CD6KSIHE.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
4
4
  The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
5
5
  but this failed as it was not installed. Debugging with React Devtools requires it.
6
6
 
@@ -8,62 +8,62 @@ To install use this command:
8
8
 
9
9
  $ npm install --save-dev react-devtools-core
10
10
  `.trim()+`
11
- `);else throw e}var hb=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"),gb=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),bp=Sb,vy,yb={name:void 0,version:void 0},Ii=UN({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=Cp(i);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){Cy(s,c),s.yogaNode&&Iy(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"){vy=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}Ty(s,a,c)}return s},createTextInstance(e,t,n){if(!n.isInsideText)throw new Error(`Text string "${e}" must be rendered inside <Text> component`);return fb(e)},resetTextContent(){},hideTextInstance(e){Ql(e,"")},unhideTextInstance(e,t){Ql(e,t)},getPublicInstance:o(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(mb.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(mb.DISPLAY_FLEX)},appendInitialChild:Ip,appendChild:Ip,insertBefore:xy,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:ao.unstable_scheduleCallback,cancelCallback:ao.unstable_cancelCallback,shouldYield:ao.unstable_shouldYield,now:ao.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:o(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:o(()=>null,"getInstanceFromScope"),appendChildToContainer:Ip,insertInContainerBefore:xy,removeChildFromContainer(e,t){Jl(e,t),gb(t.yogaNode)},commitUpdate(e,t,n,r){vy&&e.internal_static&&(vy.isStaticDirty=!0);let i=hb(n,r),s=hb(n.style,r.style);if(!(!i&&!s)){if(i)for(let[a,c]of Object.entries(i)){if(a==="style"){Cy(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}Ty(e,a,c)}s&&e.yogaNode&&Iy(e.yogaNode,s)}},commitTextUpdate(e,t,n){Ql(e,n)},removeChild(e,t){Jl(e,t),gb(t.yogaNode)},setCurrentUpdatePriority(e){bp=e},getCurrentUpdatePriority:o(()=>bp,"getCurrentUpdatePriority"),resolveUpdatePriority(){return bp!==Sb?bp:VN},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:GN(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:yb.name,rendererVersion:yb.version});import qN from"widest-line";import JN from"indent-string";import co from"yoga-layout";import Rp from"yoga-layout";var KN=o(e=>e.getComputedWidth()-e.getComputedPadding(Rp.EDGE_LEFT)-e.getComputedPadding(Rp.EDGE_RIGHT)-e.getComputedBorder(Rp.EDGE_LEFT)-e.getComputedBorder(Rp.EDGE_RIGHT),"getMaxWidth"),wb=KN;import zN from"cli-boxes";import kp from"chalk";var XN=o((e,t,n,r)=>{if(n.style.borderStyle){let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?zN[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,d=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,C=n.style.borderTop!==!1,w=n.style.borderBottom!==!1,T=n.style.borderLeft!==!1,v=n.style.borderRight!==!1,_=i-(T?1:0)-(v?1:0),P=C?Rr((T?a.topLeft:"")+a.top.repeat(_)+(v?a.topRight:""),c,"foreground"):void 0;C&&p&&(P=kp.dim(P));let k=s;C&&(k-=1),w&&(k-=1);let E=(Rr(a.left,u,"foreground")+`
12
- `).repeat(k);m&&(E=kp.dim(E));let $=(Rr(a.right,d,"foreground")+`
13
- `).repeat(k);g&&($=kp.dim($));let B=w?Rr((T?a.bottomLeft:"")+a.bottom.repeat(_)+(v?a.bottomRight:""),l,"foreground"):void 0;w&&h&&(B=kp.dim(B));let O=C?1:0;P&&r.write(e,t,P,{transformers:[]}),T&&r.write(e,t+O,E,{transformers:[]}),v&&r.write(e+i-1,t+O,$,{transformers:[]}),B&&r.write(e,t+s-1,B,{transformers:[]})}},"renderBorder"),xb=XN;var YN=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,d=i-a-c,p=s-l-u;if(!(d>0&&p>0))return;let h=Rr(" ".repeat(d),n.style.backgroundColor,"background");for(let m=0;m<p;m++)r.write(e+a,t+l+m,h,{transformers:[]})},"renderBackground"),Tb=YN;function Ep(e){let{rawScrollTop:t,contentHeight:n,viewportHeight:r,previousScrollHeight:i,stickyScroll:s,clampMin:a,clampMax:c,virtualScrollWindowed:l,inWindowScrollTop:u,previousAppliedScrollTop:d,regionTop:p}=e,h=Math.max(0,n-r),m=Math.max(0,Math.min(Math.floor(t),h)),C=s&&n>=i?h:m,w=a!==void 0||c!==void 0?Math.max(a??0,Math.min(C,Math.min(h,c??h))):C,T=l&&u!==void 0,v=Math.max(0,Math.floor(u??0)),_=l?T?v:0:w,P=T?_:w,k=null;if(d!==void 0&&d!==P&&r>0){let E=p+r-1;E>=p&&(k={top:p,bottom:E,delta:P-d})}return{scrollHeight:n,viewportTop:w,appliedScrollTop:P,scrollTop:w,scrollOffsetY:_,scrollHint:k}}o(Ep,"computeScrollState");var QN=o((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),i=n.getComputedTop();t=`
14
- `.repeat(i)+JN(t,r)}return t},"applyPaddingToText"),Mp=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===co.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=ql(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=>Mp(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"),by=null,Ry=null;function Cb(){by=null,Ry=null}o(Cb,"resetScrollHint");function Ib(){return by}o(Ib,"getScrollHint");function vb(){return Ry}o(vb,"getScrollRepaint");var bb=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()===co.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=i+c.getComputedTop();e.internal_cursorAnchor&&(t.cursorPosition={x:l,y:u});let d=s;if(typeof e.internal_transform=="function"&&(d=[e.internal_transform,...s]),e.nodeName==="ink-text"){let m=ql(e);if(m.length>0){let g=qN(m),C=wb(c);if(g>C){let w=e.style.textWrap??"wrap";m=Tp(m,C,w)}m=QN(e,m),t.write(l,u,m,{transformers:d})}return}let p=!1,h=0;if(e.nodeName==="ink-box"){Tb(l,u,e,t),xb(l,u,e,t);let m=e.style.overflowX??e.style.overflow,g=e.style.overflowY??e.style.overflow,C=m==="hidden"||m==="scroll",w=g==="hidden"||g==="scroll";if(g==="scroll"){let T=c.getComputedBorder(co.EDGE_TOP),v=c.getComputedBorder(co.EDGE_BOTTOM),_=Math.max(0,c.getComputedHeight()-T-v),P=e.attributes?.virtualScrollWindowed===!0,k=e.childNodes[0],E=Math.max(0,Math.floor(P?e.attributes?.scrollHeight??0:k?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),$=typeof e.scrollHeight=="number"?e.scrollHeight:E,B=Ep({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:E,viewportHeight:_,previousScrollHeight:$,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:P,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+T});e.scrollHeight=B.scrollHeight,e.scrollViewportHeight=_,e.scrollViewportTop=B.viewportTop,e.appliedScrollTop=B.appliedScrollTop,B.scrollHint&&(by=B.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&(Ry={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(C||w){let T=C?l+c.getComputedBorder(co.EDGE_LEFT):void 0,v=C?l+c.getComputedWidth()-c.getComputedBorder(co.EDGE_RIGHT):void 0,_=w?u+c.getComputedBorder(co.EDGE_TOP):void 0,P=w?u+c.getComputedHeight()-c.getComputedBorder(co.EDGE_BOTTOM):void 0;t.clip({x1:T,x2:v,y1:_,y2:P}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let m of e.childNodes)bb(m,t,{offsetX:l,offsetY:u-h,transformers:d,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),ky=bb;import ZN from"slice-ansi";import eO from"string-width";import{styledCharsFromTokens as tO,styledCharsToString as nO,tokenize as rO}from"@alcalzone/ansi-tokenize";var Ey=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=tO(rO(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=eO(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(`
11
+ `);else throw e}var gb=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"),yb=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),bp=wb,vy,Sb={name:void 0,version:void 0},Ii=X$({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=Cp(i);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){Cy(s,c),s.yogaNode&&Iy(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"){vy=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}Ty(s,a,c)}return s},createTextInstance(e,t,n){if(!n.isInsideText)throw new Error(`Text string "${e}" must be rendered inside <Text> component`);return pb(e)},resetTextContent(){},hideTextInstance(e){Zl(e,"")},unhideTextInstance(e,t){Zl(e,t)},getPublicInstance:o(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(hb.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(hb.DISPLAY_FLEX)},appendInitialChild:Ip,appendChild:Ip,insertBefore:xy,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:ao.unstable_scheduleCallback,cancelCallback:ao.unstable_cancelCallback,shouldYield:ao.unstable_shouldYield,now:ao.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:o(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:o(()=>null,"getInstanceFromScope"),appendChildToContainer:Ip,insertInContainerBefore:xy,removeChildFromContainer(e,t){Ql(e,t),yb(t.yogaNode)},commitUpdate(e,t,n,r){vy&&e.internal_static&&(vy.isStaticDirty=!0);let i=gb(n,r),s=gb(n.style,r.style);if(!(!i&&!s)){if(i)for(let[a,c]of Object.entries(i)){if(a==="style"){Cy(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}Ty(e,a,c)}s&&e.yogaNode&&Iy(e.yogaNode,s)}},commitTextUpdate(e,t,n){Zl(e,n)},removeChild(e,t){Ql(e,t),yb(t.yogaNode)},setCurrentUpdatePriority(e){bp=e},getCurrentUpdatePriority:o(()=>bp,"getCurrentUpdatePriority"),resolveUpdatePriority(){return bp!==wb?bp:Y$},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:q$(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:Sb.name,rendererVersion:Sb.version});import tN from"widest-line";import nN from"indent-string";import co from"yoga-layout";import Rp from"yoga-layout";var J$=o(e=>e.getComputedWidth()-e.getComputedPadding(Rp.EDGE_LEFT)-e.getComputedPadding(Rp.EDGE_RIGHT)-e.getComputedBorder(Rp.EDGE_LEFT)-e.getComputedBorder(Rp.EDGE_RIGHT),"getMaxWidth"),xb=J$;import Q$ from"cli-boxes";import kp from"chalk";var Z$=o((e,t,n,r)=>{if(n.style.borderStyle){let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?Q$[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,C=n.style.borderTop!==!1,w=n.style.borderBottom!==!1,T=n.style.borderLeft!==!1,v=n.style.borderRight!==!1,A=i-(T?1:0)-(v?1:0),D=C?Rr((T?a.topLeft:"")+a.top.repeat(A)+(v?a.topRight:""),c,"foreground"):void 0;C&&p&&(D=kp.dim(D));let k=s;C&&(k-=1),w&&(k-=1);let E=(Rr(a.left,u,"foreground")+`
12
+ `).repeat(k);m&&(E=kp.dim(E));let P=(Rr(a.right,f,"foreground")+`
13
+ `).repeat(k);g&&(P=kp.dim(P));let B=w?Rr((T?a.bottomLeft:"")+a.bottom.repeat(A)+(v?a.bottomRight:""),l,"foreground"):void 0;w&&h&&(B=kp.dim(B));let $=C?1:0;D&&r.write(e,t,D,{transformers:[]}),T&&r.write(e,t+$,E,{transformers:[]}),v&&r.write(e+i-1,t+$,P,{transformers:[]}),B&&r.write(e,t+s-1,B,{transformers:[]})}},"renderBorder"),Tb=Z$;var eN=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=Rr(" ".repeat(f),n.style.backgroundColor,"background");for(let m=0;m<p;m++)r.write(e+a,t+l+m,h,{transformers:[]})},"renderBackground"),Cb=eN;function Ep(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)),C=s&&n>=i?h:m,w=a!==void 0||c!==void 0?Math.max(a??0,Math.min(C,Math.min(h,c??h))):C,T=l&&u!==void 0,v=Math.max(0,Math.floor(u??0)),A=l?T?v:0:w,D=T?A:w,k=null;if(f!==void 0&&f!==D&&r>0){let E=p+r-1;E>=p&&(k={top:p,bottom:E,delta:D-f})}return{scrollHeight:n,viewportTop:w,appliedScrollTop:D,scrollTop:w,scrollOffsetY:A,scrollHint:k}}o(Ep,"computeScrollState");var rN=o((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),i=n.getComputedTop();t=`
14
+ `.repeat(i)+nN(t,r)}return t},"applyPaddingToText"),Mp=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===co.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=Jl(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=>Mp(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"),by=null,Ry=null;function Ib(){by=null,Ry=null}o(Ib,"resetScrollHint");function vb(){return by}o(vb,"getScrollHint");function bb(){return Ry}o(bb,"getScrollRepaint");var Rb=o((e,t,n)=>{let{offsetX:r=0,offsetY:i=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===co.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=Jl(e);if(m.length>0){let g=tN(m),C=xb(c);if(g>C){let w=e.style.textWrap??"wrap";m=Tp(m,C,w)}m=rN(e,m),t.write(l,u,m,{transformers:f})}return}let p=!1,h=0;if(e.nodeName==="ink-box"){Cb(l,u,e,t),Tb(l,u,e,t);let m=e.style.overflowX??e.style.overflow,g=e.style.overflowY??e.style.overflow,C=m==="hidden"||m==="scroll",w=g==="hidden"||g==="scroll";if(g==="scroll"){let T=c.getComputedBorder(co.EDGE_TOP),v=c.getComputedBorder(co.EDGE_BOTTOM),A=Math.max(0,c.getComputedHeight()-T-v),D=e.attributes?.virtualScrollWindowed===!0,k=e.childNodes[0],E=Math.max(0,Math.floor(D?e.attributes?.scrollHeight??0:k?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),P=typeof e.scrollHeight=="number"?e.scrollHeight:E,B=Ep({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:D,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+T});e.scrollHeight=B.scrollHeight,e.scrollViewportHeight=A,e.scrollViewportTop=B.viewportTop,e.appliedScrollTop=B.appliedScrollTop,B.scrollHint&&(by=B.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&(Ry={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(C||w){let T=C?l+c.getComputedBorder(co.EDGE_LEFT):void 0,v=C?l+c.getComputedWidth()-c.getComputedBorder(co.EDGE_RIGHT):void 0,A=w?u+c.getComputedBorder(co.EDGE_TOP):void 0,D=w?u+c.getComputedHeight()-c.getComputedBorder(co.EDGE_BOTTOM):void 0;t.clip({x1:T,x2:v,y1:A,y2:D}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let m of e.childNodes)Rb(m,t,{offsetX:l,offsetY:u-h,transformers:f,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),ky=Rb;import iN from"slice-ansi";import oN from"string-width";import{styledCharsFromTokens as sN,styledCharsToString as aN,tokenize as cN}from"@alcalzone/ansi-tokenize";var Ey=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=sN(cN(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=oN(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
16
  `))r=Math.max(r,this.getStringWidth(i));n=r,this.blockWidths.set(t,n)}return n}},Va=class{static{o(this,"Output")}width;height;operations=[];caches=new Ey;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,C=this.caches.getStringWidth(m),w=a+C>u.x2?u.x2-a:C;return ZN(m,g,w)}),a<u.x1&&(a=u.x1)),h){let m=c<u.y1?u.y1-c:0,g=l.length,C=c+g>u.y2?u.y2-c:g;l=l.slice(m,C),c<u.y1&&(c=u.y1)}}let d=0;for(let[p,h]of l.entries()){let m=t[c+d];if(!m)continue;for(let w of s)h=w(h,p);let g=this.caches.getStyledChars(h),C=a;for(let w of g){m[C]=w;let T=Math.max(1,this.caches.getStringWidth(w.value));if(T>1)for(let v=1;v<T;v++)m[C+v]={type:"char",value:"",fullWidth:!1,styles:w.styles};C+=T}d++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let i=r.filter(s=>s!==void 0);return nO(i).trimEnd()}).join(`
18
- `),height:t.length}}};var Kr={Single:0,Wide:1,SpacerTail:2},Gr={char:" ",width:Kr.Single,style:"",hyperlink:void 0};function Rb(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(Gr);return{width:e,height:t,cells:n}}o(Rb,"createScreen");function cs(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}o(cs,"cellAt");function kb(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(Gr),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(kb,"createScreenBuilder");function*_p(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=cs(e,s,i),c=cs(t,s,i);iO(a,c)||(yield{x:s,y:i,prev:a,next:c})}}o(_p,"diffEach");function Eb(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(d=>{for(let p=0;p<a;p++)c[d*a+p]=Gr},"blankRow");if(Math.abs(r)>=l){for(let d=i;d<=s;d++)u(d);return{...e,cells:c}}if(r>0){for(let d=i;d<=s-r;d++)for(let p=0;p<a;p++)c[d*a+p]=e.cells[(d+r)*a+p]??Gr;for(let d=s-r+1;d<=s;d++)u(d)}else{let d=-r;for(let p=s;p>=i+d;p--)for(let h=0;h<a;h++)c[p*a+h]=e.cells[(p-d)*a+h]??Gr;for(let p=i;p<=i+d-1;p++)u(p)}return{...e,cells:c}}o(Eb,"shiftRowsRegion");function iO(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(iO,"cellsEqual");var My="\x1B]8;";function oO(e){return e.endsWith("\x07")?e.slice(0,-1):e}o(oO,"stripOsc8Terminator");function sO(e){if(!e.startsWith(My))return;let t=e.slice(My.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),i=oO(r);return i.length>0?i:void 0}o(sO,"parseOsc8Url");function aO(e){if(e.value==="")return{char:"",width:Kr.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(My)){let i=sO(r.code);i!==void 0&&(n=i)}else t+=r.code;return{char:e.value,width:e.fullWidth?Kr.Wide:Kr.Single,style:t,hyperlink:n}}o(aO,"styledCharToCell");function Ap(e){let t=e.getGrid(),n=e.width,r=e.height,i=kb(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 d=c[u];if(!d)continue;let p=aO(d);p.char===Gr.char&&p.width===Gr.width&&p.style===Gr.style&&p.hyperlink===Gr.hyperlink||i.setCellAt(u,a,p)}}return i.build()}o(Ap,"outputToScreen");var cO=o((e,t,n)=>{if(e.yogaNode){if(t){let h=Mp(e,{skipStaticElements:!0}),m=h===""?0:h.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,C=this.caches.getStringWidth(m),w=a+C>u.x2?u.x2-a:C;return iN(m,g,w)}),a<u.x1&&(a=u.x1)),h){let m=c<u.y1?u.y1-c:0,g=l.length,C=c+g>u.y2?u.y2-c:g;l=l.slice(m,C),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 w of s)h=w(h,p);let g=this.caches.getStyledChars(h),C=a;for(let w of g){m[C]=w;let T=Math.max(1,this.caches.getStringWidth(w.value));if(T>1)for(let v=1;v<T;v++)m[C+v]={type:"char",value:"",fullWidth:!1,styles:w.styles};C+=T}f++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let i=r.filter(s=>s!==void 0);return aN(i).trimEnd()}).join(`
18
+ `),height:t.length}}};var Kr={Single:0,Wide:1,SpacerTail:2},Gr={char:" ",width:Kr.Single,style:"",hyperlink:void 0};function kb(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(Gr);return{width:e,height:t,cells:n}}o(kb,"createScreen");function cs(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}o(cs,"cellAt");function Eb(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(Gr),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(Eb,"createScreenBuilder");function*_p(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=cs(e,s,i),c=cs(t,s,i);lN(a,c)||(yield{x:s,y:i,prev:a,next:c})}}o(_p,"diffEach");function Mb(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]=Gr},"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]??Gr;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]??Gr;for(let p=i;p<=i+f-1;p++)u(p)}return{...e,cells:c}}o(Mb,"shiftRowsRegion");function lN(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(lN,"cellsEqual");var My="\x1B]8;";function uN(e){return e.endsWith("\x07")?e.slice(0,-1):e}o(uN,"stripOsc8Terminator");function dN(e){if(!e.startsWith(My))return;let t=e.slice(My.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),i=uN(r);return i.length>0?i:void 0}o(dN,"parseOsc8Url");function fN(e){if(e.value==="")return{char:"",width:Kr.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(My)){let i=dN(r.code);i!==void 0&&(n=i)}else t+=r.code;return{char:e.value,width:e.fullWidth?Kr.Wide:Kr.Single,style:t,hyperlink:n}}o(fN,"styledCharToCell");function Ap(e){let t=e.getGrid(),n=e.width,r=e.height,i=Eb(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=fN(f);p.char===Gr.char&&p.width===Gr.width&&p.style===Gr.style&&p.hyperlink===Gr.hyperlink||i.setCellAt(u,a,p)}}return i.build()}o(Ap,"outputToScreen");var pN=o((e,t,n)=>{if(e.yogaNode){if(t){let h=Mp(e,{skipStaticElements:!0}),m=h===""?0:h.split(`
19
19
  `).length,g="";return e.staticNode&&(g=Mp(e.staticNode,{skipStaticElements:!1})),{output:h,outputHeight:m,staticOutput:g?`${g}
20
- `:"",frame:void 0}}let r=new Va({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});Cb(),ky(e,r,{skipStaticElements:!0});let i;e.staticNode?.yogaNode&&(i=new Va({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),ky(e.staticNode,i,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Ap(r),l=n?.columns??e.yogaNode.getComputedWidth(),u=n?.rows??e.yogaNode.getComputedHeight(),d=r.cursorPosition,p={screen:c,viewport:{width:l,height:u},cursor:{x:0,y:c.height,visible:!1},scrollHint:Ib(),scrollRepaint:vb(),...d?{inputCursor:{x:d.x,y:d.y}}:{}};return{output:s,outputHeight:a,staticOutput:i?`${i.get().output}
21
- `:"",frame:p}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),_y=cO;function jn(...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(jn,"csi");function Mb(e=1){return e===0?"":jn(e,"A")}o(Mb,"cursorUp");function lO(e=1){return e===0?"":jn(e,"B")}o(lO,"cursorDown");function uO(e=1){return e===0?"":jn(e,"C")}o(uO,"cursorForward");function dO(e=1){return e===0?"":jn(e,"D")}o(dO,"cursorBack");function _b(e){return jn(e,"G")}o(_b,"cursorTo");var fO=jn("G"),Ab=jn("H");function Lb(e,t){let n="";return e<0?n+=dO(-e):e>0&&(n+=uO(e)),t<0?n+=Mb(-t):t>0&&(n+=lO(t)),n}o(Lb,"cursorMove");var Ay=jn(2,"K");function Pb(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=Ay,n<e-1&&(t+=Mb(1));return t+=fO,t}o(Pb,"eraseLines");var $b=jn("r"),Nb="\x1B7",Ob="\x1B8";function Db(e,t){return jn(e,t,"r")}o(Db,"setScrollRegion");function Bb(e=1){return jn(e,"S")}o(Bb,"scrollUp");function Fb(e=1){return jn(e,"T")}o(Fb,"scrollDown");var Zl=jn(0,"m");function Hb(e){return`\x1B]${e.join(";")}\x07`}o(Hb,"osc");function pO(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(pO,"osc8Id");function eu(e,t){if(!e)return Ga;let n={id:pO(e),...t??{}},r=Object.entries(n).map(([i,s])=>`${i}=${s}`).join(":");return Hb(["8",r,e])}o(eu,"link");var Ga=Hb(["8","",""]);function Ly(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=cs(t,c,s);!l||l.width===Kr.SpacerTail||(l.hyperlink!==i&&(i!==void 0&&(a+=Ga),l.hyperlink!==void 0&&(a+=eu(l.hyperlink)),i=l.hyperlink),l.style!==r&&(r!==""&&(a+=Zl),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}i!==void 0&&(a+=Ga,i=void 0),r!==""&&(a+=Zl,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
22
- `)}]}o(Ly,"renderFullFrame");var mO=Object.freeze([]),hO=Object.freeze([]);function ls(e,t){if(e===t)return{patches:mO,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:Zl}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}o(ls,"transitionStyle");function nu(e,t){let n=ls(e,t),r="";for(let i of n.patches)i.type==="stdout"&&(r+=i.content);return{str:r,current:n.current}}o(nu,"transitionStyleStr");function vi(e,t){if(e===t)return{patches:hO,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:Ga}),t!==void 0&&n.push({type:"stdout",content:eu(t)}),{patches:n,current:t}}o(vi,"transitionHyperlink");function Wb(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(Wb,"needsWidthCompensation");var us=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}},bi={type:"carriageReturn"},tu={type:"stdout",content:`
23
- `};function ru(e,t,n){let r=t.width===Kr.Wide?2:1,i=e.viewportWidth,s=!1;return e.txn(a=>{let c=a.x;if(r===2&&c<i){let d=t.char.length>2?i:i+1;if(c+2>=d)return[[],{dx:0,dy:0}]}let l=[];n.length>0&&l.push({type:"stdout",content:n});let u=r===2&&Wb(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(ru,"writeCellWithStyleStr");function ds(e,t,n){e.txn(r=>{let i=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[bi,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:s!==0?[[bi,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:[[{type:"cursorMove",x:i,y:s}],{dx:i,dy:s}]})}o(ds,"moveCursorTo");function iu(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]=bi;for(let g=0;g<p;g++)m[1+g]=tu;return[m,{dx:-h.x,dy:p}]})}for(let p=0;p<t.screen.width;p++){let h=cs(t.screen,p,c);if(!h||h.width===Kr.SpacerTail||h.char===" "&&h.style===""&&h.hyperlink===void 0)continue;ds(e,p,c);let m=vi(a,h.hyperlink);for(let C of m.patches)e.txn(()=>[[C],{dx:0,dy:0}]);a=m.current;let g=nu(s,h.style);ru(e,h,g.str)&&(s=g.current)}let l=ls(s,"");for(let p of l.patches)e.txn(()=>[[p],{dx:0,dy:0}]);s=l.current;let u=vi(a,void 0);for(let p of u.patches)e.txn(()=>[[p],{dx:0,dy:0}]);a=u.current;let d=c===r-1&&t.screen.height<=t.viewport.height&&(c+1>=t.viewport.height||i);e.txn(p=>d?[[bi],{dx:-p.x,dy:0}]:[[bi,tu],{dx:-p.x,dy:1}])}if(s!==""||a!==void 0){let c=ls(s,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);let l=vi(a,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}])}}o(iu,"renderFrameSlice");function Py(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++)gO(e,t,a)}o(Py,"repaintFrameRows");function gO(e,t,n){let r="",i;ds(e,0,n),e.txn(()=>[[{type:"stdout",content:Ga+Zl},{type:"eraseLine"}],{dx:0,dy:0}]);for(let s=0;s<t.screen.width;s++){let a=cs(t.screen,s,n);if(!a||a.width===Kr.SpacerTail||a.char===" "&&a.style===""&&a.hyperlink===void 0)continue;ds(e,s,n);let c=vi(i,a.hyperlink);for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);i=c.current;let l=nu(r,a.style);ru(e,a,l.str)&&(r=l.current)}for(let s of ls(r,"").patches)e.txn(()=>[[s],{dx:0,dy:0}]);for(let s of vi(i,void 0).patches)e.txn(()=>[[s],{dx:0,dy:0}])}o(gO,"repaintFrameRow");function $y(e,t){let n="";for(let r=0;r<e.width;r++){let i=cs(e,r,t);n+=i?.char??" "}return n.trimEnd()}o($y,"readLine");function Ka(e,t,n=!1){let r=new us({x:0,y:0},e.viewport.width);iu(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(Ka,"fullResetSequence_CAUSES_FLICKER");function Lp(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(Lp,"computeViewportState");function jb(e,t,n){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let r=Lp(e,t);if(r.prevHadScrollback&&r.nextFitsViewport&&r.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&r.cursorAtBottom&&!r.growing){let s=e.screen.height-e.viewport.height+1;for(let a of _p(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(jb,"shouldFullReset");function Ub(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}o(Ub,"shouldSkipDiff");var Pp=class{static{o(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return Ly(n);let i=r.inlineBottomAnchored??!1,s=Vb(t,i),a=Vb(n,i);if(r.altScreen===!0&&t.screen.height===0&&a.screen.height>0)return Ka(a,"clear",i);let c=jb(s,a,$y);if(c.reset)return Ka(a,c.reason,i);if(a.scrollRepaint&&r.altScreen===!0)return yO(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},d={...s,screen:Eb(s.screen,l.top,l.bottom,l.delta)};return[u,...Gb(d,a,i)]}return Gb(s,a,i)}reset(){}};function Ny(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}o(Ny,"emitPatches");function Oy(e,t,n){if(t!==""){let r=ls(t,"");Ny(e,r.patches)}if(n!==void 0){let r=vi(n,void 0);Ny(e,r.patches)}return{style:"",hyperlink:void 0}}o(Oy,"resetStyleAndHyperlink");function yO(e,t,n){let r=Lp(e,t),i=new us(e.cursor,t.viewport.width);r.shrinking&&Kb(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&&Py(i,t,c.top,c.bottom);let l=zb(i,e,t,{...r,skipRows:c});return l.needsFullReset?Ka(t,"offscreen"):(Oy(i,l.currentStyle,l.currentHyperlink),r.growing&&iu(i,t,e.screen.height,t.screen.height),Xb(i,t),i.diff)}o(yO,"renderScrollRepaint");function Kb(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(Kb,"applyShrink");function zb(e,t,n,r){let i="",s,a=!1;for(let c of _p(t.screen,n.screen)){let{x:l,y:u,prev:d,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(!Ub(d,p,h)){if(u<r.viewportY){a=!0;break}if(ds(e,l,u),p){let m=vi(s,p.hyperlink);Ny(e,m.patches),s=m.current;let g=nu(i,p.style);ru(e,p,g.str)&&(i=g.current)}else if(d){let m=Oy(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(zb,"diffPass");function Vb(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(Vb,"clampRestingCursor");function Xb(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]=bi;for(let a=0;a<r;a++)s[1+a]=tu;return[s,{dx:-n.x,dy:r}]}let i=t.cursor.y-n.y;return i!==0||n.x!==t.cursor.x?[[bi,{type:"cursorMove",x:t.cursor.x,y:i}],{dx:t.cursor.x-n.x,dy:i}]:[[],{dx:0,dy:0}]}):ds(e,t.cursor.x,t.cursor.y)}o(Xb,"restoreCursor");function Gb(e,t,n=!1){let r=Lp(e,t),i=new us(e.cursor,t.viewport.width);r.shrinking&&Kb(i,e,t);let s=zb(i,e,t,r);return s.needsFullReset?Ka(t,"offscreen",n):(Oy(i,s.currentStyle,s.currentHyperlink),r.growing&&iu(i,t,e.screen.height,t.screen.height,n),Xb(i,t),i.diff)}o(Gb,"renderIncremental");var SO="\x1B[?25l",wO="\x1B[?25h",xO=`\x1B[2J${Ab}`,TO="\x1B[?2026h",CO="\x1B[?2026l";function IO(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return SO;case"cursorShow":return wO;case"cursorMove":return Lb(e.x,e.y);case"cursorTo":return _b(e.col);case"eraseLine":return Ay;case"clear":return Pb(e.count);case"clearTerminal":return xO;case"hyperlink":return eu(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,r=Math.abs(e.delta),i=e.delta>0?Bb(r):Fb(r);return Nb+Db(t,n)+i+$b+Ob}}}o(IO,"patchToBytes");function $p(e,t,n=!1){let r="",i=!1;for(let s of t)s.type==="clearTerminal"&&(i=!0),r+=IO(s);if(r.length!==0){if(n&&i){e.write(TO+r+CO);return}e.write(r)}}o($p,"applyDiff");function Yb(e,t,n={}){if(t===void 0)return!1;let r=e.cellLogUpdate.render(e.prevFrame,t,n);return $p(e.stdout,r,n.synchronized??!1),e.prevFrame=t,!0}o(Yb,"applyCellFrame");function ou(e,t){return{screen:Rb(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}o(ou,"emptyFrame");import vO from"is-in-ci";var Ri="\x1B[?2026h",zr="\x1B[?2026l";function ki(e){return"isTTY"in e&&e.isTTY===!0&&!vO}o(ki,"shouldSynchronize");var bO=new WeakMap,qb=bO;import{EventEmitter as GO}from"node:events";import KO from"node:process";import fs,{useState as Fy,useRef as za,useCallback as Pt,useMemo as Xa,useEffect as m0}from"react";import zO from"cli-cursor";var RO=o(e=>e>=48&&e<=63,"isCsiParameterByte"),kO=o(e=>e>=32&&e<=47,"isCsiIntermediateByte"),Qb=o(e=>e>=64&&e<=126,"isCsiFinalByte");function EO(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(!(RO(s)||kO(s))&&!(s===91&&i===r))return Qb(s)?{sequence:e.slice(t,i+1),nextIndex:i+1}:void 0}return"pending"}o(EO,"parseCsiSequence");function MO(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let i=e.codePointAt(r-1);if(!(i===void 0||!Qb(i)))return{sequence:e.slice(t,r),nextIndex:r}}o(MO,"parseSs3Sequence");function Jb(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return EO(e,t,n);if(r==="O")return MO(e,t,n)}o(Jb,"parseControlSequence");function _O(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(_O,"parseEscapedCodePoint");function AO(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=Jb(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=Jb(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=_O(e,i);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}o(AO,"parseKeypresses");function Np(){let e="";return{push(t){let n=AO(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(Np,"createInputParser");import{createContext as LO}from"react";var Zb=LO({exit(){}});Zb.displayName="InternalAppContext";var e0=Zb;import{EventEmitter as PO}from"node:events";import{createContext as $O}from"react";var NO={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},t0=$O({stdin:NO,internal_eventEmitter:new PO,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});t0.displayName="InternalStdinContext";var n0=t0;import{createContext as OO}from"react";var DO={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},r0=OO({stdout:DO,write(){}});r0.displayName="InternalStdoutContext";var i0=r0;import{createContext as BO}from"react";var FO={isTTY:!1,write(){return!0},on(){},off(){}},o0=BO({stderr:FO,write(){}});o0.displayName="InternalStderrContext";var s0=o0;import{createContext as HO}from"react";var a0=HO({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});a0.displayName="InternalFocusContext";var c0=a0;import{createContext as WO}from"react";var l0=WO({setCursorPosition(){}});l0.displayName="InternalCursorContext";var u0=l0;import UO,{PureComponent as VO}from"react";import*as Op from"node:fs";import{cwd as p0}from"node:process";import Wt from"react";import d0 from"stack-utils";import jO from"code-excerpt";var Dy=o(e=>e?.replace(`file://${p0()}/`,""),"cleanupPath"),f0=new d0({cwd:p0(),internals:d0.nodeInternals()});function By({error:e}){let t=e.stack?e.stack.split(`
24
- `).slice(1):void 0,n=t?f0.parseLine(t[0]):void 0,r=Dy(n?.file),i,s=0;if(r&&n?.line&&Op.existsSync(r)){let a=Op.readFileSync(r,"utf8");if(i=jO(a,n.line),i)for(let{line:c}of i)s=Math.max(s,String(c).length)}return Wt.createElement(ar,{flexDirection:"column",padding:1},Wt.createElement(ar,null,Wt.createElement(bn,{backgroundColor:"red",color:"white"}," ","ERROR"," "),Wt.createElement(bn,null," ",e.message)),n&&r&&Wt.createElement(ar,{marginTop:1},Wt.createElement(bn,{dimColor:!0},r,":",n.line,":",n.column)),n&&i&&Wt.createElement(ar,{marginTop:1,flexDirection:"column"},i.map(({line:a,value:c})=>Wt.createElement(ar,{key:a},Wt.createElement(ar,{width:s+1},Wt.createElement(bn,{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(bn,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&Wt.createElement(ar,{marginTop:1,flexDirection:"column"},e.stack.split(`
25
- `).slice(1).map(a=>{let c=f0.parseLine(a);return c?Wt.createElement(ar,{key:a},Wt.createElement(bn,{dimColor:!0},"- "),Wt.createElement(bn,{dimColor:!0,bold:!0},c.function),Wt.createElement(bn,{dimColor:!0,color:"gray","aria-label":`at ${Dy(c.file)??""} line ${c.line} column ${c.column}`}," ","(",Dy(c.file)??"",":",c.line,":",c.column,")")):Wt.createElement(ar,{key:a},Wt.createElement(bn,{dimColor:!0},"- "),Wt.createElement(bn,{dimColor:!0,bold:!0},a,"\\t"," "))})))}o(By,"ErrorOverview");var su=class extends VO{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?UO.createElement(By,{error:this.state.error}):this.props.children}};var XO=" ",YO="\x1B[Z",qO="\x1B";function h0({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:i,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,d]=Fy(!0),[p,h]=Fy(void 0),[,m]=Fy([]),g=za(0),C=za(0),w=za(new GO);w.current.setMaxListeners(1/0);let T=za(void 0),v=za(Np()),_=za(void 0),P=Pt(()=>{_.current&&(clearImmediate(_.current),_.current=void 0)},[]),k=t.isTTY,E=Pt(()=>{T.current&&(t.removeListener("readable",T.current),T.current=void 0)},[t]),$=Pt(()=>{t.setRawMode(!1),E(),t.unref(),C.current=0,v.current.reset(),P()},[t,E,P]),B=Pt(me=>{k&&C.current>0&&$(),c(me)},[k,$,c]),O=Pt(me=>{if(me===""&&a){B();return}me===qO&&h(Re=>Re&&void 0)},[a,B]),G=Pt(me=>{O(me),w.current.emit("input",me)},[O]),re=Pt(()=>{P(),_.current=setImmediate(()=>{_.current=void 0;let me=v.current.flushPendingEscape();me&&G(me)})},[P,G]),X=Pt(()=>{P();let me;for(;(me=t.read())!==null;){let Re=v.current.push(me);for(let K of Re)G(K)}v.current.hasPendingEscape()&&re()},[t,G,P,re]),y=Pt(me=>{if(!k)throw t===KO.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
20
+ `:"",frame:void 0}}let r=new Va({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});Ib(),ky(e,r,{skipStaticElements:!0});let i;e.staticNode?.yogaNode&&(i=new Va({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),ky(e.staticNode,i,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Ap(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:vb(),scrollRepaint:bb(),...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"),_y=pN;function jn(...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(jn,"csi");function _b(e=1){return e===0?"":jn(e,"A")}o(_b,"cursorUp");function mN(e=1){return e===0?"":jn(e,"B")}o(mN,"cursorDown");function hN(e=1){return e===0?"":jn(e,"C")}o(hN,"cursorForward");function gN(e=1){return e===0?"":jn(e,"D")}o(gN,"cursorBack");function Ab(e){return jn(e,"G")}o(Ab,"cursorTo");var yN=jn("G"),Lb=jn("H");function Pb(e,t){let n="";return e<0?n+=gN(-e):e>0&&(n+=hN(e)),t<0?n+=_b(-t):t>0&&(n+=mN(t)),n}o(Pb,"cursorMove");var Ay=jn(2,"K");function Ob(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=Ay,n<e-1&&(t+=_b(1));return t+=yN,t}o(Ob,"eraseLines");var $b=jn("r"),Nb="\x1B7",Db="\x1B8";function Bb(e,t){return jn(e,t,"r")}o(Bb,"setScrollRegion");function Fb(e=1){return jn(e,"S")}o(Fb,"scrollUp");function Hb(e=1){return jn(e,"T")}o(Hb,"scrollDown");var eu=jn(0,"m");function Wb(e){return`\x1B]${e.join(";")}\x07`}o(Wb,"osc");function SN(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(SN,"osc8Id");function tu(e,t){if(!e)return Ga;let n={id:SN(e),...t??{}},r=Object.entries(n).map(([i,s])=>`${i}=${s}`).join(":");return Wb(["8",r,e])}o(tu,"link");var Ga=Wb(["8","",""]);function Ly(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=cs(t,c,s);!l||l.width===Kr.SpacerTail||(l.hyperlink!==i&&(i!==void 0&&(a+=Ga),l.hyperlink!==void 0&&(a+=tu(l.hyperlink)),i=l.hyperlink),l.style!==r&&(r!==""&&(a+=eu),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}i!==void 0&&(a+=Ga,i=void 0),r!==""&&(a+=eu,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
22
+ `)}]}o(Ly,"renderFullFrame");var wN=Object.freeze([]),xN=Object.freeze([]);function ls(e,t){if(e===t)return{patches:wN,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:eu}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}o(ls,"transitionStyle");function ru(e,t){let n=ls(e,t),r="";for(let i of n.patches)i.type==="stdout"&&(r+=i.content);return{str:r,current:n.current}}o(ru,"transitionStyleStr");function vi(e,t){if(e===t)return{patches:xN,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:Ga}),t!==void 0&&n.push({type:"stdout",content:tu(t)}),{patches:n,current:t}}o(vi,"transitionHyperlink");function jb(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(jb,"needsWidthCompensation");var us=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}},bi={type:"carriageReturn"},nu={type:"stdout",content:`
23
+ `};function iu(e,t,n){let r=t.width===Kr.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&&jb(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(iu,"writeCellWithStyleStr");function ds(e,t,n){e.txn(r=>{let i=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[bi,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:s!==0?[[bi,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:[[{type:"cursorMove",x:i,y:s}],{dx:i,dy:s}]})}o(ds,"moveCursorTo");function ou(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]=bi;for(let g=0;g<p;g++)m[1+g]=nu;return[m,{dx:-h.x,dy:p}]})}for(let p=0;p<t.screen.width;p++){let h=cs(t.screen,p,c);if(!h||h.width===Kr.SpacerTail||h.char===" "&&h.style===""&&h.hyperlink===void 0)continue;ds(e,p,c);let m=vi(a,h.hyperlink);for(let C of m.patches)e.txn(()=>[[C],{dx:0,dy:0}]);a=m.current;let g=ru(s,h.style);iu(e,h,g.str)&&(s=g.current)}let l=ls(s,"");for(let p of l.patches)e.txn(()=>[[p],{dx:0,dy:0}]);s=l.current;let u=vi(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?[[bi],{dx:-p.x,dy:0}]:[[bi,nu],{dx:-p.x,dy:1}])}if(s!==""||a!==void 0){let c=ls(s,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);let l=vi(a,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}])}}o(ou,"renderFrameSlice");function Py(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++)TN(e,t,a)}o(Py,"repaintFrameRows");function TN(e,t,n){let r="",i;ds(e,0,n),e.txn(()=>[[{type:"stdout",content:Ga+eu},{type:"eraseLine"}],{dx:0,dy:0}]);for(let s=0;s<t.screen.width;s++){let a=cs(t.screen,s,n);if(!a||a.width===Kr.SpacerTail||a.char===" "&&a.style===""&&a.hyperlink===void 0)continue;ds(e,s,n);let c=vi(i,a.hyperlink);for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);i=c.current;let l=ru(r,a.style);iu(e,a,l.str)&&(r=l.current)}for(let s of ls(r,"").patches)e.txn(()=>[[s],{dx:0,dy:0}]);for(let s of vi(i,void 0).patches)e.txn(()=>[[s],{dx:0,dy:0}])}o(TN,"repaintFrameRow");function Oy(e,t){let n="";for(let r=0;r<e.width;r++){let i=cs(e,r,t);n+=i?.char??" "}return n.trimEnd()}o(Oy,"readLine");function Ka(e,t,n=!1){let r=new us({x:0,y:0},e.viewport.width);ou(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(Ka,"fullResetSequence_CAUSES_FLICKER");function Lp(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(Lp,"computeViewportState");function Ub(e,t,n){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let r=Lp(e,t);if(r.prevHadScrollback&&r.nextFitsViewport&&r.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&r.cursorAtBottom&&!r.growing){let s=e.screen.height-e.viewport.height+1;for(let a of _p(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(Ub,"shouldFullReset");function Vb(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}o(Vb,"shouldSkipDiff");var Pp=class{static{o(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return Ly(n);let i=r.inlineBottomAnchored??!1,s=Gb(t,i),a=Gb(n,i);if(r.altScreen===!0&&t.screen.height===0&&a.screen.height>0)return Ka(a,"clear",i);let c=Ub(s,a,Oy);if(c.reset)return Ka(a,c.reason,i);if(a.scrollRepaint&&r.altScreen===!0)return CN(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:Mb(s.screen,l.top,l.bottom,l.delta)};return[u,...Kb(f,a,i)]}return Kb(s,a,i)}reset(){}};function $y(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}o($y,"emitPatches");function Ny(e,t,n){if(t!==""){let r=ls(t,"");$y(e,r.patches)}if(n!==void 0){let r=vi(n,void 0);$y(e,r.patches)}return{style:"",hyperlink:void 0}}o(Ny,"resetStyleAndHyperlink");function CN(e,t,n){let r=Lp(e,t),i=new us(e.cursor,t.viewport.width);r.shrinking&&zb(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&&Py(i,t,c.top,c.bottom);let l=Xb(i,e,t,{...r,skipRows:c});return l.needsFullReset?Ka(t,"offscreen"):(Ny(i,l.currentStyle,l.currentHyperlink),r.growing&&ou(i,t,e.screen.height,t.screen.height),Yb(i,t),i.diff)}o(CN,"renderScrollRepaint");function zb(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(zb,"applyShrink");function Xb(e,t,n,r){let i="",s,a=!1;for(let c of _p(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(!Vb(f,p,h)){if(u<r.viewportY){a=!0;break}if(ds(e,l,u),p){let m=vi(s,p.hyperlink);$y(e,m.patches),s=m.current;let g=ru(i,p.style);iu(e,p,g.str)&&(i=g.current)}else if(f){let m=Ny(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(Xb,"diffPass");function Gb(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(Gb,"clampRestingCursor");function Yb(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]=bi;for(let a=0;a<r;a++)s[1+a]=nu;return[s,{dx:-n.x,dy:r}]}let i=t.cursor.y-n.y;return i!==0||n.x!==t.cursor.x?[[bi,{type:"cursorMove",x:t.cursor.x,y:i}],{dx:t.cursor.x-n.x,dy:i}]:[[],{dx:0,dy:0}]}):ds(e,t.cursor.x,t.cursor.y)}o(Yb,"restoreCursor");function Kb(e,t,n=!1){let r=Lp(e,t),i=new us(e.cursor,t.viewport.width);r.shrinking&&zb(i,e,t);let s=Xb(i,e,t,r);return s.needsFullReset?Ka(t,"offscreen",n):(Ny(i,s.currentStyle,s.currentHyperlink),r.growing&&ou(i,t,e.screen.height,t.screen.height,n),Yb(i,t),i.diff)}o(Kb,"renderIncremental");var IN="\x1B[?25l",vN="\x1B[?25h",bN=`\x1B[2J${Lb}`,RN="\x1B[?2026h",kN="\x1B[?2026l";function EN(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return IN;case"cursorShow":return vN;case"cursorMove":return Pb(e.x,e.y);case"cursorTo":return Ab(e.col);case"eraseLine":return Ay;case"clear":return Ob(e.count);case"clearTerminal":return bN;case"hyperlink":return tu(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,r=Math.abs(e.delta),i=e.delta>0?Fb(r):Hb(r);return Nb+Bb(t,n)+i+$b+Db}}}o(EN,"patchToBytes");function Op(e,t,n=!1){let r="",i=!1;for(let s of t)s.type==="clearTerminal"&&(i=!0),r+=EN(s);if(r.length!==0){if(n&&i){e.write(RN+r+kN);return}e.write(r)}}o(Op,"applyDiff");function qb(e,t,n={}){if(t===void 0)return!1;let r=e.cellLogUpdate.render(e.prevFrame,t,n);return Op(e.stdout,r,n.synchronized??!1),e.prevFrame=t,!0}o(qb,"applyCellFrame");function su(e,t){return{screen:kb(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}o(su,"emptyFrame");import MN from"is-in-ci";var Ri="\x1B[?2026h",zr="\x1B[?2026l";function ki(e){return"isTTY"in e&&e.isTTY===!0&&!MN}o(ki,"shouldSynchronize");var _N=new WeakMap,Jb=_N;import{EventEmitter as qN}from"node:events";import JN from"node:process";import fs,{useState as Fy,useRef as za,useCallback as Pt,useMemo as Xa,useEffect as h0}from"react";import QN from"cli-cursor";var AN=o(e=>e>=48&&e<=63,"isCsiParameterByte"),LN=o(e=>e>=32&&e<=47,"isCsiIntermediateByte"),Zb=o(e=>e>=64&&e<=126,"isCsiFinalByte");function PN(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(!(AN(s)||LN(s))&&!(s===91&&i===r))return Zb(s)?{sequence:e.slice(t,i+1),nextIndex:i+1}:void 0}return"pending"}o(PN,"parseCsiSequence");function ON(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let i=e.codePointAt(r-1);if(!(i===void 0||!Zb(i)))return{sequence:e.slice(t,r),nextIndex:r}}o(ON,"parseSs3Sequence");function Qb(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return PN(e,t,n);if(r==="O")return ON(e,t,n)}o(Qb,"parseControlSequence");function $N(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($N,"parseEscapedCodePoint");function NN(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=Qb(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=Qb(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=$N(e,i);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}o(NN,"parseKeypresses");function $p(){let e="";return{push(t){let n=NN(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($p,"createInputParser");import{createContext as DN}from"react";var e0=DN({exit(){}});e0.displayName="InternalAppContext";var t0=e0;import{EventEmitter as BN}from"node:events";import{createContext as FN}from"react";var HN={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},n0=FN({stdin:HN,internal_eventEmitter:new BN,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});n0.displayName="InternalStdinContext";var r0=n0;import{createContext as WN}from"react";var jN={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},i0=WN({stdout:jN,write(){}});i0.displayName="InternalStdoutContext";var o0=i0;import{createContext as UN}from"react";var VN={isTTY:!1,write(){return!0},on(){},off(){}},s0=UN({stderr:VN,write(){}});s0.displayName="InternalStderrContext";var a0=s0;import{createContext as GN}from"react";var c0=GN({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});c0.displayName="InternalFocusContext";var l0=c0;import{createContext as KN}from"react";var u0=KN({setCursorPosition(){}});u0.displayName="InternalCursorContext";var d0=u0;import XN,{PureComponent as YN}from"react";import*as Np from"node:fs";import{cwd as m0}from"node:process";import Wt from"react";import f0 from"stack-utils";import zN from"code-excerpt";var Dy=o(e=>e?.replace(`file://${m0()}/`,""),"cleanupPath"),p0=new f0({cwd:m0(),internals:f0.nodeInternals()});function By({error:e}){let t=e.stack?e.stack.split(`
24
+ `).slice(1):void 0,n=t?p0.parseLine(t[0]):void 0,r=Dy(n?.file),i,s=0;if(r&&n?.line&&Np.existsSync(r)){let a=Np.readFileSync(r,"utf8");if(i=zN(a,n.line),i)for(let{line:c}of i)s=Math.max(s,String(c).length)}return Wt.createElement(ar,{flexDirection:"column",padding:1},Wt.createElement(ar,null,Wt.createElement(bn,{backgroundColor:"red",color:"white"}," ","ERROR"," "),Wt.createElement(bn,null," ",e.message)),n&&r&&Wt.createElement(ar,{marginTop:1},Wt.createElement(bn,{dimColor:!0},r,":",n.line,":",n.column)),n&&i&&Wt.createElement(ar,{marginTop:1,flexDirection:"column"},i.map(({line:a,value:c})=>Wt.createElement(ar,{key:a},Wt.createElement(ar,{width:s+1},Wt.createElement(bn,{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(bn,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&Wt.createElement(ar,{marginTop:1,flexDirection:"column"},e.stack.split(`
25
+ `).slice(1).map(a=>{let c=p0.parseLine(a);return c?Wt.createElement(ar,{key:a},Wt.createElement(bn,{dimColor:!0},"- "),Wt.createElement(bn,{dimColor:!0,bold:!0},c.function),Wt.createElement(bn,{dimColor:!0,color:"gray","aria-label":`at ${Dy(c.file)??""} line ${c.line} column ${c.column}`}," ","(",Dy(c.file)??"",":",c.line,":",c.column,")")):Wt.createElement(ar,{key:a},Wt.createElement(bn,{dimColor:!0},"- "),Wt.createElement(bn,{dimColor:!0,bold:!0},a,"\\t"," "))})))}o(By,"ErrorOverview");var au=class extends YN{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?XN.createElement(By,{error:this.state.error}):this.props.children}};var ZN=" ",e1="\x1B[Z",t1="\x1B";function g0({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:i,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,f]=Fy(!0),[p,h]=Fy(void 0),[,m]=Fy([]),g=za(0),C=za(0),w=za(new qN);w.current.setMaxListeners(1/0);let T=za(void 0),v=za($p()),A=za(void 0),D=Pt(()=>{A.current&&(clearImmediate(A.current),A.current=void 0)},[]),k=t.isTTY,E=Pt(()=>{T.current&&(t.removeListener("readable",T.current),T.current=void 0)},[t]),P=Pt(()=>{t.setRawMode(!1),E(),t.unref(),C.current=0,v.current.reset(),D()},[t,E,D]),B=Pt(me=>{k&&C.current>0&&P(),c(me)},[k,P,c]),$=Pt(me=>{if(me===""&&a){B();return}me===t1&&h(Re=>Re&&void 0)},[a,B]),G=Pt(me=>{$(me),w.current.emit("input",me)},[$]),re=Pt(()=>{D(),A.current=setImmediate(()=>{A.current=void 0;let me=v.current.flushPendingEscape();me&&G(me)})},[D,G]),X=Pt(()=>{D();let me;for(;(me=t.read())!==null;){let Re=v.current.push(me);for(let K of Re)G(K)}v.current.hasPendingEscape()&&re()},[t,G,D,re]),y=Pt(me=>{if(!k)throw t===JN.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
26
26
  Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.
27
- Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),me){C.current===0&&(t.ref(),t.setRawMode(!0),T.current=X,t.addListener("readable",X)),C.current++;return}C.current!==0&&--C.current===0&&$()},[k,t,X,$]),A=Pt((me,Re)=>{let K=me.findIndex(We=>We.id===Re);for(let We=K+1;We<me.length;We++){let St=me[We];if(St?.isActive)return St.id}},[]),ee=Pt((me,Re)=>{let K=me.findIndex(We=>We.id===Re);for(let We=K-1;We>=0;We--){let St=me[We];if(St?.isActive)return St.id}},[]),W=Pt(()=>{m(me=>(h(Re=>{let K=me.find(St=>St.isActive)?.id;return A(me,Re)??K}),me))},[A]),le=Pt(()=>{m(me=>(h(Re=>{let K=me.findLast(St=>St.isActive)?.id;return ee(me,Re)??K}),me))},[ee]);m0(()=>{let me=o(K=>{!u||g.current===0||(K===XO&&W(),K===YO&&le())},"handleTabNavigation");w.current.on("input",me);let Re=w.current;return()=>{Re.off("input",me)}},[u,W,le]);let de=Pt(()=>{d(!0)},[]),he=Pt(()=>{d(!1)},[]),_e=Pt(me=>{m(Re=>(Re.some(We=>We?.id===me)&&h(me),Re))},[]),fe=Pt((me,{autoFocus:Re})=>{m(K=>(g.current=K.length+1,[...K,{id:me,isActive:!0}])),Re&&h(K=>K??me)},[]),Te=Pt(me=>{h(Re=>Re===me?void 0:Re),m(Re=>{let K=Re.filter(We=>We.id!==me);return g.current=K.length,K})},[]),Pe=Pt(me=>{m(Re=>Re.map(K=>K.id!==me?K:{id:me,isActive:!0}))},[]),te=Pt(me=>{h(Re=>Re===me?void 0:Re),m(Re=>Re.map(K=>K.id!==me?K:{id:me,isActive:!1}))},[]);m0(()=>()=>{zO.show(n),k&&C.current>0&&$()},[n,k,$]);let oe=Xa(()=>({exit:B}),[B]),Ie=Xa(()=>({stdin:t,setRawMode:y,isRawModeSupported:k,internal_exitOnCtrlC:a,internal_eventEmitter:w.current}),[t,y,k,a]),nt=Xa(()=>({stdout:n,write:i}),[n,i]),vt=Xa(()=>({stderr:r,write:s}),[r,s]),Ke=Xa(()=>({setCursorPosition:l}),[l]),Ve=Xa(()=>({activeId:p,add:fe,remove:Te,activate:Pe,deactivate:te,enableFocus:de,disableFocus:he,focusNext:W,focusPrevious:le,focus:_e}),[p,fe,Te,Pe,te,de,he,W,le,_e]);return fs.createElement(e0.Provider,{value:oe},fs.createElement(n0.Provider,{value:Ie},fs.createElement(i0.Provider,{value:nt},fs.createElement(s0.Provider,{value:vt},fs.createElement(c0.Provider,{value:Ve},fs.createElement(u0.Provider,{value:Ke},fs.createElement(su,{onError:B},e)))))))}o(h0,"App");h0.displayName="InternalApp";var g0=h0;var JO={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function y0(e){let t=0;for(let n of e)t|=JO[n];return t}o(y0,"resolveFlags");var Ei={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var Hy=o((e,t)=>(t<0?Rn.cursorUp(-t):t>0?Rn.cursorDown(t):"")+(e<0?Rn.cursorBackward(-e):e>0?Rn.cursorForward(e):""),"cursorMoveSeq"),Wy=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"),Dp=o(()=>{},"noop"),a1=27,c1=91,l1=63,u1=117,d1=48,f1=57,p1=o(e=>e>=d1&&e<=f1,"isDigitByte"),w0=o((e,t)=>{if(e[t]!==a1||e[t+1]!==c1||e[t+2]!==l1)return;let n=t+3,r=n;for(;n<e.length&&p1(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===u1)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),m1=o(e=>{for(let t=0;t<e.length;t++)if(w0(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),h1=o(e=>{let t=[],n=0;for(;n<e.length;){let r=w0(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"),g1=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;altScreenActive=!1;shellMode;mouseTrackingActive=!1;shellTransitionPhase=void 0;cursorHidden=!1;constructor(t){ZO(this),this.options=t,this.rawStdoutWrite=t.stdout.write.bind(t.stdout),this.rawStderrWrite=t.stderr.write.bind(t.stderr),this.rootNode=Cp("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??ps.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=QO(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 Pp({isTTY:!!t.stdout.isTTY}),this.prevFrame=ou(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?r1:n1;this.container=Ii.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=e1(this.unmount,{alwaysLast:!1}),xp()&&Ii.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),Mi||(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:s1()?.columns??80,"getTerminalWidth");resized=o(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){this.returnCursorToRest();let n=this.altScreenActive?this.lastOutputHeight>0?Rn.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();n.length>0&&this.writeStdout(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=ou(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(){}installExternalStreamWriteGuard(){if(this.options.debug||Mi)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=ou(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);this.withInternalStreamWrite(()=>$p(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,i1.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}=_y(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t}),!Mi&&!this.options.debug&&!this.isScreenReaderEnabled&&!this.cursorHidden&&(this.writeStdout(Rn.cursorHide),this.cursorHidden=!0);let c=s&&s!==`
27
+ Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),me){C.current===0&&(t.ref(),t.setRawMode(!0),T.current=X,t.addListener("readable",X)),C.current++;return}C.current!==0&&--C.current===0&&P()},[k,t,X,P]),_=Pt((me,Re)=>{let K=me.findIndex(We=>We.id===Re);for(let We=K+1;We<me.length;We++){let St=me[We];if(St?.isActive)return St.id}},[]),ee=Pt((me,Re)=>{let K=me.findIndex(We=>We.id===Re);for(let We=K-1;We>=0;We--){let St=me[We];if(St?.isActive)return St.id}},[]),W=Pt(()=>{m(me=>(h(Re=>{let K=me.find(St=>St.isActive)?.id;return _(me,Re)??K}),me))},[_]),le=Pt(()=>{m(me=>(h(Re=>{let K=me.findLast(St=>St.isActive)?.id;return ee(me,Re)??K}),me))},[ee]);h0(()=>{let me=o(K=>{!u||g.current===0||(K===ZN&&W(),K===e1&&le())},"handleTabNavigation");w.current.on("input",me);let Re=w.current;return()=>{Re.off("input",me)}},[u,W,le]);let de=Pt(()=>{f(!0)},[]),he=Pt(()=>{f(!1)},[]),_e=Pt(me=>{m(Re=>(Re.some(We=>We?.id===me)&&h(me),Re))},[]),fe=Pt((me,{autoFocus:Re})=>{m(K=>(g.current=K.length+1,[...K,{id:me,isActive:!0}])),Re&&h(K=>K??me)},[]),Te=Pt(me=>{h(Re=>Re===me?void 0:Re),m(Re=>{let K=Re.filter(We=>We.id!==me);return g.current=K.length,K})},[]),Pe=Pt(me=>{m(Re=>Re.map(K=>K.id!==me?K:{id:me,isActive:!0}))},[]),te=Pt(me=>{h(Re=>Re===me?void 0:Re),m(Re=>Re.map(K=>K.id!==me?K:{id:me,isActive:!1}))},[]);h0(()=>()=>{QN.show(n),k&&C.current>0&&P()},[n,k,P]);let oe=Xa(()=>({exit:B}),[B]),Ie=Xa(()=>({stdin:t,setRawMode:y,isRawModeSupported:k,internal_exitOnCtrlC:a,internal_eventEmitter:w.current}),[t,y,k,a]),nt=Xa(()=>({stdout:n,write:i}),[n,i]),vt=Xa(()=>({stderr:r,write:s}),[r,s]),Ke=Xa(()=>({setCursorPosition:l}),[l]),Ve=Xa(()=>({activeId:p,add:fe,remove:Te,activate:Pe,deactivate:te,enableFocus:de,disableFocus:he,focusNext:W,focusPrevious:le,focus:_e}),[p,fe,Te,Pe,te,de,he,W,le,_e]);return fs.createElement(t0.Provider,{value:oe},fs.createElement(r0.Provider,{value:Ie},fs.createElement(o0.Provider,{value:nt},fs.createElement(a0.Provider,{value:vt},fs.createElement(l0.Provider,{value:Ve},fs.createElement(d0.Provider,{value:Ke},fs.createElement(au,{onError:B},e)))))))}o(g0,"App");g0.displayName="InternalApp";var y0=g0;var n1={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function S0(e){let t=0;for(let n of e)t|=n1[n];return t}o(S0,"resolveFlags");var Ei={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var Hy=o((e,t)=>(t<0?Rn.cursorUp(-t):t>0?Rn.cursorDown(t):"")+(e<0?Rn.cursorBackward(-e):e>0?Rn.cursorForward(e):""),"cursorMoveSeq"),Wy=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"),Dp=o(()=>{},"noop"),f1=27,p1=91,m1=63,h1=117,g1=48,y1=57,S1=o(e=>e>=g1&&e<=y1,"isDigitByte"),x0=o((e,t)=>{if(e[t]!==f1||e[t+1]!==p1||e[t+2]!==m1)return;let n=t+3,r=n;for(;n<e.length&&S1(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===h1)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),w1=o(e=>{for(let t=0;t<e.length;t++)if(x0(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),x1=o(e=>{let t=[],n=0;for(;n<e.length;){let r=x0(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"),T1=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;altScreenActive=!1;shellMode;mouseTrackingActive=!1;shellTransitionPhase=void 0;cursorHidden=!1;constructor(t){i1(this),this.options=t,this.rawStdoutWrite=t.stdout.write.bind(t.stdout),this.rawStderrWrite=t.stderr.write.bind(t.stderr),this.rootNode=Cp("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??ps.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=r1(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 Pp({isTTY:!!t.stdout.isTTY}),this.prevFrame=su(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?c1:a1;this.container=Ii.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=o1(this.unmount,{alwaysLast:!1}),xp()&&Ii.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),Mi||(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:d1()?.columns??80,"getTerminalWidth");resized=o(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){this.returnCursorToRest();let n=this.altScreenActive?this.lastOutputHeight>0?Rn.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();n.length>0&&this.writeStdout(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=su(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(){}installExternalStreamWriteGuard(){if(this.options.debug||Mi)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=su(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);this.withInternalStreamWrite(()=>Op(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,l1.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}=_y(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t}),!Mi&&!this.options.debug&&!this.isScreenReaderEnabled&&!this.cursorHidden&&(this.writeStdout(Rn.cursorHide),this.cursorHidden=!0);let c=s&&s!==`
28
28
  `;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.writeStdout(this.fullStaticOutput+r);return}if(Mi){c&&this.writeStdout(s),this.lastOutput=r,this.lastOutputToRender=r+`
29
- `,this.lastOutputHeight=i;return}if(this.isScreenReaderEnabled){let w=ki(this.options.stdout);if(w&&this.writeStdout(Ri),c){let _=this.lastOutputHeight>0?Rn.eraseLines(this.lastOutputHeight):"";this.writeStdout(_+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){w&&this.writeStdout(zr);return}let T=this.getTerminalWidth(),v=o1(r,T,{trim:!1,hard:!0});if(c)this.writeStdout(v);else{let _=this.lastOutputHeight>0?Rn.eraseLines(this.lastOutputHeight):"";this.writeStdout(_+v)}this.lastOutput=r,this.lastOutputToRender=v,this.lastOutputHeight=v===""?0:v.split(`
30
- `).length,w&&this.writeStdout(zr);return}c&&(this.fullStaticOutput+=s);let u=!this.altScreenActive&&!!(a&&a.inputCursor)?[]:null,d=o(w=>{w&&(u?u.push(w):this.writeStdout(w))},"emit"),p=u?{write:d}:null;d(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(ps.env.KODAX_FULLSCREEN_CELLDIFF!=="0"&&this.altScreenActive&&this.fullStaticOutput===""){let v=ki(this.options.stdout);v&&this.writeStdout(Ri),this.applyCellFrame(a),v&&this.writeStdout(zr),this.lastOutput=r,this.lastOutputToRender=g,this.lastOutputHeight=i;return}let w=ki(this.options.stdout);w&&this.writeStdout(Ri);let T=this.fullStaticOutput+g;if(this.altScreenActive){let v=this.lastOutputHeight>0?Rn.eraseLines(this.lastOutputHeight):"";this.writeStdout(v+T)}else this.writeStdout(Rn.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?T:g,this.lastOutputHeight=i,this.invalidateCellFrame(),w&&this.writeStdout(zr);return}let C=!u&&ki(this.options.stdout);try{if(c?(C&&d(Ri),d(this.eraseInlineLiveBlock()+s),this.invalidateCellFrame(),this.applyCellFrame(a,p),C&&d(zr)):!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?(C&&d(Ri),d(this.eraseInlineLiveBlock()),this.invalidateCellFrame(),this.applyCellFrame(a,p),C&&d(zr)):this.applyCellFrame(a,p),a?.inputCursor){let w=Wy(a,!this.altScreenActive),T=w(a.cursor),v=w(a.inputCursor),_=Hy(v.x-T.x,v.y-T.y);d(_),this.displayCursor=v}}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=ki(this.options.stdout),s={altScreen:this.altScreenActive,decstbmSafe:i,synchronized:n?!1:i,inlineBottomAnchored:!this.altScreenActive},a=this.withInternalStreamWrite(()=>Yb(r,t,s));return this.prevFrame=r.prevFrame,a},"applyCellFrame");invalidateCellFrame=o(()=>{this.cellLogUpdate.reset(),this.prevFrame=ou(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");eraseInlineLiveBlock=o(()=>this.lastOutputHeight>0?Rn.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:d}=_y(this.rootNode,this.isScreenReaderEnabled,c);if(this.applyCellFrame(d,s),d?.inputCursor){let p=Wy(d,!this.altScreenActive),h=p(d.cursor),m=p(d.inputCursor),g=Hy(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=ki(this.options.stdout);this.writeStdout(r?Ri+n+zr:n)}render(t){let n=S0.createElement(Wa.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},S0.createElement(g0,{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?Ii.updateContainer(n,this.container,null,Dp):(Ii.updateContainerSync(n,this.container,null,Dp),Ii.flushSyncWork())}computeReturnToRestSeq(){if(this.displayCursor&&this.prevFrame){let t=Wy(this.prevFrame,!this.altScreenActive)(this.prevFrame.cursor),n=Hy(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(Mi){this.writeStdout(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStdout(t),this.invalidateCellFrame();return}let n=ki(this.options.stdout);n&&this.writeStdout(Ri),this.returnCursorToRest();let r=this.lastOutputHeight>0?Rn.eraseLines(this.lastOutputHeight):"";this.writeStdout(r+t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(zr)}writeToStderr(t){if(this.isUnmounted)return;if(this.options.debug){this.writeStderr(t),this.writeStdout(this.fullStaticOutput+this.lastOutput);return}if(Mi){this.writeStderr(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStderr(t),this.invalidateCellFrame();return}let n=ki(this.options.stdout);n&&this.writeStdout(Ri),this.returnCursorToRest();let r=this.lastOutputHeight>0?Rn.eraseLines(this.lastOutputHeight):"";r.length>0&&this.writeStdout(r),this.writeStderr(t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(zr)}unmount(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(ps.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{}Mi&&this.writeStdout(this.lastOutput+`
32
- `)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?Ii.updateContainer(null,this.container,null,Dp):(Ii.updateContainerSync(null,this.container,null,Dp),Ii.flushSyncWork()),qb.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()},ps.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!Mi&&!this.options.debug){this.returnCursorToRest();let t=this.altScreenActive?this.lastOutputHeight>0?Rn.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=t1((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=ps.env.TERM??"",s=ps.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in ps.env||i==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!Mi&&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=h1(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);m1(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[>${y0(t)}u`),this.kittyProtocolEnabled=!0}},x0=g1;var au=class{static{o(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new x0(t),this.isConcurrent=this.engineInstance.isConcurrent}render=o(t=>{this.engineInstance.render(t)},"render");unmount=o(t=>{this.engineInstance.unmount(t)},"unmount");waitUntilExit=o(()=>this.engineInstance.waitUntilExit(),"waitUntilExit");clear=o(()=>{this.engineInstance.clear()},"clear");setAltScreenActive=o((t,n)=>{this.engineInstance.setAltScreenActive?.(t,n)},"setAltScreenActive");setShellMode=o((t,n)=>{this.engineInstance.setShellMode?.(t,n)},"setShellMode");beginShellTransition=o(t=>{this.engineInstance.beginShellTransition?.(t)},"beginShellTransition");clearTextSelection=o(()=>{this.engineInstance.clearTextSelection?.()},"clearTextSelection");commitInlineScrollback=o(t=>{this.engineInstance.commitInlineScrollback?.(t)},"commitInlineScrollback")};var lo=null;function C0(){if(lo===-1)return null;if(lo!==null)return lo;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return lo=-1,null;let t=e==="1"||e==="true"?T1(x1(),`kodax-render-trace-${process.pid}.log`):e;try{return lo=S1(t,"a"),T0(lo,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
33
- `),lo}catch{return lo=-1,null}}o(C0,"resolveTraceFd");function C1(e){let t=C0();if(t!==null)try{T0(t,e)}catch{}}o(C1,"traceLine");var Bp=new WeakMap,I1={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")},b1={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function R1(e={}){return e instanceof y1?{stdout:e}:e}o(R1,"getOptions");function k1(e,t,n){let r=Bp.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(),Bp.set(e,r)),r}o(k1,"getInstance");function ms(e){return Bp.get(e)}o(ms,"getRendererInstance");function Uy(e,t){let n={stdout:I1,stdin:b1,stderr:v1,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...R1(t)};if(C0()!==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,d=0,p=n.onRender;n.onRender=h=>{let m=w1.now(),g=u===0?0:m-u,C=s,w=C.columns??0,T=C.rows??0;return C1(`frame=${d} renderTime=${h.renderTime.toFixed(2)}ms interval=${g.toFixed(2)}ms writes=${c} bytes=${l} viewport=${w}x${T}
34
- `),c=0,l=0,u=m,d+=1,p?.(h)}}let i=k1(n.stdout,()=>new au(n),n.concurrent??!1);return i.render(e),{rerender:i.render,unmount(){i.unmount()},waitUntilExit:i.waitUntilExit,cleanup:o(()=>{Bp.delete(n.stdout)},"cleanup"),clear:i.clear}}o(Uy,"render");var I0=ar,v0=bn,b0=yy;import{Buffer as M1}from"node:buffer";var _1=/^(?:\x1b)([a-zA-Z0-9])$/,A1=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,k0={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"},E0=[...Object.values(k0),"backspace"],L1=o(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),P1=o(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),M0=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,$1=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,N1={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},O1={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"},R0={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"},_0=o(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),Vy=o(e=>_0(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function A0(e){return e===3?"release":e===2?"repeat":"press"}o(A0,"resolveEventType");function L0(e){return{ctrl:!!(e&Ei.ctrl),shift:!!(e&Ei.shift),meta:!!(e&Ei.meta),option:!!(e&Ei.alt),super:!!(e&Ei.super),hyper:!!(e&Ei.hyper),capsLock:!!(e&Ei.capsLock),numLock:!!(e&Ei.numLock)}}o(L0,"parseKittyModifiers");function D1(e){let t=M0.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(!_0(n))return null;let a;s&&(a=s.split(":").map(u=>Vy(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):R0[n]?(c=R0[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=Vy(n).toLowerCase(),l=!0),l&&!a&&(a=Vy(n)),{name:c,...L0(r),eventType:A0(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}o(D1,"parseKittyKeypress");function B1(e){let t=$1.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==="~"?O1[n]:N1[s];return a?{name:a,...L0(r),eventType:A0(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}o(B1,"parseKittySpecialKey");var Gy="\x1B[200~",F1="\x1B[201~";function H1(e){if(!e.startsWith(Gy))return null;let t=e.indexOf(F1,Gy.length);return t===-1?null:e.slice(Gy.length,t)}o(H1,"extractBracketedPaste");function Ky(e=""){let t=e,n;if(M1.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=H1(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=D1(t);if(r)return r;let i=B1(t);if(i)return i;if(M0.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=_1.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=A1.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=k0[c]??"",s.shift=L1(c)||s.shift,s.ctrl=P1(c)||s.ctrl}return s}o(Ky,"parseKeypress");var U1=50;function Hp(e){return{columns:e?.columns??80,rows:e?.rows??24}}o(Hp,"resolveTerminalSize");var uo=W1(null),zy={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")};var O0={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function V1(e){for(let t of e)if(t.rawMode)return!0;return!1}o(V1,"hasRawModeSubscribers");function G1({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"),d=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&&V1(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),d(),()=>{r.delete(m),d()}},dispose(){r.clear(),u()}}}o(G1,"createTerminalInputController");var K1=o(({children:e,runtime:t})=>{let[n,r]=j1(()=>t.terminalSize);Ya(()=>{if(r(Hp(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=o(()=>{r(Hp(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let i=N0(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=P0(()=>G1({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);Ya(()=>()=>{s.dispose()},[s]);let a=P0(()=>({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 $0(uo.Provider,{value:a,children:e})},"TuiRuntimeProvider");function z1(e){let t=e?.stdout??zy,n=e?.stdin??O0,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:Hp(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(z1,"createRuntimeValue");function qa(e,t){let n=z1(t),r=Uy($0(K1,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}o(qa,"render");var M=I0,b=v0,Ja=b0;function X1(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&&E0.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(X1,"createCompatKeypress");function Qa(e,t={}){let{isActive:n=!0}=t,r=Fp(e),i=Fp(null),s=Fp(null);Ya(()=>{r.current=e},[e]),Ya(()=>{if(!n){i.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return i.current=Np(),()=>{i.current?.reset(),i.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=N0(c=>{let{input:l,key:u}=X1(Ky(c));r.current(l,u)},[]);lu(c=>{if(!n)return;s.current&&(clearTimeout(s.current),s.current=null);let l=i.current,u=typeof c=="string"?c:c.toString("utf8"),d=l?.push(u)??[u];for(let p of d)a(p);u.length>0&&(s.current=setTimeout(()=>{let p=i.current?.flushPendingEscape();p&&a(p)},U1))},{isActive:n,rawMode:!0})}o(Qa,"useInput");function Xr(){return{stdout:hs(uo)?.stdout??zy}}o(Xr,"useStdout");function cu(){let e=hs(uo),t=e?.stdin??O0,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}o(cu,"useStdin");function Yr(){return{exit:hs(uo)?.exit??(()=>{})}}o(Yr,"useApp");function Za(){return hs(uo)?.stdout??zy}o(Za,"useTerminalOutput");function ec(){let e=Za();return hs(uo)?.terminalSize??Hp(e)}o(ec,"useTerminalSize");function tc(){let e=Za();return hs(uo)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}o(tc,"useTerminalWrite");function lu(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,i=hs(uo),{stdin:s,setRawMode:a,isRawModeSupported:c}=cu(),l=Fp(e);Ya(()=>{l.current=e},[e]),Ya(()=>{if(!n||!s)return;if(i)return i.subscribeInput(h=>{l.current(h)},{rawMode:r});let u=s,d=u.isRaw;r&&c&&d===!1&&a(!0);let p=o(h=>{l.current(h)},"handleData");return u.on?.("data",p),()=>{if(u.off?.("data",p),r&&c&&d===!1)try{a(!1)}catch{}}},[i,s,n,r,c,a])}o(lu,"useTerminalInput");import{jsx as eD}from"react/jsx-runtime";import{useInsertionEffect as tD,useMemo as nD}from"react";var Y1="\x1B[?1049h",q1="\x1B[?1049l";var J1="\x1B[2J",Q1="\x1B[?1000h\x1B[?1002h\x1B[?1006h",Z1="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function Wp(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return Y1+(n?J1:"")+"\x1B[H"+(t?Q1:"")}o(Wp,"buildAlternateScreenEnterSequence");function jp(e={}){return(e.mouseTracking!==!1?Z1:"")+q1}o(jp,"buildAlternateScreenExitSequence");var Xy=o(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let i=Za(),{rows:s}=ec(),a=tc(),c=nD(()=>n&&i.isTTY===!0,[n,i]);return tD(()=>{if(!c)return;let l=ms(i);if(l?.setShellMode?.("virtual",t),l?.beginShellTransition?.("enter-alt-screen"),!!a(Wp({mouseTracking:t,clearOnEnter:r})))return l?.setAltScreenActive?.(!0,t),()=>{l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),l?.setAltScreenActive?.(!1),a(jp({mouseTracking:t}))}},[r,c,t,i,a]),eD(M,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as fo,jsxs as W0}from"react/jsx-runtime";import{jsx as iD}from"react/jsx-runtime";import oD,{useEffect as Up,useImperativeHandle as sD,useMemo as aD,useRef as Vp,useCallback as du,useState as cD}from"react";function rD(e,t,n){return Math.max(t,Math.min(e,n))}o(rD,"clamp");function uu(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=rD(Math.floor(e.globalScrollTop),0,s),c=Math.floor(a/n),l=c*n,u=Math.max(0,l-t),d=Math.min(i,l+r+t),p=Math.max(0,d-u),h=a-u;return{blockTop:u,blockHeight:p,inBlockOffset:h,bin:c}}o(uu,"computeOverscanWindow");function D0(e,t,n){let r=uu({...n,globalScrollTop:e}),i=uu({...n,globalScrollTop:t});return r.bin===i.bin}o(D0,"staysWithinOverscanBlock");function B0(e){let t=e??void 0;for(;t?.parentNode;)t=t.parentNode;return t&&typeof t.onRender=="function"?(t.onRender(),!0):!1}o(B0,"scheduleRenderFromNode");function F0(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:Gp(t,t.scrollTop)}}o(F0,"normalizeScrollSnapshot");function H0(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(H0,"areSnapshotsEqual");function lD(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(lD,"areWindowsEqual");function Gp(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(Gp,"clampScrollTop");function Yy(e){let t=Math.max(0,e.viewportHeight),n=Gp(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=uu({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(Yy,"resolveScrollWindow");function uD(e){let t=Gp(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}o(uD,"resolveNativeScrollTop");var qy=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:d,onStickyChange:p,onWindowChange:h,renderWindow:m,overscanRows:g})=>{let C=Vp(null),w=Vp(new Set),T=Vp(F0({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l,overscanRows:g})),[v,_]=cD(()=>Yy(T.current)),P=Vp(null),k=du(()=>{for(let le of w.current)le()},[]),E=du((le,de=!0)=>{let he=T.current,_e=F0(le),fe=Yy(_e);return T.current=_e,_(Te=>lD(Te,fe)?Te:fe),de&&!H0(he,_e)&&k(),{previous:he,snapshot:_e,window:fe,changed:!H0(he,_e)}},[k]),$=du(le=>{let de=T.current,he=Math.max(0,Math.floor(de.overscanRows??0)),_e=C.current;if(he<=0||!_e||de.viewportHeight<=0)return!1;let fe=Math.max(0,de.scrollHeight-de.viewportHeight),Te=P.current??Gp(de,de.scrollTop),Pe=Math.max(0,Math.min(Math.floor(Te+le),fe)),te=Pe-Te;if(Pe===Te)return!0;let oe=Math.max(0,de.scrollHeight-de.viewportHeight-Te),Ie=Math.max(0,de.scrollHeight-de.viewportHeight-Pe),nt={viewportHeight:de.viewportHeight,contentHeight:de.scrollHeight,overscan:he};if(!D0(oe,Ie,nt))return!1;let vt=uu({...nt,globalScrollTop:Ie});return _e.scrollTop=Ie,_e.attributes&&(_e.attributes.inWindowScrollTop=vt.inBlockOffset,_e.attributes.pendingScrollDelta=te),B0(_e)?(P.current=Pe,de.sticky&&(T.current={...T.current,sticky:!1},p?.(!1)),k(),!0):!1},[k,p]),B=du(le=>{let de=C.current;de&&T.current.overscanRows&&(de.scrollTop=le.viewportTop)},[]);Up(()=>{let le=T.current,de={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:le.clampMin,clampMax:le.clampMax,sticky:l,overscanRows:g},he=E(de);he.previous.sticky!==l&&p?.(l),he.window.scrollTop!==s&&d?.(he.window.scrollTop)},[E,p,d,g,a,s,l,c]);let O=du(()=>{let le=C.current;if(!le)return;P.current=null;let de=typeof le.scrollHeight=="number"?Math.max(0,Math.floor(le.scrollHeight)):void 0,he=typeof le.scrollViewportHeight=="number"?Math.max(0,Math.floor(le.scrollViewportHeight)):void 0,_e=typeof le.scrollViewportTop=="number"?Math.max(0,Math.floor(le.scrollViewportTop)):void 0;if(de===void 0||he===void 0||_e===void 0)return;let fe=Math.max(0,de-he-_e),Te=E({...T.current,scrollTop:fe,scrollHeight:de,viewportHeight:he});Te.changed&&Te.window.scrollTop!==Te.previous.scrollTop&&d?.(Te.window.scrollTop)},[E,d]);Up(()=>{O()},[O]);let G=aD(()=>({scrollTo(le){P.current=null;let de=E({...T.current,scrollTop:le,pendingDelta:0,sticky:!1});de.previous.sticky!==!1&&p?.(!1),B(de.window),d?.(de.window.scrollTop)},scrollBy(le){if($(le))return;let de=P.current??T.current.scrollTop;P.current=null;let he=E({...T.current,scrollTop:de+le,pendingDelta:T.current.pendingDelta+Math.floor(le),sticky:!1});he.previous.sticky!==!1&&p?.(!1),B(he.window),d?.(he.window.scrollTop)},scrollToElement(le,de=0){P.current=null;let he=E({...T.current,scrollTop:le-de,pendingDelta:0,sticky:!1});he.previous.sticky!==!1&&p?.(!1),B(he.window),d?.(he.window.scrollTop)},scrollToBottom(){P.current=null;let le=E({...T.current,scrollTop:0,pendingDelta:0,sticky:!0});B(le.window),d?.(le.window.scrollTop),le.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return P.current??T.current.scrollTop},getPendingDelta(){return T.current.pendingDelta},getScrollHeight(){return C.current?.scrollHeight??T.current.scrollHeight},getViewportHeight(){return C.current?.scrollViewportHeight??v.viewportHeight},getViewportTop(){return C.current?.scrollViewportTop??v.viewportTop},isSticky(){return T.current.sticky},subscribe(le){return w.current.add(le),()=>{w.current.delete(le)}},setClampBounds(le,de){P.current=null;let he=E({...T.current,clampMin:le,clampMax:de});B(he.window),he.window.scrollTop!==he.previous.scrollTop&&d?.(he.window.scrollTop)}}),[E,d,p,$,B]);sD(u,()=>G,[G]),Up(()=>{h?.(v)},[h,v]),Up(()=>{T.current.pendingDelta!==0&&(T.current={...T.current,pendingDelta:0})},[v]);let re=P.current!==null,X=re?{...T.current,scrollTop:P.current}:T.current,y=re?Yy(X):v,A=m?m(y):e,ee=Math.max(0,c+i),W=uD(X);return oD.createElement("ink-box",{ref:C,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:ee,paddingTop:i,overflowX:"visible",overflowY:"scroll"},scrollTop:W,scrollHeight:T.current.scrollHeight,scrollViewportHeight:T.current.viewportHeight,scrollViewportTop:y.viewportTop,pendingScrollDelta:T.current.pendingDelta,virtualScrollWindowed:!!m,...T.current.overscanRows?{inWindowScrollTop:y.inWindowScrollTop}:{},...T.current.clampMin!==void 0?{scrollClampMin:T.current.clampMin}:{},...T.current.clampMax!==void 0?{scrollClampMax:T.current.clampMax}:{},...l?{stickyScroll:!0}:{}},iD(M,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:A}))},"ScrollBox");var dD=80;function fu(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}o(fu,"resolveFullscreenChromeSlotText");function Kp(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:dD)-2);return Math.max(1,xn(e.split(`
36
- `),n,0,0).visualLines.length)}o(Kp,"measureFullscreenChromeSlotRows");var Jy=o(({top:e,topRows:t=0,scrollable:n,renderScrollableWindow:r,bottom:i,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:d=0,viewportHeight:p=0,stickyScroll:h=!0,scrollRef:m,onScrollTopChange:g,onStickyChange:C,onWindowChange:w,overscanRows:T})=>{let v=o((G,re)=>re?fo(M,{paddingX:1,children:fo(b,{dimColor:G?.tone!=="accent",children:re})}):null,"renderChromeSlot"),_=fu(a),P=fu(c),k=Kp(_,l),E=v(a,_),$=s?null:v(c,P),B=Math.max(0,e?t:0),O=Math.max(0,p-k-B);return W0(M,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?fo(M,{flexDirection:"column",flexShrink:0,children:e}):null,W0(M,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[fo(qy,{width:l,flexGrow:1,flexShrink:1,paddingTop:k,scrollTop:u,scrollHeight:d,viewportHeight:O,stickyScroll:h,scrollRef:m,onScrollTopChange:g,onStickyChange:C,onWindowChange:w,renderWindow:r,overscanRows:T,children:n}),E?fo(M,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:E}):null,$?fo(M,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:$}):null,s?fo(M,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),fo(M,{flexDirection:"column",flexShrink:0,children:i})]})},"FullscreenLayout");import pD from"string-width";function mD(){return ec().columns}o(mD,"useTerminalWidth");var Xp=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:d})=>{let p=zp(()=>ae(u),[u]),h=mD(),m=d??h,g=pD(r)+1,C=zp(()=>{let k=Math.max(20,m-g);return xn(e,k,t,n)},[e,m,t,n,g]),w=zp(()=>{if(!C)return null;let[k,E]=yp(C,[t,n]);return{row:k,col:E}},[C,t,n]),T=s&&a,v=c&&e.some(k=>k.length>0),_=C,P=w;return cr(M,{flexDirection:"column",borderStyle:"round",borderColor:p.colors.dim,borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,width:d??"100%",children:[v?kn(M,{children:kn(b,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,_.visualLines.length===0||_.visualLines.length===1&&_.visualLines[0]===""?cr(M,{children:[cr(b,{color:p.colors.primary,children:[r," "]}),T?cr(fD,{children:[kn(b,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:" "}),kn(b,{dimColor:!0,children:i})]}):kn(b,{dimColor:!0,children:i})]}):_.visualLines.map((k,E)=>{let $=E===P.row,B=E===0?r:" ".repeat(g-1);if($&&T){let{before:O,current:G,after:re}=Zv(k,P.col),X=G||" ";return cr(M,{children:[cr(b,{color:p.colors.primary,children:[B," "]}),kn(b,{color:p.colors.text,children:O}),kn(b,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:X}),kn(b,{color:p.colors.text,children:re})]},E)}return cr(M,{children:[cr(b,{color:p.colors.dim,children:[B," "]}),kn(b,{color:p.colors.text,children:k})]},E)})]})},"TextInput"),j0=o(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:i=!0,theme:s="dark"})=>{let a=zp(()=>ae(s),[s]);if(!e)return cr(M,{children:[cr(b,{color:a.colors.primary,children:[n," "]}),r&&kn(b,{dimColor:!0,children:r}),i&&kn(b,{backgroundColor:a.colors.primary,color:"#000000",children:" "})]});let c=wn(e),l=c.slice(0,t).join(""),u=c[t]??" ",d=c.slice(t+1).join("");return cr(M,{children:[cr(b,{color:a.colors.primary,children:[n," "]}),kn(b,{color:a.colors.text,children:l}),kn(b,{backgroundColor:a.colors.primary,color:"#000000",children:u}),kn(b,{color:a.colors.text,children:d})]})},"SingleLineTextInput");var Qy={"[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"}},hD=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,gD=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function yD(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}o(yD,"parseMouseButton");function SD(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}o(SD,"parseModifier");function pu(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(gD);if(r){let[,i,s,a,c]=r,l=Number(i),u=Number(s),d=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:d,column:u},n):l===65?(n.name="wheeldown",n.mouse={action:"wheel",button:"wheeldown",row:d,column:u},n):(n.name="mouse",n.mouse={action:c==="m"?"release":(l&32)!==0?"drag":"press",button:yD(l),row:d,column:u},n)}if(e===`\r
29
+ `,this.lastOutputHeight=i;return}if(this.isScreenReaderEnabled){let w=ki(this.options.stdout);if(w&&this.writeStdout(Ri),c){let A=this.lastOutputHeight>0?Rn.eraseLines(this.lastOutputHeight):"";this.writeStdout(A+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){w&&this.writeStdout(zr);return}let T=this.getTerminalWidth(),v=u1(r,T,{trim:!1,hard:!0});if(c)this.writeStdout(v);else{let A=this.lastOutputHeight>0?Rn.eraseLines(this.lastOutputHeight):"";this.writeStdout(A+v)}this.lastOutput=r,this.lastOutputToRender=v,this.lastOutputHeight=v===""?0:v.split(`
30
+ `).length,w&&this.writeStdout(zr);return}c&&(this.fullStaticOutput+=s);let u=!this.altScreenActive&&!!(a&&a.inputCursor)?[]:null,f=o(w=>{w&&(u?u.push(w):this.writeStdout(w))},"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(ps.env.KODAX_FULLSCREEN_CELLDIFF!=="0"&&this.altScreenActive&&this.fullStaticOutput===""){let v=ki(this.options.stdout);v&&this.writeStdout(Ri),this.applyCellFrame(a),v&&this.writeStdout(zr),this.lastOutput=r,this.lastOutputToRender=g,this.lastOutputHeight=i;return}let w=ki(this.options.stdout);w&&this.writeStdout(Ri);let T=this.fullStaticOutput+g;if(this.altScreenActive){let v=this.lastOutputHeight>0?Rn.eraseLines(this.lastOutputHeight):"";this.writeStdout(v+T)}else this.writeStdout(Rn.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?T:g,this.lastOutputHeight=i,this.invalidateCellFrame(),w&&this.writeStdout(zr);return}let C=!u&&ki(this.options.stdout);try{if(c?(C&&f(Ri),f(this.eraseInlineLiveBlock()+s),this.invalidateCellFrame(),this.applyCellFrame(a,p),C&&f(zr)):!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?(C&&f(Ri),f(this.eraseInlineLiveBlock()),this.invalidateCellFrame(),this.applyCellFrame(a,p),C&&f(zr)):this.applyCellFrame(a,p),a?.inputCursor){let w=Wy(a,!this.altScreenActive),T=w(a.cursor),v=w(a.inputCursor),A=Hy(v.x-T.x,v.y-T.y);f(A),this.displayCursor=v}}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=ki(this.options.stdout),s={altScreen:this.altScreenActive,decstbmSafe:i,synchronized:n?!1:i,inlineBottomAnchored:!this.altScreenActive},a=this.withInternalStreamWrite(()=>qb(r,t,s));return this.prevFrame=r.prevFrame,a},"applyCellFrame");invalidateCellFrame=o(()=>{this.cellLogUpdate.reset(),this.prevFrame=su(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");eraseInlineLiveBlock=o(()=>this.lastOutputHeight>0?Rn.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}=_y(this.rootNode,this.isScreenReaderEnabled,c);if(this.applyCellFrame(f,s),f?.inputCursor){let p=Wy(f,!this.altScreenActive),h=p(f.cursor),m=p(f.inputCursor),g=Hy(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=ki(this.options.stdout);this.writeStdout(r?Ri+n+zr:n)}render(t){let n=w0.createElement(Wa.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},w0.createElement(y0,{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?Ii.updateContainer(n,this.container,null,Dp):(Ii.updateContainerSync(n,this.container,null,Dp),Ii.flushSyncWork())}computeReturnToRestSeq(){if(this.displayCursor&&this.prevFrame){let t=Wy(this.prevFrame,!this.altScreenActive)(this.prevFrame.cursor),n=Hy(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(Mi){this.writeStdout(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStdout(t),this.invalidateCellFrame();return}let n=ki(this.options.stdout);n&&this.writeStdout(Ri),this.returnCursorToRest();let r=this.lastOutputHeight>0?Rn.eraseLines(this.lastOutputHeight):"";this.writeStdout(r+t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(zr)}writeToStderr(t){if(this.isUnmounted)return;if(this.options.debug){this.writeStderr(t),this.writeStdout(this.fullStaticOutput+this.lastOutput);return}if(Mi){this.writeStderr(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStderr(t),this.invalidateCellFrame();return}let n=ki(this.options.stdout);n&&this.writeStdout(Ri),this.returnCursorToRest();let r=this.lastOutputHeight>0?Rn.eraseLines(this.lastOutputHeight):"";r.length>0&&this.writeStdout(r),this.writeStderr(t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(zr)}unmount(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(ps.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{}Mi&&this.writeStdout(this.lastOutput+`
32
+ `)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?Ii.updateContainer(null,this.container,null,Dp):(Ii.updateContainerSync(null,this.container,null,Dp),Ii.flushSyncWork()),Jb.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()},ps.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!Mi&&!this.options.debug){this.returnCursorToRest();let t=this.altScreenActive?this.lastOutputHeight>0?Rn.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=s1((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=ps.env.TERM??"",s=ps.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in ps.env||i==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!Mi&&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=x1(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);w1(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[>${S0(t)}u`),this.kittyProtocolEnabled=!0}},T0=T1;var cu=class{static{o(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new T0(t),this.isConcurrent=this.engineInstance.isConcurrent}render=o(t=>{this.engineInstance.render(t)},"render");unmount=o(t=>{this.engineInstance.unmount(t)},"unmount");waitUntilExit=o(()=>this.engineInstance.waitUntilExit(),"waitUntilExit");clear=o(()=>{this.engineInstance.clear()},"clear");setAltScreenActive=o((t,n)=>{this.engineInstance.setAltScreenActive?.(t,n)},"setAltScreenActive");setShellMode=o((t,n)=>{this.engineInstance.setShellMode?.(t,n)},"setShellMode");beginShellTransition=o(t=>{this.engineInstance.beginShellTransition?.(t)},"beginShellTransition");clearTextSelection=o(()=>{this.engineInstance.clearTextSelection?.()},"clearTextSelection");commitInlineScrollback=o(t=>{this.engineInstance.commitInlineScrollback?.(t)},"commitInlineScrollback")};var lo=null;function I0(){if(lo===-1)return null;if(lo!==null)return lo;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return lo=-1,null;let t=e==="1"||e==="true"?R1(b1(),`kodax-render-trace-${process.pid}.log`):e;try{return lo=I1(t,"a"),C0(lo,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
33
+ `),lo}catch{return lo=-1,null}}o(I0,"resolveTraceFd");function k1(e){let t=I0();if(t!==null)try{C0(t,e)}catch{}}o(k1,"traceLine");var Bp=new WeakMap,E1={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},M1={isTTY:!1,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},_1={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function A1(e={}){return e instanceof C1?{stdout:e}:e}o(A1,"getOptions");function L1(e,t,n){let r=Bp.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(),Bp.set(e,r)),r}o(L1,"getInstance");function ms(e){return Bp.get(e)}o(ms,"getRendererInstance");function Uy(e,t){let n={stdout:E1,stdin:_1,stderr:M1,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...A1(t)};if(I0()!==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=v1.now(),g=u===0?0:m-u,C=s,w=C.columns??0,T=C.rows??0;return k1(`frame=${f} renderTime=${h.renderTime.toFixed(2)}ms interval=${g.toFixed(2)}ms writes=${c} bytes=${l} viewport=${w}x${T}
34
+ `),c=0,l=0,u=m,f+=1,p?.(h)}}let i=L1(n.stdout,()=>new cu(n),n.concurrent??!1);return i.render(e),{rerender:i.render,unmount(){i.unmount()},waitUntilExit:i.waitUntilExit,cleanup:o(()=>{Bp.delete(n.stdout)},"cleanup"),clear:i.clear}}o(Uy,"render");var v0=ar,b0=bn,R0=yy;import{Buffer as O1}from"node:buffer";var $1=/^(?:\x1b)([a-zA-Z0-9])$/,N1=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,E0={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"},M0=[...Object.values(E0),"backspace"],D1=o(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),B1=o(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),_0=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,F1=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,H1={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},W1={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"},k0={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"},A0=o(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),Vy=o(e=>A0(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function L0(e){return e===3?"release":e===2?"repeat":"press"}o(L0,"resolveEventType");function P0(e){return{ctrl:!!(e&Ei.ctrl),shift:!!(e&Ei.shift),meta:!!(e&Ei.meta),option:!!(e&Ei.alt),super:!!(e&Ei.super),hyper:!!(e&Ei.hyper),capsLock:!!(e&Ei.capsLock),numLock:!!(e&Ei.numLock)}}o(P0,"parseKittyModifiers");function j1(e){let t=_0.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(!A0(n))return null;let a;s&&(a=s.split(":").map(u=>Vy(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):k0[n]?(c=k0[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=Vy(n).toLowerCase(),l=!0),l&&!a&&(a=Vy(n)),{name:c,...P0(r),eventType:L0(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}o(j1,"parseKittyKeypress");function U1(e){let t=F1.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==="~"?W1[n]:H1[s];return a?{name:a,...P0(r),eventType:L0(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}o(U1,"parseKittySpecialKey");var Gy="\x1B[200~",V1="\x1B[201~";function G1(e){if(!e.startsWith(Gy))return null;let t=e.indexOf(V1,Gy.length);return t===-1?null:e.slice(Gy.length,t)}o(G1,"extractBracketedPaste");function Ky(e=""){let t=e,n;if(O1.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=G1(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=j1(t);if(r)return r;let i=U1(t);if(i)return i;if(_0.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=$1.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=N1.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=E0[c]??"",s.shift=D1(c)||s.shift,s.ctrl=B1(c)||s.ctrl}return s}o(Ky,"parseKeypress");var X1=50;function Hp(e){return{columns:e?.columns??80,rows:e?.rows??24}}o(Hp,"resolveTerminalSize");var uo=K1(null),zy={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")};var D0={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function Y1(e){for(let t of e)if(t.rawMode)return!0;return!1}o(Y1,"hasRawModeSubscribers");function q1({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&&Y1(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(q1,"createTerminalInputController");var J1=o(({children:e,runtime:t})=>{let[n,r]=z1(()=>t.terminalSize);Ya(()=>{if(r(Hp(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=o(()=>{r(Hp(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let i=N0(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=O0(()=>q1({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);Ya(()=>()=>{s.dispose()},[s]);let a=O0(()=>({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 $0(uo.Provider,{value:a,children:e})},"TuiRuntimeProvider");function Q1(e){let t=e?.stdout??zy,n=e?.stdin??D0,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:Hp(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(Q1,"createRuntimeValue");function qa(e,t){let n=Q1(t),r=Uy($0(J1,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}o(qa,"render");var M=v0,b=b0,Ja=R0;function Z1(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&&M0.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(Z1,"createCompatKeypress");function Qa(e,t={}){let{isActive:n=!0}=t,r=Fp(e),i=Fp(null),s=Fp(null);Ya(()=>{r.current=e},[e]),Ya(()=>{if(!n){i.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return i.current=$p(),()=>{i.current?.reset(),i.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=N0(c=>{let{input:l,key:u}=Z1(Ky(c));r.current(l,u)},[]);uu(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)},X1))},{isActive:n,rawMode:!0})}o(Qa,"useInput");function Xr(){return{stdout:hs(uo)?.stdout??zy}}o(Xr,"useStdout");function lu(){let e=hs(uo),t=e?.stdin??D0,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}o(lu,"useStdin");function Yr(){return{exit:hs(uo)?.exit??(()=>{})}}o(Yr,"useApp");function Za(){return hs(uo)?.stdout??zy}o(Za,"useTerminalOutput");function ec(){let e=Za();return hs(uo)?.terminalSize??Hp(e)}o(ec,"useTerminalSize");function tc(){let e=Za();return hs(uo)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}o(tc,"useTerminalWrite");function uu(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,i=hs(uo),{stdin:s,setRawMode:a,isRawModeSupported:c}=lu(),l=Fp(e);Ya(()=>{l.current=e},[e]),Ya(()=>{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(uu,"useTerminalInput");import{jsx as oD}from"react/jsx-runtime";import{useInsertionEffect as sD,useMemo as aD}from"react";var eD="\x1B[?1049h",tD="\x1B[?1049l";var nD="\x1B[2J",rD="\x1B[?1000h\x1B[?1002h\x1B[?1006h",iD="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function Wp(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return eD+(n?nD:"")+"\x1B[H"+(t?rD:"")}o(Wp,"buildAlternateScreenEnterSequence");function jp(e={}){return(e.mouseTracking!==!1?iD:"")+tD}o(jp,"buildAlternateScreenExitSequence");var Xy=o(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let i=Za(),{rows:s}=ec(),a=tc(),c=aD(()=>n&&i.isTTY===!0,[n,i]);return sD(()=>{if(!c)return;let l=ms(i);if(l?.setShellMode?.("virtual",t),l?.beginShellTransition?.("enter-alt-screen"),!!a(Wp({mouseTracking:t,clearOnEnter:r})))return l?.setAltScreenActive?.(!0,t),()=>{l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),l?.setAltScreenActive?.(!1),a(jp({mouseTracking:t}))}},[r,c,t,i,a]),oD(M,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as fo,jsxs as j0}from"react/jsx-runtime";import{jsx as lD}from"react/jsx-runtime";import uD,{useEffect as Up,useImperativeHandle as dD,useMemo as fD,useRef as Vp,useCallback as fu,useState as pD}from"react";function cD(e,t,n){return Math.max(t,Math.min(e,n))}o(cD,"clamp");function du(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(du,"computeOverscanWindow");function B0(e,t,n){let r=du({...n,globalScrollTop:e}),i=du({...n,globalScrollTop:t});return r.bin===i.bin}o(B0,"staysWithinOverscanBlock");function F0(e){let t=e??void 0;for(;t?.parentNode;)t=t.parentNode;return t&&typeof t.onRender=="function"?(t.onRender(),!0):!1}o(F0,"scheduleRenderFromNode");function H0(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:Gp(t,t.scrollTop)}}o(H0,"normalizeScrollSnapshot");function W0(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(W0,"areSnapshotsEqual");function mD(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(mD,"areWindowsEqual");function Gp(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(Gp,"clampScrollTop");function Yy(e){let t=Math.max(0,e.viewportHeight),n=Gp(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=du({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(Yy,"resolveScrollWindow");function hD(e){let t=Gp(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}o(hD,"resolveNativeScrollTop");var qy=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 C=Vp(null),w=Vp(new Set),T=Vp(H0({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l,overscanRows:g})),[v,A]=pD(()=>Yy(T.current)),D=Vp(null),k=fu(()=>{for(let le of w.current)le()},[]),E=fu((le,de=!0)=>{let he=T.current,_e=H0(le),fe=Yy(_e);return T.current=_e,A(Te=>mD(Te,fe)?Te:fe),de&&!W0(he,_e)&&k(),{previous:he,snapshot:_e,window:fe,changed:!W0(he,_e)}},[k]),P=fu(le=>{let de=T.current,he=Math.max(0,Math.floor(de.overscanRows??0)),_e=C.current;if(he<=0||!_e||de.viewportHeight<=0)return!1;let fe=Math.max(0,de.scrollHeight-de.viewportHeight),Te=D.current??Gp(de,de.scrollTop),Pe=Math.max(0,Math.min(Math.floor(Te+le),fe)),te=Pe-Te;if(Pe===Te)return!0;let oe=Math.max(0,de.scrollHeight-de.viewportHeight-Te),Ie=Math.max(0,de.scrollHeight-de.viewportHeight-Pe),nt={viewportHeight:de.viewportHeight,contentHeight:de.scrollHeight,overscan:he};if(!B0(oe,Ie,nt))return!1;let vt=du({...nt,globalScrollTop:Ie});return _e.scrollTop=Ie,_e.attributes&&(_e.attributes.inWindowScrollTop=vt.inBlockOffset,_e.attributes.pendingScrollDelta=te),F0(_e)?(D.current=Pe,de.sticky&&(T.current={...T.current,sticky:!1},p?.(!1)),k(),!0):!1},[k,p]),B=fu(le=>{let de=C.current;de&&T.current.overscanRows&&(de.scrollTop=le.viewportTop)},[]);Up(()=>{let le=T.current,de={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:le.clampMin,clampMax:le.clampMax,sticky:l,overscanRows:g},he=E(de);he.previous.sticky!==l&&p?.(l),he.window.scrollTop!==s&&f?.(he.window.scrollTop)},[E,p,f,g,a,s,l,c]);let $=fu(()=>{let le=C.current;if(!le)return;D.current=null;let de=typeof le.scrollHeight=="number"?Math.max(0,Math.floor(le.scrollHeight)):void 0,he=typeof le.scrollViewportHeight=="number"?Math.max(0,Math.floor(le.scrollViewportHeight)):void 0,_e=typeof le.scrollViewportTop=="number"?Math.max(0,Math.floor(le.scrollViewportTop)):void 0;if(de===void 0||he===void 0||_e===void 0)return;let fe=Math.max(0,de-he-_e),Te=E({...T.current,scrollTop:fe,scrollHeight:de,viewportHeight:he});Te.changed&&Te.window.scrollTop!==Te.previous.scrollTop&&f?.(Te.window.scrollTop)},[E,f]);Up(()=>{$()},[$]);let G=fD(()=>({scrollTo(le){D.current=null;let de=E({...T.current,scrollTop:le,pendingDelta:0,sticky:!1});de.previous.sticky!==!1&&p?.(!1),B(de.window),f?.(de.window.scrollTop)},scrollBy(le){if(P(le))return;let de=D.current??T.current.scrollTop;D.current=null;let he=E({...T.current,scrollTop:de+le,pendingDelta:T.current.pendingDelta+Math.floor(le),sticky:!1});he.previous.sticky!==!1&&p?.(!1),B(he.window),f?.(he.window.scrollTop)},scrollToElement(le,de=0){D.current=null;let he=E({...T.current,scrollTop:le-de,pendingDelta:0,sticky:!1});he.previous.sticky!==!1&&p?.(!1),B(he.window),f?.(he.window.scrollTop)},scrollToBottom(){D.current=null;let le=E({...T.current,scrollTop:0,pendingDelta:0,sticky:!0});B(le.window),f?.(le.window.scrollTop),le.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return D.current??T.current.scrollTop},getPendingDelta(){return T.current.pendingDelta},getScrollHeight(){return C.current?.scrollHeight??T.current.scrollHeight},getViewportHeight(){return C.current?.scrollViewportHeight??v.viewportHeight},getViewportTop(){return C.current?.scrollViewportTop??v.viewportTop},isSticky(){return T.current.sticky},subscribe(le){return w.current.add(le),()=>{w.current.delete(le)}},setClampBounds(le,de){D.current=null;let he=E({...T.current,clampMin:le,clampMax:de});B(he.window),he.window.scrollTop!==he.previous.scrollTop&&f?.(he.window.scrollTop)}}),[E,f,p,P,B]);dD(u,()=>G,[G]),Up(()=>{h?.(v)},[h,v]),Up(()=>{T.current.pendingDelta!==0&&(T.current={...T.current,pendingDelta:0})},[v]);let re=D.current!==null,X=re?{...T.current,scrollTop:D.current}:T.current,y=re?Yy(X):v,_=m?m(y):e,ee=Math.max(0,c+i),W=hD(X);return uD.createElement("ink-box",{ref:C,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:ee,paddingTop:i,overflowX:"visible",overflowY:"scroll"},scrollTop:W,scrollHeight:T.current.scrollHeight,scrollViewportHeight:T.current.viewportHeight,scrollViewportTop:y.viewportTop,pendingScrollDelta:T.current.pendingDelta,virtualScrollWindowed:!!m,...T.current.overscanRows?{inWindowScrollTop:y.inWindowScrollTop}:{},...T.current.clampMin!==void 0?{scrollClampMin:T.current.clampMin}:{},...T.current.clampMax!==void 0?{scrollClampMax:T.current.clampMax}:{},...l?{stickyScroll:!0}:{}},lD(M,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:_}))},"ScrollBox");var gD=80;function pu(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}o(pu,"resolveFullscreenChromeSlotText");function Kp(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:gD)-2);return Math.max(1,xn(e.split(`
36
+ `),n,0,0).visualLines.length)}o(Kp,"measureFullscreenChromeSlotRows");var Jy=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:C,onWindowChange:w,overscanRows:T})=>{let v=o((G,re)=>re?fo(M,{paddingX:1,children:fo(b,{dimColor:G?.tone!=="accent",children:re})}):null,"renderChromeSlot"),A=pu(a),D=pu(c),k=Kp(A,l),E=v(a,A),P=s?null:v(c,D),B=Math.max(0,e?t:0),$=Math.max(0,p-k-B);return j0(M,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?fo(M,{flexDirection:"column",flexShrink:0,children:e}):null,j0(M,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[fo(qy,{width:l,flexGrow:1,flexShrink:1,paddingTop:k,scrollTop:u,scrollHeight:f,viewportHeight:$,stickyScroll:h,scrollRef:m,onScrollTopChange:g,onStickyChange:C,onWindowChange:w,renderWindow:r,overscanRows:T,children:n}),E?fo(M,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:E}):null,P?fo(M,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:P}):null,s?fo(M,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),fo(M,{flexDirection:"column",flexShrink:0,children:i})]})},"FullscreenLayout");import SD from"string-width";function wD(){return ec().columns}o(wD,"useTerminalWidth");var Xp=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=zp(()=>ae(u),[u]),h=wD(),m=f??h,g=SD(r)+1,C=zp(()=>{let k=Math.max(20,m-g);return xn(e,k,t,n)},[e,m,t,n,g]),w=zp(()=>{if(!C)return null;let[k,E]=yp(C,[t,n]);return{row:k,col:E}},[C,t,n]),T=s&&a,v=c&&e.some(k=>k.length>0),A=C,D=w;return cr(M,{flexDirection:"column",borderStyle:"round",borderColor:p.colors.dim,borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,width:f??"100%",children:[v?kn(M,{children:kn(b,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,A.visualLines.length===0||A.visualLines.length===1&&A.visualLines[0]===""?cr(M,{children:[cr(b,{color:p.colors.primary,children:[r," "]}),T?cr(yD,{children:[kn(b,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:" "}),kn(b,{dimColor:!0,children:i})]}):kn(b,{dimColor:!0,children:i})]}):A.visualLines.map((k,E)=>{let P=E===D.row,B=E===0?r:" ".repeat(g-1);if(P&&T){let{before:$,current:G,after:re}=eb(k,D.col),X=G||" ";return cr(M,{children:[cr(b,{color:p.colors.primary,children:[B," "]}),kn(b,{color:p.colors.text,children:$}),kn(b,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:X}),kn(b,{color:p.colors.text,children:re})]},E)}return cr(M,{children:[cr(b,{color:p.colors.dim,children:[B," "]}),kn(b,{color:p.colors.text,children:k})]},E)})]})},"TextInput"),U0=o(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:i=!0,theme:s="dark"})=>{let a=zp(()=>ae(s),[s]);if(!e)return cr(M,{children:[cr(b,{color:a.colors.primary,children:[n," "]}),r&&kn(b,{dimColor:!0,children:r}),i&&kn(b,{backgroundColor:a.colors.primary,color:"#000000",children:" "})]});let c=wn(e),l=c.slice(0,t).join(""),u=c[t]??" ",f=c.slice(t+1).join("");return cr(M,{children:[cr(b,{color:a.colors.primary,children:[n," "]}),kn(b,{color:a.colors.text,children:l}),kn(b,{backgroundColor:a.colors.primary,color:"#000000",children:u}),kn(b,{color:a.colors.text,children:f})]})},"SingleLineTextInput");var Qy={"[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"}},xD=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,TD=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function CD(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}o(CD,"parseMouseButton");function ID(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}o(ID,"parseModifier");function mu(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(TD);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:CD(l),row:f,column:u},n)}if(e===`\r
37
37
  `)return n.name="newline",n;if(e==="\r")return n.name=t?"newline":"return",n;if(e===`
38
38
  `)return n.name="newline",n;if(e===" ")return n.name="tab",n;if(e==="\b"||e==="\x7F")return n.name="backspace",n;if(e==="\x1B\b"||e==="\x1B\x7F")return n.name="backspace",n.meta=!0,n;if(e==="\x1B\r"||e===`\x1B
39
- `)return n.name=e==="\x1B\r"?"return":"enter",n.shift=!0,n;if(e==="\x1B"||e==="\x1B\x1B")return n.name="escape",n.meta=e.length===2,n;if(e===" "||e==="\x1B ")return n.name="space",n.meta=e.length===2,n.insertable=!n.meta,n;if(e.length===1&&e.charCodeAt(0)<=26)return n.name=String.fromCharCode(e.charCodeAt(0)+96),n.ctrl=!0,n;if(e.length===1&&e>="0"&&e<="9"||e.length===1&&e>="a"&&e<="z")return n.name=e,n.insertable=!0,n;if(e.length===1&&e>="A"&&e<="Z")return n.name=e.toLowerCase(),n.shift=!0,n.insertable=!0,n;if(e.length===1&&e.charCodeAt(0)>=32)return n.name=e,n.insertable=!0,n;if(e.startsWith("\x1B")){let 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(hD);if(s){let[,l,u,d]=s,p=d||"~",m=Qy[i];if(m)return Object.assign(n,m),n;let g="["+l+p+"]",C=Qy[g];if(C&&C.name){if(n.name=C.name,u){let w=parseInt(u,10)-1,T=SD(w);Object.assign(n,T)}return n}}let c=Qy[i];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),u=pu(l);return n.name=u.name,n}}return n}o(pu,"parseKeypress");var nc=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=pu(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:r}=t;this.buffer=r;let i=pu(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]===`
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(xD);if(s){let[,l,u,f]=s,p=f||"~",m=Qy[i];if(m)return Object.assign(n,m),n;let g="["+l+p+"]",C=Qy[g];if(C&&C.name){if(n.name=C.name,u){let w=parseInt(u,10)-1,T=ID(w);Object.assign(n,T)}return n}}let c=Qy[i];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),u=mu(l);return n.name=u.name,n}}return n}o(mu,"parseKeypress");var nc=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=mu(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:r}=t;this.buffer=r;let i=mu(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
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 Zy(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(Zy,"isFunctionKey");function U0(e){return e.ctrl||e.meta||Zy(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}o(U0,"isPrintable");function V0(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(V0,"getKeyDisplayName");import wD,{createContext as xD,useContext as TD,useEffect as G0,useCallback as CD,useRef as eS}from"react";var ID=50;function Yp(){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(Yp,"createKeypressManager");var K0=xD(null);function mu({children:e,enabled:t=!0}){let{stdout:n}=Xr(),r=eS(Yp()),i=eS(null),s=eS(null),a=CD(c=>{t&&r.current.dispatch(c)},[t]);return G0(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new nc;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]),lu(c=>{t&&(s.current&&clearTimeout(s.current),i.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{i.current?.feed("",!0)},ID)))},{isActive:t,rawMode:!0}),wD.createElement(K0.Provider,{value:r.current},e)}o(mu,"KeypressProvider");function qp(){let e=TD(K0);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}o(qp,"useKeypressManager");function Un(e,t,n=[]){let r=qp(),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?Sn.High:Sn.Normal:u??Sn.Normal}else a=typeof e=="boolean"?e?Sn.High:Sn.Normal:e,s=t,c=!0;G0(()=>c?r.register(a,s):void 0,[r,a,c,...i?[]:n])}o(Un,"useKeypress");function lr(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(lr,"createKeyMatcher");var tS={isEnter:lr({name:"return"}),isEscape:lr({name:"escape"}),isCtrlC:lr({name:"c",ctrl:!0}),isCtrlD:lr({name:"d",ctrl:!0}),isUp:lr({name:"up"}),isDown:lr({name:"down"}),isLeft:lr({name:"left"}),isRight:lr({name:"right"}),isBackspace:lr({name:"backspace"}),isDelete:lr({name:"delete"}),isTab:lr({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 MD}from"react/jsx-runtime";import{useState as _D,useEffect as Y0,useCallback as po,useMemo as q0,createContext as AD,useContext as J0}from"react";function vD(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 d=r.indexOf(u,s+1);if(d===-1)return{matched:!1,score:0,highlights:[]};d===s+1?i+=10:d===0?i+=5:i-=1,t[d]===e[l]&&(i+=2),a.push(d),s=d}let c=bD(t,a);return i+=c,{matched:!0,score:i,highlights:a}}o(vD,"fuzzyMatch");function bD(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(bD,"calculateWordBoundaryBonus");function RD(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}o(RD,"prefixMatch");function kD(e,t){if(RD(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{...vD(e,t),isPrefix:!1}}o(kD,"combinedMatch");function z0(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(z0,"sortCandidatesCombined");var ED={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},nS=class{static{o(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...ED,...t},this.completers=[new uy(this.options.gitRoot),new Kv,new zv,new dp(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 uy)?.setGitRoot(this.options.gitRoot),r){let i=this.completers.findIndex(s=>s instanceof dp);i!==-1&&(this.completers[i]=new dp(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=dy(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){ft({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 z0(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=dy(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 d=c.split(/\s+/);return(d[d.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){ft({source:"repl:autocomplete",level:"error",message:"Listener failed during autocomplete state update.",detail:r})}}};function X0(e){return new nS(e)}o(X0,"createAutocompleteProvider");var rS=AD(null);function Jp({children:e,cwd:t,gitRoot:n}){let r=hu({cwd:t,gitRoot:n,enabled:!0});return MD(rS.Provider,{value:r,children:e})}o(Jp,"AutocompleteContextProvider");function mo(){return J0(rS)}o(mo,"useAutocompleteContext");function LD(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(LD,"completionToSuggestion");function hu(e={}){let t=J0(rS);return t&&!e.cwd&&!e.gitRoot?t:PD(e)}o(hu,"useAutocomplete");function PD(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,i=q0(()=>X0({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:50}),[]);Y0(()=>{i.updateOptions({cwd:t,gitRoot:n})},[i,t,n]);let[s,a]=_D({visible:!1,selectedIndex:0,completions:[],loading:!1});Y0(()=>i.subscribe(T=>{a(T)}),[i]);let c=q0(()=>s.completions.map((w,T)=>LD(w,T)),[s.completions]),l=po((w,T)=>{if(!r){i.cancel();return}i.handleInput(w,T)},[i,r]),u=po(()=>s.visible?i.acceptCompletionWithType():null,[i,s.visible]),d=po(()=>s.visible?i.acceptCompletionWithType():null,[i,s.visible]),p=po(()=>{s.visible&&i.selectPrevious()},[i,s.visible]),h=po(()=>{s.visible&&i.selectNext()},[i,s.visible]),m=po(()=>{s.visible&&i.cancel()},[i,s.visible]),g=po(()=>{i.cancel()},[i]),C=po(()=>i,[i]);return{state:s,suggestions:c,handleInput:l,handleTab:u,handleEnter:d,handleUp:p,handleDown:h,handleEscape:m,cancel:g,getProvider:C}}o(PD,"useAutocompleteImpl");import{useCallback as gu,useRef as Q0}from"react";var ur=[];function Qp(e={}){let{maxSize:t=1e3,onSave:n}=e,r=Q0(-1),i=Q0(""),s=gu((d,p)=>{if(!d.trim())return;if(ur[ur.length-1]?.text!==d){let m={text:d,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};ur.push(m),ur.length>t&&ur.splice(0,ur.length-t),n?.(m)}r.current=-1,i.current=""},[t,n]),a=gu(()=>ur.length===0?null:r.current===-1?(r.current=ur.length-1,ur[r.current]??null):r.current>0?(r.current--,ur[r.current]??null):null,[]),c=gu(()=>r.current===-1?null:r.current<ur.length-1?(r.current++,ur[r.current]??null):(r.current=-1,{text:i.current,timestamp:Date.now()}),[]),l=gu(()=>{r.current=-1,i.current=""},[]),u=gu(d=>{r.current===-1&&(i.current=d)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}o(Qp,"useInputHistory");function En(e,t,n){return wn(e).slice(t,n).join("")}o(En,"sliceByCodePoints");var rc=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 br(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=En(t,0,this._cursor.col);return{row:this._cursor.row,col:br(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=wn(t)[this._cursor.col];return r?vr(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=wn(n),i=0;for(let s=0;s<r.length;s++){let a=vr(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(`
41
+ `;return}return}for(let n of this.listeners)n(t)}clear(){this.buffer=""}};function Zy(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(Zy,"isFunctionKey");function V0(e){return e.ctrl||e.meta||Zy(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}o(V0,"isPrintable");function G0(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(G0,"getKeyDisplayName");import vD,{createContext as bD,useContext as RD,useEffect as K0,useCallback as kD,useRef as eS}from"react";var ED=50;function Yp(){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(Yp,"createKeypressManager");var z0=bD(null);function hu({children:e,enabled:t=!0}){let{stdout:n}=Xr(),r=eS(Yp()),i=eS(null),s=eS(null),a=kD(c=>{t&&r.current.dispatch(c)},[t]);return K0(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new nc;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]),uu(c=>{t&&(s.current&&clearTimeout(s.current),i.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{i.current?.feed("",!0)},ED)))},{isActive:t,rawMode:!0}),vD.createElement(z0.Provider,{value:r.current},e)}o(hu,"KeypressProvider");function qp(){let e=RD(z0);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}o(qp,"useKeypressManager");function Un(e,t,n=[]){let r=qp(),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?Sn.High:Sn.Normal:u??Sn.Normal}else a=typeof e=="boolean"?e?Sn.High:Sn.Normal:e,s=t,c=!0;K0(()=>c?r.register(a,s):void 0,[r,a,c,...i?[]:n])}o(Un,"useKeypress");function lr(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(lr,"createKeyMatcher");var tS={isEnter:lr({name:"return"}),isEscape:lr({name:"escape"}),isCtrlC:lr({name:"c",ctrl:!0}),isCtrlD:lr({name:"d",ctrl:!0}),isUp:lr({name:"up"}),isDown:lr({name:"down"}),isLeft:lr({name:"left"}),isRight:lr({name:"right"}),isBackspace:lr({name:"backspace"}),isDelete:lr({name:"delete"}),isTab:lr({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 OD}from"react/jsx-runtime";import{useState as $D,useEffect as q0,useCallback as po,useMemo as J0,createContext as ND,useContext as Q0}from"react";function MD(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=_D(t,a);return i+=c,{matched:!0,score:i,highlights:a}}o(MD,"fuzzyMatch");function _D(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(_D,"calculateWordBoundaryBonus");function AD(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}o(AD,"prefixMatch");function LD(e,t){if(AD(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{...MD(e,t),isPrefix:!1}}o(LD,"combinedMatch");function X0(e,t,n=0){return e?t.map(r=>{let i=LD(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(X0,"sortCandidatesCombined");var PD={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},nS=class{static{o(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...PD,...t},this.completers=[new uy(this.options.gitRoot),new zv,new Xv,new dp(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 uy)?.setGitRoot(this.options.gitRoot),r){let i=this.completers.findIndex(s=>s instanceof dp);i!==-1&&(this.completers[i]=new dp(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=dy(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){ft({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 X0(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=dy(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){ft({source:"repl:autocomplete",level:"error",message:"Listener failed during autocomplete state update.",detail:r})}}};function Y0(e){return new nS(e)}o(Y0,"createAutocompleteProvider");var rS=ND(null);function Jp({children:e,cwd:t,gitRoot:n}){let r=gu({cwd:t,gitRoot:n,enabled:!0});return OD(rS.Provider,{value:r,children:e})}o(Jp,"AutocompleteContextProvider");function mo(){return Q0(rS)}o(mo,"useAutocompleteContext");function DD(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(DD,"completionToSuggestion");function gu(e={}){let t=Q0(rS);return t&&!e.cwd&&!e.gitRoot?t:BD(e)}o(gu,"useAutocomplete");function BD(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,i=J0(()=>Y0({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:50}),[]);q0(()=>{i.updateOptions({cwd:t,gitRoot:n})},[i,t,n]);let[s,a]=$D({visible:!1,selectedIndex:0,completions:[],loading:!1});q0(()=>i.subscribe(T=>{a(T)}),[i]);let c=J0(()=>s.completions.map((w,T)=>DD(w,T)),[s.completions]),l=po((w,T)=>{if(!r){i.cancel();return}i.handleInput(w,T)},[i,r]),u=po(()=>s.visible?i.acceptCompletionWithType():null,[i,s.visible]),f=po(()=>s.visible?i.acceptCompletionWithType():null,[i,s.visible]),p=po(()=>{s.visible&&i.selectPrevious()},[i,s.visible]),h=po(()=>{s.visible&&i.selectNext()},[i,s.visible]),m=po(()=>{s.visible&&i.cancel()},[i,s.visible]),g=po(()=>{i.cancel()},[i]),C=po(()=>i,[i]);return{state:s,suggestions:c,handleInput:l,handleTab:u,handleEnter:f,handleUp:p,handleDown:h,handleEscape:m,cancel:g,getProvider:C}}o(BD,"useAutocompleteImpl");import{useCallback as yu,useRef as Z0}from"react";var ur=[];function Qp(e={}){let{maxSize:t=1e3,onSave:n}=e,r=Z0(-1),i=Z0(""),s=yu((f,p)=>{if(!f.trim())return;if(ur[ur.length-1]?.text!==f){let m={text:f,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};ur.push(m),ur.length>t&&ur.splice(0,ur.length-t),n?.(m)}r.current=-1,i.current=""},[t,n]),a=yu(()=>ur.length===0?null:r.current===-1?(r.current=ur.length-1,ur[r.current]??null):r.current>0?(r.current--,ur[r.current]??null):null,[]),c=yu(()=>r.current===-1?null:r.current<ur.length-1?(r.current++,ur[r.current]??null):(r.current=-1,{text:i.current,timestamp:Date.now()}),[]),l=yu(()=>{r.current=-1,i.current=""},[]),u=yu(f=>{r.current===-1&&(i.current=f)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}o(Qp,"useInputHistory");function En(e,t,n){return wn(e).slice(t,n).join("")}o(En,"sliceByCodePoints");var rc=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 br(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=En(t,0,this._cursor.col);return{row:this._cursor.row,col:br(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=wn(t)[this._cursor.col];return r?vr(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=wn(n),i=0;for(let s=0;s<r.length;s++){let a=vr(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
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=En(n,0,this._cursor.col),i=En(n,this._cursor.col);this._lines[this._cursor.row]=r+t+i,this._cursor.col+=vn(t),this._rememberedCol=this._cursor.col,this._updateText()}newline(){this._saveHistory(),this._insertNewline()}_insertNewline(){let t=this._lines[this._cursor.row],n=En(t,0,this._cursor.col),r=En(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=En(t,0,n),i=En(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=vn(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<vn(t)){this._saveHistory();let n=En(t,0,this._cursor.col),r=En(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=vn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col)}_moveRight(){let t=this._lines[this._cursor.row];this._cursor.col<vn(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=vn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col}_clampColumn(){let t=this._lines[this._cursor.row],n=vn(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,vn(this._lines[this._cursor.row]))),this._rememberedCol=this._cursor.col}killLineRight(){let t=this._lines[this._cursor.row];this._cursor.col<vn(t)&&(this._saveHistory(),this._lines[this._cursor.row]=En(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]=En(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=wn(t);for(;n>0&&/\s/.test(r[n]??"");)n--;for(;n>0&&!/\s/.test(r[n-1]??"");)n--;let i=En(t,0,n),s=En(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
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
44
  `),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}_updateText(){this._text=this._lines.join(`
45
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:vn(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+=En(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=vn(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as $D,useCallback as qt,useRef as iS,useEffect as ND}from"react";function Zp(e={}){let{initialValue:t="",onTextChange:n}=e,r=iS(null),i=iS(null),s=iS(null),[a,c]=$D({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new rc,t&&r.current.setText(t)),i.current===null&&(i.current=Bv());let l=r.current,u=i.current,d=qt(X=>{c(y=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:X?.isPasting??y.isPasting,editingMode:X?.editingMode??y.editingMode})),n?.(l.text)},[l,n]),p=qt(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{c(X=>({...X,isPasting:!1,editingMode:X.text?"typing":"idle"})),s.current=null},120)},[]),h=qt(X=>{l.setText(X),d({isPasting:!1,editingMode:X?"typing":"idle"})},[l,d]),m=qt((X,y,A)=>{l.replaceRange(X,y,A),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),g=qt((X,y)=>{let A=y?.paste??!1;if(A&&Ov(X)){let ee=X.replace(/\r\n/g,`
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:vn(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+=En(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=vn(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as FD,useCallback as qt,useRef as iS,useEffect as HD}from"react";function Zp(e={}){let{initialValue:t="",onTextChange:n}=e,r=iS(null),i=iS(null),s=iS(null),[a,c]=FD({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new rc,t&&r.current.setText(t)),i.current===null&&(i.current=Fv());let l=r.current,u=i.current,f=qt(X=>{c(y=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:X?.isPasting??y.isPasting,editingMode:X?.editingMode??y.editingMode})),n?.(l.text)},[l,n]),p=qt(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{c(X=>({...X,isPasting:!1,editingMode:X.text?"typing":"idle"})),s.current=null},120)},[]),h=qt(X=>{l.setText(X),f({isPasting:!1,editingMode:X?"typing":"idle"})},[l,f]),m=qt((X,y,_)=>{l.replaceRange(X,y,_),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),g=qt((X,y)=>{let _=y?.paste??!1;if(_&&Dv(X)){let ee=X.replace(/\r\n/g,`
47
47
  `).replace(/\r/g,`
48
- `),{placeholder:W}=u.registerText(ee);l.insert(W,{paste:!0}),d({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(X,{paste:!1}),d({isPasting:A,editingMode:A?"pasting":"typing"}),A&&p()},[l,u,p,d]),C=qt(()=>{l.newline(),d({isPasting:!1,editingMode:"typing"})},[l,d]),w=qt(()=>{let X=l.getAbsoluteOffset(),y=lp(l.text,X);y?l.replaceRange(y.start,y.end,""):l.backspace(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),T=qt(()=>{let X=l.getAbsoluteOffset(),y=up(l.text,X);y?l.replaceRange(y.start,y.end,""):l.delete(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),v=qt(X=>{l.move(X),d()},[l,d]),_=qt(()=>{l.clear(),d({isPasting:!1,editingMode:"idle"})},[l,d]),P=qt(()=>{let X=l.undo();return X&&d(),X},[l,d]),k=qt(()=>{let X=l.redo();return X&&d(),X},[l,d]),E=qt(()=>{l.moveToEnd(),d()},[l,d]),$=qt(X=>{l.moveToAbsoluteOffset(X),d()},[l,d]),B=qt(()=>{l.killLineRight(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),O=qt(()=>{l.killLineLeft(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),G=qt(()=>{l.deleteWordLeft(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),re=qt(()=>{s.current&&(clearTimeout(s.current),s.current=null),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]);return ND(()=>()=>{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:re,setText:h,replaceRange:m,insert:g,newline:C,backspace:w,delete:T,move:v,moveToEnd:E,moveToOffset:$,killLineRight:B,killLineLeft:O,deleteWordLeft:G,clear:_,undo:P,redo:k}}o(Zp,"useTextBuffer");import{jsx as gs,jsxs as rm}from"react/jsx-runtime";import{useState as iR}from"react";import{useCallback as ic,useEffect as cS,useRef as tm}from"react";function Z0(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(Z0,"buildAutocompleteReplacement");import{readFile as WD}from"node:fs/promises";var jD=/\.(png|jpe?g|gif|webp|bmp)$/i;async function oS(e){if(e.length===0)return process.platform==="darwin"?eR():{kind:"text",text:""};let t=em(e);return t.length>0?UD(t,e):{kind:"text",text:e}}o(oS,"handleBracketedPaste");async function sS(){return eR()}o(sS,"triggerExplicitClipboardImage");async function eR(){let e;try{e=await vf()}catch(t){return{kind:"error",message:`Failed to read clipboard image: ${aS(t)}`}}return e?tR(e):{kind:"noop"}}o(eR,"readClipboardAsImagesOutcome");async function UD(e,t){let n=[],r=[];for(let i of e){let s;try{s=await WD(i)}catch(c){r.push(`Failed to read ${i}: ${aS(c)}`);continue}let a=await tR(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(UD,"readImagePathsAsOutcome");async function tR(e){try{let t=await If(e);return{kind:"images",blocks:[await bf(t)]}}catch(t){return t instanceof Cf?{kind:"error",message:t.message}:{kind:"error",message:`Failed to process pasted image: ${aS(t)}`}}}o(tR,"decodeBufferToOutcome");function em(e){return e.split(/ (?=\/|[A-Za-z]:\\)/).filter(n=>jD.test(n.trim()))}o(em,"extractImagePaths");function aS(e){return e instanceof Error?e.message:String(e)}o(aS,"describeError");function nm(e,t){ft({source:"repl:prompt-input",level:"warn",message:e,...t!==void 0?{detail:t}:{}})}o(nm,"reportPromptInputDiagnostic");var GD=500;function nR(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}o(nR,"shouldUseHistoryNavigation");function KD(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<GD?"clear-input":"arm-clear":"pass-through"}o(KD,"resolvePromptEscapeBehavior");function zD(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(zD,"resolvePromptEnterBehavior");function XD(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(XD,"resolvePromptEditingCommand");function rR({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:i,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onPasteFallback:l,onHistoryRecall:u,onPopPendingInputs:d}){let p=tm(0),{add:h,navigateUp:m,navigateDown:g,reset:C,saveTempInput:w}=Qp(),{buffer:T,text:v,cursor:_,lines:P,isPasting:k,editingMode:E,pasteStore:$,resetTransientState:B,setText:O,replaceRange:G,clear:re,move:X,moveToOffset:y,insert:A,backspace:ee,newline:W,delete:le,undo:de,redo:he,killLineRight:_e,killLineLeft:fe,deleteWordLeft:Te}=Zp({initialValue:r,onTextChange:c}),Pe=tm(0);cS(()=>{if(k)return;if(v.length<=1e4){Pe.current=0;return}if(v.length===Pe.current)return;let L=$.peekNextId(),{truncatedText:V,placeholderContent:H}=Dv(v,L);H&&($.registerTruncatedText(H),Pe.current=V.length,O(V))},[v,k,$,O]);let te=mo(),oe=hu({cwd:i,gitRoot:s,enabled:a}),{state:Ie,suggestions:nt,handleInput:vt,handleTab:Ke,handleEnter:Ve,handleUp:me,handleDown:Re,handleEscape:K}=te??oe;cS(()=>{n||(p.current=0,B(),Ie.visible&&K())},[Ie.visible,n,K,B]);let We=tm(v);cS(()=>{a&&v!==We.current&&(We.current=v,vt(v,T.getAbsoluteOffset()))},[a,T,vt,v]);let St=ic(L=>{if(!L?.text)return;let V=Z0(v,T.getAbsoluteOffset(),L),H=v.slice(0,V.start)+V.replacement+v.slice(V.end);return G(V.start,V.end,V.replacement),H},[T,G,v]),Vt=ic(L=>{let V=L??v;if(!V.trim())return;let H=$.expand(V),ne=new Set,F=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let ve of V.matchAll(F)){let ke=Number.parseInt(ve[2]??"0",10);Number.isFinite(ke)&&ke>0&&ne.add(ke)}let Ae=[];for(let ve of ne){let ke=$.get(ve);ke&&Ae.push(ke)}h(V,{pastedContents:Ae}),e({displayText:V,fullText:H,pastedContents:Ae}),re()},[h,re,e,$,v]),Xe=ic(L=>{if(L){if(L.pastedContents&&L.pastedContents.length>0){for(let V of L.pastedContents)$.adopt(V);u?.({text:L.text,pastedContents:[...L.pastedContents]})}O(L.text)}},[u,$,O]),_t=ic(async L=>{try{let V=await oS(L);if(V.kind==="images"){let H=V.blocks.map(ne=>`@${ne.path}`).join(" ");A(`${H} `,{paste:!1})}else V.kind==="error"&&(nm(`Paste image handling failed: ${V.message}`),A(L,{paste:!1}),l?.("Image paste failed; inserted as plain text."))}catch(V){nm("Paste image handling failed.",V)}},[A,l]),Qt=tm(!1),qn=ic(async()=>{if(!Qt.current){Qt.current=!0;try{let L=await sS();if(L.kind==="images"){let V=L.blocks.map(H=>`@${H.path}`).join(" ");A(`${V} `,{paste:!1})}else L.kind==="error"&&nm(`Clipboard image handling failed: ${L.message}`)}catch(L){nm("Clipboard image handling failed.",L)}finally{Qt.current=!1}}},[A]),pn=ic(L=>{if(!n)return!1;if(L.name==="v"&&(L.ctrl||L.meta))return qn(),!0;if(L.name==="paste"&&L.isPasted&&em(L.sequence).length>0)return _t(L.sequence),!0;let V=Ie.visible&&nt.length>0;if(L.name==="tab"&&V){let ne=Ke();return ne&&St(ne),!0}if(L.ctrl&&L.name==="c")return v.length>0?(re(),C()):t?.(),!0;if(L.name==="escape")switch(KD({isAutocompleteVisible:V,hasText:v.length>0,timeSinceLastEscapeMs:Date.now()-p.current})){case"cancel-autocomplete":return K(),p.current=0,!0;case"clear-input":return p.current=0,re(),C(),!0;case"arm-clear":return p.current=Date.now(),!0;default:return!1}if(L.name==="up"){if(V)return me(),!0;if(L.ctrl)return X("up"),!0;if(v.length===0&&d){let ne=d();if(typeof ne=="string"&&ne.length>0)return O(ne),!0}if(nR(_.row,P.length,"up")){w(v);let ne=m();Xe(ne)}else X("up");return!0}if(L.name==="down"){if(V)return Re(),!0;if(L.ctrl)return X("down"),!0;if(nR(_.row,P.length,"down")){let ne=g();Xe(ne)}else X("down");return!0}if(L.name==="left"){let ne=T.getAbsoluteOffset(),F=lp(T.text,ne);return F?y(F.start):X("left"),!0}if(L.name==="right"){let ne=T.getAbsoluteOffset(),F=up(T.text,ne);return F?y(F.end):X("right"),!0}if(L.name==="home")return X("home"),!0;if(L.name==="end")return X("end"),!0;let H=XD(L);if(H)switch(H){case"move-home":return X("home"),!0;case"move-end":return X("end"),!0;case"undo":return de(),!0;case"redo":return he(),!0;case"kill-line-right":return _e(),!0;case"kill-line-left":return fe(),!0;case"delete-word-left":return Te(),!0;default:break}if(L.name==="backspace")return ee(),!0;if(L.name==="delete")return le(),!0;if(L.name==="return"||L.name==="newline")switch(zD({keyName:L.name,ctrl:L.ctrl,shift:L.shift,isAutocompleteVisible:V,isLineContinuation:!!P[_.row]?.endsWith("\\"),isPasting:k})){case"accept-completion-and-submit":{let F=Ve();if(F){let Ae=St(F);Vt(Ae)}else Vt();return!0}case"newline":return W(),!0;case"line-continuation":return ee(),W(),!0;default:return Vt(),!0}return L.insertable&&!L.ctrl&&!L.meta?(A(L.sequence,L.isPasted?{paste:!0}:void 0),!0):!1},[St,h,Ie.visible,ee,T,re,_.row,le,n,Re,K,me,Ve,Xe,Ke,_t,qn,P,fe,_e,X,y,g,m,W,t,d,he,C,w,O,Vt,nt.length,v.length,Te,k,de]);return{text:v,cursor:_,lines:P,isPasting:k,terminalFocused:n,editingMode:E,handleKey:pn}}o(rR,"usePromptInputController");var ys=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:d,onPasteFallback:p})=>{let{exit:h}=Yr(),{cursor:m,lines:g,handleKey:C,isPasting:w,terminalFocused:T,editingMode:v}=rR({onSubmit:e,onExit:h,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:u,onInputChange:d,onPasteFallback:p,onHistoryRecall:t,onPopPendingInputs:n});return Un(Sn.High,_=>C(_),[C]),gs(M,{flexDirection:"column",children:gs(Xp,{lines:g,cursorRow:m.row,cursorCol:m.col,prompt:i,placeholder:r,focus:s,terminalFocused:T,isPasting:w,editingMode:v,theme:"dark"})})},"InputPrompt"),oR=o(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,i]=iR(""),[s,a]=iR(0);Un(Sn.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=ae("dark");if(!r)return rm(M,{children:[rm(b,{color:c.colors.primary,children:[n," "]}),t&&gs(b,{dimColor:!0,children:t}),gs(b,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",d=[...r].slice(s+1).join("");return rm(M,{children:[rm(b,{color:c.colors.primary,children:[n," "]}),gs(b,{children:l}),gs(b,{backgroundColor:c.colors.primary,color:"#000000",children:u}),gs(b,{children:d})]})},"SimpleInputPrompt");import{jsx as Tt,jsxs as on}from"react/jsx-runtime";import{useState as aR,useEffect as cR}from"react";var sR=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],YD=80,im=new Set,yu=null;function qD(){let e=Array.from(im);for(let t of e)t()}o(qD,"dispatchSharedSpinnerTick");function JD(e){return im.add(e),yu===null&&(yu=setInterval(qD,YD)),()=>{im.delete(e),im.size===0&&yu!==null&&(clearInterval(yu),yu=null)}}o(JD,"subscribeToSharedSpinnerClock");function Su(e=!0){let[t,n]=aR(0);return cR(()=>{if(e)return JD(()=>{n(r=>r+1)})},[e]),t}o(Su,"useSharedSpinnerTick");var Vn=o(({color:e,theme:t})=>{let n=t??ae("dark"),i=Su(!0)%sR.length,s=e??n.colors.accent;return Tt(b,{color:s,children:sR[i]})},"Spinner");function QD(e){return e<=0?0:Math.round(e/4)}o(QD,"estimateOutputTokens");function ZD(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(ZD,"formatElapsedDuration");var lR=o(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??ae("dark");if(Su(e!==null),e===null)return null;let i=eB(Date.now()-e,t);return Tt(b,{color:r.colors.dim,wrap:"truncate",children:i})},"SpinnerStatsTail");function eB(e,t){let n=ZD(e),r=QD(t);return r>0?` (${n} \xB7 \u2193 ${r} tokens)`:` (${n})`}o(eB,"buildSpinnerStatsText");var lS=o(({label:e,dotCount:t=3,theme:n})=>{let r=n??ae("dark"),[i,s]=aR(1);cR(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(i);return on(M,{children:[e&&Tt(b,{color:r.colors.text,children:e}),Tt(b,{color:r.colors.accent,children:a})]})},"DotsIndicator"),uS=o(({progress:e,label:t,width:n=20,theme:r})=>{let i=r??ae("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&&Tt(M,{marginBottom:1,children:Tt(b,{color:i.colors.text,children:t})}),on(M,{children:[Tt(b,{color:i.colors.primary,children:l}),Tt(b,{dimColor:!0,children:u}),on(b,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),uR=o(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??ae("dark"),i=e??"Thinking";return on(M,{children:[t&&Tt(M,{marginRight:1,children:Tt(Vn,{theme:r})}),on(b,{color:r.colors.accent,children:[i,"\u2026"]})]})},"ThinkingIndicator"),dR=o(({message:e,subMessage:t,progress:n,type:r="spinner",compact:i=!1,theme:s})=>{let a=s??ae("dark"),c=e??"Loading";return i?on(M,{children:[Tt(Vn,{theme:a}),on(b,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?on(M,{flexDirection:"column",children:[Tt(uS,{progress:n,label:c,theme:a}),t&&Tt(M,{marginTop:1,children:Tt(b,{dimColor:!0,children:t})})]}):r==="dots"?on(M,{flexDirection:"column",children:[Tt(lS,{label:c,theme:a}),t&&Tt(M,{marginTop:1,children:Tt(b,{dimColor:!0,children:t})})]}):r==="simple"?on(M,{flexDirection:"column",children:[on(b,{color:a.colors.accent,children:[c,"\u2026"]}),t&&Tt(M,{marginTop:1,children:Tt(b,{dimColor:!0,children:t})}),n!==void 0&&Tt(M,{marginTop:1,children:on(b,{dimColor:!0,children:[n,"%"]})})]}):on(M,{flexDirection:"column",children:[on(M,{children:[Tt(Vn,{theme:a}),on(b,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&on(b,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&Tt(M,{marginTop:1,children:Tt(b,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as Ce,jsxs as Je,Fragment as IS}from"react/jsx-runtime";import{useEffect as GR,useMemo as Qr,memo as Gn}from"react";import*as xu from"node:path";function wu(e){if(nI(e)){let t=rI(e);return t?`[memory:${t}]`:"[memory]"}if(tB(e))return"[memory]"}o(wu,"memoryBadgeFor");function tB(e){let t=xu.resolve(e),n=qi("projects");if(!t.startsWith(n+xu.sep)&&t!==n)return!1;let i=t.slice(n.length+1).split(xu.sep);return i.length>=2&&i[1]==="memory"}o(tB,"isInsideAnyMemoryDir");function rt(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}o(rt,"truncateValue");function fR(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}o(fR,"extractFirstMeaningfulLine");function hR(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(hR,"splitDisplayToolName");function om(e){let{rolePrefix:t,toolLabel:n}=hR(e);return t?`${t} ${n}`:n}o(om,"normalizeDisplayToolName");function Tu(e){return hR(e).toolLabel}o(Tu,"stripRolePrefix");function sm(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}o(sm,"asRecord");function gR(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}o(gR,"readString");function $t(e,...t){for(let n of t){let r=gR(e?.[n]);if(r)return r}}o($t,"readFirstString");function qr(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(qr,"readNumber");function yR(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(yR,"readStringArray");function nB(e){if(typeof e=="string")return e.trim()||void 0;let t=sm(e);if(t)return gR(t.preview)??void 0}o(nB,"extractPreview");function pR(e){if(e)try{return sm(JSON.parse(e))}catch{return}}o(pR,"parsePreviewRecord");function Ue(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}o(Ue,"extractFieldFromPreview");function Jr(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}o(Jr,"extractNumberFromPreview");function SR(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(SR,"extractPathsFromPreview");function rB(e){let t=nB(e);if(typeof e=="string")return{record:pR(t),preview:t};let n=sm(e),r=pR(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}o(rB,"resolveInputRecord");function oc(e,t,n,r=!1){let i=$t(t,"path","target_path","targetPath")??Ue(n,"path")??Ue(n,"target_path")??Ue(n,"targetPath"),s=yR(t?.paths)??SR(n);if(r&&s?.length){if(s.length===1){let a=wu(s[0]);a&&e.push(a),e.push(rt(s[0]))}else e.push(`${s.length} files`);return}if(i){let a=wu(i);a&&e.push(a),e.push(rt(i));return}if(s?.length)if(s.length===1){let a=wu(s[0]);a&&e.push(a),e.push(rt(s[0]))}else e.push(`${s.length} files`)}o(oc,"pushPathSummary");function sc(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}o(sc,"pushNumericSummary");function dS(e,t,n){let r=$t(t,"baseRef","base_ref")??Ue(n,"baseRef")??Ue(n,"base_ref"),i=$t(t,"targetRef","target_ref")??Ue(n,"targetRef")??Ue(n,"target_ref");r&&i&&e.push(rt(`${r}...${i}`,88))}o(dS,"pushRangeSummary");function iB(e,t){let{record:n,preview:r}=rB(t),i=Tu(e).toLowerCase(),s=[];if(i.includes("changed_diff_bundle")){let a=yR(n?.paths)??SR(r);a?.length?(s.push(a.length===1?rt(a[0]):`${a.length} files`),a.length>1&&s.push(rt(a[0]))):oc(s,n,r,!0);let c=qr(n?.limit_per_path)??qr(n?.limitPerPath)??Jr(r,"limit_per_path")??Jr(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),dS(s,n,r),s}if(i.includes("changed_diff"))return oc(s,n,r),sc(s,"offset",qr(n?.offset)??Jr(r,"offset")),sc(s,"limit",qr(n?.limit)??Jr(r,"limit")),dS(s,n,r),s;if(i==="read"||i.includes("read_"))return oc(s,n,r),sc(s,"offset",qr(n?.offset)??Jr(r,"offset")),sc(s,"limit",qr(n?.limit)??Jr(r,"limit")),s;if(i.includes("changed_scope"))return oc(s,n,r,!0),dS(s,n,r),s;if(i.includes("repo_overview"))return oc(s,n,r),s;if(i.includes("bash")||i.includes("shell_command")){let a=$t(n,"command")??Ue(r,"command");return a&&s.push(`cmd=${rt(a,140)}`),s}if(i==="glob"||i.includes("glob_")){let a=$t(n,"pattern")??Ue(r,"pattern"),c=$t(n,"path","root","directory","cwd")??Ue(r,"path")??Ue(r,"root")??Ue(r,"directory")??Ue(r,"cwd");if(a&&s.push(`pattern=${rt(a,96)}`),c){let l=wu(c);l&&s.push(l),s.push(rt(c))}return s}if(i==="grep"||i.includes("grep_")){let a=$t(n,"pattern","query")??Ue(r,"pattern")??Ue(r,"query"),c=$t(n,"path","root","directory","cwd")??Ue(r,"path")??Ue(r,"root")??Ue(r,"directory")??Ue(r,"cwd");if(a&&s.push(`pattern=${rt(a,96)}`),c){let l=wu(c);l&&s.push(l),s.push(rt(c))}return s}if(i==="web_fetch"){let a=$t(n,"url")??Ue(r,"url"),c=$t(n,"provider_id","providerId")??Ue(r,"provider_id")??Ue(r,"providerId"),l=$t(n,"capability_id","capabilityId")??Ue(r,"capability_id")??Ue(r,"capabilityId");return a&&s.push(rt(a,120)),c&&s.push(`provider=${rt(c,48)}`),l&&s.push(`cap=${rt(l,48)}`),s}if(i==="mcp_describe"||i==="mcp_read_resource"){let a=$t(n,"id")??Ue(r,"id");return a&&s.push(rt(a,120)),s}if(i==="mcp_call"){let a=$t(n,"id")??Ue(r,"id"),c=sm(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(rt(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(i==="skill"){let a=$t(n,"skill","name")??Ue(r,"skill");return a&&s.push(rt(a,64)),s}if(i==="mcp_search"){let a=$t(n,"query")??Ue(r,"query"),c=$t(n,"server")??Ue(r,"server"),l=$t(n,"kind")??Ue(r,"kind"),u=qr(n?.limit)??Jr(r,"limit");return a&&s.push(`query=${rt(a,96)}`),c&&s.push(`server=${rt(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")??Ue(r,"query")??Ue(r,"pattern"),c=$t(n,"path","target_path","targetPath")??Ue(r,"path")??Ue(r,"target_path")??Ue(r,"targetPath"),l=$t(n,"provider_id","providerId")??Ue(r,"provider_id")??Ue(r,"providerId"),u=qr(n?.limit)??Jr(r,"limit");return a&&s.push(`query=${rt(a,96)}`),c&&s.push(rt(c,72)),l&&s.push(`provider=${rt(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return oc(s,n,r,!0),sc(s,"offset",qr(n?.offset)??Jr(r,"offset")),sc(s,"limit",qr(n?.limit)??Jr(r,"limit")),s}o(iB,"summarizeToolDetails");function wR(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(wR,"extractChangedDiffRange");function oB(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}o(oB,"extractDiffPreviewLine");function sB(e){let t=[],n=wR(e);if(n){let[i,s]=n.split("/");t.push(s?`Diff range: ${i} of ${s}`:`Diff range: ${n}`)}let r=oB(e);return r&&t.push(`Preview: ${rt(r,220)}`),t}o(sB,"formatChangedDiffExplanation");function aB(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: ${rt(r[1].trim(),220)}`),t}o(aB,"formatChangedDiffBundleExplanation");function xR(e,t){if(!t)return[];let n=Tu(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(rt(s[1].trim())),r}if(n.includes("changed_diff")){let i=t.match(/^Changed diff for\s+(.+)$/im);i?.[1]&&r.push(rt(i[1].trim()));let s=wR(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(rt(i[1].trim())),r}return[]}o(xR,"summarizeToolOutputDetails");function fS(e,t){let n=om(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}o(fS,"formatToolDetailSummary");function cB(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}o(cB,"formatDuration");function lB(e){switch(e.status){case z.Scheduled:return"scheduled";case z.Validating:return"validating";case z.AwaitingApproval:return"awaiting approval";case z.Executing:return"running";case z.Error:return"failed";case z.Cancelled:return"cancelled";default:return}}o(lB,"formatToolStatusDetail");function mR(e){switch(e.status){case z.Scheduled:return["Queued: waiting to start"];case z.Validating:return["Validating: checking inputs and policy"];case z.AwaitingApproval:return["Waiting: approval required before execution"];case z.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 z.Cancelled:return["Cancelled before completion"];default:return[]}}o(mR,"formatToolProgressExplanation");function pS(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}o(pS,"resolveToolExplanationTone");function uB(e){let t=fR(e.error),n=typeof e.output=="string"?fR(e.output):void 0,r=[];return t&&r.push(`Error: ${rt(t,220)}`),e.status===z.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${rt(n,220)}`),r}o(uB,"formatToolFailureExplanation");function mS(e){if(typeof e.output!="string"||!e.output.trim())return mR(e);let t=Tu(e.name).toLowerCase();return e.status===z.Error?uB(e):e.status!==z.Success?mR(e):t.includes("changed_diff_bundle")?aB(e.output):t.includes("changed_diff")?sB(e.output):[]}o(mS,"formatToolResultExplanation");function hS(e,t){return fS(e,iB(e,t))}o(hS,"formatToolSummary");function am(e){let t=typeof e.output=="string"?xR(e.name,e.output):[],n=t.length>0?fS(e.name,t):hS(e.name,e.input),r=lB(e),i=cB(e.startTime,e.endTime),s=e.status===z.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===z.Executing&&e.preview?e.preview:void 0,a=[r,s,i].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}o(am,"formatToolCallInlineText");function cm(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?xR(n.name,n.output):[],i=r.length>0?fS(n.name,r):hS(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(cm,"collapseToolCalls");function Cu(e){let t=am(e.tool);return e.count>1?`${t} x${e.count}`:t}o(Cu,"formatCollapsedToolInlineText");function lm(e,t,n){let r=hS(e,t);return r!==om(e)?`[Tools] ${r}`:n>0?`[Tools] ${om(e)} (${n} chars)`:`[Tools] ${om(e)}`}o(lm,"formatLiveToolLabel");function gS(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(gS,"countNewlines");function um(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=gS(e),l=gS(s),u=gS(a),d=Math.max(0,c-l-u);return`${s}
49
- \u2026 +${d} lines \u2026
50
- ${a}`}o(um,"truncateUserMessageForDisplay");var TR="(?:\x1B[[0-9;]*m)*",dB=new RegExp(`^(${TR})(?:[ \r]*
51
- )+`),fB=new RegExp(`(?:
52
- [ \r]*)+(${TR})$`);function yS(e){return e.replace(dB,"$1").replace(fB,"$1")}o(yS,"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 pB=new Set(["edit","write","multi_edit","insert_after_anchor"]),mB=20;function hB(e){return pB.has(Tu(e.name).trim().toLowerCase())}o(hB,"isMutationTool");function gB(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(gB,"classifyDiffLine");function yB(e,t,n,r,i){let s=[],a=!1;for(let p of n.split(/\r?\n/)){let{color:h,skip:m}=gB(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 d=i?u:u.slice(0,mB);return d.forEach((p,h)=>{De(e,`${t}-diff-${h}`,p.text,pt(r,4),{color:p.color,indent:4})}),!i&&u.length>d.length&&De(e,`${t}-diff-more`,`... (${u.length-d.length} more lines)`,pt(r,4),{color:"dim",indent:4}),!0}o(yB,"pushDiffRows");var CR=400,SB="... (thinking truncated; press Ctrl+O to inspect full reasoning)",IR=2e5,wB="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",kR=1e5,vR=120,xB=" \u2026 (Ctrl+O to expand)";function ER(){return process.env.KODAX_THINKING_COLLAPSE!=="0"}o(ER,"isThinkingCollapseEnabled");function TB(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>vR;return{summary:i?`${n.slice(0,vR).trimEnd()}\u2026`:n,hasMore:r||i}}o(TB,"buildCollapsedThinkingLine");function CB(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(CB,"normalizeManagedLiveActivityLabel");function Iu(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}o(Iu,"formatTimestamp");function MR(e){switch(e){case z.Scheduled:return"\u25CB";case z.Validating:return"\u25D0";case z.AwaitingApproval:return"\u23F8";case z.Executing:return"\u25CF";case z.Success:return"\u2713";case z.Error:return"\u2717";case z.Cancelled:return"\u2298";default:return"[tool]"}}o(MR,"getToolStatusIcon");function _R(e){switch(e){case z.Scheduled:case z.Validating:return"dim";case z.AwaitingApproval:return"accent";case z.Executing:return"primary";case z.Success:return"success";case z.Error:return"error";case z.Cancelled:return"dim";default:return"text"}}o(_R,"getToolStatusColor");function IB(e,t){let n=Math.max(1,t),r=e.split(`
53
- `),i=xn(r.length>0?r:[""],n,0,0);return i.visualLines.length>0?i.visualLines:[""]}o(IB,"wrapText");function SS(e,t,n,r=!1){if(n||r)return e.length>IR?`${e.slice(0,IR)}
48
+ `),{placeholder:W}=u.registerText(ee);l.insert(W,{paste:!0}),f({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(X,{paste:!1}),f({isPasting:_,editingMode:_?"pasting":"typing"}),_&&p()},[l,u,p,f]),C=qt(()=>{l.newline(),f({isPasting:!1,editingMode:"typing"})},[l,f]),w=qt(()=>{let X=l.getAbsoluteOffset(),y=lp(l.text,X);y?l.replaceRange(y.start,y.end,""):l.backspace(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),T=qt(()=>{let X=l.getAbsoluteOffset(),y=up(l.text,X);y?l.replaceRange(y.start,y.end,""):l.delete(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),v=qt(X=>{l.move(X),f()},[l,f]),A=qt(()=>{l.clear(),f({isPasting:!1,editingMode:"idle"})},[l,f]),D=qt(()=>{let X=l.undo();return X&&f(),X},[l,f]),k=qt(()=>{let X=l.redo();return X&&f(),X},[l,f]),E=qt(()=>{l.moveToEnd(),f()},[l,f]),P=qt(X=>{l.moveToAbsoluteOffset(X),f()},[l,f]),B=qt(()=>{l.killLineRight(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),$=qt(()=>{l.killLineLeft(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),G=qt(()=>{l.deleteWordLeft(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),re=qt(()=>{s.current&&(clearTimeout(s.current),s.current=null),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]);return HD(()=>()=>{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:re,setText:h,replaceRange:m,insert:g,newline:C,backspace:w,delete:T,move:v,moveToEnd:E,moveToOffset:P,killLineRight:B,killLineLeft:$,deleteWordLeft:G,clear:A,undo:D,redo:k}}o(Zp,"useTextBuffer");import{jsx as gs,jsxs as rm}from"react/jsx-runtime";import{useState as oR}from"react";import{useCallback as ic,useEffect as cS,useRef as tm}from"react";function eR(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(eR,"buildAutocompleteReplacement");import{readFile as KD}from"node:fs/promises";var zD=/\.(png|jpe?g|gif|webp|bmp)$/i;async function oS(e){if(e.length===0)return process.platform==="darwin"?tR():{kind:"text",text:""};let t=em(e);return t.length>0?XD(t,e):{kind:"text",text:e}}o(oS,"handleBracketedPaste");async function sS(){return tR()}o(sS,"triggerExplicitClipboardImage");async function tR(){let e;try{e=await vf()}catch(t){return{kind:"error",message:`Failed to read clipboard image: ${aS(t)}`}}return e?nR(e):{kind:"noop"}}o(tR,"readClipboardAsImagesOutcome");async function XD(e,t){let n=[],r=[];for(let i of e){let s;try{s=await KD(i)}catch(c){r.push(`Failed to read ${i}: ${aS(c)}`);continue}let a=await nR(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(XD,"readImagePathsAsOutcome");async function nR(e){try{let t=await If(e);return{kind:"images",blocks:[await bf(t)]}}catch(t){return t instanceof Cf?{kind:"error",message:t.message}:{kind:"error",message:`Failed to process pasted image: ${aS(t)}`}}}o(nR,"decodeBufferToOutcome");function em(e){return e.split(/ (?=\/|[A-Za-z]:\\)/).filter(n=>zD.test(n.trim()))}o(em,"extractImagePaths");function aS(e){return e instanceof Error?e.message:String(e)}o(aS,"describeError");function nm(e,t){ft({source:"repl:prompt-input",level:"warn",message:e,...t!==void 0?{detail:t}:{}})}o(nm,"reportPromptInputDiagnostic");var qD=500;function rR(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}o(rR,"shouldUseHistoryNavigation");function JD(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<qD?"clear-input":"arm-clear":"pass-through"}o(JD,"resolvePromptEscapeBehavior");function QD(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(QD,"resolvePromptEnterBehavior");function ZD(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(ZD,"resolvePromptEditingCommand");function iR({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=tm(0),{add:h,navigateUp:m,navigateDown:g,reset:C,saveTempInput:w}=Qp(),{buffer:T,text:v,cursor:A,lines:D,isPasting:k,editingMode:E,pasteStore:P,resetTransientState:B,setText:$,replaceRange:G,clear:re,move:X,moveToOffset:y,insert:_,backspace:ee,newline:W,delete:le,undo:de,redo:he,killLineRight:_e,killLineLeft:fe,deleteWordLeft:Te}=Zp({initialValue:r,onTextChange:c}),Pe=tm(0);cS(()=>{if(k)return;if(v.length<=1e4){Pe.current=0;return}if(v.length===Pe.current)return;let L=P.peekNextId(),{truncatedText:V,placeholderContent:H}=Bv(v,L);H&&(P.registerTruncatedText(H),Pe.current=V.length,$(V))},[v,k,P,$]);let te=mo(),oe=gu({cwd:i,gitRoot:s,enabled:a}),{state:Ie,suggestions:nt,handleInput:vt,handleTab:Ke,handleEnter:Ve,handleUp:me,handleDown:Re,handleEscape:K}=te??oe;cS(()=>{n||(p.current=0,B(),Ie.visible&&K())},[Ie.visible,n,K,B]);let We=tm(v);cS(()=>{a&&v!==We.current&&(We.current=v,vt(v,T.getAbsoluteOffset()))},[a,T,vt,v]);let St=ic(L=>{if(!L?.text)return;let V=eR(v,T.getAbsoluteOffset(),L),H=v.slice(0,V.start)+V.replacement+v.slice(V.end);return G(V.start,V.end,V.replacement),H},[T,G,v]),Vt=ic(L=>{let V=L??v;if(!V.trim())return;let H=P.expand(V),ne=new Set,F=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let ve of V.matchAll(F)){let ke=Number.parseInt(ve[2]??"0",10);Number.isFinite(ke)&&ke>0&&ne.add(ke)}let Ae=[];for(let ve of ne){let ke=P.get(ve);ke&&Ae.push(ke)}h(V,{pastedContents:Ae}),e({displayText:V,fullText:H,pastedContents:Ae}),re()},[h,re,e,P,v]),Xe=ic(L=>{if(L){if(L.pastedContents&&L.pastedContents.length>0){for(let V of L.pastedContents)P.adopt(V);u?.({text:L.text,pastedContents:[...L.pastedContents]})}$(L.text)}},[u,P,$]),_t=ic(async L=>{try{let V=await oS(L);if(V.kind==="images"){let H=V.blocks.map(ne=>`@${ne.path}`).join(" ");_(`${H} `,{paste:!1})}else V.kind==="error"&&(nm(`Paste image handling failed: ${V.message}`),_(L,{paste:!1}),l?.("Image paste failed; inserted as plain text."))}catch(V){nm("Paste image handling failed.",V)}},[_,l]),Qt=tm(!1),qn=ic(async()=>{if(!Qt.current){Qt.current=!0;try{let L=await sS();if(L.kind==="images"){let V=L.blocks.map(H=>`@${H.path}`).join(" ");_(`${V} `,{paste:!1})}else L.kind==="error"&&nm(`Clipboard image handling failed: ${L.message}`)}catch(L){nm("Clipboard image handling failed.",L)}finally{Qt.current=!1}}},[_]),pn=ic(L=>{if(!n)return!1;if(L.name==="v"&&(L.ctrl||L.meta))return qn(),!0;if(L.name==="paste"&&L.isPasted&&em(L.sequence).length>0)return _t(L.sequence),!0;let V=Ie.visible&&nt.length>0;if(L.name==="tab"&&V){let ne=Ke();return ne&&St(ne),!0}if(L.ctrl&&L.name==="c")return v.length>0?(re(),C()):t?.(),!0;if(L.name==="escape")switch(JD({isAutocompleteVisible:V,hasText:v.length>0,timeSinceLastEscapeMs:Date.now()-p.current})){case"cancel-autocomplete":return K(),p.current=0,!0;case"clear-input":return p.current=0,re(),C(),!0;case"arm-clear":return p.current=Date.now(),!0;default:return!1}if(L.name==="up"){if(V)return me(),!0;if(L.ctrl)return X("up"),!0;if(v.length===0&&f){let ne=f();if(typeof ne=="string"&&ne.length>0)return $(ne),!0}if(rR(A.row,D.length,"up")){w(v);let ne=m();Xe(ne)}else X("up");return!0}if(L.name==="down"){if(V)return Re(),!0;if(L.ctrl)return X("down"),!0;if(rR(A.row,D.length,"down")){let ne=g();Xe(ne)}else X("down");return!0}if(L.name==="left"){let ne=T.getAbsoluteOffset(),F=lp(T.text,ne);return F?y(F.start):X("left"),!0}if(L.name==="right"){let ne=T.getAbsoluteOffset(),F=up(T.text,ne);return F?y(F.end):X("right"),!0}if(L.name==="home")return X("home"),!0;if(L.name==="end")return X("end"),!0;let H=ZD(L);if(H)switch(H){case"move-home":return X("home"),!0;case"move-end":return X("end"),!0;case"undo":return de(),!0;case"redo":return he(),!0;case"kill-line-right":return _e(),!0;case"kill-line-left":return fe(),!0;case"delete-word-left":return Te(),!0;default:break}if(L.name==="backspace")return ee(),!0;if(L.name==="delete")return le(),!0;if(L.name==="return"||L.name==="newline")switch(QD({keyName:L.name,ctrl:L.ctrl,shift:L.shift,isAutocompleteVisible:V,isLineContinuation:!!D[A.row]?.endsWith("\\"),isPasting:k})){case"accept-completion-and-submit":{let F=Ve();if(F){let Ae=St(F);Vt(Ae)}else Vt();return!0}case"newline":return W(),!0;case"line-continuation":return ee(),W(),!0;default:return Vt(),!0}return L.insertable&&!L.ctrl&&!L.meta?(_(L.sequence,L.isPasted?{paste:!0}:void 0),!0):!1},[St,h,Ie.visible,ee,T,re,A.row,le,n,Re,K,me,Ve,Xe,Ke,_t,qn,D,fe,_e,X,y,g,m,W,t,f,he,C,w,$,Vt,nt.length,v.length,Te,k,de]);return{text:v,cursor:A,lines:D,isPasting:k,terminalFocused:n,editingMode:E,handleKey:pn}}o(iR,"usePromptInputController");var ys=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}=Yr(),{cursor:m,lines:g,handleKey:C,isPasting:w,terminalFocused:T,editingMode:v}=iR({onSubmit:e,onExit:h,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:u,onInputChange:f,onPasteFallback:p,onHistoryRecall:t,onPopPendingInputs:n});return Un(Sn.High,A=>C(A),[C]),gs(M,{flexDirection:"column",children:gs(Xp,{lines:g,cursorRow:m.row,cursorCol:m.col,prompt:i,placeholder:r,focus:s,terminalFocused:T,isPasting:w,editingMode:v,theme:"dark"})})},"InputPrompt"),sR=o(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,i]=oR(""),[s,a]=oR(0);Un(Sn.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=ae("dark");if(!r)return rm(M,{children:[rm(b,{color:c.colors.primary,children:[n," "]}),t&&gs(b,{dimColor:!0,children:t}),gs(b,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",f=[...r].slice(s+1).join("");return rm(M,{children:[rm(b,{color:c.colors.primary,children:[n," "]}),gs(b,{children:l}),gs(b,{backgroundColor:c.colors.primary,color:"#000000",children:u}),gs(b,{children:f})]})},"SimpleInputPrompt");import{jsx as Tt,jsxs as on}from"react/jsx-runtime";import{useState as cR,useEffect as lR}from"react";var aR=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],eB=80,im=new Set,Su=null;function tB(){let e=Array.from(im);for(let t of e)t()}o(tB,"dispatchSharedSpinnerTick");function nB(e){return im.add(e),Su===null&&(Su=setInterval(tB,eB)),()=>{im.delete(e),im.size===0&&Su!==null&&(clearInterval(Su),Su=null)}}o(nB,"subscribeToSharedSpinnerClock");function wu(e=!0){let[t,n]=cR(0);return lR(()=>{if(e)return nB(()=>{n(r=>r+1)})},[e]),t}o(wu,"useSharedSpinnerTick");var Vn=o(({color:e,theme:t})=>{let n=t??ae("dark"),i=wu(!0)%aR.length,s=e??n.colors.accent;return Tt(b,{color:s,children:aR[i]})},"Spinner");function rB(e){return e<=0?0:Math.round(e/4)}o(rB,"estimateOutputTokens");function iB(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(iB,"formatElapsedDuration");var uR=o(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??ae("dark");if(wu(e!==null),e===null)return null;let i=oB(Date.now()-e,t);return Tt(b,{color:r.colors.dim,wrap:"truncate",children:i})},"SpinnerStatsTail");function oB(e,t){let n=iB(e),r=rB(t);return r>0?` (${n} \xB7 \u2193 ${r} tokens)`:` (${n})`}o(oB,"buildSpinnerStatsText");var lS=o(({label:e,dotCount:t=3,theme:n})=>{let r=n??ae("dark"),[i,s]=cR(1);lR(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(i);return on(M,{children:[e&&Tt(b,{color:r.colors.text,children:e}),Tt(b,{color:r.colors.accent,children:a})]})},"DotsIndicator"),uS=o(({progress:e,label:t,width:n=20,theme:r})=>{let i=r??ae("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&&Tt(M,{marginBottom:1,children:Tt(b,{color:i.colors.text,children:t})}),on(M,{children:[Tt(b,{color:i.colors.primary,children:l}),Tt(b,{dimColor:!0,children:u}),on(b,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),dR=o(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??ae("dark"),i=e??"Thinking";return on(M,{children:[t&&Tt(M,{marginRight:1,children:Tt(Vn,{theme:r})}),on(b,{color:r.colors.accent,children:[i,"\u2026"]})]})},"ThinkingIndicator"),fR=o(({message:e,subMessage:t,progress:n,type:r="spinner",compact:i=!1,theme:s})=>{let a=s??ae("dark"),c=e??"Loading";return i?on(M,{children:[Tt(Vn,{theme:a}),on(b,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?on(M,{flexDirection:"column",children:[Tt(uS,{progress:n,label:c,theme:a}),t&&Tt(M,{marginTop:1,children:Tt(b,{dimColor:!0,children:t})})]}):r==="dots"?on(M,{flexDirection:"column",children:[Tt(lS,{label:c,theme:a}),t&&Tt(M,{marginTop:1,children:Tt(b,{dimColor:!0,children:t})})]}):r==="simple"?on(M,{flexDirection:"column",children:[on(b,{color:a.colors.accent,children:[c,"\u2026"]}),t&&Tt(M,{marginTop:1,children:Tt(b,{dimColor:!0,children:t})}),n!==void 0&&Tt(M,{marginTop:1,children:on(b,{dimColor:!0,children:[n,"%"]})})]}):on(M,{flexDirection:"column",children:[on(M,{children:[Tt(Vn,{theme:a}),on(b,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&on(b,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&Tt(M,{marginTop:1,children:Tt(b,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as Ce,jsxs as Je,Fragment as CS}from"react/jsx-runtime";import{useEffect as qR,useMemo as Qr,memo as Gn}from"react";import*as Tu from"node:path";function xu(e){if(rI(e)){let t=iI(e);return t?`[memory:${t}]`:"[memory]"}if(sB(e))return"[memory]"}o(xu,"memoryBadgeFor");function sB(e){let t=Tu.resolve(e),n=qi("projects");if(!t.startsWith(n+Tu.sep)&&t!==n)return!1;let i=t.slice(n.length+1).split(Tu.sep);return i.length>=2&&i[1]==="memory"}o(sB,"isInsideAnyMemoryDir");function rt(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}o(rt,"truncateValue");function pR(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}o(pR,"extractFirstMeaningfulLine");function gR(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(gR,"splitDisplayToolName");function om(e){let{rolePrefix:t,toolLabel:n}=gR(e);return t?`${t} ${n}`:n}o(om,"normalizeDisplayToolName");function Cu(e){return gR(e).toolLabel}o(Cu,"stripRolePrefix");function sm(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}o(sm,"asRecord");function yR(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}o(yR,"readString");function Ot(e,...t){for(let n of t){let r=yR(e?.[n]);if(r)return r}}o(Ot,"readFirstString");function qr(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(qr,"readNumber");function SR(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(SR,"readStringArray");function aB(e){if(typeof e=="string")return e.trim()||void 0;let t=sm(e);if(t)return yR(t.preview)??void 0}o(aB,"extractPreview");function mR(e){if(e)try{return sm(JSON.parse(e))}catch{return}}o(mR,"parsePreviewRecord");function Ue(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}o(Ue,"extractFieldFromPreview");function Jr(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}o(Jr,"extractNumberFromPreview");function wR(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(wR,"extractPathsFromPreview");function cB(e){let t=aB(e);if(typeof e=="string")return{record:mR(t),preview:t};let n=sm(e),r=mR(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}o(cB,"resolveInputRecord");function oc(e,t,n,r=!1){let i=Ot(t,"path","target_path","targetPath")??Ue(n,"path")??Ue(n,"target_path")??Ue(n,"targetPath"),s=SR(t?.paths)??wR(n);if(r&&s?.length){if(s.length===1){let a=xu(s[0]);a&&e.push(a),e.push(rt(s[0]))}else e.push(`${s.length} files`);return}if(i){let a=xu(i);a&&e.push(a),e.push(rt(i));return}if(s?.length)if(s.length===1){let a=xu(s[0]);a&&e.push(a),e.push(rt(s[0]))}else e.push(`${s.length} files`)}o(oc,"pushPathSummary");function sc(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}o(sc,"pushNumericSummary");function dS(e,t,n){let r=Ot(t,"baseRef","base_ref")??Ue(n,"baseRef")??Ue(n,"base_ref"),i=Ot(t,"targetRef","target_ref")??Ue(n,"targetRef")??Ue(n,"target_ref");r&&i&&e.push(rt(`${r}...${i}`,88))}o(dS,"pushRangeSummary");function lB(e,t){let{record:n,preview:r}=cB(t),i=Cu(e).toLowerCase(),s=[];if(i.includes("changed_diff_bundle")){let a=SR(n?.paths)??wR(r);a?.length?(s.push(a.length===1?rt(a[0]):`${a.length} files`),a.length>1&&s.push(rt(a[0]))):oc(s,n,r,!0);let c=qr(n?.limit_per_path)??qr(n?.limitPerPath)??Jr(r,"limit_per_path")??Jr(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),dS(s,n,r),s}if(i.includes("changed_diff"))return oc(s,n,r),sc(s,"offset",qr(n?.offset)??Jr(r,"offset")),sc(s,"limit",qr(n?.limit)??Jr(r,"limit")),dS(s,n,r),s;if(i==="read"||i.includes("read_"))return oc(s,n,r),sc(s,"offset",qr(n?.offset)??Jr(r,"offset")),sc(s,"limit",qr(n?.limit)??Jr(r,"limit")),s;if(i.includes("changed_scope"))return oc(s,n,r,!0),dS(s,n,r),s;if(i.includes("repo_overview"))return oc(s,n,r),s;if(i.includes("bash")||i.includes("shell_command")){let a=Ot(n,"command")??Ue(r,"command");return a&&s.push(`cmd=${rt(a,140)}`),s}if(i==="glob"||i.includes("glob_")){let a=Ot(n,"pattern")??Ue(r,"pattern"),c=Ot(n,"path","root","directory","cwd")??Ue(r,"path")??Ue(r,"root")??Ue(r,"directory")??Ue(r,"cwd");if(a&&s.push(`pattern=${rt(a,96)}`),c){let l=xu(c);l&&s.push(l),s.push(rt(c))}return s}if(i==="grep"||i.includes("grep_")){let a=Ot(n,"pattern","query")??Ue(r,"pattern")??Ue(r,"query"),c=Ot(n,"path","root","directory","cwd")??Ue(r,"path")??Ue(r,"root")??Ue(r,"directory")??Ue(r,"cwd");if(a&&s.push(`pattern=${rt(a,96)}`),c){let l=xu(c);l&&s.push(l),s.push(rt(c))}return s}if(i==="web_fetch"){let a=Ot(n,"url")??Ue(r,"url"),c=Ot(n,"provider_id","providerId")??Ue(r,"provider_id")??Ue(r,"providerId"),l=Ot(n,"capability_id","capabilityId")??Ue(r,"capability_id")??Ue(r,"capabilityId");return a&&s.push(rt(a,120)),c&&s.push(`provider=${rt(c,48)}`),l&&s.push(`cap=${rt(l,48)}`),s}if(i==="mcp_describe"||i==="mcp_read_resource"){let a=Ot(n,"id")??Ue(r,"id");return a&&s.push(rt(a,120)),s}if(i==="mcp_call"){let a=Ot(n,"id")??Ue(r,"id"),c=sm(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(rt(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(i==="skill"){let a=Ot(n,"skill","name")??Ue(r,"skill");return a&&s.push(rt(a,64)),s}if(i==="mcp_search"){let a=Ot(n,"query")??Ue(r,"query"),c=Ot(n,"server")??Ue(r,"server"),l=Ot(n,"kind")??Ue(r,"kind"),u=qr(n?.limit)??Jr(r,"limit");return a&&s.push(`query=${rt(a,96)}`),c&&s.push(`server=${rt(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=Ot(n,"query","pattern")??Ue(r,"query")??Ue(r,"pattern"),c=Ot(n,"path","target_path","targetPath")??Ue(r,"path")??Ue(r,"target_path")??Ue(r,"targetPath"),l=Ot(n,"provider_id","providerId")??Ue(r,"provider_id")??Ue(r,"providerId"),u=qr(n?.limit)??Jr(r,"limit");return a&&s.push(`query=${rt(a,96)}`),c&&s.push(rt(c,72)),l&&s.push(`provider=${rt(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return oc(s,n,r,!0),sc(s,"offset",qr(n?.offset)??Jr(r,"offset")),sc(s,"limit",qr(n?.limit)??Jr(r,"limit")),s}o(lB,"summarizeToolDetails");function xR(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(xR,"extractChangedDiffRange");function uB(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}o(uB,"extractDiffPreviewLine");function dB(e){let t=[],n=xR(e);if(n){let[i,s]=n.split("/");t.push(s?`Diff range: ${i} of ${s}`:`Diff range: ${n}`)}let r=uB(e);return r&&t.push(`Preview: ${rt(r,220)}`),t}o(dB,"formatChangedDiffExplanation");function fB(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: ${rt(r[1].trim(),220)}`),t}o(fB,"formatChangedDiffBundleExplanation");function TR(e,t){if(!t)return[];let n=Cu(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(rt(s[1].trim())),r}if(n.includes("changed_diff")){let i=t.match(/^Changed diff for\s+(.+)$/im);i?.[1]&&r.push(rt(i[1].trim()));let s=xR(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(rt(i[1].trim())),r}return[]}o(TR,"summarizeToolOutputDetails");function fS(e,t){let n=om(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}o(fS,"formatToolDetailSummary");function pB(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}o(pB,"formatDuration");function mB(e){switch(e.status){case z.Scheduled:return"scheduled";case z.Validating:return"validating";case z.AwaitingApproval:return"awaiting approval";case z.Executing:return"running";case z.Error:return"failed";case z.Cancelled:return"cancelled";default:return}}o(mB,"formatToolStatusDetail");function hR(e){switch(e.status){case z.Scheduled:return["Queued: waiting to start"];case z.Validating:return["Validating: checking inputs and policy"];case z.AwaitingApproval:return["Waiting: approval required before execution"];case z.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 z.Cancelled:return["Cancelled before completion"];default:return[]}}o(hR,"formatToolProgressExplanation");function pS(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}o(pS,"resolveToolExplanationTone");function hB(e){let t=pR(e.error),n=typeof e.output=="string"?pR(e.output):void 0,r=[];return t&&r.push(`Error: ${rt(t,220)}`),e.status===z.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${rt(n,220)}`),r}o(hB,"formatToolFailureExplanation");function mS(e){if(typeof e.output!="string"||!e.output.trim())return hR(e);let t=Cu(e.name).toLowerCase();return e.status===z.Error?hB(e):e.status!==z.Success?hR(e):t.includes("changed_diff_bundle")?fB(e.output):t.includes("changed_diff")?dB(e.output):[]}o(mS,"formatToolResultExplanation");function hS(e,t){return fS(e,lB(e,t))}o(hS,"formatToolSummary");function am(e){let t=typeof e.output=="string"?TR(e.name,e.output):[],n=t.length>0?fS(e.name,t):hS(e.name,e.input),r=mB(e),i=pB(e.startTime,e.endTime),s=e.status===z.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===z.Executing&&e.preview?e.preview:void 0,a=[r,s,i].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}o(am,"formatToolCallInlineText");function cm(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?TR(n.name,n.output):[],i=r.length>0?fS(n.name,r):hS(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(cm,"collapseToolCalls");function Iu(e){let t=am(e.tool);return e.count>1?`${t} x${e.count}`:t}o(Iu,"formatCollapsedToolInlineText");function lm(e,t,n){let r=hS(e,t);return r!==om(e)?`[Tools] ${r}`:n>0?`[Tools] ${om(e)} (${n} chars)`:`[Tools] ${om(e)}`}o(lm,"formatLiveToolLabel");function gS(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(gS,"countNewlines");function um(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=gS(e),l=gS(s),u=gS(a),f=Math.max(0,c-l-u);return`${s}
49
+ \u2026 +${f} lines \u2026
50
+ ${a}`}o(um,"truncateUserMessageForDisplay");var CR="(?:\x1B[[0-9;]*m)*",gB=new RegExp(`^(${CR})(?:[ \r]*
51
+ )+`),yB=new RegExp(`(?:
52
+ [ \r]*)+(${CR})$`);function yS(e){return e.replace(gB,"$1").replace(yB,"$1")}o(yS,"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 SB=new Set(["edit","write","multi_edit","insert_after_anchor"]),wB=20;function xB(e){return SB.has(Cu(e.name).trim().toLowerCase())}o(xB,"isMutationTool");function TB(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(TB,"classifyDiffLine");function CB(e,t,n,r,i){let s=[],a=!1;for(let p of n.split(/\r?\n/)){let{color:h,skip:m}=TB(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,wB);return f.forEach((p,h)=>{De(e,`${t}-diff-${h}`,p.text,pt(r,4),{color:p.color,indent:4})}),!i&&u.length>f.length&&De(e,`${t}-diff-more`,`... (${u.length-f.length} more lines)`,pt(r,4),{color:"dim",indent:4}),!0}o(CB,"pushDiffRows");var IR=400,IB="... (thinking truncated; press Ctrl+O to inspect full reasoning)",vR=2e5,vB="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",ER=1e5,bR=120,bB=" \u2026 (Ctrl+O to expand)";function MR(){return process.env.KODAX_THINKING_COLLAPSE!=="0"}o(MR,"isThinkingCollapseEnabled");function RB(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>bR;return{summary:i?`${n.slice(0,bR).trimEnd()}\u2026`:n,hasMore:r||i}}o(RB,"buildCollapsedThinkingLine");function kB(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(kB,"normalizeManagedLiveActivityLabel");function vu(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}o(vu,"formatTimestamp");function _R(e){switch(e){case z.Scheduled:return"\u25CB";case z.Validating:return"\u25D0";case z.AwaitingApproval:return"\u23F8";case z.Executing:return"\u25CF";case z.Success:return"\u2713";case z.Error:return"\u2717";case z.Cancelled:return"\u2298";default:return"[tool]"}}o(_R,"getToolStatusIcon");function AR(e){switch(e){case z.Scheduled:case z.Validating:return"dim";case z.AwaitingApproval:return"accent";case z.Executing:return"primary";case z.Success:return"success";case z.Error:return"error";case z.Cancelled:return"dim";default:return"text"}}o(AR,"getToolStatusColor");function EB(e,t){let n=Math.max(1,t),r=e.split(`
53
+ `),i=xn(r.length>0?r:[""],n,0,0);return i.visualLines.length>0?i.visualLines:[""]}o(EB,"wrapText");function SS(e,t,n,r=!1){if(n||r)return e.length>vR?`${e.slice(0,vR)}
54
54
 
55
- ${wB}`:e;let i=e.split(/\r?\n/),s=i.length>t,a=s?i.slice(0,t).join(`
56
- `):e,c=a.length>CR,l=c?a.slice(0,CR):a;return!s&&!c?e:`${l}
55
+ ${vB}`:e;let i=e.split(/\r?\n/),s=i.length>t,a=s?i.slice(0,t).join(`
56
+ `):e,c=a.length>IR,l=c?a.slice(0,IR):a;return!s&&!c?e:`${l}
57
57
 
58
- ${SB}`}o(SS,"buildThinkingPreview");function vB(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user")return t;return 0}o(vB,"findActiveRoundStartIndex");function De(e,t,n,r,i){let s=jt(n),a=IB(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(De,"pushWrappedRows");function ac(e,t){e.push({key:t,text:" "})}o(ac,"pushBlankRow");function pt(e,t=0){return Math.max(20,e-t)}o(pt,"getBodyWidth");function bB(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(bB,"buildToolInputPreview");function RB(e,t,n,r,i,s=!1,a=!1){De(e,`${t}-tool-${n.id}-main`,`${MR(n.status)} ${Cu({tool:n,count:r})}`,pt(i,2),{color:_R(n.status),indent:2,bold:n.status===z.Executing}),mS(n).forEach((u,d)=>{let p=pS(u);De(e,`${t}-tool-${n.id}-explanation-${d}`,u,pt(i,4),{color:p,indent:4})});let l=n.status===z.Success&&typeof n.output=="string"&&n.output.trim().length>0&&hB(n)&&yB(e,`${t}-tool-${n.id}`,n.output,i,a);if(s){let u=bB(n),d=a?u:u.slice(0,6);d.forEach((p,h)=>{De(e,`${t}-tool-${n.id}-input-${h}`,p,pt(i,4),{color:"dim",indent:4})}),!a&&u.length>d.length&&De(e,`${t}-tool-${n.id}-input-more`,`... (${u.length-d.length} more lines)`,pt(i,4),{color:"dim",indent:4})}if(s&&!l&&typeof n.output=="string"&&n.output.trim()){let u=n.output.trim().split(/\r?\n/),d=a?u:u.slice(0,8);d.forEach((h,m)=>{De(e,`${t}-tool-${n.id}-output-${m}`,h,pt(i,4),{color:"dim",indent:4})});let p=u.length;!a&&p>d.length&&De(e,`${t}-tool-${n.id}-output-more`,`... (${p-d.length} more lines)`,pt(i,4),{color:"dim",indent:4})}}o(RB,"buildToolRows");function kB(e,t,n,r){let i=n.status===z.Executing,s=i?"":`${MR(n.status)} `;De(e,`${t}-tool-${n.id}-main`,`${s}${Cu({tool:n,count:1})}`,pt(r,2),{color:_R(n.status),indent:2,bold:i,spinner:i}),mS(n).forEach((c,l)=>{let u=pS(c);De(e,`${t}-tool-${n.id}-explanation-${l}`,c,pt(r,4),{color:u,indent:4})})}o(kB,"buildLiveToolRows");function AR(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:d=[],toolInputCharCount:p=0,toolInputContent:h="",iterationHistory:m=[],currentIteration:g=1,isCompacting:C=!1,managedAgentMode:w,managedPhase:T,managedHarnessProfile:v,managedWorkerTitle:_,managedRound:P,managedMaxRounds:k,lastLiveActivityLabel:E,liveStatusLines:$=[],currentTodoActiveForm:B,showFullThinking:O=!1,showDetailedTools:G=!1,showAllContent:re=!1,showLiveProgressRows:X=!0}=e,y=[];for(let A of t)switch(A.type){case"user":De(y,`${A.id}-header`,`You [${Iu(A.timestamp)}]`,n,{color:"primary",bold:!0,itemId:A.id}),De(y,`${A.id}-body`,um(A.text),pt(n,2),{color:"text",indent:2,itemId:A.id}),y.push({key:`${A.id}-blank`,text:" ",itemId:A.id});break;case"assistant":{let ee=yS(re?A.text:A.compactText??A.text);De(y,`${A.id}-header`,`Assistant [${Iu(A.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:A.isStreaming,itemId:A.id}),De(y,`${A.id}-body`,ee,pt(n,2),{color:"text",indent:2,itemId:A.id}),y.push({key:`${A.id}-blank`,text:" ",itemId:A.id});break}case"system":De(y,`${A.id}-header`,`System [${Iu(A.timestamp)}]`,n,{color:"dim",bold:!0,itemId:A.id}),De(y,`${A.id}-body`,A.text,pt(n,2),{color:"dim",indent:2,itemId:A.id}),y.push({key:`${A.id}-blank`,text:" ",itemId:A.id});break;case"tool_group":De(y,`${A.id}-header`,`Tools [${Iu(A.timestamp)}]`,n,{color:"accent",bold:!0,itemId:A.id}),cm(A.tools).forEach(ee=>RB(y,A.id,ee.tool,ee.count,n,G,re)),y.push({key:`${A.id}-blank`,text:" ",itemId:A.id});break;case"thinking":{De(y,`${A.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:A.id});let ee=ER()&&!O&&!re?TB(A.compactText??A.text):void 0;if(ee?.hasMore){De(y,`${A.id}-body`,`${ee.summary}${xB}`,pt(n,2),{color:"thinking",indent:2,italic:!0,itemId:A.id}),y.push({key:`${A.id}-blank`,text:" ",itemId:A.id});break}let W=re?SS(A.text,i,O,re):A.compactText??SS(A.text,i,O,re);De(y,`${A.id}-body`,W,pt(n,2),{color:"thinking",indent:2,italic:!0,itemId:A.id}),y.push({key:`${A.id}-blank`,text:" ",itemId:A.id});break}case"error":De(y,`${A.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:A.id}),De(y,`${A.id}-body`,A.text,pt(n,2),{color:"error",indent:2,itemId:A.id}),y.push({key:`${A.id}-blank`,text:" ",itemId:A.id});break;case"info":De(y,`${A.id}-body`,`${A.icon??"\u2139"} ${yS(re?A.text:A.compactText??A.text)}`,n,{color:"info",itemId:A.id}),y.push({key:`${A.id}-blank`,text:" ",itemId:A.id});break;case"event":De(y,`${A.id}-body`,`${A.icon??">"} ${re?A.text:A.compactText??A.text}`,n,{color:"text",itemId:A.id}),y.push({key:`${A.id}-blank`,text:" ",itemId:A.id});break;case"hint":De(y,`${A.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:A.id}),De(y,`${A.id}-body`,A.text,pt(n,2),{color:"dim",indent:2,itemId:A.id}),y.push({key:`${A.id}-blank`,text:" ",itemId:A.id});break;case"sidecar":{let ee=A.delivery==="budget-exhausted"?"\u26A1 Sidecar Verifier \u2014 budget exhausted":A.verdict==="blocked"?"\u26A1 Sidecar Verifier \u2014 blocked":"\u26A1 Sidecar Verifier \u2014 revise";De(y,`${A.id}-header`,`${ee} [${Iu(A.timestamp)}]`,n,{color:"warning",bold:!0,itemId:A.id}),De(y,`${A.id}-body`,A.text,pt(n,2),{color:"dim",indent:2,itemId:A.id}),y.push({key:`${A.id}-blank`,text:" ",itemId:A.id});break}default:break}if(X&&m.length>0&&(m.forEach(A=>{if(De(y,`iteration-${A.iteration}-header`,`\u2500\u2500 Round ${A.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),A.thinkingSummary){let ee=A.thinkingLength>60?` (${A.thinkingLength} chars total)`:"";De(y,`iteration-${A.iteration}-thinking`,`\u{1F4AD} ${A.thinkingSummary}${ee}`,pt(n,1),{color:"thinking",indent:1,italic:!0})}if(A.response){let ee=A.response.slice(0,200);De(y,`iteration-${A.iteration}-response`,ee,pt(n,1),{color:"text",indent:1}),A.response.length>200&&De(y,`iteration-${A.iteration}-response-more`,`... (${A.response.length} chars total)`,pt(n,1),{color:"dim",indent:1})}A.toolsUsed.length>0&&De(y,`iteration-${A.iteration}-tools`,`* tools: ${A.toolsUsed.join(", ")}`,pt(n,1),{color:"accent",indent:1}),ac(y,`iteration-${A.iteration}-blank`)}),De(y,"iteration-current-header",`\u2500\u2500 Round ${g} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),ac(y,"iteration-current-blank")),r&&c){let A=SS(c,i,O,re);De(y,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),De(y,"thinking-stream-body",A,pt(n,2),{color:"thinking",indent:2,italic:!0}),ac(y,"thinking-stream-blank")}if(r){let A="Thinking",ee="",W=CB(E,_),le=_??"Scout",de=T==="routing"?`[${w?w.toUpperCase():"AMA"} Routing] `:T==="preflight"?`[${w?w.toUpperCase():"AMA"} ${le}] `:T==="verifying"?`[${w?w.toUpperCase():"AMA"} Verifying] `:v?`[${w?w.toUpperCase():"AMA"} ${_??"Worker"}] `:"",he=d.filter(te=>te.status===z.Executing).length,_e=d.filter(te=>te.status===z.Success).length,fe=d.filter(te=>te.status===z.Error).length,Te=d.filter(te=>te.status===z.Cancelled).length,Pe=d.length>0&&(he>0||!l);if(C)A="Compacting";else if(T==="verifying")ee=de,A="checking agent output";else if(Pe){let te=[];if(he>0&&te.push(`${he} running`),_e>0&&te.push(`${_e} done`),fe>0&&te.push(`${fe} error`),Te>0&&te.push(`${Te} cancelled`),te.length===0&&te.push(`${d.length} tools`),De(y,"loading-tools-header",`${de}[Tools] ${te.join(", ")}`,n,{color:"primary",bold:!0,spinner:he>0}),d.forEach(oe=>{kB(y,"loading-tools",oe,n)}),ac(y,"loading-tools-blank"),he>0&&!l&&!X)return y}else if(B)ee=de||"[Plan] ",A=B;else if(u)ee=de||"[Tool] ",A=W?.startsWith("[Tools]")?W:lm(u,h,p);else if(s){ee=de||"[Thinking] ";let te=P&&k&&P>1?` round ${P}/${k}`:"";A=a>0?`${a} chars${te}`:W?`${W}${te}`:`processing${te}`}else W&&(A=W);X&&De(y,"loading-indicator",`${ee}${A}...`,n,{color:"accent",spinner:!0})}if(X&&$.length>0&&(De(y,"live-status-header","Live status",n,{color:"dim",bold:!0}),$.forEach((A,ee)=>{De(y,`live-status-${ee}`,A,pt(n,2),{color:"dim",indent:2})}),ac(y,"live-status-blank")),l){let A=l.lastIndexOf(`
59
- `),ee=A>=0?l.slice(0,A+1):"";ee.length>0&&(De(y,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),De(y,"streaming-body",ee,pt(n,2),{color:"text",indent:2}),ac(y,"streaming-blank"))}return y}o(AR,"buildTranscriptRows");function EB(e,t,n=1e3,r=!1,i=!1,s=!1){return cc(e,t,n,r,void 0,i,s)}o(EB,"buildStaticTranscriptSections");var bR=new WeakMap,RR=new Set(["thinking","tool_group"]);function MB(){return process.env.KODAX_TRANSCRIPT_TIGHT!=="0"}o(MB,"isTightRunSpacingEnabled");function _B(e,t){return MB()?t.map((n,r)=>{let i=e[r],s=e[r+1];if(!i||!s||!RR.has(i.type)||!RR.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(_B,"suppressTightRunBlanks");function cc(e,t,n=1e3,r=!1,i,s=!1,a=!1){let c=e.map(l=>{let u=r||!!i?.has(l.id),d=`${t}|${n}|${s?1:0}|${u?1:0}|${ER()?1:0}|${a?1:0}`,p=bR.get(l);if(p!==void 0&&p.sig===d)return p.section;let h={key:l.id,rows:AR({items:[l],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:u,showFullThinking:a})};return bR.set(l,{sig:d,section:h}),h});return _B(e,c)}o(cc,"buildHistoryItemTranscriptSections");function AB(e,t){return{key:e,rows:AR(t)}}o(AB,"buildDynamicTranscriptSection");function dm(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=vB(t),u=t.slice(0,l),d=t.slice(l);return{staticSections:EB(u,n,r,i,s,a),activeItems:d}}o(dm,"buildTranscriptStaticPortion");function fm(e){let{activeItems:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:i=!1,showAllContent:s=!1,showFullThinking:a=!1,expandedItemKeys:c,...l}=e,u=cc(t,n,r,i,c,s,a),d=AB("active-pending",{...l,items:[],managedLiveEvents:[],lastLiveActivityLabel:l.lastLiveActivityLabel,viewportWidth:n,maxLines:r,showAllContent:s,showDetailedTools:i,showFullThinking:a,expandedItemKeys:c}),p=d.rows.length>0?[d]:[];return{sections:u,previewSections:p}}o(fm,"buildTranscriptDynamicPortion");function pm(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:Ss(t.sections),previewSections:t.previewSections,previewRows:Ss(t.previewSections)}}o(pm,"composeTranscriptRenderModel");function LR(e,t,n){let r=pm(e,t);return n?{...r,staticSections:[n,...r.staticSections]}:r}o(LR,"buildInlinePromptRenderModel");function PR(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(PR,"splitInlineLedgerModel");function LB(e){return e.replace(/^(You|Assistant|Tools|System) \[\d{1,2}:\d{2}[^\]]*\]$/u,"$1")}o(LB,"stripHeaderTimestamp");function $R(e){let t=5381;for(let n of e.rows){let r=LB(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($R,"identifyInlineCommitSection");function mm(e){let t=dm({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=fm({...r,activeItems:t.activeItems});return pm(t,i)}o(mm,"buildTranscriptRenderModel");function Ss(e){return e.flatMap(t=>t.rows)}o(Ss,"flattenTranscriptSections");function NR(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(NR,"identifyTranscriptSection");function wS(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:Ss(t),previewSections:[...e.previewSections],previewRows:Ss(e.previewSections)}}o(wS,"materializeTranscriptRenderModel");function OR(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),d=Math.max(u,i+Math.max(0,s));return e.slice(u,d)}return typeof n=="number"&&typeof r=="number"?e.slice(Math.max(0,n),Math.max(0,r)):l?TS(e,a,c):e}o(OR,"resolveVisibleTranscriptRows");var PB=200,$B=50,xS=30;function DR(e,t,n=PB,r=$B){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(DR,"computeTranscriptCapStart");function BR(e,t){if(t<=0||e.length===0)return[];let n=0,r=0;for(let i=e.length-1;i>=0;i--)if(e[i]?.type==="user"&&(n++,n>t)){r=i+1;break}return e.slice(r)}o(BR,"sliceHistoryToRecentRounds");function TS(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(TS,"getVisibleTranscriptRows");function FR(e,t,n){if(!t||!n||n<=0)return 0;let r=Ss(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(FR,"resolveScrollOffsetForTranscriptItem");function HR(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(HR,"resolveTranscriptColor");var hm="__transcript_hidden_divider__";function WR(e,t){let n=e===1?"message":"messages";return{id:hm,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(WR,"buildTranscriptHiddenDivider");function CS(e){return e.id===hm}o(CS,"isTranscriptHiddenDivider");var jR=new as(500);function NB(e){let t=wn(e),n=[],r=[],i=0,s=0;for(let a of t)n.push(i),r.push(s),i+=a.length,s+=gp(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}o(NB,"buildTranscriptTextMetrics");function vu(e){let t=jR.get(e);if(t)return t;let n=NB(e);return jR.set(e,n),n}o(vu,"getTranscriptTextMetrics");function ho(e){return vu(e).length}o(ho,"getTranscriptTextLength");function UR(e){return vu(e).displayWidth}o(UR,"getTranscriptTextDisplayWidth");function gm(e,t){let n=vu(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}o(gm,"charAtTranscriptText");function lc(e,t,n){let r=vu(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(lc,"sliceTranscriptText");function VR(e,t){let n=vu(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(VR,"resolveTranscriptTextIndexAtVisualColumn");function ym(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}o(ym,"formatTimestamp");function OB(e,t){let n=e.split(`
60
- `),r=n.slice(0,t),i=n.length>t;return{lines:r,hasMore:i}}o(OB,"truncateLines");function DB(e){switch(e){case z.Scheduled:return"\u25CB";case z.Validating:return"\u25D0";case z.AwaitingApproval:return"\u23F8";case z.Executing:return"\u25CF";case z.Success:return"\u2713";case z.Error:return"\u2717";case z.Cancelled:return"\u2298";default:return"?"}}o(DB,"getToolStatusIcon");function BB(e,t){switch(e){case z.Scheduled:case z.Validating:return t.colors.dim;case z.AwaitingApproval:return t.colors.accent;case z.Executing:return t.colors.primary;case z.Success:return t.colors.success;case z.Error:return t.colors.error;case z.Cancelled:return t.colors.dim;default:return t.colors.text}}o(BB,"getToolStatusColor");var FB=Gn(({item:e,theme:t})=>{let n=Qr(()=>um(e.text),[e.text]);return Je(M,{flexDirection:"column",marginBottom:1,children:[Je(M,{children:[Ce(b,{color:t.colors.primary,bold:!0,children:"You"}),Je(b,{dimColor:!0,children:[" [",ym(e.timestamp),"]"]})]}),Ce(M,{marginLeft:2,children:Ce(b,{color:t.colors.text,children:n})})]})}),HB=Gn(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:i,hasMore:s}=OB(r,n);return Je(M,{flexDirection:"column",marginBottom:1,children:[Je(M,{children:[Ce(b,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&Je(IS,{children:[Ce(b,{children:" "}),Ce(Vn,{color:t.colors.accent})]}),Je(b,{dimColor:!0,children:[" [",ym(e.timestamp),"]"]})]}),Je(M,{marginLeft:2,flexDirection:"column",children:[i.map((a,c)=>Ce(b,{color:t.colors.text,children:a||" "},c)),s&&Je(b,{dimColor:!0,children:["... (",r.split(`
61
- `).length-n," more lines)"]})]})]})}),WB=Gn(({item:e,theme:t})=>Je(M,{flexDirection:"column",marginBottom:1,children:[Je(M,{children:[Ce(b,{color:t.colors.dim,bold:!0,children:"System"}),Je(b,{dimColor:!0,children:[" [",ym(e.timestamp),"]"]})]}),Ce(M,{marginLeft:2,children:Ce(b,{dimColor:!0,children:e.text})})]})),jB=Gn(({tool:e,count:t=1,theme:n})=>{let r=DB(e.status),i=BB(e.status,n);return Je(M,{flexDirection:"column",marginLeft:2,children:[Je(M,{children:[Je(b,{color:i,children:[r," "]}),Ce(b,{color:n.colors.text,bold:!0,children:Cu({tool:e,count:t})})]}),e.error&&Ce(M,{marginLeft:2,children:Ce(b,{color:n.colors.error,children:e.error})})]})}),UB=Gn(({item:e,theme:t})=>{let n=cm(e.tools);return Je(M,{flexDirection:"column",marginBottom:1,children:[Je(M,{children:[Ce(b,{color:t.colors.accent,bold:!0,children:"Tools"}),Je(b,{dimColor:!0,children:[" [",ym(e.timestamp),"]"]})]}),n.map(r=>Ce(jB,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),VB=Gn(({item:e,theme:t})=>Je(M,{flexDirection:"column",marginBottom:1,children:[Ce(M,{children:Ce(b,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),Ce(M,{marginLeft:2,children:Ce(b,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),GB=Gn(({item:e,theme:t})=>Je(M,{flexDirection:"column",marginBottom:1,children:[Ce(M,{children:Je(b,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),Ce(M,{marginLeft:2,children:Ce(b,{color:t.colors.error,children:e.text})})]})),KB=Gn(({item:e,theme:t})=>Ce(M,{flexDirection:"column",marginBottom:1,children:Je(b,{color:t.colors.text,children:[Ce(b,{color:t.colors.accent,bold:!0,children:e.icon??">"}),Ce(b,{children:" "}),e.compactText??e.text]})})),zB=Gn(({item:e,theme:t})=>Ce(M,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:Je(b,{color:t.colors.info,children:[Je(b,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),XB=Gn(({item:e,theme:t})=>Je(M,{flexDirection:"column",marginBottom:1,children:[Ce(M,{children:Je(b,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),Ce(M,{marginLeft:2,children:Ce(b,{dimColor:!0,children:e.text})})]})),KR=Gn(({item:e,theme:t,maxLines:n=1e3})=>{let r=Qr(()=>ae("dark"),[]),i=t??r;switch(e.type){case"user":return Ce(FB,{item:e,theme:i});case"assistant":return Ce(HB,{item:e,theme:i,maxLines:n});case"system":return Ce(WB,{item:e,theme:i});case"tool_group":return Ce(UB,{item:e,theme:i});case"thinking":return Ce(VB,{item:e,theme:i});case"error":return Ce(GB,{item:e,theme:i});case"event":return Ce(KB,{item:e,theme:i});case"info":return Ce(zB,{item:e,theme:i});case"hint":return Ce(XB,{item:e,theme:i});default:return Ce(M,{children:Ce(b,{dimColor:!0,children:"Unknown item type"})})}});function YB(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(YB,"areTranscriptRowPropsEqual");var zR=Gn(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:i})=>{let s=HR(t,e.color),a=e.text===" "?"":e.text,c=a||" ",l=i&&a?lc(a,i.start,i.end):"",u=i&&a?lc(a,0,i.start):a,d=i&&a?lc(a,i.end):"",p=r&&!i,h=!p&&e.color==="dim",m={bold:e.bold||p,italic:e.italic,dimColor:h};return Je(M,{marginLeft:e.indent??0,children:[e.spinner&&n&&Je(IS,{children:[Ce(Vn,{color:t.colors.accent,theme:t}),Ce(b,{children:" "})]}),Ce(b,{color:p?t.colors.accent:s,...m,children:i&&a?Je(IS,{children:[u?Ce(b,{color:p?t.colors.accent:s,...m,children:u}):null,Ce(b,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:l}),d?Ce(b,{color:p?t.colors.accent:s,...m,children:d}):null]}):c})]})},YB),vS=Gn(({section:e,theme:t,animateSpinners:n=!0})=>Ce(M,{flexDirection:"column",children:e.rows.map(r=>Ce(zR,{row:r,theme:t,animateSpinners:n},r.key))})),go=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:d="",iterationHistory:p=[],currentIteration:h=1,isCompacting:m=!1,agentMode:g,managedPhase:C,managedHarnessProfile:w,managedWorkerTitle:T,managedRound:v,managedMaxRounds:_,managedGlobalWorkBudget:P,managedBudgetUsage:k,managedBudgetApprovalRequired:E,lastLiveActivityLabel:$,liveStatusLines:B,viewportRows:O,viewportWidth:G,scrollOffset:re=0,animateSpinners:X=!0,windowed:y=!1,showFullThinking:A=!1,showDetailedTools:ee=!1,showAllContent:W=!1,showLiveProgressRows:le=!0,selectedItemId:de,expandedItemKeys:he,onMetricsChange:_e,onVisibleRowsChange:fe,rendererWindow:Te,selectedTextRanges:Pe,transcriptModel:te,visibleRowsOverride:oe})=>{let Ie=Qr(()=>ae("dark"),[]),{stdout:nt}=Xr(),vt=G??nt?.columns??80,Ke=Qr(()=>te??mm({items:e,viewportWidth:vt,isLoading:t,maxLines:n,isThinking:r,thinkingCharCount:i,thinkingContent:s,streamingResponse:a,currentTool:c,activeToolCalls:l,toolInputCharCount:u,toolInputContent:d,iterationHistory:p,currentIteration:h,isCompacting:m,managedAgentMode:g,managedPhase:C,managedHarnessProfile:w,managedWorkerTitle:T,managedRound:v,managedMaxRounds:_,managedGlobalWorkBudget:P,managedBudgetUsage:k,managedBudgetApprovalRequired:E,lastLiveActivityLabel:$,liveStatusLines:B,windowed:y,showFullThinking:A,showDetailedTools:ee,showAllContent:W,showLiveProgressRows:le,expandedItemKeys:he}),[te,e,vt,t,n,r,i,s,a,c,l,u,d,p,h,m,g,C,w,T,v,_,P,k,E,$,B,y,A,ee,W,le,he]),Ve=Ke.staticSections,me=Ke.rows,Re=Ke.previewRows,K=Qr(()=>[...me,...Re],[Re,me]),St=!(K.length>0)&&e.length===0&&!t,Vt=Qr(()=>y||Te||oe?K:me,[K,Te,me,oe,y]),Xe=Qr(()=>oe||OR(Vt,{viewportTop:Te?Math.max(0,Te.viewportTop):void 0,viewportHeight:Te?Math.max(0,Te.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:O,scrollOffset:re,windowed:y}),[Te,re,O,oe,y,Vt]),_t=Qr(()=>oe||y||Te?Xe:K,[K,Te,Xe,oe,y]),Qt=Qr(()=>K,[K]),qn=Te?Math.max(0,Te.viewportHeight):O;return GR(()=>{_e?.({scrollHeight:K.length,viewportHeight:Te?Math.max(0,Te.viewportHeight):qn??K.length})},[K.length,qn,_e,Te]),GR(()=>{fe?.({rows:_t,allRows:Qt})},[Qt,fe,_t]),St?Ce(M,{paddingY:1,children:Ce(b,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):Je(M,{flexDirection:"column",children:[!y&&Ve.length>0&&Ce(Ja,{items:Ve,children:o(pn=>Ce(vS,{section:pn,theme:Ie,animateSpinners:X},pn.key),"children")}),_t.map(pn=>Ce(zR,{row:pn,theme:Ie,animateSpinners:X,selectedItem:de?pn.key.startsWith(`${de}-`):!1,selectionRange:Pe?.get(pn.key)},pn.key))]})},"MessageList");var XR=o(({role:e,content:t})=>{let n=Qr(()=>ae("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return Je(M,{flexDirection:"column",marginBottom:1,children:[Ce(b,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),Ce(b,{children:t})]})},"SimpleMessageDisplay");import{jsx as RS,jsxs as Tm}from"react/jsx-runtime";import fF,{useMemo as kS}from"react";function bu(e,t,n){let r=Zg({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 YR(e,t,n=0,r){let i=QC(e,n);return Zg({triggerPercent:t,triggerTokens:r},e,i).triggerTokens}o(YR,"resolveCompactionThresholdTokens");var qB="\u{1F504}",JB="\u2588",QB="\u2592",ZB="\u2192",eF=" \xB7 ";function tF(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(tF,"formatReasoningModeShort");function nF(e){if(e)return e==="none"?"off":e}o(nF,"formatEffortShort");function rF(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(rF,"getReasoningColor");function qR(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}o(qR,"formatTokenCount");function iF(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${JB.repeat(t)}${QB.repeat(n)}`}o(iF,"createMiniProgressBar");function oF(e,t,n,r,i){if(t===0)return"green";let s=YR(t,n,r,i);return e>=s?"red":e>=s*(2/3)?"yellow":"green"}o(oF,"getContextColor");function sF(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(sF,"getPermissionModeColor");function aF(e,t){let n=Gf(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}o(aF,"buildPermissionModeText");function cF(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(cF,"formatToolAction");function Sm(e,t){return t&&t>0?`${e} (${t} chars)`:e}o(Sm,"formatThinkingStatus");function wm(e,t,n){let r=cF(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}o(wm,"formatToolStatus");function bS({activeToolCount:e,currentTool:t,isThinkingActive:n,thinkingCharCount:r,isCompacting:i,toolInputCharCount:s,toolInputContent:a,managedPhase:c,managedHarnessProfile:l,managedWorkerTitle:u,managedIdleWaiting:d,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 - ${wm(t,s,a)}`:n?Sm("Routing",r):"Routing";if(c==="preflight"){let m=u??"Scout";return h?`${m} - ${h}`:t?`${m} - ${wm(t,s,a)}`:n?Sm(m,r):m}if(c==="verifying")return"Verifying";if(l){let m=u??"Worker";if(d===!0&&!h&&!t&&!n){let g=p??0,C=g>1?`waiting for ${g} children`:g===1?"waiting for 1 child":"idle - resuming";return`${m} - ${C}`}return h?`${m} - ${h}`:t?`${m} - ${wm(t,s,a)}`:n?Sm(m,r):m}if(h)return h;if(t)return wm(t,s,a);if(n)return Sm("Thinking",r)}o(bS,"buildBusyStatusText");function lF({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(lF,"resolveIterationSegments");function uF(e){if(e.length!==0)return`${qB} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(eF)}`}o(uF,"formatLabeledIterationStatus");function dF(e){let{sessionId:t,permissionMode:n,agentMode:r,provider:i,model:s,tokenUsage:a,currentTool:c,activeToolCount:l,thinking:u,isThinkingActive:d,thinkingCharCount:p,reasoningMode:h=u?"auto":"off",effort:m,reasoningEffortLabel:g,isCompacting:C,toolInputCharCount:w,toolInputContent:T,currentIteration:v,maxIter:_,contextUsage:P,learning:k,showBusyStatus:E=!0,managedPhase:$,managedHarnessProfile:B,managedWorkerTitle:O,managedRound:G,managedMaxRounds:re,managedGlobalWorkBudget:X,managedBudgetUsage:y,managedIdleWaiting:A,managedIdleWaitingPendingCount:ee}=e,W=[{id:"agent-mode",text:`KodaX - ${r.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:aF(n,e.autoModeEngine),color:sF(n)}],le=g??nF(m)??tF(h);W.push({id:"reasoning-mode",text:le,color:rF(le)});let de=lF({agentMode:r,managedPhase:$,managedHarnessProfile:B,managedRound:G,managedMaxRounds:re,managedGlobalWorkBudget:X,managedBudgetUsage:y,currentIteration:v,maxIter:_}),he=uF(de);if(he){let fe=Math.max(...de.map(Pe=>Pe.current/Pe.max)),Te="green";fe>=.8?Te="red":fe>=.5&&(Te="yellow"),W.push({id:"iteration-status",text:he,color:Te})}W.push({id:"session-id",text:t,color:"dim"});let _e=E?bS({activeToolCount:l,currentTool:c,isThinkingActive:d,thinkingCharCount:p,isCompacting:C,toolInputCharCount:w,toolInputContent:T,managedPhase:$,managedHarnessProfile:B,managedWorkerTitle:O,managedIdleWaiting:A,managedIdleWaitingPendingCount:ee}):void 0;if(_e&&W.push({id:"busy-status",text:_e,color:"dim"}),W.push({id:"provider-model",text:`${i}/${s}`,color:"secondary"}),P&&P.contextWindow!==0){let fe=Math.round(P.currentTokens/P.contextWindow*100),Te=qR(P.currentTokens),Pe=qR(P.contextWindow),te=iF(fe);W.push({id:"context-usage",text:`${Te}/${Pe} ${te} ${fe}%`,color:oF(P.currentTokens,P.contextWindow,P.triggerPercent,P.reservedResponseTokens,P.triggerTokens)})}if(k&&(k.ready>0||k.newlyActive>0||k.attention>0)){let fe=[...k.ready>0?[`${k.ready}R`]:[],...k.newlyActive>0?[`${k.newlyActive}N`]:[],...k.attention>0?[`${k.attention}!`]:[]];W.push({id:"learning",text:`Learn:${fe.join("/")}`,color:k.attention>0||k.ready>0?"yellow":"cyan",tone:k.attention>0||k.ready>0?"warning":"accent"})}return a&&W.push({id:"token-usage",text:`${a.input}${ZB}${a.output} (${a.total})`,color:"dim"}),W}o(dF,"buildStatusBarSegments");function xm(e){let t=dF(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}o(xm,"buildStatusBarViewModel");function pF(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(pF,"resolveViewModelSegmentColor");var ws=o(({viewModel:e,...t})=>{let n=kS(()=>ae("dark"),[]),r=kS(()=>e??xm(t),[t,e]);return RS(M,{paddingX:1,children:r.segments.map((i,s)=>Tm(fF.Fragment,{children:[RS(b,{color:pF(i,n),bold:i.bold,children:i.text}),s<r.segments.length-1?RS(b,{dimColor:!0,children:" | "}):null]},i.id))})},"StatusBar"),JR=o(({permissionMode:e,provider:t,model:n})=>{let r=kS(()=>ae("dark"),[]);return Tm(M,{children:[Tm(b,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),Tm(b,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as yo,jsxs as vm}from"react/jsx-runtime";import{useState as ES,useCallback as Cm,useMemo as QR}from"react";function Im(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}o(Im,"generateId");function mF(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(mF,"messageToHistoryItem");var ZR=o(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:i="ama"})=>{let{stdout:s}=Xr(),a=QR(()=>ae("dark"),[]),[c,l]=ES({messages:[],isLoading:!1,sessionId:Im()}),[u,d]=ES(null),[p,h]=ES(),m=Cm(async T=>{if(!T.trim())return;let v={id:Im(),role:"user",content:T,timestamp:Date.now()};l(_=>({..._,messages:[..._.messages,v],isLoading:!0}));try{await n(T)}catch(_){let P={id:Im(),role:"system",content:`Error: ${_ instanceof Error?_.message:"Unknown error"}`,timestamp:Date.now()};l(k=>({...k,messages:[...k.messages,P],isLoading:!1}))}finally{l(_=>({..._,isLoading:!1}))}},[n]),g=Cm((T,v)=>{let _={id:Im(),role:T,content:v,timestamp:Date.now()};l(P=>({...P,messages:[...P.messages,_]}))},[]),C=Cm((T,v)=>{d({input:T,output:v,total:T+v})},[]),w=Cm(T=>{h(T)},[]);return vm(M,{flexDirection:"column",children:[yo(M,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:yo(go,{items:c.messages.map(mF),isLoading:c.isLoading})}),yo(M,{flexShrink:0,children:yo(ys,{onSubmit:o(T=>m(T.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),yo(M,{flexShrink:0,children:yo(ws,{sessionId:c.sessionId,permissionMode:r,agentMode:i,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),ek=o(({model:e,provider:t,onInput:n})=>{let r=QR(()=>ae("dark"),[]);return vm(M,{flexDirection:"column",children:[vm(M,{marginBottom:1,children:[yo(b,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),vm(b,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),yo(ys,{onSubmit:o(i=>n(i.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as hF}from"react/jsx-runtime";var bm=o(({top:e,topRows:t=0,transcript:n,renderTranscriptWindow:r,footer:i,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:d=0,viewportHeight:p=0,stickyScroll:h=!0,scrollRef:m,onScrollTopChange:g,onStickyChange:C,onWindowChange:w,overscanRows:T})=>hF(Jy,{width:l,top:e,topRows:t,stickyHeader:a,jumpToLatest:c,scrollable:n,renderScrollableWindow:r,overlay:s,bottom:i,scrollTop:u,scrollHeight:d,viewportHeight:p,stickyScroll:h,scrollRef:m,onScrollTopChange:g,onStickyChange:C,onWindowChange:w,overscanRows:T}),"FullscreenTranscriptLayout");import{jsx as tk}from"react/jsx-runtime";function uc({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(uc,"buildMessageActionsText");var Rm=o(({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:i=!1,matchNavigation:s=!1,dismissAction:a})=>{let c=ae("dark"),l=uc({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:r,selectionNavigation:i,matchNavigation:s,dismissAction:a});return l?tk(M,{paddingX:1,children:tk(b,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as nk}from"react/jsx-runtime";function MS({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(MS,"buildMessageSelectorText");var rk=o(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let i=ae("dark"),s=MS({itemSummary:e,itemKind:t,position:n,detailState:r});return s?nk(M,{paddingX:1,children:nk(b,{color:i.colors.dim,children:s})}):null},"MessageSelector");import{jsx as dc,jsxs as gF}from"react/jsx-runtime";import{useMemo as ik}from"react";function km(e,t){return Math.max(1,xn(e.length>0?e.split(`
62
- `):[""],Math.max(1,t),0,0).visualLines.length)}o(km,"countWrappedRows");var Em=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",d=t?.copyCapabilities,p=d?.message??!1,h=d?.toolInput??!1,m=d?.copyOnSelect??!1,g=t?.toggleDetail??!1,C=t?.navigationCapabilities?.selection??!1,w=n?.statusText,T=n?.matches?.length??0,v=n?.surface,_=i.viewportWidth??80,P=Math.max(1,_-2),k=n?.query?.trim()?"close-search":a||p||h||g||C?"clear":void 0,E=MS({itemSummary:a,itemKind:l,position:c,detailState:u}),$=ik(()=>uc({copyMessage:p,copyToolInput:h,copyOnSelect:m,toggleDetail:g,selectionNavigation:C,matchNavigation:!!w&&T>0,dismissAction:k}),[p,h,C,g,k,T,w,m]),B=ik(()=>{if(!s)return 0;let G=0;return e?.hintText&&(G+=km(e.hintText,P)),E&&(G+=km(E,P)),$&&(G+=km($,P)),w&&(G+=km(w,P)),v&&(G+=1),G},[$,e?.hintText,P,s,w,v,E]),O=typeof i.viewportRows=="number"?Math.max(1,i.viewportRows-B):i.viewportRows;return gF(M,{flexDirection:"column",flexGrow:i.windowed?0:1,children:[s&&e?.hintText?dc(M,{paddingX:1,children:dc(b,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||h||m||g||C||T>0)?dc(Rm,{copyMessage:p,copyToolInput:h,copyOnSelect:m,toggleDetail:g,selectionNavigation:C,matchNavigation:!!w&&T>0,dismissAction:k}):null,s&&w?dc(M,{paddingX:1,children:dc(b,{dimColor:!0,children:w})}):null,s?v:null,dc(go,{...i,viewportRows:O})]})},"TranscriptViewport");import{jsx as ok}from"react/jsx-runtime";var Mm=o(e=>ok(M,{flexDirection:"column",children:ok(ys,{...e})}),"PromptComposer");import{jsx as xs,jsxs as _m}from"react/jsx-runtime";import sk from"react";var ak=" \xB7 ",Ru=o(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ae("dark");return t.length===0?null:xs(M,{flexGrow:1,children:t.map((r,i)=>_m(sk.Fragment,{children:[xs(b,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),i<t.length-1?xs(b,{dimColor:!0,children:ak}):null]},r.id))})},"PromptFooterLeftSide"),ku=o(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ae("dark");return t.length===0?null:xs(M,{justifyContent:"flex-end",children:t.map((r,i)=>_m(sk.Fragment,{children:[xs(b,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),i<t.length-1?xs(b,{dimColor:!0,children:ak}):null]},r.id))})},"PromptFooterRightSide"),Eu=o(({left:e,right:t,queued:n,stashNotice:r,notifications:i,inlineNotices:s,activityBar:a,todoSurface:c,composer:l,inlineSuggestions:u,helpSurface:d,taskBar:p,statusLine:h,inlineDialogs:m})=>_m(M,{flexDirection:"column",children:[e||t?_m(M,{paddingX:1,children:[xs(M,{flexGrow:1,children:e}),t]}):null,n,r,i,s,a,c,l,u,m,d,p,h]}),"PromptFooter");import{jsx as _S,jsxs as ck}from"react/jsx-runtime";var Am=o(({sections:e,title:t="Help"})=>{let n=ae("dark"),r=e.filter(i=>i.items.length>0);return r.length===0?null:ck(M,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[_S(b,{color:n.colors.accent,bold:!0,children:t}),r.map(i=>ck(M,{flexDirection:"column",children:[_S(b,{color:n.colors.primary,bold:!0,children:i.title}),_S(b,{dimColor:!0,children:i.items.map(s=>s.label).join(" | ")})]},i.id))]})},"PromptHelpMenu");import{jsx as lk}from"react/jsx-runtime";import{createContext as fk,useContext as pk,useReducer as yF,useCallback as sn,useMemo as SF}from"react";var uk=150;function _u(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}o(_u,"generateId");function Mu(e){let t=e.timestamp;return{...e,id:_u(),timestamp:t!==void 0&&Number.isFinite(t)&&t>=0?t:Date.now()}}o(Mu,"createHistoryItem");function dk(e){if(e.length<=uk)return e;let t=0,n=e.length-uk;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(dk,"trimHistoryToRounds");function AS(e,t){return e.filter(n=>n.type==="user"&&typeof n.id=="string"&&!t.has(n.id))}o(AS,"selectUncommittedLedgerUserItems");function Lm(e){return{...e,id:_u(),startTime:Date.now()}}o(Lm,"createToolCall");function wF(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:dk([...e.history,t.payload])};case"BULK_ADD_HISTORY_ITEMS":return{...e,history:dk([...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{...Uf,sessionId:e.sessionId};default:return e}}o(wF,"uiReducer");var mk=fk(null),hk=fk(null);function Au({children:e,initialState:t}){let[n,r]=yF(wF,{...Uf,...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 $=Mu(E);r({type:"ADD_HISTORY_ITEM",payload:$})},[]),l=sn(E=>{E.length!==0&&r({type:"BULK_ADD_HISTORY_ITEMS",payload:E.map(Mu)})},[]),u=sn((E,$)=>{r({type:"UPDATE_HISTORY_ITEM",payload:{id:E,updates:$}})},[]),d=sn(()=>{r({type:"CLEAR_HISTORY"})},[]),p=sn(E=>{let $=Lm(E);return r({type:"ADD_TOOL_CALL",payload:$}),$.id},[]),h=sn((E,$)=>{r({type:"UPDATE_TOOL_CALL",payload:{id:E,updates:$}})},[]),m=sn(()=>{r({type:"CLEAR_TOOL_CALLS"})},[]),g=sn(E=>{r({type:"SET_SESSION_ID",payload:E})},[]),C=sn(E=>{r({type:"SET_MODE",payload:E})},[]),w=sn(E=>{r({type:"SET_PROVIDER",payload:E})},[]),T=sn(E=>{r({type:"SET_MODEL",payload:E})},[]),v=sn(E=>{r({type:"SET_TOKEN_USAGE",payload:E})},[]),_=sn(E=>{r({type:"SET_ERROR",payload:E})},[]),P=sn(E=>{r({type:"SET_LOADING",payload:E})},[]),k=SF(()=>({setStreamingState:i,appendToResponse:s,clearResponse:a,addHistoryItem:c,addHistoryItems:l,updateHistoryItem:u,clearHistory:d,addToolCall:p,updateToolCall:h,clearToolCalls:m,setSessionId:g,setMode:C,setProvider:w,setModel:T,setTokenUsage:v,setError:_,setLoading:P}),[i,s,a,c,l,u,d,p,h,m,g,C,w,T,v,_,P]);return lk(mk.Provider,{value:n,children:lk(hk.Provider,{value:k,children:e})})}o(Au,"UIStateProvider");function fc(){let e=pk(mk);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}o(fc,"useUIState");function pc(){let e=pk(hk);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}o(pc,"useUIActions");function LS(){let e=fc(),t=pc();return{state:e,actions:t}}o(LS,"useUI");function PS(){return ae()}o(PS,"useTheme");import{jsxs as So,jsx as Pm,Fragment as xF}from"react/jsx-runtime";import{useMemo as TF}from"react";var CF=80,IF=7,vF={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function bF(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(bF,"getVisibleRange");function RF({suggestion:e,isSelected:t,width:n}){let r=PS(),i=e.icon||e.type&&vF[e.type]||"",s=i?br(i)+1:0,a=br(e.displayText||e.text),c=e.description?br(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,d=Math.max(0,u),p=Ha(e.displayText||e.text,l),h=e.description?Ha(e.description,d):"";return So(M,{children:[i&&So(b,{color:t?r.colors.accent:r.colors.dim,children:[i," "]}),Pm(b,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),h&&So(xF,{children:[Pm(b,{children:" "}),Pm(b,{color:r.colors.dim,children:Ha(e.description||"",d)})]}),t&&So(b,{color:r.colors.accent,children:[" ","\u25C0"]})]})}o(RF,"SuggestionItem");function Lu({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=IF,width:i=CF,showCount:s=!1}){let a=PS();if(!n||e.length===0)return null;let{start:c,end:l}=TF(()=>bF(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return So(M,{flexDirection:"column",marginLeft:2,children:[c>0&&So(b,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((d,p)=>{let m=c+p===t;return Pm(RF,{suggestion:d,isSelected:m,width:i},d.id)}),l<e.length&&So(b,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&So(b,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}o(Lu,"SuggestionsDisplay");import{jsx as mc,jsxs as kF}from"react/jsx-runtime";var $m=o(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let i=mo(),s=ae("dark");if(n)return null;if(!i)return e?mc(M,{height:8}):null;let{state:a,suggestions:c}=i;return a.visible&&c.length>0?r==="overlay"?kF(M,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[mc(b,{color:s.colors.accent,bold:!0,children:"Suggestions"}),mc(Lu,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):mc(M,{height:8,children:mc(Lu,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?mc(M,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as kr,jsx as dr,Fragment as $S}from"react/jsx-runtime";import EF,{useEffect as MF,useState as _F}from"react";var hc=15,gk=Math.max(1,hc-2),Nm=o(({confirm:e,request:t})=>e?kr(M,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[kr(b,{color:"yellow",bold:!0,children:[ie("dialog.confirm")," ",e.prompt]}),e.planContent?dr(AF,{content:e.planContent}):null,e.instruction?dr(b,{dimColor:!0,children:e.instruction}):null]}):t?kr(M,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?kr($S,{children:[kr(b,{color:"cyan",bold:!0,children:[ie("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 kr($S,{children:[c>0?dr(b,{dimColor:!0,children:ie("select.more_above",{count:c})}):null,n.slice(a,a+r).map((u,d)=>{let p=a+d,h=p===i,m=t.selectedIndices?.includes(p)??!1,g=h?"\u276F ":" ",C=m?" \u2713":"",w=u.description?` - ${u.description}`:"";return dr(b,{color:h?"cyan":void 0,dimColor:!h,children:`${g}${u.label}${w}${C}`},`${u.value}-${p}`)}),l>0?dr(b,{dimColor:!0,children:ie("select.more_below",{count:l})}):null]})})(),dr(b,{dimColor:!0,children:t.multiSelect?ie("select.multiselect_hint"):ie("select.navigate_hint")})]}):kr($S,{children:[kr(b,{color:"cyan",bold:!0,children:[ie("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0?dr(b,{dimColor:!0,children:`${ie("input.default")} ${t.defaultValue}`}):null,dr(b,{dimColor:!0,children:`${ie("input.value")} ${t.buffer||ie("input.type_response")}`}),dr(b,{dimColor:!0,children:ie("select.confirm_hint")})]}),t.error?dr(b,{color:"red",children:t.error}):null]}):null,"DialogSurface"),AF=o(({content:e})=>{let t=EF.useMemo(()=>e.split(`
63
- `),[e]),n=t.length,r=n>hc,[i,s]=_F(0);MF(()=>{s(u=>{let d=Math.max(0,n-hc);return u>d?d:u})},[n]),Qa((u,d)=>{if(!r)return;let p=Math.max(0,n-hc);d.upArrow?s(h=>Math.max(0,h-1)):d.downArrow?s(h=>Math.min(p,h+1)):d.pageUp?s(h=>Math.max(0,h-gk)):d.pageDown&&s(h=>Math.min(p,h+gk))},{isActive:!0});let a=t.slice(i,i+hc),c=i,l=Math.max(0,n-i-hc);return kr(M,{flexDirection:"column",marginTop:1,children:[r&&c>0?kr(b,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((u,d)=>dr(b,{children:u},`plan-line-${i+d}`)),r&&l>0?kr(b,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,r?dr(b,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as Pu,jsx as LF}from"react/jsx-runtime";function yk(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}o(yk,"normalizePendingPreview");function Sk(e){if(e.length===0)return;let t=yk(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(Sk,"formatPendingInputsSummary");function NS(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:yk(n)}))}o(NS,"formatPendingInputsLines");function wk(e){let t=NS(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(wk,"formatPendingInputsBudgetText");var Om=o(({pendingInputs:e})=>{let t=NS(e);if(t.length===0)return null;let n=ae("dark");return Pu(M,{flexDirection:"column",children:[t.map(r=>Pu(M,{children:[Pu(b,{color:n.colors.hint,children:["\u23F3"," "]}),Pu(b,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),LF(M,{children:Pu(b,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as xk}from"react/jsx-runtime";function PF(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}o(PF,"resolveNotificationColor");var $u=o(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=ae("dark");return t.length===0?null:xk(M,{flexDirection:"column",paddingX:1,children:t.map(r=>xk(b,{color:PF(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as Tk}from"react/jsx-runtime";var Dm=o(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=ae("dark");return Tk(M,{flexDirection:"column",paddingX:1,children:t.map((r,i)=>Tk(b,{color:n.colors.dim,children:r},`${r}-${i}`))})},"StatusNoticesSurface");import{jsxs as Ck,jsx as $F}from"react/jsx-runtime";var Nu=o(({text:e})=>{let t=e?.trim();if(!t)return null;let n=ae("dark");return Ck(M,{paddingX:1,children:[Ck(b,{color:n.colors.hint,children:["\u22EF"," "]}),$F(b,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as Ts,jsxs as NF}from"react/jsx-runtime";function Ik({text:e,accent:t=!1,selected:n=!1}){let r=ae("dark");return Ts(M,{marginRight:1,children:Ts(b,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}o(Ik,"Pill");var Ou=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:NF(M,{flexDirection:"row",paddingX:1,children:[r?Ts(M,{marginRight:1,children:Ts(Vn,{})}):null,i.map(s=>Ts(Ik,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?Ts(Ik,{text:t}):null,n?Ts(b,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import{jsx as Bu,jsxs as WF}from"react/jsx-runtime";import OF from"string-width";var OS=9,DS=3,vk=160,DF={shouldRender:!1,activeCount:0,rows:[]};function bk(e,t=OS){let n=OF(e);return n>=t?e:`${e}${" ".repeat(t-n)}`}o(bk,"padChildActivitySymbol");function BS(e){let t=e.replace(/\s+/gu," ").trim();return t.length<=vk?t:`${t.slice(0,vk-3)}...`}o(BS,"truncateChildActivityDetail");function Du(e){return!!(e?.liveOnly===!0&&(e.workflowCorrelation||e.childAgentId))}o(Du,"shouldRouteToChildActivity");function Rk(e,t){return!!(e?.liveOnly===!0&&e.workflowCorrelation?.workflowRunId&&t&&e.workflowCorrelation.workflowRunId===t)}o(Rk,"shouldRouteWorkflowLiveOnlyNotice");function kk(e){return!e.isTranscriptMode&&e.childActivityVisible&&(e.isLoading||e.hasWorkflowLiveSurface)}o(kk,"shouldShowChildActivitySurface");function FS(e){let t=e.childAgentId??e.workflowCorrelation?.childAgentId??"child",n=e.workflowCorrelation?.workflowRunId;return n?`${n}:${t}`:t}o(FS,"childActivityId");function Ek(e){return e.childAgentName??e.childAgentId??e.workflowCorrelation?.childAgentId??"child"}o(Ek,"childActivityLabel");function Mk(e){return e.workflowCorrelation?"workflow":"normal"}o(Mk,"childActivitySource");function _k(e,t){let n=t?.path??t?.pattern??t?.command??t?.preview,r=typeof n=="string"&&n.trim().length>0?` ${n}`:"";return BS(`${e}${r}`)}o(_k,"toolActivityDetail");function Ak(e,t){return e==="tool"&&["thinking","assistant","stream"].includes(t)}o(Ak,"suppressesChurnOverToolAction");function BF(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(BF,"formatChildActivityElapsed");function FF(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(FF,"kindLabel");function HF(e,t){let n=e.label.trim()||"child",r=e.startedAt!==void 0?` \xB7 ${BF(t-e.startedAt)}`:"",i=e.detail.trim(),s=i.length>0?`: ${i}`:"";return`${n}${r} - ${FF(e.kind)}${s}`}o(HF,"rowText");function Lk(e,t=DS,n=Date.now()){let r=e.filter(u=>u.status==="running");if(r.length===0)return DF;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:HF(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(Lk,"buildChildActivityViewModel");var Pk=OS;function jF(e){let t=ae("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;default:return t.colors.dim}}o(jF,"resolveSymbolColor");var UF=o(({row:e})=>{let t=jF(e.symbolColor);return WF(M,{flexDirection:"row",children:[Bu(M,{width:Pk,flexShrink:0,children:Bu(b,{color:t,bold:e.isActive,wrap:"truncate",children:bk(e.symbol,Pk)})}),Bu(b,{color:e.kind==="summary"?ae("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"ChildActivityRowView");function Bm(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}o(Bm,"measureChildActivitySurfaceRows");var Fm=o(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:Bu(M,{flexDirection:"column",flexGrow:1,children:e.rows.map(t=>Bu(UF,{row:t},`${t.kind}-${t.id}`))}),"ChildActivitySurface");import $k,{createContext as Dk,useContext as Bk,useReducer as VF,useCallback as it,useRef as Nk,useEffect as Ok}from"react";function GF(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}o(GF,"isPendingPromptForAgent");function jS(e){return or().getSnapshot().filter(t=>GF(t,e))}o(jS,"getPendingPrompts");function HS(e){return jS(e).map(t=>t.content)}o(HS,"getPendingPromptContents");var WS={state:Cr.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 Hm(e={}){let t=o(()=>e.getPendingInputAgentId?.(),"getPendingInputAgentId"),n={...WS,pendingInputs:HS(t())},r=new Set,i="",s="",a=0,c=null,l=!1,u=80,d=o(()=>{for(let w of r)w(n)},"notify"),p=o(()=>{let w=HS(t());if(w.length===n.pendingInputs.length){let T=!0;for(let v=0;v<w.length;v++)if(w[v]!==n.pendingInputs[v]){T=!1;break}if(T)return}n={...n,pendingInputs:w},d()},"syncReactStateFromQueue"),h=or().subscribe(()=>{p()}),m=o(()=>or().dequeue({agentId:t(),maxPriority:"user",mode:"prompt"}).map(T=>T.content),"drainOurSlice"),g=o(()=>{if(c&&(clearTimeout(c),c=null),i||s||a>0){let T=n.thinkingContent+s,v=s?T.length:n.thinkingCharCount+a;n={...n,currentResponse:n.currentResponse+i,thinkingContent:T,thinkingCharCount:v,...s||a>0?{isThinking:!0}:{}},i="",s="",a=0,d()}},"flushPendingUpdates"),C=o(()=>{c||(c=setTimeout(g,u))},"scheduleFlush");return{getState:o(()=>n,"getState"),setState:o(w=>{g(),n={...n,state:w},d()},"setState"),startStreaming:o(()=>{l=!1,i="",s="",a=0,c&&(clearTimeout(c),c=null),n={...n,state:Cr.Responding,currentResponse:"",abortController:new AbortController,error:void 0,roundStartedAt:Date.now()},d()},"startStreaming"),stopStreaming:o(()=>{g(),n={...n,state:Cr.Idle,abortController:void 0,roundStartedAt:null},d()},"stopStreaming"),appendResponse:o(w=>{l||(i+=w,C())},"appendResponse"),clearResponse:o(()=>{g(),n={...n,currentResponse:""},d()},"clearResponse"),setError:o(w=>{g(),n={...n,error:w,state:w?Cr.Idle:n.state},d()},"setError"),abort:o(w=>{l=!0,g(),n.abortController?.abort(),i="",s="",a=0,c&&(clearTimeout(c),c=null),w?.preservePendingInputs||m(),n={...n,state:Cr.Idle,abortController:void 0,roundStartedAt:null},d()},"abort"),reset:o(()=>{l=!0,g(),n.abortController?.abort(),i="",s="",a=0,c&&(clearTimeout(c),c=null),m(),n={...WS,pendingInputs:HS(t())},l=!1,d()},"reset"),isStreaming:o(()=>n.state===Cr.Responding||n.state===Cr.WaitingForConfirmation,"isStreaming"),subscribe:o(w=>(r.add(w),()=>{r.delete(w)}),"subscribe"),startThinking:o(()=>{g(),n={...n,isThinking:!0,thinkingCharCount:0,thinkingContent:""},d()},"startThinking"),appendThinkingChars:o(w=>{l||(a+=w,C())},"appendThinkingChars"),appendThinkingContent:o(w=>{l||(s+=w,C())},"appendThinkingContent"),stopThinking:o(()=>{g(),n={...n,isThinking:!1,thinkingCharCount:0},d()},"stopThinking"),clearThinkingContent:o(()=>{g(),n={...n,isThinking:!1,thinkingCharCount:0,thinkingContent:""},d()},"clearThinkingContent"),setCurrentTool:o(w=>{g(),n={...n,currentTool:w,toolInputCharCount:0,toolInputContent:""},d()},"setCurrentTool"),appendToolInputChars:o(w=>{n={...n,toolInputCharCount:n.toolInputCharCount+w},d()},"appendToolInputChars"),appendToolInputContent:o(w=>{n.toolInputContent.length<240&&(n={...n,toolInputContent:(n.toolInputContent+w).slice(0,240)},d())},"appendToolInputContent"),clearToolInputContent:o(()=>{n={...n,toolInputContent:""},d()},"clearToolInputContent"),getSignal:o(()=>n.abortController?.signal,"getSignal"),getFullResponse:o(()=>n.currentResponse+i,"getFullResponse"),getThinkingContent:o(()=>n.thinkingContent+s,"getThinkingContent"),startNewIteration:o(w=>{g(),n.thinkingContent||n.currentResponse?n={...n,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:w}:n={...n,currentIteration:w},d()},"startNewIteration"),clearIterationHistory:o(()=>{g(),n={...n,iterationHistory:[],currentIteration:1,maxIter:WS.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},d()},"clearIterationHistory"),setMaxIter:o(w=>{g(),n={...n,maxIter:w},d()},"setMaxIter"),startCompacting:o(()=>{g(),n={...n,isCompacting:!0},d()},"startCompacting"),stopCompacting:o(()=>{g(),n={...n,isCompacting:!1},d()},"stopCompacting"),addPendingInput:o(w=>{let T=w.trim();T&&(jS(t()).length>=5||(g(),or().enqueue({agentId:t(),priority:"user",mode:"prompt",content:T})))},"addPendingInput"),removeLastPendingInput:o(()=>{let w=jS(t()),T=w[w.length-1];T&&(g(),or().dequeue({agentId:t(),maxPriority:"user",mode:"prompt",id:T.id}))},"removeLastPendingInput"),shiftPendingInput:o(()=>(g(),or().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(Hm,"createStreamingManager");var Fk=Dk(null),Hk=Dk(null);function Hu({children:e,onStateChange:t,getPendingInputAgentId:n}){let r=Nk(n);r.current=n;let i=Nk(void 0);i.current||(i.current=Hm({getPendingInputAgentId:o(()=>r.current?.(),"getPendingInputAgentId")}));let s=i.current,[,a]=VF(fe=>fe+1,0);Ok(()=>s.subscribe(Te=>{a(),t?.(Te)}),[s,t]),Ok(()=>()=>{s.dispose()},[s]);let c=it(()=>{s.startStreaming()},[]),l=it(()=>{s.stopStreaming()},[]),u=it(fe=>{s.appendResponse(fe)},[]),d=it(()=>{s.clearResponse()},[]),p=it(fe=>{s.setError(fe)},[]),h=it(fe=>{s.abort(fe)},[]),m=it(()=>{s.reset()},[]),g=it(()=>{s.startThinking()},[]),C=it(fe=>{s.appendThinkingChars(fe)},[]),w=it(fe=>{s.appendThinkingContent(fe)},[]),T=it(()=>{s.stopThinking()},[]),v=it(()=>{s.clearThinkingContent()},[]),_=it(fe=>{s.setCurrentTool(fe)},[]),P=it(fe=>{s.appendToolInputChars(fe)},[]),k=it(fe=>{s.appendToolInputContent(fe)},[]),E=it(()=>{s.clearToolInputContent()},[]),$=it(()=>s.getSignal(),[]),B=it(()=>s.getFullResponse(),[]),O=it(()=>s.getThinkingContent(),[]),G=it(fe=>{s.startNewIteration(fe)},[]),re=it(()=>{s.clearIterationHistory()},[]),X=it(fe=>{s.setMaxIter(fe)},[]),y=it(()=>{s.startCompacting()},[]),A=it(()=>{s.stopCompacting()},[]),ee=it(fe=>{s.addPendingInput(fe)},[]),W=it(()=>{s.removeLastPendingInput()},[]),le=it(()=>s.shiftPendingInput(),[]),de=it(()=>{s.clearPendingInputs()},[]),he=it(()=>s.consumePendingInputs(),[]),_e={startStreaming:c,stopStreaming:l,appendResponse:u,clearResponse:d,setError:p,abort:h,reset:m,startThinking:g,appendThinkingChars:C,appendThinkingContent:w,stopThinking:T,clearThinkingContent:v,setCurrentTool:_,appendToolInputChars:P,appendToolInputContent:k,clearToolInputContent:E,getSignal:$,getFullResponse:B,getThinkingContent:O,startNewIteration:G,clearIterationHistory:re,setMaxIter:X,startCompacting:y,stopCompacting:A,addPendingInput:ee,removeLastPendingInput:W,shiftPendingInput:le,clearPendingInputs:de,consumePendingInputs:he};return $k.createElement(Fk.Provider,{value:s.getState()},$k.createElement(Hk.Provider,{value:_e},e))}o(Hu,"StreamingProvider");function gc(){let e=Bk(Fk);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}o(gc,"useStreamingState");function yc(){let e=Bk(Hk);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}o(yc,"useStreamingActions");function US(){let e=gc(),t=yc(),n=e.state===Cr.Responding||e.state===Cr.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}o(US,"useStreaming");import{useCallback as KF,useRef as zF}from"react";var XF=500;function Wk(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:i=!0}=e,s=zF(0),{exit:a}=Yr(),c=KF(l=>{if(!i)return!1;if(l.name==="escape"){let u=Date.now(),d=u-s.current<XF;return s.current=u,d&&(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 Un(c,{isActive:i}),{lastEscTime:s.current}}o(Wk,"useKeypress");function jk(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(jk,"createKeyMatcher");import{useCallback as Uk,useSyncExternalStore as YF}from"react";function qF(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}o(qF,"isQueuedPromptForAgent");var VS=null,Wm=new Map;function JF(e){let t=or().getSnapshot();t!==VS&&(VS=t,Wm.clear());let n=Wm.get(e);if(n!==void 0)return n;let r=Object.freeze(t.filter(i=>qF(i,e)));return Wm.set(e,r),r}o(JF,"getQueueSliceSnapshot");function GS(e){let t=Uk(r=>or().subscribe(r),[]),n=Uk(()=>JF(e),[e]);return YF(t,n,n)}o(GS,"useQueuedPrompts");function Vk(e){return GS(e).map(n=>n.content)}o(Vk,"useQueuedPromptContents");function Gk(){VS=null,Wm.clear()}o(Gk,"_resetQueuedPromptsCacheForTests");var Sc="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 wc(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(wc,"toReplRuntimeAutoModeSettings");async function xc(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??Cs(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}o(xc,"createInteractiveContext");function Cs(){return lI()}o(Cs,"generateSessionId");function Er(e){e.lastAccessed=new Date().toISOString()}o(Er,"touchContext");async function Tc(e){let t=await $I({userKodaxDir:yI(),projectRoot:e.projectRoot}),n;return{getGuardrail:o(()=>n||(n=MI({rules:t.merged,getToolProjection:o(i=>(Bl(i)??ry(i))?.toClassifierInput,"getToolProjection"),getToolSideEffect:o(i=>(Bl(i)??ry(i))?.sideEffect,"getToolSideEffect"),resolveProvider:o(i=>{try{return Ko(i)}catch{return}},"resolveProvider"),defaultProvider:e.getCurrentProviderName(),defaultModel:e.getCurrentModel()??"",getDefaultProvider:e.getCurrentProviderName,getDefaultModel:o(()=>e.getCurrentModel()??"","getDefaultModel"),askUser:e.askUser,allowOnClassifierFailure:o(i=>Sv(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:[wv],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(Tc,"bootstrapAutoMode");var Is=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=ga(i.lineage,n,r);if(!s)return null;let a={...structuredClone(i),messages:Lt(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=ya(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=Si(i.lineage,n);if(!s)return null;let a=r?.sessionId??await Ta(),c={messages:Lt(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??wa(r.lineage);if(!i)return null;let s=xa(r.lineage,i);if(!s)return null;let a={...r,messages:Lt(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?Ji(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 Kk(){return new Is}o(Kk,"createMemorySessionStorage");import*as zk from"child_process";import*as Xk from"util";import Um from"chalk";var QF=Xk.promisify(zk.exec),ZF={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function Wu(e,t={}){let n={...ZF,...t},r=e.trim(),i=II(r);if(i)return i.startsWith("[Blocked]")&&(console.log(Um.yellow(`
58
+ ${IB}`}o(SS,"buildThinkingPreview");function MB(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user"&&e[t]?.isSessionUiOnly!==!0)return t;return 0}o(MB,"findActiveRoundStartIndex");function De(e,t,n,r,i){let s=jt(n),a=EB(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(De,"pushWrappedRows");function ac(e,t){e.push({key:t,text:" "})}o(ac,"pushBlankRow");function pt(e,t=0){return Math.max(20,e-t)}o(pt,"getBodyWidth");function _B(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(_B,"buildToolInputPreview");function AB(e,t,n,r,i,s=!1,a=!1){De(e,`${t}-tool-${n.id}-main`,`${_R(n.status)} ${Iu({tool:n,count:r})}`,pt(i,2),{color:AR(n.status),indent:2,bold:n.status===z.Executing}),mS(n).forEach((u,f)=>{let p=pS(u);De(e,`${t}-tool-${n.id}-explanation-${f}`,u,pt(i,4),{color:p,indent:4})});let l=n.status===z.Success&&typeof n.output=="string"&&n.output.trim().length>0&&xB(n)&&CB(e,`${t}-tool-${n.id}`,n.output,i,a);if(s){let u=_B(n),f=a?u:u.slice(0,6);f.forEach((p,h)=>{De(e,`${t}-tool-${n.id}-input-${h}`,p,pt(i,4),{color:"dim",indent:4})}),!a&&u.length>f.length&&De(e,`${t}-tool-${n.id}-input-more`,`... (${u.length-f.length} more lines)`,pt(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)=>{De(e,`${t}-tool-${n.id}-output-${m}`,h,pt(i,4),{color:"dim",indent:4})});let p=u.length;!a&&p>f.length&&De(e,`${t}-tool-${n.id}-output-more`,`... (${p-f.length} more lines)`,pt(i,4),{color:"dim",indent:4})}}o(AB,"buildToolRows");function LB(e,t,n,r){let i=n.status===z.Executing,s=i?"":`${_R(n.status)} `;De(e,`${t}-tool-${n.id}-main`,`${s}${Iu({tool:n,count:1})}`,pt(r,2),{color:AR(n.status),indent:2,bold:i,spinner:i}),mS(n).forEach((c,l)=>{let u=pS(c);De(e,`${t}-tool-${n.id}-explanation-${l}`,c,pt(r,4),{color:u,indent:4})})}o(LB,"buildLiveToolRows");function LR(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:C=!1,managedAgentMode:w,managedPhase:T,managedHarnessProfile:v,managedWorkerTitle:A,managedRound:D,managedMaxRounds:k,lastLiveActivityLabel:E,liveStatusLines:P=[],currentTodoActiveForm:B,showFullThinking:$=!1,showDetailedTools:G=!1,showAllContent:re=!1,showLiveProgressRows:X=!0}=e,y=[];for(let _ of t)switch(_.type){case"user":De(y,`${_.id}-header`,`You [${vu(_.timestamp)}]`,n,{color:"primary",bold:!0,itemId:_.id}),De(y,`${_.id}-body`,um(_.text),pt(n,2),{color:"text",indent:2,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break;case"assistant":{let ee=yS(re?_.text:_.compactText??_.text);De(y,`${_.id}-header`,`Assistant [${vu(_.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:_.isStreaming,itemId:_.id}),De(y,`${_.id}-body`,ee,pt(n,2),{color:"text",indent:2,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break}case"system":De(y,`${_.id}-header`,`System [${vu(_.timestamp)}]`,n,{color:"dim",bold:!0,itemId:_.id}),De(y,`${_.id}-body`,_.text,pt(n,2),{color:"dim",indent:2,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break;case"tool_group":De(y,`${_.id}-header`,`Tools [${vu(_.timestamp)}]`,n,{color:"accent",bold:!0,itemId:_.id}),cm(_.tools).forEach(ee=>AB(y,_.id,ee.tool,ee.count,n,G,re)),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break;case"thinking":{De(y,`${_.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:_.id});let ee=MR()&&!$&&!re?RB(_.compactText??_.text):void 0;if(ee?.hasMore){De(y,`${_.id}-body`,`${ee.summary}${bB}`,pt(n,2),{color:"thinking",indent:2,italic:!0,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break}let W=re?SS(_.text,i,$,re):_.compactText??SS(_.text,i,$,re);De(y,`${_.id}-body`,W,pt(n,2),{color:"thinking",indent:2,italic:!0,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break}case"error":De(y,`${_.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:_.id}),De(y,`${_.id}-body`,_.text,pt(n,2),{color:"error",indent:2,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break;case"info":De(y,`${_.id}-body`,`${_.icon??"\u2139"} ${yS(re?_.text:_.compactText??_.text)}`,n,{color:"info",itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break;case"event":De(y,`${_.id}-body`,`${_.icon??">"} ${re?_.text:_.compactText??_.text}`,n,{color:"text",itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break;case"hint":De(y,`${_.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:_.id}),De(y,`${_.id}-body`,_.text,pt(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";De(y,`${_.id}-header`,`${ee} [${vu(_.timestamp)}]`,n,{color:"warning",bold:!0,itemId:_.id}),De(y,`${_.id}-body`,_.text,pt(n,2),{color:"dim",indent:2,itemId:_.id}),y.push({key:`${_.id}-blank`,text:" ",itemId:_.id});break}default:break}if(X&&m.length>0&&(m.forEach(_=>{if(De(y,`iteration-${_.iteration}-header`,`\u2500\u2500 Round ${_.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),_.thinkingSummary){let ee=_.thinkingLength>60?` (${_.thinkingLength} chars total)`:"";De(y,`iteration-${_.iteration}-thinking`,`\u{1F4AD} ${_.thinkingSummary}${ee}`,pt(n,1),{color:"thinking",indent:1,italic:!0})}if(_.response){let ee=_.response.slice(0,200);De(y,`iteration-${_.iteration}-response`,ee,pt(n,1),{color:"text",indent:1}),_.response.length>200&&De(y,`iteration-${_.iteration}-response-more`,`... (${_.response.length} chars total)`,pt(n,1),{color:"dim",indent:1})}_.toolsUsed.length>0&&De(y,`iteration-${_.iteration}-tools`,`* tools: ${_.toolsUsed.join(", ")}`,pt(n,1),{color:"accent",indent:1}),ac(y,`iteration-${_.iteration}-blank`)}),De(y,"iteration-current-header",`\u2500\u2500 Round ${g} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),ac(y,"iteration-current-blank")),r&&c){let _=SS(c,i,$,re);De(y,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),De(y,"thinking-stream-body",_,pt(n,2),{color:"thinking",indent:2,italic:!0}),ac(y,"thinking-stream-blank")}if(r){let _="Thinking",ee="",W=kB(E,A),le=A??"Scout",de=T==="routing"?`[${w?w.toUpperCase():"AMA"} Routing] `:T==="preflight"?`[${w?w.toUpperCase():"AMA"} ${le}] `:T==="verifying"?`[${w?w.toUpperCase():"AMA"} Verifying] `:v?`[${w?w.toUpperCase():"AMA"} ${A??"Worker"}] `:"",he=f.filter(te=>te.status===z.Executing).length,_e=f.filter(te=>te.status===z.Success).length,fe=f.filter(te=>te.status===z.Error).length,Te=f.filter(te=>te.status===z.Cancelled).length,Pe=f.length>0&&(he>0||!l);if(C)_="Compacting";else if(T==="verifying")ee=de,_="checking agent output";else if(Pe){let te=[];if(he>0&&te.push(`${he} running`),_e>0&&te.push(`${_e} done`),fe>0&&te.push(`${fe} error`),Te>0&&te.push(`${Te} cancelled`),te.length===0&&te.push(`${f.length} tools`),De(y,"loading-tools-header",`${de}[Tools] ${te.join(", ")}`,n,{color:"primary",bold:!0,spinner:he>0}),f.forEach(oe=>{LB(y,"loading-tools",oe,n)}),ac(y,"loading-tools-blank"),he>0&&!l&&!X)return y}else if(B)ee=de||"[Plan] ",_=B;else if(u)ee=de||"[Tool] ",_=W?.startsWith("[Tools]")?W:lm(u,h,p);else if(s){ee=de||"[Thinking] ";let te=D&&k&&D>1?` round ${D}/${k}`:"";_=a>0?`${a} chars${te}`:W?`${W}${te}`:`processing${te}`}else W&&(_=W);X&&De(y,"loading-indicator",`${ee}${_}...`,n,{color:"accent",spinner:!0})}if(X&&P.length>0&&(De(y,"live-status-header","Live status",n,{color:"dim",bold:!0}),P.forEach((_,ee)=>{De(y,`live-status-${ee}`,_,pt(n,2),{color:"dim",indent:2})}),ac(y,"live-status-blank")),l){let _=l.lastIndexOf(`
59
+ `),ee=_>=0?l.slice(0,_+1):"";ee.length>0&&(De(y,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),De(y,"streaming-body",ee,pt(n,2),{color:"text",indent:2}),ac(y,"streaming-blank"))}return y}o(LR,"buildTranscriptRows");function PB(e,t,n=1e3,r=!1,i=!1,s=!1){return cc(e,t,n,r,void 0,i,s)}o(PB,"buildStaticTranscriptSections");var RR=new WeakMap,kR=new Set(["thinking","tool_group"]);function OB(){return process.env.KODAX_TRANSCRIPT_TIGHT!=="0"}o(OB,"isTightRunSpacingEnabled");function $B(e,t){return OB()?t.map((n,r)=>{let i=e[r],s=e[r+1];if(!i||!s||!kR.has(i.type)||!kR.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($B,"suppressTightRunBlanks");function cc(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}|${MR()?1:0}|${a?1:0}`,p=RR.get(l);if(p!==void 0&&p.sig===f)return p.section;let h={key:l.id,rows:LR({items:[l],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:u,showFullThinking:a})};return RR.set(l,{sig:f,section:h}),h});return $B(e,c)}o(cc,"buildHistoryItemTranscriptSections");function NB(e,t){return{key:e,rows:LR(t)}}o(NB,"buildDynamicTranscriptSection");function dm(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=MB(t),u=t.slice(0,l),f=t.slice(l);return{staticSections:PB(u,n,r,i,s,a),activeItems:f}}o(dm,"buildTranscriptStaticPortion");function fm(e){let{activeItems:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:i=!1,showAllContent:s=!1,showFullThinking:a=!1,expandedItemKeys:c,...l}=e,u=cc(t,n,r,i,c,s,a),f=NB("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(fm,"buildTranscriptDynamicPortion");function pm(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:Ss(t.sections),previewSections:t.previewSections,previewRows:Ss(t.previewSections)}}o(pm,"composeTranscriptRenderModel");function PR(e,t,n){let r=pm(e,t);return n?{...r,staticSections:[n,...r.staticSections]}:r}o(PR,"buildInlinePromptRenderModel");function OR(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(OR,"splitInlineLedgerModel");function DB(e){return e.replace(/^(You|Assistant|Tools|System) \[\d{1,2}:\d{2}[^\]]*\]$/u,"$1")}o(DB,"stripHeaderTimestamp");function $R(e){let t=5381;for(let n of e.rows){let r=DB(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($R,"identifyInlineCommitSection");function mm(e){let t=dm({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=fm({...r,activeItems:t.activeItems});return pm(t,i)}o(mm,"buildTranscriptRenderModel");function Ss(e){return e.flatMap(t=>t.rows)}o(Ss,"flattenTranscriptSections");function NR(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(NR,"identifyTranscriptSection");function wS(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:Ss(t),previewSections:[...e.previewSections],previewRows:Ss(e.previewSections)}}o(wS,"materializeTranscriptRenderModel");function DR(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?xS(e,a,c):e}o(DR,"resolveVisibleTranscriptRows");var BR=200,BB=50,FR=30;function HR(e,t,n=BR,r=BB){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(HR,"computeTranscriptCapStart");function WR(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(WR,"sliceHistoryToRecentRounds");function jR(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(jR,"sliceHistoryToRecentCanonicalItems");function UR(e,t=BR){let n=e.reduce((r,i)=>r+(i.isSessionUiOnly===!0?1:0),0);return t+n}o(UR,"transcriptRenderCapForHistory");function xS(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(xS,"getVisibleTranscriptRows");function VR(e,t,n){if(!t||!n||n<=0)return 0;let r=Ss(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(VR,"resolveScrollOffsetForTranscriptItem");function GR(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(GR,"resolveTranscriptColor");var hm="__transcript_hidden_divider__";function KR(e,t){let n=e===1?"message":"messages";return{id:hm,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(KR,"buildTranscriptHiddenDivider");function TS(e){return e.id===hm}o(TS,"isTranscriptHiddenDivider");var zR=new as(500);function FB(e){let t=wn(e),n=[],r=[],i=0,s=0;for(let a of t)n.push(i),r.push(s),i+=a.length,s+=gp(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}o(FB,"buildTranscriptTextMetrics");function bu(e){let t=zR.get(e);if(t)return t;let n=FB(e);return zR.set(e,n),n}o(bu,"getTranscriptTextMetrics");function ho(e){return bu(e).length}o(ho,"getTranscriptTextLength");function XR(e){return bu(e).displayWidth}o(XR,"getTranscriptTextDisplayWidth");function gm(e,t){let n=bu(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}o(gm,"charAtTranscriptText");function lc(e,t,n){let r=bu(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(lc,"sliceTranscriptText");function YR(e,t){let n=bu(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(YR,"resolveTranscriptTextIndexAtVisualColumn");function ym(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}o(ym,"formatTimestamp");function HB(e,t){let n=e.split(`
60
+ `),r=n.slice(0,t),i=n.length>t;return{lines:r,hasMore:i}}o(HB,"truncateLines");function WB(e){switch(e){case z.Scheduled:return"\u25CB";case z.Validating:return"\u25D0";case z.AwaitingApproval:return"\u23F8";case z.Executing:return"\u25CF";case z.Success:return"\u2713";case z.Error:return"\u2717";case z.Cancelled:return"\u2298";default:return"?"}}o(WB,"getToolStatusIcon");function jB(e,t){switch(e){case z.Scheduled:case z.Validating:return t.colors.dim;case z.AwaitingApproval:return t.colors.accent;case z.Executing:return t.colors.primary;case z.Success:return t.colors.success;case z.Error:return t.colors.error;case z.Cancelled:return t.colors.dim;default:return t.colors.text}}o(jB,"getToolStatusColor");var UB=Gn(({item:e,theme:t})=>{let n=Qr(()=>um(e.text),[e.text]);return Je(M,{flexDirection:"column",marginBottom:1,children:[Je(M,{children:[Ce(b,{color:t.colors.primary,bold:!0,children:"You"}),Je(b,{dimColor:!0,children:[" [",ym(e.timestamp),"]"]})]}),Ce(M,{marginLeft:2,children:Ce(b,{color:t.colors.text,children:n})})]})}),VB=Gn(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:i,hasMore:s}=HB(r,n);return Je(M,{flexDirection:"column",marginBottom:1,children:[Je(M,{children:[Ce(b,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&Je(CS,{children:[Ce(b,{children:" "}),Ce(Vn,{color:t.colors.accent})]}),Je(b,{dimColor:!0,children:[" [",ym(e.timestamp),"]"]})]}),Je(M,{marginLeft:2,flexDirection:"column",children:[i.map((a,c)=>Ce(b,{color:t.colors.text,children:a||" "},c)),s&&Je(b,{dimColor:!0,children:["... (",r.split(`
61
+ `).length-n," more lines)"]})]})]})}),GB=Gn(({item:e,theme:t})=>Je(M,{flexDirection:"column",marginBottom:1,children:[Je(M,{children:[Ce(b,{color:t.colors.dim,bold:!0,children:"System"}),Je(b,{dimColor:!0,children:[" [",ym(e.timestamp),"]"]})]}),Ce(M,{marginLeft:2,children:Ce(b,{dimColor:!0,children:e.text})})]})),KB=Gn(({tool:e,count:t=1,theme:n})=>{let r=WB(e.status),i=jB(e.status,n);return Je(M,{flexDirection:"column",marginLeft:2,children:[Je(M,{children:[Je(b,{color:i,children:[r," "]}),Ce(b,{color:n.colors.text,bold:!0,children:Iu({tool:e,count:t})})]}),e.error&&Ce(M,{marginLeft:2,children:Ce(b,{color:n.colors.error,children:e.error})})]})}),zB=Gn(({item:e,theme:t})=>{let n=cm(e.tools);return Je(M,{flexDirection:"column",marginBottom:1,children:[Je(M,{children:[Ce(b,{color:t.colors.accent,bold:!0,children:"Tools"}),Je(b,{dimColor:!0,children:[" [",ym(e.timestamp),"]"]})]}),n.map(r=>Ce(KB,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),XB=Gn(({item:e,theme:t})=>Je(M,{flexDirection:"column",marginBottom:1,children:[Ce(M,{children:Ce(b,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),Ce(M,{marginLeft:2,children:Ce(b,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),YB=Gn(({item:e,theme:t})=>Je(M,{flexDirection:"column",marginBottom:1,children:[Ce(M,{children:Je(b,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),Ce(M,{marginLeft:2,children:Ce(b,{color:t.colors.error,children:e.text})})]})),qB=Gn(({item:e,theme:t})=>Ce(M,{flexDirection:"column",marginBottom:1,children:Je(b,{color:t.colors.text,children:[Ce(b,{color:t.colors.accent,bold:!0,children:e.icon??">"}),Ce(b,{children:" "}),e.compactText??e.text]})})),JB=Gn(({item:e,theme:t})=>Ce(M,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:Je(b,{color:t.colors.info,children:[Je(b,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),QB=Gn(({item:e,theme:t})=>Je(M,{flexDirection:"column",marginBottom:1,children:[Ce(M,{children:Je(b,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),Ce(M,{marginLeft:2,children:Ce(b,{dimColor:!0,children:e.text})})]})),JR=Gn(({item:e,theme:t,maxLines:n=1e3})=>{let r=Qr(()=>ae("dark"),[]),i=t??r;switch(e.type){case"user":return Ce(UB,{item:e,theme:i});case"assistant":return Ce(VB,{item:e,theme:i,maxLines:n});case"system":return Ce(GB,{item:e,theme:i});case"tool_group":return Ce(zB,{item:e,theme:i});case"thinking":return Ce(XB,{item:e,theme:i});case"error":return Ce(YB,{item:e,theme:i});case"event":return Ce(qB,{item:e,theme:i});case"info":return Ce(JB,{item:e,theme:i});case"hint":return Ce(QB,{item:e,theme:i});default:return Ce(M,{children:Ce(b,{dimColor:!0,children:"Unknown item type"})})}});function ZB(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(ZB,"areTranscriptRowPropsEqual");var QR=Gn(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:i})=>{let s=GR(t,e.color),a=e.text===" "?"":e.text,c=a||" ",l=i&&a?lc(a,i.start,i.end):"",u=i&&a?lc(a,0,i.start):a,f=i&&a?lc(a,i.end):"",p=r&&!i,h=!p&&e.color==="dim",m={bold:e.bold||p,italic:e.italic,dimColor:h};return Je(M,{marginLeft:e.indent??0,children:[e.spinner&&n&&Je(CS,{children:[Ce(Vn,{color:t.colors.accent,theme:t}),Ce(b,{children:" "})]}),Ce(b,{color:p?t.colors.accent:s,...m,children:i&&a?Je(CS,{children:[u?Ce(b,{color:p?t.colors.accent:s,...m,children:u}):null,Ce(b,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:l}),f?Ce(b,{color:p?t.colors.accent:s,...m,children:f}):null]}):c})]})},ZB),IS=Gn(({section:e,theme:t,animateSpinners:n=!0})=>Ce(M,{flexDirection:"column",children:e.rows.map(r=>Ce(QR,{row:r,theme:t,animateSpinners:n},r.key))})),go=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:C,managedHarnessProfile:w,managedWorkerTitle:T,managedRound:v,managedMaxRounds:A,managedGlobalWorkBudget:D,managedBudgetUsage:k,managedBudgetApprovalRequired:E,lastLiveActivityLabel:P,liveStatusLines:B,viewportRows:$,viewportWidth:G,scrollOffset:re=0,animateSpinners:X=!0,windowed:y=!1,showFullThinking:_=!1,showDetailedTools:ee=!1,showAllContent:W=!1,showLiveProgressRows:le=!0,selectedItemId:de,expandedItemKeys:he,onMetricsChange:_e,onVisibleRowsChange:fe,rendererWindow:Te,selectedTextRanges:Pe,transcriptModel:te,visibleRowsOverride:oe})=>{let Ie=Qr(()=>ae("dark"),[]),{stdout:nt}=Xr(),vt=G??nt?.columns??80,Ke=Qr(()=>te??mm({items:e,viewportWidth:vt,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:C,managedHarnessProfile:w,managedWorkerTitle:T,managedRound:v,managedMaxRounds:A,managedGlobalWorkBudget:D,managedBudgetUsage:k,managedBudgetApprovalRequired:E,lastLiveActivityLabel:P,liveStatusLines:B,windowed:y,showFullThinking:_,showDetailedTools:ee,showAllContent:W,showLiveProgressRows:le,expandedItemKeys:he}),[te,e,vt,t,n,r,i,s,a,c,l,u,f,p,h,m,g,C,w,T,v,A,D,k,E,P,B,y,_,ee,W,le,he]),Ve=Ke.staticSections,me=Ke.rows,Re=Ke.previewRows,K=Qr(()=>[...me,...Re],[Re,me]),St=!(K.length>0)&&e.length===0&&!t,Vt=Qr(()=>y||Te||oe?K:me,[K,Te,me,oe,y]),Xe=Qr(()=>oe||DR(Vt,{viewportTop:Te?Math.max(0,Te.viewportTop):void 0,viewportHeight:Te?Math.max(0,Te.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:$,scrollOffset:re,windowed:y}),[Te,re,$,oe,y,Vt]),_t=Qr(()=>oe||y||Te?Xe:K,[K,Te,Xe,oe,y]),Qt=Qr(()=>K,[K]),qn=Te?Math.max(0,Te.viewportHeight):$;return qR(()=>{_e?.({scrollHeight:K.length,viewportHeight:Te?Math.max(0,Te.viewportHeight):qn??K.length})},[K.length,qn,_e,Te]),qR(()=>{fe?.({rows:_t,allRows:Qt})},[Qt,fe,_t]),St?Ce(M,{paddingY:1,children:Ce(b,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):Je(M,{flexDirection:"column",children:[!y&&Ve.length>0&&Ce(Ja,{items:Ve,children:o(pn=>Ce(IS,{section:pn,theme:Ie,animateSpinners:X},pn.key),"children")}),_t.map(pn=>Ce(QR,{row:pn,theme:Ie,animateSpinners:X,selectedItem:de?pn.key.startsWith(`${de}-`):!1,selectionRange:Pe?.get(pn.key)},pn.key))]})},"MessageList");var ZR=o(({role:e,content:t})=>{let n=Qr(()=>ae("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return Je(M,{flexDirection:"column",marginBottom:1,children:[Ce(b,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),Ce(b,{children:t})]})},"SimpleMessageDisplay");import{jsx as bS,jsxs as Tm}from"react/jsx-runtime";import gF,{useMemo as RS}from"react";function Ru(e,t,n){let r=Zg({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(Ru,"formatCompactionPolicy");function ek(e,t,n=0,r){let i=ZC(e,n);return Zg({triggerPercent:t,triggerTokens:r},e,i).triggerTokens}o(ek,"resolveCompactionThresholdTokens");var eF="\u{1F504}",tF="\u2588",nF="\u2592",rF="\u2192",iF=" \xB7 ";function oF(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(oF,"formatReasoningModeShort");function sF(e){if(e)return e==="none"?"off":e}o(sF,"formatEffortShort");function aF(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(aF,"getReasoningColor");function tk(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}o(tk,"formatTokenCount");function cF(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${tF.repeat(t)}${nF.repeat(n)}`}o(cF,"createMiniProgressBar");function lF(e,t,n,r,i){if(t===0)return"green";let s=ek(t,n,r,i);return e>=s?"red":e>=s*(2/3)?"yellow":"green"}o(lF,"getContextColor");function uF(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(uF,"getPermissionModeColor");function dF(e,t){let n=Gf(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}o(dF,"buildPermissionModeText");function fF(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(fF,"formatToolAction");function Sm(e,t){return t&&t>0?`${e} (${t} chars)`:e}o(Sm,"formatThinkingStatus");function wm(e,t,n){let r=fF(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}o(wm,"formatToolStatus");function vS({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 - ${wm(t,s,a)}`:n?Sm("Routing",r):"Routing";if(c==="preflight"){let m=u??"Scout";return h?`${m} - ${h}`:t?`${m} - ${wm(t,s,a)}`:n?Sm(m,r):m}if(c==="verifying")return"Verifying";if(l){let m=u??"Worker";if(f===!0&&!h&&!t&&!n){let g=p??0,C=g>1?`waiting for ${g} children`:g===1?"waiting for 1 child":"idle - resuming";return`${m} - ${C}`}return h?`${m} - ${h}`:t?`${m} - ${wm(t,s,a)}`:n?Sm(m,r):m}if(h)return h;if(t)return wm(t,s,a);if(n)return Sm("Thinking",r)}o(vS,"buildBusyStatusText");function pF({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(pF,"resolveIterationSegments");function mF(e){if(e.length!==0)return`${eF} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(iF)}`}o(mF,"formatLabeledIterationStatus");function hF(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:C,toolInputCharCount:w,toolInputContent:T,currentIteration:v,maxIter:A,contextUsage:D,learning:k,showBusyStatus:E=!0,managedPhase:P,managedHarnessProfile:B,managedWorkerTitle:$,managedRound:G,managedMaxRounds:re,managedGlobalWorkBudget:X,managedBudgetUsage:y,managedIdleWaiting:_,managedIdleWaitingPendingCount:ee}=e,W=[{id:"agent-mode",text:`KodaX - ${r.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:dF(n,e.autoModeEngine),color:uF(n)}],le=g??sF(m)??oF(h);W.push({id:"reasoning-mode",text:le,color:aF(le)});let de=pF({agentMode:r,managedPhase:P,managedHarnessProfile:B,managedRound:G,managedMaxRounds:re,managedGlobalWorkBudget:X,managedBudgetUsage:y,currentIteration:v,maxIter:A}),he=mF(de);if(he){let fe=Math.max(...de.map(Pe=>Pe.current/Pe.max)),Te="green";fe>=.8?Te="red":fe>=.5&&(Te="yellow"),W.push({id:"iteration-status",text:he,color:Te})}W.push({id:"session-id",text:t,color:"dim"});let _e=E?vS({activeToolCount:l,currentTool:c,isThinkingActive:f,thinkingCharCount:p,isCompacting:C,toolInputCharCount:w,toolInputContent:T,managedPhase:P,managedHarnessProfile:B,managedWorkerTitle:$,managedIdleWaiting:_,managedIdleWaitingPendingCount:ee}):void 0;if(_e&&W.push({id:"busy-status",text:_e,color:"dim"}),W.push({id:"provider-model",text:`${i}/${s}`,color:"secondary"}),D&&D.contextWindow!==0){let fe=Math.round(D.currentTokens/D.contextWindow*100),Te=tk(D.currentTokens),Pe=tk(D.contextWindow),te=cF(fe);W.push({id:"context-usage",text:`${Te}/${Pe} ${te} ${fe}%`,color:lF(D.currentTokens,D.contextWindow,D.triggerPercent,D.reservedResponseTokens,D.triggerTokens)})}if(k&&(k.ready>0||k.newlyActive>0||k.attention>0)){let fe=[...k.ready>0?[`${k.ready}R`]:[],...k.newlyActive>0?[`${k.newlyActive}N`]:[],...k.attention>0?[`${k.attention}!`]:[]];W.push({id:"learning",text:`Learn:${fe.join("/")}`,color:k.attention>0||k.ready>0?"yellow":"cyan",tone:k.attention>0||k.ready>0?"warning":"accent"})}return a&&W.push({id:"token-usage",text:`${a.input}${rF}${a.output} (${a.total})`,color:"dim"}),W}o(hF,"buildStatusBarSegments");function xm(e){let t=hF(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}o(xm,"buildStatusBarViewModel");function yF(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(yF,"resolveViewModelSegmentColor");var ws=o(({viewModel:e,...t})=>{let n=RS(()=>ae("dark"),[]),r=RS(()=>e??xm(t),[t,e]);return bS(M,{paddingX:1,children:r.segments.map((i,s)=>Tm(gF.Fragment,{children:[bS(b,{color:yF(i,n),bold:i.bold,children:i.text}),s<r.segments.length-1?bS(b,{dimColor:!0,children:" | "}):null]},i.id))})},"StatusBar"),nk=o(({permissionMode:e,provider:t,model:n})=>{let r=RS(()=>ae("dark"),[]);return Tm(M,{children:[Tm(b,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),Tm(b,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as yo,jsxs as vm}from"react/jsx-runtime";import{useState as kS,useCallback as Cm,useMemo as rk}from"react";function Im(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}o(Im,"generateId");function SF(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(SF,"messageToHistoryItem");var ik=o(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:i="ama"})=>{let{stdout:s}=Xr(),a=rk(()=>ae("dark"),[]),[c,l]=kS({messages:[],isLoading:!1,sessionId:Im()}),[u,f]=kS(null),[p,h]=kS(),m=Cm(async T=>{if(!T.trim())return;let v={id:Im(),role:"user",content:T,timestamp:Date.now()};l(A=>({...A,messages:[...A.messages,v],isLoading:!0}));try{await n(T)}catch(A){let D={id:Im(),role:"system",content:`Error: ${A instanceof Error?A.message:"Unknown error"}`,timestamp:Date.now()};l(k=>({...k,messages:[...k.messages,D],isLoading:!1}))}finally{l(A=>({...A,isLoading:!1}))}},[n]),g=Cm((T,v)=>{let A={id:Im(),role:T,content:v,timestamp:Date.now()};l(D=>({...D,messages:[...D.messages,A]}))},[]),C=Cm((T,v)=>{f({input:T,output:v,total:T+v})},[]),w=Cm(T=>{h(T)},[]);return vm(M,{flexDirection:"column",children:[yo(M,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:yo(go,{items:c.messages.map(SF),isLoading:c.isLoading})}),yo(M,{flexShrink:0,children:yo(ys,{onSubmit:o(T=>m(T.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),yo(M,{flexShrink:0,children:yo(ws,{sessionId:c.sessionId,permissionMode:r,agentMode:i,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),ok=o(({model:e,provider:t,onInput:n})=>{let r=rk(()=>ae("dark"),[]);return vm(M,{flexDirection:"column",children:[vm(M,{marginBottom:1,children:[yo(b,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),vm(b,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),yo(ys,{onSubmit:o(i=>n(i.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as wF}from"react/jsx-runtime";var bm=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:C,onWindowChange:w,overscanRows:T})=>wF(Jy,{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:C,onWindowChange:w,overscanRows:T}),"FullscreenTranscriptLayout");import{jsx as sk}from"react/jsx-runtime";function uc({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(uc,"buildMessageActionsText");var Rm=o(({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:i=!1,matchNavigation:s=!1,dismissAction:a})=>{let c=ae("dark"),l=uc({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:r,selectionNavigation:i,matchNavigation:s,dismissAction:a});return l?sk(M,{paddingX:1,children:sk(b,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as ak}from"react/jsx-runtime";function ES({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(ES,"buildMessageSelectorText");var ck=o(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let i=ae("dark"),s=ES({itemSummary:e,itemKind:t,position:n,detailState:r});return s?ak(M,{paddingX:1,children:ak(b,{color:i.colors.dim,children:s})}):null},"MessageSelector");import{jsx as dc,jsxs as xF}from"react/jsx-runtime";import{useMemo as lk}from"react";function km(e,t){return Math.max(1,xn(e.length>0?e.split(`
62
+ `):[""],Math.max(1,t),0,0).visualLines.length)}o(km,"countWrappedRows");var Em=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,C=t?.navigationCapabilities?.selection??!1,w=n?.statusText,T=n?.matches?.length??0,v=n?.surface,A=i.viewportWidth??80,D=Math.max(1,A-2),k=n?.query?.trim()?"close-search":a||p||h||g||C?"clear":void 0,E=ES({itemSummary:a,itemKind:l,position:c,detailState:u}),P=lk(()=>uc({copyMessage:p,copyToolInput:h,copyOnSelect:m,toggleDetail:g,selectionNavigation:C,matchNavigation:!!w&&T>0,dismissAction:k}),[p,h,C,g,k,T,w,m]),B=lk(()=>{if(!s)return 0;let G=0;return e?.hintText&&(G+=km(e.hintText,D)),E&&(G+=km(E,D)),P&&(G+=km(P,D)),w&&(G+=km(w,D)),v&&(G+=1),G},[P,e?.hintText,D,s,w,v,E]),$=typeof i.viewportRows=="number"?Math.max(1,i.viewportRows-B):i.viewportRows;return xF(M,{flexDirection:"column",flexGrow:i.windowed?0:1,children:[s&&e?.hintText?dc(M,{paddingX:1,children:dc(b,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||h||m||g||C||T>0)?dc(Rm,{copyMessage:p,copyToolInput:h,copyOnSelect:m,toggleDetail:g,selectionNavigation:C,matchNavigation:!!w&&T>0,dismissAction:k}):null,s&&w?dc(M,{paddingX:1,children:dc(b,{dimColor:!0,children:w})}):null,s?v:null,dc(go,{...i,viewportRows:$})]})},"TranscriptViewport");import{jsx as uk}from"react/jsx-runtime";var Mm=o(e=>uk(M,{flexDirection:"column",children:uk(ys,{...e})}),"PromptComposer");import{jsx as xs,jsxs as _m}from"react/jsx-runtime";import dk from"react";var fk=" \xB7 ",ku=o(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ae("dark");return t.length===0?null:xs(M,{flexGrow:1,children:t.map((r,i)=>_m(dk.Fragment,{children:[xs(b,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),i<t.length-1?xs(b,{dimColor:!0,children:fk}):null]},r.id))})},"PromptFooterLeftSide"),Eu=o(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ae("dark");return t.length===0?null:xs(M,{justifyContent:"flex-end",children:t.map((r,i)=>_m(dk.Fragment,{children:[xs(b,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),i<t.length-1?xs(b,{dimColor:!0,children:fk}):null]},r.id))})},"PromptFooterRightSide"),Mu=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})=>_m(M,{flexDirection:"column",children:[e||t?_m(M,{paddingX:1,children:[xs(M,{flexGrow:1,children:e}),t]}):null,n,r,i,s,a,c,l,u,m,f,p,h]}),"PromptFooter");import{jsx as MS,jsxs as pk}from"react/jsx-runtime";var Am=o(({sections:e,title:t="Help"})=>{let n=ae("dark"),r=e.filter(i=>i.items.length>0);return r.length===0?null:pk(M,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[MS(b,{color:n.colors.accent,bold:!0,children:t}),r.map(i=>pk(M,{flexDirection:"column",children:[MS(b,{color:n.colors.primary,bold:!0,children:i.title}),MS(b,{dimColor:!0,children:i.items.map(s=>s.label).join(" | ")})]},i.id))]})},"PromptHelpMenu");import{jsx as mk}from"react/jsx-runtime";import{createContext as yk,useContext as Sk,useReducer as TF,useCallback as sn,useMemo as CF}from"react";var hk=150;function Au(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}o(Au,"generateId");function _u(e){let t=e.timestamp;return{...e,id:Au(),timestamp:t!==void 0&&Number.isFinite(t)&&t>=0?t:Date.now()}}o(_u,"createHistoryItem");function _S(e){if(e.length<=hk)return e;let t=0,n=e.length-hk;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(_S,"trimCanonicalHistoryToRounds");function gk(e){if(!e.some(u=>u.isSessionUiOnly))return _S(e);let t=e.filter(u=>!u.isSessionUiOnly),n=_S(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=_S(a),l=new Set([...n,...c]);return e.filter(u=>l.has(u))}o(gk,"trimHistoryToRounds");function AS(e,t){return e.filter(n=>n.type==="user"&&typeof n.id=="string"&&!t.has(n.id))}o(AS,"selectUncommittedLedgerUserItems");function Lm(e){return{...e,id:Au(),startTime:Date.now()}}o(Lm,"createToolCall");function IF(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:gk([...e.history,t.payload])};case"BULK_ADD_HISTORY_ITEMS":return{...e,history:gk([...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{...Uf,sessionId:e.sessionId};default:return e}}o(IF,"uiReducer");var wk=yk(null),xk=yk(null);function Lu({children:e,initialState:t}){let[n,r]=TF(IF,{...Uf,...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=_u(E);r({type:"ADD_HISTORY_ITEM",payload:P})},[]),l=sn(E=>{E.length!==0&&r({type:"BULK_ADD_HISTORY_ITEMS",payload:E.map(_u)})},[]),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=Lm(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})},[]),C=sn(E=>{r({type:"SET_MODE",payload:E})},[]),w=sn(E=>{r({type:"SET_PROVIDER",payload:E})},[]),T=sn(E=>{r({type:"SET_MODEL",payload:E})},[]),v=sn(E=>{r({type:"SET_TOKEN_USAGE",payload:E})},[]),A=sn(E=>{r({type:"SET_ERROR",payload:E})},[]),D=sn(E=>{r({type:"SET_LOADING",payload:E})},[]),k=CF(()=>({setStreamingState:i,appendToResponse:s,clearResponse:a,addHistoryItem:c,addHistoryItems:l,updateHistoryItem:u,clearHistory:f,addToolCall:p,updateToolCall:h,clearToolCalls:m,setSessionId:g,setMode:C,setProvider:w,setModel:T,setTokenUsage:v,setError:A,setLoading:D}),[i,s,a,c,l,u,f,p,h,m,g,C,w,T,v,A,D]);return mk(wk.Provider,{value:n,children:mk(xk.Provider,{value:k,children:e})})}o(Lu,"UIStateProvider");function fc(){let e=Sk(wk);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}o(fc,"useUIState");function pc(){let e=Sk(xk);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}o(pc,"useUIActions");function LS(){let e=fc(),t=pc();return{state:e,actions:t}}o(LS,"useUI");function PS(){return ae()}o(PS,"useTheme");import{jsxs as So,jsx as Pm,Fragment as vF}from"react/jsx-runtime";import{useMemo as bF}from"react";var RF=80,kF=7,EF={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function MF(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(MF,"getVisibleRange");function _F({suggestion:e,isSelected:t,width:n}){let r=PS(),i=e.icon||e.type&&EF[e.type]||"",s=i?br(i)+1:0,a=br(e.displayText||e.text),c=e.description?br(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,f=Math.max(0,u),p=Ha(e.displayText||e.text,l),h=e.description?Ha(e.description,f):"";return So(M,{children:[i&&So(b,{color:t?r.colors.accent:r.colors.dim,children:[i," "]}),Pm(b,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),h&&So(vF,{children:[Pm(b,{children:" "}),Pm(b,{color:r.colors.dim,children:Ha(e.description||"",f)})]}),t&&So(b,{color:r.colors.accent,children:[" ","\u25C0"]})]})}o(_F,"SuggestionItem");function Pu({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=kF,width:i=RF,showCount:s=!1}){let a=PS();if(!n||e.length===0)return null;let{start:c,end:l}=bF(()=>MF(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return So(M,{flexDirection:"column",marginLeft:2,children:[c>0&&So(b,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((f,p)=>{let m=c+p===t;return Pm(_F,{suggestion:f,isSelected:m,width:i},f.id)}),l<e.length&&So(b,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&So(b,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}o(Pu,"SuggestionsDisplay");import{jsx as mc,jsxs as AF}from"react/jsx-runtime";var Om=o(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let i=mo(),s=ae("dark");if(n)return null;if(!i)return e?mc(M,{height:8}):null;let{state:a,suggestions:c}=i;return a.visible&&c.length>0?r==="overlay"?AF(M,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[mc(b,{color:s.colors.accent,bold:!0,children:"Suggestions"}),mc(Pu,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):mc(M,{height:8,children:mc(Pu,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?mc(M,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as kr,jsx as dr,Fragment as OS}from"react/jsx-runtime";import LF,{useEffect as PF,useState as OF}from"react";var hc=15,Tk=Math.max(1,hc-2),$m=o(({confirm:e,request:t})=>e?kr(M,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[kr(b,{color:"yellow",bold:!0,children:[ie("dialog.confirm")," ",e.prompt]}),e.planContent?dr($F,{content:e.planContent}):null,e.instruction?dr(b,{dimColor:!0,children:e.instruction}):null]}):t?kr(M,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?kr(OS,{children:[kr(b,{color:"cyan",bold:!0,children:[ie("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 kr(OS,{children:[c>0?dr(b,{dimColor:!0,children:ie("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 ":" ",C=m?" \u2713":"",w=u.description?` - ${u.description}`:"";return dr(b,{color:h?"cyan":void 0,dimColor:!h,children:`${g}${u.label}${w}${C}`},`${u.value}-${p}`)}),l>0?dr(b,{dimColor:!0,children:ie("select.more_below",{count:l})}):null]})})(),dr(b,{dimColor:!0,children:t.multiSelect?ie("select.multiselect_hint"):ie("select.navigate_hint")})]}):kr(OS,{children:[kr(b,{color:"cyan",bold:!0,children:[ie("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0?dr(b,{dimColor:!0,children:`${ie("input.default")} ${t.defaultValue}`}):null,dr(b,{dimColor:!0,children:`${ie("input.value")} ${t.buffer||ie("input.type_response")}`}),dr(b,{dimColor:!0,children:ie("select.confirm_hint")})]}),t.error?dr(b,{color:"red",children:t.error}):null]}):null,"DialogSurface"),$F=o(({content:e})=>{let t=LF.useMemo(()=>e.split(`
63
+ `),[e]),n=t.length,r=n>hc,[i,s]=OF(0);PF(()=>{s(u=>{let f=Math.max(0,n-hc);return u>f?f:u})},[n]),Qa((u,f)=>{if(!r)return;let p=Math.max(0,n-hc);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-Tk)):f.pageDown&&s(h=>Math.min(p,h+Tk))},{isActive:!0});let a=t.slice(i,i+hc),c=i,l=Math.max(0,n-i-hc);return kr(M,{flexDirection:"column",marginTop:1,children:[r&&c>0?kr(b,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((u,f)=>dr(b,{children:u},`plan-line-${i+f}`)),r&&l>0?kr(b,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,r?dr(b,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as Ou,jsx as NF}from"react/jsx-runtime";function Ck(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}o(Ck,"normalizePendingPreview");function Ik(e){if(e.length===0)return;let t=Ck(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(Ik,"formatPendingInputsSummary");function $S(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:Ck(n)}))}o($S,"formatPendingInputsLines");function vk(e){let t=$S(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(vk,"formatPendingInputsBudgetText");var Nm=o(({pendingInputs:e})=>{let t=$S(e);if(t.length===0)return null;let n=ae("dark");return Ou(M,{flexDirection:"column",children:[t.map(r=>Ou(M,{children:[Ou(b,{color:n.colors.hint,children:["\u23F3"," "]}),Ou(b,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),NF(M,{children:Ou(b,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as bk}from"react/jsx-runtime";function DF(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}o(DF,"resolveNotificationColor");var $u=o(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=ae("dark");return t.length===0?null:bk(M,{flexDirection:"column",paddingX:1,children:t.map(r=>bk(b,{color:DF(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as Rk}from"react/jsx-runtime";var Dm=o(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=ae("dark");return Rk(M,{flexDirection:"column",paddingX:1,children:t.map((r,i)=>Rk(b,{color:n.colors.dim,children:r},`${r}-${i}`))})},"StatusNoticesSurface");import{jsxs as kk,jsx as BF}from"react/jsx-runtime";var Nu=o(({text:e})=>{let t=e?.trim();if(!t)return null;let n=ae("dark");return kk(M,{paddingX:1,children:[kk(b,{color:n.colors.hint,children:["\u22EF"," "]}),BF(b,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as Ts,jsxs as FF}from"react/jsx-runtime";function Ek({text:e,accent:t=!1,selected:n=!1}){let r=ae("dark");return Ts(M,{marginRight:1,children:Ts(b,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}o(Ek,"Pill");var Du=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:FF(M,{flexDirection:"row",paddingX:1,children:[r?Ts(M,{marginRight:1,children:Ts(Vn,{})}):null,i.map(s=>Ts(Ek,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?Ts(Ek,{text:t}):null,n?Ts(b,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import{jsx as Fu,jsxs as GF}from"react/jsx-runtime";import HF from"string-width";var NS=9,DS=3,Mk=160,WF={shouldRender:!1,activeCount:0,rows:[]};function _k(e,t=NS){let n=HF(e);return n>=t?e:`${e}${" ".repeat(t-n)}`}o(_k,"padChildActivitySymbol");function BS(e){let t=e.replace(/\s+/gu," ").trim();return t.length<=Mk?t:`${t.slice(0,Mk-3)}...`}o(BS,"truncateChildActivityDetail");function Bu(e){return!!(e?.liveOnly===!0&&(e.workflowCorrelation||e.childAgentId))}o(Bu,"shouldRouteToChildActivity");function Ak(e,t){return!!(e?.liveOnly===!0&&e.workflowCorrelation?.workflowRunId&&t&&e.workflowCorrelation.workflowRunId===t)}o(Ak,"shouldRouteWorkflowLiveOnlyNotice");function Lk(e){return!e.isTranscriptMode&&e.childActivityVisible&&(e.isLoading||e.hasWorkflowLiveSurface)}o(Lk,"shouldShowChildActivitySurface");function FS(e){let t=e.childAgentId??e.workflowCorrelation?.childAgentId??"child",n=e.workflowCorrelation?.workflowRunId;return n?`${n}:${t}`:t}o(FS,"childActivityId");function Pk(e){return e.childAgentName??e.childAgentId??e.workflowCorrelation?.childAgentId??"child"}o(Pk,"childActivityLabel");function Ok(e){return e.workflowCorrelation?"workflow":"normal"}o(Ok,"childActivitySource");function $k(e,t){let n=t?.path??t?.pattern??t?.command??t?.preview,r=typeof n=="string"&&n.trim().length>0?` ${n}`:"";return BS(`${e}${r}`)}o($k,"toolActivityDetail");function Nk(e,t){return e==="tool"&&["thinking","assistant","stream"].includes(t)}o(Nk,"suppressesChurnOverToolAction");function jF(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(jF,"formatChildActivityElapsed");function UF(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(UF,"kindLabel");function VF(e,t){let n=e.label.trim()||"child",r=e.startedAt!==void 0?` \xB7 ${jF(t-e.startedAt)}`:"",i=e.detail.trim(),s=i.length>0?`: ${i}`:"";return`${n}${r} - ${UF(e.kind)}${s}`}o(VF,"rowText");function Dk(e,t=DS,n=Date.now()){let r=e.filter(u=>u.status==="running");if(r.length===0)return WF;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:VF(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(Dk,"buildChildActivityViewModel");var Bk=NS;function KF(e){let t=ae("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;default:return t.colors.dim}}o(KF,"resolveSymbolColor");var zF=o(({row:e})=>{let t=KF(e.symbolColor);return GF(M,{flexDirection:"row",children:[Fu(M,{width:Bk,flexShrink:0,children:Fu(b,{color:t,bold:e.isActive,wrap:"truncate",children:_k(e.symbol,Bk)})}),Fu(b,{color:e.kind==="summary"?ae("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"ChildActivityRowView");function Bm(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}o(Bm,"measureChildActivitySurfaceRows");var Fm=o(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:Fu(M,{flexDirection:"column",flexGrow:1,children:e.rows.map(t=>Fu(zF,{row:t},`${t.kind}-${t.id}`))}),"ChildActivitySurface");import Fk,{createContext as jk,useContext as Uk,useReducer as XF,useCallback as it,useRef as Hk,useEffect as Wk}from"react";function YF(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}o(YF,"isPendingPromptForAgent");function jS(e){return or().getSnapshot().filter(t=>YF(t,e))}o(jS,"getPendingPrompts");function HS(e){return jS(e).map(t=>t.content)}o(HS,"getPendingPromptContents");var WS={state:Cr.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 Hm(e={}){let t=o(()=>e.getPendingInputAgentId?.(),"getPendingInputAgentId"),n={...WS,pendingInputs:HS(t())},r=new Set,i="",s="",a=0,c=null,l=!1,u=80,f=o(()=>{for(let w of r)w(n)},"notify"),p=o(()=>{let w=HS(t());if(w.length===n.pendingInputs.length){let T=!0;for(let v=0;v<w.length;v++)if(w[v]!==n.pendingInputs[v]){T=!1;break}if(T)return}n={...n,pendingInputs:w},f()},"syncReactStateFromQueue"),h=or().subscribe(()=>{p()}),m=o(()=>or().dequeue({agentId:t(),maxPriority:"user",mode:"prompt"}).map(T=>T.content),"drainOurSlice"),g=o(()=>{if(c&&(clearTimeout(c),c=null),i||s||a>0){let T=n.thinkingContent+s,v=s?T.length:n.thinkingCharCount+a;n={...n,currentResponse:n.currentResponse+i,thinkingContent:T,thinkingCharCount:v,...s||a>0?{isThinking:!0}:{}},i="",s="",a=0,f()}},"flushPendingUpdates"),C=o(()=>{c||(c=setTimeout(g,u))},"scheduleFlush");return{getState:o(()=>n,"getState"),setState:o(w=>{g(),n={...n,state:w},f()},"setState"),startStreaming:o(()=>{l=!1,i="",s="",a=0,c&&(clearTimeout(c),c=null),n={...n,state:Cr.Responding,currentResponse:"",abortController:new AbortController,error:void 0,roundStartedAt:Date.now()},f()},"startStreaming"),stopStreaming:o(()=>{g(),n={...n,state:Cr.Idle,abortController:void 0,roundStartedAt:null},f()},"stopStreaming"),appendResponse:o(w=>{l||(i+=w,C())},"appendResponse"),clearResponse:o(()=>{g(),n={...n,currentResponse:""},f()},"clearResponse"),setError:o(w=>{g(),n={...n,error:w,state:w?Cr.Idle:n.state},f()},"setError"),abort:o(w=>{l=!0,g(),n.abortController?.abort(),i="",s="",a=0,c&&(clearTimeout(c),c=null),w?.preservePendingInputs||m(),n={...n,state:Cr.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={...WS,pendingInputs:HS(t())},l=!1,f()},"reset"),isStreaming:o(()=>n.state===Cr.Responding||n.state===Cr.WaitingForConfirmation,"isStreaming"),subscribe:o(w=>(r.add(w),()=>{r.delete(w)}),"subscribe"),startThinking:o(()=>{g(),n={...n,isThinking:!0,thinkingCharCount:0,thinkingContent:""},f()},"startThinking"),appendThinkingChars:o(w=>{l||(a+=w,C())},"appendThinkingChars"),appendThinkingContent:o(w=>{l||(s+=w,C())},"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(w=>{g(),n={...n,currentTool:w,toolInputCharCount:0,toolInputContent:""},f()},"setCurrentTool"),appendToolInputChars:o(w=>{n={...n,toolInputCharCount:n.toolInputCharCount+w},f()},"appendToolInputChars"),appendToolInputContent:o(w=>{n.toolInputContent.length<240&&(n={...n,toolInputContent:(n.toolInputContent+w).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(w=>{g(),n.thinkingContent||n.currentResponse?n={...n,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:w}:n={...n,currentIteration:w},f()},"startNewIteration"),clearIterationHistory:o(()=>{g(),n={...n,iterationHistory:[],currentIteration:1,maxIter:WS.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},f()},"clearIterationHistory"),setMaxIter:o(w=>{g(),n={...n,maxIter:w},f()},"setMaxIter"),startCompacting:o(()=>{g(),n={...n,isCompacting:!0},f()},"startCompacting"),stopCompacting:o(()=>{g(),n={...n,isCompacting:!1},f()},"stopCompacting"),addPendingInput:o(w=>{let T=w.trim();T&&(jS(t()).length>=5||(g(),or().enqueue({agentId:t(),priority:"user",mode:"prompt",content:T})))},"addPendingInput"),removeLastPendingInput:o(()=>{let w=jS(t()),T=w[w.length-1];T&&(g(),or().dequeue({agentId:t(),maxPriority:"user",mode:"prompt",id:T.id}))},"removeLastPendingInput"),shiftPendingInput:o(()=>(g(),or().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(Hm,"createStreamingManager");var Vk=jk(null),Gk=jk(null);function Wu({children:e,onStateChange:t,getPendingInputAgentId:n}){let r=Hk(n);r.current=n;let i=Hk(void 0);i.current||(i.current=Hm({getPendingInputAgentId:o(()=>r.current?.(),"getPendingInputAgentId")}));let s=i.current,[,a]=XF(fe=>fe+1,0);Wk(()=>s.subscribe(Te=>{a(),t?.(Te)}),[s,t]),Wk(()=>()=>{s.dispose()},[s]);let c=it(()=>{s.startStreaming()},[]),l=it(()=>{s.stopStreaming()},[]),u=it(fe=>{s.appendResponse(fe)},[]),f=it(()=>{s.clearResponse()},[]),p=it(fe=>{s.setError(fe)},[]),h=it(fe=>{s.abort(fe)},[]),m=it(()=>{s.reset()},[]),g=it(()=>{s.startThinking()},[]),C=it(fe=>{s.appendThinkingChars(fe)},[]),w=it(fe=>{s.appendThinkingContent(fe)},[]),T=it(()=>{s.stopThinking()},[]),v=it(()=>{s.clearThinkingContent()},[]),A=it(fe=>{s.setCurrentTool(fe)},[]),D=it(fe=>{s.appendToolInputChars(fe)},[]),k=it(fe=>{s.appendToolInputContent(fe)},[]),E=it(()=>{s.clearToolInputContent()},[]),P=it(()=>s.getSignal(),[]),B=it(()=>s.getFullResponse(),[]),$=it(()=>s.getThinkingContent(),[]),G=it(fe=>{s.startNewIteration(fe)},[]),re=it(()=>{s.clearIterationHistory()},[]),X=it(fe=>{s.setMaxIter(fe)},[]),y=it(()=>{s.startCompacting()},[]),_=it(()=>{s.stopCompacting()},[]),ee=it(fe=>{s.addPendingInput(fe)},[]),W=it(()=>{s.removeLastPendingInput()},[]),le=it(()=>s.shiftPendingInput(),[]),de=it(()=>{s.clearPendingInputs()},[]),he=it(()=>s.consumePendingInputs(),[]),_e={startStreaming:c,stopStreaming:l,appendResponse:u,clearResponse:f,setError:p,abort:h,reset:m,startThinking:g,appendThinkingChars:C,appendThinkingContent:w,stopThinking:T,clearThinkingContent:v,setCurrentTool:A,appendToolInputChars:D,appendToolInputContent:k,clearToolInputContent:E,getSignal:P,getFullResponse:B,getThinkingContent:$,startNewIteration:G,clearIterationHistory:re,setMaxIter:X,startCompacting:y,stopCompacting:_,addPendingInput:ee,removeLastPendingInput:W,shiftPendingInput:le,clearPendingInputs:de,consumePendingInputs:he};return Fk.createElement(Vk.Provider,{value:s.getState()},Fk.createElement(Gk.Provider,{value:_e},e))}o(Wu,"StreamingProvider");function gc(){let e=Uk(Vk);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}o(gc,"useStreamingState");function yc(){let e=Uk(Gk);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}o(yc,"useStreamingActions");function US(){let e=gc(),t=yc(),n=e.state===Cr.Responding||e.state===Cr.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}o(US,"useStreaming");import{useCallback as qF,useRef as JF}from"react";var QF=500;function Kk(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:i=!0}=e,s=JF(0),{exit:a}=Yr(),c=qF(l=>{if(!i)return!1;if(l.name==="escape"){let u=Date.now(),f=u-s.current<QF;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 Un(c,{isActive:i}),{lastEscTime:s.current}}o(Kk,"useKeypress");function zk(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(zk,"createKeyMatcher");import{useCallback as Xk,useSyncExternalStore as ZF}from"react";function eH(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}o(eH,"isQueuedPromptForAgent");var VS=null,Wm=new Map;function tH(e){let t=or().getSnapshot();t!==VS&&(VS=t,Wm.clear());let n=Wm.get(e);if(n!==void 0)return n;let r=Object.freeze(t.filter(i=>eH(i,e)));return Wm.set(e,r),r}o(tH,"getQueueSliceSnapshot");function GS(e){let t=Xk(r=>or().subscribe(r),[]),n=Xk(()=>tH(e),[e]);return ZF(t,n,n)}o(GS,"useQueuedPrompts");function Yk(e){return GS(e).map(n=>n.content)}o(Yk,"useQueuedPromptContents");function qk(){VS=null,Wm.clear()}o(qk,"_resetQueuedPromptsCacheForTests");var Sc="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 wc(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(wc,"toReplRuntimeAutoModeSettings");async function xc(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??Cs(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}o(xc,"createInteractiveContext");function Cs(){return uI()}o(Cs,"generateSessionId");function Er(e){e.lastAccessed=new Date().toISOString()}o(Er,"touchContext");async function Tc(e){let t=await $I({userKodaxDir:SI(),projectRoot:e.projectRoot}),n;return{getGuardrail:o(()=>n||(n=_I({rules:t.merged,getToolProjection:o(i=>(Fl(i)??ry(i))?.toClassifierInput,"getToolProjection"),getToolSideEffect:o(i=>(Fl(i)??ry(i))?.sideEffect,"getToolSideEffect"),resolveProvider:o(i=>{try{return Ko(i)}catch{return}},"resolveProvider"),defaultProvider:e.getCurrentProviderName(),defaultModel:e.getCurrentModel()??"",getDefaultProvider:e.getCurrentProviderName,getDefaultModel:o(()=>e.getCurrentModel()??"","getDefaultModel"),askUser:e.askUser,allowOnClassifierFailure:o(i=>wv(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:[xv],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(Tc,"bootstrapAutoMode");var Is=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=ga(i.lineage,n,r);if(!s)return null;let a={...structuredClone(i),messages:Lt(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=ya(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=Si(i.lineage,n);if(!s)return null;let a=r?.sessionId??await Ta(),c={messages:Lt(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??wa(r.lineage);if(!i)return null;let s=xa(r.lineage,i);if(!s)return null;let a={...r,messages:Lt(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?Ji(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 Jk(){return new Is}o(Jk,"createMemorySessionStorage");import*as Qk from"child_process";import*as Zk from"util";import Um from"chalk";var nH=Zk.promisify(Qk.exec),rH={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function ju(e,t={}){let n={...rH,...t},r=e.trim(),i=vI(r);if(i)return i.startsWith("[Blocked]")&&(console.log(Um.yellow(`
65
65
  ${i}`)),console.log()),i;try{console.log(Um.dim(`
66
- [Executing: ${r}]`));let{stdout:s,stderr:a}=await QF(r,{cwd:n.cwd,maxBuffer:n.maxBuffer,timeout:n.timeout,windowsHide:!0}),c="";return s&&(c+=s),a&&(c+=(c?`
66
+ [Executing: ${r}]`));let{stdout:s,stderr:a}=await nH(r,{cwd:n.cwd,maxBuffer:n.maxBuffer,timeout:n.timeout,windowsHide:!0}),c="";return s&&(c+=s),a&&(c+=(c?`
67
67
  `:"")+`[stderr] ${a}`),c.length>n.maxOutputLength&&(c=c.slice(0,n.maxOutputLength)+`
68
68
  ...[output truncated]`),console.log(Um.dim(c||"[No output]")),console.log(),`[Shell command executed: ${r}]
69
69
 
@@ -72,59 +72,59 @@ ${c||"(no output)"}`}catch(s){let c=(s instanceof Error?s:new Error(String(s))).
72
72
  ...[error truncated]`),console.log(Um.red(`
73
73
  [Shell Error: ${c}]`)),console.log(),`[Shell command failed: ${r}]
74
74
 
75
- Error: ${c}`}}o(Wu,"executeShellCommand");async function KS(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return Wu(n,t)}return e}o(KS,"processSpecialSyntax");function Yk(e){return e.trim().startsWith("!")}o(Yk,"isShellCommand");function qk(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}o(qk,"isShellCommandSuccess");function ju(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}o(ju,"isShellCommandHandled");var Jk=150,Qk=50;function Zr(e){if(e.length===0)return[];let t=[];for(let r=0;r<e.length;r+=1)e[r]?.type==="user"&&t.push(r);let n=[...e];if(t.length>Qk){let r=t[t.length-Qk]??0;n=e.slice(r)}if(n.length>Jk){let r=n.slice(-Jk),i=r.findIndex(s=>s.type==="user");n=i>0?r.slice(i):r}return[...n]}o(Zr,"trimPersistedUiHistorySnapshot");function wo(e){if(e)return Zr(e)}o(wo,"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 tH(e){if(e.type!=="tool_group")return eH(e);let t=e.tools.map(ep);return t.length>0?{type:"tool_group",tools:t,...e.timestamp===void 0?{}:{timestamp:e.timestamp}}:void 0}o(tH,"persistedUiHistoryItemToCreatableHistoryItem");function nH(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(nH,"dedupePersistedToolGroups");function eE(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(`
75
+ Error: ${c}`}}o(ju,"executeShellCommand");async function KS(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return ju(n,t)}return e}o(KS,"processSpecialSyntax");function eE(e){return e.trim().startsWith("!")}o(eE,"isShellCommand");function tE(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}o(tE,"isShellCommandSuccess");function Uu(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}o(Uu,"isShellCommandHandled");var nE=150,rE=50;function oE(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>rE){let s=t[t.length-rE]??0;n=e.slice(s)}if(n.length<=nE)return[...n];let r=n.slice(-nE),i=r.findIndex(s=>s.type==="user");return i>0?r.slice(i):r}o(oE,"trimHistoryWindow");function Zr(e){return oE(e)}o(Zr,"trimPersistedUiHistorySnapshot");function wo(e){if(e)return Zr(e)}o(wo,"normalizePersistedUiHistory");function iH(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(iH,"toCreatableTextHistoryItem");function oH(e){if(e.type!=="tool_group")return iH(e);let t=e.tools.map(ep);return t.length>0?{type:"tool_group",tools:t,...e.timestamp===void 0?{}:{timestamp:e.timestamp}}:void 0}o(oH,"persistedUiHistoryItemToCreatableHistoryItem");function zS(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(zS,"dedupeToolGroups");function sH(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(`
76
76
  `)===t.tools.map(i=>i.id).join(`
77
- `);if(e.type==="tool_group"||t.type==="tool_group")return!1;let n=e.text.trim(),r=t.text.trim();return n===r||Zk(n,r)||Zk(r,n)}o(eE,"matchesTimestampSource");function Zk(e,t){if(!e.endsWith(t))return!1;let n=e.slice(0,-t.length);return/^\[[^\]\r\n]+\]\s+$/.test(n)}o(Zk,"hasDisplayPrefix");function rH(e,t){let n=0;return e.map(r=>{if(r.timestamp!==void 0)return r;for(let i=n;i<t.length;i+=1){let s=t[i];if(!(s?.timestamp===void 0||!eE(r,s)))return n=i+1,{...r,timestamp:s.timestamp}}return r})}o(rH,"recoverMissingTimestamps");function iH(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")&&eE(c,s)){n.set(i,a),r=a-1;break}}}return n}o(iH,"alignCanonicalTextItems");function oH(e,t){let n=new Array(t),r=new Array(t),i;for(let s=0;s<t;s+=1){n[s]=i;let a=e.get(s);a!==void 0&&(i=a)}i=void 0;for(let s=t-1;s>=0;s-=1){r[s]=i;let a=e.get(s);a!==void 0&&(i=a)}return{previous:n,next:r}}o(oH,"nearestAnchors");function sH(e,t){let n=iH(e,t),r=oH(n,t.length),i=new Map,s=new Map;for(let d of e)if(d.type==="tool_group")for(let p of d.tools)s.has(p.id)||s.set(p.id,{tool:p,timestamp:d.timestamp});let a=new Set,c=new Set(n.values()),l=new Set;for(let d=0;d<t.length;d+=1){let p=t[d];if(!p||p.type!=="tool_group")continue;let h=p.tools.filter(P=>a.has(P.id)?!1:(a.add(P.id),!0)).map(P=>s.get(P.id)?.tool??P),m=r.previous[d];if(m===void 0||h.length===0){for(let P of h)a.delete(P.id);continue}let g=r.next[d],C=g!==void 0&&g>m?g:m+1,w=g??e.findIndex((P,k)=>k>m&&P.type==="user"),T=w<0?e.length:w;for(let P=m+1;P<T;P+=1){let k=e[P];k?.type==="event"&&k.icon==="tool"&&!c.has(P)&&l.add(P)}let v=i.get(C)??[],_=h.map(P=>s.get(P.id)?.timestamp).find(P=>P!==void 0);v.push({...p,tools:h,..._===void 0?{}:{timestamp:_}}),i.set(C,v)}let u=[];for(let d=0;d<=e.length;d+=1){u.push(...i.get(d)??[]);let p=e[d];if(!p||l.has(d))continue;if(p.type!=="tool_group"){u.push(p);continue}let h=p.tools.filter(m=>!a.has(m.id));h.length>0&&u.push({...p,tools:h})}return rH(u,t)}o(sH,"enrichPersistedUiHistory");function Uu(e){let t=tp(e.messages).map(eo),n=wo(e.uiHistory);if(!n||n.length===0)return t;let r=nH(n.map(tH).filter(i=>!!i));return sH(r,t)}o(Uu,"restoreHistoryItemsFromSession");async function Cc(e,t){return(await e.list(t,{limit:1e3})).find(r=>r.msgCount>0)}o(Cc,"findMostRecentResumableSession");function Vu(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(Vu,"createRetryHistoryItem");function tE(e,t,n,r){e(Vu(t,n,r))}o(tE,"emitRetryHistoryItem");function Gu(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(Gu,"createRecoveryHistoryItem");function nE(e,t){e(Gu(t))}o(nE,"emitRecoveryHistoryItem");import{createHash as YS}from"node:crypto";var aH=16,cH=4*1024,rE=512,iE="kodax-conversation-entry-chain-v1\0",lH="kodax-conversation-history-v2\0";function zm(){return`sha256:${YS("sha256").update(iE).digest("hex")}`}o(zm,"emptyConversationEntryChain");function Ic(e,t){let n=e;for(let r of t){let i=JSON.stringify(r);n=`sha256:${YS("sha256").update(iE).update(n).update(`${Buffer.byteLength(i,"utf8")}:`).update(i).digest("hex")}`}return n}o(Ic,"extendConversationEntryChain");function vs(e){return Ic(zm(),e)}o(vs,"createConversationEntryChain");function bs(e,t=vs(e.entries)){return`sha256:${YS("sha256").update(lH).update(t).update(JSON.stringify({sourceRevision:e.sourceRevision,status:e.status,issues:e.issues})).digest("hex")}`}o(bs,"createSessionConversationHistoryRevision");function oE(e){return e.type==="message"||e.type==="compaction"||e.type==="branch_summary"}o(oE,"isThreadEntry");function Xm(e){return e._source==="managed-run-context"||e._source==="managed-runtime-context"}o(Xm,"isManagedContextMessage");function _i(e){return e.type!=="message"?!1:!Xm(e.message)}o(_i,"isOrdinaryConversationMessageEntry");function Vm(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(Vm,"threadPath");function Gm(e){return Ym(e).length>0}o(Gm,"hasExplicitProvenance");function Ym(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(Ym,"explicitProvenanceKeys");function zS(e,t){let n=new Set([e.id,e.logicalId,e.sourceEntryId]);return Ym(t).every(r=>n.has(r))}o(zS,"provenanceMatches");function uH(e,t,n){let r=-1;for(let s=0;s<t.length;s+=1)if(s>0&&s%256===0&&n?.(),Gm(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(xo(e[l].message));let c=[];for(let l=0;l<t.length;l+=1)l>0&&l%256===0&&n?.(),c.push(xo(t[l].message));return qS(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||!zS(a,t[r]))continue;let l=e.length-c,u=l<=t.length;for(let d=0;u&&d<l;d+=1){d>0&&d%256===0&&n?.();let p=e[c+d],h=t[d];u=Gm(h)?zS(p,h):zu(p.message,h.message)}if(u)return!0}return!1}o(uH,"retainedSuffixMatches");function dH(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];oE(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:Vm(g.id,a,i)})}let d=[];for(let m=0;m<u.length;m+=1)m>0&&m%256===0&&i?.(),u[m].path.complete||d.push(u[m]);if(d.length>0)return r.push({code:"lineage_path_incomplete",message:`A candidate predecessor path for compaction ${t.id} is incomplete.`,entryIds:[t.id,...d.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];sE(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],C=[];for(let w=0;w<g.path.entries.length;w+=1){w>0&&w%256===0&&i?.();let T=g.path.entries[w];_i(T)&&C.push(T)}uH(C,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(dH,"compactionPredecessorCandidates");function fH(e,t,n,r,i){let s=dH(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(fH,"resolveCompactionPredecessor");function pH(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?.(),!Gm(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?.(),Gm(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(pH,"leadingExplicitRetainedCopies");function sE(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(sE,"isAppendOrderedPriorPath");function mH(e,t,n,r,i,s,a){let c=pH(e,t,a),l=c.at(-1),u=l===void 0?void 0:Ym(l)[0];if(l===void 0||u===void 0)return[];let d=[],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 C=Vm(g.id,r,a),w=[];for(let P=0;P<C.entries.length;P+=1){P>0&&P%256===0&&a?.();let k=C.entries[P];_i(k)&&w.push(k)}if(!C.complete||!sE(C,n,i,a))continue;let T=Math.max(0,w.length-c.length),v=[];for(let P=T;P<w.length;P+=1)P>T&&P%256===0&&a?.(),v.push(w[P]);let _=v.length===c.length;for(let P=0;_&&P<v.length;P+=1){P>0&&P%256===0&&a?.();let k=v[P],E=c[P];_=zS(k,E)&&zu(k.message,E.message)}_&&d.push(g)}let h=new Map;for(let m=0;m<d.length;m+=1){m>0&&m%256===0&&a?.();let g=d[m];h.set(g.id,g)}return[...h.values()]}o(mH,"explicitCompactionPredecessorCandidates");function hH(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(hH,"indexMessagesByIdentity");function gH(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),oE(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=hH(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 d=[],p=new Set,h=e.activeEntryId===null?{entries:[],complete:!0}:Vm(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=[],C;for(let E=0;E<h.entries.length;E+=1){E>0&&E%256===0&&n?.();let $=h.entries[E];$.type==="message"&&C===void 0&&(C=$.id),_i($)&&g.push($)}let w={root:m,messages:g,...C!==void 0?{firstPhysicalMessageEntryId:C}:{}};if(d.push(w),m.type!=="compaction"||m.reason==="rewind")break;let T=s.get(m.id)??0,v=l.get(m.id)??0,_=[],P=[];for(let E=v;E<T;E+=1)E>v&&E%256===0&&n?.(),P.push(e.entries[E]);let k=fH(P,m,w,_,n);if(k===void 0){let E=mH(m,w,T,i,s,c,n);E.length===1?[k]=E:(t.push(..._),E.length>1&&t.push({code:"compaction_predecessor_ambiguous",message:`Compaction ${m.id} provenance identifies multiple predecessor copies.`,entryIds:[m.id,...E.map($=>$.id)]}))}if(k===void 0)break;h=Vm(k.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)}),d.reverse()}o(gH,"conversationEpochs");function xo(e){return JSON.stringify([e.role,e.content,e._synthetic===!0,e._source,e._taskResult,e._taskResults])}o(xo,"messageFingerprint");function qS(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(qS,"prefixSuffixOverlapLengths");function zu(e,t){return e===t||xo(e)===xo(t)}o(zu,"messagesEqual");function yH(e){return e.logicalId??e.id}o(yH,"logicalIdentity");function aE(e,t){return Km(e,t).groups}o(aE,"explicitPriorGroups");function Km(e,t){let n=Ym(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(Km,"explicitPriorGroupResolution");function Ku(e,t,n){for(let r of[e.id,yH(e),e.sourceEntryId])r!==void 0&&!n.has(r)&&n.set(r,t)}o(Ku,"registerEntryIdentities");function XS(e,t){return e.sourceEntryId!==void 0&&e.sourceEntryId!==e.id&&t?.has(e.sourceEntryId)!==!0?[e.sourceEntryId,e.id]:[e.id]}o(XS,"physicalAuditEntryIds");function SH(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=qS(n.slice(-c.length).map(_=>xo(_.source.message)),c.map(_=>xo(_.message)),s),d=!1,p=c.flatMap((_,P)=>{let k=Km(_,r);return k.keys.length===0?[]:[{index:P,resolution:k}]}),h=p[0],m=h===void 0?u:u.filter(_=>_<=h.index),g;if(h!==void 0){let{index:_,resolution:P}=h,k=P.groups.length===1?P.groups[0].index:-1,E=n.length+_-k;g=P.unresolvedKeys.length===0&&P.groups.length===1&&k>=0&&u.includes(E)&&E>_?E:void 0,g===void 0&&u.some($=>$>_)&&(d=!0)}for(let _ of p.slice(1)){if(g===void 0||g<=_.index)continue;let{resolution:P}=_,k=P.groups.length===1?P.groups[0].index:-1;(P.unresolvedKeys.length>0||P.groups.length!==1||k<0||n.length+_.index-k!==g)&&(d=!0,g=void 0)}let w=[...m,...g===void 0?[]:[g]].map(_=>n.length-_),T=aE(c[0],r);if(w.length===0&&T.length===1&&!zu(T[0].source.message,c[0].message))return a;if(d&&i.push({code:"logical_identity_conflict",message:`Compaction ${e.id} contains provenance keys that name different history records.`,entryIds:[e.id,...c.map(_=>_.id)]}),w.length!==1)return i.push({code:"compaction_boundary_invalid",message:`Compaction ${e.id} has no unique retained suffix.`,entryIds:[e.id,...c.map(_=>_.id)]}),a;let v=w[0];for(let _=v;_<n.length;_+=1)a.set(c[_-v].id,n[_]);return a}o(SH,"provenLegacyOverlap");function wH(e,t,n,r){let[i=0]=qS(t.slice(-e.length).map(s=>xo(s.source.message)),e.map(s=>xo(s.message)),r);return e.slice(0,i).filter(s=>aE(s,n).length===0)}o(wH,"longestUnprovenOverlap");function xH(e,t,n,r,i){let s=t.get(e.id);if(s!==void 0){let d=Km(e,r);if(d.unresolvedKeys.length>0||d.groups.length>1||d.groups.length===1&&d.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:XS(e,r)};n.push(p),Ku(e,p,r);return}else{s.auditEntryIds.push(e.id),Ku(e,s,r);return}}let a=Km(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&&zu(l.source.message,e.message)){l.auditEntryIds.push(e.id),Ku(e,l,r);return}c.length>0&&(a.unresolvedKeys.length>0||c.length!==1||l===void 0||!zu(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(d=>d.source.id),e.id]});let u={index:n.length,source:e,auditEntryIds:XS(e,r)};n.push(u),Ku(e,u,r)}o(xH,"appendConversationMessage");function TH(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(TH,"historyStatus");function cE(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<aH&&!r.entryIds.includes(i)&&r.evidenceBytes+Buffer.byteLength(i,"utf8")<=cH&&(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<=rE?r.message:`${r.message.slice(0,rE-1)}\u2026`,occurrenceCount:r.occurrenceCount,entryCount:r.entryCount,entryIds:r.entryIds}))}o(cE,"summarizeConversationIssues");function Xu(e,t,n){let r=[];n?.();let i=gH(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:XS(p,c)})):[],u=new Map;if(s)for(let p of l)Ku(p.source,p,u);for(let p of i){if(s)break;let h=p.root,m=h.type==="compaction"&&h.reason!=="rewind"?SH(h,p,l,u,r,n):new Map;if(h.type==="compaction"&&h.firstKeptEntryId===void 0){let g=wH(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(C=>C.id)})}for(let g=0;g<p.messages.length;g+=1){g%256===0&&n?.();let C=p.messages[g];xH(C,m,l,u,r)}}let d=l.map(p=>({boundaryId:p.source.id,auditEntryIds:p.auditEntryIds,message:p.source.message}));return{sourceRevision:t,status:TH(r),entries:d,issues:cE(r)}}o(Xu,"buildSessionConversationHistory");function lE(e,t,n,r){r?.();let i={...e,activeEntryId:t},s=ha(i,t,r);if(s.at(-1)?.id!==t)return null;let a=Si(i,t,r);if(a===null)return null;let c=ha(a,a.activeEntryId,r);if(c.length!==s.length)return null;let l=new Map(s.map(($,B)=>(B>0&&B%256===0&&r?.(),[$.id,c[B].id]))),u={...a,entries:a.entries.map(($,B)=>{B>0&&B%256===0&&r?.();let O=s[B];return $.type==="compaction"&&O?.type==="compaction"&&O.firstKeptEntryId!==void 0?{...$,firstKeptEntryId:l.get(O.firstKeptEntryId)}:$})},d=s[0];if(d?.type!=="compaction"||d.reason==="rewind")return u;let p=Xu(i,n,r);if(p.status!=="resolved"||d.firstKeptEntryId===void 0)return null;let h=[],m=new Set,g=-1,C=!1;for(let $=0;$<s.length;$+=1){$>0&&$%256===0&&r?.();let B=s[$];B.id===d.firstKeptEntryId&&(C=!0),_i(B)&&(C&&g<0&&(g=h.length),h.push(B),m.add(B.id))}if(g<0)return null;let w=new Map;for(let $=0;$<p.entries.length;$+=1){$>0&&$%256===0&&r?.();let B=p.entries[$].auditEntryIds;for(let O=0;O<B.length;O+=1){O>0&&O%256===0&&r?.();let G=B[O];w.set(G,$)}}let T=-1;for(let $=g;$<h.length;$+=1){$>g&&$%256===0&&r?.();let B=h[$],O=w.get(B.id);if(O===void 0)return null;let G=!1,re=p.entries[O].auditEntryIds;for(let X=0;X<re.length;X+=1)if(X>0&&X%256===0&&r?.(),!m.has(re[X])){G=!0;break}if(!G)break;if(T>=0&&O!==T+1)return null;T=O}if(T<0)return null;let v=new Map;for(let $=0;$<e.entries.length;$+=1){$>0&&$%256===0&&r?.();let B=e.entries[$];v.set(B.id,B)}let _=null,P=[];for(let $=0;$<=T;$+=1){$>0&&$%256===0&&r?.();let B=p.entries[$],O;for(let y=0;y<B.auditEntryIds.length;y+=1){y>0&&y%256===0&&r?.();let A=B.auditEntryIds[y];if(m.has(A)){O=A;break}}let G=O??B.boundaryId,re=G===void 0?void 0:v.get(G);if(re?.type!=="message")return null;let X={...re,parentId:_};P.push(X),_=X.id}let k=P.at(-1);if(k===void 0)return null;let E=Si({version:2,activeEntryId:k.id,entries:P},void 0,r);return E===null?null:{version:2,activeEntryId:u.activeEntryId,entries:[...E.entries,...u.entries]}}o(lE,"forkSessionConversationLineage");function uE(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];Xm(a)||i.push({auditEntryIds:[],message:a})}return{sourceRevision:t,status:"partial",entries:i,issues:cE([r])}}o(uE,"buildLineageUnavailableConversationHistory");import{createHash as tw,randomUUID as CE}from"node:crypto";import zn from"node:fs/promises";import Ut from"node:path";import{createHash as QS}from"node:crypto";var dE={main:0,islands:1,legacy_archive:2},vc=64*1024;function JS(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(JS,"isRecord");function fE(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(fE,"normalizeRelativePath");function CH(e,t){return QS("sha256").update("kodax-session-source-file-v1\0").update(`${e}:${Buffer.byteLength(t,"utf8")}:${t}`).digest("hex")}o(CH,"initialFileChain");function IH(e,t){return QS("sha256").update("kodax-session-source-chunk-v1\0").update(e,"hex").update(t).digest("hex")}o(IH,"extendChunkChain");function pE(e,t){let n=e,r=0,i=0;for(;t.length-i>=vc;)n=IH(n,t.subarray(i,i+vc)),r+=1,i+=vc;return{chain:n,count:r,tail:t.subarray(i)}}o(pE,"consumeCompleteChunks");function mE(e,t){return dE[e.kind]-dE[t.kind]||e.relativePath.localeCompare(t.relativePath)}o(mE,"compareFileStates");function hE(e){let t=e.map(n=>{let r=fE(n.relativePath),i=pE(CH(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(mE);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(hE,"createSessionSourceRevisionState");function To(e){let t=QS("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(To,"createSessionSourceRevision");function gE(e,t,n){if(n.length===0)return e;if(n[0]!==10)return;let r=fE(t),i=e.files.findIndex(l=>l.kind==="main"&&l.relativePath===r);if(i<0)return;let s=e.files[i],a=pE(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(gE,"extendSessionMainSourceRevisionState");function yE(e){if(!JS(e)||e.version!==1||!Array.isArray(e.files)||!e.files.some(r=>JS(r)&&r.kind==="main"))return!1;let t,n=new Set;for(let r of e.files){if(!JS(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>=vc||s.toString("base64")!==r.tail||Number(r.chunkCount)!==Math.floor(Number(r.byteLength)/vc)||s.length!==Number(r.byteLength)%vc)return!1;let a=r;if(t!==void 0&&mE(t,a)>=0)return!1;n.add(i),t=a}return!0}o(yE,"isSessionSourceRevisionState");import qm from"node:fs/promises";import Yu from"node:path";var Ai=".conversation-cache.",SE=`${Ai}json`,Co=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 Jm(e){let t=e.lastIndexOf(Ai);if(t<=0)return;let n=e.slice(t+Ai.length);if(!(n!=="json"&&!(n.startsWith("json.")&&n.endsWith(".tmp"))&&!n.endsWith(".data")&&!n.endsWith(".index")))return e.slice(0,t)}o(Jm,"cacheArtifactSessionId");async function Kn(e){let t=Yu.dirname(e),n=Yu.basename(e,Yu.extname(e)),r;try{r=await qm.readdir(t)}catch(i){if(i.code==="ENOENT")return;throw i}await Promise.all(r.filter(i=>Jm(i)===n).map(i=>qm.rm(Yu.join(t,i),{force:!0})))}o(Kn,"removeConversationPageCache");async function Qm(e){let t;try{t=await qm.readdir(e,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;throw new Co(e,n)}try{await Promise.all(t.filter(n=>!n.isDirectory()&&Jm(n.name)!==void 0).map(n=>qm.rm(Yu.join(e,n.name),{force:!0})))}catch(n){throw new Co(e,n)}}o(Qm,"removeConversationPageCachesInDirectory");var IE=4,ei=24,vH=1024*1024,bH=1024*1024,RH=1024*1024,kH=4*1024*1024,nw=128*1024,EH=7,mt=class extends Error{static{o(this,"ConversationPageCacheStaleError")}constructor(t){super(t),this.name="ConversationPageCacheStaleError"}},Li=class extends Error{static{o(this,"ConversationPageCacheCapacityError")}constructor(){super("Conversation page capacity exceeded"),this.name="ConversationPageCacheCapacityError"}};function qu(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(qu,"isRecord");function ZS(e){if(e?.aborted)throw new mt("Conversation page read cancelled")}o(ZS,"throwIfAborted");function rw(e){return e.slice(0,-Ut.extname(e).length)+SE}o(rw,"cacheManifestPath");function wE(e,t,n){return`${e.slice(0,-Ut.extname(e).length)}${Ai}${t}.${n}`}o(wE,"cacheGenerationPath");function xE(e,t,n){let r=Ut.basename(e,Ut.extname(e));return Ut.basename(t)===t&&t.startsWith(`${r}${Ai}`)&&t.endsWith(`.${n}`)}o(xE,"isSafeCacheFileName");function MH(e){if(!qu(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(MH,"isConversationIssue");function _H(e){return qu(e)&&(e.surface===void 0||typeof e.surface=="string")&&(e.profileId===void 0||typeof e.profileId=="string")}o(_H,"isConversationPageCacheAdmission");function vE(e){let t=tw("sha256").update("kodax-conversation-identity-filter-v1\0").update(e,"utf8").digest();return Array.from({length:EH},(n,r)=>t.readUInt32LE(r*4)%(nw*8))}o(vE,"identityPositions");function bE(e,t){return vE(t).every(n=>(e[n>>>3]&1<<(n&7))!==0)}o(bE,"identityFilterContains");function RE(e,t){for(let n of vE(t))e[n>>>3]=e[n>>>3]|1<<(n&7)}o(RE,"addIdentityToFilter");function kE(e){return[e.id,e.logicalId,e.sourceEntryId].filter(t=>t!==void 0)}o(kE,"lineageEntryIdentities");function Zm(e){let t=Buffer.alloc(nw);for(let n of e.entries)for(let r of kE(n))RE(t,r);return t.toString("base64")}o(Zm,"createConversationPageIdentityFilter");function iw(e,t){let n=Buffer.from(e,"base64");for(let r of t)for(let i of kE(r))RE(n,i);return n.toString("base64")}o(iw,"extendConversationPageIdentityFilter");function EE(e){if(typeof e!="string")return!1;let t=Buffer.from(e,"base64");return t.length===nw&&t.toString("base64")===e}o(EE,"isIdentityFilter");function ME(e,t){return EE(e)?bE(Buffer.from(e,"base64"),t):!0}o(ME,"conversationPageIdentityFilterContains");function AH(e,t){if(!(!qu(e)||e.version!==IE)&&!(typeof e.sessionId!="string"||typeof e.generation!="string"||typeof e.sourceRevision!="string"||!yE(e.sourceRevisionState)||To(e.sourceRevisionState)!==e.sourceRevision||!EE(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(MH)||!Number.isSafeInteger(e.entryCount)||Number(e.entryCount)<0||!Number.isSafeInteger(e.lineageEntryCount)||Number(e.lineageEntryCount)<0||e.activeEntryId!==null&&typeof e.activeEntryId!="string"||!_H(e.admission)||!Number.isSafeInteger(e.chunkBytes)||Number(e.chunkBytes)<=0||Number(e.chunkBytes)>kH||typeof e.dataFile!="string"||!Number.isSafeInteger(e.dataBytes)||Number(e.dataBytes)<0||typeof e.indexFile!="string"||!Number.isSafeInteger(e.indexBytes)||Number(e.indexBytes)<0||!xE(t,e.dataFile,"data")||!xE(t,e.indexFile,"index")||e.dataFile!==`${e.sessionId}${Ai}${e.generation}.data`||e.indexFile!==`${e.sessionId}${Ai}${e.generation}.index`||e.sessionId!==Ut.basename(t,Ut.extname(t))||Number(e.indexBytes)!==Number(e.entryCount)*ei))return e}o(AH,"parseManifest");function _E(e){return{...e?.surface!==void 0?{surface:e.surface}:{},...e?.profileId!==void 0?{profileId:e.profileId}:{}}}o(_E,"cacheAdmission");async function Rc(e){let t;try{t=await zn.open(rw(e),"r");let n=(await t.stat()).size;if(n>bH)return;let r=JSON.parse((await bc(t,0,n)).toString("utf8"));return AH(r,e)}catch(n){if(n.code==="ENOENT"||n instanceof SyntaxError)return;throw n}finally{await t?.close()}}o(Rc,"readConversationPageCacheManifest");function eh(e,t){let n=Ut.dirname(e);return{dataPath:Ut.join(n,t.dataFile),indexPath:Ut.join(n,t.indexFile)}}o(eh,"cachePaths");async function Rs(e,t){let n=eh(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 mt("Conversation page cache changed")}o(Rs,"assertCacheFilesStable");async function bc(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 mt("Conversation page cache ended unexpectedly");i+=s.bytesRead}return r}o(bc,"readFully");function AE(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 mt("Conversation page index offset is invalid");return{entryOffset:Number(n),entryLength:e.readUInt32LE(t+8),descriptorOffset:Number(r),descriptorLength:e.readUInt32LE(t+20)}}o(AE,"decodeIndexRecord");function LE(e,t,n){let r=e.entryOffset+e.entryLength,i=e.descriptorOffset+e.descriptorLength,s=Math.ceil(e.entryLength/n),a=Math.min(RH,e.entryLength+s*70+256);if(!Number.isSafeInteger(r)||!Number.isSafeInteger(i)||r>t||i>t||e.descriptorOffset<r||e.descriptorLength>a)throw new mt("Conversation page index is out of bounds")}o(LE,"assertIndexRecordBounds");function PE(e){let t=Buffer.allocUnsafe(ei);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(PE,"encodeIndexRecord");function LH(e){if(!qu(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 mt("Conversation page descriptor is invalid");return{chunkDigests:e.chunkDigests,...typeof e.boundaryId=="string"?{boundaryId:e.boundaryId}:{}}}o(LH,"parseDescriptor");async function $E(e,t){let n=await bc(e,t.descriptorOffset,t.descriptorLength);try{return LH(JSON.parse(n.toString("utf8")))}catch(r){throw r instanceof mt?r:new mt("Conversation page descriptor is corrupt")}}o($E,"readDescriptor");function NE(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(tw("sha256").update(e.subarray(r,Math.min(e.length,r+t))).digest("hex"));return n}o(NE,"entryChunkDigests");function PH(e,t,n){let r=NE(e,n);if(r.length!==t.chunkDigests.length||r.some((i,s)=>i!==t.chunkDigests[s]))throw new mt("Conversation page cache entry is corrupt")}o(PH,"assertEntryIntegrity");function OE(e){if(e instanceof mt||e instanceof Li)return e;let t=new Set(["EACCES","EBADF","EBUSY","EIO","EISDIR","EMFILE","ENFILE","ENOENT","ENOTDIR","EPERM","ESTALE"]);return e instanceof SyntaxError||qu(e)&&typeof e.code=="string"&&t.has(e.code)?new mt("Conversation page cache changed or is unavailable"):e instanceof Error?e:new Error(String(e))}o(OE,"normalizeConversationPageCacheReadError");async function ow(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(ow,"openCachePair");async function DE(e,t,n){try{return await $H(e,t,n)}catch(r){throw OE(r)}}o(DE,"readConversationPageCache");async function $H(e,t,n){ZS(n.signal);let r=await Rc(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 mt("Conversation history changed; request a fresh page");await Rs(e,r);let i=Math.min(n.end??r.entryCount,r.entryCount),s=Math.max(0,i-n.limit),a=eh(e,r),{data:c,index:l}=await ow(a.dataPath,a.indexPath,"r");try{let u=await bc(l,s*ei,(i-s)*ei),d=[],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 Li;for(let m=i-s-1;m>=0;m-=1){ZS(n.signal);let g=s+m,C=AE(u,m*ei);LE(C,r.dataBytes,r.chunkBytes);let w=await $E(c,C),T=C.entryLength<=n.maxInlineEntryBytes?await bc(c,C.entryOffset,C.entryLength):void 0;T!==void 0&&PH(T,w,r.chunkBytes);let v={index:g,...w.boundaryId!==void 0?{boundaryId:w.boundaryId}:{},byteLength:C.entryLength,oversized:C.entryLength>n.maxInlineEntryBytes,...T!==void 0?{entry:JSON.parse(T.toString("utf8"))}:{}},_=Buffer.byteLength(JSON.stringify(v),"utf8");if(p+_>n.maxPageBytes){if(d.length===0)throw new Li;break}d.unshift(v),p+=_}let h=d[0]?.index??i;return await Rs(e,r),{revision:r.revision,sourceRevision:r.sourceRevision,status:r.status,issues:structuredClone(r.issues),entries:d,hasMore:h>0,...h>0?{nextEnd:h}:{}}}finally{await Promise.all([c.close(),l.close()])}}o($H,"readConversationPageCacheInternal");async function BE(e,t,n){try{return await NH(e,t,n)}catch(r){throw OE(r)}}o(BE,"readConversationPageCacheChunk");async function NH(e,t,n){ZS(n.signal);let r=await Rc(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 mt("Conversation history changed; request a fresh page");if(n.offset<0||n.offset%r.chunkBytes!==0)throw new mt("Conversation entry cursor is invalid");await Rs(e,r);let i=eh(e,r),{data:s,index:a}=await ow(i.dataPath,i.indexPath,"r");try{let c=await bc(a,n.entryIndex*ei,ei),l=AE(c,0);LE(l,r.dataBytes,r.chunkBytes);let u=await $E(s,l);if(n.offset>l.entryLength)throw new mt("Conversation entry cursor is invalid");let d=Math.min(l.entryLength,n.offset+r.chunkBytes),p=await bc(s,l.entryOffset+n.offset,d-n.offset);if(tw("sha256").update(p).digest("hex")!==u.chunkDigests[n.offset/r.chunkBytes])throw new mt("Conversation page cache entry is corrupt");return await Rs(e,r),{revision:r.revision,entryIndex:n.entryIndex,...u.boundaryId!==void 0?{boundaryId:u.boundaryId}:{},data:p,...d<l.entryLength?{nextOffset:d}:{}}}finally{await Promise.all([s.close(),a.close()])}}o(NH,"readConversationPageCacheChunkInternal");async function ew(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(ew,"writeFully");function FE(e,t,n){return Buffer.from(JSON.stringify({...e.boundaryId!==void 0?{boundaryId:e.boundaryId}:{},chunkDigests:NE(t,n)}),"utf8")}o(FE,"createDescriptor");async function OH(e,t,n,r){let{data:i,index:s}=await ow(e,t,"wx"),a=0,c=0,l=[],u=[],d=0,p=o(async()=>{d!==0&&(await Promise.all([ew(i,Buffer.concat(l)),ew(s,Buffer.concat(u))]),l=[],u=[],d=0)},"flush");try{for(let h of n){let m=Buffer.from(JSON.stringify(h),"utf8"),g=FE(h,m,r);l.push(m,g),u.push(PE({entryOffset:a,entryLength:m.length,descriptorOffset:a+m.length,descriptorLength:g.length})),a+=m.length+g.length,c+=ei,d+=m.length+g.length+ei,d>=vH&&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(OH,"writeCacheEntries");async function sw(e,t){let n=rw(e),r=`${n}.${process.pid}.${CE()}.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(sw,"replaceManifest");async function DH(e,t){let n=Ut.dirname(e),r=Ut.basename(e,Ut.extname(e)),s=`${`${r}${Ai}`}${t}.`,a=await zn.readdir(n);await Promise.all(a.filter(c=>Jm(c)===r&&!c.startsWith(s)&&c!==Ut.basename(rw(e))).map(c=>zn.rm(Ut.join(n,c),{force:!0})))}o(DH,"removeGenerationFiles");async function aw(e,t,n,r,i,s,a){if(To(n)!==r.sourceRevision)throw new mt("Conversation source revision state is inconsistent");let c=CE(),l=wE(e,c,"data"),u=wE(e,c,"index");try{let d=await OH(l,u,r.entries,a),p=vs(r.entries);await sw(e,{version:IE,sessionId:Ut.basename(e,Ut.extname(e)),generation:c,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:Zm(i),boundaryRevision:t,revision:bs(r,p),entryChain:p,status:r.status,issues:r.issues,entryCount:r.entries.length,lineageEntryCount:i.entries.length,activeEntryId:i.activeEntryId,admission:_E(s),chunkBytes:a,dataFile:Ut.basename(l),dataBytes:d.dataBytes,indexFile:Ut.basename(u),indexBytes:d.indexBytes})}catch(d){throw await Promise.all([zn.rm(l,{force:!0}),zn.rm(u,{force:!0})]),d}try{await DH(e,c)}catch(d){process.emitWarning(`Unable to remove an old Conversation page cache generation: ${String(d)}`,{code:"KODAX_CONVERSATION_PAGE_CACHE_GC_FAILED"})}}o(aw,"writeConversationPageCache");async function HE(e,t,n,r,i,s){if(To(n)!==r.sourceRevision)return!1;let a=await Rc(e);if(a===void 0||a.entryCount!==r.entries.length)return!1;await Rs(e,a);let c=vs(r.entries);if(c!==a.entryChain||r.status!==a.status||JSON.stringify(r.issues)!==JSON.stringify(a.issues))return!1;let l=bs(r,c);return await sw(e,{...a,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:Zm(i),boundaryRevision:t,revision:l,entryChain:c,status:r.status,issues:r.issues,lineageEntryCount:i.entries.length,activeEntryId:i.activeEntryId,admission:_E(s)}),await Rs(e,a),!0}o(HE,"refreshConversationPageCache");async function TE(e,t){if(t.length===0)return;let n=await zn.open(e,"a");try{await ew(n,Buffer.concat(t)),await n.sync()}finally{await n.close()}}o(TE,"appendBuffers");async function WE(e,t,n,r,i,s,a){let c=To(r),l=eh(e,t);await Rs(e,t);let u=[],d=[],p=t.dataBytes;for(let g of i){let C=Buffer.from(JSON.stringify(g),"utf8"),w=FE(g,C,t.chunkBytes);u.push(C,w),d.push(PE({entryOffset:p,entryLength:C.length,descriptorOffset:p+C.length,descriptorLength:w.length})),p+=C.length+w.length}await TE(l.dataPath,u),await TE(l.indexPath,d);let h=Ic(t.entryChain,i),m={sourceRevision:c,status:t.status,issues:t.issues,entries:[]};await sw(e,{...t,sourceRevision:c,sourceRevisionState:r,identityFilter:iw(t.identityFilter,s),boundaryRevision:n,revision:bs(m,h),entryChain:h,entryCount:t.entryCount+i.length,lineageEntryCount:t.lineageEntryCount+s.length,activeEntryId:a,dataBytes:p,indexBytes:t.indexBytes+i.length*ei})}o(WE,"appendConversationPageCache");function jE(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"&&Xm(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||bE(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(jE,"canAppendConversationPageCache");import Le from"fs/promises";import ot from"fs";import U from"path";import{createHash as bo,randomUUID as ed}from"node:crypto";import{performance as _r}from"node:perf_hooks";import{isDeepStrictEqual as _W}from"node:util";import cM from"chalk";import{randomUUID as BH}from"node:crypto";import Ju from"node:fs/promises";import th from"node:path";function UE(e){let t=th.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(UE,"comparableRoot");async function cw(e){let t;try{t=await Ju.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 UE(n.canonicalRoot)}o(cw,"existingCanonicalRoot");async function VE(e){return await cw(th.join(e,"project.json"))!==void 0}o(VE,"projectManifestExists");async function nh(e,t){if(t.canonicalRoot===null)return;await Ju.mkdir(e,{recursive:!0});let n=th.join(e,"project.json"),r=UE(t.canonicalRoot),i=await cw(n);if(i!==void 0){if(i!==r)throw new Error(`Conflicting project identity at ${n}`);return}let s=th.join(e,`.project.${process.pid}.${BH()}.tmp`),a=await Ju.open(s,"wx");try{await a.writeFile(JSON.stringify({canonicalRoot:t.canonicalRoot,displayName:t.displayName,lastUsed:new Date().toISOString()})+`
78
- `,"utf8"),await a.sync()}finally{await a.close()}try{await Ju.link(s,n)}catch(c){if(c.code!=="EEXIST")throw c;if(await cw(n)!==r)throw new Error(`Conflicting project identity at ${n}`)}finally{await Ju.rm(s,{force:!0})}}o(nh,"publishProjectManifest");import Ct from"fs/promises";import dw from"fs";import Qe from"path";var KE=3,FH=300*1e3,HH=65536,lw=o(e=>Qe.join(e,".layout.json"),"layoutMarkerPath"),fw=o(e=>Qe.join(e,".migration-lock"),"lockDirPath"),zE=o(e=>Qe.join(fw(e),"owner.json"),"ownerPath"),uw=o(e=>Qe.join(e,".migration-journal.jsonl"),"journalPath"),rh=o(e=>Qe.join(Qe.dirname(e),"sessions-archive"),"sessionsArchiveDir");function ih(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}o(ih,"isSessionFile");function XE(e){return e.endsWith(".archive.jsonl")||e.endsWith(".islands.jsonl")?e.slice(0,-14):null}o(XE,"sidecarId");async function WH(e){let t;try{t=await Ct.open(e,"r");let n=[],r=0,i=0;for(;;){let c=Buffer.allocUnsafe(HH),{bytesRead:l}=await t.read(c,0,c.length,i);if(l===0)break;let u=c.subarray(0,l),d=u.indexOf(10),p=d>=0?u.subarray(0,d):u;if(n.push(p),r+=p.length,d>=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(WH,"readMeta");async function YE(e,t){let n=await WH(e);if(!n)return sr({});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&&dw.existsSync(a)){let c=Qe.resolve(a),l=t.get(c);l===void 0&&(l=Mv({cwd:a,timeoutMs:750}),t.set(c,l)),i={...r,canonicalRepoRoot:await l,...s!==void 0?{workspaceRoot:s}:{}}}return sr({gitRoot:n.gitRoot,runtimeInfo:i})}o(YE,"destIdentityFor");async function jH(e){let t=[],n=o(async(r,i)=>{let s=[];try{s=await Ct.readdir(r,{withFileTypes:!0})}catch{return}for(let a of s)!a.isFile()||a.name.startsWith(".")||(ih(a.name)||i&&XE(a.name)!==null)&&t.push(Qe.join(r,a.name))},"pushDir");return await n(e,!0),await n(rh(e),!0),t}o(jH,"collectMigrationSources");function UH(e,t){return Qe.join(e,t)}o(UH,"targetDirectory");async function VH(e){let t=await jH(e),n=t.filter(a=>ih(Qe.basename(a))),r=new Set(n.map(a=>`${Qe.dirname(a)}\0${Qe.basename(a,".jsonl")}`)),i=[],s=new Map;for(let a of n){let c=Qe.basename(a,".jsonl"),l=(await YE(a,s)).key,u=UH(e,l);i.push({from:a,to:Qe.join(u,`${c}.jsonl`),reason:`session\u2192${l}`});for(let d of[".archive.jsonl",".islands.jsonl"]){let p=Qe.join(Qe.dirname(a),`${c}${d}`);dw.existsSync(p)&&i.push({from:p,to:Qe.join(u,`${c}.islands.jsonl`),reason:"sidecar\u2192islands"})}}for(let a of t){let c=XE(Qe.basename(a));c===null||r.has(`${Qe.dirname(a)}\0${c}`)||i.push({from:a,to:Qe.join(e,cy,"orphan-islands",`${c}.islands.jsonl`),reason:"orphan-sidecar\u2192_unknown"})}return i}o(VH,"planMigration");async function GH(e){try{let t=JSON.parse(await Ct.readFile(lw(e),"utf8"));return t!==null&&typeof t=="object"&&t.version===KE}catch{return!1}}o(GH,"isMigrated");async function GE(e){await Qm(e),await Qm(rh(e))}o(GE,"removeLegacyConversationCaches");async function KH(e){try{let t=JSON.parse(await Ct.readFile(zE(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>FH}catch{return!0}}o(KH,"lockIsStale");async function zH(e){let t=fw(e);for(let n=0;n<2;n+=1)try{return await Ct.mkdir(t),await Ct.writeFile(zE(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 KH(e)){await Ct.rm(t,{recursive:!0,force:!0}).catch(()=>{});continue}return!1}return!1}o(zH,"acquireLock");async function XH(e){await Ct.rm(fw(e),{recursive:!0,force:!0}).catch(()=>{})}o(XH,"releaseLock");async function YH(e){try{if((await Ct.readdir(Qe.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(YH,"assertNoActiveSessionWriters");async function qH(e){let t=new Set;try{let n=await Ct.readFile(uw(e),"utf8");for(let r of n.split(`
79
- `))if(r.trim())try{let i=JSON.parse(r);i.done&&typeof i.from=="string"&&t.add(i.from)}catch{}}catch{}return t}o(qH,"readJournalDone");async function JH(e,t){if(Qe.resolve(e.from)===Qe.resolve(e.to))return!1;if(await Ct.mkdir(Qe.dirname(e.to),{recursive:!0}),dw.existsSync(e.to)){let n=Qe.dirname(e.from);return n===t||n===rh(t)?(await Ct.unlink(e.from).catch(()=>{}),!0):!1}try{await Ct.rename(e.from,e.to)}catch(n){let r=n.code;if(r==="EXDEV")await Ct.copyFile(e.from,e.to),await Ct.unlink(e.from).catch(()=>{});else if(r!=="ENOENT")throw n}return!0}o(JH,"executeMove");async function QH(e){let t=[],n=o(async r=>{try{for(let i of await Ct.readdir(r,{withFileTypes:!0}))i.isFile()&&ih(i.name)&&t.push(Qe.join(r,i.name))}catch(i){if(i.code!=="ENOENT")throw i}},"append");return await n(e),await n(Qe.join(e,"archived")),t}o(QH,"readBucketMainFiles");async function ZH(e,t){let n=new Map,r=new Set(t.flatMap(i=>i.reason.startsWith("session\u2192")?[Qe.dirname(i.to)]:[]));for(let i of r){let s=Qe.basename(i);if(s===cy)continue;let a=await QH(i),c;for(let l of a){let u=await YE(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 nh(i,c)}}o(ZH,"publishBucketManifests");async function eW(e){await Ct.mkdir(e,{recursive:!0});let t=`${lw(e)}.${process.pid}.tmp`,n=JSON.stringify({version:KE,migratedAt:new Date().toISOString(),from:"flat-v1"});await Ct.writeFile(t,n+`
80
- `,"utf8"),await Ct.rename(t,lw(e))}o(eW,"writeMarker");async function tW(e){let t=rh(e);try{(await Ct.readdir(t)).length===0&&await Ct.rmdir(t).catch(()=>{})}catch{}}o(tW,"retireSessionsArchive");async function nW(e){if(!await zH(e))return{moved:0,planned:0};try{await YH(e),await GE(e);let t=await VH(e),n=await qH(e),r=await Ct.open(uw(e),"a"),i=0;try{for(let s of t){if(ih(Qe.basename(s.from)))try{await Kn(s.to)}catch(c){throw new Co(Qe.dirname(s.to),c)}if(n.has(s.from))continue;let a=await JH(s,e);await r.write(JSON.stringify({from:s.from,to:s.to,done:!0})+`
81
- `),a&&(i+=1)}}finally{await r.close()}return await tW(e),await GE(e),await ZH(e,t),await eW(e),await Ct.rm(uw(e),{force:!0}).catch(()=>{}),{moved:i,planned:t.length}}finally{await XH(e)}}o(nW,"runMigration");async function ks(e){try{if(await GH(e))return;await nW(e)}catch(t){if(t instanceof Co)throw t}}o(ks,"ensureLayoutMigrated");import{createHash as hw,randomUUID as gw}from"node:crypto";import It from"node:fs/promises";import Mr from"node:path";var Ec=7,rW=".resume-index",iW="complete.json",oW="publish.lock",sW=".resume";var aW=2e3,ch=10,pw=3e4,Mc=40,oh=new Map,kc=new Map;function Ac(e){return Mr.join(e,rW)}o(Ac,"indexDir");function yw(e){return Mr.join(Ac(e),iW)}o(yw,"manifestPath");function lh(e){return`${hw("sha256").update(e,"utf8").digest("hex")}${sW}`}o(lh,"markerName");function ZE(e,t){return Mr.join(Ac(e),lh(t))}o(ZE,"markerPath");function qE(e){try{let t=JSON.parse(e);return!_c(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(qE,"parseIndexPublishLockOwner");async function JE(e){for(let t=0;t<Mc;t+=1)try{return await It.rmdir(e),!0}catch(n){let r=n.code;if(r==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(r??""))return!1;t+1<Mc&&await new Promise(i=>setTimeout(i,ch))}return!1}o(JE,"removeEmptyIndexLockDirectory");async function cW(e){let t=`${e}.reclaim`;for(let n=0;n<2;n+=1)try{return await It.mkdir(t),async()=>{await JE(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 It.stat(t);if(Date.now()-i.mtimeMs<pw)return}catch(i){if(i.code==="ENOENT")continue;throw i}if(!await JE(t))return}}o(cW,"acquireIndexLockReclaimGuard");function QE(e){try{return process.kill(e,0),!1}catch(t){return t.code==="ESRCH"}}o(QE,"processIsDefinitelyDead");async function sh(e){try{let[t,n]=await Promise.all([It.readFile(e,"utf8"),It.stat(e)]);return{content:t,mtimeMs:n.mtimeMs}}catch(t){if(t.code==="ENOENT")return;throw t}}o(sh,"readIndexPublishLock");async function mw(e,t){for(let n=0;n<Mc;n+=1){let r=await sh(e);if(r===void 0)return!0;if(r.content!==t)return!1;try{return await It.rm(e),!0}catch(i){let s=i.code;if(s==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(s??""))return!1;n+1<Mc&&await new Promise(a=>setTimeout(a,ch))}}return!1}o(mw,"removeObservedIndexPublishLock");async function lW(e){let t=await sh(e);if(t===void 0)return!0;if(kc.get(e)===t.content){let i=await mw(e,t.content);return i&&kc.delete(e),i}let n=qE(t.content);if(n!==void 0){if(!QE(n.pid))return!1}else if(Date.now()-t.mtimeMs<pw)return!1;let r=await cW(e);if(r===void 0)return!1;try{let i=await sh(e);if(i===void 0)return!0;let s=qE(i.content);return kc.get(e)===i.content||(s!==void 0?QE(s.pid):Date.now()-i.mtimeMs>=pw)?mw(e,i.content):!1}finally{await r()}}o(lW,"reclaimAbandonedIndexPublishLock");async function uW(e){let t;for(let r=0;r<Mc;r+=1)try{await It.rm(e,{force:!0});return}catch(i){t=i;let s=i.code;if(!["EPERM","EACCES","EBUSY"].includes(s??""))break;r+1<Mc&&await new Promise(a=>setTimeout(a,ch))}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(uW,"removeIndexPublishLockTemp");async function dW(e,t){await It.mkdir(Mr.dirname(e),{recursive:!0});let n=`${e}.${process.pid}.${gw()}.tmp`;await It.writeFile(n,t,{encoding:"utf8",flag:"wx"});let r=Date.now()+aW;try{for(;;)try{await It.link(n,e);return}catch(i){let s=i.code;if(!["EEXIST","EPERM","EACCES","EBUSY"].includes(s??""))throw i;if(await sh(e)!==void 0&&await lW(e))continue;if(Date.now()>=r)throw new Error(`Resume index publish lock timed out: ${e}`,{cause:i});await new Promise(c=>setTimeout(c,ch))}}finally{await uW(n)}}o(dW,"acquireIndexPublishLock");async function fW(e,t){if(!await mw(e,t))throw kc.set(e,t),new Error(`Resume index publish lock ownership changed: ${e}`);kc.get(e)===t&&kc.delete(e)}o(fW,"releaseIndexPublishLock");async function pW(e,t){let n=Mr.join(Ac(e),oW),r=oh.get(n)??Promise.resolve(),i,s=new Promise(c=>{i=c});oh.set(n,s),await r.catch(()=>{});let a=JSON.stringify({pid:process.pid,token:gw()});try{await dW(n,a);try{return await t()}finally{await fW(n,a)}}finally{i(),oh.get(n)===s&&oh.delete(n)}}o(pW,"withIndexPublishLock");function uh(e){let t=Mr.dirname(e);return Mr.basename(t)==="archived"?Mr.dirname(t):t}o(uh,"resumeIndexProjectDir");function _c(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(_c,"isRecord");function mW(e){if(!(!_c(e)||typeof e.id!="string"||e.id.length===0||Mr.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(mW,"parseEntry");function hW(e){if(!_c(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=>!_c(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!==Ec||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||ah(t)!==e.markerDigest||n.length!==e.sessionFileCount||ah(n)!==e.sessionFileDigest||r.length!==e.excludedSourceCount||eM(r)!==e.excludedSourceDigest))return{version:Ec,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(hW,"parseManifest");function gW(e,t){if(!_c(e)||e.version!==Ec||e.state!=="pending"&&e.state!=="ready")return;let n=mW(e.entry);if(!n||lh(n.id)!==t)return;let r=_c(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:Ec,state:e.state,entry:n,...r!==void 0?{source:r}:{}}}o(gW,"parseMarker");function ah(e){let t=hw("sha256");for(let n of[...e].sort())t.update(n),t.update(`
82
- `);return t.digest("hex")}o(ah,"digestMarkerNames");function eM(e){let t=hw("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(`
83
- `);return t.digest("hex")}o(eM,"digestScannedFiles");async function yW(e,t){let n;try{n=await It.readFile(Mr.join(Ac(e),t),"utf8")}catch(r){if(r.code!=="ENOENT")throw r;return}try{return gW(JSON.parse(n),t)}catch{return}}o(yW,"readMarker");async function tM(e,t){let n=`${e}.${process.pid}.${gw()}.tmp`;await It.writeFile(n,t,"utf8");try{await It.rename(n,e)}catch(r){if(!["EEXIST","EPERM"].includes(r.code??""))throw r;await It.rm(e,{force:!0}),await It.rename(n,e)}finally{await It.rm(n,{force:!0})}}o(tM,"replaceDerivedFile");async function SW(e){await It.rm(yw(e),{force:!0})}o(SW,"invalidateManifest");async function nM(e,t,n,r,i){let s=Ac(e),a=ZE(e,t.id);if(await It.mkdir(s,{recursive:!0}),!r)try{return await It.access(a),!1}catch(u){if(u.code!=="ENOENT")throw u}let c=r?await yW(e,lh(t.id)):void 0,l={version:Ec,state:n,entry:{...c?.entry,...t},...i!==void 0?{source:i}:{}};return await tM(a,JSON.stringify(l)),!0}o(nM,"writeMarker");async function wW(e,t){try{let n=await It.stat(Mr.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(wW,"canonicalSource");async function xW(e,t,n,r){await It.mkdir(Ac(e),{recursive:!0});let i=[...t].sort(),s=[...n].sort(),a=[...r].sort((l,u)=>l.name.localeCompare(u.name)),c={version:Ec,markerNames:i,markerCount:i.length,markerDigest:ah(i),sessionNames:s,sessionFileCount:s.length,sessionFileDigest:ah(s),excludedSources:a,excludedSourceCount:a.length,excludedSourceDigest:eM(a)};await tM(yw(e),JSON.stringify(c))}o(xW,"writeManifest");async function dh(e,t){try{await nM(e,t,"pending",!1)}catch(n){try{await SW(e)}catch(r){throw new AggregateError([n,r],`Unable to prepare or invalidate the resume index for ${t.id}`)}throw n}}o(dh,"prepareResumeIndexEntry");async function TW(e,t){try{return await It.rm(ZE(e,t)),!0}catch(n){if(n.code==="ENOENT")return!1;throw n}}o(TW,"removeResumeIndexEntry");async function Qu(e,t,n){await pW(e,async()=>{let r=await wW(e,t.id);if(n){if(r===void 0)return;await nM(e,t,"ready",!0,r)}else await TW(e,t.id);await CW(e,t.id,n,r)})}o(Qu,"commitResumeIndexEntry");async function CW(e,t,n,r){let i;try{i=await It.readFile(yw(e),"utf8")}catch(p){if(p.code==="ENOENT")return;throw p}let s;try{s=hW(JSON.parse(i))}catch{return}if(!s)return;let a=lh(t),c=`${t}.jsonl`;if(n&&s.markerNames.includes(a))return;let l=new Set(s.markerNames),u=new Set(s.sessionNames),d=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&&d.push({name:c,sourceSize:r.size,sourceMtimeMs:r.mtimeMs,sourceCtimeMs:r.ctimeMs,sourceDev:r.dev,sourceIno:r.ino})),await xW(e,[...l],[...u],d)}o(CW,"refreshCompleteManifestAfterCommit");var IW=new Set(["user","assistant","system"]),vW=new Set(["user","assistant","system","thinking","error","event","info","hint"]),bW=new Set(["success","error","cancelled","awaiting_approval"]);function Ze(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(Ze,"isRecord");function Pi(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(Pi);if(!Ze(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(Pi)}o(Pi,"isKodaXJsonValue");function iM(e){return Ze(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||Pi(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}o(iM,"isKodaXExtensionSessionRecord");function oM(e){return Ze(e)?Object.values(e).every(t=>Ze(t)?Object.values(t).every(Pi):!1):!1}o(oM,"isKodaXExtensionSessionState");function RW(e){if(!Ze(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"&&Ze(e.input);case"tool_result":return typeof e.tool_use_id=="string"&&(typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(kW))&&(e.is_error===void 0||typeof e.is_error=="boolean")&&(e.metadata===void 0||Ze(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(RW,"isKodaXContentBlock");function kW(e){return Ze(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(kW,"isKodaXToolResultContentItem");function Sw(e){return!Ze(e)||typeof e.role!="string"||!IW.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(RW)}o(Sw,"isKodaXMessage");function sM(e){return Ze(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(sM,"isSessionErrorMetadata");function EW(e){return Ze(e)&&Object.values(e).every(Pi)}o(EW,"isKodaXSessionUiToolInput");function MW(e){return Ze(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.status=="string"&&bW.has(e.status)&&(e.input===void 0||EW(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(MW,"isKodaXSessionUiToolCall");function rM(e){return e===void 0||typeof e=="number"&&Number.isFinite(e)&&e>=0}o(rM,"isOptionalHistoryTimestamp");function aM(e){return!Ze(e)||typeof e.type!="string"?!1:e.type==="tool_group"?rM(e.timestamp)&&Array.isArray(e.tools)&&e.tools.length>0&&e.tools.every(MW):vW.has(e.type)&&typeof e.text=="string"&&rM(e.timestamp)&&(e.icon===void 0||typeof e.icon=="string")&&(e.compactText===void 0||typeof e.compactText=="string")}o(aM,"isKodaXSessionUiHistoryItem");var AW=[10,25,50,100],gh=6e4,LW=gh+5e3,PW=15e3,Iw=".location-topology",$W=".location-topology.lock",yh=".location-index",NW=64*1024,lM=256*1024,_M=256,ww=0,vw=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 fh(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}o(fh,"deferredValue");function Mn(e){return Math.max(0,_r.now()-e)}o(Mn,"elapsedMs");function OW(e){return JSON.parse(JSON.stringify(e))}o(OW,"jsonPersistedValue");var bw=class{static{o(this,"ActorSaveLifecycleState")}attempt;queueObserver;canonicalObserver;attemptId;startedAt=_r.now();dequeued=fh();eligible=fh();canonical=fh();completion=fh();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}:${ed()}`,this.cancelled=new vw(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,Mn(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",Mn(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",Mn(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",Mn(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",Mn(this.committedAt)),this.recordTiming("total",Mn(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:Mn(this.activeStageStartedAt)}:{},...this.failedStage!==void 0?{failedStage:this.failedStage}:{},canonicalOutcome:this.canonicalOutcome,completionOutcome:this.completionOutcome,timingsMs:{...this.timings}}}};function DW(e,t){return new bw(e,t)}o(DW,"createActorSaveLifecycle");function AM(e){let t=e??PW;if(!Number.isSafeInteger(t)||t<=0)throw new Error("Session read timeoutMs must be a positive safe integer");return t}o(AM,"normalizeSessionReadTimeout");function Xn(e){if(e?.aborted)throw new xe("read_cancelled","Session history read cancelled")}o(Xn,"throwIfSessionReadAborted");function Th(e,t){Xn(e.signal);let n=AM(e.timeoutMs);if(!(Date.now()-t<n))throw new xe("read_timeout",`Session history read timed out after ${n}ms`)}o(Th,"assertSessionReadBudget");async function Lc(e,t){let n=AM(t.timeoutMs),r,i;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new xe("read_timeout",`Session history read timed out after ${n}ms`)),n),t.signal!==void 0&&(i=o(()=>a(new xe("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(Lc,"raceSessionRead");async function xw(e,t){for(let n=0;;n+=1)try{await Le.rename(e,t);return}catch(r){let i=AW[n];if(i===void 0||!BW(r))throw r;await new Promise(s=>setTimeout(s,i))}}o(xw,"replaceSessionFile");function BW(e){if(!(e instanceof Error)||!("code"in e))return!1;let t=e.code;return t==="EPERM"||t==="EBUSY"||t==="EACCES"}o(BW,"isTransientRenameError");function FW(e){return!Ze(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(FW,"isPersistedMetaUpdateLine");function LM(e){if(!Array.isArray(e))return;let t=e.filter(aM).map(n=>n.type==="tool_group"?{...n,tools:n.tools.map(r=>({...r}))}:{...n});return t.length>0?t:void 0}o(LM,"normalizeKodaXSessionUiHistory");var xe=class extends Error{static{o(this,"SessionReadError")}code;constructor(t,n){super(n),this.code=t,this.name="SessionReadError"}};function uM(e,t){let n=ha(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(uM,"completeLineageBoundaryPath");function Pc(e,t){let n=bo("sha256").update(t,"utf8").digest("hex");return U.join(e,".write-locks",`${n}.lock`)}o(Pc,"sessionWriteLockPath");function Ms(e){return U.join(e,$W)}o(Ms,"sessionLocationTopologyLockPath");function PM(e,t){let n=bo("sha256").update(t,"utf8").digest("hex");return U.join(e,yh,`${n}.json`)}o(PM,"sessionLocationHintPath");function $M(e,t){return`${Pc(e,t)}.queue`}o($M,"sessionWriteQueuePath");function _w(e){return U.join(e,".write-locks")}o(_w,"sessionGlobalWriteBoundaryPath");function dM(e){let t=_w(e);try{let n=bo("sha256"),r=ot.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(ot.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(`
84
- `)}return n.digest("hex")}catch(n){return n.code==="ENOENT"?bo("sha256").digest("hex"):void 0}}o(dM,"sessionWriterTopologyDigestSync");function Ni(e,t){let n=[Pc(e,t),Ms(e),U.join(e,".migration-lock"),U.join(e,".migration-journal.jsonl")].find(r=>ot.existsSync(r));if(n!==void 0)throw new xe("data_changed",`Session data changed during the read boundary: ${U.basename(n)}`)}o(Ni,"assertStableSessionReadBoundary");async function NM(e,t){let n=Pc(e,t);ot.existsSync(n)&&await iI(n),Ni(e,t)}o(NM,"prepareStableSessionReadBoundary");function HW(e){let t=[U.join(e,".migration-lock"),U.join(e,".migration-journal.jsonl")].find(n=>ot.existsSync(n));if(t!==void 0)throw new xe("data_changed",`Session layout migration is active: ${U.basename(t)}`)}o(HW,"assertSessionMigrationInactive");function fM(e){try{return ot.statSync(e).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}o(fM,"inspectSessionCandidate");async function Tw(e){try{return(await Le.stat(e)).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}o(Tw,"inspectSessionCandidateAsync");function Sh(e,t){return new xe("data_changed",`Session candidate could not be verified for ${e}: ${U.basename(t)}`)}o(Sh,"inaccessibleSessionCandidate");async function pM(e,t){let n=[],r=U.join(e,`${t}.jsonl`),i=fM(r);if(i==="present"&&n.push(r),i==="unverifiable")throw Sh(t,r);let s=[];try{s=await Le.readdir(e,{withFileTypes:!0})}catch(a){if(a.code!=="ENOENT")throw Sh(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=fM(l);if(u==="present"&&n.push(l),u==="unverifiable")throw Sh(t,l)}}return n.sort()}o(pM,"findStableSessionCandidates");async function WW(e,t){let n;try{n=await Le.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(!Ar(a,c)||BigInt(i.length)!==c.size)throw new xe("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 xe("data_changed",`Session file changed while reading: ${U.basename(t)}`):r}finally{await n.close()}}o(WW,"readStableBundleFile");function _s(e){return{dev:e.dev,ino:e.ino,size:e.size,mtimeNs:e.mtimeNs,ctimeNs:e.ctimeNs}}o(_s,"stableFileIdentity");function mM(e){return{dev:e.dev.toString(),ino:e.ino.toString(),size:e.size.toString(),mtimeNs:e.mtimeNs.toString(),ctimeNs:e.ctimeNs.toString()}}o(mM,"persistStableFileIdentity");function hM(e){if(!(!Ze(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(hM,"parsePersistedStableFileIdentity");function Ar(e,t){return e.dev===t.dev&&e.ino===t.ino&&e.size===t.size&&e.mtimeNs===t.mtimeNs&&e.ctimeNs===t.ctimeNs}o(Ar,"sameStableFileIdentity");function Rw(e,t){return e===null||t===null?e===t:Ar(e,t)}o(Rw,"sameOptionalStableFileIdentity");function Io(e,t){return Ar(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&Rw(e.writerIdentity,t.writerIdentity)&&Rw(e.activeWriterIdentity,t.activeWriterIdentity)}o(Io,"sameSessionTopologyIdentity");function jW(e,t){return Ar(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&Rw(e.writerIdentity,t.writerIdentity)}o(jW,"sameSessionTopologyWithoutActiveWriter");function UW(e,t){return e===null||t===null?e===t:Io(e,t)}o(UW,"sameOptionalSessionTopologyIdentity");function VW(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(VW,"resolvePersistedSessionLocationPath");async function GW(e,t){let n;try{n=await Le.open(PM(e,t),"r");let r=(await n.stat()).size;if(r>NW)return;let i=Buffer.allocUnsafe(r),s=0;for(;s<r;){let{bytesRead:d}=await n.read(i,s,r-s,s);if(d===0)return;s+=d}let a=JSON.parse(i.toString("utf8"));if(!Ze(a)||a.version!==1||a.id!==t||!Array.isArray(a.filePaths)||a.filePaths.length===0||a.filePaths.length>16||!Ze(a.topology)||a.topology.epoch!==null&&typeof a.topology.epoch!="string")return;let c=hM(a.topology.root),l=a.topology.writerIdentity===null?null:hM(a.topology.writerIdentity);if(c===void 0||l===void 0)return;let u=a.filePaths.flatMap(d=>{if(typeof d!="string")return[];let p=VW(e,t,d);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(GW,"readSessionLocationHint");async function ph(e,t,n="session"){let r=await Yn(e);if(r===null)return null;let i=await Yn(n==="session"?$M(e,t):_w(e)),s=n==="session"?await Yn(Pc(e,t)):null;try{return{root:r,epoch:(await Le.readFile(U.join(e,Iw),"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(ph,"statSessionTopologyIdentity");async function Yn(e){try{return _s(await Le.stat(e,{bigint:!0}))}catch(t){if(t.code==="ENOENT")return null;throw t}}o(Yn,"statStableFileIdentity");function OM(e,t){return hE(t.map(n=>({kind:n.kind,relativePath:U.relative(e,n.path).replace(/\\/g,"/"),bytes:n.bytes})))}o(OM,"createStableBundleSourceRevisionState");function Aw(e,t){let n=bo("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(Aw,"createStableBundleBoundaryRevision");async function kw(e,t,n,r,i=!1,s){Xn(r),i||Ni(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(Xn(r),p.kind==="main"&&s!==void 0){let h=await Yn(p.filePath);if(h===null||h.size!==BigInt(s.length))throw new xe("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 WW(p.kind,p.filePath));if(l[0]===null)throw new xe("data_changed","Session main file moved during the read boundary");i||Ni(e,t);for(let p=0;p<c.length;p+=1){Xn(r);let h=await Yn(c[p].filePath),m=l[p];if(m===null&&h!==null||m!==null&&(h===null||!Ar(m.identity,h)))throw new xe("data_changed",`Session file changed during the read boundary: ${U.basename(c[p].filePath)}`)}i||Ni(e,t);let u=l.flatMap(p=>p===null?[]:[p.file]),d=OM(e,u);return{candidates:[n],files:u,sourceRevision:To(d),sourceRevisionState:d,boundaryRevision:Aw(e,l)}}o(kw,"readStableSessionBundleAtPath");async function Es(e,t,n,r=!1){return(await td(e,t,n,r)).revision}o(Es,"readStableSessionBundleBoundaryAtPath");async function td(e,t,n,r=!1){r||Ni(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 Yn(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 xe("data_changed","Session main file moved during the read boundary");r||Ni(e,t);for(let c=0;c<s.length;c+=1){let l=await Yn(s[c].filePath),u=a[c];if(u===null&&l!==null||u!==null&&(l===null||!Ar(u.identity,l)))throw new xe("data_changed",`Session file changed during the read boundary: ${U.basename(s[c].filePath)}`)}return r||Ni(e,t),{revision:Aw(e,a),identities:a.map(c=>c?.identity??null)}}o(td,"readStableSessionBundleBoundarySnapshotAtPath");function KW(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&&Ar(a,c)})}o(KW,"isExpectedAppendBoundaryTransition");async function DM(e,t,n){let r=U.resolve(e);Xn(n),await NM(r,t);let i=await pM(r,t);if(i.length!==1){let c=OM(r,[]);return{candidates:i,files:[],sourceRevision:To(c),sourceRevisionState:c,boundaryRevision:Aw(r,[])}}let s=await kw(r,t,i[0],n);Xn(n);let a=await pM(r,t);if(a.length!==i.length||a.some((c,l)=>c!==i[l]))throw new xe("data_changed","Session location changed during the read boundary");return s}o(DM,"readStableSessionBundleFiles");function Et(e,t,n){ft({source:"repl:session-storage",level:e,message:t,...n!==void 0?{detail:n}:{}})}o(Et,"reportStorageDiagnostic");function gM(e,t){t!==0&&Et("warn",`Skipped ${t} malformed session record(s) from ${U.basename(e)}.`)}o(gM,"warnMalformedSessionData");function $i(e){Et("info",e)}o($i,"writeStorageNotice");function yM(e){return{_type:"extension_record",...e}}o(yM,"toExtensionRecordLine");function SM(e){return{_type:"lineage_entry",entry:e}}o(SM,"toLineageEntryLine");function wM(e){return{_type:"artifact_ledger_entry",entry:e}}o(wM,"toArtifactLedgerLine");function zW(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(zW,"activeMessageContribution");function XW(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=zW(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(XW,"activeMessageCountAfterAppend");function xM(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(xM,"hasTailIdCollision");function Ew(e){return[e.kind,e.sourceTool??"",e.action??"",e.target].join("::")}o(Ew,"artifactLedgerDedupKey");function YW(e,t){if(t.size+e.length>_M)return!0;let n=new Set;for(let r of e){let i=Ew(r);if(t.has(i)||n.has(i))return!0;n.add(i)}return!1}o(YW,"hasArtifactTailConflict");function mh(e){return bo("sha256").update("kodax-conversation-identity-filter-authority-v1\0").update(e,"utf8").digest("hex")}o(mh,"conversationIdentityFilterHash");function qW(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||ME(r,a.id)||s.has(a.id))return!1;s.add(a.id),i=a.id}return n===i}o(qW,"isLinearPreparedMessageTail");function JW(e){return Ze(e)&&e._type==="extension_record"&&iM(e)}o(JW,"isPersistedExtensionRecordLine");function QW(e){return Ze(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(QW,"hasEntryBase");function BM(e){if(!QW(e))return!1;let t=e;switch(t.type){case"message":return Sw(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||Pi(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||Pi(t.payload));case"goal":return typeof t.event=="string";case"memory_outcome_digest":return Ze(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(BM,"isKodaXSessionEntry");function ZW(e){return Ze(e)&&e._type==="lineage_entry"&&BM(e.entry)}o(ZW,"isPersistedLineageEntryLine");function ej(e){return Ze(e)&&e._type==="archived_entry"&&typeof e.archiveBatchId=="string"&&BM(e.entry)}o(ej,"isPersistedArchivedEntryLine");function TM(e){return typeof e=="string"||e===null?e:void 0}o(TM,"archivedEntryAnchor");function vo(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(vo,"isCompactedPlaceholder");function tj(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||vo(i))&&n.set(r.id,r)}return[...n.values()]}o(tj,"mergeConcurrentLineageEntries");function nd(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(nd,"addOrderingEdge");function nj(e,t,n){let r=new Set,i;for(let s of n)!t.has(s)||r.has(s)||(nd(e,t,i,s),i=s,r.add(s))}o(nj,"addSequenceEdges");function CM(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(CM,"pushMin");function rj(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(rj,"popMin");function IM(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(IM,"orderingIndegrees");function vM(e,t,n,r){for(;e.length>0;){let i=rj(e),s=t[i];if(!n.has(s)&&r(s))return i}}o(vM,"popEligibleIndex");function ij(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(ij,"findParentCycleNode");function bM(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(bM,"releaseOrderingTargets");function oj(e,t,n,r){let i=new Map(e.map((h,m)=>[h,m])),s=IM(e,t),a=IM(e,n),c=[],l=[],u=new Set,d=[],p=o(h=>{s.get(h)===0&&CM(l,i.get(h)),s.get(h)===0&&a.get(h)===0&&CM(c,i.get(h))},"queueIfReady");for(let h of e)p(h);for(;d.length<e.length;){let h=vM(c,e,u,g=>s.get(g)===0&&a.get(g)===0);if(h??=vM(l,e,u,g=>s.get(g)===0),h===void 0){let g=ij(e,u,r);if(!g)break;s.set(g,0),p(g);continue}let m=e[h];u.add(m),d.push(m),bM(m,t,s,u,p),bM(m,n,a,u,p)}return d}o(oj,"stablePriorityTopologicalOrder");function Zu(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||sj(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||!vo(p))&&n.set(p.id,p)}let s=new Set(n.keys()),a=new Map;nj(a,s,t.map(p=>p.id));let c=new Set(t.filter(p=>!vo(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}nd(a,s,l.get(h),p.entry.id),l.set(h,p.entry.id),nd(a,s,p.previousEntryId,p.entry.id),nd(a,s,p.entry.id,p.nextEntryId)}let u=new Map,d=new Map;for(let p of n.values())nd(u,s,p.parentId,p.id),p.parentId&&s.has(p.parentId)&&p.parentId!==p.id&&d.set(p.id,p.parentId);return oj(i,u,a,d).map(p=>n.get(p))}o(Zu,"mergeFullLineageEntries");function sj(e,t){let n=!vo(e.entry),r=!vo(t.entry);return n!==r?n:e.streamId!==t.streamId?e.streamId<t.streamId:!0}o(sj,"shouldPreferArchivedRecord");function aj(e,t){let n=e.lineage,r=t.lineage,i=n&&r?{...n,entries:tj(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(aj,"mergeConcurrentAppendData");function cj(e,t,n){let r=n.map(d=>d.entry),i=lj(e,t)?dj(t,e):e,s=new Set(ha(i).map(d=>d.id)),a=new Map(r.map(d=>[d.id,d])),c=new Map;for(let d of r)vo(d)||c.set(d.id,d);for(let d of t?.entries??[])vo(d)||c.set(d.id,d);let l=[],u=new Set;for(let d of i.entries){if(a.has(d.id)&&!s.has(d.id))continue;let p=vo(d)?c.get(d.id):void 0,h=p?.type==="message"&&d.type==="message"?{...d,message:p.message}:d;l.push(h),u.add(d.id)}for(let d of t?.entries??[])(d.type==="archive_marker"||d.type==="memory_outcome_digest"||d.type==="memory_review_receipt"||d.type==="client_notice")&&!u.has(d.id)&&(l.push(d),u.add(d.id));return{...i,entries:l}}o(cj,"reconcileCompactionLineage");function lj(e,t){if(t===void 0)return!1;let n=new Set(e.entries.map(r=>r.id));return t.entries.some(r=>uj(r)&&!n.has(r.id))}o(lj,"persistedTopologySupersedesIncoming");function uj(e){return e.type==="compaction"||e.type==="rewind_marker"}o(uj,"isTopologyEntry");function dj(e,t){let n=[...e.entries],r=new Set(n.map(i=>i.id));for(let i of t.entries)!r.has(i.id)&&fj(i)&&(n.push(i),r.add(i.id));return{...e,entries:n}}o(dj,"mergeContextSilentLineageEntries");function fj(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(fj,"isContextSilentLineageEntry");function pj(e){return Ze(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||Pi(e.metadata))}o(pj,"isKodaXSessionArtifactLedgerEntry");function mj(e){return Ze(e)&&e._type==="artifact_ledger_entry"&&pj(e.entry)}o(mj,"isPersistedArtifactLedgerLine");function wh(e){return Ze(e)&&(e.canonicalRepoRoot===void 0||typeof e.canonicalRepoRoot=="string")&&(e.workspaceRoot===void 0||typeof e.workspaceRoot=="string")&&(e.executionCwd===void 0||typeof e.executionCwd=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.workspaceKind===void 0||e.workspaceKind==="detected"||e.workspaceKind==="managed")}o(wh,"isKodaXSessionRuntimeInfo");function hj(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(hj,"getLastNavigableEntryId");var gj="1970-01-01T00:00:00.000Z";function yj(e){let t=e.meta?.id??bo("sha256").update(e.rawContent).digest("hex"),n=e.meta?.createdAt??gj,r=null,i=e.legacyMessages.map((s,a)=>{let l=`entry_${bo("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(yj,"buildDeterministicLegacyLineage");function Sj(e){return e.lineageEntries.length>0?{version:2,activeEntryId:e.meta?.activeEntryId??hj(e.lineageEntries),entries:e.lineageEntries}:e.legacyMessages.length===0?e.meta?.lineageVersion===2?{version:2,activeEntryId:e.meta.activeEntryId??null,entries:[]}:void 0:yj(e)}o(Sj,"buildLineage");function RM(e){return typeof e=="string"?`t:${e}`:`j:${JSON.stringify(e)}`}o(RM,"serializeMessageContentForCompare");function wj(e,t){return e===t?!0:e.role===t.role&&e._synthetic===!0==(t._synthetic===!0)&&RM(e.content)===RM(t.content)}o(wj,"sameMessageByContent");function xj(e,t){if(e.lineage)return e.lineage;if(t){let n=Lt(t),r=e.messages;if(r.length<=n.length&&r.every((s,a)=>wj(s,n[a])))return t}return qe(e.messages,t)}o(xj,"resolveSnapshotLineage");function kM(e,t){let n=Sj(e),r=n?Lt(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:wh(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:LM(e.meta?.uiHistory),...sM(e.meta?.errorMetadata)?{errorMetadata:{...e.meta.errorMetadata}}:{},extensionState:oM(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 Tj(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?Ji(n):t.messages.length,lineageIdentityFilterHash:i}}o(Tj,"createSessionMeta");function hh(e,t,n,r,i){return{id:e,title:t,msgCount:n,...r!==void 0?{createdAt:r}:{},...i!==void 0?{surface:i}:{}}}o(hh,"createResumeIndexEntry");async function Cw(e,t=!1,n){let r=n,i;if(r===void 0)try{let l=await Yn(e);r=await Le.readFile(e,"utf-8");let u=await Yn(e);if(i=l!==null&&u!==null&&Ar(l,u)?u:void 0,t&&i===void 0)throw new xe("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(`
85
- `);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&&Ze(u)&&u._type==="meta"){if(t&&u.lineageVersion!==void 0&&u.lineageVersion!==2)throw new xe("version_incompatible",`Unsupported Session lineage version in ${U.basename(e)}: ${String(u.lineageVersion)}`);a.meta=u;continue}if(FW(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=LM(u.uiHistory)),u.scope!==void 0&&(a.meta.scope=u.scope),u.lineageIdentityFilterHash!==void 0&&(a.meta.lineageIdentityFilterHash=u.lineageIdentityFilterHash));continue}if(ZW(u)){a.lineageEntries.push(u.entry);continue}if(mj(u)){a.artifactLedger.push(u.entry);continue}if(JW(u)){a.extensionRecords.push({id:u.id,extensionId:u.extensionId,type:u.type,ts:u.ts,data:u.data,dedupeKey:u.dedupeKey});continue}if(Sw(u)){a.legacyMessages.push(u);continue}if(t)throw new xe("version_incompatible",`Unsupported Session record at ${U.basename(e)}:${l+1}`);a.malformedCount+=1}catch(u){if(u instanceof xe)throw u;if(t)throw new xe("data_corrupt",`Malformed Session record at ${U.basename(e)}:${l+1}`);a.malformedCount+=1}return a}o(Cw,"readPersistedSessionFile");var Mw=65536;async function Cj(e){let t=await Le.open(e,"r");try{let n=Buffer.allocUnsafe(Mw),{bytesRead:r}=await t.read(n,0,n.length,0);if(r===0)throw new xe("data_corrupt","Session metadata is empty");let i=n.toString("utf8",0,r),s=i.indexOf(`
86
- `);if(s<0&&r===n.length)throw new xe("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 xe("data_corrupt",`Session metadata is invalid: ${l instanceof Error?l.message:String(l)}`)}if(!Ze(a)||a._type!=="meta")return{};let c=wh(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(Cj,"readConversationPageAdmission");async function xh(e){let t;try{t=await Le.open(e,"r");let n=Buffer.allocUnsafe(Mw),{bytesRead:r}=await t.read(n,0,Mw,0);if(r===0)return null;let i=n.toString("utf8",0,r),s=i.indexOf(`
77
+ `);if(e.type==="tool_group"||t.type==="tool_group")return!1;let n=e.text.trim(),r=t.text.trim();return n===r||iE(n,r)||iE(r,n)}o(sH,"matchesTimestampSource");function iE(e,t){if(!e.endsWith(t))return!1;let n=e.slice(0,-t.length);return/^\[[^\]\r\n]+\]\s+$/.test(n)}o(iE,"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")&&sH(c,s)){n.set(i,a),r=a-1;break}}}return n}o(aH,"alignCanonicalTextItems");function cH(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(cH,"overlayCanonicalTextItem");function lH(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(lH,"isLegacyToolSummary");function uH(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(uH,"collectPersistedTools");function dH(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(dH,"collectCanonicalToolIds");function fH(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(fH,"alignCanonicalWindow");function pH(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?cH(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(pH,"buildCanonicalItems");function mH(e){let t=new Map;for(let[n,r]of e)t.set(r,n);return t}o(mH,"invertAnchors");function hH(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(hH,"nextDerivedAnchors");function gH(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(gH,"markUiOnlyItem");function yH(e,t,n,r,i,s){let a=mH(t),c=hH(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(lH(m,r,f,g))continue;let C=gH(m,i,s);if(!C)continue;let w=t.size===0||p>l?r.length:f===void 0?g??0:f+1,T=u.get(w)??[];T.push(C),u.set(w,T)}return u}o(yH,"collectUiOnlyInsertions");function SH(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(SH,"mergeAtCanonicalBoundaries");function wH(e,t,n,r,i){let s=fH(e,n,r),a=pH(e,t,s.anchors,uH(e)),c=yH(e,s.anchors,s.outOfWindowPersistedIndices,a,dH(n),i);return SH(a,c)}o(wH,"enrichCanonicalUiHistory");function Vu(e){let t=wo(e.uiHistory),n=!!t?.length,r=tp(e.messages).filter(l=>!n||l.type!=="task_completed").map(eo),i=oE(r);if(!t||t.length===0)return zS(i);let s=zS(t.map(oH).filter(l=>!!l)),a=i[0],c=a===void 0?r.length:r.indexOf(a);return zS(wH(s,i,r,c,e.messages.length===0))}o(Vu,"restoreHistoryItemsFromSession");async function Cc(e,t){return(await e.list(t,{limit:1e3})).find(r=>r.msgCount>0)}o(Cc,"findMostRecentResumableSession");function Gu(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(Gu,"createRetryHistoryItem");function sE(e,t,n,r){e(Gu(t,n,r))}o(sE,"emitRetryHistoryItem");function Ku(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(Ku,"createRecoveryHistoryItem");function aE(e,t){e(Ku(t))}o(aE,"emitRecoveryHistoryItem");import{createHash as qS}from"node:crypto";var xH=16,TH=4*1024,cE=512,lE="kodax-conversation-entry-chain-v1\0",CH="kodax-conversation-history-v2\0";function zm(){return`sha256:${qS("sha256").update(lE).digest("hex")}`}o(zm,"emptyConversationEntryChain");function Ic(e,t){let n=e;for(let r of t){let i=JSON.stringify(r);n=`sha256:${qS("sha256").update(lE).update(n).update(`${Buffer.byteLength(i,"utf8")}:`).update(i).digest("hex")}`}return n}o(Ic,"extendConversationEntryChain");function vs(e){return Ic(zm(),e)}o(vs,"createConversationEntryChain");function bs(e,t=vs(e.entries)){return`sha256:${qS("sha256").update(CH).update(t).update(JSON.stringify({sourceRevision:e.sourceRevision,status:e.status,issues:e.issues})).digest("hex")}`}o(bs,"createSessionConversationHistoryRevision");function uE(e){return e.type==="message"||e.type==="compaction"||e.type==="branch_summary"}o(uE,"isThreadEntry");function Xm(e){return e._source==="managed-run-context"||e._source==="managed-runtime-context"}o(Xm,"isManagedContextMessage");function _i(e){return e.type!=="message"?!1:!Xm(e.message)}o(_i,"isOrdinaryConversationMessageEntry");function Vm(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(Vm,"threadPath");function Gm(e){return Ym(e).length>0}o(Gm,"hasExplicitProvenance");function Ym(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(Ym,"explicitProvenanceKeys");function XS(e,t){let n=new Set([e.id,e.logicalId,e.sourceEntryId]);return Ym(t).every(r=>n.has(r))}o(XS,"provenanceMatches");function IH(e,t,n){let r=-1;for(let s=0;s<t.length;s+=1)if(s>0&&s%256===0&&n?.(),Gm(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(xo(e[l].message));let c=[];for(let l=0;l<t.length;l+=1)l>0&&l%256===0&&n?.(),c.push(xo(t[l].message));return JS(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||!XS(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=Gm(h)?XS(p,h):Xu(p.message,h.message)}if(u)return!0}return!1}o(IH,"retainedSuffixMatches");function vH(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];uE(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:Vm(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];dE(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],C=[];for(let w=0;w<g.path.entries.length;w+=1){w>0&&w%256===0&&i?.();let T=g.path.entries[w];_i(T)&&C.push(T)}IH(C,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(vH,"compactionPredecessorCandidates");function bH(e,t,n,r,i){let s=vH(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(bH,"resolveCompactionPredecessor");function RH(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?.(),!Gm(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?.(),Gm(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(RH,"leadingExplicitRetainedCopies");function dE(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(dE,"isAppendOrderedPriorPath");function kH(e,t,n,r,i,s,a){let c=RH(e,t,a),l=c.at(-1),u=l===void 0?void 0:Ym(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 C=Vm(g.id,r,a),w=[];for(let D=0;D<C.entries.length;D+=1){D>0&&D%256===0&&a?.();let k=C.entries[D];_i(k)&&w.push(k)}if(!C.complete||!dE(C,n,i,a))continue;let T=Math.max(0,w.length-c.length),v=[];for(let D=T;D<w.length;D+=1)D>T&&D%256===0&&a?.(),v.push(w[D]);let A=v.length===c.length;for(let D=0;A&&D<v.length;D+=1){D>0&&D%256===0&&a?.();let k=v[D],E=c[D];A=XS(k,E)&&Xu(k.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(kH,"explicitCompactionPredecessorCandidates");function EH(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(EH,"indexMessagesByIdentity");function MH(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),uE(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=EH(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}:Vm(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=[],C;for(let E=0;E<h.entries.length;E+=1){E>0&&E%256===0&&n?.();let P=h.entries[E];P.type==="message"&&C===void 0&&(C=P.id),_i(P)&&g.push(P)}let w={root:m,messages:g,...C!==void 0?{firstPhysicalMessageEntryId:C}:{}};if(f.push(w),m.type!=="compaction"||m.reason==="rewind")break;let T=s.get(m.id)??0,v=l.get(m.id)??0,A=[],D=[];for(let E=v;E<T;E+=1)E>v&&E%256===0&&n?.(),D.push(e.entries[E]);let k=bH(D,m,w,A,n);if(k===void 0){let E=kH(m,w,T,i,s,c,n);E.length===1?[k]=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(k===void 0)break;h=Vm(k.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(MH,"conversationEpochs");function xo(e){return JSON.stringify([e.role,e.content,e._synthetic===!0,e._source,e._taskResult,e._taskResults])}o(xo,"messageFingerprint");function JS(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(JS,"prefixSuffixOverlapLengths");function Xu(e,t){return e===t||xo(e)===xo(t)}o(Xu,"messagesEqual");function _H(e){return e.logicalId??e.id}o(_H,"logicalIdentity");function fE(e,t){return Km(e,t).groups}o(fE,"explicitPriorGroups");function Km(e,t){let n=Ym(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(Km,"explicitPriorGroupResolution");function zu(e,t,n){for(let r of[e.id,_H(e),e.sourceEntryId])r!==void 0&&!n.has(r)&&n.set(r,t)}o(zu,"registerEntryIdentities");function YS(e,t){return e.sourceEntryId!==void 0&&e.sourceEntryId!==e.id&&t?.has(e.sourceEntryId)!==!0?[e.sourceEntryId,e.id]:[e.id]}o(YS,"physicalAuditEntryIds");function AH(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=JS(n.slice(-c.length).map(A=>xo(A.source.message)),c.map(A=>xo(A.message)),s),f=!1,p=c.flatMap((A,D)=>{let k=Km(A,r);return k.keys.length===0?[]:[{index:D,resolution:k}]}),h=p[0],m=h===void 0?u:u.filter(A=>A<=h.index),g;if(h!==void 0){let{index:A,resolution:D}=h,k=D.groups.length===1?D.groups[0].index:-1,E=n.length+A-k;g=D.unresolvedKeys.length===0&&D.groups.length===1&&k>=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:D}=A,k=D.groups.length===1?D.groups[0].index:-1;(D.unresolvedKeys.length>0||D.groups.length!==1||k<0||n.length+A.index-k!==g)&&(f=!0,g=void 0)}let w=[...m,...g===void 0?[]:[g]].map(A=>n.length-A),T=fE(c[0],r);if(w.length===0&&T.length===1&&!Xu(T[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)]}),w.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 v=w[0];for(let A=v;A<n.length;A+=1)a.set(c[A-v].id,n[A]);return a}o(AH,"provenLegacyOverlap");function LH(e,t,n,r){let[i=0]=JS(t.slice(-e.length).map(s=>xo(s.source.message)),e.map(s=>xo(s.message)),r);return e.slice(0,i).filter(s=>fE(s,n).length===0)}o(LH,"longestUnprovenOverlap");function PH(e,t,n,r,i){let s=t.get(e.id);if(s!==void 0){let f=Km(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:YS(e,r)};n.push(p),zu(e,p,r);return}else{s.auditEntryIds.push(e.id),zu(e,s,r);return}}let a=Km(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&&Xu(l.source.message,e.message)){l.auditEntryIds.push(e.id),zu(e,l,r);return}c.length>0&&(a.unresolvedKeys.length>0||c.length!==1||l===void 0||!Xu(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:YS(e,r)};n.push(u),zu(e,u,r)}o(PH,"appendConversationMessage");function OH(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(OH,"historyStatus");function pE(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<xH&&!r.entryIds.includes(i)&&r.evidenceBytes+Buffer.byteLength(i,"utf8")<=TH&&(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(pE,"summarizeConversationIssues");function Yu(e,t,n){let r=[];n?.();let i=MH(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:YS(p,c)})):[],u=new Map;if(s)for(let p of l)zu(p.source,p,u);for(let p of i){if(s)break;let h=p.root,m=h.type==="compaction"&&h.reason!=="rewind"?AH(h,p,l,u,r,n):new Map;if(h.type==="compaction"&&h.firstKeptEntryId===void 0){let g=LH(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(C=>C.id)})}for(let g=0;g<p.messages.length;g+=1){g%256===0&&n?.();let C=p.messages[g];PH(C,m,l,u,r)}}let f=l.map(p=>({boundaryId:p.source.id,auditEntryIds:p.auditEntryIds,message:p.source.message}));return{sourceRevision:t,status:OH(r),entries:f,issues:pE(r)}}o(Yu,"buildSessionConversationHistory");function mE(e,t,n,r){r?.();let i={...e,activeEntryId:t},s=ha(i,t,r);if(s.at(-1)?.id!==t)return null;let a=Si(i,t,r);if(a===null)return null;let c=ha(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=Yu(i,n,r);if(p.status!=="resolved"||f.firstKeptEntryId===void 0)return null;let h=[],m=new Set,g=-1,C=!1;for(let P=0;P<s.length;P+=1){P>0&&P%256===0&&r?.();let B=s[P];B.id===f.firstKeptEntryId&&(C=!0),_i(B)&&(C&&g<0&&(g=h.length),h.push(B),m.add(B.id))}if(g<0)return null;let w=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 G=B[$];w.set(G,P)}}let T=-1;for(let P=g;P<h.length;P+=1){P>g&&P%256===0&&r?.();let B=h[P],$=w.get(B.id);if($===void 0)return null;let G=!1,re=p.entries[$].auditEntryIds;for(let X=0;X<re.length;X+=1)if(X>0&&X%256===0&&r?.(),!m.has(re[X])){G=!0;break}if(!G)break;if(T>=0&&$!==T+1)return null;T=$}if(T<0)return null;let v=new Map;for(let P=0;P<e.entries.length;P+=1){P>0&&P%256===0&&r?.();let B=e.entries[P];v.set(B.id,B)}let A=null,D=[];for(let P=0;P<=T;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 G=$??B.boundaryId,re=G===void 0?void 0:v.get(G);if(re?.type!=="message")return null;let X={...re,parentId:A};D.push(X),A=X.id}let k=D.at(-1);if(k===void 0)return null;let E=Si({version:2,activeEntryId:k.id,entries:D},void 0,r);return E===null?null:{version:2,activeEntryId:u.activeEntryId,entries:[...E.entries,...u.entries]}}o(mE,"forkSessionConversationLineage");function hE(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];Xm(a)||i.push({auditEntryIds:[],message:a})}return{sourceRevision:t,status:"partial",entries:i,issues:pE([r])}}o(hE,"buildLineageUnavailableConversationHistory");import{createHash as nw,randomUUID as kE}from"node:crypto";import zn from"node:fs/promises";import Ut from"node:path";import{createHash as ZS}from"node:crypto";var gE={main:0,islands:1,legacy_archive:2},vc=64*1024;function QS(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(QS,"isRecord");function yE(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(yE,"normalizeRelativePath");function $H(e,t){return ZS("sha256").update("kodax-session-source-file-v1\0").update(`${e}:${Buffer.byteLength(t,"utf8")}:${t}`).digest("hex")}o($H,"initialFileChain");function NH(e,t){return ZS("sha256").update("kodax-session-source-chunk-v1\0").update(e,"hex").update(t).digest("hex")}o(NH,"extendChunkChain");function SE(e,t){let n=e,r=0,i=0;for(;t.length-i>=vc;)n=NH(n,t.subarray(i,i+vc)),r+=1,i+=vc;return{chain:n,count:r,tail:t.subarray(i)}}o(SE,"consumeCompleteChunks");function wE(e,t){return gE[e.kind]-gE[t.kind]||e.relativePath.localeCompare(t.relativePath)}o(wE,"compareFileStates");function xE(e){let t=e.map(n=>{let r=yE(n.relativePath),i=SE($H(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(wE);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(xE,"createSessionSourceRevisionState");function To(e){let t=ZS("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(To,"createSessionSourceRevision");function TE(e,t,n){if(n.length===0)return e;if(n[0]!==10)return;let r=yE(t),i=e.files.findIndex(l=>l.kind==="main"&&l.relativePath===r);if(i<0)return;let s=e.files[i],a=SE(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(TE,"extendSessionMainSourceRevisionState");function CE(e){if(!QS(e)||e.version!==1||!Array.isArray(e.files)||!e.files.some(r=>QS(r)&&r.kind==="main"))return!1;let t,n=new Set;for(let r of e.files){if(!QS(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>=vc||s.toString("base64")!==r.tail||Number(r.chunkCount)!==Math.floor(Number(r.byteLength)/vc)||s.length!==Number(r.byteLength)%vc)return!1;let a=r;if(t!==void 0&&wE(t,a)>=0)return!1;n.add(i),t=a}return!0}o(CE,"isSessionSourceRevisionState");import qm from"node:fs/promises";import qu from"node:path";var Ai=".conversation-cache.",IE=`${Ai}json`,Co=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 Jm(e){let t=e.lastIndexOf(Ai);if(t<=0)return;let n=e.slice(t+Ai.length);if(!(n!=="json"&&!(n.startsWith("json.")&&n.endsWith(".tmp"))&&!n.endsWith(".data")&&!n.endsWith(".index")))return e.slice(0,t)}o(Jm,"cacheArtifactSessionId");async function Kn(e){let t=qu.dirname(e),n=qu.basename(e,qu.extname(e)),r;try{r=await qm.readdir(t)}catch(i){if(i.code==="ENOENT")return;throw i}await Promise.all(r.filter(i=>Jm(i)===n).map(i=>qm.rm(qu.join(t,i),{force:!0})))}o(Kn,"removeConversationPageCache");async function Qm(e){let t;try{t=await qm.readdir(e,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;throw new Co(e,n)}try{await Promise.all(t.filter(n=>!n.isDirectory()&&Jm(n.name)!==void 0).map(n=>qm.rm(qu.join(e,n.name),{force:!0})))}catch(n){throw new Co(e,n)}}o(Qm,"removeConversationPageCachesInDirectory");var EE=4,ei=24,DH=1024*1024,BH=1024*1024,FH=1024*1024,HH=4*1024*1024,rw=128*1024,WH=7,mt=class extends Error{static{o(this,"ConversationPageCacheStaleError")}constructor(t){super(t),this.name="ConversationPageCacheStaleError"}},Li=class extends Error{static{o(this,"ConversationPageCacheCapacityError")}constructor(){super("Conversation page capacity exceeded"),this.name="ConversationPageCacheCapacityError"}};function Ju(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(Ju,"isRecord");function ew(e){if(e?.aborted)throw new mt("Conversation page read cancelled")}o(ew,"throwIfAborted");function iw(e){return e.slice(0,-Ut.extname(e).length)+IE}o(iw,"cacheManifestPath");function vE(e,t,n){return`${e.slice(0,-Ut.extname(e).length)}${Ai}${t}.${n}`}o(vE,"cacheGenerationPath");function bE(e,t,n){let r=Ut.basename(e,Ut.extname(e));return Ut.basename(t)===t&&t.startsWith(`${r}${Ai}`)&&t.endsWith(`.${n}`)}o(bE,"isSafeCacheFileName");function jH(e){if(!Ju(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(jH,"isConversationIssue");function UH(e){return Ju(e)&&(e.surface===void 0||typeof e.surface=="string")&&(e.profileId===void 0||typeof e.profileId=="string")}o(UH,"isConversationPageCacheAdmission");function ME(e){let t=nw("sha256").update("kodax-conversation-identity-filter-v1\0").update(e,"utf8").digest();return Array.from({length:WH},(n,r)=>t.readUInt32LE(r*4)%(rw*8))}o(ME,"identityPositions");function _E(e,t){return ME(t).every(n=>(e[n>>>3]&1<<(n&7))!==0)}o(_E,"identityFilterContains");function AE(e,t){for(let n of ME(t))e[n>>>3]=e[n>>>3]|1<<(n&7)}o(AE,"addIdentityToFilter");function LE(e){return[e.id,e.logicalId,e.sourceEntryId].filter(t=>t!==void 0)}o(LE,"lineageEntryIdentities");function Zm(e){let t=Buffer.alloc(rw);for(let n of e.entries)for(let r of LE(n))AE(t,r);return t.toString("base64")}o(Zm,"createConversationPageIdentityFilter");function ow(e,t){let n=Buffer.from(e,"base64");for(let r of t)for(let i of LE(r))AE(n,i);return n.toString("base64")}o(ow,"extendConversationPageIdentityFilter");function PE(e){if(typeof e!="string")return!1;let t=Buffer.from(e,"base64");return t.length===rw&&t.toString("base64")===e}o(PE,"isIdentityFilter");function OE(e,t){return PE(e)?_E(Buffer.from(e,"base64"),t):!0}o(OE,"conversationPageIdentityFilterContains");function VH(e,t){if(!(!Ju(e)||e.version!==EE)&&!(typeof e.sessionId!="string"||typeof e.generation!="string"||typeof e.sourceRevision!="string"||!CE(e.sourceRevisionState)||To(e.sourceRevisionState)!==e.sourceRevision||!PE(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(jH)||!Number.isSafeInteger(e.entryCount)||Number(e.entryCount)<0||!Number.isSafeInteger(e.lineageEntryCount)||Number(e.lineageEntryCount)<0||e.activeEntryId!==null&&typeof e.activeEntryId!="string"||!UH(e.admission)||!Number.isSafeInteger(e.chunkBytes)||Number(e.chunkBytes)<=0||Number(e.chunkBytes)>HH||typeof e.dataFile!="string"||!Number.isSafeInteger(e.dataBytes)||Number(e.dataBytes)<0||typeof e.indexFile!="string"||!Number.isSafeInteger(e.indexBytes)||Number(e.indexBytes)<0||!bE(t,e.dataFile,"data")||!bE(t,e.indexFile,"index")||e.dataFile!==`${e.sessionId}${Ai}${e.generation}.data`||e.indexFile!==`${e.sessionId}${Ai}${e.generation}.index`||e.sessionId!==Ut.basename(t,Ut.extname(t))||Number(e.indexBytes)!==Number(e.entryCount)*ei))return e}o(VH,"parseManifest");function $E(e){return{...e?.surface!==void 0?{surface:e.surface}:{},...e?.profileId!==void 0?{profileId:e.profileId}:{}}}o($E,"cacheAdmission");async function Rc(e){let t;try{t=await zn.open(iw(e),"r");let n=(await t.stat()).size;if(n>BH)return;let r=JSON.parse((await bc(t,0,n)).toString("utf8"));return VH(r,e)}catch(n){if(n.code==="ENOENT"||n instanceof SyntaxError)return;throw n}finally{await t?.close()}}o(Rc,"readConversationPageCacheManifest");function eh(e,t){let n=Ut.dirname(e);return{dataPath:Ut.join(n,t.dataFile),indexPath:Ut.join(n,t.indexFile)}}o(eh,"cachePaths");async function Rs(e,t){let n=eh(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 mt("Conversation page cache changed")}o(Rs,"assertCacheFilesStable");async function bc(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 mt("Conversation page cache ended unexpectedly");i+=s.bytesRead}return r}o(bc,"readFully");function NE(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 mt("Conversation page index offset is invalid");return{entryOffset:Number(n),entryLength:e.readUInt32LE(t+8),descriptorOffset:Number(r),descriptorLength:e.readUInt32LE(t+20)}}o(NE,"decodeIndexRecord");function DE(e,t,n){let r=e.entryOffset+e.entryLength,i=e.descriptorOffset+e.descriptorLength,s=Math.ceil(e.entryLength/n),a=Math.min(FH,e.entryLength+s*70+256);if(!Number.isSafeInteger(r)||!Number.isSafeInteger(i)||r>t||i>t||e.descriptorOffset<r||e.descriptorLength>a)throw new mt("Conversation page index is out of bounds")}o(DE,"assertIndexRecordBounds");function BE(e){let t=Buffer.allocUnsafe(ei);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(BE,"encodeIndexRecord");function GH(e){if(!Ju(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 mt("Conversation page descriptor is invalid");return{chunkDigests:e.chunkDigests,...typeof e.boundaryId=="string"?{boundaryId:e.boundaryId}:{}}}o(GH,"parseDescriptor");async function FE(e,t){let n=await bc(e,t.descriptorOffset,t.descriptorLength);try{return GH(JSON.parse(n.toString("utf8")))}catch(r){throw r instanceof mt?r:new mt("Conversation page descriptor is corrupt")}}o(FE,"readDescriptor");function HE(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(nw("sha256").update(e.subarray(r,Math.min(e.length,r+t))).digest("hex"));return n}o(HE,"entryChunkDigests");function KH(e,t,n){let r=HE(e,n);if(r.length!==t.chunkDigests.length||r.some((i,s)=>i!==t.chunkDigests[s]))throw new mt("Conversation page cache entry is corrupt")}o(KH,"assertEntryIntegrity");function WE(e){if(e instanceof mt||e instanceof Li)return e;let t=new Set(["EACCES","EBADF","EBUSY","EIO","EISDIR","EMFILE","ENFILE","ENOENT","ENOTDIR","EPERM","ESTALE"]);return e instanceof SyntaxError||Ju(e)&&typeof e.code=="string"&&t.has(e.code)?new mt("Conversation page cache changed or is unavailable"):e instanceof Error?e:new Error(String(e))}o(WE,"normalizeConversationPageCacheReadError");async function sw(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(sw,"openCachePair");async function jE(e,t,n){try{return await zH(e,t,n)}catch(r){throw WE(r)}}o(jE,"readConversationPageCache");async function zH(e,t,n){ew(n.signal);let r=await Rc(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 mt("Conversation history changed; request a fresh page");await Rs(e,r);let i=Math.min(n.end??r.entryCount,r.entryCount),s=Math.max(0,i-n.limit),a=eh(e,r),{data:c,index:l}=await sw(a.dataPath,a.indexPath,"r");try{let u=await bc(l,s*ei,(i-s)*ei),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 Li;for(let m=i-s-1;m>=0;m-=1){ew(n.signal);let g=s+m,C=NE(u,m*ei);DE(C,r.dataBytes,r.chunkBytes);let w=await FE(c,C),T=C.entryLength<=n.maxInlineEntryBytes?await bc(c,C.entryOffset,C.entryLength):void 0;T!==void 0&&KH(T,w,r.chunkBytes);let v={index:g,...w.boundaryId!==void 0?{boundaryId:w.boundaryId}:{},byteLength:C.entryLength,oversized:C.entryLength>n.maxInlineEntryBytes,...T!==void 0?{entry:JSON.parse(T.toString("utf8"))}:{}},A=Buffer.byteLength(JSON.stringify(v),"utf8");if(p+A>n.maxPageBytes){if(f.length===0)throw new Li;break}f.unshift(v),p+=A}let h=f[0]?.index??i;return await Rs(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(zH,"readConversationPageCacheInternal");async function UE(e,t,n){try{return await XH(e,t,n)}catch(r){throw WE(r)}}o(UE,"readConversationPageCacheChunk");async function XH(e,t,n){ew(n.signal);let r=await Rc(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 mt("Conversation history changed; request a fresh page");if(n.offset<0||n.offset%r.chunkBytes!==0)throw new mt("Conversation entry cursor is invalid");await Rs(e,r);let i=eh(e,r),{data:s,index:a}=await sw(i.dataPath,i.indexPath,"r");try{let c=await bc(a,n.entryIndex*ei,ei),l=NE(c,0);DE(l,r.dataBytes,r.chunkBytes);let u=await FE(s,l);if(n.offset>l.entryLength)throw new mt("Conversation entry cursor is invalid");let f=Math.min(l.entryLength,n.offset+r.chunkBytes),p=await bc(s,l.entryOffset+n.offset,f-n.offset);if(nw("sha256").update(p).digest("hex")!==u.chunkDigests[n.offset/r.chunkBytes])throw new mt("Conversation page cache entry is corrupt");return await Rs(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(XH,"readConversationPageCacheChunkInternal");async function tw(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(tw,"writeFully");function VE(e,t,n){return Buffer.from(JSON.stringify({...e.boundaryId!==void 0?{boundaryId:e.boundaryId}:{},chunkDigests:HE(t,n)}),"utf8")}o(VE,"createDescriptor");async function YH(e,t,n,r){let{data:i,index:s}=await sw(e,t,"wx"),a=0,c=0,l=[],u=[],f=0,p=o(async()=>{f!==0&&(await Promise.all([tw(i,Buffer.concat(l)),tw(s,Buffer.concat(u))]),l=[],u=[],f=0)},"flush");try{for(let h of n){let m=Buffer.from(JSON.stringify(h),"utf8"),g=VE(h,m,r);l.push(m,g),u.push(BE({entryOffset:a,entryLength:m.length,descriptorOffset:a+m.length,descriptorLength:g.length})),a+=m.length+g.length,c+=ei,f+=m.length+g.length+ei,f>=DH&&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(YH,"writeCacheEntries");async function aw(e,t){let n=iw(e),r=`${n}.${process.pid}.${kE()}.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(aw,"replaceManifest");async function qH(e,t){let n=Ut.dirname(e),r=Ut.basename(e,Ut.extname(e)),s=`${`${r}${Ai}`}${t}.`,a=await zn.readdir(n);await Promise.all(a.filter(c=>Jm(c)===r&&!c.startsWith(s)&&c!==Ut.basename(iw(e))).map(c=>zn.rm(Ut.join(n,c),{force:!0})))}o(qH,"removeGenerationFiles");async function cw(e,t,n,r,i,s,a){if(To(n)!==r.sourceRevision)throw new mt("Conversation source revision state is inconsistent");let c=kE(),l=vE(e,c,"data"),u=vE(e,c,"index");try{let f=await YH(l,u,r.entries,a),p=vs(r.entries);await aw(e,{version:EE,sessionId:Ut.basename(e,Ut.extname(e)),generation:c,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:Zm(i),boundaryRevision:t,revision:bs(r,p),entryChain:p,status:r.status,issues:r.issues,entryCount:r.entries.length,lineageEntryCount:i.entries.length,activeEntryId:i.activeEntryId,admission:$E(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 qH(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(cw,"writeConversationPageCache");async function GE(e,t,n,r,i,s){if(To(n)!==r.sourceRevision)return!1;let a=await Rc(e);if(a===void 0||a.entryCount!==r.entries.length)return!1;await Rs(e,a);let c=vs(r.entries);if(c!==a.entryChain||r.status!==a.status||JSON.stringify(r.issues)!==JSON.stringify(a.issues))return!1;let l=bs(r,c);return await aw(e,{...a,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:Zm(i),boundaryRevision:t,revision:l,entryChain:c,status:r.status,issues:r.issues,lineageEntryCount:i.entries.length,activeEntryId:i.activeEntryId,admission:$E(s)}),await Rs(e,a),!0}o(GE,"refreshConversationPageCache");async function RE(e,t){if(t.length===0)return;let n=await zn.open(e,"a");try{await tw(n,Buffer.concat(t)),await n.sync()}finally{await n.close()}}o(RE,"appendBuffers");async function KE(e,t,n,r,i,s,a){let c=To(r),l=eh(e,t);await Rs(e,t);let u=[],f=[],p=t.dataBytes;for(let g of i){let C=Buffer.from(JSON.stringify(g),"utf8"),w=VE(g,C,t.chunkBytes);u.push(C,w),f.push(BE({entryOffset:p,entryLength:C.length,descriptorOffset:p+C.length,descriptorLength:w.length})),p+=C.length+w.length}await RE(l.dataPath,u),await RE(l.indexPath,f);let h=Ic(t.entryChain,i),m={sourceRevision:c,status:t.status,issues:t.issues,entries:[]};await aw(e,{...t,sourceRevision:c,sourceRevisionState:r,identityFilter:ow(t.identityFilter,s),boundaryRevision:n,revision:bs(m,h),entryChain:h,entryCount:t.entryCount+i.length,lineageEntryCount:t.lineageEntryCount+s.length,activeEntryId:a,dataBytes:p,indexBytes:t.indexBytes+i.length*ei})}o(KE,"appendConversationPageCache");function zE(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"&&Xm(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||_E(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(zE,"canAppendConversationPageCache");import Le from"fs/promises";import ot from"fs";import U from"path";import{createHash as bo,randomUUID as td}from"node:crypto";import{performance as _r}from"node:perf_hooks";import{isDeepStrictEqual as UW}from"node:util";import pM from"chalk";import{randomUUID as JH}from"node:crypto";import Qu from"node:fs/promises";import th from"node:path";function XE(e){let t=th.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(XE,"comparableRoot");async function lw(e){let t;try{t=await Qu.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 XE(n.canonicalRoot)}o(lw,"existingCanonicalRoot");async function YE(e){return await lw(th.join(e,"project.json"))!==void 0}o(YE,"projectManifestExists");async function nh(e,t){if(t.canonicalRoot===null)return;await Qu.mkdir(e,{recursive:!0});let n=th.join(e,"project.json"),r=XE(t.canonicalRoot),i=await lw(n);if(i!==void 0){if(i!==r)throw new Error(`Conflicting project identity at ${n}`);return}let s=th.join(e,`.project.${process.pid}.${JH()}.tmp`),a=await Qu.open(s,"wx");try{await a.writeFile(JSON.stringify({canonicalRoot:t.canonicalRoot,displayName:t.displayName,lastUsed:new Date().toISOString()})+`
78
+ `,"utf8"),await a.sync()}finally{await a.close()}try{await Qu.link(s,n)}catch(c){if(c.code!=="EEXIST")throw c;if(await lw(n)!==r)throw new Error(`Conflicting project identity at ${n}`)}finally{await Qu.rm(s,{force:!0})}}o(nh,"publishProjectManifest");import Ct from"fs/promises";import fw from"fs";import Qe from"path";var JE=3,QH=300*1e3,ZH=65536,uw=o(e=>Qe.join(e,".layout.json"),"layoutMarkerPath"),pw=o(e=>Qe.join(e,".migration-lock"),"lockDirPath"),QE=o(e=>Qe.join(pw(e),"owner.json"),"ownerPath"),dw=o(e=>Qe.join(e,".migration-journal.jsonl"),"journalPath"),rh=o(e=>Qe.join(Qe.dirname(e),"sessions-archive"),"sessionsArchiveDir");function ih(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}o(ih,"isSessionFile");function ZE(e){return e.endsWith(".archive.jsonl")||e.endsWith(".islands.jsonl")?e.slice(0,-14):null}o(ZE,"sidecarId");async function eW(e){let t;try{t=await Ct.open(e,"r");let n=[],r=0,i=0;for(;;){let c=Buffer.allocUnsafe(ZH),{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(eW,"readMeta");async function eM(e,t){let n=await eW(e);if(!n)return sr({});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&&fw.existsSync(a)){let c=Qe.resolve(a),l=t.get(c);l===void 0&&(l=_v({cwd:a,timeoutMs:750}),t.set(c,l)),i={...r,canonicalRepoRoot:await l,...s!==void 0?{workspaceRoot:s}:{}}}return sr({gitRoot:n.gitRoot,runtimeInfo:i})}o(eM,"destIdentityFor");async function tW(e){let t=[],n=o(async(r,i)=>{let s=[];try{s=await Ct.readdir(r,{withFileTypes:!0})}catch{return}for(let a of s)!a.isFile()||a.name.startsWith(".")||(ih(a.name)||i&&ZE(a.name)!==null)&&t.push(Qe.join(r,a.name))},"pushDir");return await n(e,!0),await n(rh(e),!0),t}o(tW,"collectMigrationSources");function nW(e,t){return Qe.join(e,t)}o(nW,"targetDirectory");async function rW(e){let t=await tW(e),n=t.filter(a=>ih(Qe.basename(a))),r=new Set(n.map(a=>`${Qe.dirname(a)}\0${Qe.basename(a,".jsonl")}`)),i=[],s=new Map;for(let a of n){let c=Qe.basename(a,".jsonl"),l=(await eM(a,s)).key,u=nW(e,l);i.push({from:a,to:Qe.join(u,`${c}.jsonl`),reason:`session\u2192${l}`});for(let f of[".archive.jsonl",".islands.jsonl"]){let p=Qe.join(Qe.dirname(a),`${c}${f}`);fw.existsSync(p)&&i.push({from:p,to:Qe.join(u,`${c}.islands.jsonl`),reason:"sidecar\u2192islands"})}}for(let a of t){let c=ZE(Qe.basename(a));c===null||r.has(`${Qe.dirname(a)}\0${c}`)||i.push({from:a,to:Qe.join(e,cy,"orphan-islands",`${c}.islands.jsonl`),reason:"orphan-sidecar\u2192_unknown"})}return i}o(rW,"planMigration");async function iW(e){try{let t=JSON.parse(await Ct.readFile(uw(e),"utf8"));return t!==null&&typeof t=="object"&&t.version===JE}catch{return!1}}o(iW,"isMigrated");async function qE(e){await Qm(e),await Qm(rh(e))}o(qE,"removeLegacyConversationCaches");async function oW(e){try{let t=JSON.parse(await Ct.readFile(QE(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>QH}catch{return!0}}o(oW,"lockIsStale");async function sW(e){let t=pw(e);for(let n=0;n<2;n+=1)try{return await Ct.mkdir(t),await Ct.writeFile(QE(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 oW(e)){await Ct.rm(t,{recursive:!0,force:!0}).catch(()=>{});continue}return!1}return!1}o(sW,"acquireLock");async function aW(e){await Ct.rm(pw(e),{recursive:!0,force:!0}).catch(()=>{})}o(aW,"releaseLock");async function cW(e){try{if((await Ct.readdir(Qe.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(cW,"assertNoActiveSessionWriters");async function lW(e){let t=new Set;try{let n=await Ct.readFile(dw(e),"utf8");for(let r of n.split(`
79
+ `))if(r.trim())try{let i=JSON.parse(r);i.done&&typeof i.from=="string"&&t.add(i.from)}catch{}}catch{}return t}o(lW,"readJournalDone");async function uW(e,t){if(Qe.resolve(e.from)===Qe.resolve(e.to))return!1;if(await Ct.mkdir(Qe.dirname(e.to),{recursive:!0}),fw.existsSync(e.to)){let n=Qe.dirname(e.from);return n===t||n===rh(t)?(await Ct.unlink(e.from).catch(()=>{}),!0):!1}try{await Ct.rename(e.from,e.to)}catch(n){let r=n.code;if(r==="EXDEV")await Ct.copyFile(e.from,e.to),await Ct.unlink(e.from).catch(()=>{});else if(r!=="ENOENT")throw n}return!0}o(uW,"executeMove");async function dW(e){let t=[],n=o(async r=>{try{for(let i of await Ct.readdir(r,{withFileTypes:!0}))i.isFile()&&ih(i.name)&&t.push(Qe.join(r,i.name))}catch(i){if(i.code!=="ENOENT")throw i}},"append");return await n(e),await n(Qe.join(e,"archived")),t}o(dW,"readBucketMainFiles");async function fW(e,t){let n=new Map,r=new Set(t.flatMap(i=>i.reason.startsWith("session\u2192")?[Qe.dirname(i.to)]:[]));for(let i of r){let s=Qe.basename(i);if(s===cy)continue;let a=await dW(i),c;for(let l of a){let u=await eM(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 nh(i,c)}}o(fW,"publishBucketManifests");async function pW(e){await Ct.mkdir(e,{recursive:!0});let t=`${uw(e)}.${process.pid}.tmp`,n=JSON.stringify({version:JE,migratedAt:new Date().toISOString(),from:"flat-v1"});await Ct.writeFile(t,n+`
80
+ `,"utf8"),await Ct.rename(t,uw(e))}o(pW,"writeMarker");async function mW(e){let t=rh(e);try{(await Ct.readdir(t)).length===0&&await Ct.rmdir(t).catch(()=>{})}catch{}}o(mW,"retireSessionsArchive");async function hW(e){if(!await sW(e))return{moved:0,planned:0};try{await cW(e),await qE(e);let t=await rW(e),n=await lW(e),r=await Ct.open(dw(e),"a"),i=0;try{for(let s of t){if(ih(Qe.basename(s.from)))try{await Kn(s.to)}catch(c){throw new Co(Qe.dirname(s.to),c)}if(n.has(s.from))continue;let a=await uW(s,e);await r.write(JSON.stringify({from:s.from,to:s.to,done:!0})+`
81
+ `),a&&(i+=1)}}finally{await r.close()}return await mW(e),await qE(e),await fW(e,t),await pW(e),await Ct.rm(dw(e),{force:!0}).catch(()=>{}),{moved:i,planned:t.length}}finally{await aW(e)}}o(hW,"runMigration");async function ks(e){try{if(await iW(e))return;await hW(e)}catch(t){if(t instanceof Co)throw t}}o(ks,"ensureLayoutMigrated");import{createHash as gw,randomUUID as yw}from"node:crypto";import It from"node:fs/promises";import Mr from"node:path";var Ec=7,gW=".resume-index",yW="complete.json",SW="publish.lock",wW=".resume";var xW=2e3,ch=10,mw=3e4,Mc=40,oh=new Map,kc=new Map;function Ac(e){return Mr.join(e,gW)}o(Ac,"indexDir");function Sw(e){return Mr.join(Ac(e),yW)}o(Sw,"manifestPath");function lh(e){return`${gw("sha256").update(e,"utf8").digest("hex")}${wW}`}o(lh,"markerName");function iM(e,t){return Mr.join(Ac(e),lh(t))}o(iM,"markerPath");function tM(e){try{let t=JSON.parse(e);return!_c(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(tM,"parseIndexPublishLockOwner");async function nM(e){for(let t=0;t<Mc;t+=1)try{return await It.rmdir(e),!0}catch(n){let r=n.code;if(r==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(r??""))return!1;t+1<Mc&&await new Promise(i=>setTimeout(i,ch))}return!1}o(nM,"removeEmptyIndexLockDirectory");async function TW(e){let t=`${e}.reclaim`;for(let n=0;n<2;n+=1)try{return await It.mkdir(t),async()=>{await nM(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 It.stat(t);if(Date.now()-i.mtimeMs<mw)return}catch(i){if(i.code==="ENOENT")continue;throw i}if(!await nM(t))return}}o(TW,"acquireIndexLockReclaimGuard");function rM(e){try{return process.kill(e,0),!1}catch(t){return t.code==="ESRCH"}}o(rM,"processIsDefinitelyDead");async function sh(e){try{let[t,n]=await Promise.all([It.readFile(e,"utf8"),It.stat(e)]);return{content:t,mtimeMs:n.mtimeMs}}catch(t){if(t.code==="ENOENT")return;throw t}}o(sh,"readIndexPublishLock");async function hw(e,t){for(let n=0;n<Mc;n+=1){let r=await sh(e);if(r===void 0)return!0;if(r.content!==t)return!1;try{return await It.rm(e),!0}catch(i){let s=i.code;if(s==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(s??""))return!1;n+1<Mc&&await new Promise(a=>setTimeout(a,ch))}}return!1}o(hw,"removeObservedIndexPublishLock");async function CW(e){let t=await sh(e);if(t===void 0)return!0;if(kc.get(e)===t.content){let i=await hw(e,t.content);return i&&kc.delete(e),i}let n=tM(t.content);if(n!==void 0){if(!rM(n.pid))return!1}else if(Date.now()-t.mtimeMs<mw)return!1;let r=await TW(e);if(r===void 0)return!1;try{let i=await sh(e);if(i===void 0)return!0;let s=tM(i.content);return kc.get(e)===i.content||(s!==void 0?rM(s.pid):Date.now()-i.mtimeMs>=mw)?hw(e,i.content):!1}finally{await r()}}o(CW,"reclaimAbandonedIndexPublishLock");async function IW(e){let t;for(let r=0;r<Mc;r+=1)try{await It.rm(e,{force:!0});return}catch(i){t=i;let s=i.code;if(!["EPERM","EACCES","EBUSY"].includes(s??""))break;r+1<Mc&&await new Promise(a=>setTimeout(a,ch))}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(IW,"removeIndexPublishLockTemp");async function vW(e,t){await It.mkdir(Mr.dirname(e),{recursive:!0});let n=`${e}.${process.pid}.${yw()}.tmp`;await It.writeFile(n,t,{encoding:"utf8",flag:"wx"});let r=Date.now()+xW;try{for(;;)try{await It.link(n,e);return}catch(i){let s=i.code;if(!["EEXIST","EPERM","EACCES","EBUSY"].includes(s??""))throw i;if(await sh(e)!==void 0&&await CW(e))continue;if(Date.now()>=r)throw new Error(`Resume index publish lock timed out: ${e}`,{cause:i});await new Promise(c=>setTimeout(c,ch))}}finally{await IW(n)}}o(vW,"acquireIndexPublishLock");async function bW(e,t){if(!await hw(e,t))throw kc.set(e,t),new Error(`Resume index publish lock ownership changed: ${e}`);kc.get(e)===t&&kc.delete(e)}o(bW,"releaseIndexPublishLock");async function RW(e,t){let n=Mr.join(Ac(e),SW),r=oh.get(n)??Promise.resolve(),i,s=new Promise(c=>{i=c});oh.set(n,s),await r.catch(()=>{});let a=JSON.stringify({pid:process.pid,token:yw()});try{await vW(n,a);try{return await t()}finally{await bW(n,a)}}finally{i(),oh.get(n)===s&&oh.delete(n)}}o(RW,"withIndexPublishLock");function uh(e){let t=Mr.dirname(e);return Mr.basename(t)==="archived"?Mr.dirname(t):t}o(uh,"resumeIndexProjectDir");function _c(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(_c,"isRecord");function kW(e){if(!(!_c(e)||typeof e.id!="string"||e.id.length===0||Mr.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(kW,"parseEntry");function EW(e){if(!_c(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=>!_c(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!==Ec||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||ah(t)!==e.markerDigest||n.length!==e.sessionFileCount||ah(n)!==e.sessionFileDigest||r.length!==e.excludedSourceCount||oM(r)!==e.excludedSourceDigest))return{version:Ec,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(EW,"parseManifest");function MW(e,t){if(!_c(e)||e.version!==Ec||e.state!=="pending"&&e.state!=="ready")return;let n=kW(e.entry);if(!n||lh(n.id)!==t)return;let r=_c(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:Ec,state:e.state,entry:n,...r!==void 0?{source:r}:{}}}o(MW,"parseMarker");function ah(e){let t=gw("sha256");for(let n of[...e].sort())t.update(n),t.update(`
82
+ `);return t.digest("hex")}o(ah,"digestMarkerNames");function oM(e){let t=gw("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(`
83
+ `);return t.digest("hex")}o(oM,"digestScannedFiles");async function _W(e,t){let n;try{n=await It.readFile(Mr.join(Ac(e),t),"utf8")}catch(r){if(r.code!=="ENOENT")throw r;return}try{return MW(JSON.parse(n),t)}catch{return}}o(_W,"readMarker");async function sM(e,t){let n=`${e}.${process.pid}.${yw()}.tmp`;await It.writeFile(n,t,"utf8");try{await It.rename(n,e)}catch(r){if(!["EEXIST","EPERM"].includes(r.code??""))throw r;await It.rm(e,{force:!0}),await It.rename(n,e)}finally{await It.rm(n,{force:!0})}}o(sM,"replaceDerivedFile");async function AW(e){await It.rm(Sw(e),{force:!0})}o(AW,"invalidateManifest");async function aM(e,t,n,r,i){let s=Ac(e),a=iM(e,t.id);if(await It.mkdir(s,{recursive:!0}),!r)try{return await It.access(a),!1}catch(u){if(u.code!=="ENOENT")throw u}let c=r?await _W(e,lh(t.id)):void 0,l={version:Ec,state:n,entry:{...c?.entry,...t},...i!==void 0?{source:i}:{}};return await sM(a,JSON.stringify(l)),!0}o(aM,"writeMarker");async function LW(e,t){try{let n=await It.stat(Mr.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(LW,"canonicalSource");async function PW(e,t,n,r){await It.mkdir(Ac(e),{recursive:!0});let i=[...t].sort(),s=[...n].sort(),a=[...r].sort((l,u)=>l.name.localeCompare(u.name)),c={version:Ec,markerNames:i,markerCount:i.length,markerDigest:ah(i),sessionNames:s,sessionFileCount:s.length,sessionFileDigest:ah(s),excludedSources:a,excludedSourceCount:a.length,excludedSourceDigest:oM(a)};await sM(Sw(e),JSON.stringify(c))}o(PW,"writeManifest");async function dh(e,t){try{await aM(e,t,"pending",!1)}catch(n){try{await AW(e)}catch(r){throw new AggregateError([n,r],`Unable to prepare or invalidate the resume index for ${t.id}`)}throw n}}o(dh,"prepareResumeIndexEntry");async function OW(e,t){try{return await It.rm(iM(e,t)),!0}catch(n){if(n.code==="ENOENT")return!1;throw n}}o(OW,"removeResumeIndexEntry");async function Zu(e,t,n){await RW(e,async()=>{let r=await LW(e,t.id);if(n){if(r===void 0)return;await aM(e,t,"ready",!0,r)}else await OW(e,t.id);await $W(e,t.id,n,r)})}o(Zu,"commitResumeIndexEntry");async function $W(e,t,n,r){let i;try{i=await It.readFile(Sw(e),"utf8")}catch(p){if(p.code==="ENOENT")return;throw p}let s;try{s=EW(JSON.parse(i))}catch{return}if(!s)return;let a=lh(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 PW(e,[...l],[...u],f)}o($W,"refreshCompleteManifestAfterCommit");var NW=new Set(["user","assistant","system"]),DW=new Set(["user","assistant","system","thinking","error","event","info","hint"]),BW=new Set(["success","error","cancelled","awaiting_approval"]);function Ze(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(Ze,"isRecord");function Pi(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(Pi);if(!Ze(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(Pi)}o(Pi,"isKodaXJsonValue");function lM(e){return Ze(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||Pi(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}o(lM,"isKodaXExtensionSessionRecord");function uM(e){return Ze(e)?Object.values(e).every(t=>Ze(t)?Object.values(t).every(Pi):!1):!1}o(uM,"isKodaXExtensionSessionState");function FW(e){if(!Ze(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"&&Ze(e.input);case"tool_result":return typeof e.tool_use_id=="string"&&(typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(HW))&&(e.is_error===void 0||typeof e.is_error=="boolean")&&(e.metadata===void 0||Ze(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(FW,"isKodaXContentBlock");function HW(e){return Ze(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(HW,"isKodaXToolResultContentItem");function ww(e){return!Ze(e)||typeof e.role!="string"||!NW.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(FW)}o(ww,"isKodaXMessage");function dM(e){return Ze(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(dM,"isSessionErrorMetadata");function WW(e){return Ze(e)&&Object.values(e).every(Pi)}o(WW,"isKodaXSessionUiToolInput");function jW(e){return Ze(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.status=="string"&&BW.has(e.status)&&(e.input===void 0||WW(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(jW,"isKodaXSessionUiToolCall");function cM(e){return e===void 0||typeof e=="number"&&Number.isFinite(e)&&e>=0}o(cM,"isOptionalHistoryTimestamp");function fM(e){return!Ze(e)||typeof e.type!="string"?!1:e.type==="tool_group"?cM(e.timestamp)&&Array.isArray(e.tools)&&e.tools.length>0&&e.tools.every(jW):DW.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(fM,"isKodaXSessionUiHistoryItem");var VW=[10,25,50,100],gh=6e4,GW=gh+5e3,KW=15e3,vw=".location-topology",zW=".location-topology.lock",yh=".location-index",XW=64*1024,mM=256*1024,$M=256,xw=0,bw=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 fh(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}o(fh,"deferredValue");function Mn(e){return Math.max(0,_r.now()-e)}o(Mn,"elapsedMs");function YW(e){return JSON.parse(JSON.stringify(e))}o(YW,"jsonPersistedValue");var Rw=class{static{o(this,"ActorSaveLifecycleState")}attempt;queueObserver;canonicalObserver;attemptId;startedAt=_r.now();dequeued=fh();eligible=fh();canonical=fh();completion=fh();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}:${td()}`,this.cancelled=new bw(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,Mn(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",Mn(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",Mn(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",Mn(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",Mn(this.committedAt)),this.recordTiming("total",Mn(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:Mn(this.activeStageStartedAt)}:{},...this.failedStage!==void 0?{failedStage:this.failedStage}:{},canonicalOutcome:this.canonicalOutcome,completionOutcome:this.completionOutcome,timingsMs:{...this.timings}}}};function qW(e,t){return new Rw(e,t)}o(qW,"createActorSaveLifecycle");function NM(e){let t=e??KW;if(!Number.isSafeInteger(t)||t<=0)throw new Error("Session read timeoutMs must be a positive safe integer");return t}o(NM,"normalizeSessionReadTimeout");function Xn(e){if(e?.aborted)throw new xe("read_cancelled","Session history read cancelled")}o(Xn,"throwIfSessionReadAborted");function Th(e,t){Xn(e.signal);let n=NM(e.timeoutMs);if(!(Date.now()-t<n))throw new xe("read_timeout",`Session history read timed out after ${n}ms`)}o(Th,"assertSessionReadBudget");async function Lc(e,t){let n=NM(t.timeoutMs),r,i;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new xe("read_timeout",`Session history read timed out after ${n}ms`)),n),t.signal!==void 0&&(i=o(()=>a(new xe("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(Lc,"raceSessionRead");async function Tw(e,t){for(let n=0;;n+=1)try{await Le.rename(e,t);return}catch(r){let i=VW[n];if(i===void 0||!JW(r))throw r;await new Promise(s=>setTimeout(s,i))}}o(Tw,"replaceSessionFile");function JW(e){if(!(e instanceof Error)||!("code"in e))return!1;let t=e.code;return t==="EPERM"||t==="EBUSY"||t==="EACCES"}o(JW,"isTransientRenameError");function QW(e){return!Ze(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(QW,"isPersistedMetaUpdateLine");function DM(e){if(!Array.isArray(e))return;let t=e.filter(fM).map(n=>n.type==="tool_group"?{...n,tools:n.tools.map(r=>({...r}))}:{...n});return t.length>0?t:void 0}o(DM,"normalizeKodaXSessionUiHistory");var xe=class extends Error{static{o(this,"SessionReadError")}code;constructor(t,n){super(n),this.code=t,this.name="SessionReadError"}};function hM(e,t){let n=ha(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(hM,"completeLineageBoundaryPath");function Pc(e,t){let n=bo("sha256").update(t,"utf8").digest("hex");return U.join(e,".write-locks",`${n}.lock`)}o(Pc,"sessionWriteLockPath");function Ms(e){return U.join(e,zW)}o(Ms,"sessionLocationTopologyLockPath");function BM(e,t){let n=bo("sha256").update(t,"utf8").digest("hex");return U.join(e,yh,`${n}.json`)}o(BM,"sessionLocationHintPath");function FM(e,t){return`${Pc(e,t)}.queue`}o(FM,"sessionWriteQueuePath");function Aw(e){return U.join(e,".write-locks")}o(Aw,"sessionGlobalWriteBoundaryPath");function gM(e){let t=Aw(e);try{let n=bo("sha256"),r=ot.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(ot.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(`
84
+ `)}return n.digest("hex")}catch(n){return n.code==="ENOENT"?bo("sha256").digest("hex"):void 0}}o(gM,"sessionWriterTopologyDigestSync");function $i(e,t){let n=[Pc(e,t),Ms(e),U.join(e,".migration-lock"),U.join(e,".migration-journal.jsonl")].find(r=>ot.existsSync(r));if(n!==void 0)throw new xe("data_changed",`Session data changed during the read boundary: ${U.basename(n)}`)}o($i,"assertStableSessionReadBoundary");async function HM(e,t){let n=Pc(e,t);ot.existsSync(n)&&await oI(n),$i(e,t)}o(HM,"prepareStableSessionReadBoundary");function ZW(e){let t=[U.join(e,".migration-lock"),U.join(e,".migration-journal.jsonl")].find(n=>ot.existsSync(n));if(t!==void 0)throw new xe("data_changed",`Session layout migration is active: ${U.basename(t)}`)}o(ZW,"assertSessionMigrationInactive");function yM(e){try{return ot.statSync(e).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}o(yM,"inspectSessionCandidate");async function Cw(e){try{return(await Le.stat(e)).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}o(Cw,"inspectSessionCandidateAsync");function Sh(e,t){return new xe("data_changed",`Session candidate could not be verified for ${e}: ${U.basename(t)}`)}o(Sh,"inaccessibleSessionCandidate");async function SM(e,t){let n=[],r=U.join(e,`${t}.jsonl`),i=yM(r);if(i==="present"&&n.push(r),i==="unverifiable")throw Sh(t,r);let s=[];try{s=await Le.readdir(e,{withFileTypes:!0})}catch(a){if(a.code!=="ENOENT")throw Sh(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=yM(l);if(u==="present"&&n.push(l),u==="unverifiable")throw Sh(t,l)}}return n.sort()}o(SM,"findStableSessionCandidates");async function ej(e,t){let n;try{n=await Le.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(!Ar(a,c)||BigInt(i.length)!==c.size)throw new xe("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 xe("data_changed",`Session file changed while reading: ${U.basename(t)}`):r}finally{await n.close()}}o(ej,"readStableBundleFile");function _s(e){return{dev:e.dev,ino:e.ino,size:e.size,mtimeNs:e.mtimeNs,ctimeNs:e.ctimeNs}}o(_s,"stableFileIdentity");function wM(e){return{dev:e.dev.toString(),ino:e.ino.toString(),size:e.size.toString(),mtimeNs:e.mtimeNs.toString(),ctimeNs:e.ctimeNs.toString()}}o(wM,"persistStableFileIdentity");function xM(e){if(!(!Ze(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(xM,"parsePersistedStableFileIdentity");function Ar(e,t){return e.dev===t.dev&&e.ino===t.ino&&e.size===t.size&&e.mtimeNs===t.mtimeNs&&e.ctimeNs===t.ctimeNs}o(Ar,"sameStableFileIdentity");function kw(e,t){return e===null||t===null?e===t:Ar(e,t)}o(kw,"sameOptionalStableFileIdentity");function Io(e,t){return Ar(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&kw(e.writerIdentity,t.writerIdentity)&&kw(e.activeWriterIdentity,t.activeWriterIdentity)}o(Io,"sameSessionTopologyIdentity");function tj(e,t){return Ar(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&kw(e.writerIdentity,t.writerIdentity)}o(tj,"sameSessionTopologyWithoutActiveWriter");function nj(e,t){return e===null||t===null?e===t:Io(e,t)}o(nj,"sameOptionalSessionTopologyIdentity");function rj(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(rj,"resolvePersistedSessionLocationPath");async function ij(e,t){let n;try{n=await Le.open(BM(e,t),"r");let r=(await n.stat()).size;if(r>XW)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(!Ze(a)||a.version!==1||a.id!==t||!Array.isArray(a.filePaths)||a.filePaths.length===0||a.filePaths.length>16||!Ze(a.topology)||a.topology.epoch!==null&&typeof a.topology.epoch!="string")return;let c=xM(a.topology.root),l=a.topology.writerIdentity===null?null:xM(a.topology.writerIdentity);if(c===void 0||l===void 0)return;let u=a.filePaths.flatMap(f=>{if(typeof f!="string")return[];let p=rj(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(ij,"readSessionLocationHint");async function ph(e,t,n="session"){let r=await Yn(e);if(r===null)return null;let i=await Yn(n==="session"?FM(e,t):Aw(e)),s=n==="session"?await Yn(Pc(e,t)):null;try{return{root:r,epoch:(await Le.readFile(U.join(e,vw),"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(ph,"statSessionTopologyIdentity");async function Yn(e){try{return _s(await Le.stat(e,{bigint:!0}))}catch(t){if(t.code==="ENOENT")return null;throw t}}o(Yn,"statStableFileIdentity");function WM(e,t){return xE(t.map(n=>({kind:n.kind,relativePath:U.relative(e,n.path).replace(/\\/g,"/"),bytes:n.bytes})))}o(WM,"createStableBundleSourceRevisionState");function Lw(e,t){let n=bo("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(Lw,"createStableBundleBoundaryRevision");async function Ew(e,t,n,r,i=!1,s){Xn(r),i||$i(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(Xn(r),p.kind==="main"&&s!==void 0){let h=await Yn(p.filePath);if(h===null||h.size!==BigInt(s.length))throw new xe("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 ej(p.kind,p.filePath));if(l[0]===null)throw new xe("data_changed","Session main file moved during the read boundary");i||$i(e,t);for(let p=0;p<c.length;p+=1){Xn(r);let h=await Yn(c[p].filePath),m=l[p];if(m===null&&h!==null||m!==null&&(h===null||!Ar(m.identity,h)))throw new xe("data_changed",`Session file changed during the read boundary: ${U.basename(c[p].filePath)}`)}i||$i(e,t);let u=l.flatMap(p=>p===null?[]:[p.file]),f=WM(e,u);return{candidates:[n],files:u,sourceRevision:To(f),sourceRevisionState:f,boundaryRevision:Lw(e,l)}}o(Ew,"readStableSessionBundleAtPath");async function Es(e,t,n,r=!1){return(await nd(e,t,n,r)).revision}o(Es,"readStableSessionBundleBoundaryAtPath");async function nd(e,t,n,r=!1){r||$i(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 Yn(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 xe("data_changed","Session main file moved during the read boundary");r||$i(e,t);for(let c=0;c<s.length;c+=1){let l=await Yn(s[c].filePath),u=a[c];if(u===null&&l!==null||u!==null&&(l===null||!Ar(u.identity,l)))throw new xe("data_changed",`Session file changed during the read boundary: ${U.basename(s[c].filePath)}`)}return r||$i(e,t),{revision:Lw(e,a),identities:a.map(c=>c?.identity??null)}}o(nd,"readStableSessionBundleBoundarySnapshotAtPath");function oj(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&&Ar(a,c)})}o(oj,"isExpectedAppendBoundaryTransition");async function jM(e,t,n){let r=U.resolve(e);Xn(n),await HM(r,t);let i=await SM(r,t);if(i.length!==1){let c=WM(r,[]);return{candidates:i,files:[],sourceRevision:To(c),sourceRevisionState:c,boundaryRevision:Lw(r,[])}}let s=await Ew(r,t,i[0],n);Xn(n);let a=await SM(r,t);if(a.length!==i.length||a.some((c,l)=>c!==i[l]))throw new xe("data_changed","Session location changed during the read boundary");return s}o(jM,"readStableSessionBundleFiles");function Et(e,t,n){ft({source:"repl:session-storage",level:e,message:t,...n!==void 0?{detail:n}:{}})}o(Et,"reportStorageDiagnostic");function TM(e,t){t!==0&&Et("warn",`Skipped ${t} malformed session record(s) from ${U.basename(e)}.`)}o(TM,"warnMalformedSessionData");function Oi(e){Et("info",e)}o(Oi,"writeStorageNotice");function CM(e){return{_type:"extension_record",...e}}o(CM,"toExtensionRecordLine");function IM(e){return{_type:"lineage_entry",entry:e}}o(IM,"toLineageEntryLine");function vM(e){return{_type:"artifact_ledger_entry",entry:e}}o(vM,"toArtifactLedgerLine");function sj(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(sj,"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=sj(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 bM(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(bM,"hasTailIdCollision");function Mw(e){return[e.kind,e.sourceTool??"",e.action??"",e.target].join("::")}o(Mw,"artifactLedgerDedupKey");function cj(e,t){if(t.size+e.length>$M)return!0;let n=new Set;for(let r of e){let i=Mw(r);if(t.has(i)||n.has(i))return!0;n.add(i)}return!1}o(cj,"hasArtifactTailConflict");function mh(e){return bo("sha256").update("kodax-conversation-identity-filter-authority-v1\0").update(e,"utf8").digest("hex")}o(mh,"conversationIdentityFilterHash");function lj(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||OE(r,a.id)||s.has(a.id))return!1;s.add(a.id),i=a.id}return n===i}o(lj,"isLinearPreparedMessageTail");function uj(e){return Ze(e)&&e._type==="extension_record"&&lM(e)}o(uj,"isPersistedExtensionRecordLine");function dj(e){return Ze(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(dj,"hasEntryBase");function UM(e){if(!dj(e))return!1;let t=e;switch(t.type){case"message":return ww(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||Pi(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||Pi(t.payload));case"goal":return typeof t.event=="string";case"memory_outcome_digest":return Ze(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(UM,"isKodaXSessionEntry");function fj(e){return Ze(e)&&e._type==="lineage_entry"&&UM(e.entry)}o(fj,"isPersistedLineageEntryLine");function pj(e){return Ze(e)&&e._type==="archived_entry"&&typeof e.archiveBatchId=="string"&&UM(e.entry)}o(pj,"isPersistedArchivedEntryLine");function RM(e){return typeof e=="string"||e===null?e:void 0}o(RM,"archivedEntryAnchor");function vo(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(vo,"isCompactedPlaceholder");function mj(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||vo(i))&&n.set(r.id,r)}return[...n.values()]}o(mj,"mergeConcurrentLineageEntries");function rd(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(rd,"addOrderingEdge");function hj(e,t,n){let r=new Set,i;for(let s of n)!t.has(s)||r.has(s)||(rd(e,t,i,s),i=s,r.add(s))}o(hj,"addSequenceEdges");function kM(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(kM,"pushMin");function gj(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(gj,"popMin");function EM(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(EM,"orderingIndegrees");function MM(e,t,n,r){for(;e.length>0;){let i=gj(e),s=t[i];if(!n.has(s)&&r(s))return i}}o(MM,"popEligibleIndex");function yj(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(yj,"findParentCycleNode");function _M(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(_M,"releaseOrderingTargets");function Sj(e,t,n,r){let i=new Map(e.map((h,m)=>[h,m])),s=EM(e,t),a=EM(e,n),c=[],l=[],u=new Set,f=[],p=o(h=>{s.get(h)===0&&kM(l,i.get(h)),s.get(h)===0&&a.get(h)===0&&kM(c,i.get(h))},"queueIfReady");for(let h of e)p(h);for(;f.length<e.length;){let h=MM(c,e,u,g=>s.get(g)===0&&a.get(g)===0);if(h??=MM(l,e,u,g=>s.get(g)===0),h===void 0){let g=yj(e,u,r);if(!g)break;s.set(g,0),p(g);continue}let m=e[h];u.add(m),f.push(m),_M(m,t,s,u,p),_M(m,n,a,u,p)}return f}o(Sj,"stablePriorityTopologicalOrder");function ed(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||wj(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||!vo(p))&&n.set(p.id,p)}let s=new Set(n.keys()),a=new Map;hj(a,s,t.map(p=>p.id));let c=new Set(t.filter(p=>!vo(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}rd(a,s,l.get(h),p.entry.id),l.set(h,p.entry.id),rd(a,s,p.previousEntryId,p.entry.id),rd(a,s,p.entry.id,p.nextEntryId)}let u=new Map,f=new Map;for(let p of n.values())rd(u,s,p.parentId,p.id),p.parentId&&s.has(p.parentId)&&p.parentId!==p.id&&f.set(p.id,p.parentId);return Sj(i,u,a,f).map(p=>n.get(p))}o(ed,"mergeFullLineageEntries");function wj(e,t){let n=!vo(e.entry),r=!vo(t.entry);return n!==r?n:e.streamId!==t.streamId?e.streamId<t.streamId:!0}o(wj,"shouldPreferArchivedRecord");function xj(e,t){let n=e.lineage,r=t.lineage,i=n&&r?{...n,entries:mj(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(xj,"mergeConcurrentAppendData");function Tj(e,t,n){let r=n.map(f=>f.entry),i=Cj(e,t)?vj(t,e):e,s=new Set(ha(i).map(f=>f.id)),a=new Map(r.map(f=>[f.id,f])),c=new Map;for(let f of r)vo(f)||c.set(f.id,f);for(let f of t?.entries??[])vo(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=vo(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(Tj,"reconcileCompactionLineage");function Cj(e,t){if(t===void 0)return!1;let n=new Set(e.entries.map(r=>r.id));return t.entries.some(r=>Ij(r)&&!n.has(r.id))}o(Cj,"persistedTopologySupersedesIncoming");function Ij(e){return e.type==="compaction"||e.type==="rewind_marker"}o(Ij,"isTopologyEntry");function vj(e,t){let n=[...e.entries],r=new Set(n.map(i=>i.id));for(let i of t.entries)!r.has(i.id)&&bj(i)&&(n.push(i),r.add(i.id));return{...e,entries:n}}o(vj,"mergeContextSilentLineageEntries");function bj(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(bj,"isContextSilentLineageEntry");function Rj(e){return Ze(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||Pi(e.metadata))}o(Rj,"isKodaXSessionArtifactLedgerEntry");function kj(e){return Ze(e)&&e._type==="artifact_ledger_entry"&&Rj(e.entry)}o(kj,"isPersistedArtifactLedgerLine");function wh(e){return Ze(e)&&(e.canonicalRepoRoot===void 0||typeof e.canonicalRepoRoot=="string")&&(e.workspaceRoot===void 0||typeof e.workspaceRoot=="string")&&(e.executionCwd===void 0||typeof e.executionCwd=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.workspaceKind===void 0||e.workspaceKind==="detected"||e.workspaceKind==="managed")}o(wh,"isKodaXSessionRuntimeInfo");function Ej(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(Ej,"getLastNavigableEntryId");var Mj="1970-01-01T00:00:00.000Z";function _j(e){let t=e.meta?.id??bo("sha256").update(e.rawContent).digest("hex"),n=e.meta?.createdAt??Mj,r=null,i=e.legacyMessages.map((s,a)=>{let l=`entry_${bo("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(_j,"buildDeterministicLegacyLineage");function Aj(e){return e.lineageEntries.length>0?{version:2,activeEntryId:e.meta?.activeEntryId??Ej(e.lineageEntries),entries:e.lineageEntries}:e.legacyMessages.length===0?e.meta?.lineageVersion===2?{version:2,activeEntryId:e.meta.activeEntryId??null,entries:[]}:void 0:_j(e)}o(Aj,"buildLineage");function AM(e){return typeof e=="string"?`t:${e}`:`j:${JSON.stringify(e)}`}o(AM,"serializeMessageContentForCompare");function Lj(e,t){return e===t?!0:e.role===t.role&&e._synthetic===!0==(t._synthetic===!0)&&AM(e.content)===AM(t.content)}o(Lj,"sameMessageByContent");function Pj(e,t){if(e.lineage)return e.lineage;if(t){let n=Lt(t),r=e.messages;if(r.length<=n.length&&r.every((s,a)=>Lj(s,n[a])))return t}return qe(e.messages,t)}o(Pj,"resolveSnapshotLineage");function LM(e,t){let n=Aj(e),r=n?Lt(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:wh(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:DM(e.meta?.uiHistory),...dM(e.meta?.errorMetadata)?{errorMetadata:{...e.meta.errorMetadata}}:{},extensionState:uM(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(LM,"buildSessionData");function Oj(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?Ji(n):t.messages.length,lineageIdentityFilterHash:i}}o(Oj,"createSessionMeta");function hh(e,t,n,r,i){return{id:e,title:t,msgCount:n,...r!==void 0?{createdAt:r}:{},...i!==void 0?{surface:i}:{}}}o(hh,"createResumeIndexEntry");async function Iw(e,t=!1,n){let r=n,i;if(r===void 0)try{let l=await Yn(e);r=await Le.readFile(e,"utf-8");let u=await Yn(e);if(i=l!==null&&u!==null&&Ar(l,u)?u:void 0,t&&i===void 0)throw new xe("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(`
85
+ `);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&&Ze(u)&&u._type==="meta"){if(t&&u.lineageVersion!==void 0&&u.lineageVersion!==2)throw new xe("version_incompatible",`Unsupported Session lineage version in ${U.basename(e)}: ${String(u.lineageVersion)}`);a.meta=u;continue}if(QW(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=DM(u.uiHistory)),u.scope!==void 0&&(a.meta.scope=u.scope),u.lineageIdentityFilterHash!==void 0&&(a.meta.lineageIdentityFilterHash=u.lineageIdentityFilterHash));continue}if(fj(u)){a.lineageEntries.push(u.entry);continue}if(kj(u)){a.artifactLedger.push(u.entry);continue}if(uj(u)){a.extensionRecords.push({id:u.id,extensionId:u.extensionId,type:u.type,ts:u.ts,data:u.data,dedupeKey:u.dedupeKey});continue}if(ww(u)){a.legacyMessages.push(u);continue}if(t)throw new xe("version_incompatible",`Unsupported Session record at ${U.basename(e)}:${l+1}`);a.malformedCount+=1}catch(u){if(u instanceof xe)throw u;if(t)throw new xe("data_corrupt",`Malformed Session record at ${U.basename(e)}:${l+1}`);a.malformedCount+=1}return a}o(Iw,"readPersistedSessionFile");var _w=65536;async function $j(e){let t=await Le.open(e,"r");try{let n=Buffer.allocUnsafe(_w),{bytesRead:r}=await t.read(n,0,n.length,0);if(r===0)throw new xe("data_corrupt","Session metadata is empty");let i=n.toString("utf8",0,r),s=i.indexOf(`
86
+ `);if(s<0&&r===n.length)throw new xe("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 xe("data_corrupt",`Session metadata is invalid: ${l instanceof Error?l.message:String(l)}`)}if(!Ze(a)||a._type!=="meta")return{};let c=wh(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($j,"readConversationPageAdmission");async function xh(e){let t;try{t=await Le.open(e,"r");let n=Buffer.allocUnsafe(_w),{bytesRead:r}=await t.read(n,0,_w,0);if(r===0)return null;let i=n.toString("utf8",0,r),s=i.indexOf(`
87
87
  `);if(s>=0)return i.slice(0,s).trim();let a=await Le.readFile(e,"utf-8"),c=a.indexOf(`
88
- `);return(c>=0?a.slice(0,c):a).trim()}catch{return null}finally{await t?.close()}}o(xh,"readSessionFirstLine");async function EM(e){try{let t=(await Le.readFile(e,"utf-8")).trim();return t?t.split(`
89
- `).length:0}catch{return 0}}o(EM,"countSessionLines");var MM=new Map;function Ij(e){let t=MM.get(e);return t===void 0&&(t=new Map,MM.set(e,t)),t}o(Ij,"processSessionLocationIndex");var fr=class{static{o(this,"FileSessionStorage")}actorSnapshotEligibilityTimeoutMs=LW;sessionsDir;configHome;sessionLocations;verifiedLocationMisses=new Map;hostCwd;emitMismatchWarnings;constructor(t){this.sessionsDir=U.resolve(t?.sessionsDir??Wr),this.configHome=U.resolve(t?.configHome??zf),this.sessionLocations=Ij(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>_M||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 Rc(r.filePath);if(s===void 0)return null;let a=await td(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||!Ar(c.mainIdentity,l)||s.boundaryRevision!==a.revision||mh(s.identityFilter)!==c.lineageIdentityFilterHash?null:(c.lineageIdentityFilter=s.identityFilter,c.bundleBoundaryRevision=a.revision,this.currentPreparedSessionAppend(t))}catch(s){if(s instanceof xe&&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),d=[...new Set([...l,...u?.kind==="located"?[u.filePath]:u?.filePaths??[]])].filter(h=>ot.existsSync(h)).sort();if(d.length===0){this.sessionLocations.delete(a);continue}let p=u?.kind==="located"&&u.filePath===d[0]&&this.isLocationGloballyVerified(a);this.sessionLocations.set(a,d.length===1?{kind:"located",filePath:d[0],globallyVerified:p,...p&&u?.kind==="located"?{topologyIdentity:u.topologyIdentity}:{}}:{kind:"ambiguous",filePaths:d})}}beginSessionLocationTraversal(){let t=!0;try{ot.mkdirSync(U.join(this.sessionsDir,yh),{recursive:!0})}catch(n){t=!1,Et("warn","Unable to prepare the durable Session location index.",n)}return{topologyBefore:t?this.readSessionTopologyIdentitySync("","global"):void 0,writerTopologyDigestBefore:t?dM(this.sessionsDir):void 0,topologyMutationBefore:!t||ot.existsSync(Ms(this.sessionsDir))}}completeSessionLocationTraversal(t,n,r){let i=this.readSessionTopologyIdentitySync("","global"),s=dM(this.sessionsDir);if(!(r&&!t.topologyMutationBefore&&!ot.existsSync(Ms(this.sessionsDir))&&t.topologyBefore!==void 0&&t.writerTopologyDigestBefore!==void 0&&i!==void 0&&s!==void 0&&Io(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&&!ot.existsSync(Ms(this.sessionsDir))&&Io(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 kf(this.sessionWriteLockPath(t),async()=>{r?.onFileLockAcquired(),HW(this.sessionsDir),await n()},gh)}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||!jW(r,i)||this.sessionLocations.set(t,{kind:"located",filePath:n.filePath,globallyVerified:!0,topologyIdentity:i})}sessionWriteLockPath(t){return Pc(this.sessionsDir,t)}async persistSessionLocationHint(t){let n=PM(this.sessionsDir,t);try{let r=this.sessionLocations.get(t);if(r===void 0){await Le.rm(n,{force:!0});return}if(r.kind!=="located"||!r.globallyVerified){await Le.rm(n,{force:!0});return}let i=[r.filePath];if((await Promise.all(i.map(Tw))).some(p=>p!=="present"))return;await Le.mkdir(U.dirname(n),{recursive:!0});let a=await ph(this.sessionsDir,t);if(a===null||a.activeWriterIdentity!==null||ot.existsSync(Ms(this.sessionsDir))||r.topologyIdentity===void 0||!Io(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:mM(a.root),epoch:a.epoch,writerIdentity:a.writerIdentity===null?null:mM(a.writerIdentity)}},u=`${n}.${process.pid}.${ed()}.tmp`,d;try{d=await Le.open(u,"wx"),await d.writeFile(JSON.stringify(l),"utf8"),await d.sync(),await d.close(),d=void 0,await xw(u,n)}finally{await d?.close().catch(()=>{}),await Le.rm(u,{force:!0})}this.sessionLocations.set(t,{kind:"located",filePath:i[0],globallyVerified:!0,topologyIdentity:a})}catch(r){Et("warn",`Unable to update the Session location hint for ${t}.`,r)}}async resolveSessionLocationHint(t,n){let r;try{r=await GW(this.sessionsDir,t)}catch(l){Et("warn",`Unable to read the Session location hint for ${t}.`,l);return}if(r===void 0||ot.existsSync(Ms(this.sessionsDir)))return;let i=await ph(this.sessionsDir,t);if(i===null||i.activeWriterIdentity!==null||!Io(r.topology,i))return;let s=await Promise.all(r.filePaths.map(Tw)),a=s.findIndex(l=>l==="unverifiable");if(a>=0&&n)throw Sh(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 xe("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=ks(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:ed(),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?Ji(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(Ew)):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:sr(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 Yn(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=sr(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&&Io(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&&Io(n,r))return n;this.verifiedLocationMisses.delete(t)}assertLocationTopologyUnchanged(t,n){Ni(this.sessionsDir,t);let r=n===void 0?void 0:this.readSessionTopologyIdentitySync(t,n.writerScope);if(n===void 0||r===void 0||!Io(n,r))throw new xe("data_changed",`Session location topology changed during the read boundary for ${t}`)}readSessionTopologyIdentitySync(t,n="session"){try{let r=_s(ot.statSync(this.sessionsDir,{bigint:!0})),i;try{i=_s(ot.statSync(n==="session"?$M(this.sessionsDir,t):_w(this.sessionsDir),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return;i=null}let s=null;if(n==="session")try{s=_s(ot.statSync(Pc(this.sessionsDir,t),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return}try{return{root:r,epoch:ot.readFileSync(U.join(this.sessionsDir,Iw),"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,Iw),n=`${t}.${process.pid}.${Date.now()}.${ww++}.tmp`,r;try{r=await Le.open(n,"wx"),await r.writeFile(`${ed()}
90
- `,"utf8"),await r.sync(),await r.close(),r=void 0,await xw(n,t)}finally{await r?.close().catch(()=>{}),await Le.unlink(n).catch(i=>{if(i.code!=="ENOENT")throw i})}}withSessionLocationTopologyChange(t,n){return kf(Ms(this.sessionsDir),async()=>(await this.advanceSessionLocationTopology(),n?.(),t()),gh)}writeFilePath(t,n){return U.join(this.resolveWriteDir(t,n),`${t}.jsonl`)}async resolveSessionLocation(t,n=!1){n&&await NM(this.sessionsDir,t);let r=this.sessionLocations.get(t);if(r?.kind==="located"&&ot.existsSync(r.filePath)&&(!n||this.isLocationGloballyVerified(t)))return r.filePath;if(r?.kind==="ambiguous"){let m=r.filePaths.filter(g=>ot.existsSync(g));if(m.length===r.filePaths.length){if(n)throw new xe("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 Le.mkdir(U.join(this.sessionsDir,yh),{recursive:!0})}catch(m){s=!1,Et("warn",`Unable to prepare the durable Session location index for ${t}.`,m)}let a=this.legacyFlatPath(t),c;try{c=await ph(this.sessionsDir,t)}catch{s=!1}let l=[];try{l=await Le.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 d=[],p=48;for(let m=0;m<u.length;m+=p){let g=u.slice(m,m+p),C=await Promise.all(g.map(Tw));for(let[w,T]of C.entries()){let v=g[w];T==="present"&&d.push(v),T==="unverifiable"&&(s=!1)}}d.sort();let h;try{h=await ph(this.sessionsDir,t)}catch{s=!1}if(s=s&&c!==void 0&&h!==void 0&&UW(c,h),n&&!s)throw new xe("data_changed",`Session location topology could not be verified for ${t}`);if(n&&Ni(this.sessionsDir,t),d.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),d.length===1)return this.sessionLocations.set(t,{kind:"located",filePath:d[0],globallyVerified:s,...s&&h!==null&&h!==void 0?{topologyIdentity:h}:{}}),await this.persistSessionLocationHint(t),d[0];if(this.sessionLocations.set(t,{kind:"ambiguous",filePaths:d}),await this.persistSessionLocationHint(t),n)throw new xe("data_changed",`Ambiguous Session id ${t} has multiple persisted main files`);return this.resolveAmbiguousSessionLocation(t,d)}async resolveAmbiguousSessionLocation(t,n){if(this.hostCwd){let r=await Ur({cwd:this.hostCwd}),i=await Ti(this.hostCwd),s=this.projectDir(sr({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 $i(`[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 Cw(r,n.strict===!0);if(!s)return null;n.strict===!0&&this.assertLocationTopologyUnchanged(t,i),gM(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 d=c[u],p;if(i?.has(d)){let g=i.get(d);if(g==null)continue;p=g}else try{p=await Le.readFile(d,"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 C=h[g]??"";if(C.trim())try{let w=JSON.parse(C);if(ej(w)){let T=w;l.push({...w,previousEntryId:TM(T.previousEntryId),nextEntryId:TM(T.nextEntryId),streamId:u})}else{if(Ze(w)&&w._type==="archive_batch")continue;if(r)throw new xe("version_incompatible",`Unsupported island sidecar record at ${U.basename(d)}:${g+1}`)}}catch(w){if(w instanceof xe)throw w;if(r)throw new xe("data_corrupt",`Malformed island sidecar record at ${U.basename(d)}:${g+1}`);Et("warn",g===m?`Ignored incomplete island sidecar tail ${U.basename(d)}:${g+1}.`:`Skipped malformed island sidecar record ${U.basename(d)}:${g+1}.`,w)}}}return l}async completeConversationLineage(t,n,r){let i=await this.readArchivedEntries(t,n);return i.length===0?r:{...r,entries:Zu(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 Le.mkdir(c,{recursive:!0});let l=U.join(c,`${t}.islands.jsonl`),u=new Map(s.map((p,h)=>[p.id,h])),d=await Le.open(l,"a");try{await d.write(JSON.stringify({_type:"archive_batch",archiveBatchId:i,sessionId:t,archivedAt:new Date().toISOString(),entryCount:r.length})+`
91
- `);for(let p of r){let h=u.get(p.id);await d.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})+`
92
- `)}await d.sync()}finally{await d.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 xe("data_changed",`Refusing to change the cached project identity for ${t}`);let s=U.join(t,"project.json"),a;try{a=await VE(t)}catch(c){let l=c instanceof Error?c.message:String(c);throw new xe("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 Le.readdir(t,{withFileTypes:!0})).some(p=>p.isFile()&&c(p.name)),d=!1;try{d=(await Le.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 xe("data_changed",`Unable to inspect ${t}: ${h}`)}}if(u||d){let p=[t,U.join(t,"archived")],h=[];for(let m of p)try{for(let g of await Le.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 C=>{let w=await xh(C);if(!w)return r!==void 0&&U.basename(t)===n.key&&U.resolve(C)===U.resolve(r);try{let T=JSON.parse(w);if(!Ze(T)||T._type!=="meta")return!1;let v=sr({gitRoot:typeof T.gitRoot=="string"?T.gitRoot:void 0,runtimeInfo:wh(T.runtimeInfo)?T.runtimeInfo:void 0});return v.key===n.key&&v.canonicalRoot===n.canonicalRoot}catch{return!1}}))).some(C=>!C))throw new xe("data_changed",`Refusing to claim a mixed or unverifiable project bucket at ${s}`)}}try{await nh(t,n)}catch(c){let l=c instanceof Error?c.message:String(c);throw new xe("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:Zu(s,r.entries)},c=await kw(this.sessionsDir,t,n,void 0,!0),l=Xu(a,c.sourceRevision);if(await HE(n,c.boundaryRevision,c.sourceRevisionState,l,a,i))return;await aw(n,c.boundaryRevision,c.sourceRevisionState,l,a,i,lM)}catch(s){try{await Kn(n)}catch(a){Et("warn",`Unable to invalidate Conversation page cache for ${t}.`,new AggregateError([s,a]));return}Et("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 Rc(n),u=l?.boundaryRevision===r.revision?jE(l,i,s,a):void 0;if(l===void 0||u===void 0){l!==void 0&&await Kn(n);return}let d=gE(l.sourceRevisionState,U.relative(this.sessionsDir,n).replace(/\\/g,"/"),Buffer.from(c,"utf8"));if(d===void 0){await Kn(n);return}let p=await td(this.sessionsDir,t,n,!0);if(!KW(r,p,Buffer.byteLength(c,"utf8"))){await Kn(n);return}await WE(n,l,p.revision,d,u,s,a)}catch(l){Et("warn",`Unable to extend Conversation page cache for ${t}; invalidating it.`,l);try{await Kn(n)}catch(u){Et("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`),d=U.basename(l)==="archived"?U.dirname(l):l,p=sr(n),h=this.appendState.get(t)?.projectCanonicalRoot;if(i!==void 0&&h!==void 0&&p.canonicalRoot!==null&&h!==p.canonicalRoot)throw new xe("data_changed",`Refusing to move Session ${t} across cached project identities`);await Le.mkdir(l,{recursive:!0}),await this.ensureProjectJson(d,p,u);let m=`${u}.${process.pid}.${Date.now()}.${ww++}.tmp`,g=n.lineage??qe(n.messages),C=a===void 0?void 0:Zm(a),w=C===void 0?void 0:mh(C),T=Tj(t,n,g,r,w),v=uh(u),P=U.basename(U.dirname(u))!=="archived"&&T.scope!=="managed-task-worker"&&(T.activeMessageCount??0)>0,k=hh(t,T.title,T.activeMessageCount??0,T.createdAt,T.runtimeInfo?.surface);if(P)try{await dh(v,k)}catch(X){Et("warn",`Unable to prepare the resume index for ${t}.`,X)}let E=this.legacyFlatPath(t),$=!ot.existsSync(u)||E!==u&&ot.existsSync(E),B=o(async()=>{try{c?.beginTiming("tempWrite");let X=_r.now(),y=await Le.open(m,"w");try{try{await y.write(JSON.stringify(T)+`
93
- `);for(let W of g.entries)await y.write(JSON.stringify(SM(W))+`
94
- `);for(let W of n.artifactLedger??[])await y.write(JSON.stringify(wM(W))+`
95
- `);for(let W of n.extensionRecords??[])await y.write(JSON.stringify(yM(W))+`
96
- `)}finally{c?.recordTiming("tempWrite",Mn(X))}c?.beginTiming("fsync");let ee=_r.now();try{await y.sync()}finally{c?.recordTiming("fsync",Mn(ee))}}finally{await y.close()}c?.beginTiming("rename"),c?.beforeCommit();let A=_r.now();try{await xw(m,u)}finally{c?.recordTiming("rename",Mn(A))}if(c?.afterCommit(),E!==u&&ot.existsSync(E)){await Le.unlink(E).catch(()=>{});let ee=this.legacyFlatArchivePath(t);ot.existsSync(ee)&&await Le.rename(ee,U.join(d,`${t}.islands.jsonl`)).catch(()=>{})}}finally{ot.existsSync(m)&&await Le.unlink(m).catch(()=>{})}},"write");if($){c?.beginTiming("topology");let X=_r.now(),y=!1;try{await this.withSessionLocationTopologyChange(B,()=>{y=!0,c?.recordTiming("topology",Mn(X))})}finally{y||c?.recordTiming("topology",Mn(X))}}else await B();try{await Qu(v,k,P)}catch(X){Et("warn",`Unable to refresh the resume index for ${t}.`,X)}a===void 0?await Kn(u):await this.rebuildConversationCache(t,u,a,n.runtimeInfo);let O=[u];E!==u&&ot.existsSync(E)&&O.push(E);let G=this.readSessionTopologyIdentitySync(t),re=s!==void 0&&G!==void 0;return this.verifiedLocationMisses.delete(t),this.sessionLocations.set(t,O.length===1?{kind:"located",filePath:u,globallyVerified:re,...re?{topologyIdentity:G}:{}}:{kind:"ambiguous",filePaths:O.sort()}),w===void 0?this.lineageIdentityFilterHashes.delete(t):this.lineageIdentityFilterHashes.set(t,w),u}async mergeAndWriteInternal(t,n){let r=await this.readSession(t),i=r===null?this.verifiedMissingLocationTopology(t):this.verifiedLocationTopology(t),s={...n,scope:n.scope??r?.data.scope??"user",uiHistory:n.uiHistory??r?.data.uiHistory,extensionState:n.extensionState??r?.data.extensionState,artifactLedger:n.artifactLedger??r?.data.artifactLedger,actorSnapshot:r?.data.actorSnapshot??n.actorSnapshot,extensionRecords:n.extensionRecords??r?.data.extensionRecords,runtimeInfo:n.runtimeInfo??r?.data.runtimeInfo,errorMetadata:Object.prototype.hasOwnProperty.call(n,"errorMetadata")?n.errorMetadata:r?.data.errorMetadata,tag:n.tag??r?.data.tag,lineage:xj(n,r?.data.lineage)};if(r!==null){let p=sr(r.data),h=sr(s);if(p.canonicalRoot!==null&&h.canonicalRoot!==null&&p.canonicalRoot!==h.canonicalRoot)throw new xe("data_changed",`Refusing to move Session ${t} across project identities during an in-place save`)}let a=await this.readArchivedEntries(t),c=cj(s.lineage,r?.data.lineage,a),l=cI(c);await this.appendIslandArchive(t,s,l.archivedEntries,l.archiveBatchId,c.entries,r?.filePath);let u={...s,lineage:l.slimmedLineage},d=await this.writeSessionInternal(t,u,r?.createdAt,r?.filePath,i,c);await this.syncAppendStateFromFile(t,{...s,lineage:c},d)}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 Yn(r.filePath);if(!(r!==void 0&&(r.mainIdentity===void 0||i===null||!Ar(r.mainIdentity,i)))){await this.mergeAndWriteInternal(t,n);return}let a=await this.readSession(t);await this.mergeAndWriteInternal(t,a?aj(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 xe("data_changed",`Prepared Session append boundary changed for ${t}; reload before retrying`);let l=r.lineageEntries,u=r.artifactEntries??[],d=r.extensionRecords??[];if(a.lineageIdentityFilter===void 0||a.lineageIdentityFilterHash===void 0||mh(a.lineageIdentityFilter)!==a.lineageIdentityFilterHash||a.bundleBoundaryRevision===void 0||!qW(a.activeEntryId,l,r.activeEntryId,a.lineageIdentityFilter)||xM(u,a.artifactEntryIds)||YW(u,a.artifactDedupKeys)||xM(d,a.extensionRecordIds))throw new xe("data_changed",`Prepared Session tail for ${t} is not a new linear append; use appendSessionDelta()`);let p=XW(a.activeEntryId,a.activeMessageCount,l,r.activeEntryId);if(p===void 0)throw new xe("data_changed",`Prepared Session tail for ${t} is not a linear append; use appendSessionDelta()`);let h=a.filePath===void 0?null:await Yn(a.filePath);if(a.filePath===void 0||a.mainIdentity===void 0||h===null||!Ar(a.mainIdentity,h))throw new xe("data_changed",`Persisted Session changed after the prepared append boundary for ${t}`);let m=await td(this.sessionsDir,t,a.filePath,!0);if(m.revision!==a.bundleBoundaryRevision)throw new xe("data_changed",`Persisted Session bundle changed after the prepared append boundary for ${t}`);let g=[];for(let O of l)g.push(JSON.stringify(SM(O)));for(let O of u)g.push(JSON.stringify(wM(O)));for(let O of d)g.push(JSON.stringify(yM(O)));let C=iw(a.lineageIdentityFilter,l),w=mh(C),T={_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:w};g.push(JSON.stringify(T));let v=`
88
+ `);return(c>=0?a.slice(0,c):a).trim()}catch{return null}finally{await t?.close()}}o(xh,"readSessionFirstLine");async function PM(e){try{let t=(await Le.readFile(e,"utf-8")).trim();return t?t.split(`
89
+ `).length:0}catch{return 0}}o(PM,"countSessionLines");var OM=new Map;function Nj(e){let t=OM.get(e);return t===void 0&&(t=new Map,OM.set(e,t)),t}o(Nj,"processSessionLocationIndex");var fr=class{static{o(this,"FileSessionStorage")}actorSnapshotEligibilityTimeoutMs=GW;sessionsDir;configHome;sessionLocations;verifiedLocationMisses=new Map;hostCwd;emitMismatchWarnings;constructor(t){this.sessionsDir=U.resolve(t?.sessionsDir??Wr),this.configHome=U.resolve(t?.configHome??zf),this.sessionLocations=Nj(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>$M||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 Rc(r.filePath);if(s===void 0)return null;let a=await nd(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||!Ar(c.mainIdentity,l)||s.boundaryRevision!==a.revision||mh(s.identityFilter)!==c.lineageIdentityFilterHash?null:(c.lineageIdentityFilter=s.identityFilter,c.bundleBoundaryRevision=a.revision,this.currentPreparedSessionAppend(t))}catch(s){if(s instanceof xe&&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=>ot.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{ot.mkdirSync(U.join(this.sessionsDir,yh),{recursive:!0})}catch(n){t=!1,Et("warn","Unable to prepare the durable Session location index.",n)}return{topologyBefore:t?this.readSessionTopologyIdentitySync("","global"):void 0,writerTopologyDigestBefore:t?gM(this.sessionsDir):void 0,topologyMutationBefore:!t||ot.existsSync(Ms(this.sessionsDir))}}completeSessionLocationTraversal(t,n,r){let i=this.readSessionTopologyIdentitySync("","global"),s=gM(this.sessionsDir);if(!(r&&!t.topologyMutationBefore&&!ot.existsSync(Ms(this.sessionsDir))&&t.topologyBefore!==void 0&&t.writerTopologyDigestBefore!==void 0&&i!==void 0&&s!==void 0&&Io(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&&!ot.existsSync(Ms(this.sessionsDir))&&Io(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 kf(this.sessionWriteLockPath(t),async()=>{r?.onFileLockAcquired(),ZW(this.sessionsDir),await n()},gh)}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||!tj(r,i)||this.sessionLocations.set(t,{kind:"located",filePath:n.filePath,globallyVerified:!0,topologyIdentity:i})}sessionWriteLockPath(t){return Pc(this.sessionsDir,t)}async persistSessionLocationHint(t){let n=BM(this.sessionsDir,t);try{let r=this.sessionLocations.get(t);if(r===void 0){await Le.rm(n,{force:!0});return}if(r.kind!=="located"||!r.globallyVerified){await Le.rm(n,{force:!0});return}let i=[r.filePath];if((await Promise.all(i.map(Cw))).some(p=>p!=="present"))return;await Le.mkdir(U.dirname(n),{recursive:!0});let a=await ph(this.sessionsDir,t);if(a===null||a.activeWriterIdentity!==null||ot.existsSync(Ms(this.sessionsDir))||r.topologyIdentity===void 0||!Io(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:wM(a.root),epoch:a.epoch,writerIdentity:a.writerIdentity===null?null:wM(a.writerIdentity)}},u=`${n}.${process.pid}.${td()}.tmp`,f;try{f=await Le.open(u,"wx"),await f.writeFile(JSON.stringify(l),"utf8"),await f.sync(),await f.close(),f=void 0,await Tw(u,n)}finally{await f?.close().catch(()=>{}),await Le.rm(u,{force:!0})}this.sessionLocations.set(t,{kind:"located",filePath:i[0],globallyVerified:!0,topologyIdentity:a})}catch(r){Et("warn",`Unable to update the Session location hint for ${t}.`,r)}}async resolveSessionLocationHint(t,n){let r;try{r=await ij(this.sessionsDir,t)}catch(l){Et("warn",`Unable to read the Session location hint for ${t}.`,l);return}if(r===void 0||ot.existsSync(Ms(this.sessionsDir)))return;let i=await ph(this.sessionsDir,t);if(i===null||i.activeWriterIdentity!==null||!Io(r.topology,i))return;let s=await Promise.all(r.filePaths.map(Cw)),a=s.findIndex(l=>l==="unverifiable");if(a>=0&&n)throw Sh(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 xe("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=ks(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:td(),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?Ji(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(Mw)):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:sr(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 Yn(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=sr(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&&Io(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&&Io(n,r))return n;this.verifiedLocationMisses.delete(t)}assertLocationTopologyUnchanged(t,n){$i(this.sessionsDir,t);let r=n===void 0?void 0:this.readSessionTopologyIdentitySync(t,n.writerScope);if(n===void 0||r===void 0||!Io(n,r))throw new xe("data_changed",`Session location topology changed during the read boundary for ${t}`)}readSessionTopologyIdentitySync(t,n="session"){try{let r=_s(ot.statSync(this.sessionsDir,{bigint:!0})),i;try{i=_s(ot.statSync(n==="session"?FM(this.sessionsDir,t):Aw(this.sessionsDir),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return;i=null}let s=null;if(n==="session")try{s=_s(ot.statSync(Pc(this.sessionsDir,t),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return}try{return{root:r,epoch:ot.readFileSync(U.join(this.sessionsDir,vw),"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,vw),n=`${t}.${process.pid}.${Date.now()}.${xw++}.tmp`,r;try{r=await Le.open(n,"wx"),await r.writeFile(`${td()}
90
+ `,"utf8"),await r.sync(),await r.close(),r=void 0,await Tw(n,t)}finally{await r?.close().catch(()=>{}),await Le.unlink(n).catch(i=>{if(i.code!=="ENOENT")throw i})}}withSessionLocationTopologyChange(t,n){return kf(Ms(this.sessionsDir),async()=>(await this.advanceSessionLocationTopology(),n?.(),t()),gh)}writeFilePath(t,n){return U.join(this.resolveWriteDir(t,n),`${t}.jsonl`)}async resolveSessionLocation(t,n=!1){n&&await HM(this.sessionsDir,t);let r=this.sessionLocations.get(t);if(r?.kind==="located"&&ot.existsSync(r.filePath)&&(!n||this.isLocationGloballyVerified(t)))return r.filePath;if(r?.kind==="ambiguous"){let m=r.filePaths.filter(g=>ot.existsSync(g));if(m.length===r.filePaths.length){if(n)throw new xe("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 Le.mkdir(U.join(this.sessionsDir,yh),{recursive:!0})}catch(m){s=!1,Et("warn",`Unable to prepare the durable Session location index for ${t}.`,m)}let a=this.legacyFlatPath(t),c;try{c=await ph(this.sessionsDir,t)}catch{s=!1}let l=[];try{l=await Le.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),C=await Promise.all(g.map(Cw));for(let[w,T]of C.entries()){let v=g[w];T==="present"&&f.push(v),T==="unverifiable"&&(s=!1)}}f.sort();let h;try{h=await ph(this.sessionsDir,t)}catch{s=!1}if(s=s&&c!==void 0&&h!==void 0&&nj(c,h),n&&!s)throw new xe("data_changed",`Session location topology could not be verified for ${t}`);if(n&&$i(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 xe("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 Ur({cwd:this.hostCwd}),i=await Ti(this.hostCwd),s=this.projectDir(sr({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 Oi(`[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 Iw(r,n.strict===!0);if(!s)return null;n.strict===!0&&this.assertLocationTopologyUnchanged(t,i),TM(r,s.malformedCount);let a=LM(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 Le.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 C=h[g]??"";if(C.trim())try{let w=JSON.parse(C);if(pj(w)){let T=w;l.push({...w,previousEntryId:RM(T.previousEntryId),nextEntryId:RM(T.nextEntryId),streamId:u})}else{if(Ze(w)&&w._type==="archive_batch")continue;if(r)throw new xe("version_incompatible",`Unsupported island sidecar record at ${U.basename(f)}:${g+1}`)}}catch(w){if(w instanceof xe)throw w;if(r)throw new xe("data_corrupt",`Malformed island sidecar record at ${U.basename(f)}:${g+1}`);Et("warn",g===m?`Ignored incomplete island sidecar tail ${U.basename(f)}:${g+1}.`:`Skipped malformed island sidecar record ${U.basename(f)}:${g+1}.`,w)}}}return l}async completeConversationLineage(t,n,r){let i=await this.readArchivedEntries(t,n);return i.length===0?r:{...r,entries:ed(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 Le.mkdir(c,{recursive:!0});let l=U.join(c,`${t}.islands.jsonl`),u=new Map(s.map((p,h)=>[p.id,h])),f=await Le.open(l,"a");try{await f.write(JSON.stringify({_type:"archive_batch",archiveBatchId:i,sessionId:t,archivedAt:new Date().toISOString(),entryCount:r.length})+`
91
+ `);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})+`
92
+ `)}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 xe("data_changed",`Refusing to change the cached project identity for ${t}`);let s=U.join(t,"project.json"),a;try{a=await YE(t)}catch(c){let l=c instanceof Error?c.message:String(c);throw new xe("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 Le.readdir(t,{withFileTypes:!0})).some(p=>p.isFile()&&c(p.name)),f=!1;try{f=(await Le.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 xe("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 Le.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 C=>{let w=await xh(C);if(!w)return r!==void 0&&U.basename(t)===n.key&&U.resolve(C)===U.resolve(r);try{let T=JSON.parse(w);if(!Ze(T)||T._type!=="meta")return!1;let v=sr({gitRoot:typeof T.gitRoot=="string"?T.gitRoot:void 0,runtimeInfo:wh(T.runtimeInfo)?T.runtimeInfo:void 0});return v.key===n.key&&v.canonicalRoot===n.canonicalRoot}catch{return!1}}))).some(C=>!C))throw new xe("data_changed",`Refusing to claim a mixed or unverifiable project bucket at ${s}`)}}try{await nh(t,n)}catch(c){let l=c instanceof Error?c.message:String(c);throw new xe("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:ed(s,r.entries)},c=await Ew(this.sessionsDir,t,n,void 0,!0),l=Yu(a,c.sourceRevision);if(await GE(n,c.boundaryRevision,c.sourceRevisionState,l,a,i))return;await cw(n,c.boundaryRevision,c.sourceRevisionState,l,a,i,mM)}catch(s){try{await Kn(n)}catch(a){Et("warn",`Unable to invalidate Conversation page cache for ${t}.`,new AggregateError([s,a]));return}Et("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 Rc(n),u=l?.boundaryRevision===r.revision?zE(l,i,s,a):void 0;if(l===void 0||u===void 0){l!==void 0&&await Kn(n);return}let f=TE(l.sourceRevisionState,U.relative(this.sessionsDir,n).replace(/\\/g,"/"),Buffer.from(c,"utf8"));if(f===void 0){await Kn(n);return}let p=await nd(this.sessionsDir,t,n,!0);if(!oj(r,p,Buffer.byteLength(c,"utf8"))){await Kn(n);return}await KE(n,l,p.revision,f,u,s,a)}catch(l){Et("warn",`Unable to extend Conversation page cache for ${t}; invalidating it.`,l);try{await Kn(n)}catch(u){Et("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=sr(n),h=this.appendState.get(t)?.projectCanonicalRoot;if(i!==void 0&&h!==void 0&&p.canonicalRoot!==null&&h!==p.canonicalRoot)throw new xe("data_changed",`Refusing to move Session ${t} across cached project identities`);await Le.mkdir(l,{recursive:!0}),await this.ensureProjectJson(f,p,u);let m=`${u}.${process.pid}.${Date.now()}.${xw++}.tmp`,g=n.lineage??qe(n.messages),C=a===void 0?void 0:Zm(a),w=C===void 0?void 0:mh(C),T=Oj(t,n,g,r,w),v=uh(u),D=U.basename(U.dirname(u))!=="archived"&&T.scope!=="managed-task-worker"&&(T.activeMessageCount??0)>0,k=hh(t,T.title,T.activeMessageCount??0,T.createdAt,T.runtimeInfo?.surface);if(D)try{await dh(v,k)}catch(X){Et("warn",`Unable to prepare the resume index for ${t}.`,X)}let E=this.legacyFlatPath(t),P=!ot.existsSync(u)||E!==u&&ot.existsSync(E),B=o(async()=>{try{c?.beginTiming("tempWrite");let X=_r.now(),y=await Le.open(m,"w");try{try{await y.write(JSON.stringify(T)+`
93
+ `);for(let W of g.entries)await y.write(JSON.stringify(IM(W))+`
94
+ `);for(let W of n.artifactLedger??[])await y.write(JSON.stringify(vM(W))+`
95
+ `);for(let W of n.extensionRecords??[])await y.write(JSON.stringify(CM(W))+`
96
+ `)}finally{c?.recordTiming("tempWrite",Mn(X))}c?.beginTiming("fsync");let ee=_r.now();try{await y.sync()}finally{c?.recordTiming("fsync",Mn(ee))}}finally{await y.close()}c?.beginTiming("rename"),c?.beforeCommit();let _=_r.now();try{await Tw(m,u)}finally{c?.recordTiming("rename",Mn(_))}if(c?.afterCommit(),E!==u&&ot.existsSync(E)){await Le.unlink(E).catch(()=>{});let ee=this.legacyFlatArchivePath(t);ot.existsSync(ee)&&await Le.rename(ee,U.join(f,`${t}.islands.jsonl`)).catch(()=>{})}}finally{ot.existsSync(m)&&await Le.unlink(m).catch(()=>{})}},"write");if(P){c?.beginTiming("topology");let X=_r.now(),y=!1;try{await this.withSessionLocationTopologyChange(B,()=>{y=!0,c?.recordTiming("topology",Mn(X))})}finally{y||c?.recordTiming("topology",Mn(X))}}else await B();try{await Zu(v,k,D)}catch(X){Et("warn",`Unable to refresh the resume index for ${t}.`,X)}a===void 0?await Kn(u):await this.rebuildConversationCache(t,u,a,n.runtimeInfo);let $=[u];E!==u&&ot.existsSync(E)&&$.push(E);let G=this.readSessionTopologyIdentitySync(t),re=s!==void 0&&G!==void 0;return this.verifiedLocationMisses.delete(t),this.sessionLocations.set(t,$.length===1?{kind:"located",filePath:u,globallyVerified:re,...re?{topologyIdentity:G}:{}}:{kind:"ambiguous",filePaths:$.sort()}),w===void 0?this.lineageIdentityFilterHashes.delete(t):this.lineageIdentityFilterHashes.set(t,w),u}async mergeAndWriteInternal(t,n){let r=await this.readSession(t),i=r===null?this.verifiedMissingLocationTopology(t):this.verifiedLocationTopology(t),s={...n,scope:n.scope??r?.data.scope??"user",uiHistory:n.uiHistory??r?.data.uiHistory,extensionState:n.extensionState??r?.data.extensionState,artifactLedger:n.artifactLedger??r?.data.artifactLedger,actorSnapshot:r?.data.actorSnapshot??n.actorSnapshot,extensionRecords:n.extensionRecords??r?.data.extensionRecords,runtimeInfo:n.runtimeInfo??r?.data.runtimeInfo,errorMetadata:Object.prototype.hasOwnProperty.call(n,"errorMetadata")?n.errorMetadata:r?.data.errorMetadata,tag:n.tag??r?.data.tag,lineage:Pj(n,r?.data.lineage)};if(r!==null){let p=sr(r.data),h=sr(s);if(p.canonicalRoot!==null&&h.canonicalRoot!==null&&p.canonicalRoot!==h.canonicalRoot)throw new xe("data_changed",`Refusing to move Session ${t} across project identities during an in-place save`)}let a=await this.readArchivedEntries(t),c=Tj(s.lineage,r?.data.lineage,a),l=lI(c);await this.appendIslandArchive(t,s,l.archivedEntries,l.archiveBatchId,c.entries,r?.filePath);let u={...s,lineage:l.slimmedLineage},f=await this.writeSessionInternal(t,u,r?.createdAt,r?.filePath,i,c);await this.syncAppendStateFromFile(t,{...s,lineage:c},f)}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 Yn(r.filePath);if(!(r!==void 0&&(r.mainIdentity===void 0||i===null||!Ar(r.mainIdentity,i)))){await this.mergeAndWriteInternal(t,n);return}let a=await this.readSession(t);await this.mergeAndWriteInternal(t,a?xj(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 xe("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||mh(a.lineageIdentityFilter)!==a.lineageIdentityFilterHash||a.bundleBoundaryRevision===void 0||!lj(a.activeEntryId,l,r.activeEntryId,a.lineageIdentityFilter)||bM(u,a.artifactEntryIds)||cj(u,a.artifactDedupKeys)||bM(f,a.extensionRecordIds))throw new xe("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 xe("data_changed",`Prepared Session tail for ${t} is not a linear append; use appendSessionDelta()`);let h=a.filePath===void 0?null:await Yn(a.filePath);if(a.filePath===void 0||a.mainIdentity===void 0||h===null||!Ar(a.mainIdentity,h))throw new xe("data_changed",`Persisted Session changed after the prepared append boundary for ${t}`);let m=await nd(this.sessionsDir,t,a.filePath,!0);if(m.revision!==a.bundleBoundaryRevision)throw new xe("data_changed",`Persisted Session bundle changed after the prepared append boundary for ${t}`);let g=[];for(let $ of l)g.push(JSON.stringify(IM($)));for(let $ of u)g.push(JSON.stringify(vM($)));for(let $ of f)g.push(JSON.stringify(CM($)));let C=ow(a.lineageIdentityFilter,l),w=mh(C),T={_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:w};g.push(JSON.stringify(T));let v=`
97
97
  ${g.join(`
98
- `)}`,_=r.scope??a.scope??"user",k=U.basename(U.dirname(a.filePath))!=="archived"&&_!=="managed-task-worker"&&p>0,E=uh(a.filePath),$=hh(t,r.title,p,void 0,a.surface);if(k)try{await dh(E,$)}catch(O){Et("warn",`Unable to prepare the resume index for ${t}.`,O)}await Le.appendFile(a.filePath,v,"utf-8"),s=!0;try{await Qu(E,$,k)}catch(O){Et("warn",`Unable to refresh the resume index for ${t}.`,O)}await this.updateConversationCacheAfterAppend(t,a.filePath,m,a.activeEntryId,l,r.activeEntryId,v);for(let O of u)a.artifactEntryIds.add(O.id);for(let O of u)a.artifactDedupKeys.add(Ew(O));for(let O of d)a.extensionRecordIds.add(O.id);let B=await td(this.sessionsDir,t,a.filePath,!0);this.appendState.set(t,{...a,appendRevision:ed(),lineageCount:a.lineageCount+l.length,artifactCount:a.artifactCount+u.length,extensionCount:a.extensionCount+d.length,activeEntryId:r.activeEntryId,activeMessageCount:p,scope:_,lineageIdentityFilter:C,lineageIdentityFilterHash:w,bundleBoundaryRevision:B.revision,mainIdentity:await Yn(a.filePath)??void 0}),this.lineageIdentityFilterHashes.set(t,w),i=this.currentPreparedSessionAppend(t)??void 0})}catch(a){if(!s)throw a;return this.appendState.delete(t),Et("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 Le.mkdir(U.join(this.sessionsDir,yh),{recursive:!0});let r=this.writeFilePath(t,n);if(ot.existsSync(r)||ot.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}beginActorSnapshotSave(t,n,r){let i=DW(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 uI(r,m,t);c=h}finally{i.canonicalObserver.recordTiming("readCas",Mn(a))}let l={...c.data,actorSnapshot:structuredClone(n)};i.canonicalObserver.beginTiming("lineage");let u=_r.now(),d;try{d=l.lineage===void 0?void 0:await this.completeConversationLineage(t,c.filePath,l.lineage)}finally{i.canonicalObserver.recordTiming("lineage",Mn(u))}let p;try{p=await this.writeSessionInternal(t,l,c.createdAt,c.filePath,void 0,d,i.canonicalObserver)}catch(h){let m=h;if(i.attempt.phase()==="commit_inflight")try{let g=await this.readSession(t),C=g?.data.actorSnapshot,w=g?.data.actorSnapshot?.revision??0;_W(C,OW(n))?i.markCommitObservedByReadback():w===r?i.markCommitNotObserved(h):m=new AggregateError([h,new Error(`Actor snapshot readback observed revision ${w}; 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={}){Xn(n.signal);let r=await Lc(this.readSession(t,{migrate:!1,strict:!0}),n);return r?structuredClone(r.data):null}async readConversationPageCache(t,n,r={}){Xn(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 Es(this.sessionsDir,t,s),l=await DE(s,c,{...n,signal:r.signal}),u=await Es(this.sessionsDir,t,s);if(this.assertLocationTopologyUnchanged(t,a),c!==u)throw new mt("Conversation history changed during paging");if(l===null&&n.expectedRevision!==void 0)throw new mt("Conversation history changed; request a fresh page");return l}catch(c){if(c instanceof mt){if(n.expectedRevision===void 0)return null;throw new xe("data_changed",c.message)}throw c}})();return Lc(i,r)}async readConversationPageBoundary(t,n={}){Xn(n.signal);let r=(async()=>{let i=await this.resolveSessionLocation(t,!0);if(i===null)return null;let s=this.verifiedLocationTopology(t),a=await Es(this.sessionsDir,t,i),c=await Cj(i),l=await Es(this.sessionsDir,t,i);if(this.assertLocationTopologyUnchanged(t,s),a!==l)throw new xe("data_changed","Session changed while validating a Conversation page boundary");return{boundaryRevision:l,admission:c}})();return Lc(r,n)}async prepareConversationPageCache(t,n,r,i,s,a,c={}){Xn(c.signal);let l=await this.resolveSessionLocation(t,!0);if(l===null)throw new xe("data_changed","Session moved before page preparation");await Lc(this.serializedWrite(t,async()=>{if(Xn(c.signal),await Es(this.sessionsDir,t,l,!0)!==s)throw new xe("data_changed","Session changed before page preparation");await aw(l,s,a,n,r,i,lM)}),c)}async readConversationPageCacheChunk(t,n,r={}){Xn(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 Es(this.sessionsDir,t,s),l=await BE(s,c,{...n,signal:r.signal}),u=await Es(this.sessionsDir,t,s);if(this.assertLocationTopologyUnchanged(t,a),c!==u||l===null)throw new mt("Conversation history changed; request a fresh page");return l}catch(c){throw c instanceof mt?new xe("data_changed",c.message):c}})();return Lc(i,r)}async readFullSnapshot(t,n={}){Xn(n.signal);let r=(async()=>{let i=await this.resolveSessionLocation(t,!0);return i===null?null:this.readFullSnapshotAtPath(t,i,n.signal,!1)})();return Lc(r,n)}async readFullSnapshotAtPath(t,n,r,i){let s=this.verifiedLocationTopology(t),a=await kw(this.sessionsDir,t,n,r,i),c=a.files.find(C=>C.kind==="main");if(c===void 0)throw new xe("data_changed","Session main file moved during the read boundary");let l=await Cw(c.path,!0,c.bytes.toString("utf8"));if(l===null)return null;let u=kM(l,c.path),d=U.dirname(c.path),p=new Map([[U.join(d,`${t}.islands.jsonl`),null],[U.join(d,`${t}.archive.jsonl`),null]]);for(let C of a.files)C.kind!=="main"&&p.set(C.path,C.bytes.toString("utf8"));let h=await this.readArchivedEntries(t,c.path,!0,p),m=Zu(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 Ti(this.hostCwd),a=await Ur({cwd:this.hostCwd}),c=In(r);(a.canonicalRepoRoot&&c?.canonicalRepoRoot&&!ay(a,c)||s&&r.gitRoot&&s!==r.gitRoot&&!ay(a,{canonicalRepoRoot:r.gitRoot}))&&($i(cM.yellow(`
99
- [Warning] Session project mismatch:`)),a.workspaceRoot&&$i(` Current workspace: ${a.workspaceRoot}`),c?.workspaceRoot&&$i(` Session workspace: ${c.workspaceRoot}`),a.canonicalRepoRoot&&$i(` Current repo: ${a.canonicalRepoRoot}`),c?.canonicalRepoRoot?$i(` Session repo: ${c.canonicalRepoRoot}`):r.gitRoot&&$i(` Session repo: ${r.gitRoot}`),$i(` Continuing anyway...
100
- `))}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=tI(c.data.messages);if(u===c.data.messages){this.syncAppendState(t,c.data,{filePath:c.filePath,mainIdentity:c.mainIdentity});return}let d={...c.data,messages:u,errorMetadata:{...c.data.errorMetadata,consecutiveErrors:0},lineage:qe(u,c.data.lineage)},p=await this.completeConversationLineage(t,c.filePath,d.lineage),h=await this.writeSessionInternal(t,d,c.createdAt,c.filePath,void 0,p);await this.syncAppendStateFromFile(t,d,h),s=d,a=!0}),a&&$i(cM.cyan("[Session Recovery] Cleaned incomplete tool calls from previous session")),s}return gM(i,0),r}async has(t){try{return await this.ensureMigrated(),await this.resolveSessionLocation(t)!==null}catch(n){return Et("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(),kf(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:Zu(r,n.data.lineage.entries)}},gh)}async setActiveEntry(t,n,r){let i=null;return await Qg({configHome:this.configHome,sessionId:t},async s=>this.serializedWrite(t,async()=>{let a=await this.readSession(t);if(!a?.data.lineage)return;let c=ga(a.data.lineage,n,r);if(!c)return;await s(ey(c));let l={...a.data,messages:Lt(c),lineage:c},u=await this.completeConversationLineage(t,a.filePath,c),d=await this.writeSessionInternal(t,l,a.createdAt,a.filePath,void 0,u);await this.syncAppendStateFromFile(t,l,d),i=l})),i}async rewind(t,n,r){let i=null;return await Qg({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 xe("data_changed",`Conversation history boundary is stale for ${t}`);let u=l?.lineage??a.data.lineage;if(u===null)return;let d=n??wa(u);if(!d)return;let p=l===void 0?void 0:uM(u,d);if(l!==void 0&&p===void 0)return;let m=xa(p===void 0?u:{version:2,activeEntryId:d,entries:p},d);if(!m)return;let g=m.entries.at(-1);if(g?.type!=="rewind_marker")return;let C=u.entries.findIndex(re=>re.id===d);if(C<0)return;let{fromId:w,...T}=g,v={...T,...u.activeEntryId!==null?{fromId:u.activeEntryId}:{},truncatedCount:u.entries.length-C-1},_={...m,entries:[...m.entries.slice(0,-1),v]};await s(ey(_));let P=await this.readArchivedEntries(t,a.filePath),k=l?.lineage?.entries??(P.length===0?a.data.lineage.entries:Zu(P,a.data.lineage.entries)),E=new Set(_.entries.map(re=>re.id)),$=a.data.lineage.entries.filter(re=>!E.has(re.id)),B={...a.data,messages:Lt(_),lineage:_};await this.appendIslandArchive(t,B,$,v.id,[...k,v],a.filePath);let O=await this.completeConversationLineage(t,a.filePath,_),G=await this.writeSessionInternal(t,B,a.createdAt,a.filePath,void 0,O);await this.syncAppendStateFromFile(t,B,G),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=ya(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 xe("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||uM(l,n)===void 0))return;let u=Date.now(),d=c===void 0?Si(l,n):c===null?null:lE(l,n,c.sourceRevision,()=>Th({},u));if(!d)return;let p=r?.sessionId??await Ta(),h={messages:Lt(d),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:d};await this.writeSessionInternal(p,h,void 0,void 0,void 0,d),i={sessionId:p,data:h}}),i}async list(t,n){await this.ensureMigrated(),await Le.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 Ti(this.hostCwd):null),a=i?await Ur({cwd:s??this.hostCwd??process.cwd()}):void 0,c=i?void 0:this.beginSessionLocationTraversal(),l=await Le.readdir(this.sessionsDir,{withFileTypes:!0}),u=[],d=[],h=(a===void 0?void 0:sr({gitRoot:s??void 0,runtimeInfo:a}))?.key,m=o($=>$.endsWith(".archive.jsonl")||$.endsWith(".islands.jsonl"),"isSidecar"),g=h!==void 0?[h]:l.filter($=>$.isDirectory()&&!$.name.startsWith(".")).map($=>$.name),C=!i,w=o(async $=>{try{return{files:await Le.readdir($),complete:!0}}catch(B){return{files:[],complete:B.code==="ENOENT"}}},"readDirectory"),T=48;for(let $=0;$<g.length;$+=T){let B=await Promise.all(g.slice($,$+T).map(async O=>{let G=this.projectDir(O),[re,X]=await Promise.all([w(G),w(U.join(G,"archived"))]);return{projectDir:G,active:re,archived:X}}));for(let O of B){(!O.active.complete||!O.archived.complete)&&(C=!1);for(let G of O.active.files){if(!G.endsWith(".jsonl")||m(G))continue;let re=U.join(O.projectDir,G);d.push(re),u.push({path:re,archived:!1})}for(let G of O.archived.files){if(!G.endsWith(".jsonl")||m(G))continue;let re=U.join(O.projectDir,"archived",G);d.push(re),n?.includeArchived&&u.push({path:re,archived:!0})}}}for(let $ of l)if($.isFile()&&$.name.endsWith(".jsonl")&&!m($.name)&&!$.name.startsWith("archived-")&&!$.name.startsWith(".")){let B=U.join(this.sessionsDir,$.name);d.push(B),u.push({path:B,archived:!1})}c===void 0?this.indexSessionLocations(d,!1):this.completeSessionLocationTraversal(c,d,C);let v=[],_=o(async($,B)=>{try{let O=await xh($);if(!O)return null;let G=JSON.parse(O);if(Ze(G)&&G._type==="meta"){let X=typeof G.gitRoot=="string"?G.gitRoot:"",y=wh(G.runtimeInfo)?G.runtimeInfo:void 0,A=G.scope==="managed-task-worker"?"managed-task-worker":"user";if(a!==void 0&&h!==void 0&&!ip({gitRoot:X||void 0,runtimeInfo:y},[a.canonicalRepoRoot,a.workspaceRoot,a.executionCwd,s].filter(de=>typeof de=="string"&&de.length>0))||A!=="user")return null;let ee=typeof G.extensionRecordCount=="number"&&G.extensionRecordCount>0?G.extensionRecordCount:0,W=typeof G.activeMessageCount=="number"&&G.activeMessageCount>=0?G.activeMessageCount:Math.max(0,await EM($)-1-ee);return{id:U.basename($,".jsonl"),title:typeof G.title=="string"?G.title:"",msgCount:W,...typeof G.tag=="string"?{tag:G.tag}:{},createdAt:typeof G.createdAt=="string"?G.createdAt:void 0,runtimeInfo:y?{...y}:X?{canonicalRepoRoot:X}:void 0,...B?{archived:!0}:{}}}let re=await EM($);return{id:U.basename($,".jsonl"),title:"",msgCount:re,...B?{archived:!0}:{}}}catch{return null}},"parseSessionFile"),P=48,k=new Set;for(let $=0;$<u.length;$+=P){let B=await Promise.all(u.slice($,$+P).map(O=>_(O.path,O.archived)));for(let O of B)O&&!k.has(O.id)&&(k.add(O.id),v.push(O))}let E=n?.limit??10;return v.sort(($,B)=>{let O=$.createdAt?Date.parse($.createdAt):Number.NaN,G=B.createdAt?Date.parse(B.createdAt):Number.NaN;return Number.isFinite(O)&&Number.isFinite(G)&&O!==G?G-O:Number.isFinite(G)&&!Number.isFinite(O)?1:Number.isFinite(O)&&!Number.isFinite(G)?-1:B.id.localeCompare($.id)}).slice(0,E).map(({id:$,title:B,msgCount:O,tag:G,runtimeInfo:re,createdAt:X,archived:y})=>({id:$,title:B,msgCount:O,...G!==void 0?{tag:G}:{},...re?{runtimeInfo:re}:{},...X!==void 0?{createdAt:X}:{},...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 Kn(i))}}async removeResumeMembership(t,n){try{await Qu(uh(n),hh(t,"",0),!1)}catch(r){Et("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 d of this.sessionConversationCacheMainPaths(t,i.filePath).slice(1))await Kn(d);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 Kn(m);r=!0;return}let a=this.verifiedLocationTopology(t),c=U.dirname(s),l=i.data.lineage?Ji(i.data.lineage):i.data.messages.length,u=i.data.scope!=="managed-task-worker"&&l>0,d=hh(t,i.data.title,l,i.createdAt,i.data.runtimeInfo?.surface);if(u)try{await dh(c,d)}catch(m){Et("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 Qu(c,d,u)}catch(m){Et("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(ot.existsSync(U.join(r,c)))throw new Error(`Refusing to overwrite existing Session archive file: ${c}`);await Le.mkdir(r,{recursive:!0});let s=i.filter(c=>ot.existsSync(U.join(n,c))),a=[];try{for(let c of s){let l=U.join(n,c);await Le.rename(l,U.join(r,c)),a.push(c)}}catch(c){let l=[];for(let u of a.reverse())try{await Le.rename(U.join(r,u),U.join(n,u))}catch(d){l.push(d)}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()}.${ww++}.deleting.tmp`;try{await Le.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 Le.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 Le.unlink(i.tombstone)}catch(s){Et("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 ty(t?.schemaVersion===2?t.owner?.runtimeId:void 0,t?.revision??0,!1);return}if(t?.schemaVersion===2&&t.owner)throw new ty(t.owner.runtimeId,t.revision,!1);if(t?.turns.some(r=>r.state==="accepted"||r.state==="running"))throw new dI(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 Ti(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 Le.stat(a)).mtimeMs>=i)return;let d=await Cw(a),p=d?.meta?.actorSnapshot;!d?.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 Le.mkdir(this.sessionsDir,{recursive:!0});let a=await Le.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 Le.readdir(l,{withFileTypes:!0})}catch{continue}for(let d of u){let p=U.join(l,d.name);if(d.isFile())await s(p);else if(d.isDirectory()&&d.name==="archived"){let h=[];try{h=await Le.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 pe,jsxs as _n,Fragment as IV}from"react/jsx-runtime";import NL,{useState as Ge,useCallback as q,useRef as Se,useEffect as He,useMemo as we}from"react";import{jsx as ti,Fragment as vj,jsxs as Ch}from"react/jsx-runtime";var Lw=" | ",FM=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 d=ae("dark"),p=r.trim(),h=a?.trim(),m=l?.trim(),g=u?.trim(),C=e?p?`Search /${p}`:"Search":"Transcript",w=e?`Enter jump | n/N next/prev | Ctrl+E ${n?"collapse":"show all"} | Esc close | Ctrl+O/q back`:t?`PgUp/PgDn page | j/k scroll | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | Esc clear focus | Ctrl+O/q back`:`PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | s dump | Ctrl+O/q/Esc back`,T=c>0?c===1?"1 new update":`${c} new updates`:void 0,v=e&&s>0?`${Math.max(0,i)}/${s}`:void 0,_=e&&h||m,P=!!(_||g);return Ch(M,{flexDirection:"column",children:[Ch(M,{paddingX:1,children:[ti(b,{color:d.colors.dim,children:C}),ti(b,{dimColor:!0,children:Lw}),ti(b,{color:d.colors.dim,children:w}),v||T?ti(M,{flexGrow:1}):null,v?Ch(vj,{children:[ti(b,{dimColor:!0,children:v}),T?ti(b,{dimColor:!0,children:Lw}):null]}):null,T?ti(b,{color:d.colors.accent,bold:!0,children:T}):null]}),P?Ch(M,{paddingX:1,children:[_?ti(b,{color:d.colors.dim,children:_}):null,_&&g?ti(b,{dimColor:!0,children:Lw}):null,g?ti(b,{color:d.colors.accent,bold:!0,children:g}):null]}):null]})},"TranscriptModeFooter");import{jsx as bj,jsxs as Rj}from"react/jsx-runtime";var HM=o(({banner:e,...t})=>Rj(M,{flexDirection:"column",children:[e,bj(go,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as kj,jsxs as Ej}from"react/jsx-runtime";var WM=o(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...i})=>Ej(M,{flexDirection:"column",children:[e,kj(Em,{...i,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as Mj,jsx as _j}from"react/jsx-runtime";var jM=o(({text:e,tone:t="success"})=>{let n=e?.trim();if(!n)return null;let r=ae("dark"),i=t==="warning"?r.colors.warning:r.colors.accent,s=t==="warning"?"!":"\u2713";return _j(M,{paddingX:1,backgroundColor:r.colors.inputBackground,children:Mj(b,{color:i,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as Ro,Fragment as Aj,jsxs as Pw}from"react/jsx-runtime";var Lj=" \u23BF ";function Pj(e){let t=ae("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(Pj,"resolveSymbolColor");var $j=o(({row:e})=>{let t=Pj(e.symbolColor),n=e.kind!=="item";return Pw(M,{flexDirection:"row",children:[Ro(b,{color:t,bold:e.isActive,children:e.symbol}),Ro(b,{children:" "}),Ro(b,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?Pw(Aj,{children:[Ro(b,{children:" "}),Ro(b,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),UM=o(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=ae("dark").colors.dim;return Pw(M,{flexDirection:"row",children:[Ro(b,{color:t,children:Lj}),Ro(M,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>Ro($j,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");import{jsx as rd,jsxs as Nj}from"react/jsx-runtime";var VM=Av;function Oj(e){let t=ae("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(Oj,"resolveSymbolColor");var Dj=o(({row:e})=>{let t=Oj(e.symbolColor);return Nj(M,{flexDirection:"row",children:[rd(M,{width:VM,flexShrink:0,children:rd(b,{color:t,bold:e.isActive,wrap:"truncate",children:Lv(e.symbol,VM)})}),rd(b,{color:e.kind==="hint"?ae("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"WorkflowRunRow");function GM(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}o(GM,"measureWorkflowRunSurfaceRows");var KM=o(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:rd(M,{flexDirection:"column",flexGrow:1,children:e.rows.map((t,n)=>rd(Dj,{row:t},`${t.kind}-${t.id??n}`))}),"WorkflowRunSurface");var zM=6;var Bj=1;function XM(e){return ie("todo.progress",{completed:e.completedCount,total:e.totalCount})}o(XM,"formatTodoPlanProgressText");function YM(e){if(!e.shouldRender||e.rows.length===0)return[];let t=[ie("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(YM,"formatTodoPlanViewModelForTranscript");var qM="\u2610",Fj="\u25CF",JM="\u2713",Hj="\u2717",Wj="\u2298",jj="\u2612";function Uj(e){switch(e){case"in_progress":return{symbol:Fj,color:"cyan"};case"completed":return{symbol:JM,color:"green"};case"failed":return{symbol:Hj,color:"red"};case"skipped":return{symbol:Wj,color:"gray"};case"cancelled":return{symbol:jj,color:"gray"};default:return{symbol:qM,color:"dim"}}}o(Uj,"symbolForStatus");function Vj(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(Vj,"pickAnchorIndex");function Gj(e){let{symbol:t,color:n}=Uj(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(Gj,"buildItemRow");function Kj(e){return{kind:"summary_done",symbol:JM,symbolColor:"green",text:ie("todo.summary.done",{count:e}),isActive:!1,summaryCount:e}}o(Kj,"buildDoneSummary");function $w(e){return{kind:"summary_pending",symbol:qM,symbolColor:"dim",text:ie("todo.summary.more",{count:e}),isActive:!1,summaryCount:e}}o($w,"buildPendingSummary");function zj(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}o(zj,"pickFailedToPromote");function Xj(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 d=e[u].status;(d==="pending"||d==="in_progress")&&l++}return{visibleIdx:a,hiddenCompletedCount:c,hiddenPendingCount:l}}o(Xj,"decideWindow");function QM(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<Bj)return i([],!1);t.now,t.lastAllCompletedAt;let s=Vj(e),a=Xj(e,s),c=new Set(a.visibleIdx),l=zj(e,c),u=[...a.visibleIdx],d=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let m=-1;for(let g=u.length-1;g>=0;g--){let C=u[g];if(C!==s&&e[C].status==="pending"){m=g;break}}if(m>=0){let g=u[m];u[m]=l,p+=1,u.sort((T,v)=>T-v);let C=u[0],w=0;for(let T=0;T<C;T++)e[T].status==="completed"&&w++;d=w}}let h=[];d>0&&h.push(Kj(d));for(let m of u)h.push(Gj(e[m]));if(p>0&&h.push($w(p)),h.length>zM)for(;h.length>zM;){let m=!1;for(let g=h.length-1;g>=0;g--){let C=h[g];if(C.kind==="item"&&!C.isActive){h.splice(g,1);let w=h[h.length-1];if(w&&w.kind==="summary_pending"){let T=(w.summaryCount??0)+1;h[h.length-1]=$w(T)}else h.push($w(1));m=!0;break}}if(!m)break}return i(h,!0)}o(QM,"buildTodoPlanViewModel");function ZM(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(ZM,"buildFooterHeaderViewModel");function Ih(e,t,n,r){if(r?.contextKind==="child")return null;let i=n?.preCompactionMessages?qe([...n.preCompactionMessages],e):e;return n?.anchor?Af(i,t,n.anchor,n.postCompactAttachments??[]):qe(t,i)}o(Ih,"prepareRootCompactionLineage");function e_(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(e_,"withSessionHistoryReadBarrier");function t_(){let e=Promise.resolve();return t=>{let n=e.then(t);return e=n.then(()=>{},()=>{}),n}}o(t_,"createConfirmationDialogQueue");function Yj(e){return ZI(e.provider,e.model,"off",{longRunning:!0})}o(Yj,"evaluateSessionTransitionPolicy");function qj(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(qj,"formatSessionTransitionGuardMessage");function ko(e,t,n){let r=Yj(e);if(!r||r.status==="allow")return!0;let[i,...s]=qj(t,r);return n(r.status,i,s),r.status!=="block"}o(ko,"enforceSessionTransitionGuard");function Jj(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(Jj,"summarizeEntry");function n_(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} ${Jj(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,d)=>{n_(u,l,d===e.children.length-1,r)})}o(n_,"formatNode");function vh(e){let t=[];return e.forEach((n,r)=>{n_(n,"",r===e.length-1,t)}),t}o(vh,"formatSessionTree");function r_(e,t){return e!==null&&e.attempt===t.attempt&&e.maxAttempts===t.maxAttempts&&e.waitMs===t.delayMs}o(r_,"isDuplicateLegacyRateLimit");var Qj=100,Zj=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,o_=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,s_=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,a_=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function $c(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}o($c,"readString");function fn(e,t,n){n&&e.push({label:t,value:n})}o(fn,"pushField");function e2(e){return e.replace(/\s+/g," ").trim()}o(e2,"normalizeWhitespace");function t2(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(t2,"truncateMiddle");function n2(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(n2,"maskSensitiveSegments");function i_(e){return t2(n2(e2(e)),Qj)}o(i_,"summarizeCommand");function r2(e){return Fl(e)?ie("intent.read"):o_.test(e)?ie("intent.delete"):s_.test(e)?ie("intent.deps"):xi(e)||a_.test(e)?ie("intent.modify"):ie("intent.execute")}o(r2,"classifyShellIntent");function i2(e){let t=[];return o_.test(e)?t.push(ie("risk.destructive")):s_.test(e)?t.push(ie("risk.deps")):xi(e)||a_.test(e)?t.push(ie("risk.modify")):Fl(e)||t.push(ie("risk.unknown")),Zj.test(e)&&t.push(ie("risk.network")),t}o(i2,"classifyShellRisks");function o2(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}o(o2,"readSignals");function s2(e){if(e){if(e.some(t=>t.kind==="protected_path"))return ie("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return ie("scope.outside")}}o(s2,"scopeFromSignals");function a2(e){if(e._outsideProject===!0)return ie("scope.outside");if(e._alwaysConfirm===!0)return ie("scope.protected")}o(a2,"scopeFromMarkers");function c2(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(ie("risk.destructive")):r&&t.push(ie("risk.modify")),e.some(i=>i.kind==="network")&&t.push(ie("risk.network")),e.some(i=>i.kind==="package_install")&&t.push(ie("risk.deps")),t}o(c2,"risksFromSignals");var l2={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function u2(e){return ie(l2[e])}o(u2,"localizeFieldLabel");function Nc(e,t){return{title:e,fields:t,details:t.map(n=>`${u2(n.label)}: ${n.value}`)}}o(Nc,"buildDisplayFromFields");function bh(e,t){if(e==="confirm"){let l=$c(t._message);if(l)return Nc(l,[])}if(e==="exit_plan_mode"){let l=$c(t.plan),u="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:u,fields:[],details:l.split(`
101
- `)}:Nc(u,[])}let n=[],r=$c(t.path),i=$c(t.command),s=$c(t._reason)??$c(t.justification),a=o2(t._classifierSignals),c=s2(a)??a2(t);switch(fn(n,"Reason",s),e){case"bash":case"shell_command":{if(i){fn(n,"Intent",r2(i)),fn(n,"Scope",c);let l=c2(a),u=l.length>0?l:i2(i);u.length>0&&fn(n,"Risk",u.join("; ")),fn(n,"Summary",i_(i))}else fn(n,"Scope",c);return Nc(e==="bash"?ie("tool.bash.title"):ie("tool.shell.title"),n)}case"write":return fn(n,"Intent",ie("intent.write_file")),fn(n,"Target",r),fn(n,"Scope",c),Nc(ie("tool.write.title"),n);case"edit":return fn(n,"Intent",ie("intent.edit_file")),fn(n,"Target",r),fn(n,"Scope",c),Nc(ie("tool.edit.title"),n);default:return fn(n,"Intent",ie("intent.use_tool",{tool:e})),fn(n,"Target",r),fn(n,"Scope",c),i&&fn(n,"Summary",i_(i)),Nc(ie("tool.generic.title",{tool:e}),n)}}o(bh,"buildToolConfirmationDisplay");function c_(e,t){let n=bh(e,t);return n.details.length>0?`${n.title}
98
+ `)}`,A=r.scope??a.scope??"user",k=U.basename(U.dirname(a.filePath))!=="archived"&&A!=="managed-task-worker"&&p>0,E=uh(a.filePath),P=hh(t,r.title,p,void 0,a.surface);if(k)try{await dh(E,P)}catch($){Et("warn",`Unable to prepare the resume index for ${t}.`,$)}await Le.appendFile(a.filePath,v,"utf-8"),s=!0;try{await Zu(E,P,k)}catch($){Et("warn",`Unable to refresh the resume index for ${t}.`,$)}await this.updateConversationCacheAfterAppend(t,a.filePath,m,a.activeEntryId,l,r.activeEntryId,v);for(let $ of u)a.artifactEntryIds.add($.id);for(let $ of u)a.artifactDedupKeys.add(Mw($));for(let $ of f)a.extensionRecordIds.add($.id);let B=await nd(this.sessionsDir,t,a.filePath,!0);this.appendState.set(t,{...a,appendRevision:td(),lineageCount:a.lineageCount+l.length,artifactCount:a.artifactCount+u.length,extensionCount:a.extensionCount+f.length,activeEntryId:r.activeEntryId,activeMessageCount:p,scope:A,lineageIdentityFilter:C,lineageIdentityFilterHash:w,bundleBoundaryRevision:B.revision,mainIdentity:await Yn(a.filePath)??void 0}),this.lineageIdentityFilterHashes.set(t,w),i=this.currentPreparedSessionAppend(t)??void 0})}catch(a){if(!s)throw a;return this.appendState.delete(t),Et("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 Le.mkdir(U.join(this.sessionsDir,yh),{recursive:!0});let r=this.writeFilePath(t,n);if(ot.existsSync(r)||ot.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}beginActorSnapshotSave(t,n,r){let i=qW(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 dI(r,m,t);c=h}finally{i.canonicalObserver.recordTiming("readCas",Mn(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",Mn(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),C=g?.data.actorSnapshot,w=g?.data.actorSnapshot?.revision??0;UW(C,YW(n))?i.markCommitObservedByReadback():w===r?i.markCommitNotObserved(h):m=new AggregateError([h,new Error(`Actor snapshot readback observed revision ${w}; 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={}){Xn(n.signal);let r=await Lc(this.readSession(t,{migrate:!1,strict:!0}),n);return r?structuredClone(r.data):null}async readConversationPageCache(t,n,r={}){Xn(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 Es(this.sessionsDir,t,s),l=await jE(s,c,{...n,signal:r.signal}),u=await Es(this.sessionsDir,t,s);if(this.assertLocationTopologyUnchanged(t,a),c!==u)throw new mt("Conversation history changed during paging");if(l===null&&n.expectedRevision!==void 0)throw new mt("Conversation history changed; request a fresh page");return l}catch(c){if(c instanceof mt){if(n.expectedRevision===void 0)return null;throw new xe("data_changed",c.message)}throw c}})();return Lc(i,r)}async readConversationPageBoundary(t,n={}){Xn(n.signal);let r=(async()=>{let i=await this.resolveSessionLocation(t,!0);if(i===null)return null;let s=this.verifiedLocationTopology(t),a=await Es(this.sessionsDir,t,i),c=await $j(i),l=await Es(this.sessionsDir,t,i);if(this.assertLocationTopologyUnchanged(t,s),a!==l)throw new xe("data_changed","Session changed while validating a Conversation page boundary");return{boundaryRevision:l,admission:c}})();return Lc(r,n)}async prepareConversationPageCache(t,n,r,i,s,a,c={}){Xn(c.signal);let l=await this.resolveSessionLocation(t,!0);if(l===null)throw new xe("data_changed","Session moved before page preparation");await Lc(this.serializedWrite(t,async()=>{if(Xn(c.signal),await Es(this.sessionsDir,t,l,!0)!==s)throw new xe("data_changed","Session changed before page preparation");await cw(l,s,a,n,r,i,mM)}),c)}async readConversationPageCacheChunk(t,n,r={}){Xn(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 Es(this.sessionsDir,t,s),l=await UE(s,c,{...n,signal:r.signal}),u=await Es(this.sessionsDir,t,s);if(this.assertLocationTopologyUnchanged(t,a),c!==u||l===null)throw new mt("Conversation history changed; request a fresh page");return l}catch(c){throw c instanceof mt?new xe("data_changed",c.message):c}})();return Lc(i,r)}async readFullSnapshot(t,n={}){Xn(n.signal);let r=(async()=>{let i=await this.resolveSessionLocation(t,!0);return i===null?null:this.readFullSnapshotAtPath(t,i,n.signal,!1)})();return Lc(r,n)}async readFullSnapshotAtPath(t,n,r,i){let s=this.verifiedLocationTopology(t),a=await Ew(this.sessionsDir,t,n,r,i),c=a.files.find(C=>C.kind==="main");if(c===void 0)throw new xe("data_changed","Session main file moved during the read boundary");let l=await Iw(c.path,!0,c.bytes.toString("utf8"));if(l===null)return null;let u=LM(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 C of a.files)C.kind!=="main"&&p.set(C.path,C.bytes.toString("utf8"));let h=await this.readArchivedEntries(t,c.path,!0,p),m=ed(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 Ti(this.hostCwd),a=await Ur({cwd:this.hostCwd}),c=In(r);(a.canonicalRepoRoot&&c?.canonicalRepoRoot&&!ay(a,c)||s&&r.gitRoot&&s!==r.gitRoot&&!ay(a,{canonicalRepoRoot:r.gitRoot}))&&(Oi(pM.yellow(`
99
+ [Warning] Session project mismatch:`)),a.workspaceRoot&&Oi(` Current workspace: ${a.workspaceRoot}`),c?.workspaceRoot&&Oi(` Session workspace: ${c.workspaceRoot}`),a.canonicalRepoRoot&&Oi(` Current repo: ${a.canonicalRepoRoot}`),c?.canonicalRepoRoot?Oi(` Session repo: ${c.canonicalRepoRoot}`):r.gitRoot&&Oi(` Session repo: ${r.gitRoot}`),Oi(` Continuing anyway...
100
+ `))}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=nI(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&&Oi(pM.cyan("[Session Recovery] Cleaned incomplete tool calls from previous session")),s}return TM(i,0),r}async has(t){try{return await this.ensureMigrated(),await this.resolveSessionLocation(t)!==null}catch(n){return Et("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(),kf(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:ed(r,n.data.lineage.entries)}},gh)}async setActiveEntry(t,n,r){let i=null;return await Qg({configHome:this.configHome,sessionId:t},async s=>this.serializedWrite(t,async()=>{let a=await this.readSession(t);if(!a?.data.lineage)return;let c=ga(a.data.lineage,n,r);if(!c)return;await s(ey(c));let l={...a.data,messages:Lt(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 Qg({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 xe("data_changed",`Conversation history boundary is stale for ${t}`);let u=l?.lineage??a.data.lineage;if(u===null)return;let f=n??wa(u);if(!f)return;let p=l===void 0?void 0:hM(u,f);if(l!==void 0&&p===void 0)return;let m=xa(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 C=u.entries.findIndex(re=>re.id===f);if(C<0)return;let{fromId:w,...T}=g,v={...T,...u.activeEntryId!==null?{fromId:u.activeEntryId}:{},truncatedCount:u.entries.length-C-1},A={...m,entries:[...m.entries.slice(0,-1),v]};await s(ey(A));let D=await this.readArchivedEntries(t,a.filePath),k=l?.lineage?.entries??(D.length===0?a.data.lineage.entries:ed(D,a.data.lineage.entries)),E=new Set(A.entries.map(re=>re.id)),P=a.data.lineage.entries.filter(re=>!E.has(re.id)),B={...a.data,messages:Lt(A),lineage:A};await this.appendIslandArchive(t,B,P,v.id,[...k,v],a.filePath);let $=await this.completeConversationLineage(t,a.filePath,A),G=await this.writeSessionInternal(t,B,a.createdAt,a.filePath,void 0,$);await this.syncAppendStateFromFile(t,B,G),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=ya(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 xe("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||hM(l,n)===void 0))return;let u=Date.now(),f=c===void 0?Si(l,n):c===null?null:mE(l,n,c.sourceRevision,()=>Th({},u));if(!f)return;let p=r?.sessionId??await Ta(),h={messages:Lt(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 Le.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 Ti(this.hostCwd):null),a=i?await Ur({cwd:s??this.hostCwd??process.cwd()}):void 0,c=i?void 0:this.beginSessionLocationTraversal(),l=await Le.readdir(this.sessionsDir,{withFileTypes:!0}),u=[],f=[],h=(a===void 0?void 0:sr({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),C=!i,w=o(async P=>{try{return{files:await Le.readdir(P),complete:!0}}catch(B){return{files:[],complete:B.code==="ENOENT"}}},"readDirectory"),T=48;for(let P=0;P<g.length;P+=T){let B=await Promise.all(g.slice(P,P+T).map(async $=>{let G=this.projectDir($),[re,X]=await Promise.all([w(G),w(U.join(G,"archived"))]);return{projectDir:G,active:re,archived:X}}));for(let $ of B){(!$.active.complete||!$.archived.complete)&&(C=!1);for(let G of $.active.files){if(!G.endsWith(".jsonl")||m(G))continue;let re=U.join($.projectDir,G);f.push(re),u.push({path:re,archived:!1})}for(let G of $.archived.files){if(!G.endsWith(".jsonl")||m(G))continue;let re=U.join($.projectDir,"archived",G);f.push(re),n?.includeArchived&&u.push({path:re,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,C);let v=[],A=o(async(P,B)=>{try{let $=await xh(P);if(!$)return null;let G=JSON.parse($);if(Ze(G)&&G._type==="meta"){let X=typeof G.gitRoot=="string"?G.gitRoot:"",y=wh(G.runtimeInfo)?G.runtimeInfo:void 0,_=G.scope==="managed-task-worker"?"managed-task-worker":"user";if(a!==void 0&&h!==void 0&&!ip({gitRoot:X||void 0,runtimeInfo:y},[a.canonicalRepoRoot,a.workspaceRoot,a.executionCwd,s].filter(de=>typeof de=="string"&&de.length>0))||_!=="user")return null;let ee=typeof G.extensionRecordCount=="number"&&G.extensionRecordCount>0?G.extensionRecordCount:0,W=typeof G.activeMessageCount=="number"&&G.activeMessageCount>=0?G.activeMessageCount:Math.max(0,await PM(P)-1-ee);return{id:U.basename(P,".jsonl"),title:typeof G.title=="string"?G.title:"",msgCount:W,...typeof G.tag=="string"?{tag:G.tag}:{},createdAt:typeof G.createdAt=="string"?G.createdAt:void 0,runtimeInfo:y?{...y}:X?{canonicalRepoRoot:X}:void 0,...B?{archived:!0}:{}}}let re=await PM(P);return{id:U.basename(P,".jsonl"),title:"",msgCount:re,...B?{archived:!0}:{}}}catch{return null}},"parseSessionFile"),D=48,k=new Set;for(let P=0;P<u.length;P+=D){let B=await Promise.all(u.slice(P,P+D).map($=>A($.path,$.archived)));for(let $ of B)$&&!k.has($.id)&&(k.add($.id),v.push($))}let E=n?.limit??10;return v.sort((P,B)=>{let $=P.createdAt?Date.parse(P.createdAt):Number.NaN,G=B.createdAt?Date.parse(B.createdAt):Number.NaN;return Number.isFinite($)&&Number.isFinite(G)&&$!==G?G-$:Number.isFinite(G)&&!Number.isFinite($)?1:Number.isFinite($)&&!Number.isFinite(G)?-1:B.id.localeCompare(P.id)}).slice(0,E).map(({id:P,title:B,msgCount:$,tag:G,runtimeInfo:re,createdAt:X,archived:y})=>({id:P,title:B,msgCount:$,...G!==void 0?{tag:G}:{},...re?{runtimeInfo:re}:{},...X!==void 0?{createdAt:X}:{},...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 Kn(i))}}async removeResumeMembership(t,n){try{await Zu(uh(n),hh(t,"",0),!1)}catch(r){Et("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 Kn(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 Kn(m);r=!0;return}let a=this.verifiedLocationTopology(t),c=U.dirname(s),l=i.data.lineage?Ji(i.data.lineage):i.data.messages.length,u=i.data.scope!=="managed-task-worker"&&l>0,f=hh(t,i.data.title,l,i.createdAt,i.data.runtimeInfo?.surface);if(u)try{await dh(c,f)}catch(m){Et("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 Zu(c,f,u)}catch(m){Et("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(ot.existsSync(U.join(r,c)))throw new Error(`Refusing to overwrite existing Session archive file: ${c}`);await Le.mkdir(r,{recursive:!0});let s=i.filter(c=>ot.existsSync(U.join(n,c))),a=[];try{for(let c of s){let l=U.join(n,c);await Le.rename(l,U.join(r,c)),a.push(c)}}catch(c){let l=[];for(let u of a.reverse())try{await Le.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()}.${xw++}.deleting.tmp`;try{await Le.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 Le.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 Le.unlink(i.tombstone)}catch(s){Et("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 ty(t?.schemaVersion===2?t.owner?.runtimeId:void 0,t?.revision??0,!1);return}if(t?.schemaVersion===2&&t.owner)throw new ty(t.owner.runtimeId,t.revision,!1);if(t?.turns.some(r=>r.state==="accepted"||r.state==="running"))throw new fI(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 Ti(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 Le.stat(a)).mtimeMs>=i)return;let f=await Iw(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 Le.mkdir(this.sessionsDir,{recursive:!0});let a=await Le.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 Le.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 Le.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 pe,jsxs as _n,Fragment as NV}from"react/jsx-runtime";import HL,{useState as Ge,useCallback as q,useRef as Se,useEffect as He,useMemo as we}from"react";import{jsx as ti,Fragment as Dj,jsxs as Ch}from"react/jsx-runtime";var Pw=" | ",VM=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=ae("dark"),p=r.trim(),h=a?.trim(),m=l?.trim(),g=u?.trim(),C=e?p?`Search /${p}`:"Search":"Transcript",w=e?`Enter jump | n/N next/prev | Ctrl+E ${n?"collapse":"show all"} | Esc close | Ctrl+O/q back`:t?`PgUp/PgDn page | j/k scroll | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | Esc clear focus | Ctrl+O/q back`:`PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | s dump | Ctrl+O/q/Esc back`,T=c>0?c===1?"1 new update":`${c} new updates`:void 0,v=e&&s>0?`${Math.max(0,i)}/${s}`:void 0,A=e&&h||m,D=!!(A||g);return Ch(M,{flexDirection:"column",children:[Ch(M,{paddingX:1,children:[ti(b,{color:f.colors.dim,children:C}),ti(b,{dimColor:!0,children:Pw}),ti(b,{color:f.colors.dim,children:w}),v||T?ti(M,{flexGrow:1}):null,v?Ch(Dj,{children:[ti(b,{dimColor:!0,children:v}),T?ti(b,{dimColor:!0,children:Pw}):null]}):null,T?ti(b,{color:f.colors.accent,bold:!0,children:T}):null]}),D?Ch(M,{paddingX:1,children:[A?ti(b,{color:f.colors.dim,children:A}):null,A&&g?ti(b,{dimColor:!0,children:Pw}):null,g?ti(b,{color:f.colors.accent,bold:!0,children:g}):null]}):null]})},"TranscriptModeFooter");import{jsx as Bj,jsxs as Fj}from"react/jsx-runtime";var GM=o(({banner:e,...t})=>Fj(M,{flexDirection:"column",children:[e,Bj(go,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as Hj,jsxs as Wj}from"react/jsx-runtime";var KM=o(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...i})=>Wj(M,{flexDirection:"column",children:[e,Hj(Em,{...i,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as jj,jsx as Uj}from"react/jsx-runtime";var zM=o(({text:e,tone:t="success"})=>{let n=e?.trim();if(!n)return null;let r=ae("dark"),i=t==="warning"?r.colors.warning:r.colors.accent,s=t==="warning"?"!":"\u2713";return Uj(M,{paddingX:1,backgroundColor:r.colors.inputBackground,children:jj(b,{color:i,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as Ro,Fragment as Vj,jsxs as Ow}from"react/jsx-runtime";var Gj=" \u23BF ";function Kj(e){let t=ae("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(Kj,"resolveSymbolColor");var zj=o(({row:e})=>{let t=Kj(e.symbolColor),n=e.kind!=="item";return Ow(M,{flexDirection:"row",children:[Ro(b,{color:t,bold:e.isActive,children:e.symbol}),Ro(b,{children:" "}),Ro(b,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?Ow(Vj,{children:[Ro(b,{children:" "}),Ro(b,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),XM=o(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=ae("dark").colors.dim;return Ow(M,{flexDirection:"row",children:[Ro(b,{color:t,children:Gj}),Ro(M,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>Ro(zj,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");import{jsx as id,jsxs as Xj}from"react/jsx-runtime";var YM=Lv;function Yj(e){let t=ae("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(Yj,"resolveSymbolColor");var qj=o(({row:e})=>{let t=Yj(e.symbolColor);return Xj(M,{flexDirection:"row",children:[id(M,{width:YM,flexShrink:0,children:id(b,{color:t,bold:e.isActive,wrap:"truncate",children:Pv(e.symbol,YM)})}),id(b,{color:e.kind==="hint"?ae("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"WorkflowRunRow");function qM(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}o(qM,"measureWorkflowRunSurfaceRows");var JM=o(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:id(M,{flexDirection:"column",flexGrow:1,children:e.rows.map((t,n)=>id(qj,{row:t},`${t.kind}-${t.id??n}`))}),"WorkflowRunSurface");var QM=6;var Jj=1;function ZM(e){return ie("todo.progress",{completed:e.completedCount,total:e.totalCount})}o(ZM,"formatTodoPlanProgressText");function e_(e){if(!e.shouldRender||e.rows.length===0)return[];let t=[ie("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(e_,"formatTodoPlanViewModelForTranscript");var t_="\u2610",Qj="\u25CF",n_="\u2713",Zj="\u2717",e2="\u2298",t2="\u2612";function n2(e){switch(e){case"in_progress":return{symbol:Qj,color:"cyan"};case"completed":return{symbol:n_,color:"green"};case"failed":return{symbol:Zj,color:"red"};case"skipped":return{symbol:e2,color:"gray"};case"cancelled":return{symbol:t2,color:"gray"};default:return{symbol:t_,color:"dim"}}}o(n2,"symbolForStatus");function r2(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(r2,"pickAnchorIndex");function i2(e){let{symbol:t,color:n}=n2(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(i2,"buildItemRow");function o2(e){return{kind:"summary_done",symbol:n_,symbolColor:"green",text:ie("todo.summary.done",{count:e}),isActive:!1,summaryCount:e}}o(o2,"buildDoneSummary");function $w(e){return{kind:"summary_pending",symbol:t_,symbolColor:"dim",text:ie("todo.summary.more",{count:e}),isActive:!1,summaryCount:e}}o($w,"buildPendingSummary");function s2(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}o(s2,"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 r_(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<Jj)return i([],!1);t.now,t.lastAllCompletedAt;let s=r2(e),a=a2(e,s),c=new Set(a.visibleIdx),l=s2(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 C=u[g];if(C!==s&&e[C].status==="pending"){m=g;break}}if(m>=0){let g=u[m];u[m]=l,p+=1,u.sort((T,v)=>T-v);let C=u[0],w=0;for(let T=0;T<C;T++)e[T].status==="completed"&&w++;f=w}}let h=[];f>0&&h.push(o2(f));for(let m of u)h.push(i2(e[m]));if(p>0&&h.push($w(p)),h.length>QM)for(;h.length>QM;){let m=!1;for(let g=h.length-1;g>=0;g--){let C=h[g];if(C.kind==="item"&&!C.isActive){h.splice(g,1);let w=h[h.length-1];if(w&&w.kind==="summary_pending"){let T=(w.summaryCount??0)+1;h[h.length-1]=$w(T)}else h.push($w(1));m=!0;break}}if(!m)break}return i(h,!0)}o(r_,"buildTodoPlanViewModel");function i_(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(i_,"buildFooterHeaderViewModel");function Ih(e,t,n,r){if(r?.contextKind==="child")return null;let i=n?.preCompactionMessages?qe([...n.preCompactionMessages],e):e;return n?.anchor?Af(i,t,n.anchor,n.postCompactAttachments??[]):qe(t,i)}o(Ih,"prepareRootCompactionLineage");function o_(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(o_,"withSessionHistoryReadBarrier");function s_(){let e=Promise.resolve();return t=>{let n=e.then(t);return e=n.then(()=>{},()=>{}),n}}o(s_,"createConfirmationDialogQueue");function c2(e){return ev(e.provider,e.model,"off",{longRunning:!0})}o(c2,"evaluateSessionTransitionPolicy");function l2(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(l2,"formatSessionTransitionGuardMessage");function ko(e,t,n){let r=c2(e);if(!r||r.status==="allow")return!0;let[i,...s]=l2(t,r);return n(r.status,i,s),r.status!=="block"}o(ko,"enforceSessionTransitionGuard");function u2(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(u2,"summarizeEntry");function a_(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} ${u2(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,f)=>{a_(u,l,f===e.children.length-1,r)})}o(a_,"formatNode");function vh(e){let t=[];return e.forEach((n,r)=>{a_(n,"",r===e.length-1,t)}),t}o(vh,"formatSessionTree");function c_(e,t){return e!==null&&e.attempt===t.attempt&&e.maxAttempts===t.maxAttempts&&e.waitMs===t.delayMs}o(c_,"isDuplicateLegacyRateLimit");var d2=100,f2=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,u_=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,d_=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,f_=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function Oc(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}o(Oc,"readString");function fn(e,t,n){n&&e.push({label:t,value:n})}o(fn,"pushField");function p2(e){return e.replace(/\s+/g," ").trim()}o(p2,"normalizeWhitespace");function m2(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(m2,"truncateMiddle");function h2(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(h2,"maskSensitiveSegments");function l_(e){return m2(h2(p2(e)),d2)}o(l_,"summarizeCommand");function g2(e){return Hl(e)?ie("intent.read"):u_.test(e)?ie("intent.delete"):d_.test(e)?ie("intent.deps"):xi(e)||f_.test(e)?ie("intent.modify"):ie("intent.execute")}o(g2,"classifyShellIntent");function y2(e){let t=[];return u_.test(e)?t.push(ie("risk.destructive")):d_.test(e)?t.push(ie("risk.deps")):xi(e)||f_.test(e)?t.push(ie("risk.modify")):Hl(e)||t.push(ie("risk.unknown")),f2.test(e)&&t.push(ie("risk.network")),t}o(y2,"classifyShellRisks");function S2(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}o(S2,"readSignals");function w2(e){if(e){if(e.some(t=>t.kind==="protected_path"))return ie("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return ie("scope.outside")}}o(w2,"scopeFromSignals");function x2(e){if(e._outsideProject===!0)return ie("scope.outside");if(e._alwaysConfirm===!0)return ie("scope.protected")}o(x2,"scopeFromMarkers");function T2(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(ie("risk.destructive")):r&&t.push(ie("risk.modify")),e.some(i=>i.kind==="network")&&t.push(ie("risk.network")),e.some(i=>i.kind==="package_install")&&t.push(ie("risk.deps")),t}o(T2,"risksFromSignals");var C2={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function I2(e){return ie(C2[e])}o(I2,"localizeFieldLabel");function $c(e,t){return{title:e,fields:t,details:t.map(n=>`${I2(n.label)}: ${n.value}`)}}o($c,"buildDisplayFromFields");function bh(e,t){if(e==="confirm"){let l=Oc(t._message);if(l)return $c(l,[])}if(e==="exit_plan_mode"){let l=Oc(t.plan),u="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:u,fields:[],details:l.split(`
101
+ `)}:$c(u,[])}let n=[],r=Oc(t.path),i=Oc(t.command),s=Oc(t._reason)??Oc(t.justification),a=S2(t._classifierSignals),c=w2(a)??x2(t);switch(fn(n,"Reason",s),e){case"bash":case"shell_command":{if(i){fn(n,"Intent",g2(i)),fn(n,"Scope",c);let l=T2(a),u=l.length>0?l:y2(i);u.length>0&&fn(n,"Risk",u.join("; ")),fn(n,"Summary",l_(i))}else fn(n,"Scope",c);return $c(e==="bash"?ie("tool.bash.title"):ie("tool.shell.title"),n)}case"write":return fn(n,"Intent",ie("intent.write_file")),fn(n,"Target",r),fn(n,"Scope",c),$c(ie("tool.write.title"),n);case"edit":return fn(n,"Intent",ie("intent.edit_file")),fn(n,"Target",r),fn(n,"Scope",c),$c(ie("tool.edit.title"),n);default:return fn(n,"Intent",ie("intent.use_tool",{tool:e})),fn(n,"Target",r),fn(n,"Scope",c),i&&fn(n,"Summary",l_(i)),$c(ie("tool.generic.title",{tool:e}),n)}}o(bh,"buildToolConfirmationDisplay");function p_(e,t){let n=bh(e,t);return n.details.length>0?`${n.title}
102
102
  ${n.details.join(`
103
- `)}`:n.title}o(c_,"buildToolConfirmationPrompt");function l_(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}o(l_,"truncateToolPreview");function u_(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}o(u_,"truncateToolOutputPreview");function Nw(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}o(Nw,"stripToolRolePrefix");function Ow(e){return Nw(e).toLowerCase()}o(Ow,"normalizeToolNameForMatch");function Dw(e){return e===`[${ie("managed.completed")}]`||e===`[${ie("managed.completed.blocked")}]`||e===`[${ie("managed.completed.continuation")}]`}o(Dw,"isCompletionTranscriptItem");function Rh(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(Rh,"formatManagedLiveActivityLabel");function Oi(e,t){return Rh(`[Tools] ${am(e)}`,t)??`[Tools] ${am(e)}`}o(Oi,"formatManagedLiveToolLabel");function kh(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(kh,"areManagedLiveItemsEquivalent");function d_(e){return e==="Task completed"?ie("managed.completed"):e==="Task needs continuation"?ie("managed.completed.continuation"):e==="Task ended: blocked"?ie("managed.completed.blocked"):e==="Task ended: needs_continuation"?ie("managed.completed.continuation"):e.startsWith("Task ended:")?ie("managed.completed.blocked"):e}o(d_,"localizeManagedCompletionSummary");function f_(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(f_,"mergeLiveThinkingContent");function Oc(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(Oc,"formatManagedTaskBreadcrumb");var p_=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function m_(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 d=i.kind==="completed";if(d&&!p_)return r;let p=d?`[${d_(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"?"!":d?"\u2713":">",...h!==m?{compactText:h}:{}},persistToHistory:u}),r},[]);if(e.phase==="completed"&&!p_)return[];let t=Oc(e),n=Oc(e,{expanded:!0})??t;return!t||!n?[]:[{item:{id:`managed-live-fallback-${e.phase??"worker"}-${t.toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48)}`,type:"event",timestamp:Date.now(),text:n,icon:">",...t!==n?{compactText:t}:{}},persistToHistory:e.persistToHistory??!1}]}o(m_,"buildManagedLiveEventDrafts");function d2(e,t,n){return e.role!=="evaluator"?!1:e.signal==="COMPLETE"?!t:n}o(d2,"shouldFilterSidecarEvidenceEntry");function h_(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()??"",C=h.includes("Orchestration cancelled"),w=m.includes("Orchestration cancelled"),T=!g||m==="No textual output produced.";return p.status!=="completed"&&(C||w||T)||(C||w)&&T},"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=>!d2(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?Da(h):"",C=m?Da(m):"",w=p.role==="scout"?C?`Scout completed: ${C}`:"Scout completed.":C;return{entry:p,text:C||g||w}}).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}`}]
104
- ${h}`}),d=n.verdict.disposition==="complete"?ie("managed.completed"):n.verdict.disposition==="needs_continuation"?ie("managed.completed.continuation"):n.verdict.disposition==="blocked"?ie("managed.completed.blocked"):void 0;return[...u,...d?[`[${d}]`]:[]]}o(h_,"buildManagedTaskTranscriptItems");function g_(e){let r=e.slice(0,400).match(new RegExp("\\*\\*([^*\\n]{1,80}?)\\*\\*"))?.[1]?.trim();return r?{header:r}:{}}o(g_,"extractBoldHeader");var Bw=[" \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 yt from"chalk";var Eh=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 ")}},ni=o(()=>Eh.getInstance(),"getShortcutsRegistry");import{useEffect as f2,useCallback as p2,useRef as m2}from"react";function Di(e,t,n={}){let{context:r,isActive:i=!0}=n,s=ni(),a=m2(t);a.current=t,f2(()=>(s.setHandler(e,u=>a.current(u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=p2(u=>{if(!i)return!1;let p=s.getAllShortcuts().find(C=>C.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=h2(e,s);Un(c,{isActive:i,priority:l})}o(Di,"useShortcut");function h2(e,t){let r=t.getAllShortcuts().find(i=>i.definition.id===e);return r?r.definition.priority:0}o(h2,"getShortcutPriority");import g2,{createContext as y2,useContext as S2,useState as y_,useCallback as Fw}from"react";var S_=y2(null);function Hw({children:e,initialContext:t="input"}){let[n,r]=y_(!1),[i,s]=y_(t);ni().registerAll(La);let c=Fw(()=>{r(p=>!p)},[]),l=Fw(()=>{let h=ni().getAllShortcuts(),m={global:[],mode:[],navigation:[],editing:[]};for(let g of h){let C=g.definition.category;m[C]||(m[C]=[]),m[C].push(g)}return m},[]),u=Fw(()=>ni().getShortcutsByContext(i),[i]),d={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:i,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return g2.createElement(S_.Provider,{value:d},e)}o(Hw,"ShortcutsProvider");function Ww(){let e=S2(S_);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}o(Ww,"useShortcutsContext");import w2 from"chalk";var w_={off:0,minimal:1,low:2,medium:3,high:4,xhigh:5,max:6,auto:7};function x2(e,t){let n=e.indexOf(t);if(n!==-1)return n;let r=w_[t];if(r===void 0)return-1;let i=-1,s=-1;for(let a=0;a<e.length;a++){let c=w_[e[a]];c===void 0||c>r||c>s&&(s=c,i=a)}return i}o(x2,"nearestCycleIndex");function jw({currentConfig:e,setCurrentConfig:t,isLoading:n,abort:r,stopThinking:i,clearThinkingContent:s,setCurrentTool:a,setIsLoading:c,onToggleHelp:l,setShowHelp:u,onSetThinking:d,onSetReasoningMode:p,onToggleTranscriptMode:h,onOpenTranscriptSearch:m,canOpenTranscriptSearch:g=!0,isInteractiveDialogActive:C=!1,onSetAgentMode:w,onSetPermissionMode:T,isInputEmpty:v,onSavePermissionMode:_}){let P=o(k=>k?.name?.toLowerCase()==="c"&&k.ctrl===!0,"isCtrlCInterrupt");return Di("interrupt",k=>P(k)&&n?(r(),i(),s(),a(void 0),c(!1),console.log(w2.yellow(`
105
- [Interrupted]`)),!0):!1,{isActive:n}),Di("showHelp",()=>C?!1:v?(l(),!0):!1,{isActive:v}),Di("toggleThinking",()=>{if(C)return!1;let k=ev(e.provider,e.model);if(k.length===0)return!1;let E=e.permissionMode==="plan"&&!e.effortOverride&&e.planModeEffort!==void 0?e.planModeEffort:e.effortOverride?e.effort:void 0,B=x2(k,E===void 0||E==="auto"?"auto":E==="none"?"off":E),O=k[(B+1)%k.length]??k[0],G=O==="auto"?void 0:O==="off"?"none":O,re=O!=="auto",X=O!=="off",y=O==="off"?"off":"auto";return t(A=>({...A,effort:G,effortOverride:re,thinking:X,reasoningMode:y})),Zo({effort:G,thinking:X,reasoningMode:y}),p?.(y),d?.(X),u(!1),!0}),Di("toggleTranscriptMode",()=>C?!1:(h?.(),u(!1),!0)),Di("openTranscriptSearch",()=>C||!g?!1:(m?.(),u(!1),!0)),Di("togglePermissionMode",()=>{if(C)return!1;let k=["plan","accept-edits","auto"],E=e.permissionMode==="auto-in-project"?"auto":e.permissionMode,B=(k.indexOf(E)+1)%k.length,O=k[B];return t(G=>({...G,permissionMode:O})),T?.(O),_?.(O),u(!1),!0}),Di("toggleAgentMode",()=>{if(C)return!1;let k=Cv(e.agentMode);return t(E=>({...E,agentMode:k})),Zo({agentMode:k}),w?.(k),u(!1),!0}),null}o(jw,"GlobalShortcuts");import{exec as T2}from"child_process";import{promisify as C2}from"util";var I2=C2(T2),v2={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function x_(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(x_,"splitTopLevelCommaList");function b2(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:x_(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=v2[i[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=i[2]?x_(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(b2,"parseAllowedTools");function R2(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}o(R2,"wildcardToRegExp");function T_(e,t){return R2(e).test(t)}o(T_,"matchesPattern");function C_(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=>T_(a,i)))}o(C_,"isToolAllowed");function k2(e,t){return e.matcher?T_(e.matcher,t):!0}o(k2,"hookMatches");function E2(e){let t=e.source==="skill"?"skill":e.source==="extension"?"extension command":"command";return[`Note: ${e.displayName} has model invocation disabled.`,`The ${t} content is shown below for manual use:`,"",`--- ${e.displayName} ---`,e.prompt,`--- end ${e.displayName} ---`].join(`
106
- `)}o(E2,"formatManualOutput");function M2(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(M2,"resolveModelOverride");async function _2(e,t,n,r,i,s){let a=typeof n.displayName=="string"?n.displayName:"frontmatter invocation",c={command:t.command,_reason:`Frontmatter hook ${e} for ${a}`,_frontmatterHook:!0,_hookEvent:e,_hookMatcher:t.matcher};if(!C_(s,"bash",c))return{allow:!1,message:`Hook ${e} for ${a} is blocked by allowed-tools policy.`};if(i.beforeToolExecute&&!await i.beforeToolExecute("bash",c))return{allow:!1,message:`Hook ${e} for ${a} was blocked by the current permission policy.`};try{let{stdout:l,stderr:u}=await I2(t.command,{env:{...process.env,KODAX_HOOK_EVENT:e,KODAX_HOOK_PAYLOAD:JSON.stringify(n)},maxBuffer:1048576,windowsHide:!0}),d=[l.trim(),u.trim()].filter(Boolean).join(`
107
- `);d&&i.onToolResult?.({id:`frontmatter-hook:${e}`,name:"bash",content:d}),u.trim()&&await r(`[Hook ${e} stderr] ${u.trim()}`);let p=l.trim();if(!p)return{};try{let h=JSON.parse(p);return{allow:typeof h.allow=="boolean"?h.allow:typeof h.continue=="boolean"?h.continue:void 0,message:typeof h.message=="string"?h.message:void 0,additionalContext:typeof h.additionalContext=="string"?h.additionalContext:typeof h.additional_context=="string"?h.additional_context:void 0}}catch{return{message:p,additionalContext:p}}}catch(l){return await r(`[Hook ${e} failed] ${l instanceof Error?l.message:String(l)}`),{}}}o(_2,"executeHookCommand");async function Dc(e,t,n,r,i,s,a){let c=e?.[t];if(!c||c.length===0)return{};let l={};for(let u of c){if(!k2(u,n))continue;let d=await _2(t,u,r,i,s,a);if(d.message&&await i(`[Hook ${t}] ${d.message}`),d.additionalContext&&(l.additionalContext=l.additionalContext?`${l.additionalContext}
108
- ${d.additionalContext}`:d.additionalContext),d.allow===!1){l.allow=!1;break}}return l}o(Dc,"runHooks");async function Mh(e,t,n,r){if(t.disableModelInvocation)return{mode:"manual",manualOutput:E2(t),finalize:o(async()=>{},"finalize")};let i=e.events??{},s=b2(t.allowedTools),a=M2(e.provider,t.model),c=!1,l=o(async w=>{if(r(w),!(c||!t.hooks?.Notification?.length)){c=!0;try{await Dc(t.hooks,"Notification",w,{displayName:t.displayName,source:t.source,path:t.path,message:w},async T=>{r(T)},i,s)}finally{c=!1}}},"emitWithNotifications");t.model&&!a&&await l(`[Info] Model preference '${t.model}' is not supported by provider '${e.provider}', using the current model.`),s.invalidEntries.length>0&&await l(`[Warning] ${t.displayName} has invalid allowed-tools entries: ${s.invalidEntries.join(", ")}`),s.configured&&s.rules.length===0&&await l(`[Warning] ${t.displayName} has no valid allowed-tools entries, so all tool execution will be blocked.`);let u=await Dc(t.hooks,"SessionStart",t.displayName,{displayName:t.displayName,source:t.source,path:t.path},l,i,s);if(u.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped before execution.`,finalize:o(async()=>{},"finalize")};let d=await Dc(t.hooks,"UserPromptSubmit",n,{displayName:t.displayName,source:t.source,prompt:n,path:t.path},l,i,s);if(d.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped by a UserPromptSubmit hook.`,finalize:o(async()=>{},"finalize")};let p=[t.agent?`Preferred agent: ${t.agent}`:void 0,u.additionalContext,d.additionalContext].filter(w=>typeof w=="string"&&w.trim().length>0),h=[p.length>0?p.join(`
103
+ `)}`:n.title}o(p_,"buildToolConfirmationPrompt");function m_(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}o(m_,"truncateToolPreview");function h_(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}o(h_,"truncateToolOutputPreview");function Nw(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}o(Nw,"stripToolRolePrefix");function Dw(e){return Nw(e).toLowerCase()}o(Dw,"normalizeToolNameForMatch");function Bw(e){return e===`[${ie("managed.completed")}]`||e===`[${ie("managed.completed.blocked")}]`||e===`[${ie("managed.completed.continuation")}]`}o(Bw,"isCompletionTranscriptItem");function Rh(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(Rh,"formatManagedLiveActivityLabel");function Ni(e,t){return Rh(`[Tools] ${am(e)}`,t)??`[Tools] ${am(e)}`}o(Ni,"formatManagedLiveToolLabel");function kh(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(kh,"areManagedLiveItemsEquivalent");function g_(e){return e==="Task completed"?ie("managed.completed"):e==="Task needs continuation"?ie("managed.completed.continuation"):e==="Task ended: blocked"?ie("managed.completed.blocked"):e==="Task ended: needs_continuation"?ie("managed.completed.continuation"):e.startsWith("Task ended:")?ie("managed.completed.blocked"):e}o(g_,"localizeManagedCompletionSummary");function y_(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(y_,"mergeLiveThinkingContent");function Nc(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(Nc,"formatManagedTaskBreadcrumb");var S_=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function w_(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&&!S_)return r;let p=f?`[${g_(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"&&!S_)return[];let t=Nc(e),n=Nc(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(w_,"buildManagedLiveEventDrafts");function v2(e,t,n){return e.role!=="evaluator"?!1:e.signal==="COMPLETE"?!t:n}o(v2,"shouldFilterSidecarEvidenceEntry");function x_(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()??"",C=h.includes("Orchestration cancelled"),w=m.includes("Orchestration cancelled"),T=!g||m==="No textual output produced.";return p.status!=="completed"&&(C||w||T)||(C||w)&&T},"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=>!v2(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?Da(h):"",C=m?Da(m):"",w=p.role==="scout"?C?`Scout completed: ${C}`:"Scout completed.":C;return{entry:p,text:C||g||w}}).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}`}]
104
+ ${h}`}),f=n.verdict.disposition==="complete"?ie("managed.completed"):n.verdict.disposition==="needs_continuation"?ie("managed.completed.continuation"):n.verdict.disposition==="blocked"?ie("managed.completed.blocked"):void 0;return[...u,...f?[`[${f}]`]:[]]}o(x_,"buildManagedTaskTranscriptItems");function T_(e){let r=e.slice(0,400).match(new RegExp("\\*\\*([^*\\n]{1,80}?)\\*\\*"))?.[1]?.trim();return r?{header:r}:{}}o(T_,"extractBoldHeader");var Fw=[" \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 yt from"chalk";var Eh=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 ")}},ni=o(()=>Eh.getInstance(),"getShortcutsRegistry");import{useEffect as b2,useCallback as R2,useRef as k2}from"react";function Di(e,t,n={}){let{context:r,isActive:i=!0}=n,s=ni(),a=k2(t);a.current=t,b2(()=>(s.setHandler(e,u=>a.current(u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=R2(u=>{if(!i)return!1;let p=s.getAllShortcuts().find(C=>C.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=E2(e,s);Un(c,{isActive:i,priority:l})}o(Di,"useShortcut");function E2(e,t){let r=t.getAllShortcuts().find(i=>i.definition.id===e);return r?r.definition.priority:0}o(E2,"getShortcutPriority");import M2,{createContext as _2,useContext as A2,useState as C_,useCallback as Hw}from"react";var I_=_2(null);function Ww({children:e,initialContext:t="input"}){let[n,r]=C_(!1),[i,s]=C_(t);ni().registerAll(La);let c=Hw(()=>{r(p=>!p)},[]),l=Hw(()=>{let h=ni().getAllShortcuts(),m={global:[],mode:[],navigation:[],editing:[]};for(let g of h){let C=g.definition.category;m[C]||(m[C]=[]),m[C].push(g)}return m},[]),u=Hw(()=>ni().getShortcutsByContext(i),[i]),f={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:i,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return M2.createElement(I_.Provider,{value:f},e)}o(Ww,"ShortcutsProvider");function jw(){let e=A2(I_);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}o(jw,"useShortcutsContext");import L2 from"chalk";var v_={off:0,minimal:1,low:2,medium:3,high:4,xhigh:5,max:6,auto:7};function P2(e,t){let n=e.indexOf(t);if(n!==-1)return n;let r=v_[t];if(r===void 0)return-1;let i=-1,s=-1;for(let a=0;a<e.length;a++){let c=v_[e[a]];c===void 0||c>r||c>s&&(s=c,i=a)}return i}o(P2,"nearestCycleIndex");function Uw({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:C=!1,onSetAgentMode:w,onSetPermissionMode:T,isInputEmpty:v,onSavePermissionMode:A}){let D=o(k=>k?.name?.toLowerCase()==="c"&&k.ctrl===!0,"isCtrlCInterrupt");return Di("interrupt",k=>D(k)&&n?(r(),i(),s(),a(void 0),c(!1),console.log(L2.yellow(`
105
+ [Interrupted]`)),!0):!1,{isActive:n}),Di("showHelp",()=>C?!1:v?(l(),!0):!1,{isActive:v}),Di("toggleThinking",()=>{if(C)return!1;let k=tv(e.provider,e.model);if(k.length===0)return!1;let E=e.permissionMode==="plan"&&!e.effortOverride&&e.planModeEffort!==void 0?e.planModeEffort:e.effortOverride?e.effort:void 0,B=P2(k,E===void 0||E==="auto"?"auto":E==="none"?"off":E),$=k[(B+1)%k.length]??k[0],G=$==="auto"?void 0:$==="off"?"none":$,re=$!=="auto",X=$!=="off",y=$==="off"?"off":"auto";return t(_=>({..._,effort:G,effortOverride:re,thinking:X,reasoningMode:y})),Zo({effort:G,thinking:X,reasoningMode:y}),p?.(y),f?.(X),u(!1),!0}),Di("toggleTranscriptMode",()=>C?!1:(h?.(),u(!1),!0)),Di("openTranscriptSearch",()=>C||!g?!1:(m?.(),u(!1),!0)),Di("togglePermissionMode",()=>{if(C)return!1;let k=["plan","accept-edits","auto"],E=e.permissionMode==="auto-in-project"?"auto":e.permissionMode,B=(k.indexOf(E)+1)%k.length,$=k[B];return t(G=>({...G,permissionMode:$})),T?.($),A?.($),u(!1),!0}),Di("toggleAgentMode",()=>{if(C)return!1;let k=Iv(e.agentMode);return t(E=>({...E,agentMode:k})),Zo({agentMode:k}),w?.(k),u(!1),!0}),null}o(Uw,"GlobalShortcuts");import{exec as O2}from"child_process";import{promisify as $2}from"util";var N2=$2(O2),D2={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function b_(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(b_,"splitTopLevelCommaList");function B2(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:b_(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=D2[i[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=i[2]?b_(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(B2,"parseAllowedTools");function F2(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}o(F2,"wildcardToRegExp");function R_(e,t){return F2(e).test(t)}o(R_,"matchesPattern");function k_(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=>R_(a,i)))}o(k_,"isToolAllowed");function H2(e,t){return e.matcher?R_(e.matcher,t):!0}o(H2,"hookMatches");function W2(e){let t=e.source==="skill"?"skill":e.source==="extension"?"extension command":"command";return[`Note: ${e.displayName} has model invocation disabled.`,`The ${t} content is shown below for manual use:`,"",`--- ${e.displayName} ---`,e.prompt,`--- end ${e.displayName} ---`].join(`
106
+ `)}o(W2,"formatManualOutput");function j2(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(j2,"resolveModelOverride");async function U2(e,t,n,r,i,s){let a=typeof n.displayName=="string"?n.displayName:"frontmatter invocation",c={command:t.command,_reason:`Frontmatter hook ${e} for ${a}`,_frontmatterHook:!0,_hookEvent:e,_hookMatcher:t.matcher};if(!k_(s,"bash",c))return{allow:!1,message:`Hook ${e} for ${a} is blocked by allowed-tools policy.`};if(i.beforeToolExecute&&!await i.beforeToolExecute("bash",c))return{allow:!1,message:`Hook ${e} for ${a} was blocked by the current permission policy.`};try{let{stdout:l,stderr:u}=await N2(t.command,{env:{...process.env,KODAX_HOOK_EVENT:e,KODAX_HOOK_PAYLOAD:JSON.stringify(n)},maxBuffer:1048576,windowsHide:!0}),f=[l.trim(),u.trim()].filter(Boolean).join(`
107
+ `);f&&i.onToolResult?.({id:`frontmatter-hook:${e}`,name:"bash",content:f}),u.trim()&&await r(`[Hook ${e} stderr] ${u.trim()}`);let p=l.trim();if(!p)return{};try{let h=JSON.parse(p);return{allow:typeof h.allow=="boolean"?h.allow:typeof h.continue=="boolean"?h.continue:void 0,message:typeof h.message=="string"?h.message:void 0,additionalContext:typeof h.additionalContext=="string"?h.additionalContext:typeof h.additional_context=="string"?h.additional_context:void 0}}catch{return{message:p,additionalContext:p}}}catch(l){return await r(`[Hook ${e} failed] ${l instanceof Error?l.message:String(l)}`),{}}}o(U2,"executeHookCommand");async function Dc(e,t,n,r,i,s,a){let c=e?.[t];if(!c||c.length===0)return{};let l={};for(let u of c){if(!H2(u,n))continue;let f=await U2(t,u,r,i,s,a);if(f.message&&await i(`[Hook ${t}] ${f.message}`),f.additionalContext&&(l.additionalContext=l.additionalContext?`${l.additionalContext}
108
+ ${f.additionalContext}`:f.additionalContext),f.allow===!1){l.allow=!1;break}}return l}o(Dc,"runHooks");async function Mh(e,t,n,r){if(t.disableModelInvocation)return{mode:"manual",manualOutput:W2(t),finalize:o(async()=>{},"finalize")};let i=e.events??{},s=B2(t.allowedTools),a=j2(e.provider,t.model),c=!1,l=o(async w=>{if(r(w),!(c||!t.hooks?.Notification?.length)){c=!0;try{await Dc(t.hooks,"Notification",w,{displayName:t.displayName,source:t.source,path:t.path,message:w},async T=>{r(T)},i,s)}finally{c=!1}}},"emitWithNotifications");t.model&&!a&&await l(`[Info] Model preference '${t.model}' is not supported by provider '${e.provider}', using the current model.`),s.invalidEntries.length>0&&await l(`[Warning] ${t.displayName} has invalid allowed-tools entries: ${s.invalidEntries.join(", ")}`),s.configured&&s.rules.length===0&&await l(`[Warning] ${t.displayName} has no valid allowed-tools entries, so all tool execution will be blocked.`);let u=await Dc(t.hooks,"SessionStart",t.displayName,{displayName:t.displayName,source:t.source,path:t.path},l,i,s);if(u.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped before execution.`,finalize:o(async()=>{},"finalize")};let f=await Dc(t.hooks,"UserPromptSubmit",n,{displayName:t.displayName,source:t.source,prompt:n,path:t.path},l,i,s);if(f.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped by a UserPromptSubmit hook.`,finalize:o(async()=>{},"finalize")};let p=[t.agent?`Preferred agent: ${t.agent}`:void 0,u.additionalContext,f.additionalContext].filter(w=>typeof w=="string"&&w.trim().length>0),h=[p.length>0?p.join(`
109
109
 
110
- `):void 0,t.prompt,`User request: ${n}`].filter(w=>typeof w=="string"&&w.trim().length>0),m={...i,beforeToolExecute:o(async(w,T,v)=>C_(s,w,T)?(await Dc(t.hooks,"PreToolUse",w,{tool:w,input:T,displayName:t.displayName,source:t.source,path:t.path},l,i,s)).allow===!1?(await l(`[Blocked] PreToolUse hook blocked '${w}' for ${t.displayName}`),!1):i.beforeToolExecute?await i.beforeToolExecute(w,T,v):!0:(await l(`[Blocked] Tool '${w}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:o((w,T)=>{i.onToolResult?.(w,T),Dc(t.hooks,"PostToolUse",w.name,{...w,displayName:t.displayName,source:t.source,path:t.path},l,i,s)},"onToolResult")},g=!1,C=o(async w=>{g||(g=!0,await Dc(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:w?.message},l,i,s))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:h.join(`
110
+ `):void 0,t.prompt,`User request: ${n}`].filter(w=>typeof w=="string"&&w.trim().length>0),m={...i,beforeToolExecute:o(async(w,T,v)=>k_(s,w,T)?(await Dc(t.hooks,"PreToolUse",w,{tool:w,input:T,displayName:t.displayName,source:t.source,path:t.path},l,i,s)).allow===!1?(await l(`[Blocked] PreToolUse hook blocked '${w}' for ${t.displayName}`),!1):i.beforeToolExecute?await i.beforeToolExecute(w,T,v):!0:(await l(`[Blocked] Tool '${w}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:o((w,T)=>{i.onToolResult?.(w,T),Dc(t.hooks,"PostToolUse",w.name,{...w,displayName:t.displayName,source:t.source,path:t.path},l,i,s)},"onToolResult")},g=!1,C=o(async w=>{g||(g=!0,await Dc(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:w?.message},l,i,s))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:h.join(`
111
111
 
112
- `),options:{...e,modelOverride:a,context:{...e.context,...t.workflowIntent?{workflowIntent:t.workflowIntent}:{},rawUserInput:n,skillInvocation:t.source==="skill"?t.skillInvocation:e.context?.skillInvocation},events:m},finalize:C}}o(Mh,"prepareInvocationExecution");import{appendFileSync as A2,mkdirSync as L2,writeFileSync as P2}from"node:fs";import{join as v_}from"node:path";import I_ from"node:v8";var Gw=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),Kw=Gw>=1,zw=Xo(),b_=v_(zw,"memory-diag.log"),Uw=0,Vw=!1;function R_(){if(!Vw)try{L2(zw,{recursive:!0}),Vw=!0}catch{Vw=!0}}o(R_,"ensureLogDir");function $2(e){R_();try{A2(b_,e+`
113
- `)}catch{}}o($2,"writeLog");function Nt(e){return`${(e/1024/1024).toFixed(2)}MB`}o(Nt,"formatMB");function N2(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}o(N2,"tryGC");function Mt(e){return e?e.length*2:0}o(Mt,"strBytes");function As(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+=As(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+=As(i,t+1);return n}return 16}o(As,"estimateJsonBytes");function k_(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+=k_(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+=As(t.input));for(let[i,s]of Object.entries(t))r.has(i)||(n+=i.length*2+As(s));return n}o(k_,"estimateBlockBytes");function Xw(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+=k_(n);return t}return 200}o(Xw,"estimateMessageBytes");function id(e){let t=128;switch(t+=Mt(e.id)+Mt(e.parentId??void 0)+Mt(e.timestamp),e.type){case"message":return t+Xw(e.message);case"compaction":return t+=Mt(e.summary),t+=Mt(e.firstKeptEntryId),t+=Mt(e.reason),t+=Mt(e.artifactLedgerId),e.details!==void 0&&(t+=As(e.details)),e.memorySeed!==void 0&&(t+=As(e.memorySeed)),t;case"branch_summary":return t+=Mt(e.summary),t+=Mt(e.fromId),e.details!==void 0&&(t+=As(e.details)),t;case"label":return t+=Mt(e.targetId),t+=Mt(e.label),t;case"archive_marker":return t+=Mt(e.archiveBatchId),t+=Mt(e.summary),t+=8,t;case"rewind_marker":return t+=Mt(e.targetId),t+=Mt(e.fromId),t+=Mt(e.summary),t+=8,t;default:return t}}o(id,"estimateEntryBytes");function O2(e){let t={},n=[];for(let i=0;i<e.length;i++){let s=e[i],a=Xw(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(O2,"buildMessageBreakdown");function _h(){return Kw}o(_h,"memDiagEnabled");function Ah(e,t){if(!Kw)return;e==="turn-start"&&Uw++;let n=process.memoryUsage(),r=new Date().toISOString(),i=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${Uw} 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=I_.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)'),N2()){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(Gw>=2)try{let u=v_(zw,`heap-turn${Uw}-${e}.heapsnapshot`);I_.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}$2(s.join(`
114
- `))}o(Ah,"memDiagSnapshot");function Lh(e,t,n){let r=O2(e),i=new Set(e),s=0,a=0,c=0,l=0,u=0,d=0,p=0,h=0,m=0,g=t?.entries??[];for(let v of g)switch(v.type){case"message":m++,i.has(v.message)||(c++,a+=Xw(v.message));break;case"compaction":l++,s+=id(v);break;case"branch_summary":u++,s+=id(v);break;case"label":d++,s+=id(v);break;case"archive_marker":p++,s+=id(v);break;case"rewind_marker":h++,s+=id(v);break}let C=0;for(let v of n.historyItems)C+=Mt(v.text);let w=0;for(let v of n.foregroundItems)w+=Mt(v.text);let T=0;for(let v of n.persistedUiHistory)T+=Mt(v.text);return{messageCount:e.length,messageBytes:r.totalBytes,biggestMessages:r.biggest,lineageEntryCount:g.length,lineageMessageEntryCount:m,lineageCompactionCount:l,lineageBranchSummaryCount:u,lineageLabelCount:d,lineageArchiveMarkerCount:p,lineageRewindMarkerCount:h,lineageNonMessageBytes:s,lineageOrphanMessageBytes:a,lineageOrphanMessageCount:c,historyItemCount:n.historyItems.length,historyTextBytes:C,foregroundItemCount:n.foregroundItems.length,foregroundTextBytes:w,streamingResponseBytes:Mt(n.streamingResponse),streamingThinkingBytes:Mt(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:T}}o(Lh,"buildMemDiagBreakdown");function E_(){if(Kw){R_();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${Gw} 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(`
115
- `);P2(b_,t+`
116
- `)}catch{}}}o(E_,"memDiagReset");import D2 from"node:fs";import qw from"node:path";var B2={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},F2=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function H2(e){return B2[qw.extname(e).toLowerCase()]}o(H2,"resolveImageMediaType");var Yw="[Image unavailable]";function W2(e){return""}o(W2,"buildImageAnchor");function Bc(e,t){let n=[],r=[],i=new Set,s=new Map,a=new Set,c=[],l=0;for(let d of e.matchAll(F2)){let p=d.index??l;c.push(e.slice(l,p));let h=d[1]??d[2]??d[3];if(!h){c.push(d[0]),l=p+d[0].length;continue}let m=H2(h);if(!m){c.push(d[0]),l=p+d[0].length;continue}let g=qw.resolve(t,h);try{if(!D2.statSync(g).isFile()){a.has(g)||(r.push(`[Image input skipped] ${h} is not a file.`),a.add(g)),c.push(Yw),l=p+d[0].length;continue}}catch{a.has(g)||(r.push(`[Image input missing] ${h} was not found from ${t}.`),a.add(g)),c.push(Yw),l=p+d[0].length;continue}if(!i.has(g)){i.add(g);let C=W2(n.length+1);s.set(g,C),n.push({kind:"image",path:g,mediaType:m,source:"user-inline",description:`Attached image ${qw.basename(g)}`})}c.push(s.get(g)??Yw),l=p+d[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:wI(u,n),inputArtifacts:n,warnings:r}}o(Bc,"preparePromptInputArtifacts");function M_(e){let t=j2(e.stage),n=U2(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}o(M_,"createRepoIntelTraceHistoryItem");function j2(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(j2,"stageDisplayName");function U2(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(`${V2(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?G2(e.summary):t.join(" \xB7 ")}o(U2,"buildRepoIntelDetailLine");function V2(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}o(V2,"formatTokens");function G2(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}o(G2,"stripSummaryStagePrefix");function __(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(__,"buildManagedRunContext");var K2=["global","mode","navigation","editing"],z2={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},X2={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},Y2={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 q2(e){let t=ni(),n=t.getAllShortcuts().find(i=>i.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let r=La.find(i=>i.id===e);if(r?.defaultBindings?.length)return t.formatBindings(r.defaultBindings)}o(q2,"resolveShortcutBindingLabel");function J2(e){return`${q2(e.id)??e.id} ${e.name}`}o(J2,"buildMenuItemLabel");function Q2(e){return ni().getAllShortcuts().find(r=>r.definition.id===e)?.definition??La.find(r=>r.id===e)}o(Q2,"resolveShortcutDefinition");function Ph(){return[...K2.map(t=>{let n=z2[t].map(r=>Q2(r)).filter(r=>!!r).map(r=>({id:r.id,label:J2(r)}));return{id:t,title:X2[t],items:n}}).filter(t=>t.items.length>0),Y2]}o(Ph,"buildHelpMenuSections");var Jw=2,A_=1,L_=4;function ht(e,t){let n=xn(e.length>0?e.split(`
117
- `):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}o(ht,"wrapLineCount");function Z2(e,t,n=">"){let r=n.length+1,i=Math.max(20,t-r),s=xn(e.length>0?e.split(`
118
- `):[""],i,0,0);return Math.max(1,s.visualLines.length)+2}o(Z2,"calculateInputPromptRows");function P_(e){let{terminalRows:t,terminalWidth:n,windowedTranscript:r=!1,inputText:i,inputPrompt:s=">",footerHeaderText:a,activitySummary:c,pendingInputSummary:l,stashNoticeSummary:u,notificationSummary:d,statusNoticeSummary:p,workStripText:h,suggestionsReserved:m,suggestionsMode:g="inline",showHelp:C,statusBarText:w,confirmPrompt:T,confirmInstruction:v,uiRequest:_,dialogMode:P="inline",historySearch:k,maxVisibleSelectOptions:E=5,reviewHint:$,todoSurfaceRows:B=0,workflowSurfaceRows:O=0,childActivitySurfaceRows:G=0,activityBarVisible:re=!1}=e,X=Math.max(0,Math.floor(B)),y=Math.max(0,Math.floor(O)),A=Math.max(0,Math.floor(G)),ee=a?ht(a,Math.max(1,n-2)):0,W=c?ht(c,Math.max(1,n-2)):0,le=re?1:W,de=l?ht(l,Math.max(1,n-2)):0,he=u?ht(u,Math.max(1,n-2)):0,_e=d?ht(d,Math.max(1,n-2)):0,fe=p?ht(p,Math.max(1,n-2)):0,Te=h?ht(h,Math.max(1,n-2)):0,Pe=Z2(i,n,s),te=m?8:0,oe=C?A_+L_+Ph().reduce((Xe,_t)=>Xe+ht(_t.title,Math.max(1,n-Jw))+ht(_t.items.map(Qt=>Qt.label).join(" | "),Math.max(1,n-Jw)),0):0,Ie=ht(w,Math.max(1,n-2)),nt=0;if(T&&v){let Xe=Math.max(1,n-4);nt=3+ht(`[Confirm] ${T}`,Xe)+ht(v,Xe)}let vt=0,Ke=0;if(_){let Xe=Math.max(1,n-4);_.kind==="select"?(Ke=Math.min(E,_.options.length),vt=3+ht(`[Select] ${_.title}`,Xe)+_.options.slice(0,Ke).reduce((_t,Qt,qn)=>_t+ht(`${qn+1}. ${Qt.label}${Qt.description?` - ${Qt.description}`:""}`,Xe),0)+(_.options.length>Ke?2:0)+ht(`Choice: ${_.buffer||"(type a number)"}`,Xe)+1+(_.error?ht(_.error,Xe):0)):vt=3+ht(`[Input] ${_.prompt}`,Xe)+(_.defaultValue!==void 0?ht(`Default: ${_.defaultValue}`,Xe):0)+ht(`Value: ${_.buffer||"(type your response)"}`,Xe)+1+(_.error?ht(_.error,Xe):0)}let Ve=0;if(k){let Xe=Math.max(1,n-4);Ve=3+ht(`Query: ${k.query||"(type to search)"}`,Xe)+(k.matchCount===0?ht("No matches yet",Xe):ht(`${Math.max(1,k.matchCount)} matches`,Xe)+ht(k.selectedExcerpt||"",Xe))+1}let me=$?ht($,Math.max(1,n-2)):0,Re=ee+le+y+X+A+de+he+_e+Pe+oe+fe+me+(g==="inline"?te:0)+(P==="inline"?nt+vt+Ve:0),K=(g==="overlay"?te:0)+(P==="overlay"?nt+vt+Ve:0),We=Re+Te+Ie,St=Math.max(1,t-We);return{messageRows:St,reservedBottomRows:We,headerRows:ee,activityRows:le,pendingInputRows:de,stashNoticeRows:he,notificationRows:_e,workStripRows:Te,inputRows:Pe,suggestionsRows:te,helpRows:oe,statusNoticeRows:fe,statusRows:Ie,confirmRows:nt,uiRequestRows:vt,historySearchRows:Ve,footerRows:Re,overlayRows:K,visibleSelectOptions:Ke,reviewHintRows:me,todoSurfaceRows:X,workflowSurfaceRows:y,childActivitySurfaceRows:A,slots:[{name:"transcript",rows:St},{name:"footer",rows:Re},{name:"overlay",rows:K},{name:"status",rows:Ie},{name:"task-bar",rows:Te}]}}o(P_,"calculateViewportBudget");function $_(e,t={}){let n=ss(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($_,"createTranscriptDisplayState");function N_(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}o(N_,"enterTranscriptMode");function O_(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}o(O_,"exitTranscriptMode");function D_(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}o(D_,"setTranscriptPendingLiveUpdates");function B_(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}o(B_,"setTranscriptScrollAnchor");function F_(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}o(F_,"jumpTranscriptToLatest");function H_(e,t){return{...e,stickyPromptVisible:t}}o(H_,"setTranscriptStickyPromptVisible");function Fc(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}o(Fc,"setTranscriptSelectedItem");function W_(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(W_,"openTranscriptSearch");function j_(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}o(j_,"closeTranscriptSearch");function U_(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}o(U_,"setTranscriptSearchMatchIndex");function V_(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}o(V_,"shouldWindowTranscript");function G_(e){return e.surface==="transcript"}o(G_,"shouldPauseLiveTranscript");function Qw(e){return e.supportsSelection}o(Qw,"ownsTranscriptSelectionPath");function $h(e,t,n){if(!(!Qw(e)||!n))return t.includes(n)?n:void 0}o($h,"resolveTranscriptSelectedItemId");function K_(e){return e.supportsSelection&&e.supportsCopyOnSelect}o(K_,"supportsPassiveTranscriptCopyOnSelect");function z_(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(z_,"buildTranscriptBrowseHint");var X_="Slash commands cannot be queued mid-task. Press Esc twice or Ctrl+C to abort the current task, then run the command.",Y_="slash-guard";function q_(e){return e.trimStart().startsWith("/")}o(q_,"isSlashCommandText");var eU=`
112
+ `),options:{...e,modelOverride:a,context:{...e.context,...t.workflowIntent?{workflowIntent:t.workflowIntent}:{},rawUserInput:n,skillInvocation:t.source==="skill"?t.skillInvocation:e.context?.skillInvocation},events:m},finalize:C}}o(Mh,"prepareInvocationExecution");import{appendFileSync as V2,mkdirSync as G2,writeFileSync as K2}from"node:fs";import{join as M_}from"node:path";import E_ from"node:v8";var Kw=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),zw=Kw>=1,Xw=Xo(),__=M_(Xw,"memory-diag.log"),Vw=0,Gw=!1;function A_(){if(!Gw)try{G2(Xw,{recursive:!0}),Gw=!0}catch{Gw=!0}}o(A_,"ensureLogDir");function z2(e){A_();try{V2(__,e+`
113
+ `)}catch{}}o(z2,"writeLog");function $t(e){return`${(e/1024/1024).toFixed(2)}MB`}o($t,"formatMB");function X2(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}o(X2,"tryGC");function Mt(e){return e?e.length*2:0}o(Mt,"strBytes");function As(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+=As(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+=As(i,t+1);return n}return 16}o(As,"estimateJsonBytes");function L_(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+=L_(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+=As(t.input));for(let[i,s]of Object.entries(t))r.has(i)||(n+=i.length*2+As(s));return n}o(L_,"estimateBlockBytes");function Yw(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+=L_(n);return t}return 200}o(Yw,"estimateMessageBytes");function od(e){let t=128;switch(t+=Mt(e.id)+Mt(e.parentId??void 0)+Mt(e.timestamp),e.type){case"message":return t+Yw(e.message);case"compaction":return t+=Mt(e.summary),t+=Mt(e.firstKeptEntryId),t+=Mt(e.reason),t+=Mt(e.artifactLedgerId),e.details!==void 0&&(t+=As(e.details)),e.memorySeed!==void 0&&(t+=As(e.memorySeed)),t;case"branch_summary":return t+=Mt(e.summary),t+=Mt(e.fromId),e.details!==void 0&&(t+=As(e.details)),t;case"label":return t+=Mt(e.targetId),t+=Mt(e.label),t;case"archive_marker":return t+=Mt(e.archiveBatchId),t+=Mt(e.summary),t+=8,t;case"rewind_marker":return t+=Mt(e.targetId),t+=Mt(e.fromId),t+=Mt(e.summary),t+=8,t;default:return t}}o(od,"estimateEntryBytes");function Y2(e){let t={},n=[];for(let i=0;i<e.length;i++){let s=e[i],a=Yw(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(Y2,"buildMessageBreakdown");function _h(){return zw}o(_h,"memDiagEnabled");function Ah(e,t){if(!zw)return;e==="turn-start"&&Vw++;let n=process.memoryUsage(),r=new Date().toISOString(),i=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${Vw} phase=${e} @${r} \u2550\u2550\u2550`,` V8 heap: used=${$t(n.heapUsed)} total=${$t(n.heapTotal)} rss=${$t(n.rss)} ext=${$t(n.external)}`," \u2500\u2500 Data breakdown \u2500\u2500",` context.messages: ${t.messageCount} msgs, ${$t(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: ${$t(t.lineageNonMessageBytes)} (sidecar payloads)`,` lineage orphan messages: ${t.lineageOrphanMessageCount} msgs, ${$t(t.lineageOrphanMessageBytes)} (in lineage but not in context.messages \u2014 branches/pruned)`,` UI history: ${t.historyItemCount} items, ${$t(t.historyTextBytes)}`,` foreground turn: ${t.foregroundItemCount} items, ${$t(t.foregroundTextBytes)}`,` streaming response: ${$t(t.streamingResponseBytes)}`,` streaming thinking: ${$t(t.streamingThinkingBytes)}`,` persisted UI history: ${t.persistedUiHistoryCount} items, ${$t(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} ${$t(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=E_.getHeapSpaceStatistics();for(let u of c)u.space_used_size>1024*1024&&s.push(` ${u.space_name.padEnd(25)} used=${$t(u.space_used_size)} allocated=${$t(u.space_size)}`);if(s.push(" \u2500\u2500 Summary \u2500\u2500"),s.push(` tracked data total: ${$t(a)}`),s.push(` V8 heap used: ${$t(n.heapUsed)}`),s.push(` unaccounted (overhead): ${$t(n.heapUsed-a)}`),s.push(" (React/Ink tree, provider SDK buffers, module metadata,"),s.push(' tokenizer caches, source maps \u2014 see "Blind spots" note)'),X2()){let u=process.memoryUsage();s.push(` after forced GC: heap=${$t(u.heapUsed)} (freed ${$t(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(Kw>=2)try{let u=M_(Xw,`heap-turn${Vw}-${e}.heapsnapshot`);E_.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}z2(s.join(`
114
+ `))}o(Ah,"memDiagSnapshot");function Lh(e,t,n){let r=Y2(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 v of g)switch(v.type){case"message":m++,i.has(v.message)||(c++,a+=Yw(v.message));break;case"compaction":l++,s+=od(v);break;case"branch_summary":u++,s+=od(v);break;case"label":f++,s+=od(v);break;case"archive_marker":p++,s+=od(v);break;case"rewind_marker":h++,s+=od(v);break}let C=0;for(let v of n.historyItems)C+=Mt(v.text);let w=0;for(let v of n.foregroundItems)w+=Mt(v.text);let T=0;for(let v of n.persistedUiHistory)T+=Mt(v.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:C,foregroundItemCount:n.foregroundItems.length,foregroundTextBytes:w,streamingResponseBytes:Mt(n.streamingResponse),streamingThinkingBytes:Mt(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:T}}o(Lh,"buildMemDiagBreakdown");function P_(){if(zw){A_();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${Kw} 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(`
115
+ `);K2(__,t+`
116
+ `)}catch{}}}o(P_,"memDiagReset");import q2 from"node:fs";import Jw from"node:path";var J2={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},Q2=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function Z2(e){return J2[Jw.extname(e).toLowerCase()]}o(Z2,"resolveImageMediaType");var qw="[Image unavailable]";function eU(e){return""}o(eU,"buildImageAnchor");function Bc(e,t){let n=[],r=[],i=new Set,s=new Map,a=new Set,c=[],l=0;for(let f of e.matchAll(Q2)){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=Z2(h);if(!m){c.push(f[0]),l=p+f[0].length;continue}let g=Jw.resolve(t,h);try{if(!q2.statSync(g).isFile()){a.has(g)||(r.push(`[Image input skipped] ${h} is not a file.`),a.add(g)),c.push(qw),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(qw),l=p+f[0].length;continue}if(!i.has(g)){i.add(g);let C=eU(n.length+1);s.set(g,C),n.push({kind:"image",path:g,mediaType:m,source:"user-inline",description:`Attached image ${Jw.basename(g)}`})}c.push(s.get(g)??qw),l=p+f[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:xI(u,n),inputArtifacts:n,warnings:r}}o(Bc,"preparePromptInputArtifacts");function O_(e){let t=tU(e.stage),n=nU(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}o(O_,"createRepoIntelTraceHistoryItem");function tU(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(tU,"stageDisplayName");function nU(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(`${rU(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?iU(e.summary):t.join(" \xB7 ")}o(nU,"buildRepoIntelDetailLine");function rU(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}o(rU,"formatTokens");function iU(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}o(iU,"stripSummaryStagePrefix");function $_(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($_,"buildManagedRunContext");var oU=["global","mode","navigation","editing"],sU={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},aU={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 lU(e){let t=ni(),n=t.getAllShortcuts().find(i=>i.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let r=La.find(i=>i.id===e);if(r?.defaultBindings?.length)return t.formatBindings(r.defaultBindings)}o(lU,"resolveShortcutBindingLabel");function uU(e){return`${lU(e.id)??e.id} ${e.name}`}o(uU,"buildMenuItemLabel");function dU(e){return ni().getAllShortcuts().find(r=>r.definition.id===e)?.definition??La.find(r=>r.id===e)}o(dU,"resolveShortcutDefinition");function Ph(){return[...oU.map(t=>{let n=sU[t].map(r=>dU(r)).filter(r=>!!r).map(r=>({id:r.id,label:uU(r)}));return{id:t,title:aU[t],items:n}}).filter(t=>t.items.length>0),cU]}o(Ph,"buildHelpMenuSections");var Qw=2,N_=1,D_=4;function ht(e,t){let n=xn(e.length>0?e.split(`
117
+ `):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}o(ht,"wrapLineCount");function fU(e,t,n=">"){let r=n.length+1,i=Math.max(20,t-r),s=xn(e.length>0?e.split(`
118
+ `):[""],i,0,0);return Math.max(1,s.visualLines.length)+2}o(fU,"calculateInputPromptRows");function B_(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:C,statusBarText:w,confirmPrompt:T,confirmInstruction:v,uiRequest:A,dialogMode:D="inline",historySearch:k,maxVisibleSelectOptions:E=5,reviewHint:P,todoSurfaceRows:B=0,workflowSurfaceRows:$=0,childActivitySurfaceRows:G=0,activityBarVisible:re=!1}=e,X=Math.max(0,Math.floor(B)),y=Math.max(0,Math.floor($)),_=Math.max(0,Math.floor(G)),ee=a?ht(a,Math.max(1,n-2)):0,W=c?ht(c,Math.max(1,n-2)):0,le=re?1:W,de=l?ht(l,Math.max(1,n-2)):0,he=u?ht(u,Math.max(1,n-2)):0,_e=f?ht(f,Math.max(1,n-2)):0,fe=p?ht(p,Math.max(1,n-2)):0,Te=h?ht(h,Math.max(1,n-2)):0,Pe=fU(i,n,s),te=m?8:0,oe=C?N_+D_+Ph().reduce((Xe,_t)=>Xe+ht(_t.title,Math.max(1,n-Qw))+ht(_t.items.map(Qt=>Qt.label).join(" | "),Math.max(1,n-Qw)),0):0,Ie=ht(w,Math.max(1,n-2)),nt=0;if(T&&v){let Xe=Math.max(1,n-4);nt=3+ht(`[Confirm] ${T}`,Xe)+ht(v,Xe)}let vt=0,Ke=0;if(A){let Xe=Math.max(1,n-4);A.kind==="select"?(Ke=Math.min(E,A.options.length),vt=3+ht(`[Select] ${A.title}`,Xe)+A.options.slice(0,Ke).reduce((_t,Qt,qn)=>_t+ht(`${qn+1}. ${Qt.label}${Qt.description?` - ${Qt.description}`:""}`,Xe),0)+(A.options.length>Ke?2:0)+ht(`Choice: ${A.buffer||"(type a number)"}`,Xe)+1+(A.error?ht(A.error,Xe):0)):vt=3+ht(`[Input] ${A.prompt}`,Xe)+(A.defaultValue!==void 0?ht(`Default: ${A.defaultValue}`,Xe):0)+ht(`Value: ${A.buffer||"(type your response)"}`,Xe)+1+(A.error?ht(A.error,Xe):0)}let Ve=0;if(k){let Xe=Math.max(1,n-4);Ve=3+ht(`Query: ${k.query||"(type to search)"}`,Xe)+(k.matchCount===0?ht("No matches yet",Xe):ht(`${Math.max(1,k.matchCount)} matches`,Xe)+ht(k.selectedExcerpt||"",Xe))+1}let me=P?ht(P,Math.max(1,n-2)):0,Re=ee+le+y+X+_+de+he+_e+Pe+oe+fe+me+(g==="inline"?te:0)+(D==="inline"?nt+vt+Ve:0),K=(g==="overlay"?te:0)+(D==="overlay"?nt+vt+Ve:0),We=Re+Te+Ie,St=Math.max(1,t-We);return{messageRows:St,reservedBottomRows:We,headerRows:ee,activityRows:le,pendingInputRows:de,stashNoticeRows:he,notificationRows:_e,workStripRows:Te,inputRows:Pe,suggestionsRows:te,helpRows:oe,statusNoticeRows:fe,statusRows:Ie,confirmRows:nt,uiRequestRows:vt,historySearchRows:Ve,footerRows:Re,overlayRows:K,visibleSelectOptions:Ke,reviewHintRows:me,todoSurfaceRows:X,workflowSurfaceRows:y,childActivitySurfaceRows:_,slots:[{name:"transcript",rows:St},{name:"footer",rows:Re},{name:"overlay",rows:K},{name:"status",rows:Ie},{name:"task-bar",rows:Te}]}}o(B_,"calculateViewportBudget");function F_(e,t={}){let n=ss(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(F_,"createTranscriptDisplayState");function H_(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}o(H_,"enterTranscriptMode");function W_(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}o(W_,"exitTranscriptMode");function j_(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}o(j_,"setTranscriptPendingLiveUpdates");function U_(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}o(U_,"setTranscriptScrollAnchor");function V_(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}o(V_,"jumpTranscriptToLatest");function G_(e,t){return{...e,stickyPromptVisible:t}}o(G_,"setTranscriptStickyPromptVisible");function Fc(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}o(Fc,"setTranscriptSelectedItem");function K_(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(K_,"openTranscriptSearch");function z_(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}o(z_,"closeTranscriptSearch");function X_(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}o(X_,"setTranscriptSearchMatchIndex");function Y_(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}o(Y_,"shouldWindowTranscript");function q_(e){return e.surface==="transcript"}o(q_,"shouldPauseLiveTranscript");function Zw(e){return e.supportsSelection}o(Zw,"ownsTranscriptSelectionPath");function Oh(e,t,n){if(!(!Zw(e)||!n))return t.includes(n)?n:void 0}o(Oh,"resolveTranscriptSelectedItemId");function J_(e){return e.supportsSelection&&e.supportsCopyOnSelect}o(J_,"supportsPassiveTranscriptCopyOnSelect");function Q_(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(Q_,"buildTranscriptBrowseHint");var Z_="Slash commands cannot be queued mid-task. Press Esc twice or Ctrl+C to abort the current task, then run the command.",eA="slash-guard";function tA(e){return e.trimStart().startsWith("/")}o(tA,"isSlashCommandText");var pU=`
119
119
 
120
120
  ---
121
121
 
122
- `;async function J_(e){let{initialPrompt:t,runRound:n,shiftPendingPrompt:r,onRoundComplete:i,onBeforeQueuedRound:s,shouldContinue:a=o(()=>!0,"shouldContinue"),shouldDrainQueuedPrompts:c=o(()=>!0,"shouldDrainQueuedPrompts")}=e,l=t,u=await n(l);for(;;){if(await i?.(u),!a(u)||!c())return u;let d=[];for(;;){let p=r();if(p===void 0)break;let h=typeof p=="string"?p.trim():"";h.length>0&&d.push(h)}if(d.length===0)return u;l=d.length===1?d[0]:d.join(eU),await s?.(l),u=await n(l)}}o(J_,"runQueuedPromptSequence");function Z_(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}o(Z_,"hasTranscriptInputActivity");function tU(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}o(tU,"shouldHandleManagedTranscriptMouse");function Q_(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}o(Q_,"shouldHandleManagedTranscriptWheel");function eA(e){if(tU({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"?Q_({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?Q_({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(eA,"resolveTranscriptPointerAction");function tA(e){return e.isTranscriptMode&&e.hasTextSelection}o(tA,"shouldDeferInterruptToTranscriptSelectionCopy");function nA(e){return e.hasActiveWorkflow?e.ctrl&&e.keyName==="c"?!tA({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection}):e.keyName!=="escape"||e.isTranscriptMode||e.isAwaitingUserInteraction?!1:e.isDoubleEscape&&e.isInputEmpty&&e.pendingInputCount===0:!1}o(nA,"shouldStopWorkflowFromInterruptKey");function rA(e){return e.ctrl&&e.keyName==="c"?tA({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(rA,"resolveStreamingInterruptAction");function iA(e){let{key:t,isTranscriptMode:n,isHistorySearchActive:r,historySearchMatchCount:i,hasTextSelection:s,hasFocusedItem:a,canCopySelectedItem:c,canCopySelectedToolInput:l,canToggleSelectedDetail:u,canCycleTranscriptSelection:d}=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"?d?{kind:"cycle-selection",direction:"prev"}:{kind:"none"}:t.name==="right"?d?{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(iA,"resolveTranscriptKeyboardAction");function oA(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(oA,"executeTranscriptKeyboardAction");function Eo(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(Eo,"stripAnsi");function nU(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
123
- `)}o(nU,"serializeToolGroup");function rU(e){switch(e.type){case"thinking":return null;case"user":return`user: ${Eo(e.text)}`;case"assistant":return`assistant: ${Eo(e.text)}`;case"system":return`system: ${Eo(e.text)}`;case"info":return`info: ${Eo(e.text)}`;case"error":return`error: ${Eo(e.text)}`;case"event":return`event: ${Eo(e.text)}`;case"hint":return`hint: ${Eo(e.text)}`;case"sidecar":return`sidecar: ${Eo(e.text)}`;case"tool_group":return nU(e);default:return e}}o(rU,"serializeOne");function iU(e){let t=[];for(let n of e){let r=rU(n);r!==null&&r!==""&&t.push(r)}return t.join(`
122
+ `;async function nA(e){let{initialPrompt:t,runRound:n,shiftPendingPrompt:r,onRoundComplete:i,onBeforeQueuedRound:s,shouldContinue:a=o(()=>!0,"shouldContinue"),shouldDrainQueuedPrompts:c=o(()=>!0,"shouldDrainQueuedPrompts")}=e,l=t,u=await n(l);for(;;){if(await i?.(u),!a(u)||!c())return u;let f=[];for(;;){let p=r();if(p===void 0)break;let h=typeof p=="string"?p.trim():"";h.length>0&&f.push(h)}if(f.length===0)return u;l=f.length===1?f[0]:f.join(pU),await s?.(l),u=await n(l)}}o(nA,"runQueuedPromptSequence");function iA(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}o(iA,"hasTranscriptInputActivity");function mU(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}o(mU,"shouldHandleManagedTranscriptMouse");function rA(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}o(rA,"shouldHandleManagedTranscriptWheel");function oA(e){if(mU({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"?rA({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?rA({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(oA,"resolveTranscriptPointerAction");function sA(e){return e.isTranscriptMode&&e.hasTextSelection}o(sA,"shouldDeferInterruptToTranscriptSelectionCopy");function aA(e){return e.hasActiveWorkflow?e.ctrl&&e.keyName==="c"?!sA({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection}):e.keyName!=="escape"||e.isTranscriptMode||e.isAwaitingUserInteraction?!1:e.isDoubleEscape&&e.isInputEmpty&&e.pendingInputCount===0:!1}o(aA,"shouldStopWorkflowFromInterruptKey");function cA(e){return e.ctrl&&e.keyName==="c"?sA({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(cA,"resolveStreamingInterruptAction");function lA(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(lA,"resolveTranscriptKeyboardAction");function uA(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(uA,"executeTranscriptKeyboardAction");function Eo(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(Eo,"stripAnsi");function hU(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
123
+ `)}o(hU,"serializeToolGroup");function gU(e){switch(e.type){case"thinking":return null;case"user":return`user: ${Eo(e.text)}`;case"assistant":return`assistant: ${Eo(e.text)}`;case"system":return`system: ${Eo(e.text)}`;case"info":return`info: ${Eo(e.text)}`;case"error":return`error: ${Eo(e.text)}`;case"event":return`event: ${Eo(e.text)}`;case"hint":return`hint: ${Eo(e.text)}`;case"sidecar":return`sidecar: ${Eo(e.text)}`;case"tool_group":return hU(e);default:return e}}o(gU,"serializeOne");function yU(e){let t=[];for(let n of e){let r=gU(n);r!==null&&r!==""&&t.push(r)}return t.join(`
124
124
 
125
- `)}o(iU,"serializeTranscriptForScrollback");function sA(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:i}=e,s=iU(t);r(),s.length>0&&n(`${s}
126
- `),i()}o(sA,"dumpTranscriptToNativeScrollback");var Hc={committed:[],width:0,hasBanner:!1};function aA(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(d=>({plan:{kind:"rebuild",sections:i,reason:d},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 d=0;d<u;d++){let p=r&&d===0;if(n.committed[d].key!==s[d].key)return c(p?"banner-change":"key-order-change");if(n.committed[d].fingerprint!==s[d].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(aA,"planInlineScrollback");import{jsx as PA}from"react/jsx-runtime";import JU from"yoga-layout";import{LegacyRoot as QU}from"react-reconciler/constants.js";import AU from"react-reconciler";import{DefaultEventPriority as LU,NoEventPriority as vA}from"react-reconciler/constants.js";import*as Mo from"scheduler";import xA from"yoga-layout";import{createContext as PU}from"react";import wU from"yoga-layout";import oU from"widest-line";var cA=new Map,sU=o(e=>{if(e.length===0)return{width:0,height:0};let t=cA.get(e);if(t)return t;let n=oU(e),r=e.split(`
127
- `).length,i={width:n,height:r};return cA.set(e,i),i},"measureText"),Zw=sU;import aU from"wrap-ansi";import cU from"cli-truncate";var lA={},lU=o((e,t,n)=>{let r=e+String(t)+String(n),i=lA[r];if(i)return i;let s=e;if(n==="wrap"&&(s=aU(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=cU(e,t,{position:a})}return lA[r]=s,s},"wrapText"),Nh=lU;var uU=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),dU=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"),fA=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),pU=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),pA=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),uA=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!uU(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!dU(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"),dA=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"),mU=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!fA(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!pU(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),hU=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"),gU=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"),ex=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(pA(t))return!0;return!1},"hasAnsiControlCharacters"),Wc=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(!ex(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 Wc(t,e,n,r);if(a==="["){let u=uA(e,r+2);if(u===void 0)return Wc(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=hU(a);if(c!==void 0){let u=dA(e,r+2,c.allowBellTerminator);if(u===void 0)return Wc(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=mU(e,r+1);if(l===void 0){if(fA(a))return Wc(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=uA(e,r+1);if(a===void 0)return Wc(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=gU(i);if(s!==void 0){let a=dA(e,r+1,s.allowBellTerminator);if(a===void 0)return Wc(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(pA(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 yU=/^[\d:;]*$/,SU=o(e=>{if(!ex(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===""&&yU.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),hA=SU;var gA=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=gA(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return hA(t)},"squashTextNodes"),od=gA;var Oh=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:wU.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(xU.bind(null,t)),t},"createNode"),Dh=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")&&Bh(e)},"appendChildNode"),tx=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")&&Bh(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")&&Bh(e)},"removeChildNode"),nx=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),rx=o((e,t)=>{e.style=t},"setStyle"),yA=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return ad(t,e),t},"createTextNode"),xU=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:od(e),r=Zw(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=Nh(n,t,i);return Zw(s)},"measureTextNode"),SA=o(e=>{if(e?.parentNode)return e.yogaNode??SA(e.parentNode)},"findClosestYogaNode"),Bh=o(e=>{SA(e)?.markDirty()},"markNodeAsDirty"),ad=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Bh(e)},"setTextNodeValue");import $e from"yoga-layout";var TU=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?$e.POSITION_TYPE_ABSOLUTE:$e.POSITION_TYPE_RELATIVE)},"applyPositionStyles"),CU=o((e,t)=>{"margin"in t&&e.setMargin($e.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin($e.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin($e.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin($e.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin($e.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin($e.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin($e.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),IU=o((e,t)=>{"padding"in t&&e.setPadding($e.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding($e.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding($e.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding($e.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding($e.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding($e.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding($e.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),vU=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($e.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap($e.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap($e.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection($e.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection($e.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection($e.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection($e.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($e.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems($e.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems($e.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems($e.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf($e.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf($e.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf($e.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf($e.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent($e.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent($e.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent($e.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent($e.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent($e.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent($e.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),bU=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"),RU=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?$e.DISPLAY_FLEX:$e.DISPLAY_NONE)},"applyDisplayStyles"),kU=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder($e.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder($e.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder($e.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder($e.EDGE_RIGHT,n)}},"applyBorderStyles"),EU=o((e,t)=>{"gap"in t&&e.setGap($e.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap($e.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap($e.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),MU=o((e,t={})=>{TU(e,t),CU(e,t),IU(e,t),vU(e,t),bU(e,t),RU(e,t),kU(e,t),EU(e,t)},"styles"),ix=MU;import _U from"node:process";var wA=o(()=>_U.env.DEV==="true","isDev");if(wA())try{await import("./devtools-XR5F2C6T.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
125
+ `)}o(yU,"serializeTranscriptForScrollback");function dA(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:i}=e,s=yU(t);r(),s.length>0&&n(`${s}
126
+ `),i()}o(dA,"dumpTranscriptToNativeScrollback");var Hc={committed:[],width:0,hasBanner:!1};function fA(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(fA,"planInlineScrollback");import{jsx as BA}from"react/jsx-runtime";import uV from"yoga-layout";import{LegacyRoot as dV}from"react-reconciler/constants.js";import VU from"react-reconciler";import{DefaultEventPriority as GU,NoEventPriority as MA}from"react-reconciler/constants.js";import*as Mo from"scheduler";import bA from"yoga-layout";import{createContext as KU}from"react";import LU from"yoga-layout";import SU from"widest-line";var pA=new Map,wU=o(e=>{if(e.length===0)return{width:0,height:0};let t=pA.get(e);if(t)return t;let n=SU(e),r=e.split(`
127
+ `).length,i={width:n,height:r};return pA.set(e,i),i},"measureText"),ex=wU;import xU from"wrap-ansi";import TU from"cli-truncate";var mA={},CU=o((e,t,n)=>{let r=e+String(t)+String(n),i=mA[r];if(i)return i;let s=e;if(n==="wrap"&&(s=xU(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=TU(e,t,{position:a})}return mA[r]=s,s},"wrapText"),$h=CU;var IU=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),vU=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),bU=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),yA=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),RU=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),SA=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),hA=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!IU(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!vU(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!bU(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),gA=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"),kU=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!yA(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!RU(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),EU=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"),MU=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"),tx=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(SA(t))return!0;return!1},"hasAnsiControlCharacters"),Wc=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"),wA=o(e=>{if(!tx(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 Wc(t,e,n,r);if(a==="["){let u=hA(e,r+2);if(u===void 0)return Wc(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=EU(a);if(c!==void 0){let u=gA(e,r+2,c.allowBellTerminator);if(u===void 0)return Wc(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=kU(e,r+1);if(l===void 0){if(yA(a))return Wc(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=hA(e,r+1);if(a===void 0)return Wc(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=MU(i);if(s!==void 0){let a=gA(e,r+1,s.allowBellTerminator);if(a===void 0)return Wc(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(SA(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 _U=/^[\d:;]*$/,AU=o(e=>{if(!tx(e))return e;let t="";for(let n of wA(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&_U.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),xA=AU;var TA=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=TA(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return xA(t)},"squashTextNodes"),sd=TA;var Nh=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:LU.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(PU.bind(null,t)),t},"createNode"),Dh=o((e,t)=>{t.parentNode&&ad(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")&&Bh(e)},"appendChildNode"),nx=o((e,t,n)=>{t.parentNode&&ad(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")&&Bh(e)},"insertBeforeNode"),ad=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")&&Bh(e)},"removeChildNode"),rx=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),ix=o((e,t)=>{e.style=t},"setStyle"),CA=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return cd(t,e),t},"createTextNode"),PU=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:sd(e),r=ex(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=$h(n,t,i);return ex(s)},"measureTextNode"),IA=o(e=>{if(e?.parentNode)return e.yogaNode??IA(e.parentNode)},"findClosestYogaNode"),Bh=o(e=>{IA(e)?.markDirty()},"markNodeAsDirty"),cd=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Bh(e)},"setTextNodeValue");import Oe from"yoga-layout";var OU=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?Oe.POSITION_TYPE_ABSOLUTE:Oe.POSITION_TYPE_RELATIVE)},"applyPositionStyles"),$U=o((e,t)=>{"margin"in t&&e.setMargin(Oe.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(Oe.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(Oe.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(Oe.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(Oe.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(Oe.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(Oe.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),NU=o((e,t)=>{"padding"in t&&e.setPadding(Oe.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(Oe.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(Oe.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(Oe.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(Oe.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(Oe.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(Oe.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),DU=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(Oe.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(Oe.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(Oe.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(Oe.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(Oe.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(Oe.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(Oe.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(Oe.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(Oe.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(Oe.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(Oe.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(Oe.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(Oe.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(Oe.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(Oe.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(Oe.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(Oe.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(Oe.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(Oe.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(Oe.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(Oe.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),BU=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"),FU=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Oe.DISPLAY_FLEX:Oe.DISPLAY_NONE)},"applyDisplayStyles"),HU=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(Oe.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(Oe.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(Oe.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(Oe.EDGE_RIGHT,n)}},"applyBorderStyles"),WU=o((e,t)=>{"gap"in t&&e.setGap(Oe.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(Oe.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(Oe.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),jU=o((e,t={})=>{OU(e,t),$U(e,t),NU(e,t),DU(e,t),BU(e,t),FU(e,t),HU(e,t),WU(e,t)},"styles"),ox=jU;import UU from"node:process";var vA=o(()=>UU.env.DEV==="true","isDev");if(vA())try{await import("./devtools-XR5F2C6T.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
128
128
  The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
129
129
  but this failed as it was not installed. Debugging with React Devtools requires it.
130
130
 
@@ -132,117 +132,117 @@ To install use this command:
132
132
 
133
133
  $ npm install --save-dev react-devtools-core
134
134
  `.trim()+`
135
- `);else throw e}var TA=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"),CA=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Fh=vA,ox,IA={name:void 0,version:void 0},jc=AU({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=Oh(i);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){rx(s,c),s.yogaNode&&ix(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){ox=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}nx(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 yA(e)},resetTextContent(){},hideTextInstance(e){ad(e,"")},unhideTextInstance(e,t){ad(e,t)},getPublicInstance:o(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(xA.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(xA.DISPLAY_FLEX)},appendInitialChild:Dh,appendChild:Dh,insertBefore:tx,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:Dh,insertInContainerBefore:tx,removeChildFromContainer(e,t){sd(e,t),CA(t.yogaNode)},commitUpdate(e,t,n,r){ox&&e.internal_static&&(ox.isStaticDirty=!0);let i=TA(n,r),s=TA(n.style,r.style);if(!(!i&&!s)){if(i)for(let[a,c]of Object.entries(i)){if(a==="style"){rx(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}nx(e,a,c)}s&&e.yogaNode&&ix(e.yogaNode,s)}},commitTextUpdate(e,t,n){ad(e,n)},removeChild(e,t){sd(e,t),CA(t.yogaNode)},setCurrentUpdatePriority(e){Fh=e},getCurrentUpdatePriority:o(()=>Fh,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Fh!==vA?Fh:LU},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:PU(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:IA.name,rendererVersion:IA.version});import jU from"widest-line";import UU from"indent-string";import _o from"yoga-layout";import Hh from"yoga-layout";var $U=o(e=>e.getComputedWidth()-e.getComputedPadding(Hh.EDGE_LEFT)-e.getComputedPadding(Hh.EDGE_RIGHT)-e.getComputedBorder(Hh.EDGE_LEFT)-e.getComputedBorder(Hh.EDGE_RIGHT),"getMaxWidth"),bA=$U;import FU from"cli-boxes";import Wh from"chalk";import Bi from"chalk";var NU=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,OU=/^ansi256\(\s?(\d+)\s?\)$/,DU=o(e=>e in Bi,"isNamedColor"),BU=o((e,t,n)=>{if(!t)return e;if(DU(t)){if(n==="foreground")return Bi[t](e);let r=`bg${t[0].toUpperCase()+t.slice(1)}`;return Bi[r](e)}if(t.startsWith("#"))return n==="foreground"?Bi.hex(t)(e):Bi.bgHex(t)(e);if(t.startsWith("ansi256")){let r=OU.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?Bi.ansi256(i)(e):Bi.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=NU.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?Bi.rgb(i,s,a)(e):Bi.bgRgb(i,s,a)(e)}return e},"colorize"),Ls=BU;var HU=o((e,t,n,r)=>{if(n.style.borderStyle){let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?FU[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,d=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,C=n.style.borderTop!==!1,w=n.style.borderBottom!==!1,T=n.style.borderLeft!==!1,v=n.style.borderRight!==!1,_=i-(T?1:0)-(v?1:0),P=C?Ls((T?a.topLeft:"")+a.top.repeat(_)+(v?a.topRight:""),c,"foreground"):void 0;C&&p&&(P=Wh.dim(P));let k=s;C&&(k-=1),w&&(k-=1);let E=(Ls(a.left,u,"foreground")+`
136
- `).repeat(k);m&&(E=Wh.dim(E));let $=(Ls(a.right,d,"foreground")+`
137
- `).repeat(k);g&&($=Wh.dim($));let B=w?Ls((T?a.bottomLeft:"")+a.bottom.repeat(_)+(v?a.bottomRight:""),l,"foreground"):void 0;w&&h&&(B=Wh.dim(B));let O=C?1:0;P&&r.write(e,t,P,{transformers:[]}),T&&r.write(e,t+O,E,{transformers:[]}),v&&r.write(e+i-1,t+O,$,{transformers:[]}),B&&r.write(e,t+s-1,B,{transformers:[]})}},"renderBorder"),RA=HU;var WU=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,d=i-a-c,p=s-l-u;if(!(d>0&&p>0))return;let h=Ls(" ".repeat(d),n.style.backgroundColor,"background");for(let m=0;m<p;m++)r.write(e+a,t+l+m,h,{transformers:[]})},"renderBackground"),kA=WU;var VU=o((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),i=n.getComputedTop();t=`
138
- `.repeat(i)+UU(t,r)}return t},"applyPaddingToText"),jh=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===_o.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=od(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
139
- `;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>jh(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"),sx=null,ax=null;function EA(){sx=null,ax=null}o(EA,"resetScrollHint");function MA(){return sx}o(MA,"getScrollHint");function _A(){return ax}o(_A,"getScrollRepaint");var AA=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()===_o.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=i+c.getComputedTop(),d=s;if(typeof e.internal_transform=="function"&&(d=[e.internal_transform,...s]),e.nodeName==="ink-text"){let m=od(e);if(m.length>0){let g=jU(m),C=bA(c);if(g>C){let w=e.style.textWrap??"wrap";m=Nh(m,C,w)}m=VU(e,m),t.write(l,u,m,{transformers:d})}return}let p=!1,h=0;if(e.nodeName==="ink-box"){kA(l,u,e,t),RA(l,u,e,t);let m=e.style.overflowX??e.style.overflow,g=e.style.overflowY??e.style.overflow,C=m==="hidden"||m==="scroll",w=g==="hidden"||g==="scroll";if(g==="scroll"){let T=c.getComputedBorder(_o.EDGE_TOP),v=c.getComputedBorder(_o.EDGE_BOTTOM),_=Math.max(0,c.getComputedHeight()-T-v),P=e.attributes?.virtualScrollWindowed===!0,k=e.childNodes[0],E=Math.max(0,Math.floor(P?e.attributes?.scrollHeight??0:k?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),$=typeof e.scrollHeight=="number"?e.scrollHeight:E,B=Ep({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:E,viewportHeight:_,previousScrollHeight:$,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:P,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+T});e.scrollHeight=B.scrollHeight,e.scrollViewportHeight=_,e.scrollViewportTop=B.viewportTop,e.appliedScrollTop=B.appliedScrollTop,B.scrollHint&&(sx=B.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&(ax={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(C||w){let T=C?l+c.getComputedBorder(_o.EDGE_LEFT):void 0,v=C?l+c.getComputedWidth()-c.getComputedBorder(_o.EDGE_RIGHT):void 0,_=w?u+c.getComputedBorder(_o.EDGE_TOP):void 0,P=w?u+c.getComputedHeight()-c.getComputedBorder(_o.EDGE_BOTTOM):void 0;t.clip({x1:T,x2:v,y1:_,y2:P}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let m of e.childNodes)AA(m,t,{offsetX:l,offsetY:u-h,transformers:d,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),cx=AA;import GU from"slice-ansi";import KU from"string-width";import{styledCharsFromTokens as zU,styledCharsToString as XU,tokenize as YU}from"@alcalzone/ansi-tokenize";var lx=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=zU(YU(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=KU(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(`
140
- `))r=Math.max(r,this.getStringWidth(i));n=r,this.blockWidths.set(t,n)}return n}},Uc=class{static{o(this,"Output")}width;height;operations=[];caches=new lx;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(`
141
- `),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,C=this.caches.getStringWidth(m),w=a+C>u.x2?u.x2-a:C;return GU(m,g,w)}),a<u.x1&&(a=u.x1)),h){let m=c<u.y1?u.y1-c:0,g=l.length,C=c+g>u.y2?u.y2-c:g;l=l.slice(m,C),c<u.y1&&(c=u.y1)}}let d=0;for(let[p,h]of l.entries()){let m=t[c+d];if(!m)continue;for(let w of s)h=w(h,p);let g=this.caches.getStyledChars(h),C=a;for(let w of g){m[C]=w;let T=Math.max(1,this.caches.getStringWidth(w.value));if(T>1)for(let v=1;v<T;v++)m[C+v]={type:"char",value:"",fullWidth:!1,styles:w.styles};C+=T}d++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let i=r.filter(s=>s!==void 0);return XU(i).trimEnd()}).join(`
142
- `),height:t.length}}};var qU=o((e,t,n)=>{if(e.yogaNode){if(t){let p=jh(e,{skipStaticElements:!0}),h=p===""?0:p.split(`
135
+ `);else throw e}var RA=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"),kA=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Fh=MA,sx,EA={name:void 0,version:void 0},jc=VU({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=Nh(i);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){ix(s,c),s.yogaNode&&ox(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){sx=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}rx(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 CA(e)},resetTextContent(){},hideTextInstance(e){cd(e,"")},unhideTextInstance(e,t){cd(e,t)},getPublicInstance:o(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(bA.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(bA.DISPLAY_FLEX)},appendInitialChild:Dh,appendChild:Dh,insertBefore:nx,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:Dh,insertInContainerBefore:nx,removeChildFromContainer(e,t){ad(e,t),kA(t.yogaNode)},commitUpdate(e,t,n,r){sx&&e.internal_static&&(sx.isStaticDirty=!0);let i=RA(n,r),s=RA(n.style,r.style);if(!(!i&&!s)){if(i)for(let[a,c]of Object.entries(i)){if(a==="style"){ix(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}rx(e,a,c)}s&&e.yogaNode&&ox(e.yogaNode,s)}},commitTextUpdate(e,t,n){cd(e,n)},removeChild(e,t){ad(e,t),kA(t.yogaNode)},setCurrentUpdatePriority(e){Fh=e},getCurrentUpdatePriority:o(()=>Fh,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Fh!==MA?Fh:GU},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:KU(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:EA.name,rendererVersion:EA.version});import tV from"widest-line";import nV from"indent-string";import _o from"yoga-layout";import Hh from"yoga-layout";var zU=o(e=>e.getComputedWidth()-e.getComputedPadding(Hh.EDGE_LEFT)-e.getComputedPadding(Hh.EDGE_RIGHT)-e.getComputedBorder(Hh.EDGE_LEFT)-e.getComputedBorder(Hh.EDGE_RIGHT),"getMaxWidth"),_A=zU;import QU from"cli-boxes";import Wh from"chalk";import Bi from"chalk";var XU=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,YU=/^ansi256\(\s?(\d+)\s?\)$/,qU=o(e=>e in Bi,"isNamedColor"),JU=o((e,t,n)=>{if(!t)return e;if(qU(t)){if(n==="foreground")return Bi[t](e);let r=`bg${t[0].toUpperCase()+t.slice(1)}`;return Bi[r](e)}if(t.startsWith("#"))return n==="foreground"?Bi.hex(t)(e):Bi.bgHex(t)(e);if(t.startsWith("ansi256")){let r=YU.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?Bi.ansi256(i)(e):Bi.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=XU.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?Bi.rgb(i,s,a)(e):Bi.bgRgb(i,s,a)(e)}return e},"colorize"),Ls=JU;var ZU=o((e,t,n,r)=>{if(n.style.borderStyle){let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?QU[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,C=n.style.borderTop!==!1,w=n.style.borderBottom!==!1,T=n.style.borderLeft!==!1,v=n.style.borderRight!==!1,A=i-(T?1:0)-(v?1:0),D=C?Ls((T?a.topLeft:"")+a.top.repeat(A)+(v?a.topRight:""),c,"foreground"):void 0;C&&p&&(D=Wh.dim(D));let k=s;C&&(k-=1),w&&(k-=1);let E=(Ls(a.left,u,"foreground")+`
136
+ `).repeat(k);m&&(E=Wh.dim(E));let P=(Ls(a.right,f,"foreground")+`
137
+ `).repeat(k);g&&(P=Wh.dim(P));let B=w?Ls((T?a.bottomLeft:"")+a.bottom.repeat(A)+(v?a.bottomRight:""),l,"foreground"):void 0;w&&h&&(B=Wh.dim(B));let $=C?1:0;D&&r.write(e,t,D,{transformers:[]}),T&&r.write(e,t+$,E,{transformers:[]}),v&&r.write(e+i-1,t+$,P,{transformers:[]}),B&&r.write(e,t+s-1,B,{transformers:[]})}},"renderBorder"),AA=ZU;var eV=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=Ls(" ".repeat(f),n.style.backgroundColor,"background");for(let m=0;m<p;m++)r.write(e+a,t+l+m,h,{transformers:[]})},"renderBackground"),LA=eV;var rV=o((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),i=n.getComputedTop();t=`
138
+ `.repeat(i)+nV(t,r)}return t},"applyPaddingToText"),jh=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===_o.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=sd(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
139
+ `;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>jh(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"),ax=null,cx=null;function PA(){ax=null,cx=null}o(PA,"resetScrollHint");function OA(){return ax}o(OA,"getScrollHint");function $A(){return cx}o($A,"getScrollRepaint");var NA=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()===_o.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=sd(e);if(m.length>0){let g=tV(m),C=_A(c);if(g>C){let w=e.style.textWrap??"wrap";m=$h(m,C,w)}m=rV(e,m),t.write(l,u,m,{transformers:f})}return}let p=!1,h=0;if(e.nodeName==="ink-box"){LA(l,u,e,t),AA(l,u,e,t);let m=e.style.overflowX??e.style.overflow,g=e.style.overflowY??e.style.overflow,C=m==="hidden"||m==="scroll",w=g==="hidden"||g==="scroll";if(g==="scroll"){let T=c.getComputedBorder(_o.EDGE_TOP),v=c.getComputedBorder(_o.EDGE_BOTTOM),A=Math.max(0,c.getComputedHeight()-T-v),D=e.attributes?.virtualScrollWindowed===!0,k=e.childNodes[0],E=Math.max(0,Math.floor(D?e.attributes?.scrollHeight??0:k?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),P=typeof e.scrollHeight=="number"?e.scrollHeight:E,B=Ep({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:D,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+T});e.scrollHeight=B.scrollHeight,e.scrollViewportHeight=A,e.scrollViewportTop=B.viewportTop,e.appliedScrollTop=B.appliedScrollTop,B.scrollHint&&(ax=B.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&(cx={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(C||w){let T=C?l+c.getComputedBorder(_o.EDGE_LEFT):void 0,v=C?l+c.getComputedWidth()-c.getComputedBorder(_o.EDGE_RIGHT):void 0,A=w?u+c.getComputedBorder(_o.EDGE_TOP):void 0,D=w?u+c.getComputedHeight()-c.getComputedBorder(_o.EDGE_BOTTOM):void 0;t.clip({x1:T,x2:v,y1:A,y2:D}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let m of e.childNodes)NA(m,t,{offsetX:l,offsetY:u-h,transformers:f,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),lx=NA;import iV from"slice-ansi";import oV from"string-width";import{styledCharsFromTokens as sV,styledCharsToString as aV,tokenize as cV}from"@alcalzone/ansi-tokenize";var ux=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=sV(cV(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=oV(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(`
140
+ `))r=Math.max(r,this.getStringWidth(i));n=r,this.blockWidths.set(t,n)}return n}},Uc=class{static{o(this,"Output")}width;height;operations=[];caches=new ux;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(`
141
+ `),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,C=this.caches.getStringWidth(m),w=a+C>u.x2?u.x2-a:C;return iV(m,g,w)}),a<u.x1&&(a=u.x1)),h){let m=c<u.y1?u.y1-c:0,g=l.length,C=c+g>u.y2?u.y2-c:g;l=l.slice(m,C),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 w of s)h=w(h,p);let g=this.caches.getStyledChars(h),C=a;for(let w of g){m[C]=w;let T=Math.max(1,this.caches.getStringWidth(w.value));if(T>1)for(let v=1;v<T;v++)m[C+v]={type:"char",value:"",fullWidth:!1,styles:w.styles};C+=T}f++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let i=r.filter(s=>s!==void 0);return aV(i).trimEnd()}).join(`
142
+ `),height:t.length}}};var lV=o((e,t,n)=>{if(e.yogaNode){if(t){let p=jh(e,{skipStaticElements:!0}),h=p===""?0:p.split(`
143
143
  `).length,m="";return e.staticNode&&(m=jh(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:h,staticOutput:m?`${m}
144
- `:"",frame:void 0}}let r=new Uc({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});EA(),cx(e,r,{skipStaticElements:!0});let i;e.staticNode?.yogaNode&&(i=new Uc({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),cx(e.staticNode,i,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Ap(r),l=n?.columns??e.yogaNode.getComputedWidth(),u=n?.rows??e.yogaNode.getComputedHeight(),d={screen:c,viewport:{width:l,height:u},cursor:{x:0,y:c.height,visible:!0},scrollHint:MA(),scrollRepaint:_A()};return{output:s,outputHeight:a,staticOutput:i?`${i.get().output}
145
- `:"",frame:d}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),ux=qU;var ZU=o((e,t)=>{let n=t?.columns??80,r=Oh("ink-root"),i="";r.onComputeLayout=()=>{r.yogaNode.setWidth(n),r.yogaNode.calculateLayout(void 0,void 0,JU.DIRECTION_LTR)},r.onImmediateRender=()=>{let{staticOutput:l}=ux(r,!1);l&&l!==`
146
- `&&(i+=l)};let s,a=jc.createContainer(r,QU,null,!1,null,"render-to-string",l=>{s??=l},()=>{},()=>{},()=>{}),c=!1;try{jc.updateContainerSync(e,a,null,()=>{}),jc.flushSyncWork();let{output:l}=ux(r,!1);if(jc.updateContainerSync(null,a,null,()=>{}),jc.flushSyncWork(),c=!0,r.yogaNode.free(),s!==void 0)throw s instanceof Error?s:new Error(String(s));let u=i.endsWith(`
144
+ `:"",frame:void 0}}let r=new Uc({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});PA(),lx(e,r,{skipStaticElements:!0});let i;e.staticNode?.yogaNode&&(i=new Uc({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),lx(e.staticNode,i,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Ap(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:OA(),scrollRepaint:$A()};return{output:s,outputHeight:a,staticOutput:i?`${i.get().output}
145
+ `:"",frame:f}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),dx=lV;var fV=o((e,t)=>{let n=t?.columns??80,r=Nh("ink-root"),i="";r.onComputeLayout=()=>{r.yogaNode.setWidth(n),r.yogaNode.calculateLayout(void 0,void 0,uV.DIRECTION_LTR)},r.onImmediateRender=()=>{let{staticOutput:l}=dx(r,!1);l&&l!==`
146
+ `&&(i+=l)};let s,a=jc.createContainer(r,dV,null,!1,null,"render-to-string",l=>{s??=l},()=>{},()=>{},()=>{}),c=!1;try{jc.updateContainerSync(e,a,null,()=>{}),jc.flushSyncWork();let{output:l}=dx(r,!1);if(jc.updateContainerSync(null,a,null,()=>{}),jc.flushSyncWork(),c=!0,r.yogaNode.free(),s!==void 0)throw s instanceof Error?s:new Error(String(s));let u=i.endsWith(`
147
147
  `)?i.slice(0,-1):i;return u&&l?u+`
148
- `+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),LA=ZU;var eV="\x1B[0m";function $A(e,t){if(e.length===0)return"";let n=PA(M,{flexDirection:"column",children:e.map(s=>PA(vS,{section:s,theme:t.theme,animateSpinners:!1},s.key))}),r=LA(n,{columns:t.width});return(r.endsWith(`
149
- `)?r.slice(0,-1):r)+eV+`
150
- `}o($A,"renderFinalizedSectionsToScrollbackText");function NA(e){return e.enabled&&!e.useRendererViewportShell&&!e.isTranscriptMode&&e.hasCommitHandle}o(NA,"isInlineLedgerActive");function OA(e){if(!e.active)return{kind:"reset"};if(!e.hasCommitHandle)return{kind:"skip"};let t=!e.wasActive,n=t?Hc:e.prior,{plan:r,nextState:i}=aA({bannerSection:e.bannerSection??null,finalizedSections:e.finalizedSections,width:e.width},e.identify??NR,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(OA,"computeInlineLedgerStep");function DA(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:Hc,wasActive:!1,owns:!0}:{state:Hc,wasActive:!1,owns:n}}o(DA,"resolveInlineLedgerState");function BA(e,t){return t?{...e,staticSections:[]}:e}o(BA,"gateInlinePromptModel");function tV(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(`
148
+ `+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),DA=fV;var pV="\x1B[0m";function FA(e,t){if(e.length===0)return"";let n=BA(M,{flexDirection:"column",children:e.map(s=>BA(IS,{section:s,theme:t.theme,animateSpinners:!1},s.key))}),r=DA(n,{columns:t.width});return(r.endsWith(`
149
+ `)?r.slice(0,-1):r)+pV+`
150
+ `}o(FA,"renderFinalizedSectionsToScrollbackText");function HA(e){return e.enabled&&!e.useRendererViewportShell&&!e.isTranscriptMode&&e.hasCommitHandle}o(HA,"isInlineLedgerActive");function WA(e){if(!e.active)return{kind:"reset"};if(!e.hasCommitHandle)return{kind:"skip"};let t=!e.wasActive,n=t?Hc:e.prior,{plan:r,nextState:i}=fA({bannerSection:e.bannerSection??null,finalizedSections:e.finalizedSections,width:e.width},e.identify??NR,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(WA,"computeInlineLedgerStep");function jA(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:Hc,wasActive:!1,owns:!0}:{state:Hc,wasActive:!1,owns:n}}o(jA,"resolveInlineLedgerState");function UA(e,t){return t?{...e,staticSections:[]}:e}o(UA,"gateInlinePromptModel");function mV(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(`
151
151
  `)}).join(`
152
- `);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return jt(e.text);default:return""}}o(tV,"buildSearchText");function nV(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(nV,"buildExcerpt");function FA(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:tV(t)}))}o(FA,"createTranscriptSearchIndex");function HA(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:nV(i,t.trim())}]:[]}):[]}o(HA,"searchTranscriptIndex");function dx(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(dx,"stepTranscriptSearchMatch");function WA(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(WA,"buildTranscriptSearchSummary");function jA(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(jA,"resolveTranscriptSearchMatchIndex");function UA(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:rV(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(UA,"buildTranscriptSelectionSummary");function rV(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}o(rV,"summarizeToolGroup");function VA(e){return e.map(t=>t.id)}o(VA,"getSelectableTranscriptItemIds");function GA(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(GA,"moveTranscriptSelection");function fx(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(`
152
+ `);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return jt(e.text);default:return""}}o(mV,"buildSearchText");function hV(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(hV,"buildExcerpt");function VA(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:mV(t)}))}o(VA,"createTranscriptSearchIndex");function GA(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:hV(i,t.trim())}]:[]}):[]}o(GA,"searchTranscriptIndex");function fx(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(fx,"stepTranscriptSearchMatch");function KA(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(KA,"buildTranscriptSearchSummary");function zA(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(zA,"resolveTranscriptSearchMatchIndex");function XA(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:gV(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(XA,"buildTranscriptSelectionSummary");function gV(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}o(gV,"summarizeToolGroup");function YA(e){return e.map(t=>t.id)}o(YA,"getSelectableTranscriptItemIds");function qA(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(qA,"moveTranscriptSelection");function px(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(`
153
153
  `)}).join(`
154
154
 
155
- `);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return jt(e.text);default:return}}o(fx,"buildTranscriptCopyText");function KA(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(`
155
+ `);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return jt(e.text);default:return}}o(px,"buildTranscriptCopyText");function JA(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(`
156
156
  `)}).filter(n=>!!n);return t.length>0?t.join(`
157
157
 
158
- `):void 0}o(KA,"buildTranscriptToolInputCopyText");import{useCallback as cd,useRef as iV,useState as zA}from"react";function XA(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:i,isTranscriptMode:s,historySearchQuery:a}=e,c=z_(t),l;if(t.supportsStickyPrompt&&t.stickyPromptVisible)if(i){let d=a.trim();l={visible:!0,label:d?`Searching transcript for "${d}"`:"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(XA,"buildTranscriptChromeModel");function YA(e){return Math.max(1,e-2)}o(YA,"resolveTranscriptPageSize");function qA(e){return Math.max(3,Math.floor(e/4))}o(qA,"resolveTranscriptWheelStep");function oV(e,t){return Math.max(0,e+t)}o(oV,"incrementTranscriptScrollOffset");function JA(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}o(JA,"clampTranscriptScrollOffset");function QA(){let e=iV(null),[t,n]=zA(0),[r,i]=zA(!0),s=cd(d=>{n(Math.max(0,d))},[]),a=cd(d=>{i(d)},[]),c=cd(d=>{if(e.current){e.current.scrollTo(d);return}n(Math.max(0,d)),i(d===0)},[]),l=cd(d=>{if(e.current){e.current.scrollBy(d);return}n(p=>oV(p,d)),i(!1)},[]),u=cd(()=>{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(QA,"useTranscriptViewportScrollController");function ZA(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??cc(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(ZA,"isTranscriptItemVisible");function eL(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:i,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,u=n?.sections??cc(t,r,i,l,c);return FR(u,a,s)}o(eL,"resolveTranscriptSelectionOffset");function tL(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:d=!1}=e;if(r&&t.some(p=>p.id===r))return r;if(d&&c>0&&a&&a>0){let p=n?.sections??cc(t,i,s,u,l),h=n?.rows??Ss(p),g=TS(h,a,c)[0]?.key,C=g?p.find(w=>w.rows.some(T=>T.key===g)):void 0;if(C?.key)return C.key}return t[t.length-1]?.id}o(tL,"resolveTranscriptSearchAnchorItemId");function nL(e){let t=fu(e.stickyHeader),n=Kp(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}o(nL,"resolveTranscriptOwnedWindowGeometry");function sV(e){return e.text===" "?"":jt(e.text)}o(sV,"normalizeTranscriptRowText");function px(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}o(px,"buildTranscriptRowIndexByKey");function aV(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}o(aV,"resolveTranscriptTextStartColumn");function rL(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??px(t.allRows??e),i=e.map((s,a)=>{let c=sV(s),l=aV(s,t),u=ho(c);return{key:s.key,row:s,modelRowIndex:r.get(s.key)??a,screenRow:n+a+1,text:c,textLength:u,textStartColumn:l,textEndColumn:l+UR(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(rL,"buildTranscriptScreenBuffer");function cV(e,t){let n=Math.max(1,Math.floor(t));return VR(e.text,n-e.textStartColumn)}o(cV,"clampTextColumn");function mx(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:cV(e,t)}}}o(mx,"toHit");function hx(e,t,n){let r=e.rows.find(i=>i.screenRow===t);return r?mx(r,n):void 0}o(hx,"hitTestTranscriptScreen");function gx(e,t,n){if(e.rows.length!==0)return t<=e.topRow?mx(e.rows[0],n):t>=e.bottomRow?mx(e.rows[e.rows.length-1],n):hx(e,t,n)}o(gx,"clampTranscriptScreenHit");function iL(e){return e.text===" "?"":jt(e.text)}o(iL,"normalizeTranscriptRowText");function oL(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}o(oL,"comparePoints");function sL(e,t,n,r={}){if(e.length===0)return;let[i,s]=oL(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=oL(t,n)===0,l=e[i.modelRowIndex],u=e[s.modelRowIndex];if(!l||!u)return;let d=a&&c?{...i,column:0}:i,p=a&&c?{...s,column:ho(iL(u))}:s,h=new Map,m=[],g=0;for(let C=d.modelRowIndex;C<=p.modelRowIndex;C+=1){let w=e[C];if(!w)continue;let T=iL(w),v=ho(T),_=C===d.modelRowIndex?d.column:0,P=C===p.modelRowIndex?p.column:v,k=Math.max(0,Math.min(_,v)),E=Math.max(k,Math.min(P,v)),$=lc(T,k,E);E>k&&(h.set(w.key,{start:k,end:E}),g+=E-k),m.push($)}if(h.size!==0)return{anchor:t,focus:n,rowRanges:h,rowCount:m.length,charCount:g,text:m.join(`
159
- `)}}o(sL,"buildTranscriptScreenSelection");function aL(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(aL,"buildTranscriptScreenSelectionSummary");function cL(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}o(cL,"resolveTranscriptDragEdgeScrollDirection");var lV="Other...";function Uh(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}o(Uh,"toSelectOptions");function yx(e,t){return t.kind==="input"||t.allowCustomInput===!1||e.some(n=>n.value===Hr)?e:[...e,{label:t.customInputLabel??lV,value:Hr}]}o(yx,"appendCustomInputOption");function Sx(e){return e.question}o(Sx,"getAskUserDialogTitle");function lL(e){return!!e.activity}o(lL,"shouldRenderPromptActivityInFooter");function uV(e){switch(e){case"confirm":return ie("waiting.confirm");case"select":return ie("waiting.select");case"input":return ie("waiting.input")}}o(uV,"formatPromptWaitingText");function uL(e){return e.waitingReason==="confirm"?ie("placeholder.confirm"):e.waitingReason==="select"?ie("placeholder.select"):e.waitingReason==="input"?ie("placeholder.input"):e.isLoading?e.canQueueFollowUps?ie("placeholder.queue"):ie("placeholder.busy"):ie("placeholder.idle")}o(uL,"buildPromptPlaceholderText");function dL(e){return e.isTranscriptMode?void 0:e.waitingReason?{kind:"waiting",text:uV(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:bS({activeToolCount:e.streamingState.activeToolCalls.filter(n=>n.status===z.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(dL,"buildPromptActivityViewModel");function fL(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(fL,"resolveEffectiveCompactionInfo");function Ps(e,t,n){return e==="auto"||e==="auto-in-project"?t??n:void 0}o(Ps,"resolveSurfaceAutoModeEngine");function pL(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===z.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(pL,"buildSurfaceStatusBarProps");function mL(e){let t=Qw(e.state),n=t?$h(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&&K_(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}o(mL,"buildTranscriptSelectionRuntimeState");function hL(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(hL,"buildTranscriptSelectionViewModel");function gL(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}o(gL,"buildTranscriptSearchViewModel");function dV(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}o(dV,"clampTranscriptSearchSelectedIndex");function fV(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(fV,"buildTranscriptSearchDetailText");function yL(e){let t=dV(e.matches.length,e.selectedIndex),n=WA(e.matches,t),r=fV({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:gL({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}o(yL,"buildTranscriptSearchChrome");function pV(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}o(pV,"buildDefaultTranscriptSecondaryText");function SL(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(SL,"buildFooterNotifications");function wL(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(wL,"buildBaseFooterNotices");function xL(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}o(xL,"buildStashNoticeText");function TL(e){return[...e]}o(TL,"buildPromptFooterNotices");function mV(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?pV(e.showAllActive):n.join(" | ")}o(mV,"buildTranscriptFooterSecondaryText");function hV(e){let t=[];return e&&t.push(e),t}o(hV,"buildTranscriptFooterBudgetNotices");function CL(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,i=aL(e.textSelection),s=e.textSelection?uc({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?uc({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=mV({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:i,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:i,actionSummary:s,secondaryText:a,budgetNotices:hV(a)}}o(CL,"buildTranscriptFooterViewModel");import{jsx as Bne,jsxs as Fne}from"react/jsx-runtime";function IL(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(IL,"formatAmaWorkStripText");function vL(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}o(vL,"stripLiveActivityPrefix");function bL(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?vL(lm(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?vL(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(bL,"buildBackgroundTaskViewModel");function RL(e,t){if(!(!t||!e||e.agentMode!=="ama"))return IL(e.childFanoutClass,e.childFanoutCount)}o(RL,"buildAmaWorkStripFromStatus");function wx(e){let t=RL(e.status,e.isLoading);return{workStripText:t,backgroundTask:bL({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(wx,"buildAmaSummaryViewModel");function xx(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}o(xx,"captureTranscriptSnapshot");function kL(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(kL,"countPendingTranscriptUpdates");function EL(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}o(EL,"resolveTranscriptSurfaceItems");function ML(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(ML,"buildPromptSurfaceItems");function _L(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}o(_L,"resolveFullscreenShellMode");function gV(e,t){return e.enabled&&_L(e,t)==="virtual"}o(gV,"shouldUseRendererViewportShell");function AL(e,t){let n=_L(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(AL,"resolveTranscriptInteractionPolicy");function LL(e,t,n){return gV(e,t)?t==="transcript"||n:!1}o(LL,"shouldOwnTranscriptViewport");var yV=500,SV=1,wV=/[\p{L}\p{N}_/.\-+~\\]/u;function xV(e){return e.text===" "?"":e.text}o(xV,"normalizeTranscriptRowText");function PL(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}o(PL,"comparePoints");function Tx(e){return e===""||/\s/.test(e)?0:wV.test(e)?1:2}o(Tx,"charClass");function $L(e){let t=e.timeoutMs??yV,n=e.distance??SV,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($L,"resolveTranscriptMultiClickState");function Vh(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let i=xV(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:ho(i)}};let s=ho(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=Tx(gm(i,a)),l=a,u=a+1;for(;l>0&&Tx(gm(i,l-1))===c;)l-=1;for(;u<s&&Tx(gm(i,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}o(Vh,"resolveTranscriptSelectionSpanAt");function Cx(e,t){return PL(t.end,e.start)<0?{anchor:e.end,focus:t.start}:PL(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}o(Cx,"extendTranscriptSelectionSpan");function Vc(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(Vc,"buildHostSessionPayload");var vV=500;function $s(e){ft({source:"repl:session-persistence",level:"error",message:"Failed to persist interactive Session state in the background.",detail:e})}o($s,"reportBackgroundSessionPersistenceError");function bV(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(bV,"learningCenterActions");function RV(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(RV,"buildLearningCenterOptions");async function kV(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(kV,"applyLearningCenterAction");function EV(e){return typeof e.appendSessionDelta=="function"}o(EV,"hasAppendSessionDelta");function OL(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(OL,"applyRuntimeSessionSnapshot");function DL(e){let t=e;return typeof t.prepareSessionAppend=="function"&&typeof t.appendPreparedSessionTail=="function"&&typeof t.appendSessionDelta=="function"}o(DL,"hasPreparedSessionAppend");function MV(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(MV,"createPreparedSessionTail");async function _V(e,t,n,r){let i=DL(e)?await e.prepareSessionAppend(t):null,s=i===null?void 0:MV(n,i,r);if(DL(e)&&s!==void 0)try{await e.appendPreparedSessionTail(t,s);return}catch(a){if(!(a instanceof xe)||a.code!=="data_changed")throw a;await e.appendSessionDelta(t,n);return}if(EV(e)){await e.appendSessionDelta(t,n);return}await e.save(t,n)}o(_V,"persistHostSessionPayload");var AV=12,BL="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 Ix(e,t){if(Ir(e))return[t.getGuardrail()]}o(Ix,"buildAutoModeGuardrails");function LV(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}o(LV,"resolveInitialReasoningMode");function vx(e){return jt(e.map(t=>typeof t=="string"?t:String(t)).join(" "))}o(vx,"formatCapturedConsoleOutput");function bx(e){let t=e.map(jt).join(`
160
- `).trimEnd();return t.trim().length>0?t:void 0}o(bx,"joinCapturedConsoleOutput");function PV(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(PV,"buildManagedTranscriptCompactText");function FL(e){let t=PV(e);return{type:"event",icon:Dw(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}o(FL,"toManagedTranscriptEventItem");function Ao(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(Ao,"toCreatableHistoryItem");function kx(e){return kv(e)?"":Da(e).trim()}o(kx,"sanitizeInterruptedAssistantText");function $V(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}o($V,"escapeRegExpLiteral");function NV(e,t){let n=t?.trim();return n?e.replace(new RegExp(`^\\[${$V(n)}\\]\\s*`),""):e}o(NV,"stripManagedWorkerPrefix");function HL(e,t){let n=Da(e);return NV(n,t).trim().length>0}o(HL,"hasSubstantiveManagedAssistantText");function OV(e,t){return e?t||e.trim().length>0:!1}o(OV,"shouldAppendManagedAssistantTextDelta");function DV(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(DV,"discardReplacedOutputSegmentItems");function BV(e,t,n){let r=xf(e,{type:"segment.started",...t}).state;return r!==e&&n(r),r}o(BV,"applyDistinctOutputSegmentStart");function FV(e){e.stopThinking(),e.clearToolInputContent(),e.clearCurrentTool(),e.resetLiveToolCalls(),e.clearLiveActivityLabel()}o(FV,"applyProviderRecoveryTransientReset");function WL(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}o(WL,"isForegroundManagedStreamingStatus");function HV(e,t,n){let r=[],i=n?.infoItems??[],s=Ex({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=kx(t);return a&&r.push({type:"assistant",text:`${a}
158
+ `):void 0}o(JA,"buildTranscriptToolInputCopyText");import{useCallback as ld,useRef as yV,useState as QA}from"react";function ZA(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:i,isTranscriptMode:s,historySearchQuery:a}=e,c=Q_(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(ZA,"buildTranscriptChromeModel");function eL(e){return Math.max(1,e-2)}o(eL,"resolveTranscriptPageSize");function tL(e){return Math.max(3,Math.floor(e/4))}o(tL,"resolveTranscriptWheelStep");function SV(e,t){return Math.max(0,e+t)}o(SV,"incrementTranscriptScrollOffset");function nL(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}o(nL,"clampTranscriptScrollOffset");function rL(){let e=yV(null),[t,n]=QA(0),[r,i]=QA(!0),s=ld(f=>{n(Math.max(0,f))},[]),a=ld(f=>{i(f)},[]),c=ld(f=>{if(e.current){e.current.scrollTo(f);return}n(Math.max(0,f)),i(f===0)},[]),l=ld(f=>{if(e.current){e.current.scrollBy(f);return}n(p=>SV(p,f)),i(!1)},[]),u=ld(()=>{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(rL,"useTranscriptViewportScrollController");function iL(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??cc(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(iL,"isTranscriptItemVisible");function oL(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:i,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,u=n?.sections??cc(t,r,i,l,c);return VR(u,a,s)}o(oL,"resolveTranscriptSelectionOffset");function sL(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??cc(t,i,s,u,l),h=n?.rows??Ss(p),g=xS(h,a,c)[0]?.key,C=g?p.find(w=>w.rows.some(T=>T.key===g)):void 0;if(C?.key)return C.key}return t[t.length-1]?.id}o(sL,"resolveTranscriptSearchAnchorItemId");function aL(e){let t=pu(e.stickyHeader),n=Kp(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}o(aL,"resolveTranscriptOwnedWindowGeometry");function wV(e){return e.text===" "?"":jt(e.text)}o(wV,"normalizeTranscriptRowText");function mx(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}o(mx,"buildTranscriptRowIndexByKey");function xV(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}o(xV,"resolveTranscriptTextStartColumn");function cL(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??mx(t.allRows??e),i=e.map((s,a)=>{let c=wV(s),l=xV(s,t),u=ho(c);return{key:s.key,row:s,modelRowIndex:r.get(s.key)??a,screenRow:n+a+1,text:c,textLength:u,textStartColumn:l,textEndColumn:l+XR(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(cL,"buildTranscriptScreenBuffer");function TV(e,t){let n=Math.max(1,Math.floor(t));return YR(e.text,n-e.textStartColumn)}o(TV,"clampTextColumn");function hx(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:TV(e,t)}}}o(hx,"toHit");function gx(e,t,n){let r=e.rows.find(i=>i.screenRow===t);return r?hx(r,n):void 0}o(gx,"hitTestTranscriptScreen");function yx(e,t,n){if(e.rows.length!==0)return t<=e.topRow?hx(e.rows[0],n):t>=e.bottomRow?hx(e.rows[e.rows.length-1],n):gx(e,t,n)}o(yx,"clampTranscriptScreenHit");function lL(e){return e.text===" "?"":jt(e.text)}o(lL,"normalizeTranscriptRowText");function uL(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}o(uL,"comparePoints");function dL(e,t,n,r={}){if(e.length===0)return;let[i,s]=uL(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=uL(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:ho(lL(u))}:s,h=new Map,m=[],g=0;for(let C=f.modelRowIndex;C<=p.modelRowIndex;C+=1){let w=e[C];if(!w)continue;let T=lL(w),v=ho(T),A=C===f.modelRowIndex?f.column:0,D=C===p.modelRowIndex?p.column:v,k=Math.max(0,Math.min(A,v)),E=Math.max(k,Math.min(D,v)),P=lc(T,k,E);E>k&&(h.set(w.key,{start:k,end:E}),g+=E-k),m.push(P)}if(h.size!==0)return{anchor:t,focus:n,rowRanges:h,rowCount:m.length,charCount:g,text:m.join(`
159
+ `)}}o(dL,"buildTranscriptScreenSelection");function fL(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(fL,"buildTranscriptScreenSelectionSummary");function pL(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}o(pL,"resolveTranscriptDragEdgeScrollDirection");var CV="Other...";function Uh(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}o(Uh,"toSelectOptions");function Sx(e,t){return t.kind==="input"||t.allowCustomInput===!1||e.some(n=>n.value===Hr)?e:[...e,{label:t.customInputLabel??CV,value:Hr}]}o(Sx,"appendCustomInputOption");function wx(e){return e.question}o(wx,"getAskUserDialogTitle");function mL(e){return!!e.activity}o(mL,"shouldRenderPromptActivityInFooter");function IV(e){switch(e){case"confirm":return ie("waiting.confirm");case"select":return ie("waiting.select");case"input":return ie("waiting.input")}}o(IV,"formatPromptWaitingText");function hL(e){return e.waitingReason==="confirm"?ie("placeholder.confirm"):e.waitingReason==="select"?ie("placeholder.select"):e.waitingReason==="input"?ie("placeholder.input"):e.isLoading?e.canQueueFollowUps?ie("placeholder.queue"):ie("placeholder.busy"):ie("placeholder.idle")}o(hL,"buildPromptPlaceholderText");function gL(e){return e.isTranscriptMode?void 0:e.waitingReason?{kind:"waiting",text:IV(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:vS({activeToolCount:e.streamingState.activeToolCalls.filter(n=>n.status===z.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(gL,"buildPromptActivityViewModel");function yL(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(yL,"resolveEffectiveCompactionInfo");function Ps(e,t,n){return e==="auto"||e==="auto-in-project"?t??n:void 0}o(Ps,"resolveSurfaceAutoModeEngine");function SL(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===z.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(SL,"buildSurfaceStatusBarProps");function wL(e){let t=Zw(e.state),n=t?Oh(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&&J_(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}o(wL,"buildTranscriptSelectionRuntimeState");function xL(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(xL,"buildTranscriptSelectionViewModel");function TL(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}o(TL,"buildTranscriptSearchViewModel");function vV(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}o(vV,"clampTranscriptSearchSelectedIndex");function bV(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(bV,"buildTranscriptSearchDetailText");function CL(e){let t=vV(e.matches.length,e.selectedIndex),n=KA(e.matches,t),r=bV({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:TL({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}o(CL,"buildTranscriptSearchChrome");function RV(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}o(RV,"buildDefaultTranscriptSecondaryText");function IL(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(IL,"buildFooterNotifications");function vL(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(vL,"buildBaseFooterNotices");function bL(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}o(bL,"buildStashNoticeText");function RL(e){return[...e]}o(RL,"buildPromptFooterNotices");function kV(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?RV(e.showAllActive):n.join(" | ")}o(kV,"buildTranscriptFooterSecondaryText");function EV(e){let t=[];return e&&t.push(e),t}o(EV,"buildTranscriptFooterBudgetNotices");function kL(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,i=fL(e.textSelection),s=e.textSelection?uc({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?uc({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=kV({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:i,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:i,actionSummary:s,secondaryText:a,budgetNotices:EV(a)}}o(kL,"buildTranscriptFooterViewModel");import{jsx as Jne,jsxs as Qne}from"react/jsx-runtime";function EL(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(EL,"formatAmaWorkStripText");function ML(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}o(ML,"stripLiveActivityPrefix");function _L(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?ML(lm(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?ML(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(_L,"buildBackgroundTaskViewModel");function AL(e,t){if(!(!t||!e||e.agentMode!=="ama"))return EL(e.childFanoutClass,e.childFanoutCount)}o(AL,"buildAmaWorkStripFromStatus");function xx(e){let t=AL(e.status,e.isLoading);return{workStripText:t,backgroundTask:_L({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(xx,"buildAmaSummaryViewModel");function Tx(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}o(Tx,"captureTranscriptSnapshot");function LL(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(LL,"countPendingTranscriptUpdates");function PL(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}o(PL,"resolveTranscriptSurfaceItems");function OL(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(OL,"buildPromptSurfaceItems");function $L(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}o($L,"resolveFullscreenShellMode");function MV(e,t){return e.enabled&&$L(e,t)==="virtual"}o(MV,"shouldUseRendererViewportShell");function NL(e,t){let n=$L(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(NL,"resolveTranscriptInteractionPolicy");function DL(e,t,n){return MV(e,t)?t==="transcript"||n:!1}o(DL,"shouldOwnTranscriptViewport");var _V=500,AV=1,LV=/[\p{L}\p{N}_/.\-+~\\]/u;function PV(e){return e.text===" "?"":e.text}o(PV,"normalizeTranscriptRowText");function BL(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}o(BL,"comparePoints");function Cx(e){return e===""||/\s/.test(e)?0:LV.test(e)?1:2}o(Cx,"charClass");function FL(e){let t=e.timeoutMs??_V,n=e.distance??AV,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(FL,"resolveTranscriptMultiClickState");function Vh(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let i=PV(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:ho(i)}};let s=ho(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=Cx(gm(i,a)),l=a,u=a+1;for(;l>0&&Cx(gm(i,l-1))===c;)l-=1;for(;u<s&&Cx(gm(i,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}o(Vh,"resolveTranscriptSelectionSpanAt");function Ix(e,t){return BL(t.end,e.start)<0?{anchor:e.end,focus:t.start}:BL(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}o(Ix,"extendTranscriptSelectionSpan");function Vc(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(Vc,"buildHostSessionPayload");var DV=500;function Os(e){ft({source:"repl:session-persistence",level:"error",message:"Failed to persist interactive Session state in the background.",detail:e})}o(Os,"reportBackgroundSessionPersistenceError");function BV(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(BV,"learningCenterActions");function FV(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(FV,"buildLearningCenterOptions");async function HV(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(HV,"applyLearningCenterAction");function WV(e){return typeof e.appendSessionDelta=="function"}o(WV,"hasAppendSessionDelta");function WL(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(WL,"applyRuntimeSessionSnapshot");function jL(e){let t=e;return typeof t.prepareSessionAppend=="function"&&typeof t.appendPreparedSessionTail=="function"&&typeof t.appendSessionDelta=="function"}o(jL,"hasPreparedSessionAppend");function jV(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(jV,"createPreparedSessionTail");async function UV(e,t,n,r){let i=jL(e)?await e.prepareSessionAppend(t):null,s=i===null?void 0:jV(n,i,r);if(jL(e)&&s!==void 0)try{await e.appendPreparedSessionTail(t,s);return}catch(a){if(!(a instanceof xe)||a.code!=="data_changed")throw a;await e.appendSessionDelta(t,n);return}if(WV(e)){await e.appendSessionDelta(t,n);return}await e.save(t,n)}o(UV,"persistHostSessionPayload");var VV=12,UL="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 vx(e,t){if(Ir(e))return[t.getGuardrail()]}o(vx,"buildAutoModeGuardrails");function GV(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}o(GV,"resolveInitialReasoningMode");function bx(e){return jt(e.map(t=>typeof t=="string"?t:String(t)).join(" "))}o(bx,"formatCapturedConsoleOutput");function Rx(e){let t=e.map(jt).join(`
160
+ `).trimEnd();return t.trim().length>0?t:void 0}o(Rx,"joinCapturedConsoleOutput");function KV(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(KV,"buildManagedTranscriptCompactText");function VL(e){let t=KV(e);return{type:"event",icon:Bw(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}o(VL,"toManagedTranscriptEventItem");function Ao(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(Ao,"toCreatableHistoryItem");function Ex(e){return Ev(e)?"":Da(e).trim()}o(Ex,"sanitizeInterruptedAssistantText");function zV(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}o(zV,"escapeRegExpLiteral");function XV(e,t){let n=t?.trim();return n?e.replace(new RegExp(`^\\[${zV(n)}\\]\\s*`),""):e}o(XV,"stripManagedWorkerPrefix");function GL(e,t){let n=Da(e);return XV(n,t).trim().length>0}o(GL,"hasSubstantiveManagedAssistantText");function YV(e,t){return e?t||e.trim().length>0:!1}o(YV,"shouldAppendManagedAssistantTextDelta");function qV(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(qV,"discardReplacedOutputSegmentItems");function JV(e,t,n){let r=xf(e,{type:"segment.started",...t}).state;return r!==e&&n(r),r}o(JV,"applyDistinctOutputSegmentStart");function QV(e){e.stopThinking(),e.clearToolInputContent(),e.clearCurrentTool(),e.resetLiveToolCalls(),e.clearLiveActivityLabel()}o(QV,"applyProviderRecoveryTransientReset");function KL(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}o(KL,"isForegroundManagedStreamingStatus");function ZV(e,t,n){let r=[],i=n?.infoItems??[],s=Mx({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=Ex(t);return a&&r.push({type:"assistant",text:`${a}
161
161
 
162
- [Interrupted]`}),r}o(HV,"buildInterruptedPersistenceItems");function Ex({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(Ex,"buildRoundHistoryItems");var WV=20,jV="Session ended before the tool completed.";function UV(e){switch(e.status){case z.Success:return{status:"success"};case z.Error:return{status:"error"};case z.Cancelled:return{status:"cancelled"};case z.AwaitingApproval:case z.Scheduled:case z.Validating:case z.Executing:return{status:"cancelled",error:jV};default:return e.status}}o(UV,"toPersistedToolStatus");function VV(e){if(!e.id||!e.name)return;let t=UV(e),n=t.status==="success"?sy(e.output):void 0,r=t.status==="error"||t.status==="cancelled"?oy(e.error??sy(e.output)??t.error??""):void 0,i=vv(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:oy(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(VV,"toPersistedToolCall");function GV(e){let t=e.tools.slice(0,WV).map(VV).filter(r=>!!r),n=Mx(e);return t.length>0?{type:"tool_group",tools:t,...n===void 0?{}:{timestamp:n}}:void 0}o(GV,"toPersistedToolGroup");function Mx(e){return e.timestamp!==void 0&&Number.isFinite(e.timestamp)&&e.timestamp>=0?e.timestamp:void 0}o(Mx,"persistedHistoryTimestamp");function KL(e){if(e.type==="tool_group")return GV(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=Mx(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=Mx(e);return{type:e.type,text:t,...i===void 0?{}:{timestamp:i},...n?{icon:n}:{},...r?{compactText:r}:{}}}o(KL,"toPersistedUiHistoryItem");var jL=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1",KV=process.env.KODAX_SCROLL_OVERSCAN==="1"?80:void 0;function UL(e){return Zr(e.map(t=>KL(t)).filter(t=>!!t))}o(UL,"serializeUiHistorySnapshot");function zV(e){return e.map(t=>KL(t)).filter(t=>!!t)}o(zV,"serializeCreatableHistoryItems");function Gh(e,t){return t.length===0?Zr(e):Zr([...e,...zV(t)])}o(Gh,"appendPersistedUiHistorySnapshot");function ld(e,t,n){console.log((e==="block"?yt.red:yt.yellow)(t)),n.forEach(r=>console.log(yt.dim(r)))}o(ld,"logSessionTransitionGuard");var Rx=o(({config:e,sessionId:t,workingDir:n,compactionInfo:r})=>{let i=ae("dark"),s=e.model??jr(e.provider)??e.provider,a=Zi({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 _n(M,{flexDirection:"column",marginBottom:1,children:[Bw.map((u,d)=>pe(b,{color:i.colors.primary,children:u},d)),_n(M,{children:[pe(b,{color:i.colors.primary,children:" \u258E "}),pe(b,{color:i.colors.primary,children:"AI Coding Agent \xB7 Minimalist & Intelligent"})]}),_n(M,{children:[pe(b,{color:i.colors.success,children:" \u258E "}),_n(b,{bold:!0,color:i.colors.text,children:["v",Jo]}),pe(b,{dimColor:!0,children:" \xB7 "}),_n(b,{color:i.colors.success,children:[e.provider,"/",s]}),pe(b,{dimColor:!0,children:` \xB7 effort:${a}`}),pe(b,{dimColor:!0,children:" \xB7 "}),pe(b,{color:i.colors.primary,children:e.agentMode.toUpperCase()}),pe(b,{dimColor:!0,children:" / "}),pe(b,{color:i.colors.accent,children:e.permissionMode})]}),r&&_n(M,{children:[pe(b,{color:i.colors.accent,children:" \u258E "}),pe(b,{color:i.colors.text,children:`ctx ${c}k \xB7 compaction `}),pe(b,{color:r.enabled?i.colors.success:i.colors.text,children:r.enabled?"on":"off"}),pe(b,{color:i.colors.text,children:` \xB7 ${l}`})]}),_n(M,{children:[pe(b,{color:i.colors.secondary,children:" \u258E "}),pe(b,{color:i.colors.text,children:"session "}),pe(b,{color:i.colors.primary,children:t}),pe(b,{color:i.colors.text,children:" \xB7 "}),pe(b,{color:i.colors.text,children:n})]})]})},"Banner");function XV(e){let t=e.config.model??jr(e.config.provider)??e.config.provider,n=Zi({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${Jo} \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=[],d=o(h=>{let m=xn(h.length>0?h.split(`
163
- `):[""],Math.max(1,e.terminalWidth),0,0);return m.visualLines.length>0?m.visualLines:[""]},"wrapBannerLine"),p=o((h,m,g)=>{d(m).forEach((C,w)=>{u.push({key:`${h}-${w}`,text:C,...g})})},"pushLineRows");return Bw.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(XV,"buildBannerTranscriptSection");function VL(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}o(VL,"prependTranscriptSection");var YV=process.env.KODAX_INLINE_LEDGER!=="0";function GL(e,t){process.env.KODAX_INLINE_LEDGER_DEBUG==="1"&&ft({source:"repl:inline-ledger",level:"debug",message:`${e}; rebuilding on next change.`,...t!==void 0?{detail:t}:{}})}o(GL,"reportInlineLedgerFailure");var qV=o(({options:e,config:t,context:n,startupRuntimeInfo:r,storage:i,autoModeSettings:s,rendererMode:a,fullscreenPolicy:c,onExit:l,compactionInfo:u,autoModeBootstrap:d,setAutoModeAskUser:p,setAutoModeEngineChange:h,setCurrentConfigRef:m,teamModeHandle:g})=>{let{exit:C}=Yr(),{stdout:w}=Xr(),T=w.rows??24,{stdin:v,setRawMode:_,isRawModeSupported:P}=cu(),k=tc(),{history:E}=fc(),$=NL.useRef(null),B=NL.useRef(AI()),{addHistoryItem:O,addHistoryItems:G,clearHistory:re,setSessionId:X}=pc(),y=Se(E),A=Se(UL(E));He(()=>{y.current=E,A.current=UL(E)},[E]),He(()=>{E_()},[]),He(()=>{jv()},[]);let ee=w.columns||80,W=gc(),le=Se(W);He(()=>{le.current=W},[W]);let{startStreaming:de,stopStreaming:he,abort:_e,startThinking:fe,appendThinkingChars:Te,appendThinkingContent:Pe,stopThinking:te,clearThinkingContent:oe,setCurrentTool:Ie,appendToolInputChars:nt,appendToolInputContent:vt,clearToolInputContent:Ke,clearResponse:Ve,appendResponse:me,getSignal:Re,getFullResponse:K,getThinkingContent:We,startNewIteration:St,clearIterationHistory:Vt,startCompacting:Xe,stopCompacting:_t,setMaxIter:Qt,addPendingInput:qn,removeLastPendingInput:pn,shiftPendingInput:L,consumePendingInputs:V}=yc(),[H,ne]=Ge(!1),[F,Ae]=Ge(t),ve=we(()=>Qo({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]),ke=ve.configuredEffort,At=ve.runtimeEffort,Gt=we(()=>({...F,effort:ke}),[F,ke]),mn=we(()=>fL(u,{provider:F.provider,model:F.model},Ko),[u,F.provider,F.model]),[si,Dt]=Ge(!0),[mr,cT]=Ge(!0),[xd,Td]=Ge(0),[ng,Qc]=Ge(!1),[lT,uT]=Ge(void 0),[dT,Cd]=Ge([]),fT=Se(!1),rg=q(()=>{fT.current=!0,Cd(Iv)},[]),[pT,hr]=Ge(null),Zc=Se(!1),o$=we(()=>ro(),[]),el=Se(null),Id=Se(null),ig=Se(Promise.resolve()),vd=Se(null),Po=Se({requested:!1,uiHistoryOverride:void 0}),Fs=Se(null),tl=Se(!1),nl=Se(null);He(()=>{let f=e.learning;if(!f)return;let S=!0,x,I=o(async()=>{let D=await f.getSnapshot();return S&&uT(j=>j!==void 0&&j.revision>D.revision?j:D),D},"refresh"),R=o(D=>{ft({source:"repl:learning",level:"warn",message:"Failed to refresh the Learning Center snapshot.",detail:D instanceof Error?D.message:String(D)})},"reportRefreshFailure"),N=o(D=>{if(S){if(D.kind==="ready"||D.kind==="activated"||D.kind==="attention"){let j=D.kind==="ready"?"is ready for review":D.kind==="activated"?"became active":"requires attention";Cd(Z=>[{id:D.eventId,text:`A learned ${D.carrier} ${j}: ${D.displayName} [/learn]`,tone:D.kind==="activated"?"accent":"warning"},...Z.filter(J=>J.id!==D.eventId)].slice(0,2))}I().catch(R)}},"onEvent");return I().then(D=>{if(!S)return;let j=Zf(D);if(j&&!fT.current){let Z=D.attention>0||D.ready>0?"warning":"accent";Cd(J=>[{id:"learning-recovery",text:j,tone:Z},...J.filter(Ne=>Ne.id!=="learning-recovery")].slice(0,2))}x=f.subscribe(N,{afterRevision:D.revision})}).catch(R),()=>{S=!1,x?.close()}},[e.learning]);let[rl,bd]=Ge(!0),[og,Rd]=Ge(""),[ze,Lr]=Ge(()=>$_(o$,{rendererMode:a})),[Kt,sg]=Ge(!1),[s$,a$]=Ge(0),{scrollRef:c$,scrollOffset:gr,sticky:ag,setScrollOffset:l$,handleScrollTopChange:u$,handleStickyChange:d$,scrollTo:kd,scrollBy:Ed,scrollToBottom:Md}=QA(),cg=Se(null),_d=Se(null),il=Se([]),Ad=Se([]),Hs=Se(null),yr=Se(null),mT=Se({time:0,row:-1,column:-1,count:0}),[Ld,lg]=Ge(void 0),[ai,ug]=Ge(void 0),[Ws,hT]=Ge(void 0),[Pn,f$]=Ge(()=>new Set),[dg,gT]=Ge(null),[an,yT]=Ge(null),[Q,Pd]=Ge(null),[ST,js]=Ge(null),[fg,wT]=Ge(null),ol=Se(null),sl=q(f=>{ol.current=f,wT(f)},[]),al=q(f=>{let S=f(ol.current);ol.current=S,wT(S)},[]),cl=q((f,S)=>{let x=ol.current;return x?.status!=="running"||!Rk(f,x.runId)?!1:(sl({...x,message:S}),!0)},[sl]),pg=q(f=>{if(f.status==="running"){sl({runId:f.runId,workflow:f.workflow,status:f.status,...f.phase!==void 0?{phase:f.phase}:{},...f.phaseIndex!==void 0?{phaseIndex:f.phaseIndex}:{},...f.phaseTotal!==void 0?{phaseTotal:f.phaseTotal}:{},...f.startedAt!==void 0?{startedAt:f.startedAt}:{},...f.elapsedMs!==void 0?{elapsedMs:f.elapsedMs}:{},activeAgents:f.activeAgents,totalSpawned:f.totalSpawned,...f.plannedAgents!==void 0?{plannedAgents:f.plannedAgents}:{},...f.agentCap!==void 0?{agentCap:f.agentCap}:{},...f.tokenBudgetSpent!==void 0?{tokenBudgetSpent:f.tokenBudgetSpent}:{},...f.tokenBudgetTotal!==void 0?{tokenBudgetTotal:f.tokenBudgetTotal}:{},completedAgents:f.completedAgents,failedAgents:f.failedAgents,stoppedAgents:f.stoppedAgents,...f.message!==void 0?{message:f.message}:{},...f.locale!==void 0?{locale:f.locale}:{}});return}al(S=>S?.runId===f.runId?null:S)},[sl,al]),p$=q(f=>{let S=f.type==="workflow_updated"?f.message:void 0,x=Vl(f.snapshot.goal,f.snapshot.workflowName,f.snapshot.displayName,f.snapshot.latestMessage,S);pg(Pv(f.snapshot,S===void 0?{locale:x}:{locale:x,message:S}))},[pg]),[$d,ci]=Ge([]),Us=we(()=>{for(let f of $d)if(f.status==="in_progress"){if(f.activeForm&&f.activeForm.length>0)return f.activeForm;if(f.subject&&f.subject.length>0)return f.subject}},[$d]),[IK,ll]=Ge([]),[ul,m$]=Ge([]),[Nd,kt]=Ge(void 0),[$o,dl]=Ge(void 0),gt=Se(null),Od=Se(null),No=Se([]),Vs=Se([]),hn=Se([]),Dd=Se(!1),mg=Se(new Set),st=Se({}),ut=Se({activeToolGroupTools:[]}),Oo=Se(Xg()),Do=Se({}),xT=Se(0),fl=Se({itemId:void 0,kind:"thinking",pendingText:""}),Sr=Se(null),h$=80,g$=20,y$=Se(null),Bd=we(()=>[...E,...ul],[E,ul]),hg=we(()=>{let f=DR(Bd,y$);return f===0?Bd:Bd.slice(f)},[Bd]),Fd=we(()=>BR(hg,g$),[hg]),Gs=hg,cn=Se(null),Pr=Se(null),$r=Se([]),ln=Se([]),[Bo,S$]=Ge([]),li=Se([]),[gg,w$]=Ge([]),pl=Se([]),Jn=q(f=>{li.current=f,S$(f)},[]),Ks=q(f=>{pl.current=f,w$(f)},[]),yg=q(()=>{Ks([])},[Ks]),TT=q(f=>{if(!Du(f))return!1;let S=FS(f),x=pl.current.filter(I=>I.id!==S);return x.length===pl.current.length||Ks(x),!0},[Ks]),Qn=q((f,S,x,I)=>{if(!Du(f))return!1;let R=FS(f),N=pl.current.find(Fe=>Fe.id===R);if(I?.skipIfExisting&&N?.kind===S||Ak(N?.kind,S))return!0;let D=I?.append&&N?.kind===S?`${N.detail}${x}`:x||N?.detail||"running",j={id:R,label:Ek(f),source:Mk(f),status:"running",kind:S,detail:BS(D),startedAt:N?.startedAt??Date.now()},Z=pl.current,J=Z.findIndex(Fe=>Fe.id===R),Ne=J>=0?Z.map((Fe,rn)=>rn===J?j:Fe):[...Z,j].slice(0,AV);return Ks(Ne),!0},[Ks]),CT=q(f=>{No.current=f,ll(f)},[]),zs=q(f=>{hn.current=f,m$(f)},[]),Hd=q(f=>{let S=f([...hn.current]);zs(S)},[zs]),IT=q(f=>{f.length!==0&&zs([...hn.current,...f])},[zs]),Wd=q(f=>{let S=ut.current,x=S.activeToolGroupTools.some(I=>I.status===z.Executing);ut.current={...f?.clearOwner?{}:{workerId:S.workerId,workerTitle:S.workerTitle},...x?{activeToolGroupItemId:S.activeToolGroupItemId,activeToolGroupTools:S.activeToolGroupTools}:{activeToolGroupTools:[]}},f?.clearOwner&&(st.current={})},[]),jd=q(f=>{for(let S of f)S.type==="user"&&typeof S.id=="string"&&mg.current.add(S.id)},[]),ml=q(()=>{fl.current={itemId:void 0,kind:"thinking",pendingText:""},Sr.current&&(clearTimeout(Sr.current),Sr.current=null);let f=AS(hn.current,mg.current);if(f.length>0){for(let S of f)mg.current.add(S.id);Fs.current?.(f.map(S=>Ao(S)))}Wd({clearOwner:!0}),zs([])},[Wd,zs]),Ud=q(f=>(xT.current+=1,`managed-foreground-${f}-${xT.current}`),[]),Zt=q(f=>(IT([f]),f.id),[IT]),$n=q((f,S)=>{st.current.workerId?Zt({id:`${S}-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:f.type,text:f.text,...f.icon?{icon:f.icon}:{},...f.tightSpacing?{tightSpacing:!0}:{},timestamp:Date.now()}):O(f)},[O,Zt]),vT=q((f,S)=>{let x=Date.now();st.current.workerId?Zt({id:`${S}-${x}-${Math.random().toString(36).slice(2,7)}`,type:"sidecar",text:f.text,...f.verdict?{verdict:f.verdict}:{},...f.delivery?{delivery:f.delivery}:{},timestamp:x}):O(f)},[O,Zt]),ui=q((f,S)=>{if(!f)return;let x;return Hd(I=>I.map(R=>R.id!==f?R:(x=S(R),x))),x},[Hd]),Xs=q((f,S)=>{let x=ut.current;if(x.activeKind===f){if(f==="thinking"&&x.activeThinkingItemId)return x.activeThinkingItemId;if(f==="assistant"&&x.activeAssistantItemId)return x.activeAssistantItemId;if(f==="tool_group"&&x.activeToolGroupItemId)return x.activeToolGroupItemId}let I=Date.now(),R=S?.trim()?`[${S.trim()}] `:"",N=x.activeToolGroupTools.some(j=>j.status===z.Executing);if(f==="thinking"){let j=Zt({id:Ud("thinking"),type:"thinking",timestamp:I,text:R});return ut.current={...ut.current,activeKind:"thinking",activeThinkingItemId:j,currentTurnThinkingItemId:j,activeAssistantItemId:void 0,...N?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},j}if(f==="assistant"){let j=Zt({id:Ud("assistant"),type:"assistant",timestamp:I,text:R});return ut.current={...ut.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:j,...N?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},j}let D=Zt({id:Ud("tool_group"),type:"tool_group",timestamp:I,tools:[]});return ut.current={...ut.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:D,activeToolGroupTools:[]},D},[Zt,Ud]),Nn=q(()=>{Sr.current&&(clearTimeout(Sr.current),Sr.current=null);let f=fl.current;if(!f.pendingText||!f.itemId)return;let S=f.pendingText,x=f.itemId,I=f.kind;f.pendingText="",ui(x,R=>R.type!==I?R:{...R,text:`${R.text}${S}`})},[ui]),bT=q(()=>{Sr.current||(Sr.current=setTimeout(Nn,h$))},[Nn]),Sg=q((f,S)=>{if(!S)return;let x=ut.current;if(f==="assistant"&&!OV(S,x.activeKind==="assistant"&&!!x.activeAssistantItemId))return;let I=x.workerTitle,R=Xs(f,I),N=fl.current;N.itemId===R&&N.kind===f?N.pendingText+=S:(Nn(),N.itemId=R,N.kind=f,N.pendingText=S),bT()},[Xs,Nn,bT]),RT=q(f=>{Oo.current=BV(Oo.current,f,S=>{if(st.current.workerId){Nn();let R=Do.current;f.mode==="replace"&&Hd(D=>DV(D,[R.assistantItemId,R.thinkingItemId],f.mode));let N=ut.current;ut.current={...N,activeKind:N.activeKind==="tool_group"?"tool_group":void 0,activeAssistantItemId:void 0,activeThinkingItemId:void 0,currentTurnThinkingItemId:void 0},fl.current={itemId:void 0,kind:"thinking",pendingText:""},Do.current={providerRequestId:f.providerRequestId};return}Ve(),oe();let x=Yg(S,"assistant"),I=Yg(S,"thinking");x&&me(x),I&&(fe(),Te(I.length),Pe(I))})},[me,Te,Pe,Ve,oe,Nn,Hd,fe]),kT=q(f=>{let S=f.trim();if(!S)return;let x=fl.current;x.kind==="thinking"&&x.pendingText&&(x.pendingText="",Sr.current&&(clearTimeout(Sr.current),Sr.current=null));let I=ut.current.workerTitle?.trim(),R=I?`[${I}] ${S}`:S,N=ut.current.currentTurnThinkingItemId;if(N){ui(N,j=>j.type==="thinking"?{...j,text:R}:j);return}let D=Xs("thinking",ut.current.workerTitle);ui(D,j=>j.type==="thinking"?{...j,text:R}:j)},[Xs,ui]),wr=q(f=>{Nn();let S=ut.current;if(S.activeToolGroupItemId&&S.activeToolGroupTools.some(D=>D.id===f.id)){let D=S.activeToolGroupTools.map(Z=>Z.id===f.id?f:Z),j=D.every(Z=>Z.status===z.Success||Z.status===z.Error||Z.status===z.Cancelled);ut.current={...S,...j?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:D}},ui(S.activeToolGroupItemId,Z=>Z.type==="tool_group"?{...Z,tools:D}:Z);return}let x=hn.current;for(let D=x.length-1;D>=0;D-=1){let j=x[D];if(j.type!=="tool_group"||!j.tools.some(J=>J.id===f.id))continue;let Z=j.tools.map(J=>J.id===f.id?f:J);ui(j.id,J=>J.type==="tool_group"?{...J,tools:Z}:J);return}let I=Xs("tool_group",S.workerTitle),N=S.activeKind==="tool_group"&&S.activeToolGroupItemId===I?S.activeToolGroupTools.some(D=>D.id===f.id)?S.activeToolGroupTools.map(D=>D.id===f.id?f:D):[...S.activeToolGroupTools,f]:[f];ut.current={...ut.current,activeKind:"tool_group",activeToolGroupItemId:I,activeToolGroupTools:N},ui(I,D=>D.type==="tool_group"?{...D,tools:N}:D)},[Xs,ui,Nn]),x$=q(f=>{Nn();let S=ut.current,x=S.activeToolGroupTools.some(N=>N.status===z.Executing),I=li.current.filter(N=>N.status===z.Executing),R=new Set(I.map(N=>N.id));ut.current={workerId:f?.workerId,workerTitle:f?.workerTitle,...x?{activeToolGroupItemId:S.activeToolGroupItemId,activeToolGroupTools:S.activeToolGroupTools}:{activeToolGroupTools:[]}},st.current={workerId:f?.workerId,workerTitle:f?.workerTitle},$r.current=[],ln.current=ln.current.filter(N=>R.has(N.id)),Jn(I),Ke(),Ie(void 0),te(),oe(),Ve(),kt(void 0)},[Nn,Ke,Ve,oe,Ie,Jn,kt,te]),T$=q(f=>{if(f.length===0)return[];let S=[],x=[...No.current],I=[...Vs.current];for(let R of f){let N=R.item,D=x.findIndex(j=>j.id===N.id);if(D>=0){let j=x[D];kh(j,N)||(x=x.map((Z,J)=>J===D?{...N,timestamp:j.timestamp}:Z))}else x=[...x,N].slice(-12),S.push(N);if(R.persistToHistory){let j=I.findIndex(Z=>Z.id===N.id);if(j>=0){let Z=I[j];kh(Z,N)||(I=I.map((J,Ne)=>Ne===j?{...N,timestamp:Z.timestamp}:J))}else I=[...I,N].slice(-48)}}return Vs.current=I,(S.length>0||x.some((R,N)=>!kh(R,No.current[N]??R)||R.id!==No.current[N]?.id))&&CT(x),S},[CT]),Vd=q(f=>{if(ln.current.findIndex(x=>x.id===f.id)===-1){ln.current=[...ln.current,f];return}ln.current=ln.current.map(x=>x.id===f.id?f:x)},[]),ji=q(f=>{let S=li.current.filter(x=>x.status===z.Executing);if(S.length!==0){if(f){let x=Ow(f);for(let I=S.length-1;I>=0;I-=1){let R=S[I];if(Ow(R.name)===x)return R}}return S[S.length-1]}},[]),Ys=q(()=>{let f=ji();Ie(f?Nw(f.name):void 0)},[ji,Ie]),ET=q(f=>(Vd(f),Jn([...li.current.filter(S=>S.id!==f.id),f]),Ys(),f),[Jn,Ys,Vd]),qs=q((f,S)=>{let x=li.current.find(R=>R.id===f);if(!x)return null;let I=S(x);return Vd(I),Jn(li.current.map(R=>R.id===f?I:R)),Ys(),I},[Jn,Ys,Vd]),MT=q((f,S,x)=>{if(f){let R=qs(f,x);if(R)return R}let I=ji(S);return I?qs(I.id,x):null},[ji,qs]),Gd=q((f,S,x,I,R)=>{let N=f??ji(R)?.id;return N?qs(N,D=>({...D,status:S,endTime:Date.now(),error:x,output:I})):null},[ji,qs]),hl=q((f,S)=>{let x=Date.now(),I=new Map;for(let R of li.current){if(R.status!==z.Executing)continue;let N=S(R);I.set(R.id,{...R,status:f,endTime:x,...N})}return I.size===0?[]:(ln.current=ln.current.map(R=>I.get(R.id)??R),Jn(li.current.map(R=>I.get(R.id)??R)),Ys(),[...I.values()])},[Jn,Ys]),Ui=q(()=>{Jn([])},[Jn]),{showHelp:_T,toggleHelp:C$,setShowHelp:AT}=Ww(),I$=q(f=>{Rd(f),bd(f.trim().length===0)},[]),Kd=mo(),LT=we(()=>Kd?Kd.state.visible&&Kd.suggestions.length>0:!1,[Kd]),[gl,PT]=Ge(!1),$T=Se(xd),Fo=q(()=>{cn.current&&(clearTimeout(cn.current),cn.current=null),Pr.current&&(clearTimeout(Pr.current),Pr.current=null)},[]);He(()=>{LT&&!gl&&PT(!0)},[LT,gl]),He(()=>{xd!==$T.current&&($T.current=xd,gl&&PT(!1))},[xd,gl]);let[Ye,Js]=Ge(null),Zn=Se(null),v$=Se(t_()),[je,On]=Ge(null),Nr=Se(null),zd=Se(je);zd.current=je;let[gn,Qs]=Ge(""),[Xd,xr]=Ge(0),wg=Se(""),yl=Se(void 0),NT=we(()=>{if(!mn)return;let{contextWindow:f,triggerPercent:S,triggerTokens:x,reservedResponseTokens:I}=mn;return{currentTokens:pT??n.contextTokenSnapshot?.currentTokens??zo(n.messages),contextWindow:f,triggerPercent:S,triggerTokens:x,reservedResponseTokens:I}},[n.messages,n.contextTokenSnapshot,mn,pT]),Sl=we(()=>{if(!Ye)return;let f=new Set(Ye.runtimeGrantSuggestions?.map(I=>I.kind)??[]);if(f.has("persistent"))return ie("confirm.instruction.runtime_persistent");if(f.has("session"))return ie("confirm.instruction.runtime_session");if(Ye.runtimeGrantSuggestions!==void 0)return ie("confirm.instruction.basic");let S=!!Ye.input._alwaysConfirm,x=F.permissionMode==="accept-edits"&&!S;return S?ie("confirm.instruction.protected"):x?ie("confirm.instruction.always"):ie("confirm.instruction.basic")},[Ye,F.permissionMode]),wt=ze.searchMode==="history",ue=ze.surface==="transcript",Or=!!Ye||!!je||wt,Bt=ue?Kt?kR:1e3:12,Vi=AL(c,ze.surface),OT=Vi.shellMode,xg=Vi.usesAlternateScreenShell,Ho=Vi.usesRendererViewportShell,Yd=Vi.usesRendererMouseTracking,DT=Vi.usesManagedMouseClicks,BT=Vi.usesManagedMouseWheel,Tg=Vi.usesManagedSelection,Ft=LL(c,ze.surface,V_(ze)),FT=G_(ze),qd=gl&&!ue,HT=q(()=>xx({items:Gs,managedLiveEvents:[],isLoading:H,isThinking:W.isThinking,thinkingCharCount:W.thinkingCharCount,thinkingContent:W.thinkingContent,currentResponse:W.currentResponse,currentTool:W.currentTool,activeToolCalls:Bo,toolInputCharCount:W.toolInputCharCount,toolInputContent:W.toolInputContent,lastLiveActivityLabel:Nd,workStripText:$o,iterationHistory:W.iterationHistory,currentIteration:W.currentIteration,isCompacting:W.isCompacting}),[Gs,H,W.isThinking,W.thinkingCharCount,W.thinkingContent,W.currentResponse,W.currentTool,Bo,W.toolInputCharCount,W.toolInputContent,Nd,$o,W.iterationHistory,W.currentIteration,W.isCompacting]);He(()=>{if(ue){gT(f=>f??HT());return}gT(null)},[HT,ue]);let wl=we(()=>kL({isTranscriptMode:ue,snapshot:dg,currentItemsLength:Gs.length,currentManagedLiveEventsLength:0,isLoading:H,currentResponse:W.currentResponse,thinkingContent:W.thinkingContent,activeToolCallsLength:Bo.length}),[Bo.length,H,ue,Gs.length,W.currentResponse,W.thinkingContent,dg]),en=ue?dg:null,Cg=we(()=>ML(Fd),[Fd]),b$=we(()=>!!(ul.length>0||WL(Q)),[ul.length,Q]),Jd=ul.length>0,un=c.streamingPreview&&b$,Zs=we(()=>EL({surface:"transcript",snapshot:en,promptItems:Fd,transcriptItems:Gs}),[en,Fd,Gs]),xl=we(()=>{if(!ue||Kt||Zs.length<=xS)return Zs;let f=Zs.slice(-xS),S=Zs.length-f.length;return[WR(S,f[0]?.timestamp),...f]},[Zs,ue,Kt]),xt=en?.isLoading??H,dt=c.streamingPreview?{isThinking:un?!1:W.isThinking,thinkingCharCount:un?0:W.thinkingCharCount,thinkingContent:un?"":W.thinkingContent,currentResponse:un?"":W.currentResponse,currentTool:un?void 0:W.currentTool,activeToolCalls:un?[]:Bo,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:un?Nd:void 0,iterationHistory:[],currentIteration:W.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:W.currentIteration,isCompacting:!1},Ee=c.streamingPreview?{isThinking:un?!1:en?.isThinking??W.isThinking,thinkingCharCount:un?0:en?.thinkingCharCount??W.thinkingCharCount,thinkingContent:un?"":en?.thinkingContent??W.thinkingContent,currentResponse:un?"":en?.currentResponse??W.currentResponse,currentTool:un?void 0:en?.currentTool??W.currentTool,activeToolCalls:un?[]:en?.activeToolCalls??Bo,toolInputCharCount:un?0:en?.toolInputCharCount??W.toolInputCharCount,toolInputContent:un?"":en?.toolInputContent??W.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:en?.lastLiveActivityLabel??Nd,iterationHistory:un?[]:en?.iterationHistory??W.iterationHistory,currentIteration:en?.currentIteration??W.currentIteration,isCompacting:en?.isCompacting??W.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:en?.currentIteration??W.currentIteration,isCompacting:!1},di=ue?ai:Ld,WT=!!Ld,jT=q(()=>xx({items:Cg,managedLiveEvents:[],isLoading:H,isThinking:dt.isThinking,thinkingCharCount:dt.thinkingCharCount,thinkingContent:dt.thinkingContent,currentResponse:dt.currentResponse,currentTool:dt.currentTool,activeToolCalls:dt.activeToolCalls,toolInputCharCount:dt.toolInputCharCount,toolInputContent:dt.toolInputContent,lastLiveActivityLabel:dt.lastLiveActivityLabel,iterationHistory:dt.iterationHistory,currentIteration:dt.currentIteration,isCompacting:dt.isCompacting}),[H,Cg,dt.activeToolCalls,dt.currentIteration,dt.currentResponse,dt.currentTool,dt.isCompacting,dt.isThinking,dt.iterationHistory,dt.lastLiveActivityLabel,dt.thinkingCharCount,dt.thinkingContent,dt.toolInputCharCount,dt.toolInputContent]);He(()=>{if(!WT){yT(null);return}yT(f=>f??jT())},[jT,WT]);let Tl=an?.items??Cg,yn=an?.isLoading??H,Be=an?{isThinking:an.isThinking,thinkingCharCount:an.thinkingCharCount,thinkingContent:an.thinkingContent,currentResponse:an.currentResponse,currentTool:an.currentTool,activeToolCalls:an.activeToolCalls,toolInputCharCount:an.toolInputCharCount,toolInputContent:an.toolInputContent,managedLiveEvents:an.managedLiveEvents,lastLiveActivityLabel:an.lastLiveActivityLabel,iterationHistory:an.iterationHistory,currentIteration:an.currentIteration,isCompacting:an.isCompacting}:dt,tn=ue?xl:Tl,Dr=ue?xt:yn,tt=ue?Ee:Be,UT=yn&&!W.currentResponse&&!W.thinkingContent&&Bo.length===0,R$=Su(fg?.status==="running"),zt=we(()=>Nv(fg,Date.now()),[fg,R$]),VT=zt.shouldRender?`Workflow ${zt.workflow}${zt.phase?` - ${zt.phase}`:""}`:void 0,fi=we(()=>QM($d,{now:Date.now(),lastAllCompletedAt:null}),[$d]),GT=T<=20?1:DS,k$=Su(gg.length>0),Ig=we(()=>Lk(gg,GT,Date.now()),[GT,gg,k$]),KT=kk({isTranscriptMode:ue,isLoading:H,hasWorkflowLiveSurface:zt.shouldRender,childActivityVisible:Ig.shouldRender}),ea=we(()=>{if(!ue)return[];let f=[];return f.push(...$v(zt)),H&&fi.shouldRender&&f.push(...YM(fi)),f},[ue,H,fi,zt]),Wo=we(()=>({config:Gt,sessionId:n.sessionId,workingDir:e.context?.executionCwd||e.context?.gitRoot||n.runtimeInfo?.executionCwd||n.gitRoot||process.cwd(),terminalWidth:ee,compactionInfo:mn??void 0}),[mn,n.sessionId,Gt,n.runtimeInfo?.executionCwd,e.context?.gitRoot,e.context?.executionCwd,ee]),Gi=we(()=>c.enabled&&mr?XV(Wo):void 0,[Wo,c.enabled,mr]),zT=Se(Hc),XT=Se(!1),vg=Se(!1),ta=NA({enabled:YV,useRendererViewportShell:Ho,isTranscriptMode:ue,hasCommitHandle:typeof ms(w)?.commitInlineScrollback=="function"}),Cl=we(()=>dm({items:Tl,viewportWidth:ee,maxLines:Bt,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[Tl,ee,Bt]),jo=we(()=>{let f=fm({activeItems:Cl.activeItems,viewportWidth:ee,isLoading:yn,maxLines:Bt,isThinking:Be.isThinking,thinkingCharCount:Be.thinkingCharCount,thinkingContent:Be.thinkingContent,streamingResponse:Be.currentResponse,currentTool:Be.currentTool,activeToolCalls:Be.activeToolCalls,toolInputCharCount:Be.toolInputCharCount,toolInputContent:Be.toolInputContent,iterationHistory:Be.iterationHistory,currentIteration:Be.currentIteration,isCompacting:Be.isCompacting,managedAgentMode:F.agentMode,managedPhase:yn?Q?.phase:void 0,managedHarnessProfile:yn?Q?.harnessProfile:void 0,managedWorkerTitle:yn?Q?.activeWorkerTitle:void 0,managedRound:yn?Q?.currentRound:void 0,managedMaxRounds:yn?Q?.maxRounds:void 0,managedGlobalWorkBudget:yn?Q?.globalWorkBudget:void 0,managedBudgetUsage:yn?Q?.budgetUsage:void 0,managedBudgetApprovalRequired:yn?Q?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Be.lastLiveActivityLabel,currentTodoActiveForm:Us,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:UT}),S=LR(Cl,f,Gi);return BA(S,ta)},[F.agentMode,ta,yn,Be.activeToolCalls,Be.currentIteration,Be.currentTool,Be.isCompacting,Be.currentResponse,Be.isThinking,Be.iterationHistory,Be.lastLiveActivityLabel,Be.thinkingCharCount,Be.thinkingContent,Be.toolInputCharCount,Be.toolInputContent,Q?.activeWorkerTitle,Q?.budgetApprovalRequired,Q?.budgetUsage,Q?.currentRound,Q?.globalWorkBudget,Q?.harnessProfile,Q?.maxRounds,Q?.phase,UT,Cl,Gi,ee,Bt,Us]),bg=we(()=>dm({items:xl,viewportWidth:ee,maxLines:Bt,showDetailedTools:Kt,showAllContent:Kt,showFullThinking:!0,windowed:!1}),[xl,ee,Bt,Kt]),Qd=we(()=>{if(!ue||Ho)return;let f=fm({activeItems:bg.activeItems,viewportWidth:ee,isLoading:xt,maxLines:Bt,isThinking:Ee.isThinking,thinkingCharCount:Ee.thinkingCharCount,thinkingContent:Ee.thinkingContent,streamingResponse:Ee.currentResponse,currentTool:Ee.currentTool,activeToolCalls:Ee.activeToolCalls,toolInputCharCount:Ee.toolInputCharCount,toolInputContent:Ee.toolInputContent,iterationHistory:Ee.iterationHistory,currentIteration:Ee.currentIteration,isCompacting:Ee.isCompacting,managedAgentMode:F.agentMode,managedPhase:xt?Q?.phase:void 0,managedHarnessProfile:xt?Q?.harnessProfile:void 0,managedWorkerTitle:xt?Q?.activeWorkerTitle:void 0,managedRound:xt?Q?.currentRound:void 0,managedMaxRounds:xt?Q?.maxRounds:void 0,managedGlobalWorkBudget:xt?Q?.globalWorkBudget:void 0,managedBudgetUsage:xt?Q?.budgetUsage:void 0,managedBudgetApprovalRequired:xt?Q?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ee.lastLiveActivityLabel,liveStatusLines:ea,currentTodoActiveForm:Us,showFullThinking:!0,showDetailedTools:Kt,showAllContent:Kt,showLiveProgressRows:!Jd,expandedItemKeys:Pn});return VL(wS(pm(bg,f)),Gi)},[F.agentMode,Pn,Jd,Gi,ue,Q?.activeWorkerTitle,Q?.budgetApprovalRequired,Q?.budgetUsage,Q?.currentRound,Q?.globalWorkBudget,Q?.harnessProfile,Q?.maxRounds,Q?.phase,ee,xt,Bt,bg,Ee.activeToolCalls,Ee.currentIteration,Ee.currentResponse,Ee.currentTool,Ee.isCompacting,Ee.isThinking,Ee.iterationHistory,Ee.lastLiveActivityLabel,Ee.thinkingCharCount,Ee.thinkingContent,Ee.toolInputCharCount,Ee.toolInputContent,Kt,ea,Ho,Us]),Il=we(()=>{if(Ft)return ue?VL(mm({items:tn,viewportWidth:ee,isLoading:Dr,maxLines:Bt,isThinking:tt.isThinking,thinkingCharCount:tt.thinkingCharCount,thinkingContent:tt.thinkingContent,streamingResponse:tt.currentResponse,currentTool:tt.currentTool,activeToolCalls:tt.activeToolCalls,toolInputCharCount:tt.toolInputCharCount,toolInputContent:tt.toolInputContent,iterationHistory:tt.iterationHistory,currentIteration:tt.currentIteration,isCompacting:tt.isCompacting,managedAgentMode:F.agentMode,managedPhase:Dr?Q?.phase:void 0,managedHarnessProfile:Dr?Q?.harnessProfile:void 0,managedWorkerTitle:Dr?Q?.activeWorkerTitle:void 0,managedRound:Dr?Q?.currentRound:void 0,managedMaxRounds:Dr?Q?.maxRounds:void 0,managedGlobalWorkBudget:Dr?Q?.globalWorkBudget:void 0,managedBudgetUsage:Dr?Q?.budgetUsage:void 0,managedBudgetApprovalRequired:Dr?Q?.budgetApprovalRequired:void 0,lastLiveActivityLabel:tt.lastLiveActivityLabel,liveStatusLines:ea,currentTodoActiveForm:Us,windowed:!0,showFullThinking:ue,showDetailedTools:Kt,showAllContent:Kt,showLiveProgressRows:ue&&!Jd,expandedItemKeys:ue?Pn:void 0}),Gi):wS(jo)},[F.agentMode,Dr,tn,Jd,Gi,tt.activeToolCalls,tt.currentIteration,tt.currentResponse,tt.currentTool,tt.isCompacting,tt.isThinking,tt.iterationHistory,tt.lastLiveActivityLabel,tt.thinkingCharCount,tt.thinkingContent,tt.toolInputCharCount,tt.toolInputContent,Pn,ue,Q?.activeWorkerTitle,Q?.budgetApprovalRequired,Q?.budgetUsage,Q?.currentRound,Q?.globalWorkBudget,Q?.harnessProfile,Q?.maxRounds,Q?.phase,jo,H,ue,ee,Bt,Ft,ea,Kt,Us]),Br=we(()=>Il??Qd,[Il,Qd]),vl=we(()=>wx({status:Q,isLoading:H,agentMode:F.agentMode}),[F.agentMode,H,Q]).workStripText,bl=en?.workStripText??$o,na=we(()=>wx({status:Q,isLoading:H,agentMode:F.agentMode,parallelTextOverride:bl}),[F.agentMode,bl,H,Q]),Uo=we(()=>VA(tn).filter(f=>f!==hm),[tn]),ct=we(()=>$h(ze,Uo,ze.selectedItemId),[Uo,ze]),Dn=we(()=>tn.find(f=>f.id===ct),[tn,ct]),YT=we(()=>({...ze,supportsSelection:ze.supportsSelection&&Ft,supportsCopyOnSelect:ze.supportsCopyOnSelect&&Ft}),[ze,Ft]),er=we(()=>mL({state:YT,selectableItemIds:Uo,selectedItemId:ct,selectedItemType:Dn?.type,isExpanded:ct?Pn.has(ct):!1}),[Pn,Uo,Dn?.type,ct,YT]),qT=er.selectionEnabled,JT=er.copyCapabilities.copyOnSelect,RK=er.selectedItemIndex,QT=we(()=>UA(Dn),[Dn]),Zd=we(()=>FA(tn.filter(f=>!CS(f))),[tn]),Xt=we(()=>HA(Zd,gn),[Zd,gn]),ef=we(()=>yL({isHistorySearchActive:wt,historySearchQuery:gn,matches:Xt,selectedIndex:Xd,anchorItemId:ze.searchAnchorItemId,useOverlaySurface:ze.supportsOverlaySurface&&ze.supportsSearchViewport&&Ft}),[Xt,gn,Xd,wt,ze.searchAnchorItemId,ze.supportsOverlaySurface,ze.supportsSearchViewport,Ft]),Ki=ef.clampedSelectedIndex,ZT=ef.statusText,Rg=ef.detailText,eC=ef.searchState,kK=er.detailState==="expanded",tf=er.selectionEnabled&&Uo.length>0&&!di,ra=er.copyCapabilities.message,nf=er.copyCapabilities.toolInput,rf=er.toggleDetail;He(()=>{if(vl){if(Pr.current&&(clearTimeout(Pr.current),Pr.current=null),$o===vl)return;if($o){cn.current&&(clearTimeout(cn.current),cn.current=null),dl(vl);return}cn.current&&clearTimeout(cn.current),cn.current=setTimeout(()=>{dl(vl),cn.current=null},400);return}if(!$o){cn.current&&(clearTimeout(cn.current),cn.current=null);return}cn.current&&(clearTimeout(cn.current),cn.current=null),Pr.current&&clearTimeout(Pr.current),Pr.current=setTimeout(()=>{dl(void 0),Pr.current=null},300)},[Fo,vl,$o]),He(()=>()=>{Fo()},[Fo]);let zi=we(()=>XA({state:ze,ownsViewport:Ft,isAwaitingUserInteraction:Or,isHistorySearchActive:wt,isTranscriptMode:ue,historySearchQuery:gn}),[gn,Or,wt,ue,ze,Ft]);He(()=>{Lr(f=>{let S=B_(f,gr);return S=D_(S,wl),S=H_(S,c.enabled&&Ft?!ag||wt||Or:ue||wt||Or),S=U_(S,Ki),S})},[Ki,c.enabled,gr,Or,wt,ue,wl,Ft,ag]),He(()=>{Xd!==Ki&&xr(Ki)},[Ki,Xd]),He(()=>{if(!wt){wg.current=gn;return}if(gn===wg.current)return;wg.current=gn;let f=jA(Zd,Xt,ze.searchAnchorItemId);xr(f)},[Xt,gn,wt,ze.searchAnchorItemId,Zd]);let tC=ue?Ee:{isThinking:Be.isThinking,thinkingCharCount:Be.thinkingCharCount,currentTool:Be.currentTool,activeToolCalls:Be.activeToolCalls,toolInputCharCount:Be.toolInputCharCount,toolInputContent:Be.toolInputContent,currentIteration:Be.currentIteration,isCompacting:Be.isCompacting},Rl=ue?xt:yn,[kg,tr]=Ge(()=>Ps(F.permissionMode,e.runtimeAutoModeControl?void 0:d.getGuardrail().getEngine(),s.engine));He(()=>{if(!e.runtimeAutoModeControl){Ir(F.permissionMode)||tr(void 0);return}if(!Ir(F.permissionMode)){tr(void 0),e.runtimeAutoModeControl.syncSettings?.(n.sessionId,F.permissionMode,s);return}tr(I=>Ps(F.permissionMode,I,s.engine));let f=!0;o(async()=>{let I=await e.runtimeAutoModeControl?.syncSettings?.(n.sessionId,F.permissionMode,s)??await e.runtimeAutoModeControl?.getStats(n.sessionId);f&&tr(Ps(F.permissionMode,I?.engine,s.engine))},"refresh")();let x=e.runtimeAutoModeControl.subscribe?.(n.sessionId,I=>{f&&tr(Ps(F.permissionMode,I?.engine,s.engine))});return()=>{f=!1,x?.close()}},[s,n.sessionId,F.permissionMode,e.runtimeAutoModeControl]);let of=we(()=>pL({sessionId:n.sessionId,permissionMode:F.permissionMode,agentMode:F.agentMode,provider:F.provider,model:F.model??jr(F.provider)??F.provider,thinking:F.thinking,reasoningMode:F.reasoningMode,effort:ke,reasoningEffortLabel:Zi({provider:F.provider,model:F.model,effort:ke,effortOverride:F.effortOverride,thinking:F.thinking,reasoningMode:F.reasoningMode}),isTranscriptMode:ue,streamingState:tC,maxIter:W.maxIter,contextUsage:NT,learning:lT,isLoading:Rl,managedState:{phase:Q?.phase,harnessProfile:Q?.harnessProfile,workerTitle:Q?.activeWorkerTitle,round:Q?.currentRound,maxRounds:Q?.maxRounds,globalWorkBudget:Q?.globalWorkBudget,budgetUsage:Q?.budgetUsage,budgetApprovalRequired:Q?.budgetApprovalRequired,idleWaiting:Q?.idleWaiting,idleWaitingPendingCount:Q?.idleWaitingPendingCount},autoModeEngine:kg}),[n.sessionId,F.permissionMode,F.agentMode,F.provider,F.model,F.thinking,F.reasoningMode,F.effortOverride,ke,ue,tC,W.maxIter,NT,lT,Rl,Q?.phase,Q?.harnessProfile,Q?.activeWorkerTitle,Q?.currentRound,Q?.maxRounds,Q?.globalWorkBudget,Q?.budgetUsage,Q?.budgetApprovalRequired,Q?.idleWaiting,Q?.idleWaitingPendingCount,kg]),Eg=Ye?"confirm":je?.kind,nC=we(()=>dL({isTranscriptMode:ue,isLoading:Rl,streamingState:Be,managedState:Rl?{phase:Q?.phase,harnessProfile:Q?.harnessProfile,workerTitle:Q?.activeWorkerTitle}:void 0,waitingReason:Eg,workflowBuilderMessage:ST??void 0,backgroundWorkflowMessage:VT}),[Be.activeToolCalls,Be.currentTool,Be.isCompacting,Be.isThinking,Be.thinkingCharCount,Be.toolInputCharCount,Be.toolInputContent,ue,Q?.activeWorkerTitle,Q?.harnessProfile,Q?.phase,Eg,Rl,ST,VT]),pi=lL({activity:nC})?nC:void 0,rC=pi?.text,iC=!!pi,oC=Se(!1);He(()=>{oC.current&&!H&&ci(f=>f.length>0?[]:f),oC.current=H},[H]);let Mg=we(()=>xm(of),[of]),sC=we(()=>Mg,[Mg]),aC=sC.text,E$=we(()=>wk(W.pendingInputs),[W.pendingInputs]),_g=we(()=>ZM({isHistorySearchActive:wt,isTranscriptMode:ue,pendingInputCount:W.pendingInputs.length,buffering:ze.buffering,pendingLiveUpdates:wl}),[wt,ue,wl,W.pendingInputs.length,ze.buffering]),cC=_g.leftItems,lC=_g.rightItems,uC=_g.summary,sf=we(()=>wL({historySearchQuery:gn,pendingInputCount:W.pendingInputs.length}),[gn,W.pendingInputs.length]),af=we(()=>[...SL({historySearchQuery:gn,isHistorySearchActive:wt,historySearchMatchCount:Xt.length,pendingInputCount:W.pendingInputs.length,maxPendingInputs:5}),...dT],[Xt.length,gn,wt,dT,W.pendingInputs.length]),dC=we(()=>af.map(f=>f.text).join(" | "),[af]),cf=we(()=>xL({inputText:og,isTranscriptMode:ue,isHistorySearchActive:wt}),[og,wt,ue]),fC=ze.supportsOverlaySurface&&ze.supportsSearchViewport&&Ft,lf=we(()=>hL({runtime:er,itemSummary:QT}),[QT,er]),Ag=we(()=>TL(sf),[sf]),pC=we(()=>CL({textSelection:di,selectionState:lf,isHistorySearchActive:wt,historySearchDetailText:Rg,historySearchHasMatches:!!ZT&&Xt.length>0,showAllActive:Kt,baseFooterNotices:sf}),[di,sf,Rg,Xt.length,ZT,wt,Kt,lf]),M$=pC.secondaryText,_$=pC.budgetNotices,mC=ue?_$:Ag,hC=T,gC=ue?"":og,yC=ue?void 0:E$,SC=bl,wC=ue?!1:_T,xC=zt.shouldRender?GM(zt):0,TC=H&&fi.shouldRender?fi.rows.length:0,CC=KT?Bm(Ig):0,nn=we(()=>P_({terminalRows:hC,terminalWidth:ee,windowedTranscript:Ho,inputText:gC,footerHeaderText:uC,activitySummary:ue?void 0:rC,activityBarVisible:ue?!1:iC,workflowSurfaceRows:ue?0:xC,childActivitySurfaceRows:ue?0:CC,todoSurfaceRows:ue?0:TC,pendingInputSummary:yC,stashNoticeSummary:cf,notificationSummary:dC,statusNoticeSummary:mC.join(" | "),workStripText:SC,suggestionsReserved:qd,suggestionsMode:"inline",showHelp:wC,statusBarText:aC,confirmPrompt:Ye?.prompt,confirmInstruction:Sl,dialogMode:"inline",reviewHint:c.enabled&&Ft?void 0:zi.browseHintText,uiRequest:je?je.kind==="select"?{kind:"select",title:je.title,options:je.options.map(f=>({label:f.label,description:f.description})),buffer:je.buffer,error:je.error}:{kind:"input",prompt:je.prompt,defaultValue:je.defaultValue,buffer:je.buffer,error:je.error}:null}),[hC,ee,gC,uC,rC,iC,ue,xC,CC,TC,yC,cf,dC,mC,SC,qd,fC,wC,aC,Ye,Sl,c.enabled,zi.browseHintText,Ft,je]),Lg=we(()=>{if(!ta)return{model:jo,committedSections:[]};let{committedSections:f,liveRows:S}=PR(Cl.staticSections,jo.rows,jo.previewRows,nn.messageRows);return{model:{...jo,staticSections:[],rows:S,previewRows:[]},committedSections:f}},[ta,jo,Cl.staticSections,nn.messageRows]),IC=Lg.model;He(()=>{let f=ms(w),S=typeof f?.commitInlineScrollback=="function",x=OA({active:ta,hasCommitHandle:S,wasActive:XT.current,forceRebuild:vg.current,prior:zT.current,finalizedSections:Lg.committedSections,bannerSection:Gi,width:ee,identify:$R}),I=!1,R=!1;if(x.kind==="commit"){let D=x.sections.flatMap(Z=>Z.rows),j=$A(D.length>0?[{key:"il-delta",rows:D}]:[],{width:ee,theme:ae("dark")});if(R=j.length>0,x.mode==="append"&&!j)GL("empty-append-text");else try{f?.commitInlineScrollback?.({mode:x.mode,text:j}),I=!0}catch(Z){GL("commit-threw",Z)}}let N=DA(x,{committed:I,hadContent:R},vg.current);zT.current=N.state,XT.current=N.wasActive,vg.current=N.owns},[ta,Lg.committedSections,Gi,ee,w]);let A$=we(()=>pe($m,{reserveSpace:qd,width:ee,hidden:ue,mode:"inline"}),[qd,ee,ue,fC]),kl=we(()=>YA(nn.messageRows),[nn.messageRows]),vC=we(()=>qA(kl),[kl]),ia=!FT&&c.transcriptSpinnerAnimation,El=Br?Br.rows.length+Br.previewRows.length:s$,uf=q(f=>{Br||a$(f.scrollHeight)},[Br]),Ml=q(f=>nL({window:f,stickyHeader:zi.stickyHeader,width:ee,topChromeRows:0}),[ee,zi.stickyHeader]),oa=q((f=il.current,S=Ad.current,x=cg.current?Ml(cg.current):_d.current)=>{if(!x||f.length===0){Hs.current=null;return}_d.current=x,Hs.current=rL(f,{allRows:S,rowIndexByKey:px(S),topOffsetRows:x.topOffsetRows,viewportHeight:x.contentWindow.viewportHeight,animateSpinners:ia})},[Ml,ia]),_l=q(()=>{let f=_d.current;return f?.contentWindow.viewportHeight&&f.contentWindow.viewportHeight>0?f.contentWindow.viewportHeight:nn.messageRows},[nn.messageRows]),L$=q(f=>{cg.current=f;let S=Ml(f);_d.current=S,oa(il.current,Ad.current,S)},[oa,Ml]),df=q(f=>{il.current=f.rows,Ad.current=f.allRows,oa(f.rows,f.allRows)},[oa]),dn=q(()=>{yr.current=null,lg(void 0),ug(void 0)},[]),Pg=q(()=>{dn(),Lr(f=>Fc(f,void 0))},[dn]);He(()=>{oa()},[oa]),He(()=>{l$(f=>JA(f,El,nn.messageRows))},[El,nn.messageRows]),He(()=>{if(!Ws)return;let f=setTimeout(()=>{hT(void 0)},2e3);return()=>{clearTimeout(f)}},[Ws]);let Bn=q((f,S="success")=>{let x=f?.trim();x&&hT({text:x,tone:S})},[]);He(()=>e.subscribeTransientNotices?.(f=>{Bn(f.text,f.tone)}),[e.subscribeTransientNotices,Bn]);let P$=q(f=>{Bn(f,"warning")},[Bn]),sa=q((f,S)=>{let x=S instanceof Error?S.message:String(S);return`${f}: ${x}`},[]),ff=q(async f=>{let S=f??di;if(!S)return!1;let x=S.text.trimEnd();if(!x)return!1;try{return await Ul(x,{terminalWrite:k}),Bn(`Copied ${S.rowCount} selected line${S.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(I){return Bn(sa("Failed to copy transcript selection",I),"warning"),!1}},[di,sa,Bn,k]),aa=q(f=>{if(!f||ZA({items:tn,renderModel:Br,terminalWidth:ee,transcriptMaxLines:Bt,viewportRows:_l(),itemId:f,visibleRows:il.current,expandedItemKeys:Pn,showDetailedTools:!1}))return;let S=eL({items:tn,renderModel:Br,terminalWidth:ee,transcriptMaxLines:Bt,viewportRows:_l(),itemId:f,expandedItemKeys:Pn,showDetailedTools:!1});kd(S)},[tn,ee,Bt,Br,Pn,_l,kd,il]),bC=q(f=>{Lr(S=>Fc(S,f)),f&&aa(f)},[aa]),$g=q(f=>{f&&aa(f)},[aa]),RC=q(f=>{if(!tf)return;let S=GA(Uo,ct,f);S&&bC(S)},[tf,Uo,ct,bC]),kC=q(()=>{!rf||!ct||(f$(f=>{let S=new Set(f);return S.has(ct)?S.delete(ct):S.add(ct),S}),aa(ct))},[aa,rf,ct]),EC=q(async()=>{if(!ra||!Dn)return;let f=fx(Dn);if(f)try{await Ul(f,{terminalWrite:k}),Bn("Copied selected transcript entry to clipboard.","success")}catch(S){Bn(sa("Failed to copy transcript entry",S),"warning")}},[sa,ra,Dn,Bn,k]),MC=q(async()=>{if(!nf||!Dn)return;let f=KA(Dn);if(f)try{await Ul(f,{terminalWrite:k}),Bn("Copied selected tool args to clipboard.","success")}catch(S){Bn(sa("Failed to copy tool args",S),"warning")}},[sa,nf,Dn,Bn,k]),Al=q(()=>Ad.current,[]),_C=q((f,S)=>{if(!c.enabled||!Ft)return;let x=Hs.current;return x?hx(x,f,S):void 0},[c.enabled,Ft]),ca=q((f,S,x)=>{let I=Al(),R=sL(I,f,S,{animateSpinners:ia,selectFullRowOnCollapsed:x?.selectFullRowOnCollapsed});ue?ug(R):lg(R);let N=I[Math.max(0,Math.min(S.modelRowIndex,I.length-1))];return x?.updateSelectedItem&&N?.itemId&&Lr(D=>Fc(D,N.itemId)),R},[ue,Al,ia]),AC=q((f,S)=>{if(!f)return;yr.current=null;let x={...f,focus:S?.focusPoint??f.focus};if(!(x.mode!=="char"||x.didDrag)){dn();return}let R=ca(x.anchor,x.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!R){dn();return}return S?.copySelection!==!1&&ff(R),R},[dn,ff,ca]),Ng=q(()=>{if(!ue||!tn.length||Ye||je)return;dn();let f=tL({items:tn,selectedItemId:ct,renderModel:Br,terminalWidth:ee,transcriptMaxLines:Bt,viewportRows:_l(),scrollOffset:gr,expandedItemKeys:Pn,showDetailedTools:!1,preferViewportAnchor:!0});Lr(S=>W_(S,{anchorItemId:f,initialMatchIndex:0})),Qs(""),xr(0)},[Ye,tn,Pn,gr,ue,ct,Br,ee,Bt,je,_l,dn]),Og=q(()=>{Lr(f=>j_(f)),Qs(""),xr(0),dn()},[dn]),pf=q(()=>{!wt||Xt.length===0||xr(-1)},[Xt.length,wt]),LC=we(()=>{if(!Ye)return null;if(Ye.tool==="exit_plan_mode"){let f=typeof Ye.input.plan=="string"?Ye.input.plan:void 0;return{prompt:Ye.prompt.split(`
164
- `,1)[0]??Ye.prompt,instruction:Sl,planContent:f}}return{prompt:Ye.prompt,instruction:Sl}},[Sl,Ye]),PC=we(()=>je?je.kind==="select"?{kind:"select",title:je.title,options:je.options,buffer:je.buffer,error:je.error,visibleSelectOptions:nn.visibleSelectOptions,focusedIndex:je.focusedIndex,selectedIndices:je.selectedIndices,multiSelect:je.multiSelect}:{kind:"input",prompt:je.prompt,defaultValue:je.defaultValue,buffer:je.buffer,error:je.error}:null,[je,nn.visibleSelectOptions]),$$=we(()=>pe(Nm,{confirm:LC,request:PC}),[LC,PC]),Dg=we(()=>{if(Ws)return pe(jM,{text:Ws.text,tone:Ws.tone})},[Ws]),Bg=we(()=>{if(Dg)return pe(M,{flexDirection:"column",width:"100%",children:Dg})},[Dg]),mf=q(()=>{Lr(f=>F_(O_(f))),sg(!1),Md(),Qs(""),xr(0),dn()},[dn,Md]),$C=q(()=>{ue&&sg(f=>!f)},[ue]),N$=q(()=>{if(ue){mf();return}sg(!1),Lr(f=>N_(f)),Qs(""),xr(0),dn()},[dn,mf,ue]);He(()=>{qT||!ze.selectedItemId||Lr(f=>Fc(f,void 0))},[qT,ze.selectedItemId]),He(()=>{if(!ue||!ra||!JT){yl.current=void 0;return}if(ai||!ct||!Dn)return;if(!yl.current){yl.current=ct;return}if(yl.current===ct)return;yl.current=ct;let f=fx(Dn);f&&Ul(f,{terminalWrite:k}).catch(()=>{})},[ue,Dn,ct,ra,JT,ai,k]),He(()=>{if(w?.isTTY!==!0)return;let f=ms(w);f?.setShellMode?.(OT,Yd),xg||f?.setAltScreenActive?.(!1)},[OT,w,xg,Yd]);let O$=we(()=>e_(i,()=>ig.current),[i]),Oe=Se({...e,thinking:F.thinking,reasoningMode:F.reasoningMode,effort:At,agentMode:F.agentMode,workflowRunsBaseDir:qi("workflow-runs",es(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:O$,persistedByHost:!0},guardrails:e.runtimeRunner?void 0:Ix(F.permissionMode,d)});He(()=>{Oe.current.effort=At},[At]);let Ll=q(f=>{let S=f.workspaceRoot??void 0;n.runtimeInfo=f,n.gitRoot=S,Oe.current.context={...Oe.current.context,gitRoot:S,executionCwd:f.executionCwd??S??process.cwd()}},[n]),Fn=Se(F.permissionMode),NC=Se(0);He(()=>{Fn.current=F.permissionMode},[F.permissionMode]);let D$=we(()=>Na(),[]),OC=Se(D$),bt=Se(F);He(()=>{bt.current=F},[F]);let Fg=Se(null);Fg.current===null&&(Fg.current=jf({getProvider:o(()=>Ko(bt.current.provider),"getProvider"),getModel:o(()=>bt.current.model??"","getModel")}));let DC=Se(Kf());He(()=>{F.permissionMode==="auto-in-project"&&DC.current()},[]);let Hg=q(async f=>{let S=++NC.current;Ae(R=>({...R,permissionMode:f})),Fn.current=f,tr(Ps(f,void 0,s.engine));let x=await e.runtimeAutoModeControl?.syncSettings?.(n.sessionId,f,s);if(S!==NC.current)return;let I=Qo({provider:bt.current.provider,model:bt.current.model,effort:bt.current.effort,effortOverride:bt.current.effortOverride,permissionMode:f,planModeEffort:bt.current.planModeEffort,thinking:bt.current.thinking,reasoningMode:bt.current.reasoningMode});if(Oe.current={...Oe.current,effort:I.runtimeEffort,guardrails:e.runtimeRunner?void 0:Ix(f,d)},!Ir(f))tr(void 0);else if(e.runtimeAutoModeControl){let R=x??await e.runtimeAutoModeControl.getStats(n.sessionId);tr(Ps(f,R?.engine,s.engine))}else tr(d.getGuardrail().getEngine());f==="auto-in-project"&&DC.current()},[d,s,n.sessionId,e.runtimeAutoModeControl,e.runtimeRunner]),BC=Se(W.pendingInputs),lt=Se(!1),FC=Se(0),Wg=Se(null),Pl=Se(0),hf=q(()=>{if(tl.current)return;let f=Od.current?.trim(),S=y.current.length>0?y.current[y.current.length-1]:void 0,x=S&&"text"in S&&typeof S.text=="string"?S.text.trim():void 0,R=hn.current.length>0?[...hn.current.map(N=>Ao(N)),...f&&f!==x?[{type:"info",text:f}]:[]]:[...hn.current.map(N=>Ao(N)),...HV(We(),K(),{toolCalls:ln.current,toolNames:$r.current,infoItems:f&&f!==x?[f]:[]})];R.length!==0&&(tl.current=!0,jd(hn.current),Fs.current?.(R))},[K,We,jd]);He(()=>{BC.current=W.pendingInputs},[W.pendingInputs]);let HC=q(()=>{lt.current=!0,_e(),he(),te(),oe(),Ke(),Ve(),Ie(void 0),Ui(),kt(void 0),ml(),No.current=[],Vs.current=[],gt.current=null,Od.current=null,ll([]),Pd(null),js(null),Fo(),dl(void 0),ne(!1),w?.isTTY===!0&&ms(w)?.clear?.()},[_e,Ve,oe,Ke,Fo,Ui,ml,Ie,ll,ne,kt,he,te,w]),gf=q(f=>{let S=xI(),x=S.list().filter(R=>R.status==="running"||R.status==="paused");if(x.length===0)return!1;for(let R of x)S.stop(R.runId,f);al(R=>!R||R.status!=="running"||!x.some(N=>N.runId===R.runId)?R:{...R,status:"stopped",activeAgents:[],message:"Workflow stopped by user."});let I=x[0];return x.length===1&&I?$n({type:"info",text:`Stopped workflow ${I.workflow} (${I.runId}).`},"workflow-stop"):$n({type:"info",text:`Stopped ${x.length} active workflows.`},"workflow-stop"),!0},[$n,al]);He(()=>{if(!zt.shouldRender)return;let f=o(()=>{gf("stopped by Ctrl+C")},"handleSigint");return process.on("SIGINT",f),()=>{process.off("SIGINT",f)}},[gf,zt.shouldRender]),Un(Sn.Critical,f=>{let S=f.name==="escape",x=Date.now(),I=S&&!ue&&!Or&&rl&&W.pendingInputs.length===0&&(H||zt.shouldRender),R=I&&(f.meta===!0||x-FC.current<vV);if(FC.current=I?x:0,nA({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ue,isAwaitingUserInteraction:Or,isInputEmpty:rl,isDoubleEscape:R,pendingInputCount:W.pendingInputs.length,hasTranscriptTextSelection:!!ai,hasActiveWorkflow:zt.shouldRender}))return gf(f.ctrl?"stopped by Ctrl+C":"stopped by Escape");if(!H)return!1;switch(rA({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ue,isAwaitingUserInteraction:Or,isInputEmpty:rl,isDoubleEscape:R,pendingInputCount:W.pendingInputs.length,hasTranscriptTextSelection:!!ai}).kind){case"interrupt":return hf(),HC(),!0;case"pop-pending-input":return pn(),!0;default:break}return!1},[H,ue,Or,rl,W.pendingInputs.length,pn,hf,HC,gf,ai,zt.shouldRender]),Un(Sn.Critical,f=>{let S=Z_({itemsLength:tn.length,currentResponse:tt.currentResponse,thinkingContent:tt.thinkingContent,activeToolCallsLength:tt.activeToolCalls.length}),x=eA({keyName:f.name,hasTranscript:S,historyScrollOffset:gr,reviewPageSize:kl,reviewWheelStep:vC,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:DT,supportsMouseTracking:ze.supportsMouseTracking,usesRendererMouseTracking:Yd,usesManagedMouseWheel:BT,supportsWheelHistory:ze.supportsWheelHistory});if(x.kind==="mouse-phase"){let R=f.mouse;if(!R)return!1;x.phase==="press"&&yr.current&&AC(yr.current);let N=_C(R.row,R.column);if(x.phase==="press"){if(!N||!S)return di||ct?(Pg(),!0):(dn(),!1);let D=$L({previous:mT.current,time:Date.now(),row:R.row,column:R.column});mT.current=D;let j=D.count>=3?"line":D.count===2?"word":"char";if(pf(),Lr(Z=>Fc(Z,void 0)),ue?ug(void 0):lg(void 0),j!=="char"){let Z=Vh(Al(),N.point,j);if(Z)return yr.current={anchor:Z.start,focus:Z.end,didDrag:!1,mode:j,anchorSpan:Z},ca(Z.start,Z.end,{updateSelectedItem:!1}),!0}return yr.current={anchor:N.point,focus:N.point,didDrag:!1,mode:"char"},!0}if(!yr.current)return!1;if(x.phase==="drag"){let D=Hs.current,j=D?cL(D,R.row):0;j!==0&&Ed(j);let Z=N??(D?gx(D,R.row,R.column):void 0);if(!Z)return!1;let J=yr.current;if(J.mode!=="char"&&J.anchorSpan){let Ne=Vh(Al(),Z.point,J.mode);if(!Ne)return!1;let Fe=Cx(J.anchorSpan,Ne);return yr.current={...J,anchor:Fe.anchor,focus:Fe.focus,didDrag:!0},ca(Fe.anchor,Fe.focus,{updateSelectedItem:!1}),!0}return yr.current={...J,focus:Z.point,didDrag:!0},ca(J.anchor,Z.point,{updateSelectedItem:!1}),!0}if(x.phase==="release"){let D=yr.current,j=D.focus,J=(N??(Hs.current?gx(Hs.current,R.row,R.column):void 0))?.point??j;if(D.mode!=="char"&&D.anchorSpan){let Ne=Vh(Al(),J,D.mode);if(Ne){let Fe=Cx(D.anchorSpan,Ne);D.anchor=Fe.anchor,J=Fe.focus}}return AC(D,{focusPoint:J}),!0}}if(x.kind==="scroll-by")return pf(),Ed(x.delta),!0;if(x.kind==="consume")return!0;let I=iA({key:f,isTranscriptMode:ue,isHistorySearchActive:wt,historySearchMatchCount:Xt.length,hasTextSelection:!!di,hasFocusedItem:!!ct,canCopySelectedItem:ra,canCopySelectedToolInput:nf,canToggleSelectedDetail:rf,canCycleTranscriptSelection:tf});return oA({action:I,hasTranscript:S,isTranscriptMode:ue,pageScrollDelta:kl,disarmHistorySearchSelection:pf,scrollTranscriptBy:Ed,closeHistorySearchSurface:Og,backspaceHistorySearchQuery:o(()=>{Qs(R=>R.slice(0,-1)),xr(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:o(R=>{xr(N=>dx(Xt.length,N,R))},"stepHistorySearchSelection"),submitHistorySearchSelection:o(()=>{let R=Xt[Ki];R&&($g(R.itemId),Og())},"submitHistorySearchSelection"),appendHistorySearchQuery:o(R=>{Qs(N=>N+R),xr(0)},"appendHistorySearchQuery"),openHistorySearchSurface:Ng,clearTranscriptSelectionFocus:Pg,exitTranscriptModeSurface:mf,toggleTranscriptShowAll:$C,scrollTranscriptHome:o(()=>{kd(Math.max(0,El-nn.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:o(()=>{Md(),dn()},"scrollTranscriptToBottom"),cycleTranscriptSelection:RC,copySelectedTranscriptText:o(()=>{ff()},"copySelectedTranscriptText"),copySelectedTranscriptItem:o(()=>{EC()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:o(()=>{MC()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:kC,navigateSearchMatch:o(R=>{xr(N=>{let D=dx(Xt.length,N,R),j=Xt[D];return j&&$g(j.itemId),D})},"navigateSearchMatch"),dumpTranscriptToScrollback:o(()=>{sA({items:tn.filter(R=>!CS(R)),exitAltScreen:o(()=>{k(jp({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:o(R=>{k(R)},"writeToScrollback"),enterAltScreen:o(()=>{k(Wp({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[ue,tn,tt.currentResponse,tt.thinkingContent,tt.activeToolCalls,gr,El,kl,vC,ct,Pg,mf,$C,ze,Ed,kd,Md,tf,Ki,dn,ff,Xt,Ng,Og,pf,RC,ra,EC,nf,MC,rf,kC,$g,di,_C,ze.supportsMouseTracking,ai,DT,BT,Tg,Ho,Yd,ca,nn.messageRows]),Un(f=>{if(!Ye)return!1;let S=f.sequence.trim().toLowerCase(),x=Ye.runtimeGrantSuggestions?.find(Z=>Z.kind==="session"),I=Ye.runtimeGrantSuggestions?.find(Z=>Z.kind==="persistent"),R=!!Ye.input._alwaysConfirm,N=Ye.runtimeGrantSuggestions!==void 0,D=I!==void 0||!N&&F.permissionMode==="accept-edits"&&!R,j=o(Z=>{let J=`${ie("dialog.confirm")} ${Ye.prompt}
165
- \u2192 ${ie(`confirm.result.${Z}`)}`;!!st.current.workerId?Zt({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:J,timestamp:Date.now()}):O({type:"info",text:J})},"recordConfirmResult");return S==="y"||S==="yes"?(j("approved"),Js(null),Zn.current?.({confirmed:!0}),Zn.current=null,!0):x&&(S==="s"||S==="session")?(j("approved_session"),Js(null),Zn.current?.({confirmed:!0,runtimeGrantKind:"session"}),Zn.current=null,!0):D&&(S==="a"||S==="always")?(j("approved_always"),Js(null),Zn.current?.(I?{confirmed:!0,runtimeGrantKind:"persistent"}:{confirmed:!0,always:!0}),Zn.current=null,!0):S==="n"||S==="no"||f.name==="escape"?(j("denied"),Js(null),Zn.current?.({confirmed:!1}),Zn.current=null,!0):f.insertable||f.name==="return"},{isActive:!!Ye,priority:Sn.Critical});let yf=q(f=>{On(null),Nr.current?.(f),Nr.current=null},[]),mi=q((f,S,x,I,R)=>S.length===0||R?.aborted?Promise.resolve(void 0):new Promise(N=>{let D=o(J=>{R?.removeEventListener("abort",j),Nr.current===D&&(Nr.current=null),N(J)},"settle"),j=o(()=>{Nr.current===D&&(On(null),D(void 0))},"onAbort");Nr.current=D,R?.addEventListener("abort",j,{once:!0});let Z=I?.defaultValue===void 0?-1:S.findIndex(J=>J.value===I.defaultValue);On({kind:"select",title:f,options:S,buffer:"",focusedIndex:Math.max(0,Z),selectedIndices:x===!0&&Z>=0?[Z]:[],multiSelect:x,minSelections:I?.minSelections,maxSelections:I?.maxSelections})}),[]),B$=q((f,S)=>mi(f,S.map(x=>({label:x,value:x}))).then(x=>Array.isArray(x)?x[0]:x),[mi]),F$=q(async f=>{let S=e.learning;if(!S)return;let x=f;if(!x){let D=await S.list({limit:200});if(D.items.length===0){Cd([{id:"learning-center-empty",text:"Learning Center has no learned capabilities.",tone:"accent"}]);return}let j=await mi("Learning Center \u2014 type to search",RV(D.items));x=Array.isArray(j)?j[0]:j}if(!x)return;let I=await S.get(x),R=await mi(`${I.displayName} \xB7 ${I.carrier} \xB7 ${I.lifecycle}`,bV(I)),N=Array.isArray(R)?R[0]:R;N&&(await kV(S,I.capabilityId,N),uT(await S.getSnapshot()))},[e.learning,mi]),WC=q(async f=>{let S=f.options?Uh(f.options):[],x=await mi(Sx(f),S,!1);return x===void 0?Ca:Array.isArray(x)?x[0]??Ca:x},[mi]);He(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:S}=await import("./construction-bootstrap-OUKXVNUQ.js");f||S(WC)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:S}=await import("./construction-bootstrap-OUKXVNUQ.js");S(null)})()}},[WC]);let la=q((f,S,x)=>x?.aborted?Promise.resolve(void 0):new Promise(I=>{let R=o(D=>{x?.removeEventListener("abort",N),Nr.current===R&&(Nr.current=null),I(Array.isArray(D)?D[0]:D)},"settle"),N=o(()=>{Nr.current===R&&(On(null),R(void 0))},"onAbort");Nr.current=R,x?.addEventListener("abort",N,{once:!0}),On({kind:"input",prompt:f,defaultValue:S,buffer:""})}),[]);Un(f=>{let S=zd.current;if(!S)return!1;if(f.name==="escape")return yf(void 0),!0;if(S.kind==="select"){let x=S.options.length;if(f.name==="up"||f.sequence==="k")return On(I=>I&&I.kind==="select"?{...I,focusedIndex:(I.focusedIndex-1+x)%x,error:void 0}:I),!0;if(f.name==="down"||f.sequence==="j")return On(I=>I&&I.kind==="select"?{...I,focusedIndex:(I.focusedIndex+1)%x,error:void 0}:I),!0;if(f.sequence===" "&&S.multiSelect)return On(I=>{if(!I||I.kind!=="select")return I;let R=I.focusedIndex,N=I.selectedIndices.includes(R)?I.selectedIndices.filter(D=>D!==R):[...I.selectedIndices,R];return{...I,selectedIndices:N,error:void 0}}),!0;if(f.name==="return"){let I=zd.current;if(!I||I.kind!=="select")return!1;if(I.multiSelect){let R=I.selectedIndices.length,{minSelections:N,maxSelections:D}=I,j=R===0&&N!==0?ie("select.multiselect_empty"):N!==void 0&&R<N?ie("select.multiselect_min",{min:String(N)}):D!==void 0&&R>D?ie("select.multiselect_max",{max:String(D)}):void 0;if(j!==void 0)return On(J=>J&&J.kind==="select"?{...J,error:j}:J),!0;let Z=I.selectedIndices.slice().sort((J,Ne)=>J-Ne).map(J=>I.options[J]?.value).filter(J=>typeof J=="string"&&J.length>0);yf(Z)}else yf(I.options[I.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(f.sequence)){let I=Number.parseInt(f.sequence,10)-1;if(I>=0&&I<x)return S.multiSelect?On(R=>{if(!R||R.kind!=="select")return R;let N=R.selectedIndices.includes(I)?R.selectedIndices.filter(D=>D!==I):[...R.selectedIndices,I];return{...R,focusedIndex:I,selectedIndices:N,error:void 0}}):On(R=>R&&R.kind==="select"?{...R,focusedIndex:I,error:void 0}:R),!0}return!1}if(f.name==="return"){let x=zd.current;if(!x||x.kind!=="input")return!1;let I=x.buffer.trim();return yf(I===""?x.defaultValue??void 0:I),!0}return f.name==="backspace"||f.name==="delete"?(On(x=>x&&x.kind==="input"?{...x,buffer:x.buffer.slice(0,-1),error:void 0}:x),!0):(f.insertable||f.isPasted===!0)&&!f.ctrl&&!f.meta?(On(x=>x&&x.kind==="input"?{...x,buffer:x.buffer+f.sequence,error:void 0}:x),!0):!1},{isActive:!!je,priority:Sn.Critical}),He(()=>{if(n.messages.length>0&&E.length===0){if(n.uiHistory?.length){let f=Zr(n.uiHistory);f.length!==n.uiHistory.length&&(n.uiHistory=f),G(Uu({messages:n.messages,uiHistory:f}));return}G(Uu({messages:n.messages}))}},[n.messages,n.uiHistory,E.length,G]),He(()=>{Mf(n.gitRoot)},[n.gitRoot]),He(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&mI({executionCwd:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:F.repoIntelligenceMode})},[n.gitRoot,n.runtimeInfo?.executionCwd,F.repoIntelligenceMode]);let $l=q(()=>({onOutputSegmentStart:o((f,S)=>{lt.current||Du(S)||RT(f)},"onOutputSegmentStart"),onMemoryOutcomeDigest:o((f,S)=>{if(f.sessionId!==n.sessionId){e.events?.onMemoryOutcomeDigest?.(f,S);return}n.lineage=Pf(n.lineage??qe(n.messages),f,S?.jobId)},"onMemoryOutcomeDigest"),onMemoryReviewReceipt:o(f=>{if(f.sessionId!==void 0&&f.sessionId!==n.sessionId){e.events?.onMemoryReviewReceipt?.(f);return}n.lineage=$f(n.lineage??qe(n.messages),f)},"onMemoryReviewReceipt"),onMemoryNotice:o(f=>{if(f.sessionId!==void 0&&f.sessionId!==n.sessionId){e.events?.onMemoryNotice?.(f);return}let S=n.lineage??qe(n.messages),x=Nf(S,{...f,createdAt:new Date().toISOString()});n.lineage=x,x!==S&&O({type:"info",text:`[memory] ${f.summaries.slice(0,3).join("; ")}`}),e.events?.onMemoryNotice?.(f)},"onMemoryNotice"),onThinkingDelta:o((f,S)=>{if(lt.current||Qn(S,"thinking",f,{append:!0}))return;if(S?.providerRequestId!==void 0){let R=xf(Oo.current,{type:"thinking.delta",providerRequestId:S.providerRequestId,text:f});if(Oo.current=R.state,!R.accepted)return}W.currentTool&&(Ie(void 0),Ke());let{header:x}=g_(We()+f),I=x?`[Thinking: ${x}]`:"[Thinking]";kt(Rh(gt.current?.activeWorkerTitle?`[${gt.current.activeWorkerTitle}] ${I}`:I,gt.current?.activeWorkerTitle)),Te(f.length),Pe(f),st.current.workerId&&(Sg("thinking",f),Do.current={...Do.current,thinkingItemId:ut.current.activeThinkingItemId})},"onThinkingDelta"),onThinkingEnd:o((f,S)=>{if(lt.current||Qn(S,"thinking",f))return;let x=We(),I=f_(x,f);I&&I!==x&&(oe(),fe(),Te(I.length),Pe(I)),st.current.workerId&&kT(I),te()},"onThinkingEnd"),onTextDelta:o((f,S)=>{if(!lt.current&&!Qn(S,"assistant",f,{append:!0})){if(S?.providerRequestId!==void 0){let x=xf(Oo.current,{type:"assistant.delta",providerRequestId:S.providerRequestId,text:f});if(Oo.current=x.state,!x.accepted)return}W.currentTool&&(Ie(void 0),Ke()),te(),kt(void 0),me(f),st.current.workerId&&(Sg("assistant",f),Do.current={...Do.current,assistantItemId:ut.current.activeAssistantItemId})}},"onTextDelta"),onToolUseStart:o((f,S)=>{if(lt.current||Qn(S,"tool",_k(f.name,f.input)))return;$r.current.includes(f.name)||($r.current=[...$r.current,f.name]);let x=gt.current?.activeWorkerTitle?`[${gt.current.activeWorkerTitle}] `:"",I={id:f.id,name:`${x}${f.name}`,status:z.Executing,startTime:Date.now(),input:f.input};ET(I),st.current.workerId&&wr(I),kt(Oi(I,gt.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:o((f,S,x)=>{if(lt.current||Qn(x,"tool",f,{skipIfExisting:!0}))return;nt(S.length),vt(S);let I=MT(x?.toolId,f,R=>{let N=R.preview??"",D=l_(`${N}${S}`);return{...R,preview:D||void 0,input:R.input?D?{...R.input,preview:D}:{...R.input}:D?{preview:D}:void 0}});I&&(st.current.workerId&&wr(I),kt(Oi(I,gt.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:o((f,S)=>{if(lt.current||Qn(S,"tool",`${f.name} completed`))return;let x=typeof f.content=="string"?f.content:String(f.content??""),I=u_(x);if(/^\[(?:Tool Error|Error)\]/.test(x)){let N=Gd(f.id,z.Error,I,I,f.name);N&&(st.current.workerId&&wr(N),kt(Oi(N,gt.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(x)){let N=Gd(f.id,z.Cancelled,void 0,I,f.name);N&&(st.current.workerId&&wr(N),kt(Oi(N,gt.current?.activeWorkerTitle)));return}let R=Gd(f.id,z.Success,void 0,I||void 0,f.name);R&&(st.current.workerId&&wr(R),kt(Oi(R,gt.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:o((f,S)=>{if(lt.current||Qn(S,"progress",f.message))return;let x=f.message.length>100?f.message.slice(0,97)+"...":f.message,I=qs(f.id,R=>({...R,preview:x,progressLines:[...(R.progressLines??[]).slice(-4),x]}));I&&st.current.workerId&&wr(I),kt(x)},"onToolProgress"),onStreamEnd:o(f=>{if(lt.current||Du(f))return;let S=hl(z.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),x=S[S.length-1];st.current.workerId&&S.forEach(I=>wr(I)),x&&kt(Oi(x,gt.current?.activeWorkerTitle)),te(),Ke(),Ie(void 0)},"onStreamEnd"),onChildActivityEnd:o(f=>{TT(f)},"onChildActivityEnd"),hasPendingInputs:o(()=>BC.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:o(f=>{if(!lt.current)for(let S of f){let x=S.trim();x&&(st.current.workerId?Zt({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:x,timestamp:Date.now()}):O({type:"user",text:x}))}},"onMidTurnUserMessages"),onSidecarMessage:o(f=>{if(lt.current)return;let S=f.suggestedFix?`${f.content}
166
- Suggested fix: ${f.suggestedFix}`:f.content;if(f.delivery==="budget-exhausted")vT({type:"sidecar",text:S,delivery:"budget-exhausted"},"sidecar-message");else{let x=f.verdict==="blocked"?"blocked":"revise";vT({type:"sidecar",text:S,verdict:x},"sidecar-message")}Dd.current=!0},"onSidecarMessage"),onError:o(f=>{let S=ji();S?.name&&kt(Oi(S,gt.current?.activeWorkerTitle));let x=hl(z.Error,()=>({error:f.message,output:void 0})),I=x[x.length-1];st.current.workerId&&x.forEach(Ne=>wr(Ne)),I&&kt(Oi(I,gt.current?.activeWorkerTitle));let R=fI(f),N=["Transient","Permanent","Tool Call ID","User Abort"];if(R.category===Dl.USER_ABORT)return;let j=[`\u274C API Error (${N[R.category]||"Unknown"}): ${f.message}`];R.shouldCleanup&&j.push(" \u{1F9F9} Cleaned incomplete tool calls"),R.category===Dl.PERMANENT?(j.push(" \u{1F4A1} This error requires manual intervention. Please check:"),f.message.includes("auth")||f.message.includes("401")?(j.push(" - Your API key is valid"),j.push(" - Run /config to check provider settings")):f.message.includes("400")?(j.push(" - The request parameters are correct"),j.push(" - Try restarting the conversation")):j.push(" - The error details above")):R.category===Dl.TRANSIENT?j.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):R.category===Dl.TOOL_CALL_ID&&j.push(" \u2705 Session cleaned, ready to continue");let Z=j.join(`
167
- `);!!st.current.workerId?Zt({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:Z,timestamp:Date.now()}):O({type:"error",text:Z})},"onError"),onRetry:o((f,S,x,I)=>{if(lt.current)return;let R=Vu(f,S,x);if(cl(I,R.text)||Qn(I,"progress",R.text))return;!!st.current.workerId?Zt({...R,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):O(R)},"onRetry"),onProviderRecovery:o((f,S)=>{if(lt.current)return;let x=Gu(f);if(cl(S,x.text)||Qn(S,"progress",x.text))return;let I=!!st.current.workerId;FV({clearResponse:Ve,clearThinkingContent:oe,stopThinking:te,clearToolInputContent:Ke,clearCurrentTool:o(()=>Ie(void 0),"clearCurrentTool"),resetLiveToolCalls:Ui,clearLiveActivityLabel:o(()=>kt(void 0),"clearLiveActivityLabel")}),I?Zt({...x,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):O(x)},"onProviderRecovery"),onManagedTaskStatus:o(f=>{if(lt.current)return;let S=st.current;if(WL(f)){if(S.workerId&&S.workerId!==f.activeWorkerId)x$({workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle});else if(S.workerId!==f.activeWorkerId){let D=ut.current,j=D.activeToolGroupTools.some(Z=>Z.status===z.Executing);ut.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle,...j?{activeToolGroupItemId:D.activeToolGroupItemId,activeToolGroupTools:D.activeToolGroupTools}:{activeToolGroupTools:[]}},st.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle}}}gt.current=f,Pd(f);let x=m_(f);T$(x);let I=Oc(f),N=Oc(f,{expanded:!0})??I;N&&(Od.current=N)},"onManagedTaskStatus"),onProviderRateLimit:o((f,S,x,I)=>{if(lt.current)return;let R=Wg.current;if(Wg.current=null,r_(R,{attempt:f,maxAttempts:S,delayMs:x}))return;let N=`[Rate Limit] Retrying in ${x/1e3}s (${f}/${S})...`;cl(I,N)||Qn(I,"progress",N)||$n({type:"info",icon:"\u23F3",text:N},"ratelimit")},"onProviderRateLimit"),onRetryAfter:o((f,S)=>{if(lt.current)return;Wg.current={attempt:f.attempt,maxAttempts:f.maxAttempts,waitMs:f.waitMs};let x=Math.round(f.waitMs/1e3),I=f.source==="exponential-backoff"?"no-header \u2192 backoff":f.source,N=`[${f.reason==="overloaded"?"Overloaded":"Rate limited"}] (${f.provider}) \u2014 retrying in ${x}s [${I}] (${f.attempt}/${f.maxAttempts})`;cl(S,N)||Qn(S,"progress",N)||$n({type:"info",icon:"\u23F3",text:N},"ratelimit")},"onRetryAfter"),onReasoningEffortRejected:o(f=>{ZC(f.provider,f.model,f.effort,"observed",new Date().toISOString());let x=Qo({provider:f.provider,model:f.model,effort:bt.current.effort,effortOverride:bt.current.effortOverride,permissionMode:bt.current.permissionMode,planModeEffort:bt.current.planModeEffort,thinking:bt.current.thinking,reasoningMode:bt.current.reasoningMode}).runtimeEffort;Ae(I=>({...I,effort:x,effortOverride:x!==void 0})),Zo({effort:x}),Oe.current.effort=x,$n({type:"info",icon:"\u26A0",text:`[${f.provider}/${f.model} \u4E0D\u652F\u6301 effort "${f.effort}",\u5DF2\u8BB0\u5F55;\u540E\u7EED\u4E0D\u518D\u63D0\u4F9B\u8BE5\u6863${x?`,\u5DF2\u5207\u5230 ${x}`:""}]`},"ratelimit")},"onReasoningEffortRejected"),onRepoIntelligenceTrace:o(f=>{lt.current||$n(M_(f),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:o(f=>{lt.current||ci(f)},"onTodoUpdate"),onScoutSuspiciousCompletion:o(f=>{lt.current||jL&&$n({type:"info",icon:"\u26A0",text:`[Scout] Completion marked uncertain \u2014 signals: ${f.signals.join(", ")}. Verify the result before continuing.`},"scout-uncertain")},"onScoutSuspiciousCompletion"),onIterationStart:o((f,S)=>{if(lt.current)return;if(S&&Qt(S),gt.current?.globalWorkBudget){let J={...gt.current,budgetUsage:Math.min(gt.current.globalWorkBudget,(gt.current.budgetUsage??0)+1)};gt.current=J,Pd(J)}let x=f>1?We().trim():"",I=f>1?kx(K()):"",R=f>1?[...$r.current]:[],N=f>1?[...ln.current]:[],D=!!st.current.workerId;St(f),D&&Wd({clearOwner:!1});let j=li.current.filter(J=>J.status===z.Executing),Z=new Set(j.map(J=>J.id));if($r.current=[],ln.current=ln.current.filter(J=>Z.has(J.id)),Jn(j),Ke(),Ie(void 0),kt(Rh(gt.current?.activeWorkerTitle?`[Thinking] [${gt.current.activeWorkerTitle}]`:void 0,gt.current?.activeWorkerTitle)),fe(),f>1&&!D){let J=Ex({thinking:x,response:I,toolCalls:N,toolNames:R});Fs.current?Fs.current(J):G([...J])}},"onIterationStart"),beforeToolExecute:o(async(f,S)=>{let x=Fn.current,I=Ra(x),R=OC.current,N=n.gitRoot;if(Vf(x,kg))return!0;if(LI(B.current,f,S))return`[Skipped] Previously denied operation. ${PI(B.current)}`;if(x==="plan"&&(wi.has(f)||f==="undo"))return`[Blocked] Tool '${f}' is not allowed in plan mode (read-only). ${BL}`;if(x==="plan"&&f==="bash"){let D=S.command??"";if(xi(D))return`[Blocked] Bash write operation not allowed in plan mode: ${D.slice(0,50)}... ${BL}`}if(f==="bash"){let D=S.command??"";if(ba(D,N??process.cwd(),n.runtimeInfo?.executionCwd??N??process.cwd()))return!0}if(f==="bash"){let D=S.command??"",j=EI(D);if(j.level==="dangerous"){let Z=await hi(f,{...S,_dangerousCommand:!0});return Z.confirmed?Z.confirmed:(B.current=iy(B.current,f,S,j.reason),`[Blocked] Dangerous command requires confirmation: ${j.reason}`)}}if(N){let D=!1;if(wi.has(f)){let j=S.path;j&&va(j,N)&&(D=!0)}if(f==="bash"){let j=S.command;j&&Ff(j,N)&&(D=!0)}if(D){let j=await hi(f,{...S,_alwaysConfirm:!0});if(Fn.current==="plan"&&(wi.has(f)||f==="undo"))return!1;if(Fn.current==="plan"&&f==="bash"){let Z=S.command??"";if(xi(Z))return!1}return j.confirmed}}if(I.has(f)){if(x==="accept-edits"&&f==="bash"&&await Ia(f,S,R,Fg.current??void 0))return!0;let D=await hi(f,S);if(Fn.current==="plan"&&(wi.has(f)||f==="undo"))return!1;if(Fn.current==="plan"&&f==="bash"){let j=S.command??"";if(xi(j))return!1}if(!D.confirmed)return O({type:"info",text:ie("cancelled")}),B.current=iy(B.current,f,S),!1;D.always&&x==="accept-edits"&&(Jf(f,S,!1),OC.current=Na())}return!0},"beforeToolExecute"),askUser:o(async(f,S,x)=>{let I=yx(f.options?Uh(f.options):[],f),R=await mi(Sx(f),I,f.multiSelect,{minSelections:f.minSelections,maxSelections:f.maxSelections,defaultValue:f.default},x?.signal);if(R===void 0)return Ca;if(R===Hr){let N=await la(f.customInputPrompt??f.question,f.customInputDefault,x?.signal);return N===void 0?Ca:{kind:"customInput",value:N}}if(Array.isArray(R)&&R.includes(Hr)){let N=await la(f.customInputPrompt??f.question,f.customInputDefault,x?.signal);return N===void 0?Ca:R.map(D=>D===Hr?{kind:"customInput",value:N}:D)}return R},"askUser"),exitPlanMode:o(async f=>Fn.current!=="plan"?"not-in-plan-mode":(await hi("exit_plan_mode",{plan:f})).confirmed?(Hg("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:o(async(f,S,x)=>{let I=f.questions,R={},N=0;for(;N<I.length;){let D=I[N],j=yx(Uh(D.options),D);N>0&&j.push({label:ie("select.back_prev"),value:qg});let Z=`[${N+1}/${I.length}] ${D.question}`,J=await mi(Z,j,D.multiSelect,{minSelections:D.minSelections,maxSelections:D.maxSelections,defaultValue:D.default},x?.signal);if(J===void 0)return;if(!Array.isArray(J)&&J===qg){N--;continue}if(!Array.isArray(J)&&J===Hr){let Ne=await la(D.customInputPrompt??D.question,D.customInputDefault,x?.signal);if(Ne===void 0)return;R[D.question]={kind:"customInput",value:Ne},N++;continue}if(Array.isArray(J)&&J.includes(Hr)){let Ne=await la(D.customInputPrompt??D.question,D.customInputDefault,x?.signal);if(Ne===void 0)return;R[D.question]=J.map(Fe=>Fe===Hr?{kind:"customInput",value:Ne}:Fe),N++;continue}R[D.question]=J,N++}return R},"askUserMulti"),askUserInput:o(async(f,S,x)=>la(f.question,f.default,x?.signal),"askUserInput"),onCompactStart:o(()=>{Xe()},"onCompactStart"),onCompactStats:o(f=>{el.current=f.tokensBefore,hr(f.tokensAfter)},"onCompactStats"),onCompactedMessages:o(async(f,S,x)=>{let I=Ih(n.lineage,f,S,x);if(!I)return;n.messages=f,S?.artifactLedger&&S.artifactLedger.length>0&&(n.artifactLedger=Yo(n.artifactLedger??[],S.artifactLedger),n.sessionSnapshotDirty=!0),n.lineage=I;let R=zo(f);if(n.contextTokenSnapshot={currentTokens:R,baselineEstimatedTokens:R,source:"estimate"},Er(n),hr(R),e.runtimeRunner){n.lineage===I&&(n.lineage=Sa(I));return}let N=Id.current;if(!N)throw new Error("Ink REPL compaction persistence is not initialized.");try{await N(),n.lineage===I&&(n.lineage=Sa(I))}catch(D){throw ft({source:"repl:compaction",level:"error",message:"Failed to durably persist compacted session history.",detail:D}),D}},"onCompactedMessages"),onCompact:o(f=>{_t();let S=el.current??f;el.current=null;let x=Math.round(S/1e3);$n({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${x}k tokens)`},"compact")},"onCompact"),onCompactEnd:o(()=>{el.current=null,_t()},"onCompactEnd"),onIterationEnd:o(f=>{f.scope!=="worker"&&(n.contextTokenSnapshot=f.contextTokenSnapshot),hr(f.tokenCount)},"onIterationEnd")}),[Te,Pe,te,me,Ie,nt,vt,Ke,St,fe,F,n,Xe,_t,O,oe,We,K,Wd,kt,Sg,kT,wr,RT,ET,MT,Gd,hl,ji,Ui,Jn,TT,cl,Qn,$n,W.currentTool]),hi=o((f,S,x,I)=>{let R=c_(f,S),N=x?.map(Z=>Z.label)??[],D=x===void 0?[]:[Sc,...N.map(Z=>`Runtime scope: ${Z}`)],j=D.length>0?`${R}
168
- ${D.join(`
169
- `)}`:R;return v$.current(()=>I?.aborted?Promise.resolve({confirmed:!1}):(Nn(),new Promise(Z=>{let J=o(Fe=>{I?.removeEventListener("abort",Ne),Zn.current===J&&(Zn.current=null),Z(Fe)},"settle"),Ne=o(()=>{Zn.current===J&&(Js(null),J({confirmed:!1}))},"onAbort");Zn.current=J,I?.addEventListener("abort",Ne,{once:!0}),Js({tool:f,input:S,prompt:j,...x!==void 0?{runtimeGrantSuggestions:x}:{}})})))},"showConfirmDialog"),H$=o(async(f,S)=>{let x=await hi(f.toolName,{...f.input,...f.reason!==void 0?{_reason:f.reason}:{},...f.executionCwd!==void 0?{_executionCwd:f.executionCwd}:{},...f.risk!==void 0?{_runtimeRisk:f.risk}:{}},f.grantSuggestions??[],S.signal);return jm(f,x)},"requestRuntimePermission");He(()=>(p(async(f,S,x)=>(await hi(f.name,{...f.input,_reason:`[auto-mode] ${S}`,...x&&x.length>0?{_classifierSignals:x}:{}})).confirmed?"allow":"block"),h(f=>{tr(f)}),()=>{p(null),h(null)}),[]),He(()=>{m(F)},[F,m]),He(()=>{let f=o(()=>$l(),"resolve");return Jg({askUser:o((S,x)=>{let I=f().askUser;if(!I)throw new Error("askUser surface unavailable");return I(S,void 0,x)},"askUser"),askUserMulti:o(async(S,x)=>{let I=f().askUserMulti;return I?I(S,void 0,x):void 0},"askUserMulti"),askUserInput:o(async(S,x)=>{let I=f().askUserInput;return I?I(S,void 0,x):void 0},"askUserInput")}),()=>Jg(void 0)},[$l]);let ua=o(async(f,S,x=n.lineage?Lt(n.lineage,n.lineage.activeEntryId):n.messages,I)=>{Oo.current=Xg(),Do.current={};let R={...$l(),getCostReport:$,onWorkflowProcessEvent:p$,onWorkflowAgentDigest:o(({runId:J,event:Ne})=>{let Fe=Ne.data??{},rn=typeof Fe.summary=="string"?Fe.summary:void 0,Xi=typeof Fe.name=="string"?Fe.name:void 0,Vo=ol.current,Go=rn!==void 0||Xi!==void 0?Vl(rn,Xi):Vo?.runId===J?Vo.locale??"en":"en",yi=op(Ne,Go,J);yi&&(st.current.workerId?Zt({id:`wf-digest-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"assistant",text:yi,timestamp:Date.now()}):nr([{type:"assistant",text:yi}]))},"onWorkflowAgentDigest")},D=Ef(n.gitRoot).getSystemPromptSnippet(),j=__(f.context,n.gitRoot,n.contextTokenSnapshot,D,n.runtimeInfo?.executionCwd);I&&I.length>0&&(j.inputArtifacts=[...I]),j.planModeBlockCheck=(J,Ne)=>Fn.current!=="plan"?null:Qi(J,Ne,n.gitRoot??n.runtimeInfo?.executionCwd??process.cwd());let Z={...f,session:{...f.session,initialMessages:x,initialExtensionState:n.extensionState??{},initialExtensionRecords:n.extensionRecords??[]},context:j,events:R,abortSignal:Re()};try{return e.runtimeRunner?await e.runtimeRunner({options:Z,prompt:S,sessionId:n.sessionId,permissionMode:Fn.current,autoModeSettings:s,requestPermission:H$,legacyPermissionHook:!0}):await Hl(Z,S)}finally{hI()}},"runAgentRound"),Hn=q(f=>{let S=qe([...f],n.lineage);return n.lineage=S,S},[n]),Nl=q(async f=>{if(n.messages.length===0)return;let S=to(n.messages),x=Zr(f??A.current);A.current=x,n.title=S,n.uiHistory=x;let I=n.lineage??Hn(n.messages);n.lineage=I;let R={...n.extensionStateDirty?{extensionState:n.extensionState??{}}:{},...n.extensionRecordsDirty?{extensionRecords:n.extensionRecords??[]}:{}},N=Vc({messages:n.messages,title:S,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Oe.current.session?.tag,uiHistory:x,lineage:I,artifactLedger:n.artifactLedger,...R});await _V(i,n.sessionId,N,n.sessionSnapshotDirty===!0),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,_h()&&Ah("persist",Lh(n.messages,I,{historyItems:y.current,foregroundItems:hn.current,streamingResponse:le.current.currentResponse,streamingThinking:le.current.thinkingContent,persistedUiHistory:A.current}))},[n,Hn,i]),jg=q(()=>{if(vd.current)return vd.current;let f=(async()=>{try{for(;Po.current.requested;){Po.current.requested=!1;let S=Po.current.uiHistoryOverride;Po.current.uiHistoryOverride=void 0,await Nl(S)}}finally{vd.current=null,Po.current.requested&&jg().catch($s)}})();return vd.current=f,ig.current=f,f},[Nl]),gi=q(f=>{if(f!==void 0){let S=Zr(f);A.current=S,Po.current.uiHistoryOverride=S}return Po.current.requested=!0,jg()},[jg]),W$=q(async()=>{if(nl.current)return nl.current;let f=(async()=>{lt.current=!0,_e(),he(),te(),oe(),Ke(),Ve(),Ie(void 0),ne(!1),await ig.current.catch($s),await Id.current?.().catch($s),Dt(!1),P&&v?.isRaw&&_(!1),v?.pause?.(),v?.unref?.(),C(),l()})();return nl.current=f.finally(()=>{nl.current=null}),nl.current},[_e,Ve,oe,Ke,C,P,l,Ie,ne,_,v,he,te]);He(()=>(Id.current=gi,()=>{Id.current=null}),[gi]);let Sf=q(f=>{if(f.length===0)return;let S=Gh(A.current,f);A.current=S,gi(S).catch($s)},[gi]),nr=q(f=>{f.length!==0&&(G([...f]),Sf(f))},[G,Sf]),da=q(f=>{f.length!==0&&(G([...f]),A.current=Gh(A.current,f))},[G]);He(()=>(Fs.current=nr,()=>{Fs.current=null}),[nr]);let jC=q(async f=>{Nn();let S=Dd.current;Dd.current=!1,n.messages=f.messages,n.contextTokenSnapshot=f.contextTokenSnapshot,OL(n,f),Hn(f.messages);let x=f.success===!1&&!f.interrupted,I=We().trim(),R=Rv(f.messages,K(),f.managedTask?.verdict.summary,f.lastText),N=ut.current.workerTitle,D=[...hn.current],j=D.length>0;jd(D);let Z=j&&D.some(ge=>ge.type==="assistant"&&"text"in ge&&HL(String(ge.text??""),N)),J=D.filter(ge=>ge.type!=="assistant"||!("text"in ge)||HL(String(ge.text??""),N)),Ne=!x&&R&&!Z,Fe=[...Vs.current],rn=h_(f,{sidecarMessageDelivered:S}),Xi=x?[]:Fe.length===0?jL?rn:rn.filter(ge=>!Dw(ge)):[],Vo=j?[]:Ex({thinking:I,response:void 0,toolCalls:ln.current,toolNames:$r.current}),Go=[...J.map(ge=>Ao(ge)),...Vo,...x?[]:Fe.map(ge=>Ao(ge)),...Xi.map(ge=>FL(ge)),...Ne?[{type:"assistant",text:f.interrupted?`${R}
162
+ [Interrupted]`}),r}o(ZV,"buildInterruptedPersistenceItems");function Mx({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(Mx,"buildRoundHistoryItems");var eG=20,tG="Session ended before the tool completed.";function nG(e){switch(e.status){case z.Success:return{status:"success"};case z.Error:return{status:"error"};case z.Cancelled:return{status:"cancelled"};case z.AwaitingApproval:case z.Scheduled:case z.Validating:case z.Executing:return{status:"cancelled",error:tG};default:return e.status}}o(nG,"toPersistedToolStatus");function rG(e){if(!e.id||!e.name)return;let t=nG(e),n=t.status==="success"?sy(e.output):void 0,r=t.status==="error"||t.status==="cancelled"?oy(e.error??sy(e.output)??t.error??""):void 0,i=bv(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:oy(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(rG,"toPersistedToolCall");function iG(e){let t=e.tools.slice(0,eG).map(rG).filter(r=>!!r),n=_x(e);return t.length>0?{type:"tool_group",tools:t,...n===void 0?{}:{timestamp:n}}:void 0}o(iG,"toPersistedToolGroup");function _x(e){return e.timestamp!==void 0&&Number.isFinite(e.timestamp)&&e.timestamp>=0?e.timestamp:void 0}o(_x,"persistedHistoryTimestamp");function JL(e){if(e.type==="tool_group")return iG(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=_x(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=_x(e);return{type:e.type,text:t,...i===void 0?{}:{timestamp:i},...n?{icon:n}:{},...r?{compactText:r}:{}}}o(JL,"toPersistedUiHistoryItem");var zL=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1",oG=process.env.KODAX_SCROLL_OVERSCAN==="1"?80:void 0;function XL(e){return Zr(e.map(t=>JL(t)).filter(t=>!!t))}o(XL,"serializeUiHistorySnapshot");function sG(e){return e.map(t=>JL(t)).filter(t=>!!t)}o(sG,"serializeCreatableHistoryItems");function Gh(e,t){return t.length===0?Zr(e):Zr([...e,...sG(t)])}o(Gh,"appendPersistedUiHistorySnapshot");function ud(e,t,n){console.log((e==="block"?yt.red:yt.yellow)(t)),n.forEach(r=>console.log(yt.dim(r)))}o(ud,"logSessionTransitionGuard");var kx=o(({config:e,sessionId:t,workingDir:n,compactionInfo:r})=>{let i=ae("dark"),s=e.model??jr(e.provider)??e.provider,a=Zi({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?Ru(r.contextWindow,r.triggerPercent,r.triggerTokens):void 0;return _n(M,{flexDirection:"column",marginBottom:1,children:[Fw.map((u,f)=>pe(b,{color:i.colors.primary,children:u},f)),_n(M,{children:[pe(b,{color:i.colors.primary,children:" \u258E "}),pe(b,{color:i.colors.primary,children:"AI Coding Agent \xB7 Minimalist & Intelligent"})]}),_n(M,{children:[pe(b,{color:i.colors.success,children:" \u258E "}),_n(b,{bold:!0,color:i.colors.text,children:["v",Jo]}),pe(b,{dimColor:!0,children:" \xB7 "}),_n(b,{color:i.colors.success,children:[e.provider,"/",s]}),pe(b,{dimColor:!0,children:` \xB7 effort:${a}`}),pe(b,{dimColor:!0,children:" \xB7 "}),pe(b,{color:i.colors.primary,children:e.agentMode.toUpperCase()}),pe(b,{dimColor:!0,children:" / "}),pe(b,{color:i.colors.accent,children:e.permissionMode})]}),r&&_n(M,{children:[pe(b,{color:i.colors.accent,children:" \u258E "}),pe(b,{color:i.colors.text,children:`ctx ${c}k \xB7 compaction `}),pe(b,{color:r.enabled?i.colors.success:i.colors.text,children:r.enabled?"on":"off"}),pe(b,{color:i.colors.text,children:` \xB7 ${l}`})]}),_n(M,{children:[pe(b,{color:i.colors.secondary,children:" \u258E "}),pe(b,{color:i.colors.text,children:"session "}),pe(b,{color:i.colors.primary,children:t}),pe(b,{color:i.colors.text,children:" \xB7 "}),pe(b,{color:i.colors.text,children:n})]})]})},"Banner");function aG(e){let t=e.config.model??jr(e.config.provider)??e.config.provider,n=Zi({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?Ru(e.compactionInfo.contextWindow,e.compactionInfo.triggerPercent,e.compactionInfo.triggerTokens):void 0,s=" \u258E AI Coding Agent \xB7 Minimalist & Intelligent",a=` \u258E v${Jo} \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=xn(h.length>0?h.split(`
163
+ `):[""],Math.max(1,e.terminalWidth),0,0);return m.visualLines.length>0?m.visualLines:[""]},"wrapBannerLine"),p=o((h,m,g)=>{f(m).forEach((C,w)=>{u.push({key:`${h}-${w}`,text:C,...g})})},"pushLineRows");return Fw.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(aG,"buildBannerTranscriptSection");function YL(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}o(YL,"prependTranscriptSection");var cG=process.env.KODAX_INLINE_LEDGER!=="0";function qL(e,t){process.env.KODAX_INLINE_LEDGER_DEBUG==="1"&&ft({source:"repl:inline-ledger",level:"debug",message:`${e}; rebuilding on next change.`,...t!==void 0?{detail:t}:{}})}o(qL,"reportInlineLedgerFailure");var lG=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:C}=Yr(),{stdout:w}=Xr(),T=w.rows??24,{stdin:v,setRawMode:A,isRawModeSupported:D}=lu(),k=tc(),{history:E}=fc(),P=HL.useRef(null),B=HL.useRef(LI()),{addHistoryItem:$,addHistoryItems:G,clearHistory:re,setSessionId:X}=pc(),y=Se(E),_=Se(XL(E));He(()=>{y.current=E,_.current=XL(E)},[E]),He(()=>{P_()},[]),He(()=>{Uv()},[]);let ee=w.columns||80,W=gc(),le=Se(W);He(()=>{le.current=W},[W]);let{startStreaming:de,stopStreaming:he,abort:_e,startThinking:fe,appendThinkingChars:Te,appendThinkingContent:Pe,stopThinking:te,clearThinkingContent:oe,setCurrentTool:Ie,appendToolInputChars:nt,appendToolInputContent:vt,clearToolInputContent:Ke,clearResponse:Ve,appendResponse:me,getSignal:Re,getFullResponse:K,getThinkingContent:We,startNewIteration:St,clearIterationHistory:Vt,startCompacting:Xe,stopCompacting:_t,setMaxIter:Qt,addPendingInput:qn,removeLastPendingInput:pn,shiftPendingInput:L,consumePendingInputs:V}=yc(),[H,ne]=Ge(!1),[F,Ae]=Ge(t),ve=we(()=>Qo({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]),ke=ve.configuredEffort,At=ve.runtimeEffort,Gt=we(()=>({...F,effort:ke}),[F,ke]),mn=we(()=>yL(u,{provider:F.provider,model:F.model},Ko),[u,F.provider,F.model]),[si,Dt]=Ge(!0),[mr,lT]=Ge(!0),[Td,Cd]=Ge(0),[ng,Qc]=Ge(!1),[uT,dT]=Ge(void 0),[fT,Id]=Ge([]),pT=Se(!1),rg=q(()=>{pT.current=!0,Id(vv)},[]),[mT,hr]=Ge(null),Zc=Se(!1),uO=we(()=>ro(),[]),el=Se(null),vd=Se(null),ig=Se(Promise.resolve()),bd=Se(null),Po=Se({requested:!1,uiHistoryOverride:void 0}),Fs=Se(null),tl=Se(!1),nl=Se(null);He(()=>{let d=e.learning;if(!d)return;let S=!0,x,I=o(async()=>{let N=await d.getSnapshot();return S&&dT(j=>j!==void 0&&j.revision>N.revision?j:N),N},"refresh"),R=o(N=>{ft({source:"repl:learning",level:"warn",message:"Failed to refresh the Learning Center snapshot.",detail:N instanceof Error?N.message:String(N)})},"reportRefreshFailure"),O=o(N=>{if(S){if(N.kind==="ready"||N.kind==="activated"||N.kind==="attention"){let j=N.kind==="ready"?"is ready for review":N.kind==="activated"?"became active":"requires attention";Id(Z=>[{id:N.eventId,text:`A learned ${N.carrier} ${j}: ${N.displayName} [/learn]`,tone:N.kind==="activated"?"accent":"warning"},...Z.filter(J=>J.id!==N.eventId)].slice(0,2))}I().catch(R)}},"onEvent");return I().then(N=>{if(!S)return;let j=Zf(N);if(j&&!pT.current){let Z=N.attention>0||N.ready>0?"warning":"accent";Id(J=>[{id:"learning-recovery",text:j,tone:Z},...J.filter($e=>$e.id!=="learning-recovery")].slice(0,2))}x=d.subscribe(O,{afterRevision:N.revision})}).catch(R),()=>{S=!1,x?.close()}},[e.learning]);let[rl,Rd]=Ge(!0),[og,kd]=Ge(""),[ze,Lr]=Ge(()=>F_(uO,{rendererMode:a})),[Kt,sg]=Ge(!1),[dO,fO]=Ge(0),{scrollRef:pO,scrollOffset:gr,sticky:ag,setScrollOffset:mO,handleScrollTopChange:hO,handleStickyChange:gO,scrollTo:Ed,scrollBy:Md,scrollToBottom:_d}=rL(),cg=Se(null),Ad=Se(null),il=Se([]),Ld=Se([]),Hs=Se(null),yr=Se(null),hT=Se({time:0,row:-1,column:-1,count:0}),[Pd,lg]=Ge(void 0),[ai,ug]=Ge(void 0),[Ws,gT]=Ge(void 0),[Pn,yO]=Ge(()=>new Set),[dg,yT]=Ge(null),[an,ST]=Ge(null),[Q,Od]=Ge(null),[wT,js]=Ge(null),[fg,xT]=Ge(null),ol=Se(null),sl=q(d=>{ol.current=d,xT(d)},[]),al=q(d=>{let S=d(ol.current);ol.current=S,xT(S)},[]),cl=q((d,S)=>{let x=ol.current;return x?.status!=="running"||!Ak(d,x.runId)?!1:(sl({...x,message:S}),!0)},[sl]),pg=q(d=>{if(d.status==="running"){sl({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}al(S=>S?.runId===d.runId?null:S)},[sl,al]),SO=q(d=>{let S=d.type==="workflow_updated"?d.message:void 0,x=Gl(d.snapshot.goal,d.snapshot.workflowName,d.snapshot.displayName,d.snapshot.latestMessage,S);pg(Ov(d.snapshot,S===void 0?{locale:x}:{locale:x,message:S}))},[pg]),[$d,ci]=Ge([]),Us=we(()=>{for(let d of $d)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}},[$d]),[NK,ll]=Ge([]),[ul,wO]=Ge([]),[Nd,kt]=Ge(void 0),[Oo,dl]=Ge(void 0),gt=Se(null),Dd=Se(null),$o=Se([]),Vs=Se([]),hn=Se([]),Bd=Se(!1),mg=Se(new Set),st=Se({}),ut=Se({activeToolGroupTools:[]}),No=Se(Xg()),Do=Se({}),TT=Se(0),fl=Se({itemId:void 0,kind:"thinking",pendingText:""}),Sr=Se(null),xO=80,TO=20,CO=Se(null),pl=we(()=>[...E,...ul],[E,ul]),hg=we(()=>{let d=HR(pl,CO,UR(pl));return d===0?pl:pl.slice(d)},[pl]),Fd=we(()=>WR(hg,TO),[hg]),Gs=hg,cn=Se(null),Pr=Se(null),Or=Se([]),ln=Se([]),[Bo,IO]=Ge([]),li=Se([]),[gg,vO]=Ge([]),ml=Se([]),Jn=q(d=>{li.current=d,IO(d)},[]),Ks=q(d=>{ml.current=d,vO(d)},[]),yg=q(()=>{Ks([])},[Ks]),CT=q(d=>{if(!Bu(d))return!1;let S=FS(d),x=ml.current.filter(I=>I.id!==S);return x.length===ml.current.length||Ks(x),!0},[Ks]),Qn=q((d,S,x,I)=>{if(!Bu(d))return!1;let R=FS(d),O=ml.current.find(Fe=>Fe.id===R);if(I?.skipIfExisting&&O?.kind===S||Nk(O?.kind,S))return!0;let N=I?.append&&O?.kind===S?`${O.detail}${x}`:x||O?.detail||"running",j={id:R,label:Pk(d),source:Ok(d),status:"running",kind:S,detail:BS(N),startedAt:O?.startedAt??Date.now()},Z=ml.current,J=Z.findIndex(Fe=>Fe.id===R),$e=J>=0?Z.map((Fe,rn)=>rn===J?j:Fe):[...Z,j].slice(0,VV);return Ks($e),!0},[Ks]),IT=q(d=>{$o.current=d,ll(d)},[]),zs=q(d=>{hn.current=d,wO(d)},[]),Hd=q(d=>{let S=d([...hn.current]);zs(S)},[zs]),vT=q(d=>{d.length!==0&&zs([...hn.current,...d])},[zs]),Wd=q(d=>{let S=ut.current,x=S.activeToolGroupTools.some(I=>I.status===z.Executing);ut.current={...d?.clearOwner?{}:{workerId:S.workerId,workerTitle:S.workerTitle},...x?{activeToolGroupItemId:S.activeToolGroupItemId,activeToolGroupTools:S.activeToolGroupTools}:{activeToolGroupTools:[]}},d?.clearOwner&&(st.current={})},[]),jd=q(d=>{for(let S of d)S.type==="user"&&typeof S.id=="string"&&mg.current.add(S.id)},[]),hl=q(()=>{fl.current={itemId:void 0,kind:"thinking",pendingText:""},Sr.current&&(clearTimeout(Sr.current),Sr.current=null);let d=AS(hn.current,mg.current);if(d.length>0){for(let S of d)mg.current.add(S.id);Fs.current?.(d.map(S=>Ao(S)))}Wd({clearOwner:!0}),zs([])},[Wd,zs]),Ud=q(d=>(TT.current+=1,`managed-foreground-${d}-${TT.current}`),[]),Zt=q(d=>(vT([d]),d.id),[vT]),On=q((d,S)=>{st.current.workerId?Zt({id:`${S}-${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]),bT=q((d,S)=>{let x=Date.now();st.current.workerId?Zt({id:`${S}-${x}-${Math.random().toString(36).slice(2,7)}`,type:"sidecar",text:d.text,...d.verdict?{verdict:d.verdict}:{},...d.delivery?{delivery:d.delivery}:{},timestamp:x}):$(d)},[$,Zt]),ui=q((d,S)=>{if(!d)return;let x;return Hd(I=>I.map(R=>R.id!==d?R:(x=S(R),x))),x},[Hd]),Xs=q((d,S)=>{let x=ut.current;if(x.activeKind===d){if(d==="thinking"&&x.activeThinkingItemId)return x.activeThinkingItemId;if(d==="assistant"&&x.activeAssistantItemId)return x.activeAssistantItemId;if(d==="tool_group"&&x.activeToolGroupItemId)return x.activeToolGroupItemId}let I=Date.now(),R=S?.trim()?`[${S.trim()}] `:"",O=x.activeToolGroupTools.some(j=>j.status===z.Executing);if(d==="thinking"){let j=Zt({id:Ud("thinking"),type:"thinking",timestamp:I,text:R});return ut.current={...ut.current,activeKind:"thinking",activeThinkingItemId:j,currentTurnThinkingItemId:j,activeAssistantItemId:void 0,...O?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},j}if(d==="assistant"){let j=Zt({id:Ud("assistant"),type:"assistant",timestamp:I,text:R});return ut.current={...ut.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:j,...O?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},j}let N=Zt({id:Ud("tool_group"),type:"tool_group",timestamp:I,tools:[]});return ut.current={...ut.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:N,activeToolGroupTools:[]},N},[Zt,Ud]),$n=q(()=>{Sr.current&&(clearTimeout(Sr.current),Sr.current=null);let d=fl.current;if(!d.pendingText||!d.itemId)return;let S=d.pendingText,x=d.itemId,I=d.kind;d.pendingText="",ui(x,R=>R.type!==I?R:{...R,text:`${R.text}${S}`})},[ui]),RT=q(()=>{Sr.current||(Sr.current=setTimeout($n,xO))},[$n]),Sg=q((d,S)=>{if(!S)return;let x=ut.current;if(d==="assistant"&&!YV(S,x.activeKind==="assistant"&&!!x.activeAssistantItemId))return;let I=x.workerTitle,R=Xs(d,I),O=fl.current;O.itemId===R&&O.kind===d?O.pendingText+=S:($n(),O.itemId=R,O.kind=d,O.pendingText=S),RT()},[Xs,$n,RT]),kT=q(d=>{No.current=JV(No.current,d,S=>{if(st.current.workerId){$n();let R=Do.current;d.mode==="replace"&&Hd(N=>qV(N,[R.assistantItemId,R.thinkingItemId],d.mode));let O=ut.current;ut.current={...O,activeKind:O.activeKind==="tool_group"?"tool_group":void 0,activeAssistantItemId:void 0,activeThinkingItemId:void 0,currentTurnThinkingItemId:void 0},fl.current={itemId:void 0,kind:"thinking",pendingText:""},Do.current={providerRequestId:d.providerRequestId};return}Ve(),oe();let x=Yg(S,"assistant"),I=Yg(S,"thinking");x&&me(x),I&&(fe(),Te(I.length),Pe(I))})},[me,Te,Pe,Ve,oe,$n,Hd,fe]),ET=q(d=>{let S=d.trim();if(!S)return;let x=fl.current;x.kind==="thinking"&&x.pendingText&&(x.pendingText="",Sr.current&&(clearTimeout(Sr.current),Sr.current=null));let I=ut.current.workerTitle?.trim(),R=I?`[${I}] ${S}`:S,O=ut.current.currentTurnThinkingItemId;if(O){ui(O,j=>j.type==="thinking"?{...j,text:R}:j);return}let N=Xs("thinking",ut.current.workerTitle);ui(N,j=>j.type==="thinking"?{...j,text:R}:j)},[Xs,ui]),wr=q(d=>{$n();let S=ut.current;if(S.activeToolGroupItemId&&S.activeToolGroupTools.some(N=>N.id===d.id)){let N=S.activeToolGroupTools.map(Z=>Z.id===d.id?d:Z),j=N.every(Z=>Z.status===z.Success||Z.status===z.Error||Z.status===z.Cancelled);ut.current={...S,...j?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:N}},ui(S.activeToolGroupItemId,Z=>Z.type==="tool_group"?{...Z,tools:N}:Z);return}let x=hn.current;for(let N=x.length-1;N>=0;N-=1){let j=x[N];if(j.type!=="tool_group"||!j.tools.some(J=>J.id===d.id))continue;let Z=j.tools.map(J=>J.id===d.id?d:J);ui(j.id,J=>J.type==="tool_group"?{...J,tools:Z}:J);return}let I=Xs("tool_group",S.workerTitle),O=S.activeKind==="tool_group"&&S.activeToolGroupItemId===I?S.activeToolGroupTools.some(N=>N.id===d.id)?S.activeToolGroupTools.map(N=>N.id===d.id?d:N):[...S.activeToolGroupTools,d]:[d];ut.current={...ut.current,activeKind:"tool_group",activeToolGroupItemId:I,activeToolGroupTools:O},ui(I,N=>N.type==="tool_group"?{...N,tools:O}:N)},[Xs,ui,$n]),bO=q(d=>{$n();let S=ut.current,x=S.activeToolGroupTools.some(O=>O.status===z.Executing),I=li.current.filter(O=>O.status===z.Executing),R=new Set(I.map(O=>O.id));ut.current={workerId:d?.workerId,workerTitle:d?.workerTitle,...x?{activeToolGroupItemId:S.activeToolGroupItemId,activeToolGroupTools:S.activeToolGroupTools}:{activeToolGroupTools:[]}},st.current={workerId:d?.workerId,workerTitle:d?.workerTitle},Or.current=[],ln.current=ln.current.filter(O=>R.has(O.id)),Jn(I),Ke(),Ie(void 0),te(),oe(),Ve(),kt(void 0)},[$n,Ke,Ve,oe,Ie,Jn,kt,te]),RO=q(d=>{if(d.length===0)return[];let S=[],x=[...$o.current],I=[...Vs.current];for(let R of d){let O=R.item,N=x.findIndex(j=>j.id===O.id);if(N>=0){let j=x[N];kh(j,O)||(x=x.map((Z,J)=>J===N?{...O,timestamp:j.timestamp}:Z))}else x=[...x,O].slice(-12),S.push(O);if(R.persistToHistory){let j=I.findIndex(Z=>Z.id===O.id);if(j>=0){let Z=I[j];kh(Z,O)||(I=I.map((J,$e)=>$e===j?{...O,timestamp:Z.timestamp}:J))}else I=[...I,O].slice(-48)}}return Vs.current=I,(S.length>0||x.some((R,O)=>!kh(R,$o.current[O]??R)||R.id!==$o.current[O]?.id))&&IT(x),S},[IT]),Vd=q(d=>{if(ln.current.findIndex(x=>x.id===d.id)===-1){ln.current=[...ln.current,d];return}ln.current=ln.current.map(x=>x.id===d.id?d:x)},[]),ji=q(d=>{let S=li.current.filter(x=>x.status===z.Executing);if(S.length!==0){if(d){let x=Dw(d);for(let I=S.length-1;I>=0;I-=1){let R=S[I];if(Dw(R.name)===x)return R}}return S[S.length-1]}},[]),Ys=q(()=>{let d=ji();Ie(d?Nw(d.name):void 0)},[ji,Ie]),MT=q(d=>(Vd(d),Jn([...li.current.filter(S=>S.id!==d.id),d]),Ys(),d),[Jn,Ys,Vd]),qs=q((d,S)=>{let x=li.current.find(R=>R.id===d);if(!x)return null;let I=S(x);return Vd(I),Jn(li.current.map(R=>R.id===d?I:R)),Ys(),I},[Jn,Ys,Vd]),_T=q((d,S,x)=>{if(d){let R=qs(d,x);if(R)return R}let I=ji(S);return I?qs(I.id,x):null},[ji,qs]),Gd=q((d,S,x,I,R)=>{let O=d??ji(R)?.id;return O?qs(O,N=>({...N,status:S,endTime:Date.now(),error:x,output:I})):null},[ji,qs]),gl=q((d,S)=>{let x=Date.now(),I=new Map;for(let R of li.current){if(R.status!==z.Executing)continue;let O=S(R);I.set(R.id,{...R,status:d,endTime:x,...O})}return I.size===0?[]:(ln.current=ln.current.map(R=>I.get(R.id)??R),Jn(li.current.map(R=>I.get(R.id)??R)),Ys(),[...I.values()])},[Jn,Ys]),Ui=q(()=>{Jn([])},[Jn]),{showHelp:AT,toggleHelp:kO,setShowHelp:LT}=jw(),EO=q(d=>{kd(d),Rd(d.trim().length===0)},[]),Kd=mo(),PT=we(()=>Kd?Kd.state.visible&&Kd.suggestions.length>0:!1,[Kd]),[yl,OT]=Ge(!1),$T=Se(Td),Fo=q(()=>{cn.current&&(clearTimeout(cn.current),cn.current=null),Pr.current&&(clearTimeout(Pr.current),Pr.current=null)},[]);He(()=>{PT&&!yl&&OT(!0)},[PT,yl]),He(()=>{Td!==$T.current&&($T.current=Td,yl&&OT(!1))},[Td,yl]);let[Ye,Js]=Ge(null),Zn=Se(null),MO=Se(s_()),[je,Nn]=Ge(null),$r=Se(null),zd=Se(je);zd.current=je;let[gn,Qs]=Ge(""),[Xd,xr]=Ge(0),wg=Se(""),Sl=Se(void 0),NT=we(()=>{if(!mn)return;let{contextWindow:d,triggerPercent:S,triggerTokens:x,reservedResponseTokens:I}=mn;return{currentTokens:mT??n.contextTokenSnapshot?.currentTokens??zo(n.messages),contextWindow:d,triggerPercent:S,triggerTokens:x,reservedResponseTokens:I}},[n.messages,n.contextTokenSnapshot,mn,mT]),wl=we(()=>{if(!Ye)return;let d=new Set(Ye.runtimeGrantSuggestions?.map(I=>I.kind)??[]);if(d.has("persistent"))return ie("confirm.instruction.runtime_persistent");if(d.has("session"))return ie("confirm.instruction.runtime_session");if(Ye.runtimeGrantSuggestions!==void 0)return ie("confirm.instruction.basic");let S=!!Ye.input._alwaysConfirm,x=F.permissionMode==="accept-edits"&&!S;return S?ie("confirm.instruction.protected"):x?ie("confirm.instruction.always"):ie("confirm.instruction.basic")},[Ye,F.permissionMode]),wt=ze.searchMode==="history",ue=ze.surface==="transcript",Nr=!!Ye||!!je||wt,Bt=ue?Kt?ER:1e3:12,Vi=NL(c,ze.surface),DT=Vi.shellMode,xg=Vi.usesAlternateScreenShell,Ho=Vi.usesRendererViewportShell,Yd=Vi.usesRendererMouseTracking,BT=Vi.usesManagedMouseClicks,FT=Vi.usesManagedMouseWheel,Tg=Vi.usesManagedSelection,Ft=DL(c,ze.surface,Y_(ze)),HT=q_(ze),qd=yl&&!ue,WT=q(()=>Tx({items:Gs,managedLiveEvents:[],isLoading:H,isThinking:W.isThinking,thinkingCharCount:W.thinkingCharCount,thinkingContent:W.thinkingContent,currentResponse:W.currentResponse,currentTool:W.currentTool,activeToolCalls:Bo,toolInputCharCount:W.toolInputCharCount,toolInputContent:W.toolInputContent,lastLiveActivityLabel:Nd,workStripText:Oo,iterationHistory:W.iterationHistory,currentIteration:W.currentIteration,isCompacting:W.isCompacting}),[Gs,H,W.isThinking,W.thinkingCharCount,W.thinkingContent,W.currentResponse,W.currentTool,Bo,W.toolInputCharCount,W.toolInputContent,Nd,Oo,W.iterationHistory,W.currentIteration,W.isCompacting]);He(()=>{if(ue){yT(d=>d??WT());return}yT(null)},[WT,ue]);let xl=we(()=>LL({isTranscriptMode:ue,snapshot:dg,currentItemsLength:Gs.length,currentManagedLiveEventsLength:0,isLoading:H,currentResponse:W.currentResponse,thinkingContent:W.thinkingContent,activeToolCallsLength:Bo.length}),[Bo.length,H,ue,Gs.length,W.currentResponse,W.thinkingContent,dg]),en=ue?dg:null,Cg=we(()=>OL(Fd),[Fd]),_O=we(()=>!!(ul.length>0||KL(Q)),[ul.length,Q]),Jd=ul.length>0,un=c.streamingPreview&&_O,Zs=we(()=>PL({surface:"transcript",snapshot:en,promptItems:Fd,transcriptItems:Gs}),[en,Fd,Gs]),Tl=we(()=>{if(!ue||Kt)return Zs;let d=jR(Zs,FR);if(d.length===Zs.length)return Zs;let S=Zs.length-d.length;return[KR(S,d[0]?.timestamp),...d]},[Zs,ue,Kt]),xt=en?.isLoading??H,dt=c.streamingPreview?{isThinking:un?!1:W.isThinking,thinkingCharCount:un?0:W.thinkingCharCount,thinkingContent:un?"":W.thinkingContent,currentResponse:un?"":W.currentResponse,currentTool:un?void 0:W.currentTool,activeToolCalls:un?[]:Bo,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:un?Nd:void 0,iterationHistory:[],currentIteration:W.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:W.currentIteration,isCompacting:!1},Ee=c.streamingPreview?{isThinking:un?!1:en?.isThinking??W.isThinking,thinkingCharCount:un?0:en?.thinkingCharCount??W.thinkingCharCount,thinkingContent:un?"":en?.thinkingContent??W.thinkingContent,currentResponse:un?"":en?.currentResponse??W.currentResponse,currentTool:un?void 0:en?.currentTool??W.currentTool,activeToolCalls:un?[]:en?.activeToolCalls??Bo,toolInputCharCount:un?0:en?.toolInputCharCount??W.toolInputCharCount,toolInputContent:un?"":en?.toolInputContent??W.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:en?.lastLiveActivityLabel??Nd,iterationHistory:un?[]:en?.iterationHistory??W.iterationHistory,currentIteration:en?.currentIteration??W.currentIteration,isCompacting:en?.isCompacting??W.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:en?.currentIteration??W.currentIteration,isCompacting:!1},di=ue?ai:Pd,jT=!!Pd,UT=q(()=>Tx({items:Cg,managedLiveEvents:[],isLoading:H,isThinking:dt.isThinking,thinkingCharCount:dt.thinkingCharCount,thinkingContent:dt.thinkingContent,currentResponse:dt.currentResponse,currentTool:dt.currentTool,activeToolCalls:dt.activeToolCalls,toolInputCharCount:dt.toolInputCharCount,toolInputContent:dt.toolInputContent,lastLiveActivityLabel:dt.lastLiveActivityLabel,iterationHistory:dt.iterationHistory,currentIteration:dt.currentIteration,isCompacting:dt.isCompacting}),[H,Cg,dt.activeToolCalls,dt.currentIteration,dt.currentResponse,dt.currentTool,dt.isCompacting,dt.isThinking,dt.iterationHistory,dt.lastLiveActivityLabel,dt.thinkingCharCount,dt.thinkingContent,dt.toolInputCharCount,dt.toolInputContent]);He(()=>{if(!jT){ST(null);return}ST(d=>d??UT())},[UT,jT]);let Cl=an?.items??Cg,yn=an?.isLoading??H,Be=an?{isThinking:an.isThinking,thinkingCharCount:an.thinkingCharCount,thinkingContent:an.thinkingContent,currentResponse:an.currentResponse,currentTool:an.currentTool,activeToolCalls:an.activeToolCalls,toolInputCharCount:an.toolInputCharCount,toolInputContent:an.toolInputContent,managedLiveEvents:an.managedLiveEvents,lastLiveActivityLabel:an.lastLiveActivityLabel,iterationHistory:an.iterationHistory,currentIteration:an.currentIteration,isCompacting:an.isCompacting}:dt,tn=ue?Tl:Cl,Dr=ue?xt:yn,tt=ue?Ee:Be,VT=yn&&!W.currentResponse&&!W.thinkingContent&&Bo.length===0,AO=wu(fg?.status==="running"),zt=we(()=>Nv(fg,Date.now()),[fg,AO]),GT=zt.shouldRender?`Workflow ${zt.workflow}${zt.phase?` - ${zt.phase}`:""}`:void 0,fi=we(()=>r_($d,{now:Date.now(),lastAllCompletedAt:null}),[$d]),KT=T<=20?1:DS,LO=wu(gg.length>0),Ig=we(()=>Dk(gg,KT,Date.now()),[KT,gg,LO]),zT=Lk({isTranscriptMode:ue,isLoading:H,hasWorkflowLiveSurface:zt.shouldRender,childActivityVisible:Ig.shouldRender}),ea=we(()=>{if(!ue)return[];let d=[];return d.push(...$v(zt)),H&&fi.shouldRender&&d.push(...e_(fi)),d},[ue,H,fi,zt]),Wo=we(()=>({config:Gt,sessionId:n.sessionId,workingDir:e.context?.executionCwd||e.context?.gitRoot||n.runtimeInfo?.executionCwd||n.gitRoot||process.cwd(),terminalWidth:ee,compactionInfo:mn??void 0}),[mn,n.sessionId,Gt,n.runtimeInfo?.executionCwd,e.context?.gitRoot,e.context?.executionCwd,ee]),Gi=we(()=>c.enabled&&mr?aG(Wo):void 0,[Wo,c.enabled,mr]),XT=Se(Hc),YT=Se(!1),vg=Se(!1),ta=HA({enabled:cG,useRendererViewportShell:Ho,isTranscriptMode:ue,hasCommitHandle:typeof ms(w)?.commitInlineScrollback=="function"}),Il=we(()=>dm({items:Cl,viewportWidth:ee,maxLines:Bt,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[Cl,ee,Bt]),jo=we(()=>{let d=fm({activeItems:Il.activeItems,viewportWidth:ee,isLoading:yn,maxLines:Bt,isThinking:Be.isThinking,thinkingCharCount:Be.thinkingCharCount,thinkingContent:Be.thinkingContent,streamingResponse:Be.currentResponse,currentTool:Be.currentTool,activeToolCalls:Be.activeToolCalls,toolInputCharCount:Be.toolInputCharCount,toolInputContent:Be.toolInputContent,iterationHistory:Be.iterationHistory,currentIteration:Be.currentIteration,isCompacting:Be.isCompacting,managedAgentMode:F.agentMode,managedPhase:yn?Q?.phase:void 0,managedHarnessProfile:yn?Q?.harnessProfile:void 0,managedWorkerTitle:yn?Q?.activeWorkerTitle:void 0,managedRound:yn?Q?.currentRound:void 0,managedMaxRounds:yn?Q?.maxRounds:void 0,managedGlobalWorkBudget:yn?Q?.globalWorkBudget:void 0,managedBudgetUsage:yn?Q?.budgetUsage:void 0,managedBudgetApprovalRequired:yn?Q?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Be.lastLiveActivityLabel,currentTodoActiveForm:Us,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:VT}),S=PR(Il,d,Gi);return UA(S,ta)},[F.agentMode,ta,yn,Be.activeToolCalls,Be.currentIteration,Be.currentTool,Be.isCompacting,Be.currentResponse,Be.isThinking,Be.iterationHistory,Be.lastLiveActivityLabel,Be.thinkingCharCount,Be.thinkingContent,Be.toolInputCharCount,Be.toolInputContent,Q?.activeWorkerTitle,Q?.budgetApprovalRequired,Q?.budgetUsage,Q?.currentRound,Q?.globalWorkBudget,Q?.harnessProfile,Q?.maxRounds,Q?.phase,VT,Il,Gi,ee,Bt,Us]),bg=we(()=>dm({items:Tl,viewportWidth:ee,maxLines:Bt,showDetailedTools:Kt,showAllContent:Kt,showFullThinking:!0,windowed:!1}),[Tl,ee,Bt,Kt]),Qd=we(()=>{if(!ue||Ho)return;let d=fm({activeItems:bg.activeItems,viewportWidth:ee,isLoading:xt,maxLines:Bt,isThinking:Ee.isThinking,thinkingCharCount:Ee.thinkingCharCount,thinkingContent:Ee.thinkingContent,streamingResponse:Ee.currentResponse,currentTool:Ee.currentTool,activeToolCalls:Ee.activeToolCalls,toolInputCharCount:Ee.toolInputCharCount,toolInputContent:Ee.toolInputContent,iterationHistory:Ee.iterationHistory,currentIteration:Ee.currentIteration,isCompacting:Ee.isCompacting,managedAgentMode:F.agentMode,managedPhase:xt?Q?.phase:void 0,managedHarnessProfile:xt?Q?.harnessProfile:void 0,managedWorkerTitle:xt?Q?.activeWorkerTitle:void 0,managedRound:xt?Q?.currentRound:void 0,managedMaxRounds:xt?Q?.maxRounds:void 0,managedGlobalWorkBudget:xt?Q?.globalWorkBudget:void 0,managedBudgetUsage:xt?Q?.budgetUsage:void 0,managedBudgetApprovalRequired:xt?Q?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ee.lastLiveActivityLabel,liveStatusLines:ea,currentTodoActiveForm:Us,showFullThinking:!0,showDetailedTools:Kt,showAllContent:Kt,showLiveProgressRows:!Jd,expandedItemKeys:Pn});return YL(wS(pm(bg,d)),Gi)},[F.agentMode,Pn,Jd,Gi,ue,Q?.activeWorkerTitle,Q?.budgetApprovalRequired,Q?.budgetUsage,Q?.currentRound,Q?.globalWorkBudget,Q?.harnessProfile,Q?.maxRounds,Q?.phase,ee,xt,Bt,bg,Ee.activeToolCalls,Ee.currentIteration,Ee.currentResponse,Ee.currentTool,Ee.isCompacting,Ee.isThinking,Ee.iterationHistory,Ee.lastLiveActivityLabel,Ee.thinkingCharCount,Ee.thinkingContent,Ee.toolInputCharCount,Ee.toolInputContent,Kt,ea,Ho,Us]),vl=we(()=>{if(Ft)return ue?YL(mm({items:tn,viewportWidth:ee,isLoading:Dr,maxLines:Bt,isThinking:tt.isThinking,thinkingCharCount:tt.thinkingCharCount,thinkingContent:tt.thinkingContent,streamingResponse:tt.currentResponse,currentTool:tt.currentTool,activeToolCalls:tt.activeToolCalls,toolInputCharCount:tt.toolInputCharCount,toolInputContent:tt.toolInputContent,iterationHistory:tt.iterationHistory,currentIteration:tt.currentIteration,isCompacting:tt.isCompacting,managedAgentMode:F.agentMode,managedPhase:Dr?Q?.phase:void 0,managedHarnessProfile:Dr?Q?.harnessProfile:void 0,managedWorkerTitle:Dr?Q?.activeWorkerTitle:void 0,managedRound:Dr?Q?.currentRound:void 0,managedMaxRounds:Dr?Q?.maxRounds:void 0,managedGlobalWorkBudget:Dr?Q?.globalWorkBudget:void 0,managedBudgetUsage:Dr?Q?.budgetUsage:void 0,managedBudgetApprovalRequired:Dr?Q?.budgetApprovalRequired:void 0,lastLiveActivityLabel:tt.lastLiveActivityLabel,liveStatusLines:ea,currentTodoActiveForm:Us,windowed:!0,showFullThinking:ue,showDetailedTools:Kt,showAllContent:Kt,showLiveProgressRows:ue&&!Jd,expandedItemKeys:ue?Pn:void 0}),Gi):wS(jo)},[F.agentMode,Dr,tn,Jd,Gi,tt.activeToolCalls,tt.currentIteration,tt.currentResponse,tt.currentTool,tt.isCompacting,tt.isThinking,tt.iterationHistory,tt.lastLiveActivityLabel,tt.thinkingCharCount,tt.thinkingContent,tt.toolInputCharCount,tt.toolInputContent,Pn,ue,Q?.activeWorkerTitle,Q?.budgetApprovalRequired,Q?.budgetUsage,Q?.currentRound,Q?.globalWorkBudget,Q?.harnessProfile,Q?.maxRounds,Q?.phase,jo,H,ue,ee,Bt,Ft,ea,Kt,Us]),Br=we(()=>vl??Qd,[vl,Qd]),bl=we(()=>xx({status:Q,isLoading:H,agentMode:F.agentMode}),[F.agentMode,H,Q]).workStripText,Rl=en?.workStripText??Oo,na=we(()=>xx({status:Q,isLoading:H,agentMode:F.agentMode,parallelTextOverride:Rl}),[F.agentMode,Rl,H,Q]),Uo=we(()=>YA(tn).filter(d=>d!==hm),[tn]),ct=we(()=>Oh(ze,Uo,ze.selectedItemId),[Uo,ze]),Dn=we(()=>tn.find(d=>d.id===ct),[tn,ct]),qT=we(()=>({...ze,supportsSelection:ze.supportsSelection&&Ft,supportsCopyOnSelect:ze.supportsCopyOnSelect&&Ft}),[ze,Ft]),er=we(()=>wL({state:qT,selectableItemIds:Uo,selectedItemId:ct,selectedItemType:Dn?.type,isExpanded:ct?Pn.has(ct):!1}),[Pn,Uo,Dn?.type,ct,qT]),JT=er.selectionEnabled,QT=er.copyCapabilities.copyOnSelect,FK=er.selectedItemIndex,ZT=we(()=>XA(Dn),[Dn]),Zd=we(()=>VA(tn.filter(d=>!TS(d))),[tn]),Xt=we(()=>GA(Zd,gn),[Zd,gn]),ef=we(()=>CL({isHistorySearchActive:wt,historySearchQuery:gn,matches:Xt,selectedIndex:Xd,anchorItemId:ze.searchAnchorItemId,useOverlaySurface:ze.supportsOverlaySurface&&ze.supportsSearchViewport&&Ft}),[Xt,gn,Xd,wt,ze.searchAnchorItemId,ze.supportsOverlaySurface,ze.supportsSearchViewport,Ft]),Ki=ef.clampedSelectedIndex,eC=ef.statusText,Rg=ef.detailText,tC=ef.searchState,HK=er.detailState==="expanded",tf=er.selectionEnabled&&Uo.length>0&&!di,ra=er.copyCapabilities.message,nf=er.copyCapabilities.toolInput,rf=er.toggleDetail;He(()=>{if(bl){if(Pr.current&&(clearTimeout(Pr.current),Pr.current=null),Oo===bl)return;if(Oo){cn.current&&(clearTimeout(cn.current),cn.current=null),dl(bl);return}cn.current&&clearTimeout(cn.current),cn.current=setTimeout(()=>{dl(bl),cn.current=null},400);return}if(!Oo){cn.current&&(clearTimeout(cn.current),cn.current=null);return}cn.current&&(clearTimeout(cn.current),cn.current=null),Pr.current&&clearTimeout(Pr.current),Pr.current=setTimeout(()=>{dl(void 0),Pr.current=null},300)},[Fo,bl,Oo]),He(()=>()=>{Fo()},[Fo]);let zi=we(()=>ZA({state:ze,ownsViewport:Ft,isAwaitingUserInteraction:Nr,isHistorySearchActive:wt,isTranscriptMode:ue,historySearchQuery:gn}),[gn,Nr,wt,ue,ze,Ft]);He(()=>{Lr(d=>{let S=U_(d,gr);return S=j_(S,xl),S=G_(S,c.enabled&&Ft?!ag||wt||Nr:ue||wt||Nr),S=X_(S,Ki),S})},[Ki,c.enabled,gr,Nr,wt,ue,xl,Ft,ag]),He(()=>{Xd!==Ki&&xr(Ki)},[Ki,Xd]),He(()=>{if(!wt){wg.current=gn;return}if(gn===wg.current)return;wg.current=gn;let d=zA(Zd,Xt,ze.searchAnchorItemId);xr(d)},[Xt,gn,wt,ze.searchAnchorItemId,Zd]);let nC=ue?Ee:{isThinking:Be.isThinking,thinkingCharCount:Be.thinkingCharCount,currentTool:Be.currentTool,activeToolCalls:Be.activeToolCalls,toolInputCharCount:Be.toolInputCharCount,toolInputContent:Be.toolInputContent,currentIteration:Be.currentIteration,isCompacting:Be.isCompacting},kl=ue?xt:yn,[kg,tr]=Ge(()=>Ps(F.permissionMode,e.runtimeAutoModeControl?void 0:f.getGuardrail().getEngine(),s.engine));He(()=>{if(!e.runtimeAutoModeControl){Ir(F.permissionMode)||tr(void 0);return}if(!Ir(F.permissionMode)){tr(void 0),e.runtimeAutoModeControl.syncSettings?.(n.sessionId,F.permissionMode,s);return}tr(I=>Ps(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&&tr(Ps(F.permissionMode,I?.engine,s.engine))},"refresh")();let x=e.runtimeAutoModeControl.subscribe?.(n.sessionId,I=>{d&&tr(Ps(F.permissionMode,I?.engine,s.engine))});return()=>{d=!1,x?.close()}},[s,n.sessionId,F.permissionMode,e.runtimeAutoModeControl]);let of=we(()=>SL({sessionId:n.sessionId,permissionMode:F.permissionMode,agentMode:F.agentMode,provider:F.provider,model:F.model??jr(F.provider)??F.provider,thinking:F.thinking,reasoningMode:F.reasoningMode,effort:ke,reasoningEffortLabel:Zi({provider:F.provider,model:F.model,effort:ke,effortOverride:F.effortOverride,thinking:F.thinking,reasoningMode:F.reasoningMode}),isTranscriptMode:ue,streamingState:nC,maxIter:W.maxIter,contextUsage:NT,learning:uT,isLoading:kl,managedState:{phase:Q?.phase,harnessProfile:Q?.harnessProfile,workerTitle:Q?.activeWorkerTitle,round:Q?.currentRound,maxRounds:Q?.maxRounds,globalWorkBudget:Q?.globalWorkBudget,budgetUsage:Q?.budgetUsage,budgetApprovalRequired:Q?.budgetApprovalRequired,idleWaiting:Q?.idleWaiting,idleWaitingPendingCount:Q?.idleWaitingPendingCount},autoModeEngine:kg}),[n.sessionId,F.permissionMode,F.agentMode,F.provider,F.model,F.thinking,F.reasoningMode,F.effortOverride,ke,ue,nC,W.maxIter,NT,uT,kl,Q?.phase,Q?.harnessProfile,Q?.activeWorkerTitle,Q?.currentRound,Q?.maxRounds,Q?.globalWorkBudget,Q?.budgetUsage,Q?.budgetApprovalRequired,Q?.idleWaiting,Q?.idleWaitingPendingCount,kg]),Eg=Ye?"confirm":je?.kind,rC=we(()=>gL({isTranscriptMode:ue,isLoading:kl,streamingState:Be,managedState:kl?{phase:Q?.phase,harnessProfile:Q?.harnessProfile,workerTitle:Q?.activeWorkerTitle}:void 0,waitingReason:Eg,workflowBuilderMessage:wT??void 0,backgroundWorkflowMessage:GT}),[Be.activeToolCalls,Be.currentTool,Be.isCompacting,Be.isThinking,Be.thinkingCharCount,Be.toolInputCharCount,Be.toolInputContent,ue,Q?.activeWorkerTitle,Q?.harnessProfile,Q?.phase,Eg,kl,wT,GT]),pi=mL({activity:rC})?rC:void 0,iC=pi?.text,oC=!!pi,sC=Se(!1);He(()=>{sC.current&&!H&&ci(d=>d.length>0?[]:d),sC.current=H},[H]);let Mg=we(()=>xm(of),[of]),aC=we(()=>Mg,[Mg]),cC=aC.text,PO=we(()=>vk(W.pendingInputs),[W.pendingInputs]),_g=we(()=>i_({isHistorySearchActive:wt,isTranscriptMode:ue,pendingInputCount:W.pendingInputs.length,buffering:ze.buffering,pendingLiveUpdates:xl}),[wt,ue,xl,W.pendingInputs.length,ze.buffering]),lC=_g.leftItems,uC=_g.rightItems,dC=_g.summary,sf=we(()=>vL({historySearchQuery:gn,pendingInputCount:W.pendingInputs.length}),[gn,W.pendingInputs.length]),af=we(()=>[...IL({historySearchQuery:gn,isHistorySearchActive:wt,historySearchMatchCount:Xt.length,pendingInputCount:W.pendingInputs.length,maxPendingInputs:5}),...fT],[Xt.length,gn,wt,fT,W.pendingInputs.length]),fC=we(()=>af.map(d=>d.text).join(" | "),[af]),cf=we(()=>bL({inputText:og,isTranscriptMode:ue,isHistorySearchActive:wt}),[og,wt,ue]),pC=ze.supportsOverlaySurface&&ze.supportsSearchViewport&&Ft,lf=we(()=>xL({runtime:er,itemSummary:ZT}),[ZT,er]),Ag=we(()=>RL(sf),[sf]),mC=we(()=>kL({textSelection:di,selectionState:lf,isHistorySearchActive:wt,historySearchDetailText:Rg,historySearchHasMatches:!!eC&&Xt.length>0,showAllActive:Kt,baseFooterNotices:sf}),[di,sf,Rg,Xt.length,eC,wt,Kt,lf]),OO=mC.secondaryText,$O=mC.budgetNotices,hC=ue?$O:Ag,gC=T,yC=ue?"":og,SC=ue?void 0:PO,wC=Rl,xC=ue?!1:AT,TC=zt.shouldRender?qM(zt):0,CC=H&&fi.shouldRender?fi.rows.length:0,IC=zT?Bm(Ig):0,nn=we(()=>B_({terminalRows:gC,terminalWidth:ee,windowedTranscript:Ho,inputText:yC,footerHeaderText:dC,activitySummary:ue?void 0:iC,activityBarVisible:ue?!1:oC,workflowSurfaceRows:ue?0:TC,childActivitySurfaceRows:ue?0:IC,todoSurfaceRows:ue?0:CC,pendingInputSummary:SC,stashNoticeSummary:cf,notificationSummary:fC,statusNoticeSummary:hC.join(" | "),workStripText:wC,suggestionsReserved:qd,suggestionsMode:"inline",showHelp:xC,statusBarText:cC,confirmPrompt:Ye?.prompt,confirmInstruction:wl,dialogMode:"inline",reviewHint:c.enabled&&Ft?void 0:zi.browseHintText,uiRequest:je?je.kind==="select"?{kind:"select",title:je.title,options:je.options.map(d=>({label:d.label,description:d.description})),buffer:je.buffer,error:je.error}:{kind:"input",prompt:je.prompt,defaultValue:je.defaultValue,buffer:je.buffer,error:je.error}:null}),[gC,ee,yC,dC,iC,oC,ue,TC,IC,CC,SC,cf,fC,hC,wC,qd,pC,xC,cC,Ye,wl,c.enabled,zi.browseHintText,Ft,je]),Lg=we(()=>{if(!ta)return{model:jo,committedSections:[]};let{committedSections:d,liveRows:S}=OR(Il.staticSections,jo.rows,jo.previewRows,nn.messageRows);return{model:{...jo,staticSections:[],rows:S,previewRows:[]},committedSections:d}},[ta,jo,Il.staticSections,nn.messageRows]),vC=Lg.model;He(()=>{let d=ms(w),S=typeof d?.commitInlineScrollback=="function",x=WA({active:ta,hasCommitHandle:S,wasActive:YT.current,forceRebuild:vg.current,prior:XT.current,finalizedSections:Lg.committedSections,bannerSection:Gi,width:ee,identify:$R}),I=!1,R=!1;if(x.kind==="commit"){let N=x.sections.flatMap(Z=>Z.rows),j=FA(N.length>0?[{key:"il-delta",rows:N}]:[],{width:ee,theme:ae("dark")});if(R=j.length>0,x.mode==="append"&&!j)qL("empty-append-text");else try{d?.commitInlineScrollback?.({mode:x.mode,text:j}),I=!0}catch(Z){qL("commit-threw",Z)}}let O=jA(x,{committed:I,hadContent:R},vg.current);XT.current=O.state,YT.current=O.wasActive,vg.current=O.owns},[ta,Lg.committedSections,Gi,ee,w]);let NO=we(()=>pe(Om,{reserveSpace:qd,width:ee,hidden:ue,mode:"inline"}),[qd,ee,ue,pC]),El=we(()=>eL(nn.messageRows),[nn.messageRows]),bC=we(()=>tL(El),[El]),ia=!HT&&c.transcriptSpinnerAnimation,Ml=Br?Br.rows.length+Br.previewRows.length:dO,uf=q(d=>{Br||fO(d.scrollHeight)},[Br]),_l=q(d=>aL({window:d,stickyHeader:zi.stickyHeader,width:ee,topChromeRows:0}),[ee,zi.stickyHeader]),oa=q((d=il.current,S=Ld.current,x=cg.current?_l(cg.current):Ad.current)=>{if(!x||d.length===0){Hs.current=null;return}Ad.current=x,Hs.current=cL(d,{allRows:S,rowIndexByKey:mx(S),topOffsetRows:x.topOffsetRows,viewportHeight:x.contentWindow.viewportHeight,animateSpinners:ia})},[_l,ia]),Al=q(()=>{let d=Ad.current;return d?.contentWindow.viewportHeight&&d.contentWindow.viewportHeight>0?d.contentWindow.viewportHeight:nn.messageRows},[nn.messageRows]),DO=q(d=>{cg.current=d;let S=_l(d);Ad.current=S,oa(il.current,Ld.current,S)},[oa,_l]),df=q(d=>{il.current=d.rows,Ld.current=d.allRows,oa(d.rows,d.allRows)},[oa]),dn=q(()=>{yr.current=null,lg(void 0),ug(void 0)},[]),Pg=q(()=>{dn(),Lr(d=>Fc(d,void 0))},[dn]);He(()=>{oa()},[oa]),He(()=>{mO(d=>nL(d,Ml,nn.messageRows))},[Ml,nn.messageRows]),He(()=>{if(!Ws)return;let d=setTimeout(()=>{gT(void 0)},2e3);return()=>{clearTimeout(d)}},[Ws]);let Bn=q((d,S="success")=>{let x=d?.trim();x&&gT({text:x,tone:S})},[]);He(()=>e.subscribeTransientNotices?.(d=>{Bn(d.text,d.tone)}),[e.subscribeTransientNotices,Bn]);let BO=q(d=>{Bn(d,"warning")},[Bn]),sa=q((d,S)=>{let x=S instanceof Error?S.message:String(S);return`${d}: ${x}`},[]),ff=q(async d=>{let S=d??di;if(!S)return!1;let x=S.text.trimEnd();if(!x)return!1;try{return await Vl(x,{terminalWrite:k}),Bn(`Copied ${S.rowCount} selected line${S.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(I){return Bn(sa("Failed to copy transcript selection",I),"warning"),!1}},[di,sa,Bn,k]),aa=q(d=>{if(!d||iL({items:tn,renderModel:Br,terminalWidth:ee,transcriptMaxLines:Bt,viewportRows:Al(),itemId:d,visibleRows:il.current,expandedItemKeys:Pn,showDetailedTools:!1}))return;let S=oL({items:tn,renderModel:Br,terminalWidth:ee,transcriptMaxLines:Bt,viewportRows:Al(),itemId:d,expandedItemKeys:Pn,showDetailedTools:!1});Ed(S)},[tn,ee,Bt,Br,Pn,Al,Ed,il]),RC=q(d=>{Lr(S=>Fc(S,d)),d&&aa(d)},[aa]),Og=q(d=>{d&&aa(d)},[aa]),kC=q(d=>{if(!tf)return;let S=qA(Uo,ct,d);S&&RC(S)},[tf,Uo,ct,RC]),EC=q(()=>{!rf||!ct||(yO(d=>{let S=new Set(d);return S.has(ct)?S.delete(ct):S.add(ct),S}),aa(ct))},[aa,rf,ct]),MC=q(async()=>{if(!ra||!Dn)return;let d=px(Dn);if(d)try{await Vl(d,{terminalWrite:k}),Bn("Copied selected transcript entry to clipboard.","success")}catch(S){Bn(sa("Failed to copy transcript entry",S),"warning")}},[sa,ra,Dn,Bn,k]),_C=q(async()=>{if(!nf||!Dn)return;let d=JA(Dn);if(d)try{await Vl(d,{terminalWrite:k}),Bn("Copied selected tool args to clipboard.","success")}catch(S){Bn(sa("Failed to copy tool args",S),"warning")}},[sa,nf,Dn,Bn,k]),Ll=q(()=>Ld.current,[]),AC=q((d,S)=>{if(!c.enabled||!Ft)return;let x=Hs.current;return x?gx(x,d,S):void 0},[c.enabled,Ft]),ca=q((d,S,x)=>{let I=Ll(),R=dL(I,d,S,{animateSpinners:ia,selectFullRowOnCollapsed:x?.selectFullRowOnCollapsed});ue?ug(R):lg(R);let O=I[Math.max(0,Math.min(S.modelRowIndex,I.length-1))];return x?.updateSelectedItem&&O?.itemId&&Lr(N=>Fc(N,O.itemId)),R},[ue,Ll,ia]),LC=q((d,S)=>{if(!d)return;yr.current=null;let x={...d,focus:S?.focusPoint??d.focus};if(!(x.mode!=="char"||x.didDrag)){dn();return}let R=ca(x.anchor,x.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!R){dn();return}return S?.copySelection!==!1&&ff(R),R},[dn,ff,ca]),$g=q(()=>{if(!ue||!tn.length||Ye||je)return;dn();let d=sL({items:tn,selectedItemId:ct,renderModel:Br,terminalWidth:ee,transcriptMaxLines:Bt,viewportRows:Al(),scrollOffset:gr,expandedItemKeys:Pn,showDetailedTools:!1,preferViewportAnchor:!0});Lr(S=>K_(S,{anchorItemId:d,initialMatchIndex:0})),Qs(""),xr(0)},[Ye,tn,Pn,gr,ue,ct,Br,ee,Bt,je,Al,dn]),Ng=q(()=>{Lr(d=>z_(d)),Qs(""),xr(0),dn()},[dn]),pf=q(()=>{!wt||Xt.length===0||xr(-1)},[Xt.length,wt]),PC=we(()=>{if(!Ye)return null;if(Ye.tool==="exit_plan_mode"){let d=typeof Ye.input.plan=="string"?Ye.input.plan:void 0;return{prompt:Ye.prompt.split(`
164
+ `,1)[0]??Ye.prompt,instruction:wl,planContent:d}}return{prompt:Ye.prompt,instruction:wl}},[wl,Ye]),OC=we(()=>je?je.kind==="select"?{kind:"select",title:je.title,options:je.options,buffer:je.buffer,error:je.error,visibleSelectOptions:nn.visibleSelectOptions,focusedIndex:je.focusedIndex,selectedIndices:je.selectedIndices,multiSelect:je.multiSelect}:{kind:"input",prompt:je.prompt,defaultValue:je.defaultValue,buffer:je.buffer,error:je.error}:null,[je,nn.visibleSelectOptions]),FO=we(()=>pe($m,{confirm:PC,request:OC}),[PC,OC]),Dg=we(()=>{if(Ws)return pe(zM,{text:Ws.text,tone:Ws.tone})},[Ws]),Bg=we(()=>{if(Dg)return pe(M,{flexDirection:"column",width:"100%",children:Dg})},[Dg]),mf=q(()=>{Lr(d=>V_(W_(d))),sg(!1),_d(),Qs(""),xr(0),dn()},[dn,_d]),$C=q(()=>{ue&&sg(d=>!d)},[ue]),HO=q(()=>{if(ue){mf();return}sg(!1),Lr(d=>H_(d)),Qs(""),xr(0),dn()},[dn,mf,ue]);He(()=>{JT||!ze.selectedItemId||Lr(d=>Fc(d,void 0))},[JT,ze.selectedItemId]),He(()=>{if(!ue||!ra||!QT){Sl.current=void 0;return}if(ai||!ct||!Dn)return;if(!Sl.current){Sl.current=ct;return}if(Sl.current===ct)return;Sl.current=ct;let d=px(Dn);d&&Vl(d,{terminalWrite:k}).catch(()=>{})},[ue,Dn,ct,ra,QT,ai,k]),He(()=>{if(w?.isTTY!==!0)return;let d=ms(w);d?.setShellMode?.(DT,Yd),xg||d?.setAltScreenActive?.(!1)},[DT,w,xg,Yd]);let WO=we(()=>o_(i,()=>ig.current),[i]),Ne=Se({...e,thinking:F.thinking,reasoningMode:F.reasoningMode,effort:At,agentMode:F.agentMode,workflowRunsBaseDir:qi("workflow-runs",es(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:WO,persistedByHost:!0},guardrails:e.runtimeRunner?void 0:vx(F.permissionMode,f)});He(()=>{Ne.current.effort=At},[At]);let Pl=q(d=>{let S=d.workspaceRoot??void 0;n.runtimeInfo=d,n.gitRoot=S,Ne.current.context={...Ne.current.context,gitRoot:S,executionCwd:d.executionCwd??S??process.cwd()}},[n]),Fn=Se(F.permissionMode),NC=Se(0);He(()=>{Fn.current=F.permissionMode},[F.permissionMode]);let jO=we(()=>$a(),[]),DC=Se(jO),bt=Se(F);He(()=>{bt.current=F},[F]);let Fg=Se(null);Fg.current===null&&(Fg.current=jf({getProvider:o(()=>Ko(bt.current.provider),"getProvider"),getModel:o(()=>bt.current.model??"","getModel")}));let BC=Se(Kf());He(()=>{F.permissionMode==="auto-in-project"&&BC.current()},[]);let Hg=q(async d=>{let S=++NC.current;Ae(R=>({...R,permissionMode:d})),Fn.current=d,tr(Ps(d,void 0,s.engine));let x=await e.runtimeAutoModeControl?.syncSettings?.(n.sessionId,d,s);if(S!==NC.current)return;let I=Qo({provider:bt.current.provider,model:bt.current.model,effort:bt.current.effort,effortOverride:bt.current.effortOverride,permissionMode:d,planModeEffort:bt.current.planModeEffort,thinking:bt.current.thinking,reasoningMode:bt.current.reasoningMode});if(Ne.current={...Ne.current,effort:I.runtimeEffort,guardrails:e.runtimeRunner?void 0:vx(d,f)},!Ir(d))tr(void 0);else if(e.runtimeAutoModeControl){let R=x??await e.runtimeAutoModeControl.getStats(n.sessionId);tr(Ps(d,R?.engine,s.engine))}else tr(f.getGuardrail().getEngine());d==="auto-in-project"&&BC.current()},[f,s,n.sessionId,e.runtimeAutoModeControl,e.runtimeRunner]),FC=Se(W.pendingInputs),lt=Se(!1),HC=Se(0),Wg=Se(null),Ol=Se(0),hf=q(()=>{if(tl.current)return;let d=Dd.current?.trim(),S=y.current.length>0?y.current[y.current.length-1]:void 0,x=S&&"text"in S&&typeof S.text=="string"?S.text.trim():void 0,R=hn.current.length>0?[...hn.current.map(O=>Ao(O)),...d&&d!==x?[{type:"info",text:d}]:[]]:[...hn.current.map(O=>Ao(O)),...ZV(We(),K(),{toolCalls:ln.current,toolNames:Or.current,infoItems:d&&d!==x?[d]:[]})];R.length!==0&&(tl.current=!0,jd(hn.current),Fs.current?.(R))},[K,We,jd]);He(()=>{FC.current=W.pendingInputs},[W.pendingInputs]);let WC=q(()=>{lt.current=!0,_e(),he(),te(),oe(),Ke(),Ve(),Ie(void 0),Ui(),kt(void 0),hl(),$o.current=[],Vs.current=[],gt.current=null,Dd.current=null,ll([]),Od(null),js(null),Fo(),dl(void 0),ne(!1),w?.isTTY===!0&&ms(w)?.clear?.()},[_e,Ve,oe,Ke,Fo,Ui,hl,Ie,ll,ne,kt,he,te,w]),gf=q(d=>{let S=TI(),x=S.list().filter(R=>R.status==="running"||R.status==="paused");if(x.length===0)return!1;for(let R of x)S.stop(R.runId,d);al(R=>!R||R.status!=="running"||!x.some(O=>O.runId===R.runId)?R:{...R,status:"stopped",activeAgents:[],message:"Workflow stopped by user."});let I=x[0];return x.length===1&&I?On({type:"info",text:`Stopped workflow ${I.workflow} (${I.runId}).`},"workflow-stop"):On({type:"info",text:`Stopped ${x.length} active workflows.`},"workflow-stop"),!0},[On,al]);He(()=>{if(!zt.shouldRender)return;let d=o(()=>{gf("stopped by Ctrl+C")},"handleSigint");return process.on("SIGINT",d),()=>{process.off("SIGINT",d)}},[gf,zt.shouldRender]),Un(Sn.Critical,d=>{let S=d.name==="escape",x=Date.now(),I=S&&!ue&&!Nr&&rl&&W.pendingInputs.length===0&&(H||zt.shouldRender),R=I&&(d.meta===!0||x-HC.current<DV);if(HC.current=I?x:0,aA({keyName:d.name,ctrl:!!d.ctrl,isTranscriptMode:ue,isAwaitingUserInteraction:Nr,isInputEmpty:rl,isDoubleEscape:R,pendingInputCount:W.pendingInputs.length,hasTranscriptTextSelection:!!ai,hasActiveWorkflow:zt.shouldRender}))return gf(d.ctrl?"stopped by Ctrl+C":"stopped by Escape");if(!H)return!1;switch(cA({keyName:d.name,ctrl:!!d.ctrl,isTranscriptMode:ue,isAwaitingUserInteraction:Nr,isInputEmpty:rl,isDoubleEscape:R,pendingInputCount:W.pendingInputs.length,hasTranscriptTextSelection:!!ai}).kind){case"interrupt":return hf(),WC(),!0;case"pop-pending-input":return pn(),!0;default:break}return!1},[H,ue,Nr,rl,W.pendingInputs.length,pn,hf,WC,gf,ai,zt.shouldRender]),Un(Sn.Critical,d=>{let S=iA({itemsLength:tn.length,currentResponse:tt.currentResponse,thinkingContent:tt.thinkingContent,activeToolCallsLength:tt.activeToolCalls.length}),x=oA({keyName:d.name,hasTranscript:S,historyScrollOffset:gr,reviewPageSize:El,reviewWheelStep:bC,hasMouse:!!d.mouse,mouseButton:d.mouse?.button,mouseAction:d.mouse?.action,usesManagedMouseClicks:BT,supportsMouseTracking:ze.supportsMouseTracking,usesRendererMouseTracking:Yd,usesManagedMouseWheel:FT,supportsWheelHistory:ze.supportsWheelHistory});if(x.kind==="mouse-phase"){let R=d.mouse;if(!R)return!1;x.phase==="press"&&yr.current&&LC(yr.current);let O=AC(R.row,R.column);if(x.phase==="press"){if(!O||!S)return di||ct?(Pg(),!0):(dn(),!1);let N=FL({previous:hT.current,time:Date.now(),row:R.row,column:R.column});hT.current=N;let j=N.count>=3?"line":N.count===2?"word":"char";if(pf(),Lr(Z=>Fc(Z,void 0)),ue?ug(void 0):lg(void 0),j!=="char"){let Z=Vh(Ll(),O.point,j);if(Z)return yr.current={anchor:Z.start,focus:Z.end,didDrag:!1,mode:j,anchorSpan:Z},ca(Z.start,Z.end,{updateSelectedItem:!1}),!0}return yr.current={anchor:O.point,focus:O.point,didDrag:!1,mode:"char"},!0}if(!yr.current)return!1;if(x.phase==="drag"){let N=Hs.current,j=N?pL(N,R.row):0;j!==0&&Md(j);let Z=O??(N?yx(N,R.row,R.column):void 0);if(!Z)return!1;let J=yr.current;if(J.mode!=="char"&&J.anchorSpan){let $e=Vh(Ll(),Z.point,J.mode);if(!$e)return!1;let Fe=Ix(J.anchorSpan,$e);return yr.current={...J,anchor:Fe.anchor,focus:Fe.focus,didDrag:!0},ca(Fe.anchor,Fe.focus,{updateSelectedItem:!1}),!0}return yr.current={...J,focus:Z.point,didDrag:!0},ca(J.anchor,Z.point,{updateSelectedItem:!1}),!0}if(x.phase==="release"){let N=yr.current,j=N.focus,J=(O??(Hs.current?yx(Hs.current,R.row,R.column):void 0))?.point??j;if(N.mode!=="char"&&N.anchorSpan){let $e=Vh(Ll(),J,N.mode);if($e){let Fe=Ix(N.anchorSpan,$e);N.anchor=Fe.anchor,J=Fe.focus}}return LC(N,{focusPoint:J}),!0}}if(x.kind==="scroll-by")return pf(),Md(x.delta),!0;if(x.kind==="consume")return!0;let I=lA({key:d,isTranscriptMode:ue,isHistorySearchActive:wt,historySearchMatchCount:Xt.length,hasTextSelection:!!di,hasFocusedItem:!!ct,canCopySelectedItem:ra,canCopySelectedToolInput:nf,canToggleSelectedDetail:rf,canCycleTranscriptSelection:tf});return uA({action:I,hasTranscript:S,isTranscriptMode:ue,pageScrollDelta:El,disarmHistorySearchSelection:pf,scrollTranscriptBy:Md,closeHistorySearchSurface:Ng,backspaceHistorySearchQuery:o(()=>{Qs(R=>R.slice(0,-1)),xr(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:o(R=>{xr(O=>fx(Xt.length,O,R))},"stepHistorySearchSelection"),submitHistorySearchSelection:o(()=>{let R=Xt[Ki];R&&(Og(R.itemId),Ng())},"submitHistorySearchSelection"),appendHistorySearchQuery:o(R=>{Qs(O=>O+R),xr(0)},"appendHistorySearchQuery"),openHistorySearchSurface:$g,clearTranscriptSelectionFocus:Pg,exitTranscriptModeSurface:mf,toggleTranscriptShowAll:$C,scrollTranscriptHome:o(()=>{Ed(Math.max(0,Ml-nn.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:o(()=>{_d(),dn()},"scrollTranscriptToBottom"),cycleTranscriptSelection:kC,copySelectedTranscriptText:o(()=>{ff()},"copySelectedTranscriptText"),copySelectedTranscriptItem:o(()=>{MC()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:o(()=>{_C()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:EC,navigateSearchMatch:o(R=>{xr(O=>{let N=fx(Xt.length,O,R),j=Xt[N];return j&&Og(j.itemId),N})},"navigateSearchMatch"),dumpTranscriptToScrollback:o(()=>{dA({items:tn.filter(R=>!TS(R)),exitAltScreen:o(()=>{k(jp({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:o(R=>{k(R)},"writeToScrollback"),enterAltScreen:o(()=>{k(Wp({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[ue,tn,tt.currentResponse,tt.thinkingContent,tt.activeToolCalls,gr,Ml,El,bC,ct,Pg,mf,$C,ze,Md,Ed,_d,tf,Ki,dn,ff,Xt,$g,Ng,pf,kC,ra,MC,nf,_C,rf,EC,Og,di,AC,ze.supportsMouseTracking,ai,BT,FT,Tg,Ho,Yd,ca,nn.messageRows]),Un(d=>{if(!Ye)return!1;let S=d.sequence.trim().toLowerCase(),x=Ye.runtimeGrantSuggestions?.find(Z=>Z.kind==="session"),I=Ye.runtimeGrantSuggestions?.find(Z=>Z.kind==="persistent"),R=!!Ye.input._alwaysConfirm,O=Ye.runtimeGrantSuggestions!==void 0,N=I!==void 0||!O&&F.permissionMode==="accept-edits"&&!R,j=o(Z=>{let J=`${ie("dialog.confirm")} ${Ye.prompt}
165
+ \u2192 ${ie(`confirm.result.${Z}`)}`;!!st.current.workerId?Zt({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:J,timestamp:Date.now()}):$({type:"info",text:J})},"recordConfirmResult");return S==="y"||S==="yes"?(j("approved"),Js(null),Zn.current?.({confirmed:!0}),Zn.current=null,!0):x&&(S==="s"||S==="session")?(j("approved_session"),Js(null),Zn.current?.({confirmed:!0,runtimeGrantKind:"session"}),Zn.current=null,!0):N&&(S==="a"||S==="always")?(j("approved_always"),Js(null),Zn.current?.(I?{confirmed:!0,runtimeGrantKind:"persistent"}:{confirmed:!0,always:!0}),Zn.current=null,!0):S==="n"||S==="no"||d.name==="escape"?(j("denied"),Js(null),Zn.current?.({confirmed:!1}),Zn.current=null,!0):d.insertable||d.name==="return"},{isActive:!!Ye,priority:Sn.Critical});let yf=q(d=>{Nn(null),$r.current?.(d),$r.current=null},[]),mi=q((d,S,x,I,R)=>S.length===0||R?.aborted?Promise.resolve(void 0):new Promise(O=>{let N=o(J=>{R?.removeEventListener("abort",j),$r.current===N&&($r.current=null),O(J)},"settle"),j=o(()=>{$r.current===N&&(Nn(null),N(void 0))},"onAbort");$r.current=N,R?.addEventListener("abort",j,{once:!0});let Z=I?.defaultValue===void 0?-1:S.findIndex(J=>J.value===I.defaultValue);Nn({kind:"select",title:d,options:S,buffer:"",focusedIndex:Math.max(0,Z),selectedIndices:x===!0&&Z>=0?[Z]:[],multiSelect:x,minSelections:I?.minSelections,maxSelections:I?.maxSelections})}),[]),UO=q((d,S)=>mi(d,S.map(x=>({label:x,value:x}))).then(x=>Array.isArray(x)?x[0]:x),[mi]),VO=q(async d=>{let S=e.learning;if(!S)return;let x=d;if(!x){let N=await S.list({limit:200});if(N.items.length===0){Id([{id:"learning-center-empty",text:"Learning Center has no learned capabilities.",tone:"accent"}]);return}let j=await mi("Learning Center \u2014 type to search",FV(N.items));x=Array.isArray(j)?j[0]:j}if(!x)return;let I=await S.get(x),R=await mi(`${I.displayName} \xB7 ${I.carrier} \xB7 ${I.lifecycle}`,BV(I)),O=Array.isArray(R)?R[0]:R;O&&(await HV(S,I.capabilityId,O),dT(await S.getSnapshot()))},[e.learning,mi]),jC=q(async d=>{let S=d.options?Uh(d.options):[],x=await mi(wx(d),S,!1);return x===void 0?Ca:Array.isArray(x)?x[0]??Ca:x},[mi]);He(()=>{let d=!1;return(async()=>{let{bindAskUserForConstruction:S}=await import("./construction-bootstrap-474QPSYB.js");d||S(jC)})(),()=>{d=!0,(async()=>{let{bindAskUserForConstruction:S}=await import("./construction-bootstrap-474QPSYB.js");S(null)})()}},[jC]);let la=q((d,S,x)=>x?.aborted?Promise.resolve(void 0):new Promise(I=>{let R=o(N=>{x?.removeEventListener("abort",O),$r.current===R&&($r.current=null),I(Array.isArray(N)?N[0]:N)},"settle"),O=o(()=>{$r.current===R&&(Nn(null),R(void 0))},"onAbort");$r.current=R,x?.addEventListener("abort",O,{once:!0}),Nn({kind:"input",prompt:d,defaultValue:S,buffer:""})}),[]);Un(d=>{let S=zd.current;if(!S)return!1;if(d.name==="escape")return yf(void 0),!0;if(S.kind==="select"){let x=S.options.length;if(d.name==="up"||d.sequence==="k")return Nn(I=>I&&I.kind==="select"?{...I,focusedIndex:(I.focusedIndex-1+x)%x,error:void 0}:I),!0;if(d.name==="down"||d.sequence==="j")return Nn(I=>I&&I.kind==="select"?{...I,focusedIndex:(I.focusedIndex+1)%x,error:void 0}:I),!0;if(d.sequence===" "&&S.multiSelect)return Nn(I=>{if(!I||I.kind!=="select")return I;let R=I.focusedIndex,O=I.selectedIndices.includes(R)?I.selectedIndices.filter(N=>N!==R):[...I.selectedIndices,R];return{...I,selectedIndices:O,error:void 0}}),!0;if(d.name==="return"){let I=zd.current;if(!I||I.kind!=="select")return!1;if(I.multiSelect){let R=I.selectedIndices.length,{minSelections:O,maxSelections:N}=I,j=R===0&&O!==0?ie("select.multiselect_empty"):O!==void 0&&R<O?ie("select.multiselect_min",{min:String(O)}):N!==void 0&&R>N?ie("select.multiselect_max",{max:String(N)}):void 0;if(j!==void 0)return Nn(J=>J&&J.kind==="select"?{...J,error:j}:J),!0;let Z=I.selectedIndices.slice().sort((J,$e)=>J-$e).map(J=>I.options[J]?.value).filter(J=>typeof J=="string"&&J.length>0);yf(Z)}else yf(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<x)return S.multiSelect?Nn(R=>{if(!R||R.kind!=="select")return R;let O=R.selectedIndices.includes(I)?R.selectedIndices.filter(N=>N!==I):[...R.selectedIndices,I];return{...R,focusedIndex:I,selectedIndices:O,error:void 0}}):Nn(R=>R&&R.kind==="select"?{...R,focusedIndex:I,error:void 0}:R),!0}return!1}if(d.name==="return"){let x=zd.current;if(!x||x.kind!=="input")return!1;let I=x.buffer.trim();return yf(I===""?x.defaultValue??void 0:I),!0}return d.name==="backspace"||d.name==="delete"?(Nn(x=>x&&x.kind==="input"?{...x,buffer:x.buffer.slice(0,-1),error:void 0}:x),!0):(d.insertable||d.isPasted===!0)&&!d.ctrl&&!d.meta?(Nn(x=>x&&x.kind==="input"?{...x,buffer:x.buffer+d.sequence,error:void 0}:x),!0):!1},{isActive:!!je,priority:Sn.Critical}),He(()=>{if(E.length===0){if(n.uiHistory?.length){let d=Zr(n.uiHistory);d.length!==n.uiHistory.length&&(n.uiHistory=d),G(Vu({messages:n.messages,uiHistory:d}));return}n.messages.length>0&&G(Vu({messages:n.messages}))}},[n.messages,n.uiHistory,E.length,G]),He(()=>{Mf(n.gitRoot)},[n.gitRoot]),He(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&hI({executionCwd:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:F.repoIntelligenceMode})},[n.gitRoot,n.runtimeInfo?.executionCwd,F.repoIntelligenceMode]);let $l=q(()=>({onOutputSegmentStart:o((d,S)=>{lt.current||Bu(S)||kT(d)},"onOutputSegmentStart"),onMemoryOutcomeDigest:o((d,S)=>{if(d.sessionId!==n.sessionId){e.events?.onMemoryOutcomeDigest?.(d,S);return}n.lineage=Pf(n.lineage??qe(n.messages),d,S?.jobId)},"onMemoryOutcomeDigest"),onMemoryReviewReceipt:o(d=>{if(d.sessionId!==void 0&&d.sessionId!==n.sessionId){e.events?.onMemoryReviewReceipt?.(d);return}n.lineage=Of(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 S=n.lineage??qe(n.messages),x=$f(S,{...d,createdAt:new Date().toISOString()});n.lineage=x,x!==S&&$({type:"info",text:`[memory] ${d.summaries.slice(0,3).join("; ")}`}),e.events?.onMemoryNotice?.(d)},"onMemoryNotice"),onThinkingDelta:o((d,S)=>{if(lt.current||Qn(S,"thinking",d,{append:!0}))return;if(S?.providerRequestId!==void 0){let R=xf(No.current,{type:"thinking.delta",providerRequestId:S.providerRequestId,text:d});if(No.current=R.state,!R.accepted)return}W.currentTool&&(Ie(void 0),Ke());let{header:x}=T_(We()+d),I=x?`[Thinking: ${x}]`:"[Thinking]";kt(Rh(gt.current?.activeWorkerTitle?`[${gt.current.activeWorkerTitle}] ${I}`:I,gt.current?.activeWorkerTitle)),Te(d.length),Pe(d),st.current.workerId&&(Sg("thinking",d),Do.current={...Do.current,thinkingItemId:ut.current.activeThinkingItemId})},"onThinkingDelta"),onThinkingEnd:o((d,S)=>{if(lt.current||Qn(S,"thinking",d))return;let x=We(),I=y_(x,d);I&&I!==x&&(oe(),fe(),Te(I.length),Pe(I)),st.current.workerId&&ET(I),te()},"onThinkingEnd"),onTextDelta:o((d,S)=>{if(!lt.current&&!Qn(S,"assistant",d,{append:!0})){if(S?.providerRequestId!==void 0){let x=xf(No.current,{type:"assistant.delta",providerRequestId:S.providerRequestId,text:d});if(No.current=x.state,!x.accepted)return}W.currentTool&&(Ie(void 0),Ke()),te(),kt(void 0),me(d),st.current.workerId&&(Sg("assistant",d),Do.current={...Do.current,assistantItemId:ut.current.activeAssistantItemId})}},"onTextDelta"),onToolUseStart:o((d,S)=>{if(lt.current||Qn(S,"tool",$k(d.name,d.input)))return;Or.current.includes(d.name)||(Or.current=[...Or.current,d.name]);let x=gt.current?.activeWorkerTitle?`[${gt.current.activeWorkerTitle}] `:"",I={id:d.id,name:`${x}${d.name}`,status:z.Executing,startTime:Date.now(),input:d.input};MT(I),st.current.workerId&&wr(I),kt(Ni(I,gt.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:o((d,S,x)=>{if(lt.current||Qn(x,"tool",d,{skipIfExisting:!0}))return;nt(S.length),vt(S);let I=_T(x?.toolId,d,R=>{let O=R.preview??"",N=m_(`${O}${S}`);return{...R,preview:N||void 0,input:R.input?N?{...R.input,preview:N}:{...R.input}:N?{preview:N}:void 0}});I&&(st.current.workerId&&wr(I),kt(Ni(I,gt.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:o((d,S)=>{if(lt.current||Qn(S,"tool",`${d.name} completed`))return;let x=typeof d.content=="string"?d.content:String(d.content??""),I=h_(x);if(/^\[(?:Tool Error|Error)\]/.test(x)){let O=Gd(d.id,z.Error,I,I,d.name);O&&(st.current.workerId&&wr(O),kt(Ni(O,gt.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(x)){let O=Gd(d.id,z.Cancelled,void 0,I,d.name);O&&(st.current.workerId&&wr(O),kt(Ni(O,gt.current?.activeWorkerTitle)));return}let R=Gd(d.id,z.Success,void 0,I||void 0,d.name);R&&(st.current.workerId&&wr(R),kt(Ni(R,gt.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:o((d,S)=>{if(lt.current||Qn(S,"progress",d.message))return;let x=d.message.length>100?d.message.slice(0,97)+"...":d.message,I=qs(d.id,R=>({...R,preview:x,progressLines:[...(R.progressLines??[]).slice(-4),x]}));I&&st.current.workerId&&wr(I),kt(x)},"onToolProgress"),onStreamEnd:o(d=>{if(lt.current||Bu(d))return;let S=gl(z.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),x=S[S.length-1];st.current.workerId&&S.forEach(I=>wr(I)),x&&kt(Ni(x,gt.current?.activeWorkerTitle)),te(),Ke(),Ie(void 0)},"onStreamEnd"),onChildActivityEnd:o(d=>{CT(d)},"onChildActivityEnd"),hasPendingInputs:o(()=>FC.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:o(d=>{if(!lt.current)for(let S of d){let x=S.trim();x&&(st.current.workerId?Zt({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:x,timestamp:Date.now()}):$({type:"user",text:x}))}},"onMidTurnUserMessages"),onSidecarMessage:o(d=>{if(lt.current)return;let S=d.suggestedFix?`${d.content}
166
+ Suggested fix: ${d.suggestedFix}`:d.content;if(d.delivery==="budget-exhausted")bT({type:"sidecar",text:S,delivery:"budget-exhausted"},"sidecar-message");else{let x=d.verdict==="blocked"?"blocked":"revise";bT({type:"sidecar",text:S,verdict:x},"sidecar-message")}Bd.current=!0},"onSidecarMessage"),onError:o(d=>{let S=ji();S?.name&&kt(Ni(S,gt.current?.activeWorkerTitle));let x=gl(z.Error,()=>({error:d.message,output:void 0})),I=x[x.length-1];st.current.workerId&&x.forEach($e=>wr($e)),I&&kt(Ni(I,gt.current?.activeWorkerTitle));let R=pI(d),O=["Transient","Permanent","Tool Call ID","User Abort"];if(R.category===Bl.USER_ABORT)return;let j=[`\u274C API Error (${O[R.category]||"Unknown"}): ${d.message}`];R.shouldCleanup&&j.push(" \u{1F9F9} Cleaned incomplete tool calls"),R.category===Bl.PERMANENT?(j.push(" \u{1F4A1} This error requires manual intervention. Please check:"),d.message.includes("auth")||d.message.includes("401")?(j.push(" - Your API key is valid"),j.push(" - Run /config to check provider settings")):d.message.includes("400")?(j.push(" - The request parameters are correct"),j.push(" - Try restarting the conversation")):j.push(" - The error details above")):R.category===Bl.TRANSIENT?j.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):R.category===Bl.TOOL_CALL_ID&&j.push(" \u2705 Session cleaned, ready to continue");let Z=j.join(`
167
+ `);!!st.current.workerId?Zt({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:Z,timestamp:Date.now()}):$({type:"error",text:Z})},"onError"),onRetry:o((d,S,x,I)=>{if(lt.current)return;let R=Gu(d,S,x);if(cl(I,R.text)||Qn(I,"progress",R.text))return;!!st.current.workerId?Zt({...R,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):$(R)},"onRetry"),onProviderRecovery:o((d,S)=>{if(lt.current)return;let x=Ku(d);if(cl(S,x.text)||Qn(S,"progress",x.text))return;let I=!!st.current.workerId;QV({clearResponse:Ve,clearThinkingContent:oe,stopThinking:te,clearToolInputContent:Ke,clearCurrentTool:o(()=>Ie(void 0),"clearCurrentTool"),resetLiveToolCalls:Ui,clearLiveActivityLabel:o(()=>kt(void 0),"clearLiveActivityLabel")}),I?Zt({...x,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):$(x)},"onProviderRecovery"),onManagedTaskStatus:o(d=>{if(lt.current)return;let S=st.current;if(KL(d)){if(S.workerId&&S.workerId!==d.activeWorkerId)bO({workerId:d.activeWorkerId,workerTitle:d.activeWorkerTitle});else if(S.workerId!==d.activeWorkerId){let N=ut.current,j=N.activeToolGroupTools.some(Z=>Z.status===z.Executing);ut.current={workerId:d.activeWorkerId,workerTitle:d.activeWorkerTitle,...j?{activeToolGroupItemId:N.activeToolGroupItemId,activeToolGroupTools:N.activeToolGroupTools}:{activeToolGroupTools:[]}},st.current={workerId:d.activeWorkerId,workerTitle:d.activeWorkerTitle}}}gt.current=d,Od(d);let x=w_(d);RO(x);let I=Nc(d),O=Nc(d,{expanded:!0})??I;O&&(Dd.current=O)},"onManagedTaskStatus"),onProviderRateLimit:o((d,S,x,I)=>{if(lt.current)return;let R=Wg.current;if(Wg.current=null,c_(R,{attempt:d,maxAttempts:S,delayMs:x}))return;let O=`[Rate Limit] Retrying in ${x/1e3}s (${d}/${S})...`;cl(I,O)||Qn(I,"progress",O)||On({type:"info",icon:"\u23F3",text:O},"ratelimit")},"onProviderRateLimit"),onRetryAfter:o((d,S)=>{if(lt.current)return;Wg.current={attempt:d.attempt,maxAttempts:d.maxAttempts,waitMs:d.waitMs};let x=Math.round(d.waitMs/1e3),I=d.source==="exponential-backoff"?"no-header \u2192 backoff":d.source,O=`[${d.reason==="overloaded"?"Overloaded":"Rate limited"}] (${d.provider}) \u2014 retrying in ${x}s [${I}] (${d.attempt}/${d.maxAttempts})`;cl(S,O)||Qn(S,"progress",O)||On({type:"info",icon:"\u23F3",text:O},"ratelimit")},"onRetryAfter"),onReasoningEffortRejected:o(d=>{eI(d.provider,d.model,d.effort,"observed",new Date().toISOString());let x=Qo({provider:d.provider,model:d.model,effort:bt.current.effort,effortOverride:bt.current.effortOverride,permissionMode:bt.current.permissionMode,planModeEffort:bt.current.planModeEffort,thinking:bt.current.thinking,reasoningMode:bt.current.reasoningMode}).runtimeEffort;Ae(I=>({...I,effort:x,effortOverride:x!==void 0})),Zo({effort:x}),Ne.current.effort=x,On({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${x?`,\u5DF2\u5207\u5230 ${x}`:""}]`},"ratelimit")},"onReasoningEffortRejected"),onRepoIntelligenceTrace:o(d=>{lt.current||On(O_(d),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:o(d=>{lt.current||ci(d)},"onTodoUpdate"),onScoutSuspiciousCompletion:o(d=>{lt.current||zL&&On({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,S)=>{if(lt.current)return;if(S&&Qt(S),gt.current?.globalWorkBudget){let J={...gt.current,budgetUsage:Math.min(gt.current.globalWorkBudget,(gt.current.budgetUsage??0)+1)};gt.current=J,Od(J)}let x=d>1?We().trim():"",I=d>1?Ex(K()):"",R=d>1?[...Or.current]:[],O=d>1?[...ln.current]:[],N=!!st.current.workerId;St(d),N&&Wd({clearOwner:!1});let j=li.current.filter(J=>J.status===z.Executing),Z=new Set(j.map(J=>J.id));if(Or.current=[],ln.current=ln.current.filter(J=>Z.has(J.id)),Jn(j),Ke(),Ie(void 0),kt(Rh(gt.current?.activeWorkerTitle?`[Thinking] [${gt.current.activeWorkerTitle}]`:void 0,gt.current?.activeWorkerTitle)),fe(),d>1&&!N){let J=Mx({thinking:x,response:I,toolCalls:O,toolNames:R});Fs.current?Fs.current(J):G([...J])}},"onIterationStart"),beforeToolExecute:o(async(d,S)=>{let x=Fn.current,I=Ra(x),R=DC.current,O=n.gitRoot;if(Vf(x,kg))return!0;if(PI(B.current,d,S))return`[Skipped] Previously denied operation. ${OI(B.current)}`;if(x==="plan"&&(wi.has(d)||d==="undo"))return`[Blocked] Tool '${d}' is not allowed in plan mode (read-only). ${UL}`;if(x==="plan"&&d==="bash"){let N=S.command??"";if(xi(N))return`[Blocked] Bash write operation not allowed in plan mode: ${N.slice(0,50)}... ${UL}`}if(d==="bash"){let N=S.command??"";if(ba(N,O??process.cwd(),n.runtimeInfo?.executionCwd??O??process.cwd()))return!0}if(d==="bash"){let N=S.command??"",j=MI(N);if(j.level==="dangerous"){let Z=await hi(d,{...S,_dangerousCommand:!0});return Z.confirmed?Z.confirmed:(B.current=iy(B.current,d,S,j.reason),`[Blocked] Dangerous command requires confirmation: ${j.reason}`)}}if(O){let N=!1;if(wi.has(d)){let j=S.path;j&&va(j,O)&&(N=!0)}if(d==="bash"){let j=S.command;j&&Ff(j,O)&&(N=!0)}if(N){let j=await hi(d,{...S,_alwaysConfirm:!0});if(Fn.current==="plan"&&(wi.has(d)||d==="undo"))return!1;if(Fn.current==="plan"&&d==="bash"){let Z=S.command??"";if(xi(Z))return!1}return j.confirmed}}if(I.has(d)){if(x==="accept-edits"&&d==="bash"&&await Ia(d,S,R,Fg.current??void 0))return!0;let N=await hi(d,S);if(Fn.current==="plan"&&(wi.has(d)||d==="undo"))return!1;if(Fn.current==="plan"&&d==="bash"){let j=S.command??"";if(xi(j))return!1}if(!N.confirmed)return $({type:"info",text:ie("cancelled")}),B.current=iy(B.current,d,S),!1;N.always&&x==="accept-edits"&&(Jf(d,S,!1),DC.current=$a())}return!0},"beforeToolExecute"),askUser:o(async(d,S,x)=>{let I=Sx(d.options?Uh(d.options):[],d),R=await mi(wx(d),I,d.multiSelect,{minSelections:d.minSelections,maxSelections:d.maxSelections,defaultValue:d.default},x?.signal);if(R===void 0)return Ca;if(R===Hr){let O=await la(d.customInputPrompt??d.question,d.customInputDefault,x?.signal);return O===void 0?Ca:{kind:"customInput",value:O}}if(Array.isArray(R)&&R.includes(Hr)){let O=await la(d.customInputPrompt??d.question,d.customInputDefault,x?.signal);return O===void 0?Ca:R.map(N=>N===Hr?{kind:"customInput",value:O}:N)}return R},"askUser"),exitPlanMode:o(async d=>Fn.current!=="plan"?"not-in-plan-mode":(await hi("exit_plan_mode",{plan:d})).confirmed?(Hg("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:o(async(d,S,x)=>{let I=d.questions,R={},O=0;for(;O<I.length;){let N=I[O],j=Sx(Uh(N.options),N);O>0&&j.push({label:ie("select.back_prev"),value:qg});let Z=`[${O+1}/${I.length}] ${N.question}`,J=await mi(Z,j,N.multiSelect,{minSelections:N.minSelections,maxSelections:N.maxSelections,defaultValue:N.default},x?.signal);if(J===void 0)return;if(!Array.isArray(J)&&J===qg){O--;continue}if(!Array.isArray(J)&&J===Hr){let $e=await la(N.customInputPrompt??N.question,N.customInputDefault,x?.signal);if($e===void 0)return;R[N.question]={kind:"customInput",value:$e},O++;continue}if(Array.isArray(J)&&J.includes(Hr)){let $e=await la(N.customInputPrompt??N.question,N.customInputDefault,x?.signal);if($e===void 0)return;R[N.question]=J.map(Fe=>Fe===Hr?{kind:"customInput",value:$e}:Fe),O++;continue}R[N.question]=J,O++}return R},"askUserMulti"),askUserInput:o(async(d,S,x)=>la(d.question,d.default,x?.signal),"askUserInput"),onCompactStart:o(()=>{Xe()},"onCompactStart"),onCompactStats:o(d=>{el.current=d.tokensBefore,hr(d.tokensAfter)},"onCompactStats"),onCompactedMessages:o(async(d,S,x)=>{let I=Ih(n.lineage,d,S,x);if(!I)return;n.messages=d,S?.artifactLedger&&S.artifactLedger.length>0&&(n.artifactLedger=Yo(n.artifactLedger??[],S.artifactLedger),n.sessionSnapshotDirty=!0),n.lineage=I;let R=zo(d);if(n.contextTokenSnapshot={currentTokens:R,baselineEstimatedTokens:R,source:"estimate"},Er(n),hr(R),e.runtimeRunner){n.lineage===I&&(n.lineage=Sa(I));return}let O=vd.current;if(!O)throw new Error("Ink REPL compaction persistence is not initialized.");try{await O(),n.lineage===I&&(n.lineage=Sa(I))}catch(N){throw ft({source:"repl:compaction",level:"error",message:"Failed to durably persist compacted session history.",detail:N}),N}},"onCompactedMessages"),onCompact:o(d=>{_t();let S=el.current??d;el.current=null;let x=Math.round(S/1e3);On({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${x}k tokens)`},"compact")},"onCompact"),onCompactEnd:o(()=>{el.current=null,_t()},"onCompactEnd"),onIterationEnd:o(d=>{d.scope!=="worker"&&(n.contextTokenSnapshot=d.contextTokenSnapshot),hr(d.tokenCount)},"onIterationEnd")}),[Te,Pe,te,me,Ie,nt,vt,Ke,St,fe,F,n,Xe,_t,$,oe,We,K,Wd,kt,Sg,ET,wr,kT,MT,_T,Gd,gl,ji,Ui,Jn,CT,cl,Qn,On,W.currentTool]),hi=o((d,S,x,I)=>{let R=p_(d,S),O=x?.map(Z=>Z.label)??[],N=x===void 0?[]:[Sc,...O.map(Z=>`Runtime scope: ${Z}`)],j=N.length>0?`${R}
168
+ ${N.join(`
169
+ `)}`:R;return MO.current(()=>I?.aborted?Promise.resolve({confirmed:!1}):($n(),new Promise(Z=>{let J=o(Fe=>{I?.removeEventListener("abort",$e),Zn.current===J&&(Zn.current=null),Z(Fe)},"settle"),$e=o(()=>{Zn.current===J&&(Js(null),J({confirmed:!1}))},"onAbort");Zn.current=J,I?.addEventListener("abort",$e,{once:!0}),Js({tool:d,input:S,prompt:j,...x!==void 0?{runtimeGrantSuggestions:x}:{}})})))},"showConfirmDialog"),GO=o(async(d,S)=>{let x=await hi(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??[],S.signal);return jm(d,x)},"requestRuntimePermission");He(()=>(p(async(d,S,x)=>(await hi(d.name,{...d.input,_reason:`[auto-mode] ${S}`,...x&&x.length>0?{_classifierSignals:x}:{}})).confirmed?"allow":"block"),h(d=>{tr(d)}),()=>{p(null),h(null)}),[]),He(()=>{m(F)},[F,m]),He(()=>{let d=o(()=>$l(),"resolve");return Jg({askUser:o((S,x)=>{let I=d().askUser;if(!I)throw new Error("askUser surface unavailable");return I(S,void 0,x)},"askUser"),askUserMulti:o(async(S,x)=>{let I=d().askUserMulti;return I?I(S,void 0,x):void 0},"askUserMulti"),askUserInput:o(async(S,x)=>{let I=d().askUserInput;return I?I(S,void 0,x):void 0},"askUserInput")}),()=>Jg(void 0)},[$l]);let ua=o(async(d,S,x=n.lineage?Lt(n.lineage,n.lineage.activeEntryId):n.messages,I)=>{No.current=Xg(),Do.current={};let R={...$l(),getCostReport:P,onWorkflowProcessEvent:SO,onWorkflowAgentDigest:o(({runId:J,event:$e})=>{let Fe=$e.data??{},rn=typeof Fe.summary=="string"?Fe.summary:void 0,Xi=typeof Fe.name=="string"?Fe.name:void 0,Vo=ol.current,Go=rn!==void 0||Xi!==void 0?Gl(rn,Xi):Vo?.runId===J?Vo.locale??"en":"en",yi=op($e,Go,J);yi&&(st.current.workerId?Zt({id:`wf-digest-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"assistant",text:yi,timestamp:Date.now()}):nr([{type:"assistant",text:yi}]))},"onWorkflowAgentDigest")},N=Ef(n.gitRoot).getSystemPromptSnippet(),j=$_(d.context,n.gitRoot,n.contextTokenSnapshot,N,n.runtimeInfo?.executionCwd);I&&I.length>0&&(j.inputArtifacts=[...I]),j.planModeBlockCheck=(J,$e)=>Fn.current!=="plan"?null:Qi(J,$e,n.gitRoot??n.runtimeInfo?.executionCwd??process.cwd());let Z={...d,session:{...d.session,initialMessages:x,initialExtensionState:n.extensionState??{},initialExtensionRecords:n.extensionRecords??[]},context:j,events:R,abortSignal:Re()};try{return e.runtimeRunner?await e.runtimeRunner({options:Z,prompt:S,sessionId:n.sessionId,permissionMode:Fn.current,autoModeSettings:s,requestPermission:GO,legacyPermissionHook:!0}):await Wl(Z,S)}finally{gI()}},"runAgentRound"),Hn=q(d=>{let S=qe([...d],n.lineage);return n.lineage=S,S},[n]),Nl=q(async d=>{if(n.messages.length===0)return;let S=to(n.messages),x=Zr(d??_.current);_.current=x,n.title=S,n.uiHistory=x;let I=n.lineage??Hn(n.messages);n.lineage=I;let R={...n.extensionStateDirty?{extensionState:n.extensionState??{}}:{},...n.extensionRecordsDirty?{extensionRecords:n.extensionRecords??[]}:{}},O=Vc({messages:n.messages,title:S,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Ne.current.session?.tag,uiHistory:x,lineage:I,artifactLedger:n.artifactLedger,...R});await UV(i,n.sessionId,O,n.sessionSnapshotDirty===!0),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,_h()&&Ah("persist",Lh(n.messages,I,{historyItems:y.current,foregroundItems:hn.current,streamingResponse:le.current.currentResponse,streamingThinking:le.current.thinkingContent,persistedUiHistory:_.current}))},[n,Hn,i]),jg=q(()=>{if(bd.current)return bd.current;let d=(async()=>{try{for(;Po.current.requested;){Po.current.requested=!1;let S=Po.current.uiHistoryOverride;Po.current.uiHistoryOverride=void 0,await Nl(S)}}finally{bd.current=null,Po.current.requested&&jg().catch(Os)}})();return bd.current=d,ig.current=d,d},[Nl]),gi=q(d=>{if(d!==void 0){let S=Zr(d);_.current=S,Po.current.uiHistoryOverride=S}return Po.current.requested=!0,jg()},[jg]),KO=q(async()=>{if(nl.current)return nl.current;let d=(async()=>{lt.current=!0,_e(),he(),te(),oe(),Ke(),Ve(),Ie(void 0),ne(!1),await ig.current.catch(Os),await vd.current?.().catch(Os),Dt(!1),D&&v?.isRaw&&A(!1),v?.pause?.(),v?.unref?.(),C(),l()})();return nl.current=d.finally(()=>{nl.current=null}),nl.current},[_e,Ve,oe,Ke,C,D,l,Ie,ne,A,v,he,te]);He(()=>(vd.current=gi,()=>{vd.current=null}),[gi]);let Sf=q(d=>{if(d.length===0)return;let S=Gh(_.current,d);_.current=S,gi(S).catch(Os)},[gi]),nr=q(d=>{d.length!==0&&(G([...d]),Sf(d))},[G,Sf]),da=q(d=>{d.length!==0&&(G([...d]),_.current=Gh(_.current,d))},[G]);He(()=>(Fs.current=nr,()=>{Fs.current=null}),[nr]);let UC=q(async d=>{$n();let S=Bd.current;Bd.current=!1,n.messages=d.messages,n.contextTokenSnapshot=d.contextTokenSnapshot,WL(n,d),Hn(d.messages);let x=d.success===!1&&!d.interrupted,I=We().trim(),R=kv(d.messages,K(),d.managedTask?.verdict.summary,d.lastText),O=ut.current.workerTitle,N=[...hn.current],j=N.length>0;jd(N);let Z=j&&N.some(ge=>ge.type==="assistant"&&"text"in ge&&GL(String(ge.text??""),O)),J=N.filter(ge=>ge.type!=="assistant"||!("text"in ge)||GL(String(ge.text??""),O)),$e=!x&&R&&!Z,Fe=[...Vs.current],rn=x_(d,{sidecarMessageDelivered:S}),Xi=x?[]:Fe.length===0?zL?rn:rn.filter(ge=>!Bw(ge)):[],Vo=j?[]:Mx({thinking:I,response:void 0,toolCalls:ln.current,toolNames:Or.current}),Go=[...J.map(ge=>Ao(ge)),...Vo,...x?[]:Fe.map(ge=>Ao(ge)),...Xi.map(ge=>VL(ge)),...$e?[{type:"assistant",text:d.interrupted?`${R}
170
170
 
171
- [Interrupted]`:R}]:!R&&!Z&&!f.interrupted&&!x?[{type:"info",text:"[No response text was produced for this round]"}]:[]],yi=Gh(A.current,Go);oe(),Ve();let be=[...J.map(ge=>Ao(ge)),...Vo,...x?[]:[...Xi.map(ge=>FL(ge)),...Fe.map(ge=>Ao(ge))],...Ne?[{type:"assistant",text:f.interrupted?`${R}
171
+ [Interrupted]`:R}]:!R&&!Z&&!d.interrupted&&!x?[{type:"info",text:"[No response text was produced for this round]"}]:[]],yi=Gh(_.current,Go);oe(),Ve();let be=[...J.map(ge=>Ao(ge)),...Vo,...x?[]:[...Xi.map(ge=>VL(ge)),...Fe.map(ge=>Ao(ge))],...$e?[{type:"assistant",text:d.interrupted?`${R}
172
172
 
173
- [Interrupted]`:R}]:!R&&!Z&&!f.interrupted&&!x?[{type:"info",text:"[No response text was produced for this round]"}]:[]];G(be),$r.current=[],ln.current=[],Ui(),Ke(),Ie(void 0),kt(void 0),ml(),No.current=[],Vs.current=[],ll([]),Vt(),gi(yi).catch($s)},[G,Vt,Ke,Ve,oe,n,Nn,K,We,gi,Hn,Ui,ml,Ie,kt,W.currentIteration]),fa=q(async f=>{let S=f.trim();S&&(O({type:"user",text:S}),Td(x=>x+1),Er(n))},[O,n]),pa=q(async(f,S)=>{let x=Pl.current;lt.current=!1,tl.current=!1,Dd.current=!1,Qc(!0);try{return await J_({initialPrompt:f,runRound:S,shiftPendingPrompt:L,onRoundComplete:o(async I=>{Pl.current===x&&await jC(I)},"onRoundComplete"),onBeforeQueuedRound:o(async I=>{lt.current=!1,tl.current=!1,await fa(I)},"onBeforeQueuedRound"),shouldContinue:o(I=>!lt.current&&I.success!==!1,"shouldContinue"),shouldDrainQueuedPrompts:o(()=>Zc.current?le.current.pendingInputs.length===0?(Zc.current=!1,!0):!1:!0,"shouldDrainQueuedPrompts")})}finally{Qc(!1)}},[jC,L,fa]),UC=q(async f=>{if(n.messages.length===0)return"empty";if(!ko(F,"Recovering into a new session",ld))return"blocked";let x=n.sessionId,I=n.lineage??Hn(n.messages);n.lineage=I;let R=n.artifactLedger?structuredClone(n.artifactLedger):void 0,N=Df({sourceSessionId:x,messages:n.messages,lineage:I,artifactLedger:R,reason:"provider session recovery"}),D=n.title||to(n.messages);await i.save(n.sessionId,Vc({messages:n.messages,title:D,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Oe.current.session?.tag,uiHistory:A.current,lineage:I,artifactLedger:R,extensionState:n.extensionState,extensionRecords:n.extensionRecords}));let j=Cs(),Z=qe(N.messages);await i.save(j,Vc({messages:N.messages,title:N.title,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Oe.current.session?.tag,uiHistory:[],lineage:Z,artifactLedger:R}));let J=new Date().toISOString();n.sessionId=j,n.messages=N.messages,n.uiHistory=[],n.title=N.title,n.contextTokenSnapshot=void 0,n.lineage=Z,n.artifactLedger=R,n.extensionState=void 0,n.extensionRecords=void 0,n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,n.createdAt=J,n.lastAccessed=J,A.current=[],Oe.current.session={...Oe.current.session,id:j},hr(null),re(),ci([]),ly()?.reset(),X(j),g?.writer.update({sessionId:j}),da([{type:"info",text:`Recovered into new session ${j}
173
+ [Interrupted]`:R}]:!R&&!Z&&!d.interrupted&&!x?[{type:"info",text:"[No response text was produced for this round]"}]:[]];G(be),Or.current=[],ln.current=[],Ui(),Ke(),Ie(void 0),kt(void 0),hl(),$o.current=[],Vs.current=[],ll([]),Vt(),gi(yi).catch(Os)},[G,Vt,Ke,Ve,oe,n,$n,K,We,gi,Hn,Ui,hl,Ie,kt,W.currentIteration]),fa=q(async d=>{let S=d.trim();S&&($({type:"user",text:S}),Cd(x=>x+1),Er(n))},[$,n]),pa=q(async(d,S)=>{let x=Ol.current;lt.current=!1,tl.current=!1,Bd.current=!1,Qc(!0);try{return await nA({initialPrompt:d,runRound:S,shiftPendingPrompt:L,onRoundComplete:o(async I=>{Ol.current===x&&await UC(I)},"onRoundComplete"),onBeforeQueuedRound:o(async I=>{lt.current=!1,tl.current=!1,await fa(I)},"onBeforeQueuedRound"),shouldContinue:o(I=>!lt.current&&I.success!==!1,"shouldContinue"),shouldDrainQueuedPrompts:o(()=>Zc.current?le.current.pendingInputs.length===0?(Zc.current=!1,!0):!1:!0,"shouldDrainQueuedPrompts")})}finally{Qc(!1)}},[UC,L,fa]),VC=q(async d=>{if(n.messages.length===0)return"empty";if(!ko(F,"Recovering into a new session",ud))return"blocked";let x=n.sessionId,I=n.lineage??Hn(n.messages);n.lineage=I;let R=n.artifactLedger?structuredClone(n.artifactLedger):void 0,O=Df({sourceSessionId:x,messages:n.messages,lineage:I,artifactLedger:R,reason:"provider session recovery"}),N=n.title||to(n.messages);await i.save(n.sessionId,Vc({messages:n.messages,title:N,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Ne.current.session?.tag,uiHistory:_.current,lineage:I,artifactLedger:R,extensionState:n.extensionState,extensionRecords:n.extensionRecords}));let j=Cs(),Z=qe(O.messages);await i.save(j,Vc({messages:O.messages,title:O.title,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Ne.current.session?.tag,uiHistory:[],lineage:Z,artifactLedger:R}));let J=new Date().toISOString();n.sessionId=j,n.messages=O.messages,n.uiHistory=[],n.title=O.title,n.contextTokenSnapshot=void 0,n.lineage=Z,n.artifactLedger=R,n.extensionState=void 0,n.extensionRecords=void 0,n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,n.createdAt=J,n.lastAccessed=J,_.current=[],Ne.current.session={...Ne.current.session,id:j},hr(null),re(),ci([]),ly()?.reset(),X(j),g?.writer.update({sessionId:j}),da([{type:"info",text:`Recovered into new session ${j}
174
174
  Source session saved: ${x}
175
- Raw provider history was not replayed.`}]),await i.save(j,Vc({messages:n.messages,title:n.title,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Oe.current.session?.tag,uiHistory:A.current,lineage:n.lineage,artifactLedger:n.artifactLedger}));let Ne=Of(f);try{await fa(Ne),await pa(Ne,async Fe=>{let rn=Bc(Fe,Oe.current.context?.executionCwd??process.cwd());for(let Xi of rn.warnings)O({type:"info",text:Xi});return ua(Oe.current,rn.promptText,n.messages,rn.inputArtifacts)})}catch(Fe){let rn=Fe instanceof Error?Fe.message:String(Fe);return nr([{type:"error",text:`[Recover failed] ${rn}`}]),"failed"}return"recovered"},[O,nr,da,re,n,F,Hn,pa,fa,i,g]),Ug=q(async()=>{let f=L();if(!f||!f.trim())return;let S=f.trim();await fa(S),await pa(S,async x=>ua(Oe.current,x))},[ua,pa,L,fa]),Vg=q(f=>{let S=f[f.length-1];if(S?.role!=="assistant")return;let x=Oa(S);G(x.map(eo))},[G]),VC=q(async(f,S)=>{let x=await Mh({...Oe.current,provider:F.provider,thinking:F.thinking,reasoningMode:F.reasoningMode},f,S,I=>O({type:"info",text:I}));if(x.mode==="manual"){x.manualOutput&&O({type:"info",text:x.manualOutput}),await x.finalize();return}if(!x.prompt||!x.options){await x.finalize();return}Qc(!0);try{let I=x.mode==="fork"?[]:n.lineage?Lt(n.lineage,n.lineage.activeEntryId):n.messages,R=Pl.current,N=await ua(x.options,x.prompt,I);if(Pl.current!==R)await x.finalize();else{let D=A.current,j=[];if(x.mode==="fork"){let Z=N.messages.find(Ne=>Ne.role==="user");Z&&n.messages.push(Z);let J=N.messages.slice().reverse().find(Ne=>Ne.role==="assistant");if(J){n.messages.push({role:"assistant",content:J.content}),Hn(n.messages);for(let Ne of Oa(J)){let Fe=eo(Ne);O(Fe),j.push(Fe)}}}else{n.messages=N.messages,n.contextTokenSnapshot=N.contextTokenSnapshot,Hn(N.messages),Vg(N.messages);let Z=N.messages[N.messages.length-1];if(Z?.role==="assistant")for(let J of Oa(Z))j.push(eo(J))}OL(n,N),await Nl(Gh(D,j)),_h()&&Ah("round-end",Lh(n.messages,n.lineage,{historyItems:y.current,foregroundItems:hn.current,streamingResponse:le.current.currentResponse,streamingThinking:le.current.thinkingContent,persistedUiHistory:A.current})),await x.finalize()}}catch(I){let R=I instanceof Error?I:new Error(String(I));throw await x.finalize(R),Qc(!1),R}Qc(!1),await Ug()},[O,Vg,n,F.provider,F.thinking,Ug,Nl,Hn,ua]),j$=q(async f=>{for(let S of f.pastedContents)if(S.type==="text"&&!S.content&&S.contentHash)try{let x=await Wv(S.contentHash);x&&(S.content=x)}catch{}},[]),U$=q(async f=>{let{displayText:S,fullText:x,pastedContents:I}=f;if(!x.trim()||!si||Ye||je)return;for(let be of I){if(be.type!=="text"||be.content.length<1024)continue;let ge=Fv(be.content);Hv(ge,be.content)}if(AT(!1),H){if(!ng)return;if(W.pendingInputs.length>=5){$n({type:"info",icon:"\u23F3",text:`Queued follow-up limit reached (${5}). Wait for the next round or press Esc to remove the latest item.`},"queue-limit");return}if(q_(x)){$n({type:"info",icon:"\u26A0",text:X_},Y_);return}rg();let be=W.currentTool;if(be&&Bl(be)?.interruptBehavior==="cancel"){qn(x),_e({preservePendingInputs:!0}),Rd(""),bd(!0),Td(Wn=>Wn+1),Er(n);return}qn(x),Rd(""),bd(!0),Td(ge=>ge+1),Er(n);return}rg();let R=kx(K()),N=hn.current.map(be=>Ao(be)),D=N.length>0;N.length>0&&(jd(hn.current),da(N)),!D&&R&&da([{type:"assistant",text:R+`
175
+ Raw provider history was not replayed.`}]),await i.save(j,Vc({messages:n.messages,title:n.title,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Ne.current.session?.tag,uiHistory:_.current,lineage:n.lineage,artifactLedger:n.artifactLedger}));let $e=Nf(d);try{await fa($e),await pa($e,async Fe=>{let rn=Bc(Fe,Ne.current.context?.executionCwd??process.cwd());for(let Xi of rn.warnings)$({type:"info",text:Xi});return ua(Ne.current,rn.promptText,n.messages,rn.inputArtifacts)})}catch(Fe){let rn=Fe instanceof Error?Fe.message:String(Fe);return nr([{type:"error",text:`[Recover failed] ${rn}`}]),"failed"}return"recovered"},[$,nr,da,re,n,F,Hn,pa,fa,i,g]),Ug=q(async()=>{let d=L();if(!d||!d.trim())return;let S=d.trim();await fa(S),await pa(S,async x=>ua(Ne.current,x))},[ua,pa,L,fa]),Vg=q(d=>{let S=d[d.length-1];if(S?.role!=="assistant")return;let x=Na(S);G(x.map(eo))},[G]),GC=q(async(d,S)=>{let x=await Mh({...Ne.current,provider:F.provider,thinking:F.thinking,reasoningMode:F.reasoningMode},d,S,I=>$({type:"info",text:I}));if(x.mode==="manual"){x.manualOutput&&$({type:"info",text:x.manualOutput}),await x.finalize();return}if(!x.prompt||!x.options){await x.finalize();return}Qc(!0);try{let I=x.mode==="fork"?[]:n.lineage?Lt(n.lineage,n.lineage.activeEntryId):n.messages,R=Ol.current,O=await ua(x.options,x.prompt,I);if(Ol.current!==R)await x.finalize();else{let N=_.current,j=[];if(x.mode==="fork"){let Z=O.messages.find($e=>$e.role==="user");Z&&n.messages.push(Z);let J=O.messages.slice().reverse().find($e=>$e.role==="assistant");if(J){n.messages.push({role:"assistant",content:J.content}),Hn(n.messages);for(let $e of Na(J)){let Fe=eo($e);$(Fe),j.push(Fe)}}}else{n.messages=O.messages,n.contextTokenSnapshot=O.contextTokenSnapshot,Hn(O.messages),Vg(O.messages);let Z=O.messages[O.messages.length-1];if(Z?.role==="assistant")for(let J of Na(Z))j.push(eo(J))}WL(n,O),await Nl(Gh(N,j)),_h()&&Ah("round-end",Lh(n.messages,n.lineage,{historyItems:y.current,foregroundItems:hn.current,streamingResponse:le.current.currentResponse,streamingThinking:le.current.thinkingContent,persistedUiHistory:_.current})),await x.finalize()}}catch(I){let R=I instanceof Error?I:new Error(String(I));throw await x.finalize(R),Qc(!1),R}Qc(!1),await Ug()},[$,Vg,n,F.provider,F.thinking,Ug,Nl,Hn,ua]),zO=q(async d=>{for(let S of d.pastedContents)if(S.type==="text"&&!S.content&&S.contentHash)try{let x=await jv(S.contentHash);x&&(S.content=x)}catch{}},[]),XO=q(async d=>{let{displayText:S,fullText:x,pastedContents:I}=d;if(!x.trim()||!si||Ye||je)return;for(let be of I){if(be.type!=="text"||be.content.length<1024)continue;let ge=Hv(be.content);Wv(ge,be.content)}if(LT(!1),H){if(!ng)return;if(W.pendingInputs.length>=5){On({type:"info",icon:"\u23F3",text:`Queued follow-up limit reached (${5}). Wait for the next round or press Esc to remove the latest item.`},"queue-limit");return}if(tA(x)){On({type:"info",icon:"\u26A0",text:Z_},eA);return}rg();let be=W.currentTool;if(be&&Fl(be)?.interruptBehavior==="cancel"){qn(x),_e({preservePendingInputs:!0}),kd(""),Rd(!0),Cd(Wn=>Wn+1),Er(n);return}qn(x),kd(""),Rd(!0),Cd(ge=>ge+1),Er(n);return}rg();let R=Ex(K()),O=hn.current.map(be=>Ao(be)),N=O.length>0;O.length>0&&(jd(hn.current),da(O)),!N&&R&&da([{type:"assistant",text:R+`
176
176
 
177
- [Interrupted]`}]),da([{type:"user",text:S}]),Rd(""),bd(!0),Td(be=>be+1),_h()&&Ah("turn-start",Lh(n.messages,n.lineage,{historyItems:y.current,foregroundItems:hn.current,streamingResponse:le.current.currentResponse,streamingThinking:le.current.thinkingContent,persistedUiHistory:A.current})),ne(!0),lt.current=!1,tl.current=!1,++Pl.current,Pd(null),js(null),gt.current=null,Od.current=null,kt(void 0),ml(),No.current=[],Vs.current=[],ll([]),Fo(),dl(void 0),$r.current=[],ln.current=[],Ui(),yg(),Ve(),Ke(),Ie(void 0),Vt(),de(),Er(n),await new Promise(be=>setTimeout(be,50));let j=o(be=>{if(be.stage==="started"||be.stage==="generating"||be.stage==="validating"||be.stage==="ready"){js(be.message);return}js(null)},"handleWorkflowBuilderEvent"),Z=pg,J=o(be=>{if(be.type==="event")return;let ge=jt(be.text).trimEnd();if(ge.trim()){if(be.type==="error"){O({type:"error",text:ge});return}if(be.type==="assistant"){nr([{type:"assistant",text:ge}]);return}$n({type:"info",text:ge},"workflow-message")}},"handleWorkflowRunMessage"),Ne=o(async(be,ge,Wn)=>{if(Hf({source:be.source}).action==="none")return!1;let Tr=[],Yi=console.log;console.log=(...se)=>{Tr.push(vx(se))};let Fr=!1,ma=o(()=>{Fr||(Fr=!0,n.messages.push({role:"user",content:ge||be.request}))},"commitWorkflowUserMessage"),Y={...Wn,onWorkflowRunMessage:o(se=>{if(Wn.onWorkflowRunMessage?.(se),se.type!=="assistant"||se.final!==!0)return;let ye=jt(se.text).trimEnd();ye.trim()&&(ma(),n.messages.push({role:"assistant",content:ye}),Hn(n.messages),gi().catch($s),le.current.pendingInputs.length>0&&(Zc.current=!0))},"onWorkflowRunMessage")};try{let se=await sp({request:be.request,callbacks:Y,approval:F.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:be.displayName,processSource:be.processSource??"command",...be.builtin!==void 0?{builtin:be.builtin}:{},onBuilderEvent:Y.onWorkflowBuilderEvent});return se==="started"&&le.current.pendingInputs.length>0&&(Zc.current=!0),Wf({outcome:se})}finally{js(null),console.log=Yi;let se=bx(Tr.filter((ye,Ht,Yt)=>Yt.indexOf(ye)===Ht));se&&O({type:"info",text:se})}},"runWorkflowInvocation"),Fe=ts(x.trim());if(Fe){let be=!1,ge=o(Y=>{Fe.command==="workflow"&&(be||(be=!0,n.messages.push({role:"user",content:x.trim()})),n.messages.push({role:"assistant",content:Y}),Hn(n.messages),gi().catch($s))},"commitSlashWorkflowFinalMessage"),Wn={getRuntimeStatus:e.getRuntimeStatus,validateSetupA2AConfig:e.validateSetupA2AConfig,prepareSetupSandbox:e.prepareSetupSandbox,inspectSandbox:e.inspectSandbox,learning:e.learning,getLearningSummary:e.learning?()=>e.learning.getSnapshot():void 0,openLearningCenter:F$,exit:W$,saveSession:o(async()=>{if(n.messages.length>0){let Y=to(n.messages);n.title=Y;let se=n.lineage??Hn(n.messages);n.lineage=se,await i.save(n.sessionId,Vc({messages:n.messages,title:Y,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Oe.current.session?.tag,uiHistory:A.current,lineage:se,artifactLedger:n.artifactLedger,extensionState:n.extensionState,extensionRecords:n.extensionRecords})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1}},"saveSession"),startNewSession:o(()=>{let Y=Cs(),se=new Date().toISOString();n.sessionId=Y,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,A.current=[],n.createdAt=se,n.lastAccessed=se,Ll(r),Oe.current.session={...Oe.current.session,id:Y},hr(null),re(),ci([]),ly()?.reset(),X(Y),g?.writer.update({sessionId:Y})},"startNewSession"),loadSession:o(async Y=>{let se=await i.load(Y);if(se){if(!ko(F,"Resuming a saved session",ld))return"blocked";let Ht=await Ur({cwd:process.cwd()}),Yt=In(se),ir=Yt??Ht;return Yt?.workspaceRoot&&!rp(Yt)&&(ir=Ht),n.messages=se.messages,n.uiHistory=wo(se.uiHistory),n.lineage=se.lineage,n.artifactLedger=se.artifactLedger,n.extensionState=se.extensionState?structuredClone(se.extensionState):void 0,n.extensionRecords=se.extensionRecords?.map(Ol=>({...Ol})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=se.title,n.sessionId=Y,n.contextTokenSnapshot=void 0,Ll(ir),n.sessionSnapshotDirty=JSON.stringify(ir)!==JSON.stringify(Yt),Oe.current.session={...Oe.current.session,id:Y,tag:se.tag},A.current=n.uiHistory??[],hr(null),re(),ci([]),X(Y),g?.writer.update({sessionId:Y}),console.log(yt.green(`[Session loaded: ${Y}]`)),"loaded"}return"missing"},"loadSession"),listSessions:o(async()=>{let Y=await i.list(n.gitRoot??void 0);if(Y.length===0){console.log(yt.dim(`
177
+ [Interrupted]`}]),da([{type:"user",text:S}]),kd(""),Rd(!0),Cd(be=>be+1),_h()&&Ah("turn-start",Lh(n.messages,n.lineage,{historyItems:y.current,foregroundItems:hn.current,streamingResponse:le.current.currentResponse,streamingThinking:le.current.thinkingContent,persistedUiHistory:_.current})),ne(!0),lt.current=!1,tl.current=!1,++Ol.current,Od(null),js(null),gt.current=null,Dd.current=null,kt(void 0),hl(),$o.current=[],Vs.current=[],ll([]),Fo(),dl(void 0),Or.current=[],ln.current=[],Ui(),yg(),Ve(),Ke(),Ie(void 0),Vt(),de(),Er(n),await new Promise(be=>setTimeout(be,50));let j=o(be=>{if(be.stage==="started"||be.stage==="generating"||be.stage==="validating"||be.stage==="ready"){js(be.message);return}js(null)},"handleWorkflowBuilderEvent"),Z=pg,J=o(be=>{if(be.type==="event")return;let ge=jt(be.text).trimEnd();if(ge.trim()){if(be.type==="error"){$({type:"error",text:ge});return}if(be.type==="assistant"){nr([{type:"assistant",text:ge}]);return}On({type:"info",text:ge},"workflow-message")}},"handleWorkflowRunMessage"),$e=o(async(be,ge,Wn)=>{if(Hf({source:be.source}).action==="none")return!1;let Tr=[],Yi=console.log;console.log=(...se)=>{Tr.push(bx(se))};let Fr=!1,ma=o(()=>{Fr||(Fr=!0,n.messages.push({role:"user",content:ge||be.request}))},"commitWorkflowUserMessage"),Y={...Wn,onWorkflowRunMessage:o(se=>{if(Wn.onWorkflowRunMessage?.(se),se.type!=="assistant"||se.final!==!0)return;let ye=jt(se.text).trimEnd();ye.trim()&&(ma(),n.messages.push({role:"assistant",content:ye}),Hn(n.messages),gi().catch(Os),le.current.pendingInputs.length>0&&(Zc.current=!0))},"onWorkflowRunMessage")};try{let se=await sp({request:be.request,callbacks:Y,approval:F.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:be.displayName,processSource:be.processSource??"command",...be.builtin!==void 0?{builtin:be.builtin}:{},onBuilderEvent:Y.onWorkflowBuilderEvent});return se==="started"&&le.current.pendingInputs.length>0&&(Zc.current=!0),Wf({outcome:se})}finally{js(null),console.log=Yi;let se=Rx(Tr.filter((ye,Ht,Yt)=>Yt.indexOf(ye)===Ht));se&&$({type:"info",text:se})}},"runWorkflowInvocation"),Fe=ts(x.trim());if(Fe){let be=!1,ge=o(Y=>{Fe.command==="workflow"&&(be||(be=!0,n.messages.push({role:"user",content:x.trim()})),n.messages.push({role:"assistant",content:Y}),Hn(n.messages),gi().catch(Os))},"commitSlashWorkflowFinalMessage"),Wn={getRuntimeStatus:e.getRuntimeStatus,validateSetupA2AConfig:e.validateSetupA2AConfig,prepareSetupSandbox:e.prepareSetupSandbox,inspectSandbox:e.inspectSandbox,learning:e.learning,getLearningSummary:e.learning?()=>e.learning.getSnapshot():void 0,openLearningCenter:VO,exit:KO,saveSession:o(async()=>{if(n.messages.length>0){let Y=to(n.messages);n.title=Y;let se=n.lineage??Hn(n.messages);n.lineage=se,await i.save(n.sessionId,Vc({messages:n.messages,title:Y,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Ne.current.session?.tag,uiHistory:_.current,lineage:se,artifactLedger:n.artifactLedger,extensionState:n.extensionState,extensionRecords:n.extensionRecords})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1}},"saveSession"),startNewSession:o(()=>{let Y=Cs(),se=new Date().toISOString();n.sessionId=Y,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=se,n.lastAccessed=se,Pl(r),Ne.current.session={...Ne.current.session,id:Y},hr(null),re(),ci([]),ly()?.reset(),X(Y),g?.writer.update({sessionId:Y})},"startNewSession"),loadSession:o(async Y=>{let se=await i.load(Y);if(se){if(!ko(F,"Resuming a saved session",ud))return"blocked";let Ht=await Ur({cwd:process.cwd()}),Yt=In(se),ir=Yt??Ht;return Yt?.workspaceRoot&&!rp(Yt)&&(ir=Ht),n.messages=se.messages,n.uiHistory=wo(se.uiHistory),n.lineage=se.lineage,n.artifactLedger=se.artifactLedger,n.extensionState=se.extensionState?structuredClone(se.extensionState):void 0,n.extensionRecords=se.extensionRecords?.map(Dl=>({...Dl})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=se.title,n.sessionId=Y,n.contextTokenSnapshot=void 0,Pl(ir),n.sessionSnapshotDirty=JSON.stringify(ir)!==JSON.stringify(Yt),Ne.current.session={...Ne.current.session,id:Y,tag:se.tag},_.current=n.uiHistory??[],hr(null),re(),ci([]),X(Y),g?.writer.update({sessionId:Y}),console.log(yt.green(`[Session loaded: ${Y}]`)),"loaded"}return"missing"},"loadSession"),listSessions:o(async()=>{let Y=await i.list(n.gitRoot??void 0);if(Y.length===0){console.log(yt.dim(`
178
178
  [No saved sessions]`));return}console.log(yt.bold(`
179
179
  Recent Sessions:
180
180
  `));for(let se of Y.slice(0,10))console.log(` ${yt.cyan(se.id)} ${yt.dim(`(${se.msgCount} messages)`)} ${se.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:o(()=>{n.uiHistory=[],re(),ci([])},"clearHistory"),printHistory:o(()=>{if(n.messages.length===0){console.log(yt.dim(`
181
181
  [No conversation history]`));return}console.log(yt.bold(`
182
182
  Conversation History:
183
- `));let Y=n.messages.slice(-20);for(let se=0;se<Y.length;se++){let ye=Y[se],Ht=yt.cyan(ye.role.padEnd(10)),Yt=np(ye.content),ir=Yt.slice(0,60).replace(/\n/g," "),Ol=Yt.length>60?"...":"";console.log(` ${(se+1).toString().padStart(2)}. ${Ht} ${ir}${Ol}`)}console.log()},"printHistory"),switchProvider:o((Y,se)=>{let ye=Qo({provider:Y,model:se,effort:bt.current.effort,effortOverride:bt.current.effortOverride,permissionMode:bt.current.permissionMode,planModeEffort:bt.current.planModeEffort,thinking:bt.current.thinking,reasoningMode:bt.current.reasoningMode});Ae(Ht=>({...Ht,provider:Y,model:se})),Oe.current.provider=Y,Oe.current.model=se,Oe.current.effort=ye.runtimeEffort,ye.diagnostic&&console.log(yt.yellow(`
184
- [${ye.diagnostic}]`))},"switchProvider"),setThinking:o(Y=>{let se=Y?"auto":"off";Ae(ye=>({...ye,thinking:Y,reasoningMode:se})),Oe.current.thinking=Y,Oe.current.reasoningMode=se},"setThinking"),setEffort:o(Y=>{Ae(se=>({...se,effort:Y,effortOverride:Y!==void 0}))},"setEffort"),setReasoningMode:o(Y=>{let se=Y!=="off";Ae(ye=>({...ye,thinking:se,reasoningMode:Y})),Oe.current.thinking=se,Oe.current.reasoningMode=Y},"setReasoningMode"),setAgentMode:o(Y=>{Ae(se=>({...se,agentMode:Y})),Oe.current.agentMode=Y},"setAgentMode"),setPermissionMode:Hg,setRepoIntelligenceRuntime:o(Y=>{Ae(se=>({...se,...Y.mode!==void 0?{repoIntelligenceMode:Y.mode}:{},...Y.trace!==void 0?{repoIntelligenceTrace:Y.trace}:{}})),Y.mode!==void 0&&(process.env.KODAX_REPO_INTELLIGENCE=Y.mode,Oe.current.context={...Oe.current.context,repoIntelligenceMode:Y.mode}),Y.trace!==void 0&&(Y.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,Oe.current.context={...Oe.current.context,repoIntelligenceTrace:Y.trace})},"setRepoIntelligenceRuntime"),deleteSession:o(async Y=>{await i.delete?.(Y)},"deleteSession"),deleteAllSessions:o(async()=>{await i.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:o(async()=>{let Y=await i.getLineage?.(n.sessionId);if(!Y){console.log(yt.dim(`
183
+ `));let Y=n.messages.slice(-20);for(let se=0;se<Y.length;se++){let ye=Y[se],Ht=yt.cyan(ye.role.padEnd(10)),Yt=np(ye.content),ir=Yt.slice(0,60).replace(/\n/g," "),Dl=Yt.length>60?"...":"";console.log(` ${(se+1).toString().padStart(2)}. ${Ht} ${ir}${Dl}`)}console.log()},"printHistory"),switchProvider:o((Y,se)=>{let ye=Qo({provider:Y,model:se,effort:bt.current.effort,effortOverride:bt.current.effortOverride,permissionMode:bt.current.permissionMode,planModeEffort:bt.current.planModeEffort,thinking:bt.current.thinking,reasoningMode:bt.current.reasoningMode});Ae(Ht=>({...Ht,provider:Y,model:se})),Ne.current.provider=Y,Ne.current.model=se,Ne.current.effort=ye.runtimeEffort,ye.diagnostic&&console.log(yt.yellow(`
184
+ [${ye.diagnostic}]`))},"switchProvider"),setThinking:o(Y=>{let se=Y?"auto":"off";Ae(ye=>({...ye,thinking:Y,reasoningMode:se})),Ne.current.thinking=Y,Ne.current.reasoningMode=se},"setThinking"),setEffort:o(Y=>{Ae(se=>({...se,effort:Y,effortOverride:Y!==void 0}))},"setEffort"),setReasoningMode:o(Y=>{let se=Y!=="off";Ae(ye=>({...ye,thinking:se,reasoningMode:Y})),Ne.current.thinking=se,Ne.current.reasoningMode=Y},"setReasoningMode"),setAgentMode:o(Y=>{Ae(se=>({...se,agentMode:Y})),Ne.current.agentMode=Y},"setAgentMode"),setPermissionMode:Hg,setRepoIntelligenceRuntime:o(Y=>{Ae(se=>({...se,...Y.mode!==void 0?{repoIntelligenceMode:Y.mode}:{},...Y.trace!==void 0?{repoIntelligenceTrace:Y.trace}:{}})),Y.mode!==void 0&&(process.env.KODAX_REPO_INTELLIGENCE=Y.mode,Ne.current.context={...Ne.current.context,repoIntelligenceMode:Y.mode}),Y.trace!==void 0&&(Y.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,Ne.current.context={...Ne.current.context,repoIntelligenceTrace:Y.trace})},"setRepoIntelligenceRuntime"),deleteSession:o(async Y=>{await i.delete?.(Y)},"deleteSession"),deleteAllSessions:o(async()=>{await i.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:o(async()=>{let Y=await i.getLineage?.(n.sessionId);if(!Y){console.log(yt.dim(`
185
185
  [No session tree available for this session]`));return}let se=vh(Lf(Y));console.log(yt.bold(`
186
186
  Session Tree:
187
- `)),se.forEach(ye=>console.log(` ${ye}`)),console.log()},"printSessionTree"),switchSessionBranch:o(async Y=>{if(!ko(F,"Switching session branches",ld))return"blocked";let ye=await i.setActiveEntry?.(n.sessionId,Y,{summarizeCurrentBranch:!0});if(!ye)return"missing";n.messages=ye.messages,n.uiHistory=wo(ye.uiHistory),n.lineage=ye.lineage,n.artifactLedger=ye.artifactLedger,n.extensionState=ye.extensionState?structuredClone(ye.extensionState):void 0,n.extensionRecords=ye.extensionRecords?.map(ir=>({...ir})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ye.title,n.contextTokenSnapshot=void 0;let Ht=In(ye),Yt=Ht??n.runtimeInfo??r;return Ll(Yt),n.sessionSnapshotDirty=JSON.stringify(Yt)!==JSON.stringify(Ht),A.current=n.uiHistory??[],hr(null),re(),ci([]),console.log(yt.green(`
187
+ `)),se.forEach(ye=>console.log(` ${ye}`)),console.log()},"printSessionTree"),switchSessionBranch:o(async Y=>{if(!ko(F,"Switching session branches",ud))return"blocked";let ye=await i.setActiveEntry?.(n.sessionId,Y,{summarizeCurrentBranch:!0});if(!ye)return"missing";n.messages=ye.messages,n.uiHistory=wo(ye.uiHistory),n.lineage=ye.lineage,n.artifactLedger=ye.artifactLedger,n.extensionState=ye.extensionState?structuredClone(ye.extensionState):void 0,n.extensionRecords=ye.extensionRecords?.map(ir=>({...ir})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ye.title,n.contextTokenSnapshot=void 0;let Ht=In(ye),Yt=Ht??n.runtimeInfo??r;return Pl(Yt),n.sessionSnapshotDirty=JSON.stringify(Yt)!==JSON.stringify(Ht),_.current=n.uiHistory??[],hr(null),re(),ci([]),console.log(yt.green(`
188
188
  [Switched to tree entry: ${Y}]`)),console.log(yt.dim(` Messages: ${ye.messages.length}`)),"switched"},"switchSessionBranch"),labelSessionBranch:o(async(Y,se)=>{let ye=await i.setLabel?.(n.sessionId,Y,se);if(!ye)return!1;n.lineage=ye.lineage;let Ht=se&&se.trim()?`checkpoint label set: ${se.trim()}`:"checkpoint label cleared";return console.log(yt.green(`
189
- [${Ht}]`)),!0},"labelSessionBranch"),forkSession:o(async Y=>{if(!ko(F,"Forking a session branch",ld))return"blocked";let ye=await i.fork?.(n.sessionId,Y);if(!ye)return"failed";n.sessionId=ye.sessionId,n.messages=ye.data.messages,n.uiHistory=wo(ye.data.uiHistory),n.lineage=ye.data.lineage,n.artifactLedger=ye.data.artifactLedger,n.extensionState=ye.data.extensionState?structuredClone(ye.data.extensionState):void 0,n.extensionRecords=ye.data.extensionRecords?.map(Ol=>({...Ol})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ye.data.title,n.contextTokenSnapshot=void 0;let Ht=In(ye.data),Yt=Ht??n.runtimeInfo??r;Ll(Yt),n.sessionSnapshotDirty=JSON.stringify(Yt)!==JSON.stringify(Ht),A.current=n.uiHistory??[];let ir=new Date().toISOString();return n.createdAt=ir,n.lastAccessed=ir,Oe.current.session={...Oe.current.session,id:ye.sessionId,tag:ye.data.tag},hr(null),re(),ci([]),X(ye.sessionId),g?.writer.update({sessionId:ye.sessionId}),console.log(yt.green(`
190
- [Forked session: ${ye.sessionId}]`)),console.log(yt.dim(` Messages: ${ye.data.messages.length}`)),"forked"},"forkSession"),recoverSession:UC,rewindSession:o(async Y=>{if(!ko(F,"Rewinding session",ld))return"blocked";let ye=await i.rewind?.(n.sessionId,Y);if(!ye)return"failed";n.messages=ye.messages,n.uiHistory=wo(ye.uiHistory),n.lineage=ye.lineage,n.artifactLedger=ye.artifactLedger,n.extensionState=ye.extensionState?structuredClone(ye.extensionState):void 0,n.extensionRecords=ye.extensionRecords?.map(ir=>({...ir})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ye.title,n.contextTokenSnapshot=void 0;let Ht=In(ye),Yt=Ht??n.runtimeInfo??r;return Ll(Yt),n.sessionSnapshotDirty=JSON.stringify(Yt)!==JSON.stringify(Ht),A.current=n.uiHistory??[],hr(null),re(),ci([]),console.log(yt.green(`
191
- [Rewound session${Y?` to ${Y}`:" to previous turn"}]`)),console.log(yt.dim(` Messages: ${ye.messages.length}`)),"rewound"},"rewindSession"),getCostReport:o(()=>$.current?.()??null,"getCostReport"),getAutoModeStats:o(async()=>{if(Ir(Fn.current))return e.runtimeAutoModeControl?e.runtimeAutoModeControl.getStats(n.sessionId):d.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:o(async Y=>{if(Ir(Fn.current)){if(e.runtimeAutoModeControl){let se=await e.runtimeAutoModeControl.setEngine(n.sessionId,Y);tr(se?.engine??Y);return}d.getGuardrail().setEngine(Y),tr(Y)}},"setAutoModeEngine"),createKodaXOptions:o(()=>({...Oe.current,provider:F.provider,model:F.model,effort:At,thinking:F.thinking,reasoningMode:F.reasoningMode,agentMode:F.agentMode,guardrails:e.runtimeRunner?void 0:Ix(Fn.current,d),events:$l()}),"createKodaXOptions"),reloadAgentsFiles:o(async()=>await SI({cwd:process.cwd(),projectRoot:n.gitRoot??void 0}),"reloadAgentsFiles"),startCompacting:o(()=>{Xe()},"startCompacting"),stopCompacting:o(()=>{_t()},"stopCompacting"),onCompactStats:o(Y=>{el.current=Y.tokensBefore,hr(Y.tokensAfter)},"onCompactStats"),confirm:o(async Y=>(await hi("confirm",{_alwaysConfirm:!0,_message:Y})).confirmed,"confirm"),onWorkflowBuilderEvent:j,onWorkflowRunMessage:o(Y=>{if(J(Y),Y.type!=="assistant"||Y.final!==!0)return;let se=jt(Y.text).trimEnd();se.trim()&&ge(se)},"onWorkflowRunMessage"),onWorkflowRunUpdate:Z,ui:{select:o(async(Y,se)=>B$(Y,se),"select"),confirm:o(async Y=>(await hi("confirm",{_alwaysConfirm:!0,_message:Y})).confirmed,"confirm"),input:o(async(Y,se)=>la(Y,se),"input")}},rr=[],Tr=console.log;console.log=(...Y)=>{rr.push(vx(Y))};let Yi,Fr;try{let Y=await ns(Fe,n,Wn,F);typeof Y=="object"&&Y!==null&&"invocation"in Y&&(Yi=Y.invocation),typeof Y=="object"&&Y!==null&&"workflow"in Y&&(Fr=Y.workflow)}finally{js(null),console.log=Tr}let ma=bx(rr);if(ma&&O({type:"info",text:ma}),Fr){try{await Ne(Fr,x.trim(),Wn)}finally{le.current.pendingInputs.length>0&&(Zc.current=!0),ne(!1),he(),oe()}return}if(Yi){ne(!1),he(),ne(!0),de(),fe();try{await VC(Yi,x.trim())}catch(Y){let se=Y instanceof Error?Y:new Error(String(Y)),ye=se.name==="AbortError"||se.message.includes("aborted")||se.message.includes("ABORTED");console.log=Tr,ye?hf():nr([{type:"error",text:se.message}])}finally{ne(!1),he(),oe()}return}ne(!1),he();return}let rn=await KS(x.trim());if(x.trim().startsWith("!")&&ju(rn)){ne(!1),he();return}let Xi=Oe.current.context?.executionCwd??process.cwd(),Vo=o(be=>{be.length!==0&&nr(be.map(ge=>({type:"info",text:ge})))},"emitArtifactWarnings");fe();let Go=[],yi=console.log;console.log=(...be)=>{Go.push(vx(be))};try{await pa(rn,async be=>{let ge=Bc(be,Oe.current.context?.executionCwd??process.cwd());return Vo(ge.warnings),ua(Oe.current,ge.promptText,n.messages,ge.inputArtifacts)})}catch(be){let ge=be instanceof Error?be:new Error(String(be));if(ge.name==="AbortError"||ge.message.includes("aborted")||ge.message.includes("ABORTED"))console.log=yi,hf();else{let rr=ge.message;if(ge.message.includes("rate limit")||ge.message.includes("Rate limit")?rr=`[Rate Limit] ${ge.message}
189
+ [${Ht}]`)),!0},"labelSessionBranch"),forkSession:o(async Y=>{if(!ko(F,"Forking a session branch",ud))return"blocked";let ye=await i.fork?.(n.sessionId,Y);if(!ye)return"failed";n.sessionId=ye.sessionId,n.messages=ye.data.messages,n.uiHistory=wo(ye.data.uiHistory),n.lineage=ye.data.lineage,n.artifactLedger=ye.data.artifactLedger,n.extensionState=ye.data.extensionState?structuredClone(ye.data.extensionState):void 0,n.extensionRecords=ye.data.extensionRecords?.map(Dl=>({...Dl})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ye.data.title,n.contextTokenSnapshot=void 0;let Ht=In(ye.data),Yt=Ht??n.runtimeInfo??r;Pl(Yt),n.sessionSnapshotDirty=JSON.stringify(Yt)!==JSON.stringify(Ht),_.current=n.uiHistory??[];let ir=new Date().toISOString();return n.createdAt=ir,n.lastAccessed=ir,Ne.current.session={...Ne.current.session,id:ye.sessionId,tag:ye.data.tag},hr(null),re(),ci([]),X(ye.sessionId),g?.writer.update({sessionId:ye.sessionId}),console.log(yt.green(`
190
+ [Forked session: ${ye.sessionId}]`)),console.log(yt.dim(` Messages: ${ye.data.messages.length}`)),"forked"},"forkSession"),recoverSession:VC,rewindSession:o(async Y=>{if(!ko(F,"Rewinding session",ud))return"blocked";let ye=await i.rewind?.(n.sessionId,Y);if(!ye)return"failed";n.messages=ye.messages,n.uiHistory=wo(ye.uiHistory),n.lineage=ye.lineage,n.artifactLedger=ye.artifactLedger,n.extensionState=ye.extensionState?structuredClone(ye.extensionState):void 0,n.extensionRecords=ye.extensionRecords?.map(ir=>({...ir})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ye.title,n.contextTokenSnapshot=void 0;let Ht=In(ye),Yt=Ht??n.runtimeInfo??r;return Pl(Yt),n.sessionSnapshotDirty=JSON.stringify(Yt)!==JSON.stringify(Ht),_.current=n.uiHistory??[],hr(null),re(),ci([]),console.log(yt.green(`
191
+ [Rewound session${Y?` to ${Y}`:" to previous turn"}]`)),console.log(yt.dim(` Messages: ${ye.messages.length}`)),"rewound"},"rewindSession"),getCostReport:o(()=>P.current?.()??null,"getCostReport"),getAutoModeStats:o(async()=>{if(Ir(Fn.current))return e.runtimeAutoModeControl?e.runtimeAutoModeControl.getStats(n.sessionId):f.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:o(async Y=>{if(Ir(Fn.current)){if(e.runtimeAutoModeControl){let se=await e.runtimeAutoModeControl.setEngine(n.sessionId,Y);tr(se?.engine??Y);return}f.getGuardrail().setEngine(Y),tr(Y)}},"setAutoModeEngine"),createKodaXOptions:o(()=>({...Ne.current,provider:F.provider,model:F.model,effort:At,thinking:F.thinking,reasoningMode:F.reasoningMode,agentMode:F.agentMode,guardrails:e.runtimeRunner?void 0:vx(Fn.current,f),events:$l()}),"createKodaXOptions"),reloadAgentsFiles:o(async()=>await wI({cwd:process.cwd(),projectRoot:n.gitRoot??void 0}),"reloadAgentsFiles"),startCompacting:o(()=>{Xe()},"startCompacting"),stopCompacting:o(()=>{_t()},"stopCompacting"),onCompactStats:o(Y=>{el.current=Y.tokensBefore,hr(Y.tokensAfter)},"onCompactStats"),confirm:o(async Y=>(await hi("confirm",{_alwaysConfirm:!0,_message:Y})).confirmed,"confirm"),onWorkflowBuilderEvent:j,onWorkflowRunMessage:o(Y=>{if(J(Y),Y.type!=="assistant"||Y.final!==!0)return;let se=jt(Y.text).trimEnd();se.trim()&&ge(se)},"onWorkflowRunMessage"),onWorkflowRunUpdate:Z,ui:{select:o(async(Y,se)=>UO(Y,se),"select"),confirm:o(async Y=>(await hi("confirm",{_alwaysConfirm:!0,_message:Y})).confirmed,"confirm"),input:o(async(Y,se)=>la(Y,se),"input")}},rr=[],Tr=console.log;console.log=(...Y)=>{rr.push(bx(Y))};let Yi,Fr;try{let Y=await ns(Fe,n,Wn,F);typeof Y=="object"&&Y!==null&&"invocation"in Y&&(Yi=Y.invocation),typeof Y=="object"&&Y!==null&&"workflow"in Y&&(Fr=Y.workflow)}finally{js(null),console.log=Tr}let ma=Rx(rr);if(ma&&$({type:"info",text:ma}),Fr){try{await $e(Fr,x.trim(),Wn)}finally{le.current.pendingInputs.length>0&&(Zc.current=!0),ne(!1),he(),oe()}return}if(Yi){ne(!1),he(),ne(!0),de(),fe();try{await GC(Yi,x.trim())}catch(Y){let se=Y instanceof Error?Y:new Error(String(Y)),ye=se.name==="AbortError"||se.message.includes("aborted")||se.message.includes("ABORTED");console.log=Tr,ye?hf():nr([{type:"error",text:se.message}])}finally{ne(!1),he(),oe()}return}ne(!1),he();return}let rn=await KS(x.trim());if(x.trim().startsWith("!")&&Uu(rn)){ne(!1),he();return}let Xi=Ne.current.context?.executionCwd??process.cwd(),Vo=o(be=>{be.length!==0&&nr(be.map(ge=>({type:"info",text:ge})))},"emitArtifactWarnings");fe();let Go=[],yi=console.log;console.log=(...be)=>{Go.push(bx(be))};try{await pa(rn,async be=>{let ge=Bc(be,Ne.current.context?.executionCwd??process.cwd());return Vo(ge.warnings),ua(Ne.current,ge.promptText,n.messages,ge.inputArtifacts)})}catch(be){let ge=be instanceof Error?be:new Error(String(be));if(ge.name==="AbortError"||ge.message.includes("aborted")||ge.message.includes("ABORTED"))console.log=yi,hf();else{let rr=ge.message;if(ge.message.includes("rate limit")||ge.message.includes("Rate limit")?rr=`[Rate Limit] ${ge.message}
192
192
  Suggestion: Wait a moment and try again, or switch provider with /mode`:ge.message.includes("API key")||ge.message.includes("not configured")?rr=`[Configuration Error] ${ge.message}
193
193
  Suggestion: Set the required API key environment variable`:ge.message.includes("network")||ge.message.includes("ECONNREFUSED")||ge.message.includes("ETIMEDOUT")?rr=`[Network Error] ${ge.message}
194
194
  Suggestion: Check your internet connection`:(ge.message.includes("token")||ge.message.includes("context too long"))&&(rr=`[Context Error] ${ge.message}
195
- Suggestion: Use /clear to start fresh`),console.log=yi,st.current.workerId?Zt({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:rr,timestamp:Date.now()}):nr([{type:"error",text:rr}]),cp({error:ge,messageCount:n.messages.length})){let Tr={type:"info",text:Gl};if(st.current.workerId?(Zt({id:`recover-hint-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,...Tr,timestamp:Date.now()}),Sf([Tr])):nr([Tr]),(await hi("confirm",{_alwaysConfirm:!0,_message:ap})).confirmed)try{await UC(rn)}catch(Fr){let ma=Fr instanceof Error?Fr.message:String(Fr);nr([{type:"error",text:`[Recover failed] ${ma}`}])}}}}finally{if(console.log=yi,Go.length>0){let ge=Go.filter((rr,Tr,Yi)=>Yi.indexOf(rr)===Tr),Wn=bx(ge);Wn&&O({type:"info",text:Wn})}if(!lt.current){let ge=hl(z.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));ge.length>0&&st.current.workerId&&ge.forEach(Wn=>wr(Wn))}ne(!1),he(),Ve(),yg(),oe();let be=zo(n.messages);n.contextTokenSnapshot={currentTokens:be,baselineEstimatedTokens:be,source:"estimate"},hr(be)}},[si,n,F,ng,W.pendingInputs.length,i,Ye,je,C,l,O,re,de,he,Ve,$l,VC,Re,K,We,Zt,da,nr,Vg,Nl,gi,Sf,Hn,pa,Ug,Xe,_t,Ui,yg,hl,wr,Fo,rg,sl,al]),GC=zt.shouldRender?pe(M,{paddingX:1,children:pe(KM,{viewModel:zt})}):void 0,KC=H&&fi.shouldRender?pe(M,{paddingX:1,children:pe(UM,{viewModel:fi})}):void 0,zC=KT?pe(M,{paddingX:1,children:pe(Fm,{viewModel:Ig})}):void 0,V$=GC||KC||zC?_n(M,{flexDirection:"column",children:[KC,GC,zC]}):void 0,XC=zt.shouldRender?zt.counterText:void 0,G$=pe(Eu,{left:pe(Ru,{items:cC}),right:pe(ku,{items:lC}),queued:pe(Om,{pendingInputs:W.pendingInputs}),stashNotice:pe(Nu,{text:cf}),notifications:pe($u,{notifications:af}),inlineNotices:Ag.length>0?pe(Dm,{notices:Ag}):void 0,activityBar:pi?_n(M,{paddingX:1,flexDirection:"row",children:[_n(M,{flexGrow:1,children:[pi?.showSpinner?pe(Vn,{color:ae("dark").colors.accent}):null,pi?_n(b,{color:pi.kind==="waiting"?ae("dark").colors.warning:ae("dark").colors.accent,wrap:"truncate",children:[pi.showSpinner?" ":"",pi.text]}):null,pi?.showSpinner&&W.roundStartedAt!=null?pe(lR,{roundStartedAt:W.roundStartedAt,charCount:W.currentResponse.length,theme:ae("dark")}):null]}),XC?pe(b,{dimColor:!0,wrap:"truncate",children:XC}):H&&fi.shouldRender?pe(b,{dimColor:!0,wrap:"truncate",children:XM(fi)}):null]}):void 0,todoSurface:V$,composer:pe(Mm,{onSubmit:U$,onHistoryRecall:j$,onPopPendingInputs:o(()=>{let f=V();if(f.length!==0)return f.join(`
195
+ Suggestion: Use /clear to start fresh`),console.log=yi,st.current.workerId?Zt({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:rr,timestamp:Date.now()}):nr([{type:"error",text:rr}]),cp({error:ge,messageCount:n.messages.length})){let Tr={type:"info",text:Kl};if(st.current.workerId?(Zt({id:`recover-hint-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,...Tr,timestamp:Date.now()}),Sf([Tr])):nr([Tr]),(await hi("confirm",{_alwaysConfirm:!0,_message:ap})).confirmed)try{await VC(rn)}catch(Fr){let ma=Fr instanceof Error?Fr.message:String(Fr);nr([{type:"error",text:`[Recover failed] ${ma}`}])}}}}finally{if(console.log=yi,Go.length>0){let ge=Go.filter((rr,Tr,Yi)=>Yi.indexOf(rr)===Tr),Wn=Rx(ge);Wn&&$({type:"info",text:Wn})}if(!lt.current){let ge=gl(z.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));ge.length>0&&st.current.workerId&&ge.forEach(Wn=>wr(Wn))}ne(!1),he(),Ve(),yg(),oe();let be=zo(n.messages);n.contextTokenSnapshot={currentTokens:be,baselineEstimatedTokens:be,source:"estimate"},hr(be)}},[si,n,F,ng,W.pendingInputs.length,i,Ye,je,C,l,$,re,de,he,Ve,$l,GC,Re,K,We,Zt,da,nr,Vg,Nl,gi,Sf,Hn,pa,Ug,Xe,_t,Ui,yg,gl,wr,Fo,rg,sl,al]),KC=zt.shouldRender?pe(M,{paddingX:1,children:pe(JM,{viewModel:zt})}):void 0,zC=H&&fi.shouldRender?pe(M,{paddingX:1,children:pe(XM,{viewModel:fi})}):void 0,XC=zT?pe(M,{paddingX:1,children:pe(Fm,{viewModel:Ig})}):void 0,YO=KC||zC||XC?_n(M,{flexDirection:"column",children:[zC,KC,XC]}):void 0,YC=zt.shouldRender?zt.counterText:void 0,qO=pe(Mu,{left:pe(ku,{items:lC}),right:pe(Eu,{items:uC}),queued:pe(Nm,{pendingInputs:W.pendingInputs}),stashNotice:pe(Nu,{text:cf}),notifications:pe($u,{notifications:af}),inlineNotices:Ag.length>0?pe(Dm,{notices:Ag}):void 0,activityBar:pi?_n(M,{paddingX:1,flexDirection:"row",children:[_n(M,{flexGrow:1,children:[pi?.showSpinner?pe(Vn,{color:ae("dark").colors.accent}):null,pi?_n(b,{color:pi.kind==="waiting"?ae("dark").colors.warning:ae("dark").colors.accent,wrap:"truncate",children:[pi.showSpinner?" ":"",pi.text]}):null,pi?.showSpinner&&W.roundStartedAt!=null?pe(uR,{roundStartedAt:W.roundStartedAt,charCount:W.currentResponse.length,theme:ae("dark")}):null]}),YC?pe(b,{dimColor:!0,wrap:"truncate",children:YC}):H&&fi.shouldRender?pe(b,{dimColor:!0,wrap:"truncate",children:ZM(fi)}):null]}):void 0,todoSurface:YO,composer:pe(Mm,{onSubmit:XO,onHistoryRecall:zO,onPopPendingInputs:o(()=>{let d=V();if(d.length!==0)return d.join(`
196
196
  ---
197
- `)},"onPopPendingInputs"),prompt:">",placeholder:uL({isLoading:H,canQueueFollowUps:ng,waitingReason:Eg}),focus:!Ye&&!je&&!wt,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:I$,onPasteFallback:P$}),inlineSuggestions:A$,helpSurface:_T?pe(Am,{sections:Ph()}):void 0,taskBar:bl?pe(Ou,{items:na.backgroundTask.items,overflowLabel:na.backgroundTask.overflowLabel,ctaHint:na.backgroundTask.ctaHint,showSpinner:H}):void 0,statusLine:pe(M,{children:pe(ws,{...of,viewModel:sC})}),inlineDialogs:$$}),K$=pe(Eu,{left:pe(Ru,{items:cC}),right:pe(ku,{items:lC}),stashNotice:pe(Nu,{text:cf}),notifications:pe($u,{notifications:af}),composer:pe(FM,{searchActive:wt,selectionActive:!!(di||ct),showAllActive:Kt,searchQuery:gn,searchCurrent:Xt.length>0?Ki+1:0,searchCount:Xt.length,searchDetailText:Rg,pendingLiveUpdates:wl,secondaryText:M$}),taskBar:bl?pe(Ou,{items:na.backgroundTask.items,overflowLabel:na.backgroundTask.overflowLabel,ctaHint:na.backgroundTask.ctaHint,showSpinner:xt}):void 0,statusLine:pe(M,{children:pe(ws,{...of,viewModel:Mg})})}),Gg=q(f=>pe(HM,{banner:f?.bannerVisible?pe(Rx,{...Wo}):void 0,items:Tl,isLoading:yn,viewportRows:nn.messageRows,viewportWidth:ee,scrollOffset:gr,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Il:IC,maxLines:Bt,selectedTextRanges:Tg?Ld?.rowRanges:void 0,onMetricsChange:uf,onVisibleRowsChange:df}),[Wo,Tl,yn,uf,df,gr,IC,ee,Bt,Ld?.rowRanges,nn.messageRows,Tg]),Kg=q(f=>pe(WM,{banner:f?.bannerVisible?pe(Rx,{...Wo}):void 0,items:xl,browse:{hintText:zi.browseHintText},selection:lf,search:eC,isLoading:xt,isThinking:Ee.isThinking,thinkingCharCount:Ee.thinkingCharCount,thinkingContent:Ee.thinkingContent,streamingResponse:Ee.currentResponse,currentTool:Ee.currentTool,activeToolCalls:Ee.activeToolCalls,toolInputCharCount:Ee.toolInputCharCount,toolInputContent:Ee.toolInputContent,iterationHistory:Ee.iterationHistory,currentIteration:Ee.currentIteration,isCompacting:Ee.isCompacting,agentMode:F.agentMode,managedPhase:xt?Q?.phase:void 0,managedHarnessProfile:xt?Q?.harnessProfile:void 0,managedWorkerTitle:xt?Q?.activeWorkerTitle:void 0,managedRound:xt?Q?.currentRound:void 0,managedMaxRounds:xt?Q?.maxRounds:void 0,managedGlobalWorkBudget:xt?Q?.globalWorkBudget:void 0,managedBudgetUsage:xt?Q?.budgetUsage:void 0,managedBudgetApprovalRequired:xt?Q?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ee.lastLiveActivityLabel,liveStatusLines:ea,viewportRows:nn.messageRows,viewportWidth:ee,scrollOffset:gr,windowed:!!f?.windowed,animateSpinners:!!f?.rendererWindow&&ia,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Il:Qd,maxLines:Bt,showDetailedTools:Kt,showAllContent:Kt,selectedItemId:er.selectionEnabled?ct:void 0,selectedTextRanges:ai?.rowRanges,expandedItemKeys:er.selectionEnabled?Pn:void 0,onMetricsChange:uf,onVisibleRowsChange:df}),[Wo,F.agentMode,xt,Pn,c.transcriptSpinnerAnimation,uf,df,gr,FT,Q?.activeWorkerTitle,Q?.budgetApprovalRequired,Q?.budgetUsage,Q?.currentRound,Q?.globalWorkBudget,Q?.harnessProfile,Q?.maxRounds,Q?.phase,Il,Qd,zi.browseHintText,ct,lf,ee,ia,xl,Bt,Ee.activeToolCalls,Ee.currentIteration,Ee.currentResponse,Ee.currentTool,Ee.isCompacting,Ee.isThinking,Ee.iterationHistory,Ee.lastLiveActivityLabel,Ee.thinkingCharCount,Ee.thinkingContent,Ee.toolInputCharCount,Ee.toolInputContent,ea,ai?.rowRanges,eC,Kt,nn.messageRows]),z$=ue?Kg({bannerVisible:!1,windowed:Ft}):Gg({bannerVisible:!1}),YC=ue?K$:G$,X$=c.enabled&&Ho,qC=_n(M,{flexDirection:"column",width:ee,flexShrink:0,flexGrow:X$?1:0,children:[pe(jw,{currentConfig:F,setCurrentConfig:Ae,isLoading:H,abort:_e,stopThinking:te,clearThinkingContent:oe,setCurrentTool:Ie,setIsLoading:ne,onToggleHelp:C$,setShowHelp:AT,onSetThinking:o(f=>{Oe.current.thinking=f},"onSetThinking"),onSetReasoningMode:o(f=>{Oe.current.reasoningMode=f,Oe.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:N$,onOpenTranscriptSearch:Ng,canOpenTranscriptSearch:ue&&!Ye&&!je,isInteractiveDialogActive:!!(Ye||je),onSetAgentMode:o(f=>{Oe.current.agentMode=f},"onSetAgentMode"),onSetPermissionMode:o(f=>{Hg(f)},"onSetPermissionMode"),isInputEmpty:rl,onSavePermissionMode:Tv}),mr&&(c.enabled?null:pe(Ja,{items:[1],children:o(()=>pe(Rx,{...Wo},"banner"),"children")})),Ho?pe(bm,{width:ee,stickyHeader:zi.stickyHeader,jumpToLatest:zi.jumpToLatest,transcript:!c.enabled||!Ft?ue?Kg({bannerVisible:!1}):Gg({bannerVisible:!1}):void 0,renderTranscriptWindow:c.enabled&&Ft?f=>(()=>{let x=Ml(f).contentWindow;return ue?Kg({bannerVisible:!1,windowed:!0,rendererWindow:x}):Gg({bannerVisible:!1,rendererWindow:x})})():void 0,overlay:Bg,scrollTop:gr,scrollHeight:El,viewportHeight:nn.messageRows,stickyScroll:!ue&&!Or&&ag,overscanRows:KV,scrollRef:c$,onWindowChange:L$,onScrollTopChange:u$,onStickyChange:d$,footer:YC}):_n(IV,{children:[_n(M,{flexDirection:"column",flexGrow:1,children:[z$,Bg?pe(M,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:Bg}):null]}),YC]})]});return xg?pe(Xy,{mouseTracking:Vi.usesRendererMouseTracking,children:qC}):qC},"InkREPLInner"),JV=o(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return pe(Au,{children:pe(Hu,{getPendingInputAgentId:o(()=>Tf(e.context.sessionId,"/root"),"getPendingInputAgentId"),children:pe(mu,{children:pe(Hw,{children:pe(Jp,{cwd:t,gitRoot:n,children:pe(qV,{...e})})})})})})},"InkREPL");function QV(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}o(QV,"isRawModeSupported");async function Kh(e){if(!QV())throw new ny("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 Is,n=ro(),r=io(),i=oo(n,r),{prepareRuntimeConfig:s}=await import("./utils-NZXGH43M.js"),{loadCompactionConfig:a}=await import("./compaction-config-UEGW2ZBT.js"),{resolveProvider:c}=await import("./dist-7EWVACPM.js"),l=s(),u=Ma({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,configuredProvider:l.provider,defaultProvider:wf}),d=_a({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,explicitModel:e.model,configuredProvider:l.provider,configuredModel:l.model}),p=LV(e,l),h=Aa({explicitEffort:e.effort,environmentEffort:process.env.KODAX_EFFORT,configuredEffort:l.effort}),m=Yf(e,l,process.env.KODAX_EFFORT),g=e.agentMode??l.agentMode??"ama",C=p!=="off",w=ka(l.permissionMode,"accept-edits")??"accept-edits",T=Bf(),v=l.repoIntelligenceTrace===!0,_={provider:u,model:d,effort:h,effortOverride:m,planModeEffort:l.planModeEffort,thinking:C,reasoningMode:p,agentMode:g,permissionMode:w,repoIntelligenceMode:T.mode,repoIntelligenceTrace:v},P=e.session?.id,k=[],E,$,B,O,G,re="",X=await Ur({cwd:process.cwd()}),y=X.workspaceRoot??void 0,A=X,ee=y,W=Rf({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(W){let te=o(()=>{W.shutdown()},"teamModeCleanup");process.on("exit",te),process.on("SIGTERM",te)}try{let{bootstrapConstructionRuntime:te}=await import("./construction-bootstrap-OUKXVNUQ.js"),oe=await te(y??process.cwd());if(oe.loaded>0||oe.failed>0||oe.tampered>0){let Ie=oe.failed>0?`; ${oe.failed} failed`:"",nt=oe.tampered>0?`; ${oe.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";ft({source:"repl:construction",level:oe.failed>0||oe.tampered>0?"warn":"info",message:`Rehydrated ${oe.loaded} active tool(s)${Ie}${nt}.`})}if(oe.markdownLoaded>0||oe.markdownFailures.length>0){ft({source:"repl:agents",level:oe.markdownFailures.length>0?"warn":"info",message:`Loaded ${oe.markdownLoaded} markdown agent(s).`});for(let Ie of oe.markdownFailures)ft({source:"repl:agents",level:"warn",message:`Skipped markdown agent ${Ie.path}: ${Ie.reason}`})}}catch(te){ft({source:"repl:construction",level:"warn",message:`Bootstrap failed: ${te.message}. Self-construction disabled this session.`})}let le;try{let te=await a(y),oe=c(u);le={contextWindow:te.contextWindow??oe.getContextWindow?.()??2e5,triggerPercent:te.triggerPercent,triggerTokens:te.triggerTokens,enabled:te.enabled,reservedResponseTokens:oe.getEffectiveMaxOutputTokens?.(d),userOverrideContextWindow:te.contextWindow}}catch{}if(e.session?.id&&!e.session.resume){let te=await t.load(e.session.id);te&&(k=te.messages,E=wo(te.uiHistory),$=te.lineage,B=te.artifactLedger,O=te.extensionState,G=te.extensionRecords,re=te.title,P=e.session.id,A=In(te)??X,ee=A.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:P,tag:te.tag}},console.log(yt.green(`[Session loaded: ${P}]`)))}else if(e.session?.resume||e.session?.autoResume){let te=await Cc(t,y);if(te){let oe=await t.load(te.id);oe&&(k=oe.messages,E=wo(oe.uiHistory),$=oe.lineage,B=oe.artifactLedger,O=oe.extensionState,G=oe.extensionRecords,re=oe.title,P=te.id,A=In(oe)??X,ee=A.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:P,tag:oe.tag}},console.log(yt.green(`[Continuing session: ${te.id}]`)))}}let de=await xc({sessionId:P,gitRoot:ee,runtimeInfo:A,existingMessages:k,existingUiHistory:E,existingLineage:$,existingArtifactLedger:B,existingExtensionState:O,existingExtensionRecords:G});de.title=re,e={...e,context:{...e.context,gitRoot:de.gitRoot??void 0,executionCwd:de.runtimeInfo?.executionCwd??de.gitRoot??process.cwd()}},W?.writer.update({sessionId:de.sessionId});let he={current:null},_e={current:null},fe={current:_},Te=$a(),Pe=await Tc({askUser:o(async(te,oe,Ie)=>{let nt=he.current;return nt?nt(te,oe,Ie):"block"},"askUser"),projectRoot:y??process.cwd(),executionCwd:A.executionCwd??y??process.cwd(),getCurrentProviderName:o(()=>fe.current.provider,"getCurrentProviderName"),getCurrentModel:o(()=>fe.current.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>fe.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:Te,log:o((te,oe)=>{ft({source:"repl:auto-mode",level:te==="warn"?"warn":"info",message:oe})},"log"),onEngineChange:o(te=>{_e.current?.(te)},"onEngineChange"),extraCollectors:[Pa]});try{let te=process.stdout,oe=process.stdin,Ie=!1,{waitUntilExit:nt,cleanup:vt}=qa(pe(JV,{options:e,config:_,context:de,startupRuntimeInfo:X,storage:t,autoModeSettings:wc(Te),compactionInfo:le,rendererMode:r,fullscreenPolicy:i,autoModeBootstrap:Pe,setAutoModeAskUser:o(Ve=>{he.current=Ve},"setAutoModeAskUser"),setAutoModeEngineChange:o(Ve=>{_e.current=Ve},"setAutoModeEngineChange"),setCurrentConfigRef:o(Ve=>{fe.current=Ve},"setCurrentConfigRef"),teamModeHandle:W,onExit:o(()=>{Ie=!0},"onExit")}),{stdout:te,stdin:oe,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:i.enabled?i.promptShell:"main-screen"});await nt(),vt(),W?.shutdown(),oe.isTTY===!0&&typeof oe.setRawMode=="function"&&oe.isRaw&&oe.setRawMode(!1),oe.pause?.(),oe.unref?.(),Ie&&console.log(yt.dim(`
198
- [Exiting KodaX...]`));let Ke=e.hardExitOnClose??process.env.VITEST!=="true";if(Ie&&Ke){let Ve=process.exitCode??0,me=!1,Re=o(()=>{me||(me=!0,process.exit(Ve))},"requestProcessExit");setTimeout(Re,0).unref?.(),te.write("",Re);return}}catch(te){throw te instanceof Error&&te.message.includes("Raw mode")?new ny("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):te}}o(Kh,"runInkInteractiveMode");import{jsx as ud,jsxs as Gc}from"react/jsx-runtime";import{useMemo as ZV,useRef as eG,useState as _x}from"react";var tG=40;function nG(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(nG,"filterSessionPickerItems");function rG(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(rG,"buildSessionPickerPage");function iG(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(iG,"formatTimestamp");function oG({sessions:e,onSelect:t,onSelectionError:n,onCancel:r,pageSize:i=8}){let{exit:s}=Yr(),[a,c]=_x(""),[l,u]=_x(0),[d,p]=_x(!1),h=eG(!1),m=ZV(()=>nG(e,a),[e,a]),g=rG(m,l,i),C=m[g.selectedIndex];return Qa((w,T)=>{if(!h.current){if(T.escape||T.ctrl&&w==="c"){r(),s();return}if(T.return){let v=m[g.selectedIndex];v&&(h.current=!0,p(!0),(async()=>{await new Promise(_=>setTimeout(_,tG));try{await t(v)}catch(_){n(_)}finally{s()}})());return}if(T.upArrow)u(v=>Math.max(0,v-1));else if(T.downArrow)u(v=>Math.min(Math.max(0,m.length-1),v+1));else if(T.pageUp)u(v=>Math.max(0,v-i));else if(T.pageDown)u(v=>Math.min(Math.max(0,m.length-1),v+i));else if(T.home)u(0);else if(T.end)u(Math.max(0,m.length-1));else if(T.tab){let v=m[g.selectedIndex];v&&(c(v.title),u(0))}else T.backspace||T.delete?(c(v=>v.slice(0,-1)),u(0)):w&&!T.ctrl&&!T.meta&&!T.super&&(c(v=>v+w),u(0))}}),Gc(M,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,children:[ud(b,{bold:!0,color:"cyan",children:"Resume a session"}),Gc(b,{children:["Search: ",ud(b,{color:"yellow",children:a||"type to filter"})]}),ud(b,{dimColor:!0,children:d?"Loading selected session...":"\u2191/\u2193 select \xB7 PgUp/PgDn page \xB7 Tab complete \xB7 Enter resume \xB7 Esc cancel"}),Gc(M,{flexDirection:"column",marginTop:1,children:[g.items.length===0?ud(b,{color:"yellow",children:"No matching sessions."}):null,g.items.map((w,T)=>{let _=g.pageStart+T===g.selectedIndex,P=w.title.trim()||"Untitled session",k=w.surface?` \xB7 ${w.surface}`:"";return Gc(b,{color:_?"cyan":void 0,bold:_,children:[_?"\u276F":" "," ",P," \xB7 ",w.msgCount," msgs",k," \xB7 ",iG(w.createdAt)," \xB7 ",w.id.slice(0,8)]},w.id)})]}),Gc(b,{dimColor:!0,children:[m.length," matches \xB7 Page ",g.pageIndex+1,"/",g.pageCount]}),Gc(b,{dimColor:!0,children:["Selected ID: ",C?.id??"none"]})]})}o(oG,"SessionPicker");async function zL(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=qa(ud(oG,{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(zL,"runSessionPicker");import Tn from"chalk";var XL=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],YL=["\x1B[36m","\x1B[35m","\x1B[34m"],fd=null,Kc=!1;function dd(){let e=0,t=0,n=!1,r="Thinking...",i=o(()=>{if(n)return;let c=YL[t%YL.length],l="\x1B[0m",u=XL[e%XL.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 fd=a,a}o(dd,"startWaitingDots");function qL(e=!0){let t=null,n=0,r=!1;return{onSessionStart:o(s=>{console.log(e?Tn.cyan(`[KodaX] Provider: ${s.provider} | Session: ${s.sessionId}`):Tn.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=dd()),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(Tn.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:o(s=>{t||(Kc||(process.stdout.write(`
199
- `),Kc=!0),t=dd()),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())&&(Kc||(process.stdout.write(`
200
- `),Kc=!0,r=!1),t=dd(),t.updateText(`Receiving ${s}... (${l} chars)`))},"onToolInputDelta"),onToolResult:o(s=>{t&&(t.stop(),t=null),console.log(Tn.green(`[Result] ${s.content.slice(0,300)}${s.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:o(s=>{t&&(t.stop(),t=null),console.log(Tn.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}
197
+ `)},"onPopPendingInputs"),prompt:">",placeholder:hL({isLoading:H,canQueueFollowUps:ng,waitingReason:Eg}),focus:!Ye&&!je&&!wt,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:EO,onPasteFallback:BO}),inlineSuggestions:NO,helpSurface:AT?pe(Am,{sections:Ph()}):void 0,taskBar:Rl?pe(Du,{items:na.backgroundTask.items,overflowLabel:na.backgroundTask.overflowLabel,ctaHint:na.backgroundTask.ctaHint,showSpinner:H}):void 0,statusLine:pe(M,{children:pe(ws,{...of,viewModel:aC})}),inlineDialogs:FO}),JO=pe(Mu,{left:pe(ku,{items:lC}),right:pe(Eu,{items:uC}),stashNotice:pe(Nu,{text:cf}),notifications:pe($u,{notifications:af}),composer:pe(VM,{searchActive:wt,selectionActive:!!(di||ct),showAllActive:Kt,searchQuery:gn,searchCurrent:Xt.length>0?Ki+1:0,searchCount:Xt.length,searchDetailText:Rg,pendingLiveUpdates:xl,secondaryText:OO}),taskBar:Rl?pe(Du,{items:na.backgroundTask.items,overflowLabel:na.backgroundTask.overflowLabel,ctaHint:na.backgroundTask.ctaHint,showSpinner:xt}):void 0,statusLine:pe(M,{children:pe(ws,{...of,viewModel:Mg})})}),Gg=q(d=>pe(GM,{banner:d?.bannerVisible?pe(kx,{...Wo}):void 0,items:Cl,isLoading:yn,viewportRows:nn.messageRows,viewportWidth:ee,scrollOffset:gr,windowed:!!d?.rendererWindow,rendererWindow:d?.rendererWindow,transcriptModel:d?.rendererWindow?vl:vC,maxLines:Bt,selectedTextRanges:Tg?Pd?.rowRanges:void 0,onMetricsChange:uf,onVisibleRowsChange:df}),[Wo,Cl,yn,uf,df,gr,vC,ee,Bt,Pd?.rowRanges,nn.messageRows,Tg]),Kg=q(d=>pe(KM,{banner:d?.bannerVisible?pe(kx,{...Wo}):void 0,items:Tl,browse:{hintText:zi.browseHintText},selection:lf,search:tC,isLoading:xt,isThinking:Ee.isThinking,thinkingCharCount:Ee.thinkingCharCount,thinkingContent:Ee.thinkingContent,streamingResponse:Ee.currentResponse,currentTool:Ee.currentTool,activeToolCalls:Ee.activeToolCalls,toolInputCharCount:Ee.toolInputCharCount,toolInputContent:Ee.toolInputContent,iterationHistory:Ee.iterationHistory,currentIteration:Ee.currentIteration,isCompacting:Ee.isCompacting,agentMode:F.agentMode,managedPhase:xt?Q?.phase:void 0,managedHarnessProfile:xt?Q?.harnessProfile:void 0,managedWorkerTitle:xt?Q?.activeWorkerTitle:void 0,managedRound:xt?Q?.currentRound:void 0,managedMaxRounds:xt?Q?.maxRounds:void 0,managedGlobalWorkBudget:xt?Q?.globalWorkBudget:void 0,managedBudgetUsage:xt?Q?.budgetUsage:void 0,managedBudgetApprovalRequired:xt?Q?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ee.lastLiveActivityLabel,liveStatusLines:ea,viewportRows:nn.messageRows,viewportWidth:ee,scrollOffset:gr,windowed:!!d?.windowed,animateSpinners:!!d?.rendererWindow&&ia,rendererWindow:d?.rendererWindow,transcriptModel:d?.rendererWindow?vl:Qd,maxLines:Bt,showDetailedTools:Kt,showAllContent:Kt,selectedItemId:er.selectionEnabled?ct:void 0,selectedTextRanges:ai?.rowRanges,expandedItemKeys:er.selectionEnabled?Pn:void 0,onMetricsChange:uf,onVisibleRowsChange:df}),[Wo,F.agentMode,xt,Pn,c.transcriptSpinnerAnimation,uf,df,gr,HT,Q?.activeWorkerTitle,Q?.budgetApprovalRequired,Q?.budgetUsage,Q?.currentRound,Q?.globalWorkBudget,Q?.harnessProfile,Q?.maxRounds,Q?.phase,vl,Qd,zi.browseHintText,ct,lf,ee,ia,Tl,Bt,Ee.activeToolCalls,Ee.currentIteration,Ee.currentResponse,Ee.currentTool,Ee.isCompacting,Ee.isThinking,Ee.iterationHistory,Ee.lastLiveActivityLabel,Ee.thinkingCharCount,Ee.thinkingContent,Ee.toolInputCharCount,Ee.toolInputContent,ea,ai?.rowRanges,tC,Kt,nn.messageRows]),QO=ue?Kg({bannerVisible:!1,windowed:Ft}):Gg({bannerVisible:!1}),qC=ue?JO:qO,ZO=c.enabled&&Ho,JC=_n(M,{flexDirection:"column",width:ee,flexShrink:0,flexGrow:ZO?1:0,children:[pe(Uw,{currentConfig:F,setCurrentConfig:Ae,isLoading:H,abort:_e,stopThinking:te,clearThinkingContent:oe,setCurrentTool:Ie,setIsLoading:ne,onToggleHelp:kO,setShowHelp:LT,onSetThinking:o(d=>{Ne.current.thinking=d},"onSetThinking"),onSetReasoningMode:o(d=>{Ne.current.reasoningMode=d,Ne.current.thinking=d!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:HO,onOpenTranscriptSearch:$g,canOpenTranscriptSearch:ue&&!Ye&&!je,isInteractiveDialogActive:!!(Ye||je),onSetAgentMode:o(d=>{Ne.current.agentMode=d},"onSetAgentMode"),onSetPermissionMode:o(d=>{Hg(d)},"onSetPermissionMode"),isInputEmpty:rl,onSavePermissionMode:Cv}),mr&&(c.enabled?null:pe(Ja,{items:[1],children:o(()=>pe(kx,{...Wo},"banner"),"children")})),Ho?pe(bm,{width:ee,stickyHeader:zi.stickyHeader,jumpToLatest:zi.jumpToLatest,transcript:!c.enabled||!Ft?ue?Kg({bannerVisible:!1}):Gg({bannerVisible:!1}):void 0,renderTranscriptWindow:c.enabled&&Ft?d=>(()=>{let x=_l(d).contentWindow;return ue?Kg({bannerVisible:!1,windowed:!0,rendererWindow:x}):Gg({bannerVisible:!1,rendererWindow:x})})():void 0,overlay:Bg,scrollTop:gr,scrollHeight:Ml,viewportHeight:nn.messageRows,stickyScroll:!ue&&!Nr&&ag,overscanRows:oG,scrollRef:pO,onWindowChange:DO,onScrollTopChange:hO,onStickyChange:gO,footer:qC}):_n(NV,{children:[_n(M,{flexDirection:"column",flexGrow:1,children:[QO,Bg?pe(M,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:Bg}):null]}),qC]})]});return xg?pe(Xy,{mouseTracking:Vi.usesRendererMouseTracking,children:JC}):JC},"InkREPLInner"),uG=o(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return pe(Lu,{children:pe(Wu,{getPendingInputAgentId:o(()=>Tf(e.context.sessionId,"/root"),"getPendingInputAgentId"),children:pe(hu,{children:pe(Ww,{children:pe(Jp,{cwd:t,gitRoot:n,children:pe(lG,{...e})})})})})})},"InkREPL");function dG(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}o(dG,"isRawModeSupported");async function Kh(e){if(!dG())throw new ny("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 Is,n=ro(),r=io(),i=oo(n,r),{prepareRuntimeConfig:s}=await import("./utils-5J4BHNBV.js"),{loadCompactionConfig:a}=await import("./compaction-config-2TVSYSB4.js"),{resolveProvider:c}=await import("./dist-H4PT2QAV.js"),l=s(),u=Ma({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,configuredProvider:l.provider,defaultProvider:wf}),f=_a({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,explicitModel:e.model,configuredProvider:l.provider,configuredModel:l.model}),p=GV(e,l),h=Aa({explicitEffort:e.effort,environmentEffort:process.env.KODAX_EFFORT,configuredEffort:l.effort}),m=Yf(e,l,process.env.KODAX_EFFORT),g=e.agentMode??l.agentMode??"ama",C=p!=="off",w=ka(l.permissionMode,"accept-edits")??"accept-edits",T=Bf(),v=l.repoIntelligenceTrace===!0,A={provider:u,model:f,effort:h,effortOverride:m,planModeEffort:l.planModeEffort,thinking:C,reasoningMode:p,agentMode:g,permissionMode:w,repoIntelligenceMode:T.mode,repoIntelligenceTrace:v},D=e.session?.id,k=[],E,P,B,$,G,re="",X=await Ur({cwd:process.cwd()}),y=X.workspaceRoot??void 0,_=X,ee=y,W=Rf({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(W){let te=o(()=>{W.shutdown()},"teamModeCleanup");process.on("exit",te),process.on("SIGTERM",te)}try{let{bootstrapConstructionRuntime:te}=await import("./construction-bootstrap-474QPSYB.js"),oe=await te(y??process.cwd());if(oe.loaded>0||oe.failed>0||oe.tampered>0){let Ie=oe.failed>0?`; ${oe.failed} failed`:"",nt=oe.tampered>0?`; ${oe.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";ft({source:"repl:construction",level:oe.failed>0||oe.tampered>0?"warn":"info",message:`Rehydrated ${oe.loaded} active tool(s)${Ie}${nt}.`})}if(oe.markdownLoaded>0||oe.markdownFailures.length>0){ft({source:"repl:agents",level:oe.markdownFailures.length>0?"warn":"info",message:`Loaded ${oe.markdownLoaded} markdown agent(s).`});for(let Ie of oe.markdownFailures)ft({source:"repl:agents",level:"warn",message:`Skipped markdown agent ${Ie.path}: ${Ie.reason}`})}}catch(te){ft({source:"repl:construction",level:"warn",message:`Bootstrap failed: ${te.message}. Self-construction disabled this session.`})}let le;try{let te=await a(y),oe=c(u);le={contextWindow:te.contextWindow??oe.getContextWindow?.()??2e5,triggerPercent:te.triggerPercent,triggerTokens:te.triggerTokens,enabled:te.enabled,reservedResponseTokens:oe.getEffectiveMaxOutputTokens?.(f),userOverrideContextWindow:te.contextWindow}}catch{}if(e.session?.id&&!e.session.resume){let te=await t.load(e.session.id);te&&(k=te.messages,E=wo(te.uiHistory),P=te.lineage,B=te.artifactLedger,$=te.extensionState,G=te.extensionRecords,re=te.title,D=e.session.id,_=In(te)??X,ee=_.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:D,tag:te.tag}},console.log(yt.green(`[Session loaded: ${D}]`)))}else if(e.session?.resume||e.session?.autoResume){let te=await Cc(t,y);if(te){let oe=await t.load(te.id);oe&&(k=oe.messages,E=wo(oe.uiHistory),P=oe.lineage,B=oe.artifactLedger,$=oe.extensionState,G=oe.extensionRecords,re=oe.title,D=te.id,_=In(oe)??X,ee=_.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:D,tag:oe.tag}},console.log(yt.green(`[Continuing session: ${te.id}]`)))}}let de=await xc({sessionId:D,gitRoot:ee,runtimeInfo:_,existingMessages:k,existingUiHistory:E,existingLineage:P,existingArtifactLedger:B,existingExtensionState:$,existingExtensionRecords:G});de.title=re,e={...e,context:{...e.context,gitRoot:de.gitRoot??void 0,executionCwd:de.runtimeInfo?.executionCwd??de.gitRoot??process.cwd()}},W?.writer.update({sessionId:de.sessionId});let he={current:null},_e={current:null},fe={current:A},Te=Oa(),Pe=await Tc({askUser:o(async(te,oe,Ie)=>{let nt=he.current;return nt?nt(te,oe,Ie):"block"},"askUser"),projectRoot:y??process.cwd(),executionCwd:_.executionCwd??y??process.cwd(),getCurrentProviderName:o(()=>fe.current.provider,"getCurrentProviderName"),getCurrentModel:o(()=>fe.current.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>fe.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:Te,log:o((te,oe)=>{ft({source:"repl:auto-mode",level:te==="warn"?"warn":"info",message:oe})},"log"),onEngineChange:o(te=>{_e.current?.(te)},"onEngineChange"),extraCollectors:[Pa]});try{let te=process.stdout,oe=process.stdin,Ie=!1,{waitUntilExit:nt,cleanup:vt}=qa(pe(uG,{options:e,config:A,context:de,startupRuntimeInfo:X,storage:t,autoModeSettings:wc(Te),compactionInfo:le,rendererMode:r,fullscreenPolicy:i,autoModeBootstrap:Pe,setAutoModeAskUser:o(Ve=>{he.current=Ve},"setAutoModeAskUser"),setAutoModeEngineChange:o(Ve=>{_e.current=Ve},"setAutoModeEngineChange"),setCurrentConfigRef:o(Ve=>{fe.current=Ve},"setCurrentConfigRef"),teamModeHandle:W,onExit:o(()=>{Ie=!0},"onExit")}),{stdout:te,stdin:oe,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:i.enabled?i.promptShell:"main-screen"});await nt(),vt(),W?.shutdown(),oe.isTTY===!0&&typeof oe.setRawMode=="function"&&oe.isRaw&&oe.setRawMode(!1),oe.pause?.(),oe.unref?.(),Ie&&console.log(yt.dim(`
198
+ [Exiting KodaX...]`));let Ke=e.hardExitOnClose??process.env.VITEST!=="true";if(Ie&&Ke){let Ve=process.exitCode??0,me=!1,Re=o(()=>{me||(me=!0,process.exit(Ve))},"requestProcessExit");setTimeout(Re,0).unref?.(),te.write("",Re);return}}catch(te){throw te instanceof Error&&te.message.includes("Raw mode")?new ny("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):te}}o(Kh,"runInkInteractiveMode");import{jsx as dd,jsxs as Gc}from"react/jsx-runtime";import{useMemo as fG,useRef as pG,useState as Ax}from"react";var mG=40;function hG(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(hG,"filterSessionPickerItems");function gG(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(gG,"buildSessionPickerPage");function yG(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(yG,"formatTimestamp");function SG({sessions:e,onSelect:t,onSelectionError:n,onCancel:r,pageSize:i=8}){let{exit:s}=Yr(),[a,c]=Ax(""),[l,u]=Ax(0),[f,p]=Ax(!1),h=pG(!1),m=fG(()=>hG(e,a),[e,a]),g=gG(m,l,i),C=m[g.selectedIndex];return Qa((w,T)=>{if(!h.current){if(T.escape||T.ctrl&&w==="c"){r(),s();return}if(T.return){let v=m[g.selectedIndex];v&&(h.current=!0,p(!0),(async()=>{await new Promise(A=>setTimeout(A,mG));try{await t(v)}catch(A){n(A)}finally{s()}})());return}if(T.upArrow)u(v=>Math.max(0,v-1));else if(T.downArrow)u(v=>Math.min(Math.max(0,m.length-1),v+1));else if(T.pageUp)u(v=>Math.max(0,v-i));else if(T.pageDown)u(v=>Math.min(Math.max(0,m.length-1),v+i));else if(T.home)u(0);else if(T.end)u(Math.max(0,m.length-1));else if(T.tab){let v=m[g.selectedIndex];v&&(c(v.title),u(0))}else T.backspace||T.delete?(c(v=>v.slice(0,-1)),u(0)):w&&!T.ctrl&&!T.meta&&!T.super&&(c(v=>v+w),u(0))}}),Gc(M,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,children:[dd(b,{bold:!0,color:"cyan",children:"Resume a session"}),Gc(b,{children:["Search: ",dd(b,{color:"yellow",children:a||"type to filter"})]}),dd(b,{dimColor:!0,children:f?"Loading selected session...":"\u2191/\u2193 select \xB7 PgUp/PgDn page \xB7 Tab complete \xB7 Enter resume \xB7 Esc cancel"}),Gc(M,{flexDirection:"column",marginTop:1,children:[g.items.length===0?dd(b,{color:"yellow",children:"No matching sessions."}):null,g.items.map((w,T)=>{let A=g.pageStart+T===g.selectedIndex,D=w.title.trim()||"Untitled session",k=w.surface?` \xB7 ${w.surface}`:"";return Gc(b,{color:A?"cyan":void 0,bold:A,children:[A?"\u276F":" "," ",D," \xB7 ",w.msgCount," msgs",k," \xB7 ",yG(w.createdAt)," \xB7 ",w.id.slice(0,8)]},w.id)})]}),Gc(b,{dimColor:!0,children:[m.length," matches \xB7 Page ",g.pageIndex+1,"/",g.pageCount]}),Gc(b,{dimColor:!0,children:["Selected ID: ",C?.id??"none"]})]})}o(SG,"SessionPicker");async function QL(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=qa(dd(SG,{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(QL,"runSessionPicker");import Tn from"chalk";var ZL=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],eP=["\x1B[36m","\x1B[35m","\x1B[34m"],pd=null,Kc=!1;function fd(){let e=0,t=0,n=!1,r="Thinking...",i=o(()=>{if(n)return;let c=eP[t%eP.length],l="\x1B[0m",u=ZL[e%ZL.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 pd=a,a}o(fd,"startWaitingDots");function tP(e=!0){let t=null,n=0,r=!1;return{onSessionStart:o(s=>{console.log(e?Tn.cyan(`[KodaX] Provider: ${s.provider} | Session: ${s.sessionId}`):Tn.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=fd()),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(Tn.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:o(s=>{t||(Kc||(process.stdout.write(`
199
+ `),Kc=!0),t=fd()),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())&&(Kc||(process.stdout.write(`
200
+ `),Kc=!0,r=!1),t=fd(),t.updateText(`Receiving ${s}... (${l} chars)`))},"onToolInputDelta"),onToolResult:o(s=>{t&&(t.stop(),t=null),console.log(Tn.green(`[Result] ${s.content.slice(0,300)}${s.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:o(s=>{t&&(t.stop(),t=null),console.log(Tn.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}
201
201
  Suggested fix: ${s.suggestedFix}`:s.content;process.stdout.write(Tn.yellow(`
202
202
  ${a}
203
203
  `)+Tn.dim(`${c}
204
- `))},"onSidecarMessage"),onStreamEnd:o(()=>{fd&&!fd.isStopped()&&fd.stop(),fd=null,Kc=!1,r&&(console.log(),r=!1),(!t||t.isStopped())&&(t=dd(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:o((s,a)=>{t&&!t.isStopped()&&t.stop(),Kc=!1,r=!1,console.log(Tn.magenta(`
205
- [Assistant]`)),t=dd()},"onIterationStart"),onCompactStart:o(()=>{console.log(Tn.dim(`
204
+ `))},"onSidecarMessage"),onStreamEnd:o(()=>{pd&&!pd.isStopped()&&pd.stop(),pd=null,Kc=!1,r&&(console.log(),r=!1),(!t||t.isStopped())&&(t=fd(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:o((s,a)=>{t&&!t.isStopped()&&t.stop(),Kc=!1,r=!1,console.log(Tn.magenta(`
205
+ [Assistant]`)),t=fd()},"onIterationStart"),onCompactStart:o(()=>{console.log(Tn.dim(`
206
206
  [KodaX] Compacting context...`))},"onCompactStart"),onCompact:o(s=>{console.log(Tn.dim(`[KodaX] Compaction finished (${s} tokens).`))},"onCompact"),onCompactEnd:o(()=>{},"onCompactEnd"),onRetry:o((s,a,c)=>{console.log(Tn.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(Tn.yellow(`[KodaX] ${a} (${s.errorClass}, ${s.stage})`))},"onProviderRecovery"),onComplete:o(()=>{t&&(t.stop(),t=null),console.log(Tn.green(`
207
207
  [KodaX] Done!`))},"onComplete"),onError:o(s=>{t&&(t.stop(),t=null),console.log(Tn.red(`
208
208
  [Error] ${s.message}`))},"onError"),onScoutSuspiciousCompletion:o(s=>{console.log(Tn.yellow(`
209
- [Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:o(async(s,a)=>!0,"beforeToolExecute")}}o(qL,"createCliEvents");function Jt(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(Jt,"activityMetaFields");function Ns(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(Ns,"liveMetaFields");function at(e,t){e.write(`${JSON.stringify(t)}
210
- `)}o(at,"writeJsonLine");function sG(e,t){return{type:"error",name:e.name,message:e.message,stack:e.stack,...Jt(t)}}o(sG,"serializeError");function JL(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:o(r=>{at(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId,...Ns(r)})},"onSessionStart"),onTurnStarted:o(r=>{at(t,{type:"turn.started",...r})},"onTurnStarted"),onTurnCompleted:o(r=>{at(t,{type:"turn.completed",...r})},"onTurnCompleted"),onTurnFailed:o(r=>{at(t,{type:"turn.failed",...r})},"onTurnFailed"),onIterationStart:o((r,i,s)=>{at(t,{type:"iteration.start",iter:r,maxIter:i,...Jt(s)})},"onIterationStart"),onIterationEnd:o(r=>{at(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}:{},...Ns(r)})},"onIterationEnd"),onTextDelta:o((r,i)=>{at(t,{type:"text.delta",text:r,...Jt(i)})},"onTextDelta"),onThinkingDelta:o((r,i)=>{at(t,{type:"thinking.delta",text:r,...Jt(i)})},"onThinkingDelta"),onThinkingEnd:o((r,i)=>{at(t,{type:"thinking.end",thinking:r,...Jt(i)})},"onThinkingEnd"),onToolUseStart:o((r,i)=>{at(t,{type:"tool.start",id:r.id,name:r.name,input:r.input,...Jt(i)})},"onToolUseStart"),onToolInputDelta:o((r,i,s)=>{at(t,{type:"tool.input.delta",toolName:r,partialJson:i,toolId:s?.toolId,...Jt(s)})},"onToolInputDelta"),onToolResult:o((r,i)=>{at(t,{type:"tool.result",id:r.id,name:r.name,content:r.content,...Jt(i)})},"onToolResult"),onStreamEnd:o(r=>{at(t,{type:"stream.end",...Jt(r)})},"onStreamEnd"),onCompactStart:o(r=>{at(t,{type:"compact.start",...Jt(r)})},"onCompactStart"),onCompact:o((r,i)=>{at(t,{type:"compact.finish",estimatedTokens:r,...Jt(i)})},"onCompact"),onCompactStats:o(r=>{at(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter,...Ns(r)})},"onCompactStats"),onCompactEnd:o(r=>{at(t,{type:"compact.end",...Jt(r)})},"onCompactEnd"),onRetry:o((r,i,s,a)=>{at(t,{type:"retry",reason:r,attempt:i,maxAttempts:s,...Jt(a)})},"onRetry"),onProviderRecovery:o((r,i)=>{at(t,{type:"provider.recovery",stage:r.stage,reasonCode:r.errorClass,attempt:r.attempt,maxAttempts:r.maxAttempts,delayMs:r.delayMs,nextAt:Date.now()+r.delayMs,recoveryAction:r.recoveryAction,fallbackUsed:r.fallbackUsed,...Jt(i)})},"onProviderRecovery"),onProviderRateLimit:o((r,i,s,a)=>{at(t,{type:"provider.rate_limit",attempt:r,maxRetries:i,delayMs:s,...Jt(a)})},"onProviderRateLimit"),onRepoIntelligenceTrace:o(r=>{at(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace,...Ns(r)})},"onRepoIntelligenceTrace"),onSidecarMessage:o(r=>{at(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}:{},...Ns(r)})},"onSidecarMessage"),onToolProgress:o((r,i)=>{at(t,{type:"tool.progress",id:r.id,message:r.message,...Jt(i)})},"onToolProgress"),onToolSandboxObservation:o((r,i)=>{at(t,{type:"tool.sandbox",id:r.id,observation:r.observation,...Jt(i)})},"onToolSandboxObservation"),onManagedTaskStatus:o(r=>{at(t,{type:"managed_task.status",agentMode:r.agentMode,harnessProfile:r.harnessProfile,phase:r.phase,activeWorkerId:r.activeWorkerId,activeWorkerTitle:r.activeWorkerTitle,childFanoutClass:r.childFanoutClass,childFanoutCount:r.childFanoutCount,currentRound:r.currentRound,maxRounds:r.maxRounds,note:r.note,detailNote:r.detailNote,globalWorkBudget:r.globalWorkBudget,budgetUsage:r.budgetUsage,budgetApprovalRequired:r.budgetApprovalRequired,...Ns(r)})},"onManagedTaskStatus"),onScoutSuspiciousCompletion:o(r=>{at(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview,...Ns(r)})},"onScoutSuspiciousCompletion"),onComplete:o(r=>{at(t,{type:"complete",...Jt(r)})},"onComplete"),onError:o((r,i)=>{at(n,sG(r,i))},"onError")}}o(JL,"createJsonEvents");import{jsx as Rt,jsxs as An}from"react/jsx-runtime";import dG,{useMemo as pd}from"react";var Ax=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,QL=/^---\s+(.+)$/;function ZL(e){if(!e)return[];let t=e.split(`
211
- `),n=[],r=[],i=[],s=!1,a=null,c=null,l=0,u=0,d=o(()=>{if(r.length===0)return;let h=r.join(`
209
+ [Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:o(async(s,a)=>!0,"beforeToolExecute")}}o(tP,"createCliEvents");function Jt(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(Jt,"activityMetaFields");function $s(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($s,"liveMetaFields");function at(e,t){e.write(`${JSON.stringify(t)}
210
+ `)}o(at,"writeJsonLine");function wG(e,t){return{type:"error",name:e.name,message:e.message,stack:e.stack,...Jt(t)}}o(wG,"serializeError");function nP(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:o(r=>{at(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId,...$s(r)})},"onSessionStart"),onTurnStarted:o(r=>{at(t,{type:"turn.started",...r})},"onTurnStarted"),onTurnCompleted:o(r=>{at(t,{type:"turn.completed",...r})},"onTurnCompleted"),onTurnFailed:o(r=>{at(t,{type:"turn.failed",...r})},"onTurnFailed"),onIterationStart:o((r,i,s)=>{at(t,{type:"iteration.start",iter:r,maxIter:i,...Jt(s)})},"onIterationStart"),onIterationEnd:o(r=>{at(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}:{},...$s(r)})},"onIterationEnd"),onTextDelta:o((r,i)=>{at(t,{type:"text.delta",text:r,...Jt(i)})},"onTextDelta"),onThinkingDelta:o((r,i)=>{at(t,{type:"thinking.delta",text:r,...Jt(i)})},"onThinkingDelta"),onThinkingEnd:o((r,i)=>{at(t,{type:"thinking.end",thinking:r,...Jt(i)})},"onThinkingEnd"),onToolUseStart:o((r,i)=>{at(t,{type:"tool.start",id:r.id,name:r.name,input:r.input,...Jt(i)})},"onToolUseStart"),onToolInputDelta:o((r,i,s)=>{at(t,{type:"tool.input.delta",toolName:r,partialJson:i,toolId:s?.toolId,...Jt(s)})},"onToolInputDelta"),onToolResult:o((r,i)=>{at(t,{type:"tool.result",id:r.id,name:r.name,content:r.content,...Jt(i)})},"onToolResult"),onStreamEnd:o(r=>{at(t,{type:"stream.end",...Jt(r)})},"onStreamEnd"),onCompactStart:o(r=>{at(t,{type:"compact.start",...Jt(r)})},"onCompactStart"),onCompact:o((r,i)=>{at(t,{type:"compact.finish",estimatedTokens:r,...Jt(i)})},"onCompact"),onCompactStats:o(r=>{at(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter,...$s(r)})},"onCompactStats"),onCompactEnd:o(r=>{at(t,{type:"compact.end",...Jt(r)})},"onCompactEnd"),onRetry:o((r,i,s,a)=>{at(t,{type:"retry",reason:r,attempt:i,maxAttempts:s,...Jt(a)})},"onRetry"),onProviderRecovery:o((r,i)=>{at(t,{type:"provider.recovery",stage:r.stage,reasonCode:r.errorClass,attempt:r.attempt,maxAttempts:r.maxAttempts,delayMs:r.delayMs,nextAt:Date.now()+r.delayMs,recoveryAction:r.recoveryAction,fallbackUsed:r.fallbackUsed,...Jt(i)})},"onProviderRecovery"),onProviderRateLimit:o((r,i,s,a)=>{at(t,{type:"provider.rate_limit",attempt:r,maxRetries:i,delayMs:s,...Jt(a)})},"onProviderRateLimit"),onRepoIntelligenceTrace:o(r=>{at(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace,...$s(r)})},"onRepoIntelligenceTrace"),onSidecarMessage:o(r=>{at(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}:{},...$s(r)})},"onSidecarMessage"),onToolProgress:o((r,i)=>{at(t,{type:"tool.progress",id:r.id,message:r.message,...Jt(i)})},"onToolProgress"),onToolSandboxObservation:o((r,i)=>{at(t,{type:"tool.sandbox",id:r.id,observation:r.observation,...Jt(i)})},"onToolSandboxObservation"),onManagedTaskStatus:o(r=>{at(t,{type:"managed_task.status",agentMode:r.agentMode,harnessProfile:r.harnessProfile,phase:r.phase,activeWorkerId:r.activeWorkerId,activeWorkerTitle:r.activeWorkerTitle,childFanoutClass:r.childFanoutClass,childFanoutCount:r.childFanoutCount,currentRound:r.currentRound,maxRounds:r.maxRounds,note:r.note,detailNote:r.detailNote,globalWorkBudget:r.globalWorkBudget,budgetUsage:r.budgetUsage,budgetApprovalRequired:r.budgetApprovalRequired,...$s(r)})},"onManagedTaskStatus"),onScoutSuspiciousCompletion:o(r=>{at(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview,...$s(r)})},"onScoutSuspiciousCompletion"),onComplete:o(r=>{at(t,{type:"complete",...Jt(r)})},"onComplete"),onError:o((r,i)=>{at(n,wG(r,i))},"onError")}}o(nP,"createJsonEvents");import{jsx as Rt,jsxs as An}from"react/jsx-runtime";import vG,{useMemo as md}from"react";var Lx=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,rP=/^---\s+(.+)$/;function iP(e){if(!e)return[];let t=e.split(`
211
+ `),n=[],r=[],i=[],s=!1,a=null,c=null,l=0,u=0,f=o(()=>{if(r.length===0)return;let h=r.join(`
212
212
  `);h.length>0&&n.push({kind:"text",text:h}),r=[]},"flushText"),p=o(()=>{i.length!==0&&(n.push({kind:"diff",text:i.join(`
213
- `),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 w=QL.exec(m);if(w){let T=Math.min(h+3,t.length-1),v=!1;for(let _=h+1;_<=T;_++)if(t[_]?.startsWith("+++ ")||Ax.test(t[_]??"")){v=!0;break}if(v){d(),s=!0,a=w[1]??null,c=a,i.push(m);continue}}if(Ax.test(m)){d(),s=!0,i.push(m);continue}r.push(m);continue}let g=QL.exec(m);if(g){let w=Math.min(h+3,t.length-1),T=!1;for(let v=h+1;v<=w;v++)if(t[v]?.startsWith("+++ ")||Ax.test(t[v]??"")){T=!0;break}if(T){p(),c=g[1]??null,i.push(m);continue}}let C=m[0];if(C==="+"||C==="-"||C===" "||C==="@"||m===""){C==="+"&&!m.startsWith("+++ ")&&l++,C==="-"&&!m.startsWith("--- ")&&u++,i.push(m);continue}p(),s=!1,a=null,r.push(m)}return p(),d(),n}o(ZL,"parseUnifiedDiff");function eP(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}o(eP,"containsUnifiedDiff");import{jsxs as zc,jsx as aG}from"react/jsx-runtime";import cG from"react";function lG(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(lG,"classifyLine");function uG(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(uG,"colorFor");var Lx=cG.memo(({text:e,addedLines:t,removedLines:n,filePath:r,theme:i,maxLines:s=16,extremeThreshold:a=200})=>{let c=i??ae("dark"),l=e.split(`
214
- `),u=l.map(lG),d=`(${t>0?`+${t}`:"\xB10"} ${n>0?`-${n}`:""})`.trim();if(l.length>a)return zc(M,{flexDirection:"column",marginLeft:4,children:[r&&zc(b,{dimColor:!0,children:[r," ",d]}),zc(b,{dimColor:!0,children:["[diff too large to render inline \u2014 ",l.length," lines, ",t,"+ / ",n,"-]"]})]});let p,h=0;if(l.length>s){let m=Math.floor(s/2),g=u.slice(0,m),C=u.slice(-m);h=l.length-g.length-C.length,p=[...g,{text:"",kind:"context"},...C]}else p=u;return zc(M,{flexDirection:"column",marginLeft:4,children:[r&&zc(b,{dimColor:!0,children:[r," ",d]}),p.map((m,g)=>{if(g===Math.floor(s/2)&&h>0&&m.kind==="context"&&m.text==="")return zc(b,{dimColor:!0,children:["... ",h," lines collapsed ..."]},`collapse-${g}`);let w=uG(m.kind,c);return aG(b,{color:w,children:m.text||" "},g)})]})});Lx.displayName="DiffHunk";function tP(e){switch(e){case z.Scheduled:return"\u25CB";case z.Validating:return"\u25D0";case z.AwaitingApproval:return"\u23F8";case z.Executing:return"\u25CF";case z.Success:return"\u2713";case z.Error:return"\u2717";case z.Cancelled:return"\u2298";default:return"?"}}o(tP,"getStatusIcon");function nP(e,t){switch(e){case z.Scheduled:case z.Validating:return t.colors.dim;case z.AwaitingApproval:return t.colors.accent;case z.Executing:return t.colors.primary;case z.Success:return t.colors.success??t.colors.primary;case z.Error:return t.colors.error;case z.Cancelled:return t.colors.dim;default:return t.colors.text}}o(nP,"getStatusColor");function fG(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}o(fG,"formatDuration");function pG(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}o(pG,"formatInputSummary");var rP=o(({status:e,theme:t})=>{let n=t??pd(()=>ae("dark"),[]),r=tP(e),i=nP(e,n);return Rt(b,{color:i,children:r})},"ToolStatusBadge"),Px=o(({progress:e,width:t=20,theme:n})=>{let r=n??pd(()=>ae("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 An(M,{children:[Rt(b,{color:r.colors.primary,children:c}),Rt(b,{dimColor:!0,children:l}),An(b,{children:[" ",i,"%"]})]})},"ToolProgressBar"),$x=o(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??pd(()=>ae("dark"),[]),i=tP(e.status),s=nP(e.status,r),a=pG(e.input),c=fG(e.startTime,e.endTime);return t?An(M,{children:[An(b,{color:s,children:[i," "]}),Rt(b,{color:r.colors.text,children:e.name})]}):An(M,{flexDirection:"column",marginLeft:2,children:[An(M,{children:[An(b,{color:s,children:[i," "]}),Rt(b,{color:r.colors.text,bold:!0,children:e.name}),a&&An(b,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===z.Executing&&Rt(M,{marginLeft:2,children:Rt(Px,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===z.Executing&&Rt(M,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>Rt(b,{dimColor:!0,children:l},u))}),e.error&&Rt(M,{marginLeft:2,children:Rt(b,{color:r.colors.error,children:e.error})}),e.status===z.Success&&typeof e.output=="string"&&e.output.length>0&&Rt(iP,{output:e.output,theme:r}),c&&e.status!==z.Executing&&Rt(M,{marginLeft:2,children:An(b,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),iP=dG.memo(({output:e,theme:t})=>{if(!eP(e))return Rt(M,{marginLeft:2,children:Rt(b,{dimColor:!0,children:e})});let n=ZL(e);return Rt(M,{flexDirection:"column",marginLeft:2,children:n.map((r,i)=>r.kind==="text"?Rt(b,{dimColor:!0,children:r.text},i):Rt(Lx,{text:r.text,addedLines:r.addedLines,removedLines:r.removedLines,filePath:r.filePath,theme:t},i))})});iP.displayName="ToolOutputBlock";var oP=o(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let i=r??pd(()=>ae("dark"),[]);if(e.length===0)return null;let s=pd(()=>{let c={[z.Scheduled]:0,[z.Validating]:0,[z.AwaitingApproval]:0,[z.Executing]:0,[z.Success]:0,[z.Error]:0,[z.Cancelled]:0};for(let l of e)c[l.status]++;return c},[e]),a=n??"Tools";if(t){let c=s[z.Success],l=s[z.Error],u=s[z.Executing]+s[z.Scheduled]+s[z.Validating];return Rt(M,{flexDirection:"column",marginBottom:1,children:An(M,{children:[Rt(b,{color:i.colors.accent,bold:!0,children:a}),An(b,{dimColor:!0,children:[" ","(",e.length," tools",c>0&&`, ${c} succeeded`,l>0&&`, ${l} failed`,u>0&&`, ${u} running`,")"]})]})})}return An(M,{flexDirection:"column",marginBottom:1,children:[An(M,{children:[Rt(b,{color:i.colors.accent,bold:!0,children:a}),An(b,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>Rt($x,{tool:c,theme:i},c.id))]})},"ToolGroup");import{jsxs as sP,jsx as mG}from"react/jsx-runtime";var aP=o(({pendingInputs:e})=>{let t=Sk(e);if(!t)return null;let n=ae("dark");return sP(M,{children:[sP(b,{color:n.colors.hint,children:["\u23F3"," "]}),mG(b,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as cP from"child_process";var md;function hG(){if(process.platform!=="win32")return null;if(md!==void 0)return md;try{md=cP.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{md=null}return md}o(hG,"detectWindowsCodePage");function hd(){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(hd,"supportsTrueColor");function Nx(){if(hd())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}o(Nx,"supports256Colors");function ri(){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:hG()==="65001":!0}o(ri,"supportsUnicode");function Ox(){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(Ox,"supportsEmoji");function Dx(){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(Dx,"getTerminalWidth");function Bx(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}o(Bx,"isScreenReader");function gG(){return process.stdout?.isTTY??!1}o(gG,"isTTY");function lP(){return{trueColor:hd(),colors256:Nx(),unicode:ri(),emoji:Ox(),tty:gG(),columns:Dx(),screenReader:Bx()}}o(lP,"detectTerminalCapabilities");var Xc=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 uP(e){let t=new Xc;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}o(uP,"withCapture");function dP(e){let t=new Xc;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}o(dP,"withCaptureSync");import*as TP from"readline";import ce from"chalk";import Ln from"chalk";var yG=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],SG=[{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 wG(e,t=!0){return e.map(n=>{let r=Ln.dim(`[${n.key}]`);return t?`${r} ${Ln.cyan(n.label)} ${Ln.dim(`- ${n.description}`)}`:`${r} ${n.label}`}).join(" ")}o(wG,"formatOptions");function Fx(){return process.stdout.columns??80}o(Fx,"getTerminalWidth");function xG(){return ri()}o(xG,"supportsUnicode");function TG(){let e=xG();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(TG,"getSymbols");async function CG(e,t){let{message:n,default:r,options:i,showDescription:s=!0,signal:a}=t,c=i??yG,l=wG(c,s);console.log(),console.log(Ln.cyan(`? ${n}`));let u=Fx();if(l.length>u-4)for(let d of c){let p=Ln.dim(` [${d.key}]`);console.log(`${p} ${Ln.cyan(d.label)}`),s&&console.log(Ln.dim(` ${d.description}`))}else console.log(Ln.dim(` ${l}`));return a?.aborted?"no":new Promise(d=>{let p=r?` (${r})`:"",h=!1,m=o(w=>{h||(h=!0,a?.removeEventListener("abort",g),d(w))},"finish"),g=o(()=>m("no"),"onAbort"),C=o(w=>{let T=w.trim().toLowerCase()||r||"",v=c.find(_=>_.key===T||_.value===T||_.label.toLowerCase()===T);m(v?v.value:T===""?"no":T)},"onAnswer");a?.addEventListener("abort",g,{once:!0}),a?e.question(Ln.dim(` Choose${p}: `),{signal:a},C):e.question(Ln.dim(` Choose${p}: `),C)})}o(CG,"confirmEnhanced");async function Yc(e,t,n,r){let{isOutsideProject:i=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits",runtimeGrantSuggestions:c,signal:l}=r??{},u=TG(),d,p,h={...n,...i?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},m=bh(t,h),g=m.details.map(w=>` ${Ln.dim(w)}`);i||s?(d=`${Ln.yellow(u.warning)} Safety Warning`,g.length>0&&(d+=`
213
+ `),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 w=rP.exec(m);if(w){let T=Math.min(h+3,t.length-1),v=!1;for(let A=h+1;A<=T;A++)if(t[A]?.startsWith("+++ ")||Lx.test(t[A]??"")){v=!0;break}if(v){f(),s=!0,a=w[1]??null,c=a,i.push(m);continue}}if(Lx.test(m)){f(),s=!0,i.push(m);continue}r.push(m);continue}let g=rP.exec(m);if(g){let w=Math.min(h+3,t.length-1),T=!1;for(let v=h+1;v<=w;v++)if(t[v]?.startsWith("+++ ")||Lx.test(t[v]??"")){T=!0;break}if(T){p(),c=g[1]??null,i.push(m);continue}}let C=m[0];if(C==="+"||C==="-"||C===" "||C==="@"||m===""){C==="+"&&!m.startsWith("+++ ")&&l++,C==="-"&&!m.startsWith("--- ")&&u++,i.push(m);continue}p(),s=!1,a=null,r.push(m)}return p(),f(),n}o(iP,"parseUnifiedDiff");function oP(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}o(oP,"containsUnifiedDiff");import{jsxs as zc,jsx as xG}from"react/jsx-runtime";import TG from"react";function CG(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(CG,"classifyLine");function IG(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(IG,"colorFor");var Px=TG.memo(({text:e,addedLines:t,removedLines:n,filePath:r,theme:i,maxLines:s=16,extremeThreshold:a=200})=>{let c=i??ae("dark"),l=e.split(`
214
+ `),u=l.map(CG),f=`(${t>0?`+${t}`:"\xB10"} ${n>0?`-${n}`:""})`.trim();if(l.length>a)return zc(M,{flexDirection:"column",marginLeft:4,children:[r&&zc(b,{dimColor:!0,children:[r," ",f]}),zc(b,{dimColor:!0,children:["[diff too large to render inline \u2014 ",l.length," lines, ",t,"+ / ",n,"-]"]})]});let p,h=0;if(l.length>s){let m=Math.floor(s/2),g=u.slice(0,m),C=u.slice(-m);h=l.length-g.length-C.length,p=[...g,{text:"",kind:"context"},...C]}else p=u;return zc(M,{flexDirection:"column",marginLeft:4,children:[r&&zc(b,{dimColor:!0,children:[r," ",f]}),p.map((m,g)=>{if(g===Math.floor(s/2)&&h>0&&m.kind==="context"&&m.text==="")return zc(b,{dimColor:!0,children:["... ",h," lines collapsed ..."]},`collapse-${g}`);let w=IG(m.kind,c);return xG(b,{color:w,children:m.text||" "},g)})]})});Px.displayName="DiffHunk";function sP(e){switch(e){case z.Scheduled:return"\u25CB";case z.Validating:return"\u25D0";case z.AwaitingApproval:return"\u23F8";case z.Executing:return"\u25CF";case z.Success:return"\u2713";case z.Error:return"\u2717";case z.Cancelled:return"\u2298";default:return"?"}}o(sP,"getStatusIcon");function aP(e,t){switch(e){case z.Scheduled:case z.Validating:return t.colors.dim;case z.AwaitingApproval:return t.colors.accent;case z.Executing:return t.colors.primary;case z.Success:return t.colors.success??t.colors.primary;case z.Error:return t.colors.error;case z.Cancelled:return t.colors.dim;default:return t.colors.text}}o(aP,"getStatusColor");function bG(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}o(bG,"formatDuration");function RG(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}o(RG,"formatInputSummary");var cP=o(({status:e,theme:t})=>{let n=t??md(()=>ae("dark"),[]),r=sP(e),i=aP(e,n);return Rt(b,{color:i,children:r})},"ToolStatusBadge"),Ox=o(({progress:e,width:t=20,theme:n})=>{let r=n??md(()=>ae("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 An(M,{children:[Rt(b,{color:r.colors.primary,children:c}),Rt(b,{dimColor:!0,children:l}),An(b,{children:[" ",i,"%"]})]})},"ToolProgressBar"),$x=o(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??md(()=>ae("dark"),[]),i=sP(e.status),s=aP(e.status,r),a=RG(e.input),c=bG(e.startTime,e.endTime);return t?An(M,{children:[An(b,{color:s,children:[i," "]}),Rt(b,{color:r.colors.text,children:e.name})]}):An(M,{flexDirection:"column",marginLeft:2,children:[An(M,{children:[An(b,{color:s,children:[i," "]}),Rt(b,{color:r.colors.text,bold:!0,children:e.name}),a&&An(b,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===z.Executing&&Rt(M,{marginLeft:2,children:Rt(Ox,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===z.Executing&&Rt(M,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>Rt(b,{dimColor:!0,children:l},u))}),e.error&&Rt(M,{marginLeft:2,children:Rt(b,{color:r.colors.error,children:e.error})}),e.status===z.Success&&typeof e.output=="string"&&e.output.length>0&&Rt(lP,{output:e.output,theme:r}),c&&e.status!==z.Executing&&Rt(M,{marginLeft:2,children:An(b,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),lP=vG.memo(({output:e,theme:t})=>{if(!oP(e))return Rt(M,{marginLeft:2,children:Rt(b,{dimColor:!0,children:e})});let n=iP(e);return Rt(M,{flexDirection:"column",marginLeft:2,children:n.map((r,i)=>r.kind==="text"?Rt(b,{dimColor:!0,children:r.text},i):Rt(Px,{text:r.text,addedLines:r.addedLines,removedLines:r.removedLines,filePath:r.filePath,theme:t},i))})});lP.displayName="ToolOutputBlock";var uP=o(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let i=r??md(()=>ae("dark"),[]);if(e.length===0)return null;let s=md(()=>{let c={[z.Scheduled]:0,[z.Validating]:0,[z.AwaitingApproval]:0,[z.Executing]:0,[z.Success]:0,[z.Error]:0,[z.Cancelled]:0};for(let l of e)c[l.status]++;return c},[e]),a=n??"Tools";if(t){let c=s[z.Success],l=s[z.Error],u=s[z.Executing]+s[z.Scheduled]+s[z.Validating];return Rt(M,{flexDirection:"column",marginBottom:1,children:An(M,{children:[Rt(b,{color:i.colors.accent,bold:!0,children:a}),An(b,{dimColor:!0,children:[" ","(",e.length," tools",c>0&&`, ${c} succeeded`,l>0&&`, ${l} failed`,u>0&&`, ${u} running`,")"]})]})})}return An(M,{flexDirection:"column",marginBottom:1,children:[An(M,{children:[Rt(b,{color:i.colors.accent,bold:!0,children:a}),An(b,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>Rt($x,{tool:c,theme:i},c.id))]})},"ToolGroup");import{jsxs as dP,jsx as kG}from"react/jsx-runtime";var fP=o(({pendingInputs:e})=>{let t=Ik(e);if(!t)return null;let n=ae("dark");return dP(M,{children:[dP(b,{color:n.colors.hint,children:["\u23F3"," "]}),kG(b,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as pP from"child_process";var hd;function EG(){if(process.platform!=="win32")return null;if(hd!==void 0)return hd;try{hd=pP.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{hd=null}return hd}o(EG,"detectWindowsCodePage");function gd(){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(gd,"supportsTrueColor");function Nx(){if(gd())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}o(Nx,"supports256Colors");function ri(){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:EG()==="65001":!0}o(ri,"supportsUnicode");function Dx(){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(Dx,"supportsEmoji");function Bx(){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(Bx,"getTerminalWidth");function Fx(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}o(Fx,"isScreenReader");function MG(){return process.stdout?.isTTY??!1}o(MG,"isTTY");function mP(){return{trueColor:gd(),colors256:Nx(),unicode:ri(),emoji:Dx(),tty:MG(),columns:Bx(),screenReader:Fx()}}o(mP,"detectTerminalCapabilities");var Xc=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 hP(e){let t=new Xc;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}o(hP,"withCapture");function gP(e){let t=new Xc;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}o(gP,"withCaptureSync");import*as RP from"readline";import ce from"chalk";import Ln from"chalk";var _G=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],AG=[{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 LG(e,t=!0){return e.map(n=>{let r=Ln.dim(`[${n.key}]`);return t?`${r} ${Ln.cyan(n.label)} ${Ln.dim(`- ${n.description}`)}`:`${r} ${n.label}`}).join(" ")}o(LG,"formatOptions");function Hx(){return process.stdout.columns??80}o(Hx,"getTerminalWidth");function PG(){return ri()}o(PG,"supportsUnicode");function OG(){let e=PG();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(OG,"getSymbols");async function $G(e,t){let{message:n,default:r,options:i,showDescription:s=!0,signal:a}=t,c=i??_G,l=LG(c,s);console.log(),console.log(Ln.cyan(`? ${n}`));let u=Hx();if(l.length>u-4)for(let f of c){let p=Ln.dim(` [${f.key}]`);console.log(`${p} ${Ln.cyan(f.label)}`),s&&console.log(Ln.dim(` ${f.description}`))}else console.log(Ln.dim(` ${l}`));return a?.aborted?"no":new Promise(f=>{let p=r?` (${r})`:"",h=!1,m=o(w=>{h||(h=!0,a?.removeEventListener("abort",g),f(w))},"finish"),g=o(()=>m("no"),"onAbort"),C=o(w=>{let T=w.trim().toLowerCase()||r||"",v=c.find(A=>A.key===T||A.value===T||A.label.toLowerCase()===T);m(v?v.value:T===""?"no":T)},"onAnswer");a?.addEventListener("abort",g,{once:!0}),a?e.question(Ln.dim(` Choose${p}: `),{signal:a},C):e.question(Ln.dim(` Choose${p}: `),C)})}o($G,"confirmEnhanced");async function Yc(e,t,n,r){let{isOutsideProject:i=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits",runtimeGrantSuggestions:c,signal:l}=r??{},u=OG(),f,p,h={...n,...i?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},m=bh(t,h),g=m.details.map(w=>` ${Ln.dim(w)}`);i||s?(f=`${Ln.yellow(u.warning)} Safety Warning`,g.length>0&&(f+=`
215
215
  ${g.join(`
216
- `)}`),p=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]):(d=m.title,g.length>0&&(d+=`
216
+ `)}`),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+=`
217
217
  ${g.join(`
218
- `)}`),c!==void 0&&(d+=`
219
- ${Ln.dim(Sc)}`,d+=`
218
+ `)}`),c!==void 0&&(f+=`
219
+ ${Ln.dim(Sc)}`,f+=`
220
220
  ${c.map(w=>` ${Ln.dim(`Runtime scope: ${w.label}`)}`).join(`
221
- `)}`),c!==void 0?p=[{key:"y",label:"Once",description:"Allow this operation once",value:"yes"},...c.some(w=>w.kind==="session")?[{key:"s",label:"Session",description:"Allow this Runtime-issued scope for this session",value:"session"}]:[],...c.some(w=>w.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"?SG:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let C=await CG(e,{message:d,default:"n",options:p,signal:l});return C==="always"?c!==void 0?{confirmed:!0,runtimeGrantKind:"persistent"}:{confirmed:!0,always:!0}:C==="session"?{confirmed:!0,runtimeGrantKind:"session"}:{confirmed:C==="yes"}}o(Yc,"confirmToolExecution");import cae from"chalk";function fP(){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(fP,"getUnicodeSymbols");function Hx(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}o(Hx,"getAsciiSymbols");var pP={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:ri()?fP():Hx(),spinner:{frames:ri()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},IG={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:ri()?fP():Hx(),spinner:{frames:ri()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},vG={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:Hx(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},bG={dark:pP,light:IG,minimal:vG},mP=pP;function Os(){return mP}o(Os,"getCurrentTheme");function gd(e){let t=bG[e];return t?(mP=t,!0):!1}o(gd,"setTheme");function RG(){if(!process.stdout.isTTY){gd("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){gd("dark");return}gd("dark")}o(RG,"autoSelectTheme");RG();var zh=class{static{o(this,"ReadlineUIContext")}rl;constructor(t){this.rl=t}async select(t,n){if(n.length!==0)return console.log(`
222
- ${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 hP from"child_process";import*as Sd from"path";import*as yd from"fs";import*as gP from"os";import ii from"chalk";function yP(e,t){let n=Os(),r=e==="plan"?ii.hex(n.colors.warning):ii.hex(n.colors.success),i=t.model??jr(t.provider)??t.provider,s=Zi({provider:t.provider,model:t.model,effort:qf(t),effortOverride:t.effortOverride,thinking:t.thinking,reasoningMode:t.reasoningMode}),a=Fx();if(a<60){let l=e==="plan"?"?":n.symbols.prompt;return r(`${l} `)}if(a<100){let l=ii.hex(n.colors.dim)(`[${s}]`);return r(`kodax:${e}${l}> `)}let c=ii.hex(n.colors.info)(`[effort:${s}]`);return r(`kodax:${e} (${t.provider}:${i})${c}> `)}o(yP,"getPrompt");async function SP(e,t){let n=Os(),r=[],i=await new Promise(s=>{e.question(t,s)});if(i===""||i.toLowerCase()==="/e")return Wx(r.join(`
223
- `));for(r.push(i);kG(r.join(`
221
+ `)}`),c!==void 0?p=[{key:"y",label:"Once",description:"Allow this operation once",value:"yes"},...c.some(w=>w.kind==="session")?[{key:"s",label:"Session",description:"Allow this Runtime-issued scope for this session",value:"session"}]:[],...c.some(w=>w.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"?AG:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let C=await $G(e,{message:f,default:"n",options:p,signal:l});return C==="always"?c!==void 0?{confirmed:!0,runtimeGrantKind:"persistent"}:{confirmed:!0,always:!0}:C==="session"?{confirmed:!0,runtimeGrantKind:"session"}:{confirmed:C==="yes"}}o(Yc,"confirmToolExecution");import Tae from"chalk";function yP(){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(yP,"getUnicodeSymbols");function Wx(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}o(Wx,"getAsciiSymbols");var SP={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:ri()?yP():Wx(),spinner:{frames:ri()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},NG={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:ri()?yP():Wx(),spinner:{frames:ri()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},DG={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:Wx(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},BG={dark:SP,light:NG,minimal:DG},wP=SP;function Ns(){return wP}o(Ns,"getCurrentTheme");function yd(e){let t=BG[e];return t?(wP=t,!0):!1}o(yd,"setTheme");function FG(){if(!process.stdout.isTTY){yd("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){yd("dark");return}yd("dark")}o(FG,"autoSelectTheme");FG();var zh=class{static{o(this,"ReadlineUIContext")}rl;constructor(t){this.rl=t}async select(t,n){if(n.length!==0)return console.log(`
222
+ ${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 xP from"child_process";import*as wd from"path";import*as Sd from"fs";import*as TP from"os";import ii from"chalk";function CP(e,t){let n=Ns(),r=e==="plan"?ii.hex(n.colors.warning):ii.hex(n.colors.success),i=t.model??jr(t.provider)??t.provider,s=Zi({provider:t.provider,model:t.model,effort:qf(t),effortOverride:t.effortOverride,thinking:t.thinking,reasoningMode:t.reasoningMode}),a=Hx();if(a<60){let l=e==="plan"?"?":n.symbols.prompt;return r(`${l} `)}if(a<100){let l=ii.hex(n.colors.dim)(`[${s}]`);return r(`kodax:${e}${l}> `)}let c=ii.hex(n.colors.info)(`[effort:${s}]`);return r(`kodax:${e} (${t.provider}:${i})${c}> `)}o(CP,"getPrompt");async function IP(e,t){let n=Ns(),r=[],i=await new Promise(s=>{e.question(t,s)});if(i===""||i.toLowerCase()==="/e")return jx(r.join(`
223
+ `));for(r.push(i);HG(r.join(`
224
224
  `));){let s=ii.hex(n.colors.dim)("... "),a=await new Promise(c=>{e.question(s,c)});r.push(a)}return r.join(`
225
225
  `).replace(/\\\n/g,`
226
- `)}o(SP,"askInput");async function Wx(e){let t=Sd.join(gP.tmpdir(),"kodax"),n=Sd.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await yd.promises.mkdir(t,{recursive:!0}),await yd.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=Sd.basename(r);console.log(ii.yellow(`
226
+ `)}o(IP,"askInput");async function jx(e){let t=wd.join(TP.tmpdir(),"kodax"),n=wd.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await Sd.promises.mkdir(t,{recursive:!0}),await Sd.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=wd.basename(r);console.log(ii.yellow(`
227
227
  [Security] Editor path sanitized: ${a}`)),r=a}console.log(ii.dim(`
228
228
  [Opening editor: ${r}]`));let i=process.platform==="win32"&&(r.toLowerCase()==="notepad"||r.toLowerCase()==="notepad.exe");return console.log(i?ii.dim(`Note: Please close Notepad manually after editing to continue.
229
229
  `):ii.dim(`Save and close the editor to continue...
230
- `)),hP.spawnSync(r,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await yd.promises.readFile(n,"utf-8")).trim()}catch(r){let i=r instanceof Error?r:new Error(String(r));return console.log(ii.red(`
231
- [Editor Error] ${i.message}`)),e}finally{try{await yd.promises.unlink(n)}catch{}}}o(Wx,"openExternalEditor");function kG(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(kG,"needsContinuation");import et from"chalk";function wP(e){e?.workspaceRoot&&(console.log(et.dim(` Workspace: ${Vr(e)}`)),console.log(et.dim(` Use /status workspace for runtime details.
232
- `)))}o(wP,"printWorkspaceEntryNotice");function xP(e,t,n,r){let i=Os(),s=e.model??jr(e.provider)??e.provider,a=Zi({provider:e.provider,model:e.model,effort:qf(e),effortOverride:e.effortOverride,thinking:e.thinking,reasoningMode:e.reasoningMode}),c=`
230
+ `)),xP.spawnSync(r,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await Sd.promises.readFile(n,"utf-8")).trim()}catch(r){let i=r instanceof Error?r:new Error(String(r));return console.log(ii.red(`
231
+ [Editor Error] ${i.message}`)),e}finally{try{await Sd.promises.unlink(n)}catch{}}}o(jx,"openExternalEditor");function HG(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(HG,"needsContinuation");import et from"chalk";function vP(e){e?.workspaceRoot&&(console.log(et.dim(` Workspace: ${Vr(e)}`)),console.log(et.dim(` Use /status workspace for runtime details.
232
+ `)))}o(vP,"printWorkspaceEntryNotice");function bP(e,t,n,r){let i=Ns(),s=e.model??jr(e.provider)??e.provider,a=Zi({provider:e.provider,model:e.model,effort:qf(e),effortOverride:e.effortOverride,thinking:e.thinking,reasoningMode:e.reasoningMode}),c=`
233
233
  \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
234
234
  \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
235
235
  \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
236
236
  \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
237
237
  \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
238
- \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(d=>et.hex(d)(" \u258E "),"bar"),u=et.hex(i.colors.dim)(" \xB7 ");if(console.log(et.hex(i.colors.primary)(`
239
- `+c)),console.log(""),console.log(l(i.colors.primary)+et.hex(i.colors.primary)("AI Coding Agent \xB7 Minimalist & Intelligent")),console.log(l(i.colors.success)+et.bold.hex(i.colors.text)(`v${Jo}`)+u+et.hex(i.colors.success)(`${e.provider}:${s}`)+u+et.hex(i.colors.primary)(e.agentMode.toUpperCase())+et.hex(i.colors.dim)(" / ")+et.hex(i.colors.accent)(t)+et.hex(i.colors.dim)(" \xB7 ")+et.hex(i.colors.warning)(`effort:${a}`)),n){let d=Math.round(n.contextWindow/1e3),p=n.enabled?et.hex(i.colors.success)("on"):et.hex(i.colors.secondary)("off"),h=bu(n.contextWindow,n.triggerPercent,n.triggerTokens);console.log(l(i.colors.accent)+et.hex(i.colors.secondary)(`ctx ${d}k \xB7 compaction `)+p+et.hex(i.colors.secondary)(` \xB7 ${h}`))}r&&console.log(l(i.colors.secondary)+et.hex(i.colors.secondary)(`${r.length} project rule file(s) loaded \u2014 `)+et.hex(i.colors.dim)("/reload to refresh")),console.log(""),console.log(et.hex(i.colors.dim)(" Quick tips:")),console.log(et.hex(i.colors.primary)(" /help ")+et.hex(i.colors.dim)("Show all commands")),console.log(et.hex(i.colors.primary)(" /mode ")+et.hex(i.colors.dim)("Switch permission mode")),console.log(et.hex(i.colors.primary)(" /clear ")+et.hex(i.colors.dim)("Clear conversation")),console.log(et.hex(i.colors.primary)(" @path ")+et.hex(i.colors.dim)("Attach image to context")),console.log(et.hex(i.colors.primary)(" !cmd ")+et.hex(i.colors.dim)("Run read-only shell command")),console.log(et.hex(i.colors.dim)(`
238
+ \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=>et.hex(f)(" \u258E "),"bar"),u=et.hex(i.colors.dim)(" \xB7 ");if(console.log(et.hex(i.colors.primary)(`
239
+ `+c)),console.log(""),console.log(l(i.colors.primary)+et.hex(i.colors.primary)("AI Coding Agent \xB7 Minimalist & Intelligent")),console.log(l(i.colors.success)+et.bold.hex(i.colors.text)(`v${Jo}`)+u+et.hex(i.colors.success)(`${e.provider}:${s}`)+u+et.hex(i.colors.primary)(e.agentMode.toUpperCase())+et.hex(i.colors.dim)(" / ")+et.hex(i.colors.accent)(t)+et.hex(i.colors.dim)(" \xB7 ")+et.hex(i.colors.warning)(`effort:${a}`)),n){let f=Math.round(n.contextWindow/1e3),p=n.enabled?et.hex(i.colors.success)("on"):et.hex(i.colors.secondary)("off"),h=Ru(n.contextWindow,n.triggerPercent,n.triggerTokens);console.log(l(i.colors.accent)+et.hex(i.colors.secondary)(`ctx ${f}k \xB7 compaction `)+p+et.hex(i.colors.secondary)(` \xB7 ${h}`))}r&&console.log(l(i.colors.secondary)+et.hex(i.colors.secondary)(`${r.length} project rule file(s) loaded \u2014 `)+et.hex(i.colors.dim)("/reload to refresh")),console.log(""),console.log(et.hex(i.colors.dim)(" Quick tips:")),console.log(et.hex(i.colors.primary)(" /help ")+et.hex(i.colors.dim)("Show all commands")),console.log(et.hex(i.colors.primary)(" /mode ")+et.hex(i.colors.dim)("Switch permission mode")),console.log(et.hex(i.colors.primary)(" /clear ")+et.hex(i.colors.dim)("Clear conversation")),console.log(et.hex(i.colors.primary)(" @path ")+et.hex(i.colors.dim)("Attach image to context")),console.log(et.hex(i.colors.primary)(" !cmd ")+et.hex(i.colors.dim)("Run read-only shell command")),console.log(et.hex(i.colors.dim)(`
240
240
  Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
241
- `))}o(xP,"printStartupBanner");async function EG(e,t,n){if(e?.id){let r=await t.load(e.id);if(!r)return null;let i=In(r);return{id:e.id,data:r,kind:"load",...i?{runtimeInfo:i}:{}}}if(e?.resume||e?.autoResume){let r=await Cc(t,n);if(!r)return null;let i=await t.load(r.id);if(!i)return null;let s=In(i);return{id:r.id,data:i,kind:"continue",...s?{runtimeInfo:s}:{}}}return null}o(EG,"loadClassicStartupSession");async function MG(e){return(await Mf(e)).getSystemPromptSnippet()}o(MG,"buildClassicCliSkillsPrompt");function _G(e,t){let n=Ef(e);t.context={...t.context,skillsPrompt:n.getSystemPromptSnippet()}}o(_G,"syncClassicCliSkillsPrompt");var Vx=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=ga(i.data.lineage,n,r);if(!s)return null;let a={...structuredClone(i.data),messages:Lt(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=ya(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=Si(i.data.lineage,n);if(!s)return null;let a=r?.sessionId??await Ta(),c={messages:Lt(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??wa(r.data.lineage);if(!i)return null;let s=xa(r.data.lineage,i);if(!s)return null;let a={...r.data,messages:Lt(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?Ji(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 jx(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(jx,"applyRuntimeContext");function Xh(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(Xh,"applyRuntimeSessionSnapshot");function Fi(e){return{...e.extensionStateDirty?{extensionState:e.extensionState??{}}:{},...e.extensionRecordsDirty?{extensionRecords:e.extensionRecords??[]}:{}}}o(Fi,"contextExtensionSessionData");function qc(e){e.extensionStateDirty=!1,e.extensionRecordsDirty=!1}o(qc,"markExtensionSessionPersisted");function AG(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}o(AG,"resolveInitialReasoningMode");var Gx={current:null};async function CP(e){let t=await Ur({cwd:process.cwd()}),n=t.workspaceRoot??await Ti()??void 0,r=e.storage??new Vx,i=await EG(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=Rf({meta:{cwd:process.cwd(),startedAt:Date.now()}}),l=Xf(),u=Ma({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,configuredProvider:l.provider,defaultProvider:wf}),d=_a({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,explicitModel:e.model,configuredProvider:l.provider,configuredModel:l.model}),p=AG(e,l),h=Aa({explicitEffort:e.effort,environmentEffort:process.env.KODAX_EFFORT,configuredEffort:l.effort}),m=Yf(e,l,process.env.KODAX_EFFORT),g=e.agentMode??l.agentMode??"ama",C=p!=="off",w=ka(l.permissionMode,"accept-edits")??"accept-edits",T=Kf();w==="auto-in-project"&&T();let v=Bf(),_=l.theme;_&&gd(_);let P=Os(),k={provider:u,model:d,effort:h,effortOverride:m,planModeEffort:l.planModeEffort,thinking:C,reasoningMode:p,agentMode:g,permissionMode:w,repoIntelligenceMode:v.mode,repoIntelligenceTrace:v.trace,fallbackProviders:l.fallbackProviders},E=w,$=Na(),B=o(L=>Qo({provider:L?.provider??k.provider,model:L?.model??k.model,effort:k.effort,effortOverride:k.effortOverride,permissionMode:L?.permissionMode??k.permissionMode,planModeEffort:k.planModeEffort,thinking:k.thinking,reasoningMode:k.reasoningMode}),"resolveCurrentRuntimeEffort"),O=0,G="",re=!1,X=500,y=await xc({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 L=i.kind==="continue"?"Continuing session":"Session loaded";process.stdout.write(`${ce.green(`[${L}: ${i.id}]`)}
242
- `)}y.skillDynamicContext=e.skillDynamicContext,c?.writer.update({sessionId:y.sessionId});let A=o(L=>ko(k,L,(V,H,ne)=>{console.log((V==="block"?ce.red:ce.yellow)(`
243
- ${H}`));for(let F of ne)console.log(ce.dim(F));console.log()}),"guardSessionTransition"),ee=await Qf(a??void 0),{resolveProvider:W}=await import("./dist-7EWVACPM.js"),le=W(k.provider),de=ee.contextWindow??le.getEffectiveContextWindow?.(k.model)??le.getContextWindow?.()??2e5,{loadAgentsFiles:he}=await import("./dist-7EWVACPM.js"),_e=o(async()=>he({cwd:process.cwd(),projectRoot:y.gitRoot??void 0}),"reloadAgentsFiles"),fe=await _e();if(xP(k,k.permissionMode,{contextWindow:de,triggerPercent:ee.triggerPercent,triggerTokens:ee.triggerTokens,enabled:ee.enabled},fe),wP(s),e.learning)try{let L=Zf(await e.learning.getSnapshot());L&&console.log(ce.yellow(`
241
+ `))}o(bP,"printStartupBanner");async function WG(e,t,n){if(e?.id){let r=await t.load(e.id);if(!r)return null;let i=In(r);return{id:e.id,data:r,kind:"load",...i?{runtimeInfo:i}:{}}}if(e?.resume||e?.autoResume){let r=await Cc(t,n);if(!r)return null;let i=await t.load(r.id);if(!i)return null;let s=In(i);return{id:r.id,data:i,kind:"continue",...s?{runtimeInfo:s}:{}}}return null}o(WG,"loadClassicStartupSession");async function jG(e){return(await Mf(e)).getSystemPromptSnippet()}o(jG,"buildClassicCliSkillsPrompt");function UG(e,t){let n=Ef(e);t.context={...t.context,skillsPrompt:n.getSystemPromptSnippet()}}o(UG,"syncClassicCliSkillsPrompt");var Gx=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=ga(i.data.lineage,n,r);if(!s)return null;let a={...structuredClone(i.data),messages:Lt(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=ya(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=Si(i.data.lineage,n);if(!s)return null;let a=r?.sessionId??await Ta(),c={messages:Lt(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??wa(r.data.lineage);if(!i)return null;let s=xa(r.data.lineage,i);if(!s)return null;let a={...r.data,messages:Lt(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?Ji(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 Ux(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(Ux,"applyRuntimeContext");function Xh(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(Xh,"applyRuntimeSessionSnapshot");function Fi(e){return{...e.extensionStateDirty?{extensionState:e.extensionState??{}}:{},...e.extensionRecordsDirty?{extensionRecords:e.extensionRecords??[]}:{}}}o(Fi,"contextExtensionSessionData");function qc(e){e.extensionStateDirty=!1,e.extensionRecordsDirty=!1}o(qc,"markExtensionSessionPersisted");function VG(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}o(VG,"resolveInitialReasoningMode");var Kx={current:null};async function kP(e){let t=await Ur({cwd:process.cwd()}),n=t.workspaceRoot??await Ti()??void 0,r=e.storage??new Gx,i=await WG(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=Rf({meta:{cwd:process.cwd(),startedAt:Date.now()}}),l=Xf(),u=Ma({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,configuredProvider:l.provider,defaultProvider:wf}),f=_a({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,explicitModel:e.model,configuredProvider:l.provider,configuredModel:l.model}),p=VG(e,l),h=Aa({explicitEffort:e.effort,environmentEffort:process.env.KODAX_EFFORT,configuredEffort:l.effort}),m=Yf(e,l,process.env.KODAX_EFFORT),g=e.agentMode??l.agentMode??"ama",C=p!=="off",w=ka(l.permissionMode,"accept-edits")??"accept-edits",T=Kf();w==="auto-in-project"&&T();let v=Bf(),A=l.theme;A&&yd(A);let D=Ns(),k={provider:u,model:f,effort:h,effortOverride:m,planModeEffort:l.planModeEffort,thinking:C,reasoningMode:p,agentMode:g,permissionMode:w,repoIntelligenceMode:v.mode,repoIntelligenceTrace:v.trace,fallbackProviders:l.fallbackProviders},E=w,P=$a(),B=o(L=>Qo({provider:L?.provider??k.provider,model:L?.model??k.model,effort:k.effort,effortOverride:k.effortOverride,permissionMode:L?.permissionMode??k.permissionMode,planModeEffort:k.planModeEffort,thinking:k.thinking,reasoningMode:k.reasoningMode}),"resolveCurrentRuntimeEffort"),$=0,G="",re=!1,X=500,y=await xc({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 L=i.kind==="continue"?"Continuing session":"Session loaded";process.stdout.write(`${ce.green(`[${L}: ${i.id}]`)}
242
+ `)}y.skillDynamicContext=e.skillDynamicContext,c?.writer.update({sessionId:y.sessionId});let _=o(L=>ko(k,L,(V,H,ne)=>{console.log((V==="block"?ce.red:ce.yellow)(`
243
+ ${H}`));for(let F of ne)console.log(ce.dim(F));console.log()}),"guardSessionTransition"),ee=await Qf(a??void 0),{resolveProvider:W}=await import("./dist-H4PT2QAV.js"),le=W(k.provider),de=ee.contextWindow??le.getEffectiveContextWindow?.(k.model)??le.getContextWindow?.()??2e5,{loadAgentsFiles:he}=await import("./dist-H4PT2QAV.js"),_e=o(async()=>he({cwd:process.cwd(),projectRoot:y.gitRoot??void 0}),"reloadAgentsFiles"),fe=await _e();if(bP(k,k.permissionMode,{contextWindow:de,triggerPercent:ee.triggerPercent,triggerTokens:ee.triggerTokens,enabled:ee.enabled},fe),vP(s),e.learning)try{let L=Zf(await e.learning.getSnapshot());L&&console.log(ce.yellow(`
244
244
  ${L}
245
- `))}catch(L){ft({source:"repl:learning",level:"warn",message:"Failed to recover the Learning Center startup summary.",detail:L instanceof Error?L.message:String(L)})}let Te=Xv(()=>y.gitRoot??process.cwd()),Pe=TP.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:o((L,V)=>{Te(L).then(H=>{V(null,H)}).catch(()=>{V(null,[[],L])})},"completer")}),te=o(async(L,V)=>{let H=await Yc(Pe,L.toolName,{...L.input,...L.reason!==void 0?{_reason:L.reason}:{},...L.executionCwd!==void 0?{_executionCwd:L.executionCwd}:{},...L.risk!==void 0?{_runtimeRisk:L.risk}:{}},{permissionMode:E,runtimeGrantSuggestions:L.grantSuggestions??[],signal:V.signal});return jm(L,H)},"requestRuntimePermission"),oe=$a(),Ie=wc(oe);await e.runtimeAutoModeControl?.syncSettings?.(y.sessionId,E,Ie);let nt=await Tc({askUser:o(async(L,V,H)=>(await Yc(Pe,L.name,{...L.input,...H&&H.length>0?{_classifierSignals:H}:{}},{permissionMode:E,reason:`[auto-mode] ${V}`})).confirmed?"allow":"block","askUser"),projectRoot:a??process.cwd(),executionCwd:s.executionCwd??a??process.cwd(),getCurrentProviderName:o(()=>k.provider,"getCurrentProviderName"),getCurrentModel:o(()=>k.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>E,"getCurrentPermissionMode"),autoModeSettings:oe,log:o((L,V)=>{console.log(L==="warn"?ce.yellow(V):ce.dim(V))},"log"),extraCollectors:[Pa]}),vt=jf({getProvider:o(()=>W(k.provider),"getProvider"),getModel:o(()=>k.model??"","getModel")}),Ke=`
245
+ `))}catch(L){ft({source:"repl:learning",level:"warn",message:"Failed to recover the Learning Center startup summary.",detail:L instanceof Error?L.message:String(L)})}let Te=Yv(()=>y.gitRoot??process.cwd()),Pe=RP.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:o((L,V)=>{Te(L).then(H=>{V(null,H)}).catch(()=>{V(null,[[],L])})},"completer")}),te=o(async(L,V)=>{let H=await Yc(Pe,L.toolName,{...L.input,...L.reason!==void 0?{_reason:L.reason}:{},...L.executionCwd!==void 0?{_executionCwd:L.executionCwd}:{},...L.risk!==void 0?{_runtimeRisk:L.risk}:{}},{permissionMode:E,runtimeGrantSuggestions:L.grantSuggestions??[],signal:V.signal});return jm(L,H)},"requestRuntimePermission"),oe=Oa(),Ie=wc(oe);await e.runtimeAutoModeControl?.syncSettings?.(y.sessionId,E,Ie);let nt=await Tc({askUser:o(async(L,V,H)=>(await Yc(Pe,L.name,{...L.input,...H&&H.length>0?{_classifierSignals:H}:{}},{permissionMode:E,reason:`[auto-mode] ${V}`})).confirmed?"allow":"block","askUser"),projectRoot:a??process.cwd(),executionCwd:s.executionCwd??a??process.cwd(),getCurrentProviderName:o(()=>k.provider,"getCurrentProviderName"),getCurrentModel:o(()=>k.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>E,"getCurrentPermissionMode"),autoModeSettings:oe,log:o((L,V)=>{console.log(L==="warn"?ce.yellow(V):ce.dim(V))},"log"),extraCollectors:[Pa]}),vt=jf({getProvider:o(()=>W(k.provider),"getProvider"),getModel:o(()=>k.model??"","getModel")}),Ke=`
246
246
  Keyboard Shortcuts:
247
247
  Tab Auto-complete (@paths, /commands)
248
248
  Esc+Esc Edit last message
@@ -250,12 +250,12 @@ Keyboard Shortcuts:
250
250
  Ctrl+E Open external editor
251
251
  Ctrl+R Search command history (built-in)
252
252
  Ctrl+C Cancel current input
253
- Ctrl+D Exit REPL`,Ve=o(()=>{console.log(ce.dim(Ke))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(L,V)=>{if(V&&V.name==="escape"){let H=Date.now();H-O<X&&G&&(re=!0,console.log(ce.dim(`
254
- [Opening editor with last message...]`)),Pe.pause()),O=H}});let me=await MG(a),Re=!0,K={...e,provider:u,model:d,effort:B().runtimeEffort,agentMode:g,reasoningMode:p,thinking:C,workflowRunsBaseDir:qi("workflow-runs",es(a??s.executionCwd??process.cwd()).key),context:{...e.context,gitRoot:a,executionCwd:s.executionCwd,repoIntelligenceMode:v.mode,repoIntelligenceTrace:v.trace,skillsPrompt:me},session:{...e.session,id:y.sessionId,storage:r,persistedByHost:!0}},We=o(()=>{let L=B();K.effort=L.runtimeEffort},"refreshCurrentEffort");Gx.current=null;let St=o(async L=>{if(y.messages.length===0)return"empty";if(!A("Recovering into a new session"))return"blocked";let V=y.sessionId,H=y.lineage??qe(y.messages);y.lineage=H;let ne=y.artifactLedger?structuredClone(y.artifactLedger):void 0,F=y.title||oi(y.messages),Ae=Df({sourceSessionId:V,messages:y.messages,lineage:H,artifactLedger:ne,reason:"provider session recovery"});await r.save(V,{messages:y.messages,title:F,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,lineage:H,artifactLedger:ne,uiHistory:y.uiHistory,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}});let ve=Cs(),ke=qe(Ae.messages);await r.save(ve,{messages:Ae.messages,title:Ae.title,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,lineage:ke,artifactLedger:ne,...K.session?.tag!==void 0?{tag:K.session.tag}:{}});let At=new Date().toISOString();y.sessionId=ve,y.messages=Ae.messages,y.title=Ae.title,y.contextTokenSnapshot=void 0,y.lineage=ke,y.artifactLedger=ne,y.extensionState=void 0,y.extensionRecords=void 0,y.extensionStateDirty=!1,y.extensionRecordsDirty=!1,y.createdAt=At,y.lastAccessed=At,K.session={...K.session,id:ve},c?.writer.update({sessionId:ve}),console.log(ce.green(`
255
- [Recovered session: ${ve}]`)),console.log(ce.dim(` Source session saved: ${V}`)),console.log(ce.dim(" Raw provider history was not replayed."));let Gt;try{Gt=await Ux(K,y,Of(L),y.messages,void 0,e.runtimeRunner,E,te,Ie)}catch(si){let Dt=si instanceof Error?si.message:String(si);return console.log(ce.red(`
256
- [Recover failed] ${Dt}`)),"failed"}y.messages=Gt.messages,y.contextTokenSnapshot=Gt.contextTokenSnapshot,Xh(y,Gt),y.artifactLedger=Yo(y.artifactLedger??[],Gt.artifactLedger??_f(Gt.messages)),y.lineage=qe(y.messages,y.lineage);let mn=oi(y.messages);return y.title=mn,await r.save(y.sessionId,{messages:y.messages,title:mn,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,lineage:y.lineage,artifactLedger:y.artifactLedger,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}}),qc(y),"recovered"},"recoverCurrentSession"),Vt={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(()=>{Re=!1,c?.shutdown(),Pe.close()},"exit"),saveSession:o(async()=>{if(y.messages.length>0){let L=oi(y.messages);y.title=L,await r.save(y.sessionId,{messages:y.messages,title:L,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,artifactLedger:y.artifactLedger,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}}),qc(y)}},"saveSession"),startNewSession:o(()=>{y.sessionId=Cs(),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,jx(y,K,t),K.session={...K.session,id:y.sessionId},c?.writer.update({sessionId:y.sessionId})},"startNewSession"),loadSession:o(async L=>{let V=await r.load(L);if(V){if(!A("Resuming a saved session"))return"blocked";let H=await Ur({cwd:process.cwd()}),ne=In(V),F=ne??H;return ne?.workspaceRoot&&!rp(ne)?(console.log(ce.yellow(`
253
+ Ctrl+D Exit REPL`,Ve=o(()=>{console.log(ce.dim(Ke))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(L,V)=>{if(V&&V.name==="escape"){let H=Date.now();H-$<X&&G&&(re=!0,console.log(ce.dim(`
254
+ [Opening editor with last message...]`)),Pe.pause()),$=H}});let me=await jG(a),Re=!0,K={...e,provider:u,model:f,effort:B().runtimeEffort,agentMode:g,reasoningMode:p,thinking:C,workflowRunsBaseDir:qi("workflow-runs",es(a??s.executionCwd??process.cwd()).key),context:{...e.context,gitRoot:a,executionCwd:s.executionCwd,repoIntelligenceMode:v.mode,repoIntelligenceTrace:v.trace,skillsPrompt:me},session:{...e.session,id:y.sessionId,storage:r,persistedByHost:!0}},We=o(()=>{let L=B();K.effort=L.runtimeEffort},"refreshCurrentEffort");Kx.current=null;let St=o(async L=>{if(y.messages.length===0)return"empty";if(!_("Recovering into a new session"))return"blocked";let V=y.sessionId,H=y.lineage??qe(y.messages);y.lineage=H;let ne=y.artifactLedger?structuredClone(y.artifactLedger):void 0,F=y.title||oi(y.messages),Ae=Df({sourceSessionId:V,messages:y.messages,lineage:H,artifactLedger:ne,reason:"provider session recovery"});await r.save(V,{messages:y.messages,title:F,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,lineage:H,artifactLedger:ne,uiHistory:y.uiHistory,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}});let ve=Cs(),ke=qe(Ae.messages);await r.save(ve,{messages:Ae.messages,title:Ae.title,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,lineage:ke,artifactLedger:ne,...K.session?.tag!==void 0?{tag:K.session.tag}:{}});let At=new Date().toISOString();y.sessionId=ve,y.messages=Ae.messages,y.title=Ae.title,y.contextTokenSnapshot=void 0,y.lineage=ke,y.artifactLedger=ne,y.extensionState=void 0,y.extensionRecords=void 0,y.extensionStateDirty=!1,y.extensionRecordsDirty=!1,y.createdAt=At,y.lastAccessed=At,K.session={...K.session,id:ve},c?.writer.update({sessionId:ve}),console.log(ce.green(`
255
+ [Recovered session: ${ve}]`)),console.log(ce.dim(` Source session saved: ${V}`)),console.log(ce.dim(" Raw provider history was not replayed."));let Gt;try{Gt=await Vx(K,y,Nf(L),y.messages,void 0,e.runtimeRunner,E,te,Ie)}catch(si){let Dt=si instanceof Error?si.message:String(si);return console.log(ce.red(`
256
+ [Recover failed] ${Dt}`)),"failed"}y.messages=Gt.messages,y.contextTokenSnapshot=Gt.contextTokenSnapshot,Xh(y,Gt),y.artifactLedger=Yo(y.artifactLedger??[],Gt.artifactLedger??_f(Gt.messages)),y.lineage=qe(y.messages,y.lineage);let mn=oi(y.messages);return y.title=mn,await r.save(y.sessionId,{messages:y.messages,title:mn,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,lineage:y.lineage,artifactLedger:y.artifactLedger,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}}),qc(y),"recovered"},"recoverCurrentSession"),Vt={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(()=>{Re=!1,c?.shutdown(),Pe.close()},"exit"),saveSession:o(async()=>{if(y.messages.length>0){let L=oi(y.messages);y.title=L,await r.save(y.sessionId,{messages:y.messages,title:L,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,artifactLedger:y.artifactLedger,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}}),qc(y)}},"saveSession"),startNewSession:o(()=>{y.sessionId=Cs(),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,Ux(y,K,t),K.session={...K.session,id:y.sessionId},c?.writer.update({sessionId:y.sessionId})},"startNewSession"),loadSession:o(async L=>{let V=await r.load(L);if(V){if(!_("Resuming a saved session"))return"blocked";let H=await Ur({cwd:process.cwd()}),ne=In(V),F=ne??H;return ne?.workspaceRoot&&!rp(ne)?(console.log(ce.yellow(`
257
257
  [Saved workspace unavailable]`)),console.log(ce.dim(` Session workspace: ${Vr(ne)}`)),console.log(ce.dim(` Falling back to current workspace: ${Vr(H)}`)),F=H):ne?.workspaceRoot&&H.workspaceRoot&&ne.workspaceRoot!==H.workspaceRoot&&(console.log(ce.cyan(`
258
- [Loading sibling workspace session]`)),console.log(ce.dim(` Current workspace: ${Vr(H)}`)),console.log(ce.dim(` Session workspace: ${Vr(ne)}`))),y.messages=V.messages,y.title=V.title,y.sessionId=L,y.contextTokenSnapshot=void 0,y.artifactLedger=V.artifactLedger,y.extensionState=V.extensionState?structuredClone(V.extensionState):void 0,y.extensionRecords=V.extensionRecords?.map(Ae=>({...Ae})),y.extensionStateDirty=!1,y.extensionRecordsDirty=!1,y.lastAccessed=new Date().toISOString(),jx(y,K,F),K.session={...K.session,id:L,tag:V.tag},c?.writer.update({sessionId:L}),console.log(ce.green(`
258
+ [Loading sibling workspace session]`)),console.log(ce.dim(` Current workspace: ${Vr(H)}`)),console.log(ce.dim(` Session workspace: ${Vr(ne)}`))),y.messages=V.messages,y.title=V.title,y.sessionId=L,y.contextTokenSnapshot=void 0,y.artifactLedger=V.artifactLedger,y.extensionState=V.extensionState?structuredClone(V.extensionState):void 0,y.extensionRecords=V.extensionRecords?.map(Ae=>({...Ae})),y.extensionStateDirty=!1,y.extensionRecordsDirty=!1,y.lastAccessed=new Date().toISOString(),Ux(y,K,F),K.session={...K.session,id:L,tag:V.tag},c?.writer.update({sessionId:L}),console.log(ce.green(`
259
259
  [Loaded session: ${L}]`)),console.log(ce.dim(` Messages: ${V.messages.length}`)),y.runtimeInfo?.workspaceRoot&&console.log(ce.dim(` Workspace: ${Vr(y.runtimeInfo)}`)),"loaded"}return"missing"},"loadSession"),listSessions:o(async()=>{let L=await r.list(y.gitRoot??void 0);if(L.length===0){console.log(ce.dim(`
260
260
  [No saved sessions]`));return}console.log(ce.bold(`
261
261
  Recent Sessions:
@@ -266,13 +266,13 @@ Conversation History:
266
266
  [${H.diagnostic}]`))},"switchProvider"),setThinking:o(L=>{k.thinking=L,K.thinking=L,k.reasoningMode=L?"auto":"off",K.reasoningMode=k.reasoningMode},"setThinking"),setEffort:o(L=>{k.effort=L,k.effortOverride=L!==void 0,We()},"setEffort"),setReasoningMode:o(L=>{let V=L!=="off";k.reasoningMode=L,k.thinking=V,K.reasoningMode=L,K.thinking=V},"setReasoningMode"),setAgentMode:o(L=>{k.agentMode=L,K.agentMode=L},"setAgentMode"),setPermissionMode:o(async L=>{await e.runtimeAutoModeControl?.syncSettings?.(y.sessionId,L,Ie),k.permissionMode=L,E=L,We(),L==="auto-in-project"&&T()},"setPermissionMode"),setRepoIntelligenceRuntime:o(L=>{L.mode!==void 0&&(k.repoIntelligenceMode=L.mode,process.env.KODAX_REPO_INTELLIGENCE=L.mode,K.context={...K.context,repoIntelligenceMode:L.mode}),L.trace!==void 0&&(k.repoIntelligenceTrace=L.trace,L.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,K.context={...K.context,repoIntelligenceTrace:L.trace})},"setRepoIntelligenceRuntime"),deleteSession:o(async L=>{await r.delete?.(L)},"deleteSession"),deleteAllSessions:o(async()=>{await r.deleteAll?.(y.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:o(async()=>{let L=await r.getLineage?.(y.sessionId);if(!L){console.log(ce.dim(`
267
267
  [No session tree available for this session]`));return}let V=vh(Lf(L));console.log(ce.bold(`
268
268
  Session Tree:
269
- `));for(let H of V)console.log(` ${H}`);console.log()},"printSessionTree"),switchSessionBranch:o(async L=>{if(!A("Switching session branches"))return"blocked";let V=await r.setActiveEntry?.(y.sessionId,L,{summarizeCurrentBranch:!0});return V?(y.messages=V.messages,y.title=V.title,y.contextTokenSnapshot=void 0,console.log(ce.green(`
269
+ `));for(let H of V)console.log(` ${H}`);console.log()},"printSessionTree"),switchSessionBranch:o(async L=>{if(!_("Switching session branches"))return"blocked";let V=await r.setActiveEntry?.(y.sessionId,L,{summarizeCurrentBranch:!0});return V?(y.messages=V.messages,y.title=V.title,y.contextTokenSnapshot=void 0,console.log(ce.green(`
270
270
  [Switched to tree entry: ${L}]`)),console.log(ce.dim(` Messages: ${V.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:o(async(L,V)=>{if(!await r.setLabel?.(y.sessionId,L,V))return!1;let ne=V&&V.trim()?`checkpoint label set: ${V.trim()}`:"checkpoint label cleared";return console.log(ce.green(`
271
- [${ne}]`)),!0},"labelSessionBranch"),forkSession:o(async L=>{if(!A("Forking a session branch"))return"blocked";let V=await r.fork?.(y.sessionId,L);return V?(y.sessionId=V.sessionId,y.messages=V.data.messages,y.title=V.data.title,y.contextTokenSnapshot=void 0,y.createdAt=new Date().toISOString(),y.lastAccessed=y.createdAt,jx(y,K,In(V.data)??y.runtimeInfo),K.session={...K.session,id:V.sessionId},console.log(ce.green(`
272
- [Forked session: ${V.sessionId}]`)),console.log(ce.dim(` Messages: ${V.data.messages.length}`)),"forked"):"failed"},"forkSession"),recoverSession:St,rewindSession:o(async L=>{if(!A("Rewinding session"))return"blocked";let V=await r.rewind?.(y.sessionId,L);return V?(y.messages=V.messages,y.title=V.title,y.contextTokenSnapshot=void 0,y.lastAccessed=new Date().toISOString(),console.log(ce.green(`
273
- [Rewound session${L?` to ${L}`:" to previous turn"}]`)),console.log(ce.dim(` Messages: ${V.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:o(()=>Gx.current?.()??null,"getCostReport"),getAutoModeStats:o(async()=>{if(Ir(E))return e.runtimeAutoModeControl?e.runtimeAutoModeControl.getStats(y.sessionId):nt.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:o(async L=>{if(Ir(E)){if(e.runtimeAutoModeControl){await e.runtimeAutoModeControl.setEngine(y.sessionId,L);return}nt.getGuardrail().setEngine(L)}},"setAutoModeEngine"),createKodaXOptions:o(()=>{let L=o((H,ne)=>E!=="plan"?null:Qi(H,ne,a??process.cwd()),"planModeBlockCheck"),V=!e.runtimeRunner&&Ir(E)?[nt.getGuardrail()]:void 0;return{...K,provider:k.provider,model:k.model,effort:B().runtimeEffort,thinking:k.thinking,reasoningMode:k.reasoningMode,guardrails:V,context:{...K.context,planModeBlockCheck:L},events:{...K.events,onMemoryOutcomeDigest:o((H,ne)=>{if(H.sessionId!==y.sessionId){K.events?.onMemoryOutcomeDigest?.(H,ne);return}y.lineage=Pf(y.lineage??qe(y.messages),H,ne?.jobId),K.events?.onMemoryOutcomeDigest?.(H,ne)},"onMemoryOutcomeDigest"),onMemoryReviewReceipt:o(H=>{if(H.sessionId!==void 0&&H.sessionId!==y.sessionId){K.events?.onMemoryReviewReceipt?.(H);return}y.lineage=$f(y.lineage??qe(y.messages),H),K.events?.onMemoryReviewReceipt?.(H)},"onMemoryReviewReceipt"),onMemoryNotice:o(H=>{if(H.sessionId!==void 0&&H.sessionId!==y.sessionId){K.events?.onMemoryNotice?.(H);return}let ne=y.lineage??qe(y.messages),F=Nf(ne,{...H,createdAt:new Date().toISOString()});y.lineage=F,F!==ne&&console.log(ce.dim(`
274
- [memory] ${H.summaries.slice(0,3).join("; ")}`)),K.events?.onMemoryNotice?.(H)},"onMemoryNotice"),exitPlanMode:o(async H=>E!=="plan"?"not-in-plan-mode":(await Yc(Pe,"exit_plan_mode",{plan:H},{isProtectedPath:!1,permissionMode:E})).confirmed?(k.permissionMode="accept-edits",E="accept-edits",We(),!0):!1,"exitPlanMode"),beforeToolExecute:o(async(H,ne)=>{let F=E,Ae=Ra(F);if(F==="plan"){let ve=Qi(H,ne,a??process.cwd());if(ve)return console.log(ce.yellow(ve)),`${ve} 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 ve=ne.command??"";if(ba(ve,a??process.cwd(),s.executionCwd??a??process.cwd()))return!0}if(Vf(F,nt.getGuardrail().getEngine()))return!0;if(a&&wi.has(H)){let ve=ne.path;if(ve&&va(ve,a))return(await Yc(Pe,H,ne,{isProtectedPath:!0,permissionMode:F})).confirmed?!0:(console.log(ce.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(Ae.has(H)){if(F==="accept-edits"&&H==="bash"&&await Ia(H,ne,$,vt))return!0;let ve=await Yc(Pe,H,ne,{isOutsideProject:ne._outsideProject===!0,reason:ne._reason,permissionMode:F});if(!ve.confirmed)return console.log(ce.dim("[Cancelled] Operation cancelled by user")),!1;ve.always&&F==="accept-edits"&&(Jf(H,ne,!1),$=Na())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:o(async()=>(fe=await _e(),fe),"reloadAgentsFiles"),readline:Pe,ui:new zh(Pe)},Xe=o(async L=>{y.uiHistory=[...y.uiHistory??[],L];let V=y.title||oi(y.messages);y.title=V,await r.save(y.sessionId,{messages:y.messages,title:V,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,lineage:y.lineage,artifactLedger:y.artifactLedger,uiHistory:y.uiHistory,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}})},"appendPersistedUiHistoryItem"),_t=o(async(L,V)=>{if(!cp({error:L,messageCount:y.messages.length}))return!1;console.log(ce.dim(`
275
- ${Gl}`));try{await Xe({type:"info",text:Gl})}catch(Ae){let ve=Ae instanceof Error?Ae.message:String(Ae);console.log(ce.dim(`Could not persist recovery hint: ${ve}`))}let H=_v(Vt);if(!H)return console.log(),!1;if(!await H(ap))return!1;let F;try{F=await Vt.recoverSession?.(V)}catch(Ae){let ve=Ae instanceof Error?Ae.message:String(Ae);return console.log(ce.red(`
271
+ [${ne}]`)),!0},"labelSessionBranch"),forkSession:o(async L=>{if(!_("Forking a session branch"))return"blocked";let V=await r.fork?.(y.sessionId,L);return V?(y.sessionId=V.sessionId,y.messages=V.data.messages,y.title=V.data.title,y.contextTokenSnapshot=void 0,y.createdAt=new Date().toISOString(),y.lastAccessed=y.createdAt,Ux(y,K,In(V.data)??y.runtimeInfo),K.session={...K.session,id:V.sessionId},console.log(ce.green(`
272
+ [Forked session: ${V.sessionId}]`)),console.log(ce.dim(` Messages: ${V.data.messages.length}`)),"forked"):"failed"},"forkSession"),recoverSession:St,rewindSession:o(async L=>{if(!_("Rewinding session"))return"blocked";let V=await r.rewind?.(y.sessionId,L);return V?(y.messages=V.messages,y.title=V.title,y.contextTokenSnapshot=void 0,y.lastAccessed=new Date().toISOString(),console.log(ce.green(`
273
+ [Rewound session${L?` to ${L}`:" to previous turn"}]`)),console.log(ce.dim(` Messages: ${V.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:o(()=>Kx.current?.()??null,"getCostReport"),getAutoModeStats:o(async()=>{if(Ir(E))return e.runtimeAutoModeControl?e.runtimeAutoModeControl.getStats(y.sessionId):nt.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:o(async L=>{if(Ir(E)){if(e.runtimeAutoModeControl){await e.runtimeAutoModeControl.setEngine(y.sessionId,L);return}nt.getGuardrail().setEngine(L)}},"setAutoModeEngine"),createKodaXOptions:o(()=>{let L=o((H,ne)=>E!=="plan"?null:Qi(H,ne,a??process.cwd()),"planModeBlockCheck"),V=!e.runtimeRunner&&Ir(E)?[nt.getGuardrail()]:void 0;return{...K,provider:k.provider,model:k.model,effort:B().runtimeEffort,thinking:k.thinking,reasoningMode:k.reasoningMode,guardrails:V,context:{...K.context,planModeBlockCheck:L},events:{...K.events,onMemoryOutcomeDigest:o((H,ne)=>{if(H.sessionId!==y.sessionId){K.events?.onMemoryOutcomeDigest?.(H,ne);return}y.lineage=Pf(y.lineage??qe(y.messages),H,ne?.jobId),K.events?.onMemoryOutcomeDigest?.(H,ne)},"onMemoryOutcomeDigest"),onMemoryReviewReceipt:o(H=>{if(H.sessionId!==void 0&&H.sessionId!==y.sessionId){K.events?.onMemoryReviewReceipt?.(H);return}y.lineage=Of(y.lineage??qe(y.messages),H),K.events?.onMemoryReviewReceipt?.(H)},"onMemoryReviewReceipt"),onMemoryNotice:o(H=>{if(H.sessionId!==void 0&&H.sessionId!==y.sessionId){K.events?.onMemoryNotice?.(H);return}let ne=y.lineage??qe(y.messages),F=$f(ne,{...H,createdAt:new Date().toISOString()});y.lineage=F,F!==ne&&console.log(ce.dim(`
274
+ [memory] ${H.summaries.slice(0,3).join("; ")}`)),K.events?.onMemoryNotice?.(H)},"onMemoryNotice"),exitPlanMode:o(async H=>E!=="plan"?"not-in-plan-mode":(await Yc(Pe,"exit_plan_mode",{plan:H},{isProtectedPath:!1,permissionMode:E})).confirmed?(k.permissionMode="accept-edits",E="accept-edits",We(),!0):!1,"exitPlanMode"),beforeToolExecute:o(async(H,ne)=>{let F=E,Ae=Ra(F);if(F==="plan"){let ve=Qi(H,ne,a??process.cwd());if(ve)return console.log(ce.yellow(ve)),`${ve} 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 ve=ne.command??"";if(ba(ve,a??process.cwd(),s.executionCwd??a??process.cwd()))return!0}if(Vf(F,nt.getGuardrail().getEngine()))return!0;if(a&&wi.has(H)){let ve=ne.path;if(ve&&va(ve,a))return(await Yc(Pe,H,ne,{isProtectedPath:!0,permissionMode:F})).confirmed?!0:(console.log(ce.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(Ae.has(H)){if(F==="accept-edits"&&H==="bash"&&await Ia(H,ne,P,vt))return!0;let ve=await Yc(Pe,H,ne,{isOutsideProject:ne._outsideProject===!0,reason:ne._reason,permissionMode:F});if(!ve.confirmed)return console.log(ce.dim("[Cancelled] Operation cancelled by user")),!1;ve.always&&F==="accept-edits"&&(Jf(H,ne,!1),P=$a())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:o(async()=>(fe=await _e(),fe),"reloadAgentsFiles"),readline:Pe,ui:new zh(Pe)},Xe=o(async L=>{y.uiHistory=[...y.uiHistory??[],L];let V=y.title||oi(y.messages);y.title=V,await r.save(y.sessionId,{messages:y.messages,title:V,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,lineage:y.lineage,artifactLedger:y.artifactLedger,uiHistory:y.uiHistory,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}})},"appendPersistedUiHistoryItem"),_t=o(async(L,V)=>{if(!cp({error:L,messageCount:y.messages.length}))return!1;console.log(ce.dim(`
275
+ ${Kl}`));try{await Xe({type:"info",text:Kl})}catch(Ae){let ve=Ae instanceof Error?Ae.message:String(Ae);console.log(ce.dim(`Could not persist recovery hint: ${ve}`))}let H=Av(Vt);if(!H)return console.log(),!1;if(!await H(ap))return!1;let F;try{F=await Vt.recoverSession?.(V)}catch(Ae){let ve=Ae instanceof Error?Ae.message:String(Ae);return console.log(ce.red(`
276
276
  [Recover failed] ${ve}`)),!1}return F==="failed"&&console.log(ce.dim(`Recovery session was created, but the continuation request still failed.
277
277
  `)),F==="recovered"},"maybeRecoverAfterProviderError");Pe.on("SIGINT",async()=>{console.log(ce.dim(`
278
278
 
@@ -289,14 +289,14 @@ ${At}
289
289
  `))}},"onWorkflowRunMessage")},ve=await sp({request:L.request,callbacks:Ae,approval:k.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:L.displayName,processSource:L.processSource??"command",...L.builtin!==void 0?{builtin:L.builtin}:{}});return Wf({outcome:ve})},"startWorkflowInvocation"),pn=o(async(L,V)=>{if(!L||typeof L!="object")return;if(L.workflow){await qn(L.workflow,V);return}if(!L.invocation)return;let H=await Mh({...K,provider:k.provider,thinking:k.thinking,reasoningMode:k.reasoningMode},L.invocation,V,ne=>console.log(ce.dim(`
290
290
  ${ne}`)));if(H.mode==="manual"){H.manualOutput&&console.log(ce.yellow(`
291
291
  ${H.manualOutput}
292
- `)),await H.finalize();return}if(!H.prompt||!H.options){await H.finalize();return}try{let ne=H.mode==="fork"?[]:y.messages,F=await Ux(H.options,y,H.prompt,ne,void 0,e.runtimeRunner,E,te,Ie);if(H.mode==="fork"){let Ae=bv(F.messages);Ae.trim()&&(console.log(`
292
+ `)),await H.finalize();return}if(!H.prompt||!H.options){await H.finalize();return}try{let ne=H.mode==="fork"?[]:y.messages,F=await Vx(H.options,y,H.prompt,ne,void 0,e.runtimeRunner,E,te,Ie);if(H.mode==="fork"){let Ae=Rv(F.messages);Ae.trim()&&(console.log(`
293
293
  ${Ae}
294
- `),y.messages.push({role:"assistant",content:Ae,timestamp:new Date().toISOString()}))}else y.messages=F.messages,y.contextTokenSnapshot=F.contextTokenSnapshot;if(Xh(y,F),y.messages.length>0){let Ae=oi(y.messages);y.title=Ae,await r.save(y.sessionId,{messages:y.messages,title:Ae,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}}),qc(y)}await H.finalize()}catch(ne){throw await H.finalize(ne instanceof Error?ne:new Error(String(ne))),ne}},"handleCommandResult");for(;Re;){if(re&&G){re=!1,Pe.resume();let ve=await Wx(G);if(ve&&ve.trim()&&ve!==G){console.log(ce.dim(`
295
- [Edited message ready to send]`));let ke=ve.trim();Er(y);let At=ts(ke);if(At){let Dt=await ns(At,y,Vt,k);await pn(Dt,ke);continue}let Gt=await Yh(ke,K.context?.executionCwd);if(ke.startsWith("!")&&ju(Gt))continue;let mn=Bc(Gt,K.context?.executionCwd??process.cwd());for(let Dt of mn.warnings)console.log(ce.yellow(`
296
- ${Dt}`));y.messages.push({role:"user",content:mn.messageContent}),G=ke;let si=y.lineage?_I({getLineage:o(()=>y.lineage,"getLineage"),setLineage:o(Dt=>{y.lineage=Dt},"setLineage"),saveSession:o(async()=>{await r.save(y.sessionId,{messages:y.messages,title:y.title??oi(y.messages),gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,artifactLedger:y.artifactLedger,lineage:y.lineage,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}}),qc(y)},"saveSession"),getLatestUsage:o(()=>{},"getLatestUsage"),getTurnStartMs:o(()=>{},"getTurnStartMs"),getPermissionMode:o(()=>E,"getPermissionMode"),hasPendingUserInput:o(()=>or().has({agentId:Tf(y.sessionId,"/root"),maxPriority:"user",mode:"prompt"}),"hasPendingUserInput"),verifyComplete:o(async()=>({ok:!0}),"verifyComplete")}):void 0;try{let Dt=await Hl({...K,provider:k.provider,thinking:k.thinking,reasoningMode:k.reasoningMode,session:{...K.session,initialMessages:y.lineage?Lt(y.lineage,y.lineage.activeEntryId):y.messages,initialExtensionState:y.extensionState??{},initialExtensionRecords:y.extensionRecords??[]},context:{...K.context,taskSurface:"repl",planModeBlockCheck:o((mr,cT)=>E!=="plan"?null:Qi(mr,cT,a??process.cwd()),"planModeBlockCheck"),...mn.inputArtifacts.length>0?{inputArtifacts:mn.inputArtifacts}:{},...si?{goalRuntime:si}:{}}},Gt);if(y.messages=Dt.messages,y.contextTokenSnapshot=Dt.contextTokenSnapshot,Xh(y,Dt),y.artifactLedger=Yo(y.artifactLedger??[],Dt.artifactLedger??_f(Dt.messages)),y.messages.length>0){let mr=oi(y.messages);y.title=mr,await r.save(y.sessionId,{messages:y.messages,title:mr,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,artifactLedger:y.artifactLedger,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}}),qc(y)}}catch(Dt){let mr=Dt instanceof Error?Dt:new Error(String(Dt));if(y.messages.pop(),console.log(ce.red(`
294
+ `),y.messages.push({role:"assistant",content:Ae,timestamp:new Date().toISOString()}))}else y.messages=F.messages,y.contextTokenSnapshot=F.contextTokenSnapshot;if(Xh(y,F),y.messages.length>0){let Ae=oi(y.messages);y.title=Ae,await r.save(y.sessionId,{messages:y.messages,title:Ae,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}}),qc(y)}await H.finalize()}catch(ne){throw await H.finalize(ne instanceof Error?ne:new Error(String(ne))),ne}},"handleCommandResult");for(;Re;){if(re&&G){re=!1,Pe.resume();let ve=await jx(G);if(ve&&ve.trim()&&ve!==G){console.log(ce.dim(`
295
+ [Edited message ready to send]`));let ke=ve.trim();Er(y);let At=ts(ke);if(At){let Dt=await ns(At,y,Vt,k);await pn(Dt,ke);continue}let Gt=await Yh(ke,K.context?.executionCwd);if(ke.startsWith("!")&&Uu(Gt))continue;let mn=Bc(Gt,K.context?.executionCwd??process.cwd());for(let Dt of mn.warnings)console.log(ce.yellow(`
296
+ ${Dt}`));y.messages.push({role:"user",content:mn.messageContent}),G=ke;let si=y.lineage?AI({getLineage:o(()=>y.lineage,"getLineage"),setLineage:o(Dt=>{y.lineage=Dt},"setLineage"),saveSession:o(async()=>{await r.save(y.sessionId,{messages:y.messages,title:y.title??oi(y.messages),gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,artifactLedger:y.artifactLedger,lineage:y.lineage,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}}),qc(y)},"saveSession"),getLatestUsage:o(()=>{},"getLatestUsage"),getTurnStartMs:o(()=>{},"getTurnStartMs"),getPermissionMode:o(()=>E,"getPermissionMode"),hasPendingUserInput:o(()=>or().has({agentId:Tf(y.sessionId,"/root"),maxPriority:"user",mode:"prompt"}),"hasPendingUserInput"),verifyComplete:o(async()=>({ok:!0}),"verifyComplete")}):void 0;try{let Dt=await Wl({...K,provider:k.provider,thinking:k.thinking,reasoningMode:k.reasoningMode,session:{...K.session,initialMessages:y.lineage?Lt(y.lineage,y.lineage.activeEntryId):y.messages,initialExtensionState:y.extensionState??{},initialExtensionRecords:y.extensionRecords??[]},context:{...K.context,taskSurface:"repl",planModeBlockCheck:o((mr,lT)=>E!=="plan"?null:Qi(mr,lT,a??process.cwd()),"planModeBlockCheck"),...mn.inputArtifacts.length>0?{inputArtifacts:mn.inputArtifacts}:{},...si?{goalRuntime:si}:{}}},Gt);if(y.messages=Dt.messages,y.contextTokenSnapshot=Dt.contextTokenSnapshot,Xh(y,Dt),y.artifactLedger=Yo(y.artifactLedger??[],Dt.artifactLedger??_f(Dt.messages)),y.messages.length>0){let mr=oi(y.messages);y.title=mr,await r.save(y.sessionId,{messages:y.messages,title:mr,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,artifactLedger:y.artifactLedger,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}}),qc(y)}}catch(Dt){let mr=Dt instanceof Error?Dt:new Error(String(Dt));if(y.messages.pop(),console.log(ce.red(`
297
297
  [Error] ${mr.message}`)),await _t(mr,Gt))continue}continue}else ve===G&&console.log(ce.dim(`
298
- [No changes made, continuing...]`))}let L=yP(k.permissionMode,k),V=await SP(Pe,L);if(!Re)break;let H=V.trim();if(!H)continue;Er(y);let ne=ts(H);if(ne){let ve=await ns(ne,y,Vt,k);await pn(ve,H);continue}let F=await Yh(H,K.context?.executionCwd);if(H.startsWith("!")&&ju(F))continue;let Ae=Bc(F,K.context?.executionCwd??process.cwd());for(let ve of Ae.warnings)console.log(ce.yellow(`
299
- ${ve}`));y.messages.push({role:"user",content:Ae.messageContent}),G=H;try{let ve=await Ux(K,y,F,y.messages,Ae.inputArtifacts,e.runtimeRunner,E,te,Ie);if(y.messages=ve.messages,y.contextTokenSnapshot=ve.contextTokenSnapshot,Xh(y,ve),y.artifactLedger=Yo(y.artifactLedger??[],ve.artifactLedger??_f(ve.messages)),y.messages.length>0){let ke=oi(y.messages);y.title=ke,await r.save(y.sessionId,{messages:y.messages,title:ke,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,artifactLedger:y.artifactLedger,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}}),qc(y)}}catch(ve){let ke=ve instanceof Error?ve:new Error(String(ve));y.messages.pop(),ke.message.includes("rate limit")||ke.message.includes("Rate limit")?(console.log(ce.yellow(`
298
+ [No changes made, continuing...]`))}let L=CP(k.permissionMode,k),V=await IP(Pe,L);if(!Re)break;let H=V.trim();if(!H)continue;Er(y);let ne=ts(H);if(ne){let ve=await ns(ne,y,Vt,k);await pn(ve,H);continue}let F=await Yh(H,K.context?.executionCwd);if(H.startsWith("!")&&Uu(F))continue;let Ae=Bc(F,K.context?.executionCwd??process.cwd());for(let ve of Ae.warnings)console.log(ce.yellow(`
299
+ ${ve}`));y.messages.push({role:"user",content:Ae.messageContent}),G=H;try{let ve=await Vx(K,y,F,y.messages,Ae.inputArtifacts,e.runtimeRunner,E,te,Ie);if(y.messages=ve.messages,y.contextTokenSnapshot=ve.contextTokenSnapshot,Xh(y,ve),y.artifactLedger=Yo(y.artifactLedger??[],ve.artifactLedger??_f(ve.messages)),y.messages.length>0){let ke=oi(y.messages);y.title=ke,await r.save(y.sessionId,{messages:y.messages,title:ke,gitRoot:y.gitRoot??"",runtimeInfo:y.runtimeInfo,artifactLedger:y.artifactLedger,...Fi(y),...K.session?.tag!==void 0?{tag:K.session.tag}:{}}),qc(y)}}catch(ve){let ke=ve instanceof Error?ve:new Error(String(ve));y.messages.pop(),ke.message.includes("rate limit")||ke.message.includes("Rate limit")?(console.log(ce.yellow(`
300
300
  [Rate Limit] ${ke.message}`)),console.log(ce.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
301
301
  `))):ke.message.includes("API key")||ke.message.includes("not configured")?(console.log(ce.red(`
302
302
  [Configuration Error] ${ke.message}`)),console.log(ce.dim(`Suggestion: Set the required API key environment variable
@@ -306,15 +306,15 @@ ${ve}`));y.messages.push({role:"user",content:Ae.messageContent}),G=H;try{let ve
306
306
  [Context Error] ${ke.message}`)),console.log(ce.dim(`Suggestion: Use /clear to start a fresh conversation
307
307
  `))):(console.log(ce.red(`
308
308
  [Error] ${ke.message}`)),console.log(ce.dim(`Your message was not sent. Please try again.
309
- `))),await _t(ke,F)}}}o(CP,"runInteractiveMode");async function Yh(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 Wu(r,{cwd:t})}return e}o(Yh,"processSpecialSyntax");function LG(e){let t=e.snapshot;if(e.type==="workflow_started")return ce.dim(`
309
+ `))),await _t(ke,F)}}}o(kP,"runInteractiveMode");async function Yh(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 ju(r,{cwd:t})}return e}o(Yh,"processSpecialSyntax");function GG(e){let t=e.snapshot;if(e.type==="workflow_started")return ce.dim(`
310
310
  \u25B6 workflow ${t.workflowName} started (${t.runId})`);if(e.type==="workflow_finished"){let n=t.status==="completed"?ce.green("\u2713"):t.status==="failed"?ce.red("\u2717"):ce.yellow("\u2022"),r=t.resultSummary?` \u2014 ${t.resultSummary.split(`
311
- `)[0]}`:"";return`${n} workflow ${t.workflowName} ${t.status}${r}`}if(e.type==="workflow_updated"&&e.message)return ce.dim(` ${e.message}`)}o(LG,"renderInlineWorkflowProcessLine");async function Ux(e,t,n,r=t.messages,i,s,a="accept-edits",c,l){let u={...e.events??{},getCostReport:Gx,onWorkflowProcessEvent:o(p=>{let h=LG(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,C=typeof m.name=="string"?m.name:void 0,w=Vl(g,C),T=op(h,w,p);T&&console.log(`
311
+ `)[0]}`:"";return`${n} workflow ${t.workflowName} ${t.status}${r}`}if(e.type==="workflow_updated"&&e.message)return ce.dim(` ${e.message}`)}o(GG,"renderInlineWorkflowProcessLine");async function Vx(e,t,n,r=t.messages,i,s,a="accept-edits",c,l){let u={...e.events??{},getCostReport:Kx,onWorkflowProcessEvent:o(p=>{let h=GG(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,C=typeof m.name=="string"?m.name:void 0,w=Gl(g,C),T=op(h,w,p);T&&console.log(`
312
312
  ${T}
313
- `)},"onWorkflowAgentDigest"),onCompactedMessages:o(async(p,h,m)=>{let g=Ih(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=Yo(t.artifactLedger??[],h.artifactLedger)),s)t.lineage=Sa(g);else{let C=e.session?.storage;if(!C)throw new Error("Classic REPL compaction requires Session storage.");try{await C.save(t.sessionId,{messages:p,title:oi(p),gitRoot:t.gitRoot??"",runtimeInfo:t.runtimeInfo,lineage:g,artifactLedger:t.artifactLedger,...Fi(t),...e.session?.tag!==void 0?{tag:e.session.tag}:{}}),t.lineage=Sa(g)}catch(w){throw ft({source:"repl:compaction",level:"error",message:"Failed to durably persist compacted session history.",detail:w}),w}}await e.events?.onCompactedMessages?.(p,h,m)},"onCompactedMessages")};_G(t.gitRoot,e);let d={...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:d,prompt:n,sessionId:t.sessionId,permissionMode:a,...l!==void 0?{autoModeSettings:l}:{},...c!==void 0?{requestPermission:c}:{},legacyPermissionHook:!0}):Hl(d,n)}o(Ux,"runAgentRound");function oi(e){return to(e)}o(oi,"extractTitle");import qh from"node:fs";import PG from"node:path";function IP(){let e=Zh();return eg(e).map(n=>Jh(n))}o(IP,"listCustomProviders");function vP(e){if(typeof e!="string"||e.length===0)return;let t=eg(Zh()).find(n=>n.name===e);return t?Jh(t):void 0}o(vP,"getCustomProviderConfig");function bP(e){JC(e);let t=Jh(e),n=Qh(),r=Wl(n,()=>{let i=Zh(),s=eg(i),a=s.findIndex(l=>l.name===t.name),c=a>=0?s.map((l,u)=>u===a?t:l):[...s,t];return kP({...i,customProviders:c}),c});return zg(r),Jh(t)}o(bP,"upsertCustomProvider");function RP(e){if(typeof e!="string"||e.length===0)return!1;let t=Qh(),n=Wl(t,()=>{let r=Zh(),i=eg(r),s=i.filter(a=>a.name!==e);if(s.length!==i.length)return kP({...r,customProviders:s}),s});return n?(zg(n),!0):!1}o(RP,"removeCustomProvider");function Qh(){return qi("config.json")}o(Qh,"configFilePath");function Zh(){let e=Qh();if(!qh.existsSync(e))return{};try{let t=JSON.parse(qh.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}o(Zh,"readWholeConfig");function kP(e){let t=Qh();qh.mkdirSync(PG.dirname(t),{recursive:!0}),qh.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}o(kP,"writeWholeConfig");function eg(e){let t=e.customProviders;return Array.isArray(t)?t:[]}o(eg,"extractCustomProviders");function Jh(e){return structuredClone(e)}o(Jh,"cloneCustomProvider");function EP(){return structuredClone(qo(Xo()).document.servers)}o(EP,"listMcpServers");function MP(e){if(typeof e!="string"||e.length===0)return;let t=qo(Xo()).document.servers[e];return t===void 0?void 0:structuredClone(t)}o(MP,"getMcpServerConfig");function _P(e,t){Kx(e,t);let n=Xo(),r=qo(n),i=structuredClone(t);return jl({domain:"mcp",configHome:n,...r.source==="user"?{expectedRevision:r.revision}:{},document:{version:1,servers:{...r.document.servers,[e]:i}},validate:Ea}),structuredClone(i)}o(_P,"upsertMcpServer");function AP(e){if(typeof e!="string"||e.length===0)return!1;let t=Xo(),n=qo(t);if(!(e in n.document.servers))return!1;let r=structuredClone(n.document.servers);return delete r[e],jl({domain:"mcp",configHome:t,...n.source==="user"?{expectedRevision:n.revision}:{},document:{version:1,servers:r},validate:Ea}),!0}o(AP,"removeMcpServer");function Kx(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("MCP server name must be a non-empty string");Ea({version:1,servers:{[e]:t}})}o(Kx,"validateMcpServerConfig");import Ds from"node:fs/promises";import Cn from"node:path";var $G=8;function LP(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(LP,"isRecord");function PP(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")&&!e.startsWith("archived-")}o(PP,"isSessionFile");async function NG(e){let t=[],n=[];try{n=await Ds.readdir(e,{withFileTypes:!0})}catch{return t}for(let r of n){if(r.isFile()){PP(r.name)&&t.push(Cn.join(e,r.name));continue}if(!r.isDirectory()||r.name.startsWith("."))continue;let i=Cn.join(e,r.name),s=[];try{s=await Ds.readdir(i)}catch{continue}for(let a of s)PP(a)&&t.push(Cn.join(i,a))}return t}o(NG,"collectSessionFiles");function OG(e,t){let r=Cn.relative(e,t).split(Cn.sep);return r.length>1?r[0]:void 0}o(OG,"getProjectKey");async function DG(e,t){let n=Cn.relative(e,t),r=Cn.basename(t,".jsonl");try{let s=(await Ds.readFile(t,"utf8")).split(/\r?\n/,1)[0];if(!s)return null;let a=JSON.parse(s);if(!LP(a)||a._type!=="meta")return null;let c=LP(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,d=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:OG(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:!!(d&&d.length>0||a.lineageVersion===2||h||p>0)}}catch{return null}}o(DG,"parseCandidate");function BG(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(BG,"sameProject");function FG(e,t){if(t.isRunner||t.scope!=="user"||!BG(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>=$G?{canonical:t,score:n,reasons:r}:null}o(FG,"scoreCandidate");function HG(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(HG,"formatArchiveBatch");async function WG(e){let t=e,n=1;for(;;){try{await Ds.access(t)}catch{return t}let r=Cn.extname(e);t=`${e.slice(0,e.length-r.length)}.${n}${r}`,n+=1}}o(WG,"uniqueTargetPath");async function $P(e={}){let t=e.sessionsDir??Wr;e.apply&&(await Ds.mkdir(t,{recursive:!0}),await ks(t));let n=await NG(t),r=[],i=[];for(let d of n){let p=await DG(t,d);if(!p){Cn.basename(d).startsWith("runner-")&&i.push({runnerId:Cn.basename(d,".jsonl"),path:d,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(d=>d.isRunner&&d.scope==="user"),a=r.filter(d=>!d.isRunner&&d.scope==="user"),c=[];for(let d of s){let p=a.map(m=>FG(d,m)).filter(m=>m!==null).sort((m,g)=>g.score-m.score);if(p.length===0){i.push({runnerId:d.id,path:d.filePath,reason:"no-match"});continue}if(p.length>1){i.push({runnerId:d.id,path:d.filePath,reason:"ambiguous-match",detail:p.map(m=>`${m.canonical.id}:${m.score}`).join(", ")});continue}let h=p[0];c.push({runnerId:d.id,runnerPath:d.filePath,canonicalId:h.canonical.id,canonicalPath:h.canonical.filePath,score:h.score,reasons:h.reasons})}let l=[],u=Cn.join(t,".dedupe-archive",HG(e.now??new Date));if(e.apply)for(let d of c){let p=Cn.relative(t,d.runnerPath),h;try{h=await WG(Cn.join(u,p)),await Ds.mkdir(Cn.dirname(h),{recursive:!0}),await Ds.rename(d.runnerPath,h),l.push({runnerId:d.runnerId,from:d.runnerPath,to:h})}catch(m){i.push({runnerId:d.runnerId,path:d.runnerPath,reason:"move-failed",detail:`target=${h??Cn.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($P,"dedupeSessions");function jG(e){return e?.storage?e.storage:e?.sessionsDir!==void 0?new fr({sessionsDir:e.sessionsDir}):new fr}o(jG,"resolveStorage");async function Jc(e,t){let n={compacted:!1,tokensBefore:0,tokensAfter:0,messages:[]};try{let r=jG(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=Ko(a);if(!c)return{...n,messages:s,reason:`provider not found: ${a}`};let l=t?.contextWindow??c.getEffectiveContextWindow?.(t?.model)??c.getContextWindow?.()??2e5,u=zo(s),d=await Qf(),p=oI({...d,contextWindow:l,triggerPercent:t?.triggerPercent??d.triggerPercent,triggerTokens:t?.triggerTokens??d.triggerTokens}),h=await sI(s,p,c,l,t?.customInstructions,void 0,u,TI,CI,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??[],C=Math.max(0,(h.tokensBefore??0)-(h.tokensAfter??0)),{ledgerMessage:w}=aI(g,C),T=w?[w]:[],v=qe(s,i.lineage),_=Af(v,h.messages,m,T),P=Lt(_),k=zo(P),E=[..._.entries].reverse().find(O=>O.type==="compaction"),$=E?{..._,entries:_.entries.map(O=>O.id===E.id&&O.type==="compaction"?{...O,tokensAfter:k}:O)}:_,B={...i,messages:P,lineage:$,artifactLedger:h.artifactLedger??i.artifactLedger};return await r.save(e,B),{compacted:!0,tokensBefore:h.tokensBefore,tokensAfter:k,messages:P,report:h.report}}catch(r){return{...n,reason:r instanceof Error?r.message:String(r)}}}o(Jc,"compactSession");import Bs from"node:fs";import Wi from"node:fs/promises";import Ot from"node:path";import{createHash as UG,randomUUID as VG}from"node:crypto";async function GG(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 Wi.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(Ot.join(e,a.name));continue}if(!a.isDirectory()||a.name.startsWith("."))continue;let c=Ot.join(e,a.name);try{for(let l of await Wi.readdir(c))i(l)&&n.push(Ot.join(c,l))}catch(l){l.code!=="ENOENT"&&(r=!1)}if(t){let l=Ot.join(c,"archived");try{for(let u of await Wi.readdir(l))i(u)&&n.push(Ot.join(l,u))}catch(u){u.code!=="ENOENT"&&(r=!1)}}}return{paths:n,complete:r}}o(GG,"collectSessionFilePaths");function KG(e,t,n){return n?.trim()?ip({...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(KG,"sessionMatchesProjectRoot");async function zG(e){let t=[],n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=await Wi.readdir(r,{withFileTypes:!0})}catch{continue}for(let s of i){let a=Ot.join(r,s.name);s.isDirectory()&&!s.isSymbolicLink()?n.push(a):s.isFile()&&s.name.endsWith(".jsonl")&&t.push(a)}}return t}o(zG,"collectJsonlFiles");async function XG(e,t){let n;try{n=new Set(await Wi.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(Ot.join(t,c))}},"collectNames");for(let s of await zG(e)){let a;try{a=await Wi.readFile(s,"utf-8")}catch{continue}i(a)}for(let s of[...r].filter(a=>Ot.basename(a).includes("-bash-recovery-manifest-")))try{i(await Wi.readFile(s,"utf-8"))}catch{}return r}o(XG,"collectToolOutputReferences");function YG(e){let t=pI();setTimeout(()=>{gI(t,()=>XG(e,t))},3e4).unref()}o(YG,"scheduleToolOutputRetention");async function qG(e){let t=await xh(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(qG,"readSessionMetaRecord");async function JG(e,t){if(typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0)return t.activeMessageCount;let n=(await Wi.readFile(e,"utf-8")).trim(),r=typeof t.extensionRecordCount=="number"&&t.extensionRecordCount>0?t.extensionRecordCount:0;return Math.max(0,n.split(`
314
- `).length-1-r)}o(JG,"readActiveMessageCount");async function QG(e,t){let n=await qG(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"?HP(n.runtimeInfo):void 0,l=typeof n.gitRoot=="string"?n.gitRoot:void 0,u=c??(l?{gitRoot:l}:void 0);if(!KG(u,l,t.gitRoot)||t.surface!==void 0&&u?.surface!==t.surface)return;let d=Ot.basename(e,".jsonl"),p=Ot.basename(Ot.dirname(e))==="archived";return{id:d,title:typeof n.title=="string"?n.title:"",msgCount:await JG(e,n),...a!==void 0?{tag:a}:{},...i!==void 0?{createdAt:i}:{},...u!==void 0?{runtimeInfo:u}:{},projectKey:es(u?.gitRoot??u?.workspaceRoot).key,...p?{archived:!0}:{},_createdAtMs:s}}o(QG,"readSessionListCandidate");function pr(e,t){return e!==void 0||t!==void 0?new fr({...e===void 0?{}:{sessionsDir:e},...t===void 0?{}:{configHome:t}}):new fr}o(pr,"getStorage");function BP(e){return e??Wr}o(BP,"resolveSessionsDir");function Qx(e){return Buffer.from(e,"utf8").toString("base64url")}o(Qx,"encodeSessionCursor");function ZG(e){if(!(!e||e.length>1024))try{let t=Buffer.from(e,"base64url").toString("utf8");return t&&Qx(t)===e?t:void 0}catch{return}}o(ZG,"decodeSessionCursor");async function Zx(e){return FP(e,void 0)}o(Zx,"listSessions");async function FP(e,t){try{let n=BP(t);await ks(n);let r=e?.projectRoot,i=pr(t);await Wi.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,d=e?.surface,p=e?.cursor===void 0?void 0:ZG(e.cursor);if(e?.cursor!==void 0&&p===void 0)return[];if(s==="user"&&l===void 0&&!a&&u===void 0&&d===void 0&&p===void 0)return(await i.list(r,{limit:c})).map(eK);let h=i.beginSessionLocationTraversal(),m=await GG(n,!0),g=m.paths;i.completeSessionLocationTraversal(h,g.filter(E=>!Ot.basename(E).startsWith("archived-")),m.complete);let C=a?g:g.filter(E=>Ot.basename(Ot.dirname(E))!=="archived"&&!Ot.basename(E).startsWith("archived-")),w=[],T=new Set,v={scope:s,...l!==void 0?{before:l}:{},...u!==void 0?{tag:u}:{},...d!==void 0?{surface:d}:{},...r!==void 0?{gitRoot:r}:{}},_=48;for(let E=0;E<C.length;E+=_){let $=await Promise.all(C.slice(E,E+_).map(async B=>{try{return await QG(B,v)}catch(O){ft({source:"session.public-api",level:"warn",message:"Unreadable session record was skipped.",detail:{filePath:B,error:O}});return}}));for(let B of $)B&&!T.has(B.id)&&(T.add(B.id),w.push(B))}w.sort((E,$)=>{let B=E._createdAtMs,O=$._createdAtMs;return Number.isFinite(B)&&Number.isFinite(O)&&B!==O?O-B:Number.isFinite(O)&&!Number.isFinite(B)?1:Number.isFinite(B)&&!Number.isFinite(O)?-1:$.id.localeCompare(E.id)});let P=p===void 0?-1:w.findIndex(E=>E.id===p);if(p!==void 0&&P<0)return[];let k=P+1;return w.slice(k,k+c).map(({id:E,title:$,msgCount:B,tag:O,createdAt:G,runtimeInfo:re,projectKey:X,archived:y})=>({id:E,cursor:Qx(E),title:$,msgCount:B,...O!==void 0?{tag:O}:{},...G!==void 0?{createdAt:G}:{},...re!==void 0?{runtimeInfo:re}:{},...X!==void 0?{projectKey:X}:{},...y?{archived:!0}:{}}))}catch{return[]}}o(FP,"listSessionsImpl");function HP(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(HP,"extractRuntimeInfoSummary");function eK(e){let t=e.runtimeInfo?HP(e.runtimeInfo):void 0,n=es(t?.gitRoot??t?.workspaceRoot).key;return{id:e.id,cursor:Qx(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(eK,"toSessionSummary");function tg(e){return typeof e=="object"&&e!==null}o(tg,"isRecord");function WP(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(WP,"collectActiveIds");function NP(e,t){return t==="branch_summary"?{role:"user",content:`The following is a summary of a branch that this conversation came back from:
313
+ `)},"onWorkflowAgentDigest"),onCompactedMessages:o(async(p,h,m)=>{let g=Ih(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=Yo(t.artifactLedger??[],h.artifactLedger)),s)t.lineage=Sa(g);else{let C=e.session?.storage;if(!C)throw new Error("Classic REPL compaction requires Session storage.");try{await C.save(t.sessionId,{messages:p,title:oi(p),gitRoot:t.gitRoot??"",runtimeInfo:t.runtimeInfo,lineage:g,artifactLedger:t.artifactLedger,...Fi(t),...e.session?.tag!==void 0?{tag:e.session.tag}:{}}),t.lineage=Sa(g)}catch(w){throw ft({source:"repl:compaction",level:"error",message:"Failed to durably persist compacted session history.",detail:w}),w}}await e.events?.onCompactedMessages?.(p,h,m)},"onCompactedMessages")};UG(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}):Wl(f,n)}o(Vx,"runAgentRound");function oi(e){return to(e)}o(oi,"extractTitle");import qh from"node:fs";import KG from"node:path";function EP(){let e=Zh();return eg(e).map(n=>Jh(n))}o(EP,"listCustomProviders");function MP(e){if(typeof e!="string"||e.length===0)return;let t=eg(Zh()).find(n=>n.name===e);return t?Jh(t):void 0}o(MP,"getCustomProviderConfig");function _P(e){QC(e);let t=Jh(e),n=Qh(),r=jl(n,()=>{let i=Zh(),s=eg(i),a=s.findIndex(l=>l.name===t.name),c=a>=0?s.map((l,u)=>u===a?t:l):[...s,t];return LP({...i,customProviders:c}),c});return zg(r),Jh(t)}o(_P,"upsertCustomProvider");function AP(e){if(typeof e!="string"||e.length===0)return!1;let t=Qh(),n=jl(t,()=>{let r=Zh(),i=eg(r),s=i.filter(a=>a.name!==e);if(s.length!==i.length)return LP({...r,customProviders:s}),s});return n?(zg(n),!0):!1}o(AP,"removeCustomProvider");function Qh(){return qi("config.json")}o(Qh,"configFilePath");function Zh(){let e=Qh();if(!qh.existsSync(e))return{};try{let t=JSON.parse(qh.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}o(Zh,"readWholeConfig");function LP(e){let t=Qh();qh.mkdirSync(KG.dirname(t),{recursive:!0}),qh.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}o(LP,"writeWholeConfig");function eg(e){let t=e.customProviders;return Array.isArray(t)?t:[]}o(eg,"extractCustomProviders");function Jh(e){return structuredClone(e)}o(Jh,"cloneCustomProvider");function PP(){return structuredClone(qo(Xo()).document.servers)}o(PP,"listMcpServers");function OP(e){if(typeof e!="string"||e.length===0)return;let t=qo(Xo()).document.servers[e];return t===void 0?void 0:structuredClone(t)}o(OP,"getMcpServerConfig");function $P(e,t){zx(e,t);let n=Xo(),r=qo(n),i=structuredClone(t);return Ul({domain:"mcp",configHome:n,...r.source==="user"?{expectedRevision:r.revision}:{},document:{version:1,servers:{...r.document.servers,[e]:i}},validate:Ea}),structuredClone(i)}o($P,"upsertMcpServer");function NP(e){if(typeof e!="string"||e.length===0)return!1;let t=Xo(),n=qo(t);if(!(e in n.document.servers))return!1;let r=structuredClone(n.document.servers);return delete r[e],Ul({domain:"mcp",configHome:t,...n.source==="user"?{expectedRevision:n.revision}:{},document:{version:1,servers:r},validate:Ea}),!0}o(NP,"removeMcpServer");function zx(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("MCP server name must be a non-empty string");Ea({version:1,servers:{[e]:t}})}o(zx,"validateMcpServerConfig");import Ds from"node:fs/promises";import Cn from"node:path";var zG=8;function DP(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(DP,"isRecord");function BP(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")&&!e.startsWith("archived-")}o(BP,"isSessionFile");async function XG(e){let t=[],n=[];try{n=await Ds.readdir(e,{withFileTypes:!0})}catch{return t}for(let r of n){if(r.isFile()){BP(r.name)&&t.push(Cn.join(e,r.name));continue}if(!r.isDirectory()||r.name.startsWith("."))continue;let i=Cn.join(e,r.name),s=[];try{s=await Ds.readdir(i)}catch{continue}for(let a of s)BP(a)&&t.push(Cn.join(i,a))}return t}o(XG,"collectSessionFiles");function YG(e,t){let r=Cn.relative(e,t).split(Cn.sep);return r.length>1?r[0]:void 0}o(YG,"getProjectKey");async function qG(e,t){let n=Cn.relative(e,t),r=Cn.basename(t,".jsonl");try{let s=(await Ds.readFile(t,"utf8")).split(/\r?\n/,1)[0];if(!s)return null;let a=JSON.parse(s);if(!DP(a)||a._type!=="meta")return null;let c=DP(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:YG(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(qG,"parseCandidate");function JG(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(JG,"sameProject");function QG(e,t){if(t.isRunner||t.scope!=="user"||!JG(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>=zG?{canonical:t,score:n,reasons:r}:null}o(QG,"scoreCandidate");function ZG(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(ZG,"formatArchiveBatch");async function eK(e){let t=e,n=1;for(;;){try{await Ds.access(t)}catch{return t}let r=Cn.extname(e);t=`${e.slice(0,e.length-r.length)}.${n}${r}`,n+=1}}o(eK,"uniqueTargetPath");async function FP(e={}){let t=e.sessionsDir??Wr;e.apply&&(await Ds.mkdir(t,{recursive:!0}),await ks(t));let n=await XG(t),r=[],i=[];for(let f of n){let p=await qG(t,f);if(!p){Cn.basename(f).startsWith("runner-")&&i.push({runnerId:Cn.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=>QG(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=Cn.join(t,".dedupe-archive",ZG(e.now??new Date));if(e.apply)for(let f of c){let p=Cn.relative(t,f.runnerPath),h;try{h=await eK(Cn.join(u,p)),await Ds.mkdir(Cn.dirname(h),{recursive:!0}),await Ds.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??Cn.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(FP,"dedupeSessions");function tK(e){return e?.storage?e.storage:e?.sessionsDir!==void 0?new fr({sessionsDir:e.sessionsDir}):new fr}o(tK,"resolveStorage");async function Jc(e,t){let n={compacted:!1,tokensBefore:0,tokensAfter:0,messages:[]};try{let r=tK(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=Ko(a);if(!c)return{...n,messages:s,reason:`provider not found: ${a}`};let l=t?.contextWindow??c.getEffectiveContextWindow?.(t?.model)??c.getContextWindow?.()??2e5,u=zo(s),f=await Qf(),p=sI({...f,contextWindow:l,triggerPercent:t?.triggerPercent??f.triggerPercent,triggerTokens:t?.triggerTokens??f.triggerTokens}),h=await aI(s,p,c,l,t?.customInstructions,void 0,u,CI,II,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??[],C=Math.max(0,(h.tokensBefore??0)-(h.tokensAfter??0)),{ledgerMessage:w}=cI(g,C),T=w?[w]:[],v=qe(s,i.lineage),A=Af(v,h.messages,m,T),D=Lt(A),k=zo(D),E=[...A.entries].reverse().find($=>$.type==="compaction"),P=E?{...A,entries:A.entries.map($=>$.id===E.id&&$.type==="compaction"?{...$,tokensAfter:k}:$)}:A,B={...i,messages:D,lineage:P,artifactLedger:h.artifactLedger??i.artifactLedger};return await r.save(e,B),{compacted:!0,tokensBefore:h.tokensBefore,tokensAfter:k,messages:D,report:h.report}}catch(r){return{...n,reason:r instanceof Error?r.message:String(r)}}}o(Jc,"compactSession");import Bs from"node:fs";import Wi from"node:fs/promises";import Nt from"node:path";import{createHash as nK,randomUUID as rK}from"node:crypto";async function iK(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 Wi.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(Nt.join(e,a.name));continue}if(!a.isDirectory()||a.name.startsWith("."))continue;let c=Nt.join(e,a.name);try{for(let l of await Wi.readdir(c))i(l)&&n.push(Nt.join(c,l))}catch(l){l.code!=="ENOENT"&&(r=!1)}if(t){let l=Nt.join(c,"archived");try{for(let u of await Wi.readdir(l))i(u)&&n.push(Nt.join(l,u))}catch(u){u.code!=="ENOENT"&&(r=!1)}}}return{paths:n,complete:r}}o(iK,"collectSessionFilePaths");function oK(e,t,n){return n?.trim()?ip({...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(oK,"sessionMatchesProjectRoot");async function sK(e){let t=[],n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=await Wi.readdir(r,{withFileTypes:!0})}catch{continue}for(let s of i){let a=Nt.join(r,s.name);s.isDirectory()&&!s.isSymbolicLink()?n.push(a):s.isFile()&&s.name.endsWith(".jsonl")&&t.push(a)}}return t}o(sK,"collectJsonlFiles");async function aK(e,t){let n;try{n=new Set(await Wi.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(Nt.join(t,c))}},"collectNames");for(let s of await sK(e)){let a;try{a=await Wi.readFile(s,"utf-8")}catch{continue}i(a)}for(let s of[...r].filter(a=>Nt.basename(a).includes("-bash-recovery-manifest-")))try{i(await Wi.readFile(s,"utf-8"))}catch{}return r}o(aK,"collectToolOutputReferences");function cK(e){let t=mI();setTimeout(()=>{yI(t,()=>aK(e,t))},3e4).unref()}o(cK,"scheduleToolOutputRetention");async function lK(e){let t=await xh(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(lK,"readSessionMetaRecord");async function uK(e,t){if(typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0)return t.activeMessageCount;let n=(await Wi.readFile(e,"utf-8")).trim(),r=typeof t.extensionRecordCount=="number"&&t.extensionRecordCount>0?t.extensionRecordCount:0;return Math.max(0,n.split(`
314
+ `).length-1-r)}o(uK,"readActiveMessageCount");async function dK(e,t){let n=await lK(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"?GP(n.runtimeInfo):void 0,l=typeof n.gitRoot=="string"?n.gitRoot:void 0,u=c??(l?{gitRoot:l}:void 0);if(!oK(u,l,t.gitRoot)||t.surface!==void 0&&u?.surface!==t.surface)return;let f=Nt.basename(e,".jsonl"),p=Nt.basename(Nt.dirname(e))==="archived";return{id:f,title:typeof n.title=="string"?n.title:"",msgCount:await uK(e,n),...a!==void 0?{tag:a}:{},...i!==void 0?{createdAt:i}:{},...u!==void 0?{runtimeInfo:u}:{},projectKey:es(u?.gitRoot??u?.workspaceRoot).key,...p?{archived:!0}:{},_createdAtMs:s}}o(dK,"readSessionListCandidate");function pr(e,t){return e!==void 0||t!==void 0?new fr({...e===void 0?{}:{sessionsDir:e},...t===void 0?{}:{configHome:t}}):new fr}o(pr,"getStorage");function UP(e){return e??Wr}o(UP,"resolveSessionsDir");function Zx(e){return Buffer.from(e,"utf8").toString("base64url")}o(Zx,"encodeSessionCursor");function fK(e){if(!(!e||e.length>1024))try{let t=Buffer.from(e,"base64url").toString("utf8");return t&&Zx(t)===e?t:void 0}catch{return}}o(fK,"decodeSessionCursor");async function eT(e){return VP(e,void 0)}o(eT,"listSessions");async function VP(e,t){try{let n=UP(t);await ks(n);let r=e?.projectRoot,i=pr(t);await Wi.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:fK(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(pK);let h=i.beginSessionLocationTraversal(),m=await iK(n,!0),g=m.paths;i.completeSessionLocationTraversal(h,g.filter(E=>!Nt.basename(E).startsWith("archived-")),m.complete);let C=a?g:g.filter(E=>Nt.basename(Nt.dirname(E))!=="archived"&&!Nt.basename(E).startsWith("archived-")),w=[],T=new Set,v={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<C.length;E+=A){let P=await Promise.all(C.slice(E,E+A).map(async B=>{try{return await dK(B,v)}catch($){ft({source:"session.public-api",level:"warn",message:"Unreadable session record was skipped.",detail:{filePath:B,error:$}});return}}));for(let B of P)B&&!T.has(B.id)&&(T.add(B.id),w.push(B))}w.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 D=p===void 0?-1:w.findIndex(E=>E.id===p);if(p!==void 0&&D<0)return[];let k=D+1;return w.slice(k,k+c).map(({id:E,title:P,msgCount:B,tag:$,createdAt:G,runtimeInfo:re,projectKey:X,archived:y})=>({id:E,cursor:Zx(E),title:P,msgCount:B,...$!==void 0?{tag:$}:{},...G!==void 0?{createdAt:G}:{},...re!==void 0?{runtimeInfo:re}:{},...X!==void 0?{projectKey:X}:{},...y?{archived:!0}:{}}))}catch{return[]}}o(VP,"listSessionsImpl");function GP(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(GP,"extractRuntimeInfoSummary");function pK(e){let t=e.runtimeInfo?GP(e.runtimeInfo):void 0,n=es(t?.gitRoot??t?.workspaceRoot).key;return{id:e.id,cursor:Zx(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(pK,"toSessionSummary");function tg(e){return typeof e=="object"&&e!==null}o(tg,"isRecord");function KP(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(KP,"collectActiveIds");function HP(e,t){return t==="branch_summary"?{role:"user",content:`The following is a summary of a branch that this conversation came back from:
315
315
 
316
316
  <summary>
317
317
  ${e}
318
318
  </summary>`}:{role:"system",content:`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
319
319
 
320
- ${e}`}}o(NP,"summaryMessage");function OP(e){return{role:"system",content:`[Rewind] ${e}`}}o(OP,"rewindMarkerMessage");function tK(e){return{role:"system",content:e.content,_source:"client_notice",timestamp:e.timestamp,...e.turnId!==void 0?{turnId:e.turnId}:{}}}o(tK,"clientNoticeMessage");function zx(e,t){let n=e[t];return typeof n=="string"?n:void 0}o(zx,"messageStringField");function nK(e){if(e.role==="user")return"user";if(e.role==="assistant")return"assistant";if(e.role==="system")return"system"}o(nK,"messageSource");function DP(e){return tg(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(DP,"isTaskResultMetadata");function rK(e){if(DP(e._taskResult))return[e._taskResult];if(Array.isArray(e._taskResults))return e._taskResults.filter(DP);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(rK,"taskResultsFromMessage");function iK(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(iK,"taskResultPayload");function oK(e){if(!tg(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(oK,"legacyRewindDetails");function sK(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(sK,"transcriptEntryActive");function Lo(e){return{entryId:e.id,parentId:e.parentId,logicalId:e.logicalId??e.id,...e.sourceEntryId!==void 0?{sourceEntryId:e.sourceEntryId}:{}}}o(Lo,"transcriptEntryIdentity");function jP(e,t,n){let r=sK(e,t,n);switch(e.type){case"message":{let i=rK(e.message);if(i.length>0){let s=i[0];return{...Lo(e),timestamp:e.timestamp,type:"task_result",source:s.source,turnId:zx(e.message,"turnId"),message:e.message,active:r,payload:iK(i),taskResults:i}}return e.message._source==="client_notice"?{...Lo(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:zx(e.message,"turnId"),message:e.message,active:r,payload:{content:e.message.content,entersModelContext:!1}}:{...Lo(e),timestamp:e.timestamp,type:"message",source:nK(e.message),turnId:zx(e.message,"turnId"),message:e.message,active:r}}case"compaction":if(e.reason==="rewind"){let i=oK(e.details),s=r||(e.parentId===null?n===null:t.has(e.parentId));return{...Lo(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:OP(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{...Lo(e),timestamp:e.timestamp,type:"compaction",source:"system",message:NP(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{...Lo(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:OP(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{...Lo(e),timestamp:e.timestamp,type:"branch_summary",source:"system",message:NP(e.summary,"branch_summary"),active:r,summary:e.summary,payload:{summary:e.summary,fromId:e.fromId,details:e.details}};case"client_notice":return{...Lo(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:e.turnId,message:tK(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(jP,"toTranscriptEntry");function aK(e){let t=WP(e);return e.entries.map(n=>jP(n,t,e.activeEntryId)).filter(n=>n!==null)}o(aK,"buildTranscriptEntries");async function UP(e){return cK(e,void 0)}o(UP,"loadSession");async function cK(e,t){return Xx(e,pr(t))}o(cK,"loadSessionImpl");async function Xx(e,t){try{return await t.load(e)}catch{return null}}o(Xx,"loadSessionWithStorage");async function VP(e){return mK(e,void 0)}o(VP,"loadFullTranscript");async function GP(e,t={}){return YP(e,void 0,t)}o(GP,"readFullTranscript");async function KP(e,t={}){return Yx(e,pr(),t)}o(KP,"readConversationHistory");function eT(e,t){return e.transcript.lineage===void 0?uE(e.transcript.activeMessages,e.sourceRevision,t):Xu(e.transcript.lineage,e.sourceRevision,t)}o(eT,"conversationHistoryFromCapture");async function zP(e,t={}){return Hi(e,pr(),t)}o(zP,"readSessionCapture");async function XP(e,t={}){if(t.signal?.aborted)throw new xe("read_cancelled","Session bundle export cancelled");let n=Ot.resolve(t.sessionsDir??Wr),r=fK(t.timeoutMs),i=(async()=>{let s=await DM(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:UG("sha256").update(l.bytes).digest("hex"),modifiedAt:l.modifiedAt,content:l.bytes.toString("utf8"),contentBase64:l.bytes.toString("base64")})),c=a.flatMap(lK);return{sessionId:e,status:dK(c),files:a,diagnostics:c}})();return pK(i,t,r)}o(XP,"exportSessionBundle");function lK(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&&tg(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}uK(a,e.kind)||t.push({code:"unsupported_record",file:e.path,line:i+1,message:"Unknown record was preserved verbatim."})}return t}o(lK,"inspectSessionBundleFile");function uK(e,t){return tg(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(uK,"isRecognizedBundleRecord");function dK(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(dK,"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 pK(e,t,n){let r,i;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new xe("read_timeout",`Session bundle export timed out after ${n}ms`)),n),t.signal!==void 0&&(i=o(()=>a(new xe("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(pK,"raceBundleExport");async function mK(e,t){try{return await YP(e,t,{})}catch{return null}}o(mK,"loadFullTranscriptImpl");async function YP(e,t,n){return(await Hi(e,pr(t),n))?.transcript??null}o(YP,"readFullTranscriptImpl");async function Hi(e,t,n){let r=await t.readFullSnapshot(e,n);if(r===null)return null;let i=hK(r);return{data:r.data,transcript:i,sourceRevision:r.sourceRevision,sourceRevisionState:r.sourceRevisionState,boundaryRevision:r.boundaryRevision}}o(Hi,"readSessionCaptureWithStorage");async function Yx(e,t,n){let r=Date.now(),i=await Hi(e,t,n);if(i===null)return null;let s=eT(i,()=>Th(n,r));return await new Promise(a=>setImmediate(a)),Th(n,r),s}o(Yx,"readConversationHistoryWithStorage");function hK(e){if(e.lineage===null)return{...e.data,activeMessages:e.data.messages,transcriptEntries:[]};let t=aK(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(hK,"fullTranscriptFromSnapshot");function gK(e){let t=e?.trim();return t&&t.length>0?t:"client"}o(gK,"normalizeClientNoticeSource");function yK(e,t){let n=`notice_${VG().replace(/-/g,"").slice(0,12)}`;return{type:"client_notice",id:n,parentId:e.activeEntryId,timestamp:t.timestamp??new Date().toISOString(),logicalId:n,source:gK(t.source),content:t.content,...t.turnId!==void 0?{turnId:t.turnId}:{},...t.payload!==void 0?{payload:t.payload}:{}}}o(yK,"createClientNoticeEntry");async function qP(e,t){return SK(e,t,void 0)}o(qP,"appendClientNotice");async function SK(e,t,n){return qx(e,t,pr(n))}o(SK,"appendClientNoticeImpl");async function qx(e,t,n){try{let r=await n.load(e);if(!r)return null;let i=r.lineage??qe(r.messages),s=yK(i,t),a={...i,entries:[...i.entries,s]},c={...r,lineage:a,messages:r.messages};await n.appendSessionDelta(e,c);let l=WP(a);return jP(s,l,a.activeEntryId)}catch{return null}}o(qx,"appendClientNoticeWithStorage");async function tT(e,t){return JP(e,t,void 0)}o(tT,"forkSession");async function JP(e,t,n){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let r=t?.historyBoundary;return await pr(n).fork(e,r?.boundaryId??t?.selector,{sessionId:t?.sessionId,title:t?.title,...r!==void 0?{historyBoundary:{sourceRevision:r.sourceRevision}}:{}})}catch{return null}}o(JP,"forkSessionImpl");async function nT(e,t){return QP(e,t,void 0)}o(nT,"rewindSession");async function QP(e,t,n,r){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let i=t?.historyBoundary;return await pr(n,r).rewind(e,i?.boundaryId??t?.selector,i===void 0?void 0:{historyBoundary:{sourceRevision:i.sourceRevision}})}catch{return null}}o(QP,"rewindSessionImpl");async function rT(e,t){return ZP(e,t,void 0)}o(rT,"setActiveEntry");async function ZP(e,t,n,r){try{return await pr(n,r).setActiveEntry(e,t)}catch{return null}}o(ZP,"setActiveEntryImpl");async function wd(){try{return eI({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(wd,"listRunningSessions");async function iT(e){return e$(e,void 0)}o(iT,"deleteSession");async function e$(e,t){try{let r=(await wd()).find(i=>i.sessionId===e);return r?{error:{code:"session_running",runningProcess:{pid:r.pid,startedAt:r.startedAt}}}:(await pr(t).delete(e),{ok:!0})}catch(n){return ft({source:"session.public-api",level:"error",message:"Session deletion failed.",detail:{sessionId:e,error:n}}),{error:{code:"delete_failed"}}}}o(e$,"deleteSessionImpl");async function oT(e){return t$(e,void 0)}o(oT,"archiveSession");async function t$(e,t){try{return await pr(t).archive(e)}catch(n){return ft({source:"session.public-api",level:"error",message:"Session archive failed.",detail:{sessionId:e,error:n}}),!1}}o(t$,"archiveSessionImpl");async function sT(e){return n$(e,void 0)}o(sT,"unarchiveSession");async function n$(e,t){try{return await pr(t).unarchive(e)}catch(n){return ft({source:"session.public-api",level:"error",message:"Session unarchive failed.",detail:{sessionId:e,error:n}}),!1}}o(n$,"unarchiveSessionImpl");function aT(e){return r$(e,void 0)}o(aT,"watchSessions");function r$(e,t){let n=BP(t);return ks(n).catch(()=>{}),process.platform==="win32"?TK(e,n):wK(e,n)}o(r$,"watchSessionsImpl");function Jx(e){let t=Ot.basename(e);return!t.endsWith(".jsonl")||t.endsWith(".archive.jsonl")||t.endsWith(".islands.jsonl")||t.startsWith(".")?null:t.slice(0,-6)}o(Jx,"sessionIdFromFilename");function wK(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 d=setTimeout(()=>{i.delete(l),r||e({kind:c,sessionId:l})},100);i.set(l,d)}o(s,"emitDebounced");function a(){if(!r)try{if(!Bs.existsSync(t)){setTimeout(a,1e3);return}let c=o((l,u)=>{if(!u)return;let d=typeof u=="string"?u:u.toString(),p=Jx(d);if(!p)return;let h=l==="rename"?xK(t,d):"change";s(h,p)},"onEvent");try{n=Bs.watch(t,{recursive:!0},c)}catch{n=Bs.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(wK,"watchSessionsPosix");function xK(e,t){try{return Bs.statSync(Ot.join(e,t)),"add"}catch{return"remove"}}o(xK,"detectRenameKind");function TK(e,t){let n=!1,r=new Set;function i(c,l){try{for(let u of Bs.readdirSync(l)){let d=Jx(u);d&&c.add(d)}}catch{}}o(i,"addIds");function s(){let c=new Set;try{if(!Bs.existsSync(t))return c;for(let l of Bs.readdirSync(t,{withFileTypes:!0}))if(l.isFile()){let u=Jx(l.name);u&&c.add(u)}else if(l.isDirectory()&&!l.name.startsWith(".")){let u=Ot.join(t,l.name);i(c,u),i(c,Ot.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(TK,"watchSessionsWindows");function i$(e){let t=e?.sessionsDir,n=e?.configHome;YG(t??Wr);let r=t!==void 0||n!==void 0?new fr({...t===void 0?{}:{sessionsDir:t},...n===void 0?{}:{configHome:n}}):new fr;return t===void 0&&n===void 0?{listSessions:Zx,loadSession:o(i=>Xx(i,r),"loadSession"),loadFullTranscript:o(async i=>{try{return(await Hi(i,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:o(async(i,s)=>(await Hi(i,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:o((i,s)=>Yx(i,r,s??{}),"readConversationHistory"),readSessionCapture:o((i,s)=>Hi(i,r,s??{}),"readSessionCapture"),appendClientNotice:o((i,s)=>qx(i,s,r),"appendClientNotice"),forkSession:tT,rewindSession:nT,setActiveEntry:rT,deleteSession:iT,archiveSession:oT,unarchiveSession:sT,listRunningSessions:wd,watchSessions:aT,compactSession:o((i,s)=>Jc(i,{...s,storage:r}),"compactSession"),storage:r}:{listSessions:o(i=>FP(i,t),"listSessions"),loadSession:o(i=>Xx(i,r),"loadSession"),loadFullTranscript:o(async i=>{try{return(await Hi(i,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:o(async(i,s)=>(await Hi(i,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:o((i,s)=>Yx(i,r,s??{}),"readConversationHistory"),readSessionCapture:o((i,s)=>Hi(i,r,s??{}),"readSessionCapture"),appendClientNotice:o((i,s)=>qx(i,s,r),"appendClientNotice"),forkSession:o((i,s)=>JP(i,s,t),"forkSession"),rewindSession:o((i,s)=>QP(i,s,t,n),"rewindSession"),setActiveEntry:o((i,s)=>ZP(i,s,t,n),"setActiveEntry"),deleteSession:o(i=>e$(i,t),"deleteSession"),archiveSession:o(i=>t$(i,t),"archiveSession"),unarchiveSession:o(i=>n$(i,t),"unarchiveSession"),listRunningSessions:wd,watchSessions:o(i=>r$(i,t),"watchSessions"),compactSession:o((i,s)=>Jc(i,{...s,storage:r}),"compactSession"),storage:r}}o(i$,"createSessionManager");var CK={};Y$(CK,{App:()=>ZR,AutocompleteContextProvider:()=>Jp,BUILTIN_COMMANDS:()=>Vv,BackgroundTaskBar:()=>Ou,CONFIG_TEMPLATES:()=>DI,ChildActivitySurface:()=>Fm,ConsoleCapturer:()=>Xc,ConversationPageCacheCapacityError:()=>Li,CoreConfigWriteConflictError:()=>FI,DEFAULT_UI_STATE:()=>Uf,DialogSurface:()=>Nm,DotsIndicator:()=>lS,FILE_MODIFICATION_TOOLS:()=>wi,FileSessionStorage:()=>fr,FullscreenTranscriptLayout:()=>bm,HistoryItemRenderer:()=>KR,InputPrompt:()=>ys,IntegrationConfigConflictError:()=>WI,IntegrationConfigController:()=>zI,KODAX_CONFIG_FILE:()=>XI,KODAX_DIR:()=>zf,KODAX_EXAMPLE_CONFIG_FILE:()=>iv,KODAX_INTEGRATION_EXAMPLE_FILES:()=>ov,KODAX_SESSIONS_DIR:()=>Wr,KODAX_VERSION:()=>Jo,KeyMatchers:()=>tS,KeypressHandlerPriority:()=>Sn,KeypressParser:()=>nc,KeypressProvider:()=>mu,LRUCache:()=>as,LoadingIndicator:()=>dR,MemorySessionStorage:()=>Is,MessageActions:()=>Rm,MessageList:()=>go,MessageSelector:()=>rk,NotificationsSurface:()=>$u,PERMISSION_MODES:()=>NI,PREVIEW_MAX_LENGTH:()=>YI,PendingInputsIndicator:()=>aP,ProgressIndicator:()=>uS,PromptComposer:()=>Mm,PromptFooter:()=>Eu,PromptFooterLeftSide:()=>Ru,PromptFooterRightSide:()=>ku,PromptHelpMenu:()=>Am,PromptSuggestionsSurface:()=>$m,ProviderSetupConfigConflictError:()=>lv,ProviderSetupInvalidConfigError:()=>uv,QueuedCommandsSurface:()=>Om,RUNTIME_PERMISSION_PENDING_NOTICE:()=>Sc,SessionReadError:()=>xe,SimpleApp:()=>ek,SimpleInputPrompt:()=>oR,SimpleMessageDisplay:()=>XR,SimpleStatusBar:()=>JR,SingleLineTextInput:()=>j0,Spinner:()=>Vn,StashNotice:()=>Nu,StatusBar:()=>ws,StatusNoticesSurface:()=>Dm,StreamingProvider:()=>Hu,StreamingState:()=>Cr,SuggestionsDisplay:()=>Lu,TOOL_STATUS_ICONS:()=>q$,TextBuffer:()=>rc,TextInput:()=>Xp,ThinkingIndicator:()=>uR,ToolCallDisplay:()=>$x,ToolCallStatus:()=>z,ToolGroup:()=>oP,ToolProgressBar:()=>Px,ToolStatusBadge:()=>rP,TranscriptViewport:()=>Em,UIStateProvider:()=>Au,_resetQueuedPromptsCacheForTests:()=>Gk,appendClientNotice:()=>qP,archiveSession:()=>oT,bootstrapAutoMode:()=>Tc,calculateVisualCursorFromLayout:()=>yp,calculateVisualLayout:()=>xn,collectBashWriteTargets:()=>RI,compactSession:()=>Jc,computeConfirmTools:()=>Ra,conversationHistoryFromCapture:()=>eT,coreConfigWriteLockPath:()=>HI,createCliEvents:()=>qL,createConversationEntryChain:()=>vs,createHistoryItem:()=>Mu,createInteractiveContext:()=>xc,createJsonEvents:()=>JL,createKeyMatcher:()=>jk,createKeypressManager:()=>Yp,createMemorySessionStorage:()=>Kk,createRecoveryHistoryItem:()=>Gu,createRetryHistoryItem:()=>Vu,createSessionConversationHistoryRevision:()=>bs,createSessionManager:()=>i$,createStreamingManager:()=>Hm,createToolCall:()=>Lm,darkTheme:()=>Sp,dedupeSessions:()=>$P,deleteSession:()=>iT,detectTerminalCapabilities:()=>lP,detectTerminalHostProfile:()=>ro,detectTerminalRenderHost:()=>no,emitRecoveryHistoryItem:()=>nE,emitRetryHistoryItem:()=>tE,emptyConversationEntryChain:()=>zm,ensureExampleConfigFile:()=>av,ensureExampleConfigFiles:()=>sv,executeCommand:()=>ns,executeShellCommand:()=>Wu,exportSessionBundle:()=>XP,extendConversationEntryChain:()=>Ic,extractHistorySeedsFromMessage:()=>Oa,extractHistorySeedsFromMessages:()=>tp,extractTextContent:()=>np,extractTitle:()=>to,findMostRecentResumableSession:()=>Cc,forkSession:()=>tT,formatMessagePreview:()=>Ev,generateId:()=>_u,generateSavePattern:()=>vI,getBashOutsideProjectWriteRisk:()=>kI,getCharAtCodePoint:()=>Qv,getCodePointLength:()=>vn,getCommandRegistry:()=>Gv,getConfigTemplate:()=>BI,getCustomProviderConfig:()=>vP,getGitRoot:()=>Ti,getKeyDisplayName:()=>V0,getMcpServerConfig:()=>MP,getPlanModeBlockReason:()=>Qi,getProviderList:()=>tv,getProviderModel:()=>jr,getProviderSetupCatalog:()=>dv,getTerminalHostCapabilities:()=>ss,getTerminalWidth:()=>Dx,getTheme:()=>ae,getThemeNames:()=>iN,getVersion:()=>QI,getVisualWidth:()=>br,getVisualWidthCached:()=>gp,hasCursorUpViewportYankRisk:()=>is,hasMainScreenRenderScrollRisk:()=>Kl,hydrateProcessEnvFromShell:()=>qI,initializeSetupConfiguration:()=>hv,inspectProviderSetupReadiness:()=>fv,isAlwaysConfirmPath:()=>va,isBashReadCommand:()=>Fl,isBashReadCommandAutoAllowed:()=>ba,isBashWriteCommand:()=>xi,isClassicReplForced:()=>Yl,isCommandOnProtectedPath:()=>Ff,isFunctionKey:()=>Zy,isOwnedRendererPreferred:()=>Xl,isPathInsideProject:()=>bI,isPermissionMode:()=>OI,isPrintable:()=>U0,isProviderConfigured:()=>nv,isRemoteConptyHost:()=>Ba,isScreenReader:()=>Bx,isShellCommand:()=>Yk,isShellCommandSuccess:()=>qk,isTmuxControlMode:()=>Fa,isToolCallAllowed:()=>Ia,isVsCodeTerminalHostEnv:()=>rs,isWideChar:()=>vr,listCustomProviders:()=>IP,listMcpServers:()=>EP,listRegisteredCommands:()=>Uv,listRunningSessions:()=>wd,listSessions:()=>Zx,loadAutoModeSettings:()=>$a,loadConfig:()=>rv,loadFullTranscript:()=>VP,loadSession:()=>UP,measureChildActivitySurfaceRows:()=>Bm,migrateLegacyIntegrationConfig:()=>KI,minimalTheme:()=>my,normalizePermissionMode:()=>ka,parseCommand:()=>ts,parseExtensionsIntegrationDocument:()=>jI,parseKeypress:()=>pu,parseMcpIntegrationDocument:()=>Ea,permissionModeDisplayName:()=>Gf,persistProviderSetupChoice:()=>pv,planLegacyIntegrationMigration:()=>GI,prepareRuntimeConfig:()=>Xf,processSpecialSyntax:()=>Yh,providerSetupRestartInstructions:()=>mv,rateLimitedCall:()=>cv,readConversationHistory:()=>KP,readExtensionsIntegration:()=>VI,readFullTranscript:()=>GP,readMcpIntegration:()=>qo,readSessionCapture:()=>zP,registerConfiguredCustomProviders:()=>JI,removeCustomProvider:()=>RP,removeMcpServer:()=>AP,renderSetupGuide:()=>gv,replBashPathSignalCollector:()=>Pa,resetTmuxControlModeProbeForTesting:()=>pp,resolveAutoModeSettings:()=>xv,resolveConfiguredTuiRendererMode:()=>os,resolveEffectiveTuiRendererMode:()=>io,resolveFullscreenPolicy:()=>oo,resolveIntegrationConfigPath:()=>UI,resolveInteractiveSurfacePreference:()=>zl,resolveRuntimeEffortSelection:()=>Aa,resolveRuntimeModelSelection:()=>_a,resolveRuntimeProviderSelection:()=>Ma,restoreHistoryItemsFromSession:()=>Uu,rewindSession:()=>nT,runInkInteractiveMode:()=>Kh,runInteractiveMode:()=>CP,runProviderSetupWizard:()=>yv,runSessionPicker:()=>zL,saveConfig:()=>Zo,seedToHistoryItem:()=>eo,setActiveEntry:()=>rT,splitByCodePoints:()=>wn,supports256Colors:()=>Nx,supportsEmoji:()=>Ox,supportsTrueColor:()=>hd,supportsUnicode:()=>ri,themes:()=>hy,toReplRuntimeAutoModeSettings:()=>wc,toolCallSeedToHistoryToolCall:()=>ep,touchContext:()=>Er,trimPersistedUiHistorySnapshot:()=>Zr,truncateByVisualWidth:()=>Ha,unarchiveSession:()=>sT,upsertCustomProvider:()=>bP,upsertMcpServer:()=>_P,useAutocomplete:()=>hu,useAutocompleteContext:()=>mo,useInputHistory:()=>Qp,useKeypress:()=>Wk,useKeypressManager:()=>qp,useQueuedPromptContents:()=>Vk,useQueuedPrompts:()=>GS,useStreaming:()=>US,useStreamingActions:()=>yc,useStreamingState:()=>gc,useTextBuffer:()=>Zp,useUI:()=>LS,useUIActions:()=>pc,useUIState:()=>fc,validateMcpServerConfig:()=>Kx,visualWidthCache:()=>mp,watchSessions:()=>aT,withCapture:()=>uP,withCaptureSync:()=>dP,withCoreConfigWriteLock:()=>Wl,writeIntegrationDocument:()=>jl});export{rs as a,is as b,Ba as c,Kl as d,Fa as e,pp as f,no as g,ro as h,os as i,io as j,zl as k,oo as l,ss as m,Xl as n,Yl as o,as as p,vn as q,vr as r,br as s,Qv as t,wn as u,Ha as v,mp as w,gp as x,xn as y,yp as z,Sp as A,my as B,hy as C,ae as D,iN as E,Xp as F,j0 as G,pu as H,nc as I,Zy as J,U0 as K,V0 as L,Yp as M,mu as N,qp as O,tS as P,Jp as Q,mo as R,hu as S,Qp as T,rc as U,Zp as V,ys as W,oR as X,Vn as Y,lS as Z,uS as _,uR as $,dR as aa,KR as ba,go as ca,XR as da,ws as ea,JR as fa,ZR as ga,ek as ha,bm as ia,Rm as ja,rk as ka,Em as la,Mm as ma,Ru as na,ku as oa,Eu as pa,Am as qa,_u as ra,Mu as sa,Lm as ta,Au as ua,fc as va,pc as wa,LS as xa,Lu as ya,$m as za,Nm as Aa,Om as Ba,$u as Ca,Dm as Da,Nu as Ea,Ou as Fa,Bm as Ga,Fm as Ha,Hm as Ia,Hu as Ja,gc as Ka,yc as La,US as Ma,Wk as Na,jk as Oa,GS as Pa,Vk as Qa,Gk as Ra,Sc as Sa,wc as Ta,xc as Ua,Er as Va,Tc as Wa,Is as Xa,Kk as Ya,Wu as Za,Yk as _a,qk as $a,Zr as ab,Uu as bb,Cc as cb,Vu as db,tE as eb,Gu as fb,nE as gb,zm as hb,Ic as ib,vs as jb,bs as kb,Li as lb,xe as mb,fr as nb,Kh as ob,zL as pb,qL as qb,JL as rb,rP as sb,Px as tb,$x as ub,oP as vb,aP as wb,hd as xb,Nx as yb,ri as zb,Ox as Ab,Dx as Bb,Bx as Cb,lP as Db,Xc as Eb,uP as Fb,dP as Gb,CP as Hb,Yh as Ib,IP as Jb,vP as Kb,bP as Lb,RP as Mb,EP as Nb,MP as Ob,_P as Pb,AP as Qb,Kx as Rb,$P as Sb,Jc as Tb,Zx as Ub,UP as Vb,VP as Wb,GP as Xb,KP as Yb,eT as Zb,zP as _b,XP as $b,qP as ac,tT as bc,nT as cc,rT as dc,wd as ec,iT as fc,oT as gc,sT as hc,aT as ic,i$ as jc,CK as kc};
320
+ ${e}`}}o(HP,"summaryMessage");function WP(e){return{role:"system",content:`[Rewind] ${e}`}}o(WP,"rewindMarkerMessage");function mK(e){return{role:"system",content:e.content,_source:"client_notice",timestamp:e.timestamp,...e.turnId!==void 0?{turnId:e.turnId}:{}}}o(mK,"clientNoticeMessage");function Xx(e,t){let n=e[t];return typeof n=="string"?n:void 0}o(Xx,"messageStringField");function hK(e){if(e.role==="user")return"user";if(e.role==="assistant")return"assistant";if(e.role==="system")return"system"}o(hK,"messageSource");function jP(e){return tg(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(jP,"isTaskResultMetadata");function gK(e){if(jP(e._taskResult))return[e._taskResult];if(Array.isArray(e._taskResults))return e._taskResults.filter(jP);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(gK,"taskResultsFromMessage");function yK(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(yK,"taskResultPayload");function SK(e){if(!tg(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(SK,"legacyRewindDetails");function wK(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(wK,"transcriptEntryActive");function Lo(e){return{entryId:e.id,parentId:e.parentId,logicalId:e.logicalId??e.id,...e.sourceEntryId!==void 0?{sourceEntryId:e.sourceEntryId}:{}}}o(Lo,"transcriptEntryIdentity");function zP(e,t,n){let r=wK(e,t,n);switch(e.type){case"message":{let i=gK(e.message);if(i.length>0){let s=i[0];return{...Lo(e),timestamp:e.timestamp,type:"task_result",source:s.source,turnId:Xx(e.message,"turnId"),message:e.message,active:r,payload:yK(i),taskResults:i}}return e.message._source==="client_notice"?{...Lo(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:Xx(e.message,"turnId"),message:e.message,active:r,payload:{content:e.message.content,entersModelContext:!1}}:{...Lo(e),timestamp:e.timestamp,type:"message",source:hK(e.message),turnId:Xx(e.message,"turnId"),message:e.message,active:r}}case"compaction":if(e.reason==="rewind"){let i=SK(e.details),s=r||(e.parentId===null?n===null:t.has(e.parentId));return{...Lo(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:WP(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{...Lo(e),timestamp:e.timestamp,type:"compaction",source:"system",message:HP(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{...Lo(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:WP(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{...Lo(e),timestamp:e.timestamp,type:"branch_summary",source:"system",message:HP(e.summary,"branch_summary"),active:r,summary:e.summary,payload:{summary:e.summary,fromId:e.fromId,details:e.details}};case"client_notice":return{...Lo(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:e.turnId,message:mK(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(zP,"toTranscriptEntry");function xK(e){let t=KP(e);return e.entries.map(n=>zP(n,t,e.activeEntryId)).filter(n=>n!==null)}o(xK,"buildTranscriptEntries");async function XP(e){return TK(e,void 0)}o(XP,"loadSession");async function TK(e,t){return Yx(e,pr(t))}o(TK,"loadSessionImpl");async function Yx(e,t){try{return await t.load(e)}catch{return null}}o(Yx,"loadSessionWithStorage");async function YP(e){return kK(e,void 0)}o(YP,"loadFullTranscript");async function qP(e,t={}){return eO(e,void 0,t)}o(qP,"readFullTranscript");async function JP(e,t={}){return qx(e,pr(),t)}o(JP,"readConversationHistory");function tT(e,t){return e.transcript.lineage===void 0?hE(e.transcript.activeMessages,e.sourceRevision,t):Yu(e.transcript.lineage,e.sourceRevision,t)}o(tT,"conversationHistoryFromCapture");async function QP(e,t={}){return Hi(e,pr(),t)}o(QP,"readSessionCapture");async function ZP(e,t={}){if(t.signal?.aborted)throw new xe("read_cancelled","Session bundle export cancelled");let n=Nt.resolve(t.sessionsDir??Wr),r=bK(t.timeoutMs),i=(async()=>{let s=await jM(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:nK("sha256").update(l.bytes).digest("hex"),modifiedAt:l.modifiedAt,content:l.bytes.toString("utf8"),contentBase64:l.bytes.toString("base64")})),c=a.flatMap(CK);return{sessionId:e,status:vK(c),files:a,diagnostics:c}})();return RK(i,t,r)}o(ZP,"exportSessionBundle");function CK(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&&tg(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}IK(a,e.kind)||t.push({code:"unsupported_record",file:e.path,line:i+1,message:"Unknown record was preserved verbatim."})}return t}o(CK,"inspectSessionBundleFile");function IK(e,t){return tg(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(IK,"isRecognizedBundleRecord");function vK(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(vK,"bundleExportStatus");function bK(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(bK,"normalizeBundleExportTimeout");async function RK(e,t,n){let r,i;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new xe("read_timeout",`Session bundle export timed out after ${n}ms`)),n),t.signal!==void 0&&(i=o(()=>a(new xe("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(RK,"raceBundleExport");async function kK(e,t){try{return await eO(e,t,{})}catch{return null}}o(kK,"loadFullTranscriptImpl");async function eO(e,t,n){return(await Hi(e,pr(t),n))?.transcript??null}o(eO,"readFullTranscriptImpl");async function Hi(e,t,n){let r=await t.readFullSnapshot(e,n);if(r===null)return null;let i=EK(r);return{data:r.data,transcript:i,sourceRevision:r.sourceRevision,sourceRevisionState:r.sourceRevisionState,boundaryRevision:r.boundaryRevision}}o(Hi,"readSessionCaptureWithStorage");async function qx(e,t,n){let r=Date.now(),i=await Hi(e,t,n);if(i===null)return null;let s=tT(i,()=>Th(n,r));return await new Promise(a=>setImmediate(a)),Th(n,r),s}o(qx,"readConversationHistoryWithStorage");function EK(e){if(e.lineage===null)return{...e.data,activeMessages:e.data.messages,transcriptEntries:[]};let t=xK(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(EK,"fullTranscriptFromSnapshot");function MK(e){let t=e?.trim();return t&&t.length>0?t:"client"}o(MK,"normalizeClientNoticeSource");function _K(e,t){let n=`notice_${rK().replace(/-/g,"").slice(0,12)}`;return{type:"client_notice",id:n,parentId:e.activeEntryId,timestamp:t.timestamp??new Date().toISOString(),logicalId:n,source:MK(t.source),content:t.content,...t.turnId!==void 0?{turnId:t.turnId}:{},...t.payload!==void 0?{payload:t.payload}:{}}}o(_K,"createClientNoticeEntry");async function tO(e,t){return AK(e,t,void 0)}o(tO,"appendClientNotice");async function AK(e,t,n){return Jx(e,t,pr(n))}o(AK,"appendClientNoticeImpl");async function Jx(e,t,n){try{let r=await n.load(e);if(!r)return null;let i=r.lineage??qe(r.messages),s=_K(i,t),a={...i,entries:[...i.entries,s]},c={...r,lineage:a,messages:r.messages};await n.appendSessionDelta(e,c);let l=KP(a);return zP(s,l,a.activeEntryId)}catch{return null}}o(Jx,"appendClientNoticeWithStorage");async function nT(e,t){return nO(e,t,void 0)}o(nT,"forkSession");async function nO(e,t,n){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let r=t?.historyBoundary;return await pr(n).fork(e,r?.boundaryId??t?.selector,{sessionId:t?.sessionId,title:t?.title,...r!==void 0?{historyBoundary:{sourceRevision:r.sourceRevision}}:{}})}catch{return null}}o(nO,"forkSessionImpl");async function rT(e,t){return rO(e,t,void 0)}o(rT,"rewindSession");async function rO(e,t,n,r){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let i=t?.historyBoundary;return await pr(n,r).rewind(e,i?.boundaryId??t?.selector,i===void 0?void 0:{historyBoundary:{sourceRevision:i.sourceRevision}})}catch{return null}}o(rO,"rewindSessionImpl");async function iT(e,t){return iO(e,t,void 0)}o(iT,"setActiveEntry");async function iO(e,t,n,r){try{return await pr(n,r).setActiveEntry(e,t)}catch{return null}}o(iO,"setActiveEntryImpl");async function xd(){try{return tI({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(xd,"listRunningSessions");async function oT(e){return oO(e,void 0)}o(oT,"deleteSession");async function oO(e,t){try{let r=(await xd()).find(i=>i.sessionId===e);return r?{error:{code:"session_running",runningProcess:{pid:r.pid,startedAt:r.startedAt}}}:(await pr(t).delete(e),{ok:!0})}catch(n){return ft({source:"session.public-api",level:"error",message:"Session deletion failed.",detail:{sessionId:e,error:n}}),{error:{code:"delete_failed"}}}}o(oO,"deleteSessionImpl");async function sT(e){return sO(e,void 0)}o(sT,"archiveSession");async function sO(e,t){try{return await pr(t).archive(e)}catch(n){return ft({source:"session.public-api",level:"error",message:"Session archive failed.",detail:{sessionId:e,error:n}}),!1}}o(sO,"archiveSessionImpl");async function aT(e){return aO(e,void 0)}o(aT,"unarchiveSession");async function aO(e,t){try{return await pr(t).unarchive(e)}catch(n){return ft({source:"session.public-api",level:"error",message:"Session unarchive failed.",detail:{sessionId:e,error:n}}),!1}}o(aO,"unarchiveSessionImpl");function cT(e){return cO(e,void 0)}o(cT,"watchSessions");function cO(e,t){let n=UP(t);return ks(n).catch(()=>{}),process.platform==="win32"?OK(e,n):LK(e,n)}o(cO,"watchSessionsImpl");function Qx(e){let t=Nt.basename(e);return!t.endsWith(".jsonl")||t.endsWith(".archive.jsonl")||t.endsWith(".islands.jsonl")||t.startsWith(".")?null:t.slice(0,-6)}o(Qx,"sessionIdFromFilename");function LK(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(!Bs.existsSync(t)){setTimeout(a,1e3);return}let c=o((l,u)=>{if(!u)return;let f=typeof u=="string"?u:u.toString(),p=Qx(f);if(!p)return;let h=l==="rename"?PK(t,f):"change";s(h,p)},"onEvent");try{n=Bs.watch(t,{recursive:!0},c)}catch{n=Bs.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(LK,"watchSessionsPosix");function PK(e,t){try{return Bs.statSync(Nt.join(e,t)),"add"}catch{return"remove"}}o(PK,"detectRenameKind");function OK(e,t){let n=!1,r=new Set;function i(c,l){try{for(let u of Bs.readdirSync(l)){let f=Qx(u);f&&c.add(f)}}catch{}}o(i,"addIds");function s(){let c=new Set;try{if(!Bs.existsSync(t))return c;for(let l of Bs.readdirSync(t,{withFileTypes:!0}))if(l.isFile()){let u=Qx(l.name);u&&c.add(u)}else if(l.isDirectory()&&!l.name.startsWith(".")){let u=Nt.join(t,l.name);i(c,u),i(c,Nt.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(OK,"watchSessionsWindows");function lO(e){let t=e?.sessionsDir,n=e?.configHome;cK(t??Wr);let r=t!==void 0||n!==void 0?new fr({...t===void 0?{}:{sessionsDir:t},...n===void 0?{}:{configHome:n}}):new fr;return t===void 0&&n===void 0?{listSessions:eT,loadSession:o(i=>Yx(i,r),"loadSession"),loadFullTranscript:o(async i=>{try{return(await Hi(i,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:o(async(i,s)=>(await Hi(i,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:o((i,s)=>qx(i,r,s??{}),"readConversationHistory"),readSessionCapture:o((i,s)=>Hi(i,r,s??{}),"readSessionCapture"),appendClientNotice:o((i,s)=>Jx(i,s,r),"appendClientNotice"),forkSession:nT,rewindSession:rT,setActiveEntry:iT,deleteSession:oT,archiveSession:sT,unarchiveSession:aT,listRunningSessions:xd,watchSessions:cT,compactSession:o((i,s)=>Jc(i,{...s,storage:r}),"compactSession"),storage:r}:{listSessions:o(i=>VP(i,t),"listSessions"),loadSession:o(i=>Yx(i,r),"loadSession"),loadFullTranscript:o(async i=>{try{return(await Hi(i,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:o(async(i,s)=>(await Hi(i,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:o((i,s)=>qx(i,r,s??{}),"readConversationHistory"),readSessionCapture:o((i,s)=>Hi(i,r,s??{}),"readSessionCapture"),appendClientNotice:o((i,s)=>Jx(i,s,r),"appendClientNotice"),forkSession:o((i,s)=>nO(i,s,t),"forkSession"),rewindSession:o((i,s)=>rO(i,s,t,n),"rewindSession"),setActiveEntry:o((i,s)=>iO(i,s,t,n),"setActiveEntry"),deleteSession:o(i=>oO(i,t),"deleteSession"),archiveSession:o(i=>sO(i,t),"archiveSession"),unarchiveSession:o(i=>aO(i,t),"unarchiveSession"),listRunningSessions:xd,watchSessions:o(i=>cO(i,t),"watchSessions"),compactSession:o((i,s)=>Jc(i,{...s,storage:r}),"compactSession"),storage:r}}o(lO,"createSessionManager");var $K={};e$($K,{App:()=>ik,AutocompleteContextProvider:()=>Jp,BUILTIN_COMMANDS:()=>Gv,BackgroundTaskBar:()=>Du,CONFIG_TEMPLATES:()=>BI,ChildActivitySurface:()=>Fm,ConsoleCapturer:()=>Xc,ConversationPageCacheCapacityError:()=>Li,CoreConfigWriteConflictError:()=>HI,DEFAULT_UI_STATE:()=>Uf,DialogSurface:()=>$m,DotsIndicator:()=>lS,FILE_MODIFICATION_TOOLS:()=>wi,FileSessionStorage:()=>fr,FullscreenTranscriptLayout:()=>bm,HistoryItemRenderer:()=>JR,InputPrompt:()=>ys,IntegrationConfigConflictError:()=>jI,IntegrationConfigController:()=>XI,KODAX_CONFIG_FILE:()=>YI,KODAX_DIR:()=>zf,KODAX_EXAMPLE_CONFIG_FILE:()=>ov,KODAX_INTEGRATION_EXAMPLE_FILES:()=>sv,KODAX_SESSIONS_DIR:()=>Wr,KODAX_VERSION:()=>Jo,KeyMatchers:()=>tS,KeypressHandlerPriority:()=>Sn,KeypressParser:()=>nc,KeypressProvider:()=>hu,LRUCache:()=>as,LoadingIndicator:()=>fR,MemorySessionStorage:()=>Is,MessageActions:()=>Rm,MessageList:()=>go,MessageSelector:()=>ck,NotificationsSurface:()=>$u,PERMISSION_MODES:()=>NI,PREVIEW_MAX_LENGTH:()=>qI,PendingInputsIndicator:()=>fP,ProgressIndicator:()=>uS,PromptComposer:()=>Mm,PromptFooter:()=>Mu,PromptFooterLeftSide:()=>ku,PromptFooterRightSide:()=>Eu,PromptHelpMenu:()=>Am,PromptSuggestionsSurface:()=>Om,ProviderSetupConfigConflictError:()=>uv,ProviderSetupInvalidConfigError:()=>dv,QueuedCommandsSurface:()=>Nm,RUNTIME_PERMISSION_PENDING_NOTICE:()=>Sc,SessionReadError:()=>xe,SimpleApp:()=>ok,SimpleInputPrompt:()=>sR,SimpleMessageDisplay:()=>ZR,SimpleStatusBar:()=>nk,SingleLineTextInput:()=>U0,Spinner:()=>Vn,StashNotice:()=>Nu,StatusBar:()=>ws,StatusNoticesSurface:()=>Dm,StreamingProvider:()=>Wu,StreamingState:()=>Cr,SuggestionsDisplay:()=>Pu,TOOL_STATUS_ICONS:()=>t$,TextBuffer:()=>rc,TextInput:()=>Xp,ThinkingIndicator:()=>dR,ToolCallDisplay:()=>$x,ToolCallStatus:()=>z,ToolGroup:()=>uP,ToolProgressBar:()=>Ox,ToolStatusBadge:()=>cP,TranscriptViewport:()=>Em,UIStateProvider:()=>Lu,_resetQueuedPromptsCacheForTests:()=>qk,appendClientNotice:()=>tO,archiveSession:()=>sT,bootstrapAutoMode:()=>Tc,calculateVisualCursorFromLayout:()=>yp,calculateVisualLayout:()=>xn,collectBashWriteTargets:()=>kI,compactSession:()=>Jc,computeConfirmTools:()=>Ra,conversationHistoryFromCapture:()=>tT,coreConfigWriteLockPath:()=>WI,createCliEvents:()=>tP,createConversationEntryChain:()=>vs,createHistoryItem:()=>_u,createInteractiveContext:()=>xc,createJsonEvents:()=>nP,createKeyMatcher:()=>zk,createKeypressManager:()=>Yp,createMemorySessionStorage:()=>Jk,createRecoveryHistoryItem:()=>Ku,createRetryHistoryItem:()=>Gu,createSessionConversationHistoryRevision:()=>bs,createSessionManager:()=>lO,createStreamingManager:()=>Hm,createToolCall:()=>Lm,darkTheme:()=>Sp,dedupeSessions:()=>FP,deleteSession:()=>oT,detectTerminalCapabilities:()=>mP,detectTerminalHostProfile:()=>ro,detectTerminalRenderHost:()=>no,emitRecoveryHistoryItem:()=>aE,emitRetryHistoryItem:()=>sE,emptyConversationEntryChain:()=>zm,ensureExampleConfigFile:()=>cv,ensureExampleConfigFiles:()=>av,executeCommand:()=>ns,executeShellCommand:()=>ju,exportSessionBundle:()=>ZP,extendConversationEntryChain:()=>Ic,extractHistorySeedsFromMessage:()=>Na,extractHistorySeedsFromMessages:()=>tp,extractTextContent:()=>np,extractTitle:()=>to,findMostRecentResumableSession:()=>Cc,forkSession:()=>nT,formatMessagePreview:()=>Mv,generateId:()=>Au,generateSavePattern:()=>bI,getBashOutsideProjectWriteRisk:()=>EI,getCharAtCodePoint:()=>Zv,getCodePointLength:()=>vn,getCommandRegistry:()=>Kv,getConfigTemplate:()=>FI,getCustomProviderConfig:()=>MP,getGitRoot:()=>Ti,getKeyDisplayName:()=>G0,getMcpServerConfig:()=>OP,getPlanModeBlockReason:()=>Qi,getProviderList:()=>nv,getProviderModel:()=>jr,getProviderSetupCatalog:()=>fv,getTerminalHostCapabilities:()=>ss,getTerminalWidth:()=>Bx,getTheme:()=>ae,getThemeNames:()=>l$,getVersion:()=>ZI,getVisualWidth:()=>br,getVisualWidthCached:()=>gp,hasCursorUpViewportYankRisk:()=>is,hasMainScreenRenderScrollRisk:()=>zl,hydrateProcessEnvFromShell:()=>JI,initializeSetupConfiguration:()=>gv,inspectProviderSetupReadiness:()=>pv,isAlwaysConfirmPath:()=>va,isBashReadCommand:()=>Hl,isBashReadCommandAutoAllowed:()=>ba,isBashWriteCommand:()=>xi,isClassicReplForced:()=>ql,isCommandOnProtectedPath:()=>Ff,isFunctionKey:()=>Zy,isOwnedRendererPreferred:()=>Yl,isPathInsideProject:()=>RI,isPermissionMode:()=>DI,isPrintable:()=>V0,isProviderConfigured:()=>rv,isRemoteConptyHost:()=>Ba,isScreenReader:()=>Fx,isShellCommand:()=>eE,isShellCommandSuccess:()=>tE,isTmuxControlMode:()=>Fa,isToolCallAllowed:()=>Ia,isVsCodeTerminalHostEnv:()=>rs,isWideChar:()=>vr,listCustomProviders:()=>EP,listMcpServers:()=>PP,listRegisteredCommands:()=>Vv,listRunningSessions:()=>xd,listSessions:()=>eT,loadAutoModeSettings:()=>Oa,loadConfig:()=>iv,loadFullTranscript:()=>YP,loadSession:()=>XP,measureChildActivitySurfaceRows:()=>Bm,migrateLegacyIntegrationConfig:()=>zI,minimalTheme:()=>my,normalizePermissionMode:()=>ka,parseCommand:()=>ts,parseExtensionsIntegrationDocument:()=>UI,parseKeypress:()=>mu,parseMcpIntegrationDocument:()=>Ea,permissionModeDisplayName:()=>Gf,persistProviderSetupChoice:()=>mv,planLegacyIntegrationMigration:()=>KI,prepareRuntimeConfig:()=>Xf,processSpecialSyntax:()=>Yh,providerSetupRestartInstructions:()=>hv,rateLimitedCall:()=>lv,readConversationHistory:()=>JP,readExtensionsIntegration:()=>GI,readFullTranscript:()=>qP,readMcpIntegration:()=>qo,readSessionCapture:()=>QP,registerConfiguredCustomProviders:()=>QI,removeCustomProvider:()=>AP,removeMcpServer:()=>NP,renderSetupGuide:()=>yv,replBashPathSignalCollector:()=>Pa,resetTmuxControlModeProbeForTesting:()=>pp,resolveAutoModeSettings:()=>Tv,resolveConfiguredTuiRendererMode:()=>os,resolveEffectiveTuiRendererMode:()=>io,resolveFullscreenPolicy:()=>oo,resolveIntegrationConfigPath:()=>VI,resolveInteractiveSurfacePreference:()=>Xl,resolveRuntimeEffortSelection:()=>Aa,resolveRuntimeModelSelection:()=>_a,resolveRuntimeProviderSelection:()=>Ma,restoreHistoryItemsFromSession:()=>Vu,rewindSession:()=>rT,runInkInteractiveMode:()=>Kh,runInteractiveMode:()=>kP,runProviderSetupWizard:()=>Sv,runSessionPicker:()=>QL,saveConfig:()=>Zo,seedToHistoryItem:()=>eo,setActiveEntry:()=>iT,splitByCodePoints:()=>wn,supports256Colors:()=>Nx,supportsEmoji:()=>Dx,supportsTrueColor:()=>gd,supportsUnicode:()=>ri,themes:()=>hy,toReplRuntimeAutoModeSettings:()=>wc,toolCallSeedToHistoryToolCall:()=>ep,touchContext:()=>Er,trimPersistedUiHistorySnapshot:()=>Zr,truncateByVisualWidth:()=>Ha,unarchiveSession:()=>aT,upsertCustomProvider:()=>_P,upsertMcpServer:()=>$P,useAutocomplete:()=>gu,useAutocompleteContext:()=>mo,useInputHistory:()=>Qp,useKeypress:()=>Kk,useKeypressManager:()=>qp,useQueuedPromptContents:()=>Yk,useQueuedPrompts:()=>GS,useStreaming:()=>US,useStreamingActions:()=>yc,useStreamingState:()=>gc,useTextBuffer:()=>Zp,useUI:()=>LS,useUIActions:()=>pc,useUIState:()=>fc,validateMcpServerConfig:()=>zx,visualWidthCache:()=>mp,watchSessions:()=>cT,withCapture:()=>hP,withCaptureSync:()=>gP,withCoreConfigWriteLock:()=>jl,writeIntegrationDocument:()=>Ul});export{rs as a,is as b,Ba as c,zl as d,Fa as e,pp as f,no as g,ro as h,os as i,io as j,Xl as k,oo as l,ss as m,Yl as n,ql as o,as as p,vn as q,vr as r,br as s,Zv as t,wn as u,Ha as v,mp as w,gp as x,xn as y,yp as z,Sp as A,my as B,hy as C,ae as D,l$ as E,Xp as F,U0 as G,mu as H,nc as I,Zy as J,V0 as K,G0 as L,Yp as M,hu as N,qp as O,tS as P,Jp as Q,mo as R,gu as S,Qp as T,rc as U,Zp as V,ys as W,sR as X,Vn as Y,lS as Z,uS as _,dR as $,fR as aa,JR as ba,go as ca,ZR as da,ws as ea,nk as fa,ik as ga,ok as ha,bm as ia,Rm as ja,ck as ka,Em as la,Mm as ma,ku as na,Eu as oa,Mu as pa,Am as qa,Au as ra,_u as sa,Lm as ta,Lu as ua,fc as va,pc as wa,LS as xa,Pu as ya,Om as za,$m as Aa,Nm as Ba,$u as Ca,Dm as Da,Nu as Ea,Du as Fa,Bm as Ga,Fm as Ha,Hm as Ia,Wu as Ja,gc as Ka,yc as La,US as Ma,Kk as Na,zk as Oa,GS as Pa,Yk as Qa,qk as Ra,Sc as Sa,wc as Ta,xc as Ua,Er as Va,Tc as Wa,Is as Xa,Jk as Ya,ju as Za,eE as _a,tE as $a,Zr as ab,Vu as bb,Cc as cb,Gu as db,sE as eb,Ku as fb,aE as gb,zm as hb,Ic as ib,vs as jb,bs as kb,Li as lb,xe as mb,fr as nb,Kh as ob,QL as pb,tP as qb,nP as rb,cP as sb,Ox as tb,$x as ub,uP as vb,fP as wb,gd as xb,Nx as yb,ri as zb,Dx as Ab,Bx as Bb,Fx as Cb,mP as Db,Xc as Eb,hP as Fb,gP as Gb,kP as Hb,Yh as Ib,EP as Jb,MP as Kb,_P as Lb,AP as Mb,PP as Nb,OP as Ob,$P as Pb,NP as Qb,zx as Rb,FP as Sb,Jc as Tb,eT as Ub,XP as Vb,YP as Wb,qP as Xb,JP as Yb,tT as Zb,QP as _b,ZP as $b,tO as ac,nT as bc,rT as cc,iT as dc,xd as ec,oT as fc,sT as gc,aT as hc,cT as ic,lO as jc,$K as kc};