@kodax-ai/kodax 0.7.78 → 0.7.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3475 -3197
- package/README.md +346 -275
- package/README_CN.md +274 -214
- package/config-templates/config.example.jsonc +11 -1
- package/config-templates/integrations/a2a.example.jsonc +23 -7
- package/dist/builtin/skill-creator/scripts/aggregate-benchmark.js +2 -1
- package/dist/builtin/skill-creator/scripts/analyze-benchmark.d.ts +1 -0
- package/dist/builtin/skill-creator/scripts/analyze-benchmark.js +4 -3
- package/dist/builtin/skill-creator/scripts/compare-runs.d.ts +1 -0
- package/dist/builtin/skill-creator/scripts/compare-runs.js +4 -3
- package/dist/builtin/skill-creator/scripts/generate-review.js +2 -1
- package/dist/builtin/skill-creator/scripts/grade-evals.d.ts +1 -0
- package/dist/builtin/skill-creator/scripts/grade-evals.js +4 -3
- package/dist/builtin/skill-creator/scripts/improve-description.js +2 -1
- package/dist/builtin/skill-creator/scripts/init-skill.d.ts +1 -0
- package/dist/builtin/skill-creator/scripts/init-skill.js +4 -3
- package/dist/builtin/skill-creator/scripts/install-skill.d.ts +1 -0
- package/dist/builtin/skill-creator/scripts/install-skill.js +4 -3
- package/dist/builtin/skill-creator/scripts/package-skill.d.ts +1 -0
- package/dist/builtin/skill-creator/scripts/package-skill.js +4 -3
- package/dist/builtin/skill-creator/scripts/quick-validate.d.ts +1 -0
- package/dist/builtin/skill-creator/scripts/quick-validate.js +4 -3
- package/dist/builtin/skill-creator/scripts/run-eval.d.ts +1 -0
- package/dist/builtin/skill-creator/scripts/run-eval.js +4 -3
- package/dist/builtin/skill-creator/scripts/run-loop.js +2 -1
- package/dist/builtin/skill-creator/scripts/run-trigger-eval.js +2 -1
- package/dist/builtin/skill-creator/scripts/utils.d.ts +3 -0
- package/dist/builtin/skill-creator/scripts/utils.js +5 -1
- package/dist/chunks/{agent-ASP4MS3X.js → agent-V4AC5JZD.js} +1 -1
- package/dist/chunks/argument-completer-ZPC2MLES.js +2 -0
- package/dist/chunks/{chunk-Z3KFRTSB.js → chunk-67THZRM6.js} +1 -1
- package/dist/chunks/chunk-6GVQDQTQ.js +292 -0
- package/dist/chunks/{chunk-TQDBTTIM.js → chunk-B6UY3VHV.js} +40 -40
- package/dist/chunks/{chunk-7OEBJGHK.js → chunk-BBOVVDQJ.js} +1 -1
- package/dist/chunks/chunk-CR2IF7VF.js +30 -0
- package/dist/chunks/{chunk-UID7BLAB.js → chunk-CXHEZY5G.js} +1 -1
- package/dist/chunks/chunk-EDZ4QILG.js +266 -0
- package/dist/chunks/chunk-GEECPO2H.js +218 -0
- package/dist/chunks/chunk-H5LLM7DB.js +89 -0
- package/dist/chunks/chunk-KLWP7POA.js +467 -0
- package/dist/chunks/{chunk-2CFHBKRE.js → chunk-M4N2JZTZ.js} +2 -2
- package/dist/chunks/{chunk-YAZQTC2L.js → chunk-OWQT3FTE.js} +1 -1
- package/dist/chunks/chunk-Q4M7DJOD.js +319 -0
- package/dist/chunks/{chunk-6FOJVETH.js → chunk-QCZLCLFL.js} +7 -7
- package/dist/chunks/chunk-RQPMGRTR.js +810 -0
- package/dist/chunks/chunk-SG6P4SZS.js +123 -0
- package/dist/chunks/chunk-TSTVAU5E.js +386 -0
- package/dist/chunks/chunk-ZCZZUE5E.js +662 -0
- package/dist/chunks/compaction-config-AEUGVROL.js +2 -0
- package/dist/chunks/{construction-bootstrap-VQLQGWPY.js → construction-bootstrap-K3ZGEN5N.js} +1 -1
- package/dist/chunks/dist-GFJFRPAV.js +2 -0
- package/dist/chunks/{dist-BFT5YIGU.js → dist-JMO47GJV.js} +1 -1
- package/dist/chunks/host-23K2Q6RZ.js +2 -0
- package/dist/chunks/run-manager-PGIR6ITA.js +2 -0
- package/dist/chunks/{utils-SID4HW2Q.js → utils-6LEKJPQN.js} +1 -1
- package/dist/index.d.ts +20 -20
- package/dist/index.js +2 -2
- package/dist/kodax_bootstrap.js +2 -1
- package/dist/kodax_cli.js +1816 -1458
- package/dist/kodax_resume.js +570 -34
- package/dist/provider-capabilities.json +85 -50
- package/dist/runtime-worker.js +1713 -1361
- package/dist/sandbox-workspace-session.js +285 -19
- package/dist/sdk-a2a.d.ts +19 -13
- package/dist/sdk-a2a.js +8 -8
- package/dist/sdk-agent.d.ts +73 -141
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +29 -60
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.d.ts +3 -3
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.d.ts +7 -7
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.d.ts +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +1 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +25 -26
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +227 -31
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-sandbox.js +1 -1
- package/dist/sdk-session.d.ts +8 -8
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +283 -18
- package/dist/types-chunks/{base.d-4e74xDdy.d.ts → base.d-DxG0m09Z.d.ts} +1 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-uAe2Oqda.d.ts → bash-prefix-extractor.d-CNSidpmv.d.ts} +28 -7
- package/dist/types-chunks/{capability-learning.d-CVsdHw4j.d.ts → capability-learning.d-iPSiAmc_.d.ts} +1 -1
- package/dist/types-chunks/{capsule.d-BlSv9l3V.d.ts → capsule.d-B3q98pLQ.d.ts} +9 -7
- package/dist/types-chunks/{types.d-BA-Jwpfs.d.ts → controller.d-RGV7Pjv9.d.ts} +328 -3
- package/dist/types-chunks/{guardrail.d-CXDYRgZ3.d.ts → guardrail.d-1NLSFTyN.d.ts} +126 -52
- package/dist/types-chunks/{history-retrieval.d-DtCy7x64.d.ts → history-retrieval.d-BAegI14A.d.ts} +16 -3
- package/dist/types-chunks/{oauth-login.d-Bgb4rdLN.d.ts → oauth-login.d-6i-vidxv.d.ts} +6 -2
- package/dist/types-chunks/{public-api.d-B3AohsxN.d.ts → public-api.d-BpJhHoa7.d.ts} +334 -25
- package/dist/types-chunks/{repl.d-Ie_ZXb_U.d.ts → repl.d-CZ12Ow3X.d.ts} +5 -5
- package/dist/types-chunks/{resolver.d-iAQ9ocLB.d.ts → resolver.d-C9IW4fmU.d.ts} +5 -2
- package/dist/types-chunks/{run-manager.d-D1twIhF9.d.ts → run-manager.d-CX3AUocA.d.ts} +1 -1
- package/dist/types-chunks/{sdk-session-DB9KksIx.d.ts → sdk-session-B3cfJKqF.d.ts} +3 -3
- package/dist/types-chunks/{side-query.d-DTuLPcC5.d.ts → side-query.d-CP1LiRiH.d.ts} +8 -2
- package/dist/types-chunks/{types-D3g6XUQr.d.ts → types-Bf3Y3mW-.d.ts} +1 -1
- package/dist/types-chunks/{types.d-BH0ZkTGf.d.ts → types.d-BZ9oXvTV.d.ts} +2 -2
- package/dist/types-chunks/{types.d-DVDTIfB_.d.ts → types.d-C0_rn--1.d.ts} +4 -4
- package/dist/types-chunks/{types.d-DIpZJKUl.d.ts → types.d-CgrXrFrq.d.ts} +16 -2
- package/dist/types-chunks/{utils.d-CVp6bFl9.d.ts → utils.d-CGpHavsU.d.ts} +14 -6
- package/docs/SDK_EMBEDDER_GUIDE.md +1144 -598
- package/package.json +4 -1
- package/dist/chunks/argument-completer-JYQ7FX3W.js +0 -2
- package/dist/chunks/chunk-35PPHOQ2.js +0 -292
- package/dist/chunks/chunk-43QNNDHR.js +0 -29
- package/dist/chunks/chunk-5GO6FH7L.js +0 -458
- package/dist/chunks/chunk-5NDCSFOP.js +0 -78
- package/dist/chunks/chunk-6XM4B6K2.js +0 -48
- package/dist/chunks/chunk-6YZUE6NC.js +0 -240
- package/dist/chunks/chunk-KQLQYHWU.js +0 -386
- package/dist/chunks/chunk-NXO6GWSY.js +0 -46
- package/dist/chunks/chunk-T2XZTLYE.js +0 -316
- package/dist/chunks/chunk-VAT2QYXM.js +0 -765
- package/dist/chunks/chunk-YVRYHC4C.js +0 -655
- package/dist/chunks/compaction-config-BQSSIWK5.js +0 -2
- package/dist/chunks/dist-PCFE24YP.js +0 -2
- package/dist/chunks/host-UTFXCYYM.js +0 -2
- package/dist/chunks/run-manager-PJU3WIFJ.js +0 -2
- package/dist/types-chunks/guardrail.d-BRE_ErEj.d.ts +0 -156
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
+
import{$ as Qf,$a as VI,A as Ug,Aa as sp,B as lI,Ba as _I,C as os,Ca as MI,D as uI,Da as AI,E as dI,Ea as LI,F as fI,Fa as PI,G as Gn,Ga as $I,H as pI,Ha as ap,I as Mr,Ia as cp,J as Na,Ja as zl,K as mI,Ka as lp,L as Da,La as up,M as Gg,Ma as dp,N as Vg,Na as OI,O as Jf,Oa as NI,P as hI,Pa as DI,Q as gI,Qa as Xg,R as yI,Ra as BI,S as SI,Sa as FI,T as ti,Ta as WI,U as wI,Ua as HI,V as Ba,Va as jI,W as xI,Wa as UI,X as Fa,Xa as GI,Y as TI,Ya as ss,Z as CI,Za as as,_ as Wa,_a as qg,a as Er,aa as vI,b as V,ba as ep,bb as Jg,c as i$,ca as Vl,cb as fp,d as vn,da as Kg,db as KI,e as Uf,ea as II,eb as zI,f as bv,fa as zg,g as _r,ga as ni,h as Gf,ha as tp,i as Vf,ia as Ha,j as Kf,ja as np,k as ko,ka as rp,l as _a,la as bI,m as Rv,ma as RI,n as Ma,na as ja,o as Zv,oa as kI,p as eI,pa as ri,q as tI,qa as EI,r as nI,ra as zr,s as rI,sa as op,t as oI,ta as ip,u as iI,ua as _n,v as Oa,va as Yr,w as sI,wa as Yg,x as aI,xa as is,y as Gl,ya as oi,z as cI,za as Kl}from"./chunk-ZCZZUE5E.js";import{$ as Pa,E as Uv,J as Gv,K as ei,L as ns,O as Vv,P as Kv,Q as zv,R as Yv,S as Xv,T as qv,U as Jv,X as Yf,Y as rs,Z as Xf,_ as La,a as ne,aa as $a,b as kv,ba as qf,c as Ev,ca as Eo,d as _v,e as Mv,f as jl,g as Av,ga as Qv,h as Aa,i as Lv,j as Pv,k as es,l as $v,m as Ov,n as Nv,o as Ul,p as Dv,q as zf,r as Vr,s as Bv,t as Fv,u as Wv,w as Hv,x as jv,y as ts,z as Kr}from"./chunk-EDZ4QILG.js";import{a as Zf}from"./chunk-BBOVVDQJ.js";import{Ca as Iv,Fa as jf,N as wv,O as xv,Q as jg,R as Tv,S as Cv,c as Hg,ha as vv,n as Wf,o as Hf,v as Sv,w as Hl}from"./chunk-KLWP7POA.js";import{C as mv,Ta as gv,Ua as yv,o as Wl,p as sv}from"./chunk-B6UY3VHV.js";import{J as hv}from"./chunk-QCZLCLFL.js";import{Ad as pv,C as av,Ka as Bf,Xa as cv,cd as Ff,fd as uv,o as Ea,vb as lv,vd as dv,zd as fv}from"./chunk-TSTVAU5E.js";import{Aa as $g,Pa as qi,ma as xf,ya as KC}from"./chunk-SG6P4SZS.js";import{$a as Gr,Cc as tv,Ea as YC,Fc as Je,Gc as Ta,Hc as $t,Jc as Ca,Kc as va,Lc as Af,Nc as Ia,Oc as ba,Pc as Ra,Qc as Ro,Rc as Lf,Sc as Zi,Tc as nv,Uc as Pf,Vc as $f,Wc as Fg,Xc as Of,Yc as rv,Zc as ka,_a as Og,bc as Mf,cb as Ng,cc as Qi,ce as ov,de as Wg,ee as iv,kd as Nf,ld as Df,nc as ZC,ob as XC,oc as Bg,p as zC,tb as Rf,vb as qC,yc as ev}from"./chunk-RQPMGRTR.js";import{$a as Ef,Hb as Dg,W as kf,a as Ji,ab as _f,d as gt,g as bo,h as Zo,i as Fl,v as JC,w as QC}from"./chunk-GEECPO2H.js";import{b as ar,d as Tf,l as Cf,t as vf,u as If,y as bf}from"./chunk-M4N2JZTZ.js";import{a as i,c as o$}from"./chunk-ONUPGMER.js";import{spawnSync as s$}from"node:child_process";function pp(e){return e==="1"||e?.toLowerCase()==="true"}i(pp,"isTruthyEnv");function YI(e){return e==="0"||e?.toLowerCase()==="false"}i(YI,"isFalseyEnv");function cs(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}i(cs,"isVsCodeTerminalHostEnv");function ls(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}i(ls,"hasCursorUpViewportYankRisk");function a$(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}i(a$,"isSshSession");function Ua(e={}){let t=e.env??process.env;return pp(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&a$(t)}i(Ua,"isRemoteConptyHost");function Yl(e={}){let t=e.env??process.env;return ls(e)||cs(t)}i(Yl,"hasMainScreenRenderScrollRisk");function c$(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}i(c$,"isTmuxControlModeEnvHeuristic");var _o;function Ga(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(c$(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(_o!==void 0||(_o=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return _o;try{let o=s$("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});o.status===0&&(_o=o.stdout.trim()==="1")}catch{_o=!1}return _o}i(Ga,"isTmuxControlMode");function mp(){_o=void 0}i(mp,"resetTmuxControlModeProbeForTesting");function ii(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":Ga(e)?"tmux_control_mode":cs(t)?"xtermjs_host":Ua(e)?"remote_conpty_host":ls(e)?"degraded_vt":"native_vt"}i(ii,"detectTerminalRenderHost");var si=ii;function us(e={}){let t=e.env??process.env;if(pp(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}i(us,"resolveConfiguredTuiRendererMode");function ai(e={}){let t=us(e);if(t==="legacy"||t==="owned")return t;let n=ii(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}i(ai,"resolveEffectiveTuiRendererMode");function Xl(e={}){let t=e.env??process.env;if(pp(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=us({env:t});if(n==="legacy"||n==="owned")return"ink";let r=ii(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}i(Xl,"resolveInteractiveSurfacePreference");var l$={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},XI={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function ci(e,t="owned",n={}){let r=n.env??process.env;return YI(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?XI:l$:u$(e,t)}i(ci,"resolveFullscreenPolicy");function u$(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 XI;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}i(u$,"buildFullscreenPolicy");function ds(e,t={}){let n=t.rendererMode??"owned",r=ci(e,n,{env:t.env}),o=e!=="unsupported_control_host"&&e!=="tmux_control_mode";return{profile:e,ownsViewportByDefault:r.enabled&&r.promptShell==="virtual",supportsMouseTracking:r.mouseWheel||r.mouseClicks,bufferingMode:r.streamingPreview?"live":"buffered-fallback",supportsFullscreenLayout:r.enabled,supportsOverlaySurface:r.enabled,supportsSelection:o,supportsCopyOnSelect:!1,supportsWheelHistory:r.mouseWheel,supportsViewportChrome:r.enabled,supportsSearchViewport:r.enabled,supportsStickyPrompt:r.enabled}}i(ds,"getTerminalHostCapabilities");function ql(e={}){return ai(e)==="owned"}i(ql,"isOwnedRendererPreferred");function Jl(e={}){let t=e.env??process.env;return pp(t.KODAX_FORCE_CLASSIC_REPL)&&!YI(t.KODAX_FORCE_CLASSIC_REPL)}i(Jl,"isClassicReplForced");var fs=class{static{i(this,"LRUCache")}capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,n)}has(t){return this.cache.has(t)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}},Qg=1,Zg=2,d$=1e3,qI;function gp(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return qI??=new Intl.Segmenter("en",{granularity:"grapheme"}),qI}i(gp,"getGraphemeSegmenter");function Mn(e){if(!e)return 0;let t=gp();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}i(Mn,"getCodePointLength");function Ar(e){if(!e)return!1;let t=e.codePointAt(0);return t===void 0?!1:t>=19968&&t<=40959||t>=13312&&t<=19903||t>=63744&&t<=64255||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=12288&&t<=12351||t>=65280&&t<=65519||t>=128512&&t<=128591||t>=127744&&t<=128511||t>=128640&&t<=128767||t>=127456&&t<=127487||t>=9728&&t<=9983||t>=9984&&t<=10175||t>=129280&&t<=129535||t>=129536&&t<=129647||t>=129648&&t<=129791}i(Ar,"isWideChar");function Lr(e){if(!e)return 0;let t=0,n=gp();if(n)for(let r of n.segment(e))t+=Ar(r.segment)?Zg:Qg;else for(let r of e)t+=Ar(r)?Zg:Qg;return t}i(Lr,"getVisualWidth");function JI(e,t){if(!e||t<0)return"";let n=gp();if(n){let o=0;for(let s of n.segment(e)){if(o===t)return s.segment;o++}return""}let r=[...e];return t>=r.length?"":r[t]}i(JI,"getCharAtCodePoint");function In(e){if(!e)return[];let t=gp();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}i(In,"splitByCodePoints");function f$(e,t,n){return In(e).slice(t,n).join("")}i(f$,"sliceByCodePoints");function QI(e,t){let n=Math.max(0,t),r=In(e),o=0,s=0;for(;o<r.length;){let a=Ar(r[o])?Zg:Qg;if(s+a>n)break;s+=a,o++}return{before:r.slice(0,o).join(""),current:r[o]??"",after:r.slice(o+1).join("")}}i(QI,"splitAtVisualColumn");function Va(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=In(e);for(let u of l){let d=Ar(u)?2:1;if(c+d>s)break;a+=u,c+=d}return n&&a.length<e.length&&(a+=r),a}i(Va,"truncateByVisualWidth");var hp=new fs(d$);function yp(e){let t=hp.get(e);if(t!==void 0)return t;let n=Lr(e);return hp.set(e,n),n}i(yp,"getVisualWidthCached");function bn(e,t,n,r){let o=[],s=[],a=[];for(let c=0;c<e.length;c++){let l=e[c]||"";if(s[c]=[],l.length===0){o.push("");let p=o.length-1;s[c].push([p,0]),a.push([c,0]);continue}let u=0,d=In(l);for(;u<d.length;){let p="",h=0,m=u,g=-1;for(let x=u;x<d.length;x++){let y=d[x],C=Ar(y)?2:1;if(h+C>t){g>=0&&x-u>0?(p=d.slice(u,g).join(""),h=d.slice(u,g).reduce((v,_)=>v+(Ar(_)?2:1),0),m=g):p.length===0&&C>t&&(p=y,h=C,m=x+1);break}p+=y,h+=C,m=x+1,y===" "&&(g=x+1)}if(p.length>0||o.length===0){let x=u,y=o.length;o.push(p),s[c].push([y,x]),a.push([c,x])}u=m}}return{visualLines:o,logicalToVisualMap:s,visualToLogicalMap:a}}i(bn,"calculateVisualLayout");function Sp(e,t){let{logicalToVisualMap:n,visualLines:r}=e;if(r.length===0)return[0,0];let[o,s]=t,a=n[o];if(!a||a.length===0)return[0,0];let c;for(let[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=Lr(f$(d,0,p));return[l,h]}i(Sp,"calculateVisualCursorFromLayout");var wp={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"]}},ey={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 ty={dark:wp,minimal:ey};function ce(e="dark"){return ty[e]??wp}i(ce,"getTheme");function p$(){return Object.keys(ty)}i(p$,"getThemeNames");import{jsx as Pn,jsxs as lr,Fragment as TD}from"react/jsx-runtime";import{useMemo as Yp}from"react";import{jsx as P0}from"react/jsx-runtime";import{createContext as qN,useContext as xs,useEffect as ec,useMemo as L0,useState as JN,useCallback as $0,useRef as Wp}from"react";import{Stream as RN}from"node:stream";import{openSync as kN,writeSync as x0}from"node:fs";import{performance as EN}from"node:perf_hooks";import{tmpdir as _N}from"node:os";import{join as MN}from"node:path";import ny,{forwardRef as g$,useContext as y$}from"react";import{createContext as m$}from"react";var Ka=m$({isScreenReaderEnabled:!1});import{createContext as h$}from"react";var xp=h$(void 0);var ZI=g$(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":o,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=y$(Ka),u=n?ny.createElement("ink-text",null,n):void 0;if(l&&r)return null;let d=ny.createElement("ink-box",{ref:c,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,...a,backgroundColor:t,overflowX:a.overflowX??a.overflow??"visible",overflowY:a.overflowY??a.overflow??"visible"},internal_accessibility:{role:o,state:s}},l&&u?u:e);return t?ny.createElement(xp.Provider,{value:t},d):d});ZI.displayName="Box";var cr=ZI;import T$,{useContext as eb}from"react";import za from"chalk";import li from"chalk";var S$=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,w$=/^ansi256\(\s?(\d+)\s?\)$/;function x$(e){return e in li}i(x$,"isNamedColor");function Pr(e,t,n){if(!t)return e;if(x$(t)){let r=li;if(n==="foreground")return r[t]?.(e)??e;let o=`bg${t[0].toUpperCase()+t.slice(1)}`;return r[o]?.(e)??e}if(t.startsWith("#"))return n==="foreground"?li.hex(t)(e):li.bgHex(t)(e);if(t.startsWith("ansi256")){let r=w$.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?li.ansi256(o)(e):li.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=S$.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?li.rgb(o,s,a)(e):li.bgRgb(o,s,a)(e)}return e}i(Pr,"colorize");function An({color:e,backgroundColor:t,dimColor:n=!1,bold:r=!1,italic:o=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:l="wrap",children:u,"aria-label":d,"aria-hidden":p=!1,internal_cursorAnchor:h=!1}){let{isScreenReaderEnabled:m}=eb(Ka),g=eb(xp),x=m&&d?d:u;if(x==null)return null;let y=i(C=>{let v=C;n&&(v=za.dim(v)),e&&(v=Pr(v,e,"foreground"));let _=t??g;return _&&(v=Pr(v,_,"background")),r&&(v=za.bold(v)),o&&(v=za.italic(v)),s&&(v=za.underline(v)),a&&(v=za.strikethrough(v)),c&&(v=za.inverse(v)),v},"transform");return m&&p?null:T$.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:y,...h?{internal_cursorAnchor:!0}:{}},m&&d?d:u)}i(An,"Text");import C$,{useLayoutEffect as v$,useMemo as tb,useState as I$}from"react";function ry({items:e,children:t,style:n}){let[r,o]=I$(0),s=tb(()=>e.slice(r),[e,r]);v$(()=>{o(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=tb(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return C$.createElement("ink-box",{internal_static:!0,style:c},a)}i(ry,"Static");import Ss from"node:process";import y0 from"react";import{throttle as aN}from"es-toolkit/compat";import Ln from"ansi-escapes";import No from"is-in-ci";import cN from"auto-bind";import{onExit as lN}from"signal-exit";import uN from"patch-console";import{LegacyRoot as dN,ConcurrentRoot as fN}from"react-reconciler/constants.js";import pN from"yoga-layout";import mN from"wrap-ansi";import hN from"terminal-size";import b$ from"node:process";var Tp=i(()=>b$.env.DEV==="true","isDev");import Q$ from"react-reconciler";import{DefaultEventPriority as Z$,NoEventPriority as yb}from"react-reconciler/constants.js";import*as ui from"scheduler";import pb from"yoga-layout";import{createContext as eO}from"react";import W$ from"yoga-layout";import R$ from"widest-line";var nb=new Map,k$=i(e=>{if(e.length===0)return{width:0,height:0};let t=nb.get(e);if(t)return t;let n=R$(e),r=e.split(`
|
|
3
|
+
`).length,o={width:n,height:r};return nb.set(e,o),o},"measureText"),oy=k$;import E$ from"wrap-ansi";import _$ from"cli-truncate";var rb={},M$=i((e,t,n)=>{let r=e+String(t)+String(n),o=rb[r];if(o)return o;let s=e;if(n==="wrap"&&(s=E$(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=_$(e,t,{position:a})}return rb[r]=s,s},"wrapText"),Cp=M$;var A$=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),L$=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),P$=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),sb=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),$$=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),ab=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),ob=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!A$(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!L$(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!P$(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),ib=i((e,t,n)=>{for(let r=t;r<e.length;r++){let o=e[r];if(n&&o==="\x07"||o==="\x9C")return r+1;if(o==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),O$=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!sb(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!$$(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),N$=i(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),D$=i(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),iy=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(ab(t))return!0;return!1},"hasAnsiControlCharacters"),Ya=i((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),cb=i(e=>{if(!iy(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let o=e[r];if(o===void 0)break;if(o==="\x1B"){let a=e[r+1];if(a===void 0)return Ya(t,e,n,r);if(a==="["){let u=ob(e,r+2);if(u===void 0)return Ya(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=N$(a);if(c!==void 0){let u=ib(e,r+2,c.allowBellTerminator);if(u===void 0)return Ya(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=O$(e,r+1);if(l===void 0){if(sb(a))return Ya(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(o==="\x9B"){let a=ob(e,r+1);if(a===void 0)return Ya(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=D$(o);if(s!==void 0){let a=ib(e,r+1,s.allowBellTerminator);if(a===void 0)return Ya(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(o==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:o}),r++,n=r;continue}if(ab(o)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:o}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var B$=/^[\d:;]*$/,F$=i(e=>{if(!iy(e))return e;let t="";for(let n of cb(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&B$.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),lb=F$;var ub=i(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=ub(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return lb(t)},"squashTextNodes"),Ql=ub;var vp=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:W$.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(H$.bind(null,t)),t},"createNode"),Ip=i((e,t)=>{t.parentNode&&Zl(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")&&bp(e)},"appendChildNode"),sy=i((e,t,n)=>{t.parentNode&&Zl(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")&&bp(e)},"insertBeforeNode"),Zl=i((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&bp(e)},"removeChildNode"),ay=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),cy=i((e,t)=>{e.style=t},"setStyle"),db=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return eu(t,e),t},"createTextNode"),H$=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Ql(e),r=oy(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=Cp(n,t,o);return oy(s)},"measureTextNode"),fb=i(e=>{if(e?.parentNode)return e.yogaNode??fb(e.parentNode)},"findClosestYogaNode"),bp=i(e=>{fb(e)?.markDirty()},"markNodeAsDirty"),eu=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,bp(e)},"setTextNodeValue");import _e from"yoga-layout";var U$=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?_e.POSITION_TYPE_ABSOLUTE:_e.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(_e.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(_e.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(_e.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(_e.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),G$=i((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"),V$=i((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"),K$=i((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(_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"),z$=i((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),Y$=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?_e.DISPLAY_FLEX:_e.DISPLAY_NONE)},"applyDisplayStyles"),X$=i((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"),q$=i((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"),J$=i((e,t={})=>{U$(e,t),G$(e,t),V$(e,t),K$(e,t),z$(e,t),Y$(e,t),X$(e,t),q$(e,t)},"styles"),ly=J$;if(Tp())try{await import("./devtools-CD6KSIHE.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
4
|
+
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
5
|
+
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
6
|
+
|
|
7
|
+
To install use this command:
|
|
8
|
+
|
|
9
|
+
$ npm install --save-dev react-devtools-core
|
|
10
|
+
`.trim()+`
|
|
11
|
+
`);else throw e}var mb=i((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let o of Object.keys(e))(!t||!Object.hasOwn(t,o))&&(n[o]=void 0,r=!0);if(t)for(let o of Object.keys(t))t[o]!==e[o]&&(n[o]=t[o],r=!0);return r?n:void 0},"diff"),hb=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Rp=yb,uy,gb={name:void 0,version:void 0},Mo=Q$({getRootHostContext:i(()=>({isInsideText:!1}),"getRootHostContext"),prepareForCommit:i(()=>null,"prepareForCommit"),preparePortalMount:i(()=>null,"preparePortalMount"),clearContainer:i(()=>!1,"clearContainer"),resetAfterCommit(e){if(typeof e.onComputeLayout=="function"&&e.onComputeLayout(),e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext(e,t){let n=e.isInsideText,r=t==="ink-text"||t==="ink-virtual-text";return n===r?e:{isInsideText:r}},shouldSetTextContent:i(()=>!1,"shouldSetTextContent"),createInstance(e,t,n,r){if(r.isInsideText&&e==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let o=e==="ink-text"&&r.isInsideText?"ink-virtual-text":e,s=vp(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){cy(s,c),s.yogaNode&&ly(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_cursorAnchor"){s.internal_cursorAnchor=c;continue}if(a==="internal_static"){uy=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}ay(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 db(e)},resetTextContent(){},hideTextInstance(e){eu(e,"")},unhideTextInstance(e,t){eu(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(pb.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(pb.DISPLAY_FLEX)},appendInitialChild:Ip,appendChild:Ip,insertBefore:sy,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:ui.unstable_scheduleCallback,cancelCallback:ui.unstable_cancelCallback,shouldYield:ui.unstable_shouldYield,now:ui.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:Ip,insertInContainerBefore:sy,removeChildFromContainer(e,t){Zl(e,t),hb(t.yogaNode)},commitUpdate(e,t,n,r){uy&&e.internal_static&&(uy.isStaticDirty=!0);let o=mb(n,r),s=mb(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){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}ay(e,a,c)}s&&e.yogaNode&&ly(e.yogaNode,s)}},commitTextUpdate(e,t,n){eu(e,n)},removeChild(e,t){Zl(e,t),hb(t.yogaNode)},setCurrentUpdatePriority(e){Rp=e},getCurrentUpdatePriority:i(()=>Rp,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Rp!==yb?Rp:Z$},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:eO(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:gb.name,rendererVersion:gb.version});import iO from"widest-line";import sO from"indent-string";import di from"yoga-layout";import kp from"yoga-layout";var tO=i(e=>e.getComputedWidth()-e.getComputedPadding(kp.EDGE_LEFT)-e.getComputedPadding(kp.EDGE_RIGHT)-e.getComputedBorder(kp.EDGE_LEFT)-e.getComputedBorder(kp.EDGE_RIGHT),"getMaxWidth"),Sb=tO;import nO from"cli-boxes";import Ep from"chalk";var rO=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?nO[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,x=n.style.borderTop!==!1,y=n.style.borderBottom!==!1,C=n.style.borderLeft!==!1,v=n.style.borderRight!==!1,_=o-(C?1:0)-(v?1:0),E=x?Pr((C?a.topLeft:"")+a.top.repeat(_)+(v?a.topRight:""),c,"foreground"):void 0;x&&p&&(E=Ep.dim(E));let R=s;x&&(R-=1),y&&(R-=1);let I=(Pr(a.left,u,"foreground")+`
|
|
12
|
+
`).repeat(R);m&&(I=Ep.dim(I));let W=(Pr(a.right,d,"foreground")+`
|
|
13
|
+
`).repeat(R);g&&(W=Ep.dim(W));let $=y?Pr((C?a.bottomLeft:"")+a.bottom.repeat(_)+(v?a.bottomRight:""),l,"foreground"):void 0;y&&h&&($=Ep.dim($));let D=x?1:0;E&&r.write(e,t,E,{transformers:[]}),C&&r.write(e,t+D,I,{transformers:[]}),v&&r.write(e+o-1,t+D,W,{transformers:[]}),$&&r.write(e,t+s-1,$,{transformers:[]})}},"renderBorder"),wb=rO;var oO=i((e,t,n,r)=>{if(!n.style.backgroundColor)return;let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=n.style.borderStyle&&n.style.borderLeft!==!1?1:0,c=n.style.borderStyle&&n.style.borderRight!==!1?1:0,l=n.style.borderStyle&&n.style.borderTop!==!1?1:0,u=n.style.borderStyle&&n.style.borderBottom!==!1?1:0,d=o-a-c,p=s-l-u;if(!(d>0&&p>0))return;let h=Pr(" ".repeat(d),n.style.backgroundColor,"background");for(let m=0;m<p;m++)r.write(e+a,t+l+m,h,{transformers:[]})},"renderBackground"),xb=oO;function _p(e){let{rawScrollTop:t,contentHeight:n,viewportHeight:r,previousScrollHeight:o,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)),x=s&&n>=o?h:m,y=a!==void 0||c!==void 0?Math.max(a??0,Math.min(x,Math.min(h,c??h))):x,C=l&&u!==void 0,v=Math.max(0,Math.floor(u??0)),_=l?C?v:0:y,E=C?_:y,R=null;if(d!==void 0&&d!==E&&r>0){let I=p+r-1;I>=p&&(R={top:p,bottom:I,delta:E-d})}return{scrollHeight:n,viewportTop:y,appliedScrollTop:E,scrollTop:y,scrollOffsetY:_,scrollHint:R}}i(_p,"computeScrollState");var aO=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
|
|
14
|
+
`.repeat(o)+sO(t,r)}return t},"applyPaddingToText"),Mp=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===di.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:o}=e.internal_accessibility;if(o){let a=Object.keys(o).filter(c=>o[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),dy=null,fy=null;function Tb(){dy=null,fy=null}i(Tb,"resetScrollHint");function Cb(){return dy}i(Cb,"getScrollHint");function vb(){return fy}i(vb,"getScrollRepaint");var Ib=i((e,t,n)=>{let{offsetX:r=0,offsetY:o=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===di.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=o+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=iO(m),x=Sb(c);if(g>x){let y=e.style.textWrap??"wrap";m=Cp(m,x,y)}m=aO(e,m),t.write(l,u,m,{transformers:d})}return}let p=!1,h=0;if(e.nodeName==="ink-box"){xb(l,u,e,t),wb(l,u,e,t);let m=e.style.overflowX??e.style.overflow,g=e.style.overflowY??e.style.overflow,x=m==="hidden"||m==="scroll",y=g==="hidden"||g==="scroll";if(g==="scroll"){let C=c.getComputedBorder(di.EDGE_TOP),v=c.getComputedBorder(di.EDGE_BOTTOM),_=Math.max(0,c.getComputedHeight()-C-v),E=e.attributes?.virtualScrollWindowed===!0,R=e.childNodes[0],I=Math.max(0,Math.floor(E?e.attributes?.scrollHeight??0:R?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),W=typeof e.scrollHeight=="number"?e.scrollHeight:I,$=_p({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:I,viewportHeight:_,previousScrollHeight:W,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:E,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+C});e.scrollHeight=$.scrollHeight,e.scrollViewportHeight=_,e.scrollViewportTop=$.viewportTop,e.appliedScrollTop=$.appliedScrollTop,$.scrollHint&&(dy=$.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&(fy={top:$.scrollHint.top,bottom:$.scrollHint.bottom})),e.attributes&&e.attributes.pendingScrollDelta&&(e.attributes.pendingScrollDelta=0),e.scrollTop=$.scrollTop,h=$.scrollOffsetY}if(x||y){let C=x?l+c.getComputedBorder(di.EDGE_LEFT):void 0,v=x?l+c.getComputedWidth()-c.getComputedBorder(di.EDGE_RIGHT):void 0,_=y?u+c.getComputedBorder(di.EDGE_TOP):void 0,E=y?u+c.getComputedHeight()-c.getComputedBorder(di.EDGE_BOTTOM):void 0;t.clip({x1:C,x2:v,y1:_,y2:E}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let m of e.childNodes)Ib(m,t,{offsetX:l,offsetY:u-h,transformers:d,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),py=Ib;import cO from"slice-ansi";import lO from"string-width";import{styledCharsFromTokens as uO,styledCharsToString as dO,tokenize as fO}from"@alcalzone/ansi-tokenize";var my=class{static{i(this,"OutputCaches")}widths=new Map;blockWidths=new Map;styledChars=new Map;getStyledChars(t){let n=this.styledChars.get(t);return n===void 0&&(n=uO(fO(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=lO(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let r=0;for(let o of t.split(`
|
|
16
|
+
`))r=Math.max(r,this.getStringWidth(o));n=r,this.blockWidths.set(t,n)}return n}},Xa=class{static{i(this,"Output")}width;height;operations=[];caches=new my;constructor(t){let{width:n,height:r}=t;this.width=n,this.height=r}write(t,n,r,o){let{transformers:s}=o;r&&this.operations.push({type:"write",x:t,y:n,text:r,transformers:s})}clip(t){this.operations.push({type:"clip",clip:t})}unclip(){this.operations.push({type:"unclip"})}getGrid(){let t=[];for(let r=0;r<this.height;r++){let o=[];for(let s=0;s<this.width;s++)o.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(o)}let n=[];for(let r of this.operations)if(r.type==="clip"&&n.push(r.clip),r.type==="unclip"&&n.pop(),r.type==="write"){let{text:o,transformers:s}=r,{x:a,y:c}=r,l=o.split(`
|
|
17
|
+
`),u=n.at(-1);if(u){let p=typeof u?.x1=="number"&&typeof u?.x2=="number",h=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let m=this.caches.getWidestLine(o);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,x=this.caches.getStringWidth(m),y=a+x>u.x2?u.x2-a:x;return cO(m,g,y)}),a<u.x1&&(a=u.x1)),h){let m=c<u.y1?u.y1-c:0,g=l.length,x=c+g>u.y2?u.y2-c:g;l=l.slice(m,x),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 y of s)h=y(h,p);let g=this.caches.getStyledChars(h),x=a;for(let y of g){m[x]=y;let C=Math.max(1,this.caches.getStringWidth(y.value));if(C>1)for(let v=1;v<C;v++)m[x+v]={type:"char",value:"",fullWidth:!1,styles:y.styles};x+=C}d++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let o=r.filter(s=>s!==void 0);return dO(o).trimEnd()}).join(`
|
|
18
|
+
`),height:t.length}}};var qr={Single:0,Wide:1,SpacerTail:2},Xr={char:" ",width:qr.Single,style:"",hyperlink:void 0};function bb(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(Xr);return{width:e,height:t,cells:n}}i(bb,"createScreen");function ps(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}i(ps,"cellAt");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(Xr),r=!1;return{width:e,height:t,setCellAt(o,s,a){if(r)throw new Error("ScreenBuilder.setCellAt called after build()");if(o<0||s<0||o>=e||s>=t)throw new RangeError(`ScreenBuilder.setCellAt out of bounds: (${o}, ${s}) on ${e}x${t}`);n[s*e+o]=a},build(){if(r)throw new Error("ScreenBuilder.build called twice");return r=!0,{width:e,height:t,cells:n}}}}i(Rb,"createScreenBuilder");function*Ap(e,t){let n=Math.max(e.width,t.width),r=Math.max(e.height,t.height);for(let o=0;o<r;o++)for(let s=0;s<n;s++){let a=ps(e,s,o),c=ps(t,s,o);pO(a,c)||(yield{x:s,y:o,prev:a,next:c})}}i(Ap,"diffEach");function kb(e,t,n,r){if(r===0||e.height===0)return e;let o=Math.max(0,t),s=Math.min(e.height-1,n);if(o>s)return e;let a=e.width,c=e.cells.slice(),l=s-o+1,u=i(d=>{for(let p=0;p<a;p++)c[d*a+p]=Xr},"blankRow");if(Math.abs(r)>=l){for(let d=o;d<=s;d++)u(d);return{...e,cells:c}}if(r>0){for(let d=o;d<=s-r;d++)for(let p=0;p<a;p++)c[d*a+p]=e.cells[(d+r)*a+p]??Xr;for(let d=s-r+1;d<=s;d++)u(d)}else{let d=-r;for(let p=s;p>=o+d;p--)for(let h=0;h<a;h++)c[p*a+h]=e.cells[(p-d)*a+h]??Xr;for(let p=o;p<=o+d-1;p++)u(p)}return{...e,cells:c}}i(kb,"shiftRowsRegion");function pO(e,t){return e===t?!0:e===void 0||t===void 0?!1:e.char===t.char&&e.width===t.width&&e.style===t.style&&e.hyperlink===t.hyperlink}i(pO,"cellsEqual");var hy="\x1B]8;";function mO(e){return e.endsWith("\x07")?e.slice(0,-1):e}i(mO,"stripOsc8Terminator");function hO(e){if(!e.startsWith(hy))return;let t=e.slice(hy.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),o=mO(r);return o.length>0?o:void 0}i(hO,"parseOsc8Url");function gO(e){if(e.value==="")return{char:"",width:qr.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(hy)){let o=hO(r.code);o!==void 0&&(n=o)}else t+=r.code;return{char:e.value,width:e.fullWidth?qr.Wide:qr.Single,style:t,hyperlink:n}}i(gO,"styledCharToCell");function Lp(e){let t=e.getGrid(),n=e.width,r=e.height,o=Rb(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=gO(d);p.char===Xr.char&&p.width===Xr.width&&p.style===Xr.style&&p.hyperlink===Xr.hyperlink||o.setCellAt(u,a,p)}}return o.build()}i(Lp,"outputToScreen");var yO=i((e,t,n)=>{if(e.yogaNode){if(t){let h=Mp(e,{skipStaticElements:!0}),m=h===""?0:h.split(`
|
|
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 Xa({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});Tb(),py(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new Xa({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),py(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Lp(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:Cb(),scrollRepaint:vb(),...d?{inputCursor:{x:d.x,y:d.y}}:{}};return{output:s,outputHeight:a,staticOutput:o?`${o.get().output}
|
|
21
|
+
`:"",frame:p}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),gy=yO;function Vn(...e){if(e.length===0)return"\x1B[";if(e.length===1)return`\x1B[${e[0]}`;let t=e.slice(0,-1),n=e[e.length-1];return`\x1B[${t.join(";")}${n}`}i(Vn,"csi");function Eb(e=1){return e===0?"":Vn(e,"A")}i(Eb,"cursorUp");function SO(e=1){return e===0?"":Vn(e,"B")}i(SO,"cursorDown");function wO(e=1){return e===0?"":Vn(e,"C")}i(wO,"cursorForward");function xO(e=1){return e===0?"":Vn(e,"D")}i(xO,"cursorBack");function _b(e){return Vn(e,"G")}i(_b,"cursorTo");var TO=Vn("G"),Mb=Vn("H");function Ab(e,t){let n="";return e<0?n+=xO(-e):e>0&&(n+=wO(e)),t<0?n+=Eb(-t):t>0&&(n+=SO(t)),n}i(Ab,"cursorMove");var yy=Vn(2,"K");function Lb(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=yy,n<e-1&&(t+=Eb(1));return t+=TO,t}i(Lb,"eraseLines");var Pb=Vn("r"),$b="\x1B7",Ob="\x1B8";function Nb(e,t){return Vn(e,t,"r")}i(Nb,"setScrollRegion");function Db(e=1){return Vn(e,"S")}i(Db,"scrollUp");function Bb(e=1){return Vn(e,"T")}i(Bb,"scrollDown");var tu=Vn(0,"m");function Fb(e){return`\x1B]${e.join(";")}\x07`}i(Fb,"osc");function CO(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(t>>>0).toString(36)}i(CO,"osc8Id");function nu(e,t){if(!e)return qa;let n={id:CO(e),...t??{}},r=Object.entries(n).map(([o,s])=>`${o}=${s}`).join(":");return Fb(["8",r,e])}i(nu,"link");var qa=Fb(["8","",""]);function Sy(e){let{screen:t}=e;if(t.width===0||t.height===0)return[];let n=[],r="",o;for(let s=0;s<t.height;s++){let a="";for(let c=0;c<t.width;c++){let l=ps(t,c,s);!l||l.width===qr.SpacerTail||(l.hyperlink!==o&&(o!==void 0&&(a+=qa),l.hyperlink!==void 0&&(a+=nu(l.hyperlink)),o=l.hyperlink),l.style!==r&&(r!==""&&(a+=tu),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}o!==void 0&&(a+=qa,o=void 0),r!==""&&(a+=tu,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
|
|
22
|
+
`)}]}i(Sy,"renderFullFrame");var vO=Object.freeze([]),IO=Object.freeze([]);function ms(e,t){if(e===t)return{patches:vO,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:tu}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}i(ms,"transitionStyle");function ou(e,t){let n=ms(e,t),r="";for(let o of n.patches)o.type==="stdout"&&(r+=o.content);return{str:r,current:n.current}}i(ou,"transitionStyleStr");function Ao(e,t){if(e===t)return{patches:IO,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:qa}),t!==void 0&&n.push({type:"stdout",content:nu(t)}),{patches:n,current:t}}i(Ao,"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}i(Wb,"needsWidthCompensation");var hs=class{static{i(this,"VirtualScreen")}viewportWidth;cursor;diff;_cursorMut;_diffMut=[];constructor(t,n){this.viewportWidth=n,this._cursorMut={x:t.x,y:t.y},this.cursor=this._cursorMut,this.diff=this._diffMut}txn(t){let[n,r]=t(this.cursor);for(let o of n)this._diffMut.push(o);this._cursorMut.x+=r.dx,this._cursorMut.y+=r.dy}},Lo={type:"carriageReturn"},ru={type:"stdout",content:`
|
|
23
|
+
`};function iu(e,t,n){let r=t.width===qr.Wide?2:1,o=e.viewportWidth,s=!1;return e.txn(a=>{let c=a.x;if(r===2&&c<o){let d=t.char.length>2?o:o+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<o&&(l.push({type:"cursorTo",col:c+2}),l.push({type:"stdout",content:" "}),l.push({type:"cursorTo",col:c+1})),l.push({type:"stdout",content:t.char}),u&&l.push({type:"cursorTo",col:c+r+1}),s=!0,c>=o?[l,{dx:r-c,dy:1}]:[l,{dx:r,dy:0}]}),s}i(iu,"writeCellWithStyleStr");function gs(e,t,n){e.txn(r=>{let o=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[Lo,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:s!==0?[[Lo,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:[[{type:"cursorMove",x:o,y:s}],{dx:o,dy:s}]})}i(gs,"moveCursorTo");function su(e,t,n,r,o=!1){let s="",a;for(let c=n;c<r;c++){if(e.cursor.y<c){let p=c-e.cursor.y;e.txn(h=>{let m=new Array(1+p);m[0]=Lo;for(let g=0;g<p;g++)m[1+g]=ru;return[m,{dx:-h.x,dy:p}]})}for(let p=0;p<t.screen.width;p++){let h=ps(t.screen,p,c);if(!h||h.width===qr.SpacerTail||h.char===" "&&h.style===""&&h.hyperlink===void 0)continue;gs(e,p,c);let m=Ao(a,h.hyperlink);for(let x of m.patches)e.txn(()=>[[x],{dx:0,dy:0}]);a=m.current;let g=ou(s,h.style);iu(e,h,g.str)&&(s=g.current)}let l=ms(s,"");for(let p of l.patches)e.txn(()=>[[p],{dx:0,dy:0}]);s=l.current;let u=Ao(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||o);e.txn(p=>d?[[Lo],{dx:-p.x,dy:0}]:[[Lo,ru],{dx:-p.x,dy:1}])}if(s!==""||a!==void 0){let c=ms(s,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);let l=Ao(a,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}])}}i(su,"renderFrameSlice");function wy(e,t,n,r){let o=Math.max(0,Math.floor(n)),s=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(r));for(let a=o;a<=s;a++)bO(e,t,a)}i(wy,"repaintFrameRows");function bO(e,t,n){let r="",o;gs(e,0,n),e.txn(()=>[[{type:"stdout",content:qa+tu},{type:"eraseLine"}],{dx:0,dy:0}]);for(let s=0;s<t.screen.width;s++){let a=ps(t.screen,s,n);if(!a||a.width===qr.SpacerTail||a.char===" "&&a.style===""&&a.hyperlink===void 0)continue;gs(e,s,n);let c=Ao(o,a.hyperlink);for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);o=c.current;let l=ou(r,a.style);iu(e,a,l.str)&&(r=l.current)}for(let s of ms(r,"").patches)e.txn(()=>[[s],{dx:0,dy:0}]);for(let s of Ao(o,void 0).patches)e.txn(()=>[[s],{dx:0,dy:0}])}i(bO,"repaintFrameRow");function xy(e,t){let n="";for(let r=0;r<e.width;r++){let o=ps(e,r,t);n+=o?.char??" "}return n.trimEnd()}i(xy,"readLine");function Ja(e,t,n=!1){let r=new hs({x:0,y:0},e.viewport.width);su(r,e,0,e.screen.height,n);let o=[{type:"clearTerminal",reason:t}];for(let s of r.diff)o.push(s);return o}i(Ja,"fullResetSequence_CAUSES_FLICKER");function Pp(e,t){let n=e.cursor.y>=e.screen.height,r=t.screen.height>e.screen.height,o=t.screen.height<e.screen.height,s=n&&e.screen.height>=e.viewport.height,a=t.screen.height<=e.viewport.height,c=s?1:0;return{viewportY:r?Math.max(0,e.screen.height-e.viewport.height+c):Math.max(e.screen.height,t.screen.height)-t.viewport.height+c,cursorAtBottom:n,growing:r,shrinking:o,prevHadScrollback:s,nextFitsViewport:a}}i(Pp,"computeViewportState");function Hb(e,t,n){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let r=Pp(e,t);if(r.prevHadScrollback&&r.nextFitsViewport&&r.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&r.cursorAtBottom&&!r.growing){let s=e.screen.height-e.viewport.height+1;for(let a of Ap(e.screen,t.screen))if(a.y<s)return{reset:!0,reason:"offscreen",trigger:{y:a.y,prevLine:n(e.screen,a.y),nextLine:n(t.screen,a.y)}}}return r.shrinking&&e.screen.height-t.screen.height>e.viewport.height?{reset:!0,reason:"offscreen"}:{reset:!1}}i(Hb,"shouldFullReset");function jb(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}i(jb,"shouldSkipDiff");var $p=class{static{i(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return Sy(n);let o=r.inlineBottomAnchored??!1,s=Ub(t,o),a=Ub(n,o);if(r.altScreen===!0&&t.screen.height===0&&a.screen.height>0)return Ja(a,"clear",o);let c=Hb(s,a,xy);if(c.reset)return Ja(a,c.reason,o);if(a.scrollRepaint&&r.altScreen===!0)return RO(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:kb(s.screen,l.top,l.bottom,l.delta)};return[u,...Gb(d,a,o)]}return Gb(s,a,o)}reset(){}};function Ty(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}i(Ty,"emitPatches");function Cy(e,t,n){if(t!==""){let r=ms(t,"");Ty(e,r.patches)}if(n!==void 0){let r=Ao(n,void 0);Ty(e,r.patches)}return{style:"",hyperlink:void 0}}i(Cy,"resetStyleAndHyperlink");function RO(e,t,n){let r=Pp(e,t),o=new hs(e.cursor,t.viewport.width);r.shrinking&&Vb(o,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&&wy(o,t,c.top,c.bottom);let l=Kb(o,e,t,{...r,skipRows:c});return l.needsFullReset?Ja(t,"offscreen"):(Cy(o,l.currentStyle,l.currentHyperlink),r.growing&&su(o,t,e.screen.height,t.screen.height),zb(o,t),o.diff)}i(RO,"renderScrollRepaint");function Vb(e,t,n){let r=t.screen.height-n.screen.height;e.txn(o=>[[{type:"clear",count:r},{type:"cursorMove",x:0,y:-1}],{dx:-o.x,dy:-r}])}i(Vb,"applyShrink");function Kb(e,t,n,r){let o="",s,a=!1;for(let c of Ap(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(!jb(d,p,h)){if(u<r.viewportY){a=!0;break}if(gs(e,l,u),p){let m=Ao(s,p.hyperlink);Ty(e,m.patches),s=m.current;let g=ou(o,p.style);iu(e,p,g.str)&&(o=g.current)}else if(d){let m=Cy(e,o,s);o=m.style,s=m.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:o,currentHyperlink:s,needsFullReset:a}}i(Kb,"diffPass");function Ub(e,t){let n=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return e.cursor.y<=n?e:{...e,cursor:{...e.cursor,y:n}}}i(Ub,"clampRestingCursor");function zb(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]=Lo;for(let a=0;a<r;a++)s[1+a]=ru;return[s,{dx:-n.x,dy:r}]}let o=t.cursor.y-n.y;return o!==0||n.x!==t.cursor.x?[[Lo,{type:"cursorMove",x:t.cursor.x,y:o}],{dx:t.cursor.x-n.x,dy:o}]:[[],{dx:0,dy:0}]}):gs(e,t.cursor.x,t.cursor.y)}i(zb,"restoreCursor");function Gb(e,t,n=!1){let r=Pp(e,t),o=new hs(e.cursor,t.viewport.width);r.shrinking&&Vb(o,e,t);let s=Kb(o,e,t,r);return s.needsFullReset?Ja(t,"offscreen",n):(Cy(o,s.currentStyle,s.currentHyperlink),r.growing&&su(o,t,e.screen.height,t.screen.height,n),zb(o,t),o.diff)}i(Gb,"renderIncremental");var kO="\x1B[?25l",EO="\x1B[?25h",_O=`\x1B[2J${Mb}`,MO="\x1B[?2026h",AO="\x1B[?2026l";function LO(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return kO;case"cursorShow":return EO;case"cursorMove":return Ab(e.x,e.y);case"cursorTo":return _b(e.col);case"eraseLine":return yy;case"clear":return Lb(e.count);case"clearTerminal":return _O;case"hyperlink":return nu(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,r=Math.abs(e.delta),o=e.delta>0?Db(r):Bb(r);return $b+Nb(t,n)+o+Pb+Ob}}}i(LO,"patchToBytes");function Op(e,t,n=!1){let r="",o=!1;for(let s of t)s.type==="clearTerminal"&&(o=!0),r+=LO(s);if(r.length!==0){if(n&&o){e.write(MO+r+AO);return}e.write(r)}}i(Op,"applyDiff");function Yb(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}i(Yb,"applyCellFrame");function au(e,t){return{screen:bb(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}i(au,"emptyFrame");import PO from"is-in-ci";var Po="\x1B[?2026h",Jr="\x1B[?2026l";function $o(e){return"isTTY"in e&&e.isTTY===!0&&!PO}i($o,"shouldSynchronize");var $O=new WeakMap,Xb=$O;import{EventEmitter as eN}from"node:events";import tN from"node:process";import ys,{useState as by,useRef as Qa,useCallback as Ot,useMemo as Za,useEffect as p0}from"react";import nN from"cli-cursor";var OO=i(e=>e>=48&&e<=63,"isCsiParameterByte"),NO=i(e=>e>=32&&e<=47,"isCsiIntermediateByte"),Jb=i(e=>e>=64&&e<=126,"isCsiFinalByte");function DO(e,t,n){let r=t+n+1,o=r;for(;o<e.length;o+=1){let s=e.codePointAt(o);if(s===void 0)return"pending";if(!(OO(s)||NO(s))&&!(s===91&&o===r))return Jb(s)?{sequence:e.slice(t,o+1),nextIndex:o+1}:void 0}return"pending"}i(DO,"parseCsiSequence");function BO(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let o=e.codePointAt(r-1);if(!(o===void 0||!Jb(o)))return{sequence:e.slice(t,r),nextIndex:r}}i(BO,"parseSs3Sequence");function qb(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return DO(e,t,n);if(r==="O")return BO(e,t,n)}i(qb,"parseControlSequence");function FO(e,t){let n=e.codePointAt(t+1),r=n!==void 0&&n>65535?2:1,o=t+1+r;return{sequence:e.slice(t,o),nextIndex:o}}i(FO,"parseEscapedCodePoint");function WO(e){let t=[],n=0,r=i(o=>({events:t,pending:e.slice(o)}),"pendingFrom");for(;n<e.length;){let o=e.indexOf("\x1B",n);if(o===-1)return t.push(e.slice(n)),{events:t,pending:""};if(o>n&&t.push(e.slice(n,o)),o===e.length-1)return r(o);let s=qb(e,o,1);if(s==="pending")return r(o);if(s){t.push(s.sequence),n=s.nextIndex;continue}if(e[o+1]==="\x1B"){if(o+2>=e.length)return r(o);let l=qb(e,o,2);if(l==="pending")return r(o);if(l){t.push(l.sequence),n=l.nextIndex;continue}t.push(e.slice(o,o+2)),n=o+2;continue}let c=FO(e,o);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}i(WO,"parseKeypresses");function Np(){let e="";return{push(t){let n=WO(e+t);return e=n.pending,n.events},hasPendingEscape(){return e.startsWith("\x1B")},flushPendingEscape(){if(!e.startsWith("\x1B"))return;let t=e;return e="",t},reset(){e=""}}}i(Np,"createInputParser");import{createContext as HO}from"react";var Qb=HO({exit(){}});Qb.displayName="InternalAppContext";var Zb=Qb;import{EventEmitter as jO}from"node:events";import{createContext as UO}from"react";var GO={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},e0=UO({stdin:GO,internal_eventEmitter:new jO,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});e0.displayName="InternalStdinContext";var t0=e0;import{createContext as VO}from"react";var KO={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},n0=VO({stdout:KO,write(){}});n0.displayName="InternalStdoutContext";var r0=n0;import{createContext as zO}from"react";var YO={isTTY:!1,write(){return!0},on(){},off(){}},o0=zO({stderr:YO,write(){}});o0.displayName="InternalStderrContext";var i0=o0;import{createContext as XO}from"react";var s0=XO({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});s0.displayName="InternalFocusContext";var a0=s0;import{createContext as qO}from"react";var c0=qO({setCursorPosition(){}});c0.displayName="InternalCursorContext";var l0=c0;import QO,{PureComponent as ZO}from"react";import*as Dp from"node:fs";import{cwd as f0}from"node:process";import Ut from"react";import u0 from"stack-utils";import JO from"code-excerpt";var vy=i(e=>e?.replace(`file://${f0()}/`,""),"cleanupPath"),d0=new u0({cwd:f0(),internals:u0.nodeInternals()});function Iy({error:e}){let t=e.stack?e.stack.split(`
|
|
24
|
+
`).slice(1):void 0,n=t?d0.parseLine(t[0]):void 0,r=vy(n?.file),o,s=0;if(r&&n?.line&&Dp.existsSync(r)){let a=Dp.readFileSync(r,"utf8");if(o=JO(a,n.line),o)for(let{line:c}of o)s=Math.max(s,String(c).length)}return Ut.createElement(cr,{flexDirection:"column",padding:1},Ut.createElement(cr,null,Ut.createElement(An,{backgroundColor:"red",color:"white"}," ","ERROR"," "),Ut.createElement(An,null," ",e.message)),n&&r&&Ut.createElement(cr,{marginTop:1},Ut.createElement(An,{dimColor:!0},r,":",n.line,":",n.column)),n&&o&&Ut.createElement(cr,{marginTop:1,flexDirection:"column"},o.map(({line:a,value:c})=>Ut.createElement(cr,{key:a},Ut.createElement(cr,{width:s+1},Ut.createElement(An,{dimColor:a!==n.line,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0,"aria-label":a===n.line?`Line ${a}, error`:`Line ${a}`},String(a).padStart(s," "),":")),Ut.createElement(An,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&Ut.createElement(cr,{marginTop:1,flexDirection:"column"},e.stack.split(`
|
|
25
|
+
`).slice(1).map(a=>{let c=d0.parseLine(a);return c?Ut.createElement(cr,{key:a},Ut.createElement(An,{dimColor:!0},"- "),Ut.createElement(An,{dimColor:!0,bold:!0},c.function),Ut.createElement(An,{dimColor:!0,color:"gray","aria-label":`at ${vy(c.file)??""} line ${c.line} column ${c.column}`}," ","(",vy(c.file)??"",":",c.line,":",c.column,")")):Ut.createElement(cr,{key:a},Ut.createElement(An,{dimColor:!0},"- "),Ut.createElement(An,{dimColor:!0,bold:!0},a,"\\t"," "))})))}i(Iy,"ErrorOverview");var cu=class extends ZO{static{i(this,"ErrorBoundary")}static displayName="InternalErrorBoundary";static getDerivedStateFromError(t){return{error:t}}state={error:void 0};componentDidCatch(t){this.props.onError(t)}render(){return this.state.error?QO.createElement(Iy,{error:this.state.error}):this.props.children}};var rN=" ",oN="\x1B[Z",iN="\x1B";function m0({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:o,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,d]=by(!0),[p,h]=by(void 0),[,m]=by([]),g=Qa(0),x=Qa(0),y=Qa(new eN);y.current.setMaxListeners(1/0);let C=Qa(void 0),v=Qa(Np()),_=Qa(void 0),E=Ot(()=>{_.current&&(clearImmediate(_.current),_.current=void 0)},[]),R=t.isTTY,I=Ot(()=>{C.current&&(t.removeListener("readable",C.current),C.current=void 0)},[t]),W=Ot(()=>{t.setRawMode(!1),I(),t.unref(),x.current=0,v.current.reset(),E()},[t,I,E]),$=Ot(he=>{R&&x.current>0&&W(),c(he)},[R,W,c]),D=Ot(he=>{if(he===""&&a){$();return}he===iN&&h(Ie=>Ie&&void 0)},[a,$]),z=Ot(he=>{D(he),y.current.emit("input",he)},[D]),re=Ot(()=>{E(),_.current=setImmediate(()=>{_.current=void 0;let he=v.current.flushPendingEscape();he&&z(he)})},[E,z]),q=Ot(()=>{E();let he;for(;(he=t.read())!==null;){let Ie=v.current.push(he);for(let G of Ie)z(G)}v.current.hasPendingEscape()&&re()},[t,z,E,re]),S=Ot(he=>{if(!R)throw t===tN.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
|
|
26
|
+
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.
|
|
27
|
+
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),he){x.current===0&&(t.ref(),t.setRawMode(!0),C.current=q,t.addListener("readable",q)),x.current++;return}x.current!==0&&--x.current===0&&W()},[R,t,q,W]),L=Ot((he,Ie)=>{let G=he.findIndex(Fe=>Fe.id===Ie);for(let Fe=G+1;Fe<he.length;Fe++){let wt=he[Fe];if(wt?.isActive)return wt.id}},[]),ee=Ot((he,Ie)=>{let G=he.findIndex(Fe=>Fe.id===Ie);for(let Fe=G-1;Fe>=0;Fe--){let wt=he[Fe];if(wt?.isActive)return wt.id}},[]),j=Ot(()=>{m(he=>(h(Ie=>{let G=he.find(wt=>wt.isActive)?.id;return L(he,Ie)??G}),he))},[L]),ae=Ot(()=>{m(he=>(h(Ie=>{let G=he.findLast(wt=>wt.isActive)?.id;return ee(he,Ie)??G}),he))},[ee]);p0(()=>{let he=i(G=>{!u||g.current===0||(G===rN&&j(),G===oN&&ae())},"handleTabNavigation");y.current.on("input",he);let Ie=y.current;return()=>{Ie.off("input",he)}},[u,j,ae]);let de=Ot(()=>{d(!0)},[]),me=Ot(()=>{d(!1)},[]),be=Ot(he=>{m(Ie=>(Ie.some(Fe=>Fe?.id===he)&&h(he),Ie))},[]),pe=Ot((he,{autoFocus:Ie})=>{m(G=>(g.current=G.length+1,[...G,{id:he,isActive:!0}])),Ie&&h(G=>G??he)},[]),we=Ot(he=>{h(Ie=>Ie===he?void 0:Ie),m(Ie=>{let G=Ie.filter(Fe=>Fe.id!==he);return g.current=G.length,G})},[]),Pe=Ot(he=>{m(Ie=>Ie.map(G=>G.id!==he?G:{id:he,isActive:!0}))},[]),Q=Ot(he=>{h(Ie=>Ie===he?void 0:Ie),m(Ie=>Ie.map(G=>G.id!==he?G:{id:he,isActive:!1}))},[]);p0(()=>()=>{nN.show(n),R&&x.current>0&&W()},[n,R,W]);let se=Za(()=>({exit:$}),[$]),Te=Za(()=>({stdin:t,setRawMode:S,isRawModeSupported:R,internal_exitOnCtrlC:a,internal_eventEmitter:y.current}),[t,S,R,a]),nt=Za(()=>({stdout:n,write:o}),[n,o]),It=Za(()=>({stderr:r,write:s}),[r,s]),ze=Za(()=>({setCursorPosition:l}),[l]),Ge=Za(()=>({activeId:p,add:pe,remove:we,activate:Pe,deactivate:Q,enableFocus:de,disableFocus:me,focusNext:j,focusPrevious:ae,focus:be}),[p,pe,we,Pe,Q,de,me,j,ae,be]);return ys.createElement(Zb.Provider,{value:se},ys.createElement(t0.Provider,{value:Te},ys.createElement(r0.Provider,{value:nt},ys.createElement(i0.Provider,{value:It},ys.createElement(a0.Provider,{value:Ge},ys.createElement(l0.Provider,{value:ze},ys.createElement(cu,{onError:$},e)))))))}i(m0,"App");m0.displayName="InternalApp";var h0=m0;var sN={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function g0(e){let t=0;for(let n of e)t|=sN[n];return t}i(g0,"resolveFlags");var Oo={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var Ry=i((e,t)=>(t<0?Ln.cursorUp(-t):t>0?Ln.cursorDown(t):"")+(e<0?Ln.cursorBackward(-e):e>0?Ln.cursorForward(e):""),"cursorMoveSeq"),ky=i((e,t=!1)=>{let n=Math.max(0,e.screen.height-e.viewport.height),r=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return o=>({x:o.x,y:Math.min(Math.max(o.y-n,0),r)})},"toVisibleCursor"),Bp=i(()=>{},"noop"),gN=27,yN=91,SN=63,wN=117,xN=48,TN=57,CN=i(e=>e>=xN&&e<=TN,"isDigitByte"),S0=i((e,t)=>{if(e[t]!==gN||e[t+1]!==yN||e[t+2]!==SN)return;let n=t+3,r=n;for(;n<e.length&&CN(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===wN)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),vN=i(e=>{for(let t=0;t<e.length;t++)if(S0(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),IN=i(e=>{let t=[],n=0;for(;n<e.length;){let r=S0(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),Ey=i(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),bN=class{static{i(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){cN(this),this.options=t,this.rawStdoutWrite=t.stdout.write.bind(t.stdout),this.rawStderrWrite=t.stderr.write.bind(t.stderr),this.rootNode=vp("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??Ss.env.INK_SCREEN_READER==="true";let n=t.debug||this.isScreenReaderEnabled,r=t.maxFps??30,o=r>0?Math.max(1,Math.ceil(1e3/r)):0;if(n)this.rootNode.onRender=this.onRender,this.throttledOnRender=void 0;else{let a=aN(this.onRender,o,{leading:!0,trailing:!0});this.rootNode.onRender=()=>{this.hasPendingThrottledRender=!0,a()},this.throttledOnRender=a}this.rootNode.onImmediateRender=this.onRender,this.cellLogUpdate=new $p({isTTY:!!t.stdout.isTTY}),this.prevFrame=au(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?fN:dN;this.container=Mo.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=lN(this.unmount,{alwaysLast:!1}),Tp()&&Mo.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),No||(t.stdout.on("resize",this.resized),this.unsubscribeResize=()=>{t.stdout.off("resize",this.resized)}),this.initKittyKeyboard()}getTerminalWidth=i(()=>this.options.stdout.columns?this.options.stdout.columns:hN()?.columns??80,"getTerminalWidth");resized=i(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){this.returnCursorToRest();let n=this.altScreenActive?this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();n.length>0&&this.writeStdout(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=au(this.options.stdout.rows??24,t)}this.calculateLayout(),this.onRender(),this.lastTerminalWidth=t},"resized");resolveExitPromise=i(()=>{},"resolveExitPromise");rejectExitPromise=i(()=>{},"rejectExitPromise");unsubscribeExit=i(()=>{},"unsubscribeExit");handleAppExit=i(t=>{if(!(this.isUnmounted||this.isUnmounting)){if(Ey(t)){this.unmount(t);return}this.exitResult=t,this.unmount()}},"handleAppExit");setCursorPosition=i(t=>{if(t===void 0){this.cursorPosition=void 0;return}let n=this.getTerminalWidth(),r=this.options.stdout.rows??24;if(n<=0||r<=0){this.cursorPosition=void 0;return}let o=Math.max(0,Math.min(t.x|0,n-1)),s=Math.max(0,Math.min(t.y|0,r-1));this.cursorPosition={x:o,y:s}},"setCursorPosition");resetOutputTracking=i(()=>{this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.cursorPosition=void 0,this.invalidateCellFrame()},"resetOutputTracking");usesVirtualShellOwnership=i((t={})=>t.altScreenActive??this.altScreenActive,"usesVirtualShellOwnership");beginShellTransition(t){this.shellTransitionPhase=t}setShellMode(t,n){let r=this.shellMode,o=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.shellMode=t,this.mouseTrackingActive=a;let c=this.usesVirtualShellOwnership();(r!==t&&(s||c)||o!==a&&c)&&this.resetOutputTracking()}setAltScreenActive(t,n){let r=this.altScreenActive,o=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.altScreenActive=t,this.mouseTrackingActive=a,this.shellTransitionPhase=void 0;let c=this.usesVirtualShellOwnership();(r!==t||o!==a&&(s||c))&&this.resetOutputTracking()}clearTextSelection(){}installExternalStreamWriteGuard(){if(this.options.debug||No)return;let t=this.options.stdout,n=this.options.stderr,r=t.write,o=n.write,s=i((...c)=>{let l=this.rawStdoutWrite(...c);return this.internalStreamWriteDepth===0&&this.handleExternalStreamWrite(),l},"guardedStdoutWrite"),a=i((...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=o)}}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=i(()=>{if(this.prevFrame.screen.height===0)return;let t=au(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);this.withInternalStreamWrite(()=>Op(this.options.stdout,n))},"restoreLastOutput");shouldRestoreManagedShellAfterExternalWrite=i(()=>this.altScreenActive,"shouldRestoreManagedShellAfterExternalWrite");calculateLayout=i(()=>{let t=this.getTerminalWidth();this.rootNode.yogaNode.setWidth(t),this.rootNode.yogaNode.calculateLayout(void 0,void 0,pN.DIRECTION_LTR)},"calculateLayout");onRender=i(()=>{if(this.hasPendingThrottledRender=!1,this.isUnmounted)return;let t=performance.now(),n={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:r,outputHeight:o,staticOutput:s,frame:a}=gy(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t}),!No&&!this.options.debug&&!this.isScreenReaderEnabled&&!this.cursorHidden&&(this.writeStdout(Ln.cursorHide),this.cursorHidden=!0);let c=s&&s!==`
|
|
28
|
+
`;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.writeStdout(this.fullStaticOutput+r);return}if(No){c&&this.writeStdout(s),this.lastOutput=r,this.lastOutputToRender=r+`
|
|
29
|
+
`,this.lastOutputHeight=o;return}if(this.isScreenReaderEnabled){let y=$o(this.options.stdout);if(y&&this.writeStdout(Po),c){let _=this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"";this.writeStdout(_+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){y&&this.writeStdout(Jr);return}let C=this.getTerminalWidth(),v=mN(r,C,{trim:!1,hard:!0});if(c)this.writeStdout(v);else{let _=this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"";this.writeStdout(_+v)}this.lastOutput=r,this.lastOutputToRender=v,this.lastOutputHeight=v===""?0:v.split(`
|
|
30
|
+
`).length,y&&this.writeStdout(Jr);return}c&&(this.fullStaticOutput+=s);let u=!this.altScreenActive&&!!(a&&a.inputCursor)?[]:null,d=i(y=>{y&&(u?u.push(y):this.writeStdout(y))},"emit"),p=u?{write:d}:null;d(this.computeReturnToRestSeq());let h=this.altScreenActive,g=this.options.stdout.isTTY&&o>=this.options.stdout.rows&&h?r:r+`
|
|
31
|
+
`;if(this.lastOutputHeight>=this.options.stdout.rows&&h){if(Ss.env.KODAX_FULLSCREEN_CELLDIFF!=="0"&&this.altScreenActive&&this.fullStaticOutput===""){let v=$o(this.options.stdout);v&&this.writeStdout(Po),this.applyCellFrame(a),v&&this.writeStdout(Jr),this.lastOutput=r,this.lastOutputToRender=g,this.lastOutputHeight=o;return}let y=$o(this.options.stdout);y&&this.writeStdout(Po);let C=this.fullStaticOutput+g;if(this.altScreenActive){let v=this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"";this.writeStdout(v+C)}else this.writeStdout(Ln.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?C:g,this.lastOutputHeight=o,this.invalidateCellFrame(),y&&this.writeStdout(Jr);return}let x=!u&&$o(this.options.stdout);try{if(c?(x&&d(Po),d(this.eraseInlineLiveBlock()+s),this.invalidateCellFrame(),this.applyCellFrame(a,p),x&&d(Jr)):!this.altScreenActive&&this.prevFrame&&this.prevFrame.screen.height!==a.screen.height&&this.lastOutputHeight>0&&o<=this.options.stdout.rows&&this.lastOutputHeight<this.options.stdout.rows?(x&&d(Po),d(this.eraseInlineLiveBlock()),this.invalidateCellFrame(),this.applyCellFrame(a,p),x&&d(Jr)):this.applyCellFrame(a,p),a?.inputCursor){let y=ky(a,!this.altScreenActive),C=y(a.cursor),v=y(a.inputCursor),_=Ry(v.x-C.x,v.y-C.y);d(_),this.displayCursor=v}}finally{u&&this.flushCursorTxn(u)}this.lastOutput=r,this.lastOutputToRender=g,this.lastOutputHeight=o},"onRender");applyCellFrame=i((t,n=null)=>{let r={cellLogUpdate:this.cellLogUpdate,prevFrame:this.prevFrame,stdout:n??this.options.stdout},o=$o(this.options.stdout),s={altScreen:this.altScreenActive,decstbmSafe:o,synchronized:n?!1:o,inlineBottomAnchored:!this.altScreenActive},a=this.withInternalStreamWrite(()=>Yb(r,t,s));return this.prevFrame=r.prevFrame,a},"applyCellFrame");invalidateCellFrame=i(()=>{this.cellLogUpdate.reset(),this.prevFrame=au(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");eraseInlineLiveBlock=i(()=>this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"","eraseInlineLiveBlock");commitInlineScrollback=i(({mode:t,text:n})=>{if(this.altScreenActive||this.isUnmounted)return;let r=[],o=i(c=>{c&&r.push(c)},"emit"),s={write:o};o(this.computeReturnToRestSeq());let a=t==="rebuild"?"\x1B[2J\x1B[3J\x1B[H":this.eraseInlineLiveBlock();o(a+(n??"")),this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.fullStaticOutput="",this.invalidateCellFrame();try{this.calculateLayout();let c={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:l,outputHeight:u,frame:d}=gy(this.rootNode,this.isScreenReaderEnabled,c);if(this.applyCellFrame(d,s),d?.inputCursor){let p=ky(d,!this.altScreenActive),h=p(d.cursor),m=p(d.inputCursor),g=Ry(m.x-h.x,m.y-h.y);o(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=$o(this.options.stdout);this.writeStdout(r?Po+n+Jr:n)}render(t){let n=y0.createElement(Ka.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},y0.createElement(h0,{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?Mo.updateContainer(n,this.container,null,Bp):(Mo.updateContainerSync(n,this.container,null,Bp),Mo.flushSyncWork())}computeReturnToRestSeq(){if(this.displayCursor&&this.prevFrame){let t=ky(this.prevFrame,!this.altScreenActive)(this.prevFrame.cursor),n=Ry(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(No){this.writeStdout(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStdout(t),this.invalidateCellFrame();return}let n=$o(this.options.stdout);n&&this.writeStdout(Po),this.returnCursorToRest();let r=this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"";this.writeStdout(r+t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(Jr)}writeToStderr(t){if(this.isUnmounted)return;if(this.options.debug){this.writeStderr(t),this.writeStdout(this.fullStaticOutput+this.lastOutput);return}if(No){this.writeStderr(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStderr(t),this.invalidateCellFrame();return}let n=$o(this.options.stdout);n&&this.writeStdout(Po),this.returnCursorToRest();let r=this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"";r.length>0&&this.writeStdout(r),this.writeStderr(t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(Jr)}unmount(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(Ss.off("beforeExit",this.beforeExitHandler),this.beforeExitHandler=void 0);let n=this.options.stdout,r=!n.destroyed&&!n.writableEnded&&(n.writable??!0);if(i(u=>{typeof u.flush=="function"&&(r?u.flush():typeof u.cancel=="function"&&u.cancel())},"settleThrottle")(this.throttledOnRender??{}),r&&(!this.throttledOnRender||!this.hasPendingThrottledRender&&this.fullStaticOutput==="")&&(this.calculateLayout(),this.onRender()),this.isUnmounted=!0,this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.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{}No&&this.writeStdout(this.lastOutput+`
|
|
32
|
+
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?Mo.updateContainer(null,this.container,null,Bp):(Mo.updateContainerSync(null,this.container,null,Bp),Mo.flushSyncWork()),Xb.delete(this.options.stdout);let{exitResult:s}=this,a=i(()=>{Ey(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!Ey(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()},Ss.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!No&&!this.options.debug){this.returnCursorToRest();let t=this.altScreenActive?this.lastOutputHeight>0?Ln.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();t.length>0&&this.writeStdout(t),this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.invalidateCellFrame()}}patchConsole(){this.options.debug||(this.restoreConsole=uN((t,n)=>{t==="stdout"&&this.writeToStdout(n),t==="stderr"&&(n.startsWith("The above error occurred")||this.writeToStderr(n))}))}initKittyKeyboard(){if(!this.options.kittyKeyboard)return;let t=this.options.kittyKeyboard,n=t.mode??"auto";if(n==="disabled"||!this.options.stdin.isTTY||!this.options.stdout.isTTY)return;let r=t.flags??["disambiguateEscapeCodes"];if(n==="enabled"){this.enableKittyProtocol(r);return}let o=Ss.env.TERM??"",s=Ss.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in Ss.env||o==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!No&&a&&this.confirmKittySupport(r)}confirmKittySupport(t){let{stdin:n}=this.options,r=[],o=i(()=>{this.cancelKittyDetection=void 0,clearTimeout(a),n.removeListener("data",s);let c=IN(r);r=[],c.length>0&&n.unshift(Buffer.from(c))},"cleanup"),s=i(c=>{let l=typeof c=="string"?Buffer.from(c):c;for(let u of l)r.push(u);vN(r)&&(o(),this.isUnmounted||this.enableKittyProtocol(t))},"onData");n.on("data",s);let a=setTimeout(o,200);this.cancelKittyDetection=o,this.writeStdout("\x1B[?u")}enableKittyProtocol(t){this.writeStdout(`\x1B[>${g0(t)}u`),this.kittyProtocolEnabled=!0}},w0=bN;var lu=class{static{i(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new w0(t),this.isConcurrent=this.engineInstance.isConcurrent}render=i(t=>{this.engineInstance.render(t)},"render");unmount=i(t=>{this.engineInstance.unmount(t)},"unmount");waitUntilExit=i(()=>this.engineInstance.waitUntilExit(),"waitUntilExit");clear=i(()=>{this.engineInstance.clear()},"clear");setAltScreenActive=i((t,n)=>{this.engineInstance.setAltScreenActive?.(t,n)},"setAltScreenActive");setShellMode=i((t,n)=>{this.engineInstance.setShellMode?.(t,n)},"setShellMode");beginShellTransition=i(t=>{this.engineInstance.beginShellTransition?.(t)},"beginShellTransition");clearTextSelection=i(()=>{this.engineInstance.clearTextSelection?.()},"clearTextSelection");commitInlineScrollback=i(t=>{this.engineInstance.commitInlineScrollback?.(t)},"commitInlineScrollback")};var fi=null;function T0(){if(fi===-1)return null;if(fi!==null)return fi;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return fi=-1,null;let t=e==="1"||e==="true"?MN(_N(),`kodax-render-trace-${process.pid}.log`):e;try{return fi=kN(t,"a"),x0(fi,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
|
|
33
|
+
`),fi}catch{return fi=-1,null}}i(T0,"resolveTraceFd");function AN(e){let t=T0();if(t!==null)try{x0(t,e)}catch{}}i(AN,"traceLine");var Fp=new WeakMap,LN={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},PN={isTTY:!1,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},$N={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function ON(e={}){return e instanceof RN?{stdout:e}:e}i(ON,"getOptions");function NN(e,t,n){let r=Fp.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(),Fp.set(e,r)),r}i(NN,"getInstance");function ws(e){return Fp.get(e)}i(ws,"getRendererInstance");function _y(e,t){let n={stdout:LN,stdin:$N,stderr:PN,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...ON(t)};if(T0()!==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=EN.now(),g=u===0?0:m-u,x=s,y=x.columns??0,C=x.rows??0;return AN(`frame=${d} renderTime=${h.renderTime.toFixed(2)}ms interval=${g.toFixed(2)}ms writes=${c} bytes=${l} viewport=${y}x${C}
|
|
34
|
+
`),c=0,l=0,u=m,d+=1,p?.(h)}}let o=NN(n.stdout,()=>new lu(n),n.concurrent??!1);return o.render(e),{rerender:o.render,unmount(){o.unmount()},waitUntilExit:o.waitUntilExit,cleanup:i(()=>{Fp.delete(n.stdout)},"cleanup"),clear:o.clear}}i(_y,"render");var C0=cr,v0=An,I0=ry;import{Buffer as BN}from"node:buffer";var FN=/^(?:\x1b)([a-zA-Z0-9])$/,WN=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,R0={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"},k0=[...Object.values(R0),"backspace"],HN=i(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),jN=i(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),E0=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,UN=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,GN={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},VN={2:"insert",3:"delete",5:"pageup",6:"pagedown",7:"home",8:"end",11:"f1",12:"f2",13:"f3",14:"f4",15:"f5",17:"f6",18:"f7",19:"f8",20:"f9",21:"f10",23:"f11",24:"f12"},b0={27:"escape",9:"tab",127:"delete",8:"backspace",57358:"capslock",57359:"scrolllock",57360:"numlock",57361:"printscreen",57362:"pause",57363:"menu",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24"},_0=i(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),My=i(e=>_0(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function M0(e){return e===3?"release":e===2?"repeat":"press"}i(M0,"resolveEventType");function A0(e){return{ctrl:!!(e&Oo.ctrl),shift:!!(e&Oo.shift),meta:!!(e&Oo.meta),option:!!(e&Oo.alt),super:!!(e&Oo.super),hyper:!!(e&Oo.hyper),capsLock:!!(e&Oo.capsLock),numLock:!!(e&Oo.numLock)}}i(A0,"parseKittyModifiers");function KN(e){let t=E0.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=t[2]?Math.max(0,Number.parseInt(t[2],10)-1):0,o=t[3]?Number.parseInt(t[3],10):1,s=t[4];if(!_0(n))return null;let a;s&&(a=s.split(":").map(u=>My(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):b0[n]?(c=b0[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=My(n).toLowerCase(),l=!0),l&&!a&&(a=My(n)),{name:c,...A0(r),eventType:M0(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}i(KN,"parseKittyKeypress");function zN(e){let t=UN.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=Math.max(0,Number.parseInt(t[2],10)-1),o=Number.parseInt(t[3],10),s=t[4],a=s==="~"?VN[n]:GN[s];return a?{name:a,...A0(r),eventType:M0(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}i(zN,"parseKittySpecialKey");var Ay="\x1B[200~",YN="\x1B[201~";function XN(e){if(!e.startsWith(Ay))return null;let t=e.indexOf(YN,Ay.length);return t===-1?null:e.slice(Ay.length,t)}i(XN,"extractBracketedPaste");function Ly(e=""){let t=e,n;if(BN.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=XN(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=KN(t);if(r)return r;let o=zN(t);if(o)return o;if(E0.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=FN.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=WN.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=R0[c]??"",s.shift=HN(c)||s.shift,s.ctrl=jN(c)||s.ctrl}return s}i(Ly,"parseKeypress");var QN=50;function Hp(e){return{columns:e?.columns??80,rows:e?.rows??24}}i(Hp,"resolveTerminalSize");var pi=qN(null),Py={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")};var O0={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function ZN(e){for(let t of e)if(t.rawMode)return!0;return!1}i(ZN,"hasRawModeSubscribers");function eD({stdin:e,setRawMode:t,isRawModeSupported:n}){let r=new Set,o,s=!1,a=!1,c=i(p=>{for(let h of r)h.listener(p)},"handleData"),l=i(()=>{if(a){try{t(!1)}catch{}a=!1}},"disableRawModeIfOwned"),u=i(()=>{let p=o;p?.off?.("data",c),l(),s&&(p?.unref?.(),s=!1),o=void 0},"detachInput"),d=i(()=>{if(o&&o!==e&&u(),!e||r.size===0){u();return}if(o!==e&&(e.hasRef?.()!==!0&&typeof e.ref=="function"&&(e.ref(),s=!0),e.on?.("data",c),e.resume?.(),o=e),!(n&&ZN(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()}}}i(eD,"createTerminalInputController");var tD=i(({children:e,runtime:t})=>{let[n,r]=JN(()=>t.terminalSize);ec(()=>{if(r(Hp(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=i(()=>{r(Hp(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let o=$0(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=L0(()=>eD({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);ec(()=>()=>{s.dispose()},[s]);let a=L0(()=>({stdout:t.stdout,stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,exit:t.exit,terminalSize:n,isTTY:t.stdout?.isTTY===!0,writeRaw:o,subscribeInput:s.subscribe}),[s.subscribe,t.exit,t.isRawModeSupported,t.setRawMode,t.stdin,t.stdout,s.subscribe,n,o]);return P0(pi.Provider,{value:a,children:e})},"TuiRuntimeProvider");function nD(e){let t=e?.stdout??Py,n=e?.stdin??O0,r=i(s=>{typeof n?.setRawMode=="function"&&n.setRawMode(s)},"setRawMode"),o;return{stdout:t,stdin:n,setRawMode:r,isRawModeSupported:typeof n?.setRawMode=="function",exit:i(()=>{o?.()},"exit"),terminalSize:Hp(t),isTTY:t?.isTTY===!0,writeRaw:i(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),subscribeInput:i(()=>()=>{},"subscribeInput"),attachExit(s){o=s}}}i(nD,"createRuntimeValue");function tc(e,t){let n=nD(t),r=_y(P0(tD,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}i(tc,"render");var A=C0,k=v0,nc=I0;function rD(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&&k0.includes(e.name)&&(n=""),n.startsWith("\x1B")&&(n=n.slice(1)),n.length===1&&typeof n[0]=="string"&&/[A-Z]/.test(n[0])&&(t.shift=!0),{input:n,key:t}}i(rD,"createCompatKeypress");function rc(e,t={}){let{isActive:n=!0}=t,r=Wp(e),o=Wp(null),s=Wp(null);ec(()=>{r.current=e},[e]),ec(()=>{if(!n){o.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return o.current=Np(),()=>{o.current?.reset(),o.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=$0(c=>{let{input:l,key:u}=rD(Ly(c));r.current(l,u)},[]);du(c=>{if(!n)return;s.current&&(clearTimeout(s.current),s.current=null);let l=o.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=o.current?.flushPendingEscape();p&&a(p)},QN))},{isActive:n,rawMode:!0})}i(rc,"useInput");function Qr(){return{stdout:xs(pi)?.stdout??Py}}i(Qr,"useStdout");function uu(){let e=xs(pi),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"}}i(uu,"useStdin");function Zr(){return{exit:xs(pi)?.exit??(()=>{})}}i(Zr,"useApp");function oc(){return xs(pi)?.stdout??Py}i(oc,"useTerminalOutput");function ic(){let e=oc();return xs(pi)?.terminalSize??Hp(e)}i(ic,"useTerminalSize");function sc(){let e=oc();return xs(pi)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}i(sc,"useTerminalWrite");function du(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,o=xs(pi),{stdin:s,setRawMode:a,isRawModeSupported:c}=uu(),l=Wp(e);ec(()=>{l.current=e},[e]),ec(()=>{if(!n||!s)return;if(o)return o.subscribeInput(h=>{l.current(h)},{rawMode:r});let u=s,d=u.isRaw;r&&c&&d===!1&&a(!0);let p=i(h=>{l.current(h)},"handleData");return u.on?.("data",p),()=>{if(u.off?.("data",p),r&&c&&d===!1)try{a(!1)}catch{}}},[o,s,n,r,c,a])}i(du,"useTerminalInput");import{jsx as lD}from"react/jsx-runtime";import{useInsertionEffect as uD,useMemo as dD}from"react";var oD="\x1B[?1049h",iD="\x1B[?1049l";var sD="\x1B[2J",aD="\x1B[?1000h\x1B[?1002h\x1B[?1006h",cD="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function jp(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return oD+(n?sD:"")+"\x1B[H"+(t?aD:"")}i(jp,"buildAlternateScreenEnterSequence");function Up(e={}){return(e.mouseTracking!==!1?cD:"")+iD}i(Up,"buildAlternateScreenExitSequence");var $y=i(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let o=oc(),{rows:s}=ic(),a=sc(),c=dD(()=>n&&o.isTTY===!0,[n,o]);return uD(()=>{if(!c)return;let l=ws(o);if(l?.setShellMode?.("virtual",t),l?.beginShellTransition?.("enter-alt-screen"),!!a(jp({mouseTracking:t,clearOnEnter:r})))return l?.setAltScreenActive?.(!0,t),()=>{l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),l?.setAltScreenActive?.(!1),a(Up({mouseTracking:t}))}},[r,c,t,o,a]),lD(A,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as mi,jsxs as W0}from"react/jsx-runtime";import{jsx as pD}from"react/jsx-runtime";import mD,{useEffect as Gp,useImperativeHandle as hD,useMemo as gD,useRef as Vp,useCallback as pu,useState as yD}from"react";function fD(e,t,n){return Math.max(t,Math.min(e,n))}i(fD,"clamp");function fu(e){let t=Math.max(0,Math.floor(e.overscan??80)),n=Math.max(1,Math.floor(e.quantum??40)),r=Math.max(0,Math.floor(e.viewportHeight)),o=Math.max(0,Math.floor(e.contentHeight)),s=Math.max(0,o-r),a=fD(Math.floor(e.globalScrollTop),0,s),c=Math.floor(a/n),l=c*n,u=Math.max(0,l-t),d=Math.min(o,l+r+t),p=Math.max(0,d-u),h=a-u;return{blockTop:u,blockHeight:p,inBlockOffset:h,bin:c}}i(fu,"computeOverscanWindow");function N0(e,t,n){let r=fu({...n,globalScrollTop:e}),o=fu({...n,globalScrollTop:t});return r.bin===o.bin}i(N0,"staysWithinOverscanBlock");function D0(e){let t=e??void 0;for(;t?.parentNode;)t=t.parentNode;return t&&typeof t.onRender=="function"?(t.onRender(),!0):!1}i(D0,"scheduleRenderFromNode");function B0(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:Kp(t,t.scrollTop)}}i(B0,"normalizeScrollSnapshot");function F0(e,t){return e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.pendingDelta===t.pendingDelta&&e.clampMin===t.clampMin&&e.clampMax===t.clampMax&&e.sticky===t.sticky&&e.overscanRows===t.overscanRows}i(F0,"areSnapshotsEqual");function SD(e,t){return e.start===t.start&&e.end===t.end&&e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.viewportTop===t.viewportTop&&e.pendingDelta===t.pendingDelta&&e.sticky===t.sticky&&e.inWindowScrollTop===t.inWindowScrollTop}i(SD,"areWindowsEqual");function Kp(e,t){let n=Math.max(0,e.scrollHeight-e.viewportHeight),r=e.clampMin??0,o=e.clampMax??n;return Math.max(r,Math.min(Math.floor(t),Math.min(n,o)))}i(Kp,"clampScrollTop");function Oy(e){let t=Math.max(0,e.viewportHeight),n=Kp(e,e.scrollTop),r=Math.max(0,e.scrollHeight-n),o=Math.max(0,r-t),s=Math.max(0,Math.floor(e.overscanRows??0));if(s>0&&t>0){let a=fu({globalScrollTop:o,viewportHeight:t,contentHeight:e.scrollHeight,overscan:s});return{start:a.blockTop,end:a.blockTop+a.blockHeight,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:o,pendingDelta:e.pendingDelta,sticky:e.sticky,inWindowScrollTop:a.inBlockOffset}}return{start:o,end:r,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:o,pendingDelta:e.pendingDelta,sticky:e.sticky,inWindowScrollTop:0}}i(Oy,"resolveScrollWindow");function wD(e){let t=Kp(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}i(wD,"resolveNativeScrollTop");var Ny=i(({children:e,width:t,flexGrow:n=0,flexShrink:r=1,paddingTop:o=0,scrollTop:s=0,scrollHeight:a=0,viewportHeight:c=0,stickyScroll:l=!0,scrollRef:u,onScrollTopChange:d,onStickyChange:p,onWindowChange:h,renderWindow:m,overscanRows:g})=>{let x=Vp(null),y=Vp(new Set),C=Vp(B0({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l,overscanRows:g})),[v,_]=yD(()=>Oy(C.current)),E=Vp(null),R=pu(()=>{for(let ae of y.current)ae()},[]),I=pu((ae,de=!0)=>{let me=C.current,be=B0(ae),pe=Oy(be);return C.current=be,_(we=>SD(we,pe)?we:pe),de&&!F0(me,be)&&R(),{previous:me,snapshot:be,window:pe,changed:!F0(me,be)}},[R]),W=pu(ae=>{let de=C.current,me=Math.max(0,Math.floor(de.overscanRows??0)),be=x.current;if(me<=0||!be||de.viewportHeight<=0)return!1;let pe=Math.max(0,de.scrollHeight-de.viewportHeight),we=E.current??Kp(de,de.scrollTop),Pe=Math.max(0,Math.min(Math.floor(we+ae),pe)),Q=Pe-we;if(Pe===we)return!0;let se=Math.max(0,de.scrollHeight-de.viewportHeight-we),Te=Math.max(0,de.scrollHeight-de.viewportHeight-Pe),nt={viewportHeight:de.viewportHeight,contentHeight:de.scrollHeight,overscan:me};if(!N0(se,Te,nt))return!1;let It=fu({...nt,globalScrollTop:Te});return be.scrollTop=Te,be.attributes&&(be.attributes.inWindowScrollTop=It.inBlockOffset,be.attributes.pendingScrollDelta=Q),D0(be)?(E.current=Pe,de.sticky&&(C.current={...C.current,sticky:!1},p?.(!1)),R(),!0):!1},[R,p]),$=pu(ae=>{let de=x.current;de&&C.current.overscanRows&&(de.scrollTop=ae.viewportTop)},[]);Gp(()=>{let ae=C.current,de={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:ae.clampMin,clampMax:ae.clampMax,sticky:l,overscanRows:g},me=I(de);me.previous.sticky!==l&&p?.(l),me.window.scrollTop!==s&&d?.(me.window.scrollTop)},[I,p,d,g,a,s,l,c]);let D=pu(()=>{let ae=x.current;if(!ae)return;E.current=null;let de=typeof ae.scrollHeight=="number"?Math.max(0,Math.floor(ae.scrollHeight)):void 0,me=typeof ae.scrollViewportHeight=="number"?Math.max(0,Math.floor(ae.scrollViewportHeight)):void 0,be=typeof ae.scrollViewportTop=="number"?Math.max(0,Math.floor(ae.scrollViewportTop)):void 0;if(de===void 0||me===void 0||be===void 0)return;let pe=Math.max(0,de-me-be),we=I({...C.current,scrollTop:pe,scrollHeight:de,viewportHeight:me});we.changed&&we.window.scrollTop!==we.previous.scrollTop&&d?.(we.window.scrollTop)},[I,d]);Gp(()=>{D()},[D]);let z=gD(()=>({scrollTo(ae){E.current=null;let de=I({...C.current,scrollTop:ae,pendingDelta:0,sticky:!1});de.previous.sticky!==!1&&p?.(!1),$(de.window),d?.(de.window.scrollTop)},scrollBy(ae){if(W(ae))return;let de=E.current??C.current.scrollTop;E.current=null;let me=I({...C.current,scrollTop:de+ae,pendingDelta:C.current.pendingDelta+Math.floor(ae),sticky:!1});me.previous.sticky!==!1&&p?.(!1),$(me.window),d?.(me.window.scrollTop)},scrollToElement(ae,de=0){E.current=null;let me=I({...C.current,scrollTop:ae-de,pendingDelta:0,sticky:!1});me.previous.sticky!==!1&&p?.(!1),$(me.window),d?.(me.window.scrollTop)},scrollToBottom(){E.current=null;let ae=I({...C.current,scrollTop:0,pendingDelta:0,sticky:!0});$(ae.window),d?.(ae.window.scrollTop),ae.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return E.current??C.current.scrollTop},getPendingDelta(){return C.current.pendingDelta},getScrollHeight(){return x.current?.scrollHeight??C.current.scrollHeight},getViewportHeight(){return x.current?.scrollViewportHeight??v.viewportHeight},getViewportTop(){return x.current?.scrollViewportTop??v.viewportTop},isSticky(){return C.current.sticky},subscribe(ae){return y.current.add(ae),()=>{y.current.delete(ae)}},setClampBounds(ae,de){E.current=null;let me=I({...C.current,clampMin:ae,clampMax:de});$(me.window),me.window.scrollTop!==me.previous.scrollTop&&d?.(me.window.scrollTop)}}),[I,d,p,W,$]);hD(u,()=>z,[z]),Gp(()=>{h?.(v)},[h,v]),Gp(()=>{C.current.pendingDelta!==0&&(C.current={...C.current,pendingDelta:0})},[v]);let re=E.current!==null,q=re?{...C.current,scrollTop:E.current}:C.current,S=re?Oy(q):v,L=m?m(S):e,ee=Math.max(0,c+o),j=wD(q);return mD.createElement("ink-box",{ref:x,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:ee,paddingTop:o,overflowX:"visible",overflowY:"scroll"},scrollTop:j,scrollHeight:C.current.scrollHeight,scrollViewportHeight:C.current.viewportHeight,scrollViewportTop:S.viewportTop,pendingScrollDelta:C.current.pendingDelta,virtualScrollWindowed:!!m,...C.current.overscanRows?{inWindowScrollTop:S.inWindowScrollTop}:{},...C.current.clampMin!==void 0?{scrollClampMin:C.current.clampMin}:{},...C.current.clampMax!==void 0?{scrollClampMax:C.current.clampMax}:{},...l?{stickyScroll:!0}:{}},pD(A,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:L}))},"ScrollBox");var xD=80;function mu(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}i(mu,"resolveFullscreenChromeSlotText");function zp(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:xD)-2);return Math.max(1,bn(e.split(`
|
|
36
|
+
`),n,0,0).visualLines.length)}i(zp,"measureFullscreenChromeSlotRows");var Dy=i(({top:e,topRows:t=0,scrollable:n,renderScrollableWindow:r,bottom:o,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:x,onWindowChange:y,overscanRows:C})=>{let v=i((z,re)=>re?mi(A,{paddingX:1,children:mi(k,{dimColor:z?.tone!=="accent",children:re})}):null,"renderChromeSlot"),_=mu(a),E=mu(c),R=zp(_,l),I=v(a,_),W=s?null:v(c,E),$=Math.max(0,e?t:0),D=Math.max(0,p-R-$);return W0(A,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?mi(A,{flexDirection:"column",flexShrink:0,children:e}):null,W0(A,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[mi(Ny,{width:l,flexGrow:1,flexShrink:1,paddingTop:R,scrollTop:u,scrollHeight:d,viewportHeight:D,stickyScroll:h,scrollRef:m,onScrollTopChange:g,onStickyChange:x,onWindowChange:y,renderWindow:r,overscanRows:C,children:n}),I?mi(A,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:I}):null,W?mi(A,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:W}):null,s?mi(A,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),mi(A,{flexDirection:"column",flexShrink:0,children:o})]})},"FullscreenLayout");import CD from"string-width";function vD(){return ic().columns}i(vD,"useTerminalWidth");var Xp=i(({lines:e,cursorRow:t,cursorCol:n,prompt:r=">",placeholder:o="Type your message...",focus:s=!0,terminalFocused:a=!0,isPasting:c=!1,editingMode:l="idle",theme:u="dark",width:d})=>{let p=Yp(()=>ce(u),[u]),h=vD(),m=d??h,g=CD(r)+1,x=Yp(()=>{let R=Math.max(20,m-g);return bn(e,R,t,n)},[e,m,t,n,g]),y=Yp(()=>{if(!x)return null;let[R,I]=Sp(x,[t,n]);return{row:R,col:I}},[x,t,n]),C=s&&a,v=c&&e.some(R=>R.length>0),_=x,E=y;return lr(A,{flexDirection:"column",borderStyle:"round",borderColor:p.colors.dim,borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,width:d??"100%",children:[v?Pn(A,{children:Pn(k,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,_.visualLines.length===0||_.visualLines.length===1&&_.visualLines[0]===""?lr(A,{children:[lr(k,{color:p.colors.primary,children:[r," "]}),C?lr(TD,{children:[Pn(k,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:" "}),Pn(k,{dimColor:!0,children:o})]}):Pn(k,{dimColor:!0,children:o})]}):_.visualLines.map((R,I)=>{let W=I===E.row,$=I===0?r:" ".repeat(g-1);if(W&&C){let{before:D,current:z,after:re}=QI(R,E.col),q=z||" ";return lr(A,{children:[lr(k,{color:p.colors.primary,children:[$," "]}),Pn(k,{color:p.colors.text,children:D}),Pn(k,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:q}),Pn(k,{color:p.colors.text,children:re})]},I)}return lr(A,{children:[lr(k,{color:p.colors.dim,children:[$," "]}),Pn(k,{color:p.colors.text,children:R})]},I)})]})},"TextInput"),H0=i(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:o=!0,theme:s="dark"})=>{let a=Yp(()=>ce(s),[s]);if(!e)return lr(A,{children:[lr(k,{color:a.colors.primary,children:[n," "]}),r&&Pn(k,{dimColor:!0,children:r}),o&&Pn(k,{backgroundColor:a.colors.primary,color:"#000000",children:" "})]});let c=In(e),l=c.slice(0,t).join(""),u=c[t]??" ",d=c.slice(t+1).join("");return lr(A,{children:[lr(k,{color:a.colors.primary,children:[n," "]}),Pn(k,{color:a.colors.text,children:l}),Pn(k,{backgroundColor:a.colors.primary,color:"#000000",children:u}),Pn(k,{color:a.colors.text,children:d})]})},"SingleLineTextInput");var By={"[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"}},ID=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,bD=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function RD(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}i(RD,"parseMouseButton");function kD(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}i(kD,"parseModifier");function hu(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(bD);if(r){let[,o,s,a,c]=r,l=Number(o),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:RD(l),row:d,column:u},n)}if(e===`\r
|
|
37
|
+
`)return n.name="newline",n;if(e==="\r")return n.name=t?"newline":"return",n;if(e===`
|
|
38
|
+
`)return n.name="newline",n;if(e===" ")return n.name="tab",n;if(e==="\b"||e==="\x7F")return n.name="backspace",n;if(e==="\x1B\b"||e==="\x1B\x7F")return n.name="backspace",n.meta=!0,n;if(e==="\x1B\r"||e===`\x1B
|
|
39
|
+
`)return n.name=e==="\x1B\r"?"return":"enter",n.shift=!0,n;if(e==="\x1B"||e==="\x1B\x1B")return n.name="escape",n.meta=e.length===2,n;if(e===" "||e==="\x1B ")return n.name="space",n.meta=e.length===2,n.insertable=!n.meta,n;if(e.length===1&&e.charCodeAt(0)<=26)return n.name=String.fromCharCode(e.charCodeAt(0)+96),n.ctrl=!0,n;if(e.length===1&&e>="0"&&e<="9"||e.length===1&&e>="a"&&e<="z")return n.name=e,n.insertable=!0,n;if(e.length===1&&e>="A"&&e<="Z")return n.name=e.toLowerCase(),n.shift=!0,n.insertable=!0,n;if(e.length===1&&e.charCodeAt(0)>=32)return n.name=e,n.insertable=!0,n;if(e.startsWith("\x1B")){let o=e.slice(1);if(o.length===1)return n.meta=!0,o>="a"&&o<="z"?(n.name=o,n.insertable=!0):o>="A"&&o<="Z"?(n.name=o.toLowerCase(),n.shift=!0,n.insertable=!0):o.charCodeAt(0)>=32&&(n.name=o,n.insertable=!0),n;let s=e.match(ID);if(s){let[,l,u,d]=s,p=d||"~",m=By[o];if(m)return Object.assign(n,m),n;let g="["+l+p+"]",x=By[g];if(x&&x.name){if(n.name=x.name,u){let y=parseInt(u,10)-1,C=kD(y);Object.assign(n,C)}return n}}let c=By[o];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),u=hu(l);return n.name=u.name,n}}return n}i(hu,"parseKeypress");var ac=class{static{i(this,"KeypressParser")}buffer="";listeners=[];flushing=!1;inBracketedPaste=!1;pasteAccumulator="";onKeypress(t){return this.listeners.push(t),()=>{let n=this.listeners.indexOf(t);n>=0&&this.listeners.splice(n,1)}}feed(t,n=!1){let r=typeof t=="string"?t:t.toString("utf8");this.buffer+=r,this.flushing=n,this.processBuffer()}processBuffer(){for(;this.buffer.length>0;){let t=this.extractNextSequence();if(!t){if(this.flushing&&this.buffer.length>0){let s=this.buffer;this.buffer="";let a=hu(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:r}=t;this.buffer=r;let o=hu(n,this.inBracketedPaste);if(o.name==="paste_start"){this.inBracketedPaste=!0,this.pasteAccumulator="";continue}if(o.name==="paste_end"){this.inBracketedPaste=!1,this.flushPasteAccumulator();continue}this.emit(o)}}flushPasteAccumulator(){if(this.pasteAccumulator.length===0)return;let t={name:"paste",sequence:this.pasteAccumulator,ctrl:!1,meta:!1,shift:!1,insertable:!0,isPasted:!0};this.pasteAccumulator="";for(let n of this.listeners)n(t)}extractNextSequence(){if(this.buffer.length===0)return null;let t=this.buffer[0];if(t!=="\x1B")return t==="\r"&&this.buffer.length>=2&&this.buffer[1]===`
|
|
40
|
+
`?{sequence:this.buffer.slice(0,2),remaining:this.buffer.slice(2)}:{sequence:this.buffer[0],remaining:this.buffer.slice(1)};if(this.buffer.length===1)return this.flushing?{sequence:this.buffer,remaining:""}:null;let n=this.buffer[1];if(n!=="["&&n!=="O")return{sequence:this.buffer.slice(0,2),remaining:this.buffer.slice(2)};if(this.buffer.startsWith("\x1B[<")){let a=3;for(;a<this.buffer.length;){let c=this.buffer[a];if(!c)break;if(c>="0"&&c<="9"||c===";"||c==="<"){a++;continue}if(c==="M"||c==="m")return a++,{sequence:this.buffer.slice(0,a),remaining:this.buffer.slice(a)};break}return this.flushing?{sequence:this.buffer,remaining:""}:null}let r=2;for(;r<this.buffer.length;){let a=this.buffer[r];if(!a)break;if(a>="0"&&a<="9"||a===";"){r++;continue}if(a>="A"&&a<="Z"||a>="a"&&a<="z"||a==="~"){r++;break}break}let o=this.buffer[r-1];return o&&(o>="A"&&o<="Z"||o>="a"&&o<="z"||o==="~")?{sequence:this.buffer.slice(0,r),remaining:this.buffer.slice(r)}:this.flushing?{sequence:this.buffer.slice(0,r),remaining:this.buffer.slice(r)}:null}emit(t){if(this.inBracketedPaste){if(t.isPasted=!0,t.insertable){this.pasteAccumulator+=t.sequence;return}if(t.name==="newline"){this.pasteAccumulator+=`
|
|
41
|
+
`;return}return}for(let n of this.listeners)n(t)}clear(){this.buffer=""}};function Fy(e){return["up","down","left","right","home","end","insert","delete","pageup","pagedown","wheelup","wheeldown","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","tab","return","enter","backspace","escape"].includes(e.name)}i(Fy,"isFunctionKey");function j0(e){return e.ctrl||e.meta||Fy(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}i(j0,"isPrintable");function U0(e){let t=[];return e.ctrl&&t.push("Ctrl"),e.meta&&t.push("Alt"),e.shift&&t.push("Shift"),e.name?t.push(e.name.toUpperCase()):e.sequence&&t.push(e.sequence),t.join("+")}i(U0,"getKeyDisplayName");import ED,{createContext as _D,useContext as MD,useEffect as G0,useCallback as AD,useRef as Wy}from"react";var LD=50;function qp(){let e=new Map,t=null,n=i(()=>(t===null&&(t=[...e.keys()].sort((r,o)=>o-r)),t),"getSortedPriorities");return{register(r,o){return e.has(r)||e.set(r,[]),e.get(r).push(o),t=null,()=>{let s=e.get(r);if(!s)return;let a=s.indexOf(o);a>=0&&s.splice(a,1),s.length===0&&e.delete(r),t=null}},dispatch(r){let o=n();for(let s of o){let a=e.get(s);if(a)for(let c=a.length-1;c>=0;c-=1){let l=a[c];if(l&&l(r)===!0)return!0}}return!1},size(){let r=0;for(let o of e.values())r+=o.length;return r}}}i(qp,"createKeypressManager");var V0=_D(null);function gu({children:e,enabled:t=!0}){let{stdout:n}=Qr(),r=Wy(qp()),o=Wy(null),s=Wy(null),a=AD(c=>{t&&r.current.dispatch(c)},[t]);return G0(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new ac;o.current=c;let l=c.onKeypress(a);return()=>{s.current&&(clearTimeout(s.current),s.current=null),l(),o.current=null;try{n?.write?.("\x1B[?2004l")}catch{}}},[a,t,n]),du(c=>{t&&(s.current&&clearTimeout(s.current),o.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{o.current?.feed("",!0)},LD)))},{isActive:t,rawMode:!0}),ED.createElement(V0.Provider,{value:r.current},e)}i(gu,"KeypressProvider");function Jp(){let e=MD(V0);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}i(Jp,"useKeypressManager");function Kn(e,t,n=[]){let r=Jp(),o=typeof e=="function",s,a,c;if(o){s=e;let l=t??{};c=l.isActive??!0;let u=l.priority;a=typeof u=="boolean"?u?vn.High:vn.Normal:u??vn.Normal}else a=typeof e=="boolean"?e?vn.High:vn.Normal:e,s=t,c=!0;G0(()=>c?r.register(a,s):void 0,[r,a,c,...o?[]:n])}i(Kn,"useKeypress");function ur(e){return t=>!(e.name!==void 0&&t.name!==e.name||e.ctrl!==void 0&&t.ctrl!==e.ctrl||e.meta!==void 0&&t.meta!==e.meta||e.shift!==void 0&&t.shift!==e.shift||e.sequence!==void 0&&t.sequence!==e.sequence||e.insertable!==void 0&&t.insertable!==e.insertable)}i(ur,"createKeyMatcher");var Hy={isEnter:ur({name:"return"}),isEscape:ur({name:"escape"}),isCtrlC:ur({name:"c",ctrl:!0}),isCtrlD:ur({name:"d",ctrl:!0}),isUp:ur({name:"up"}),isDown:ur({name:"down"}),isLeft:ur({name:"left"}),isRight:ur({name:"right"}),isBackspace:ur({name:"backspace"}),isDelete:ur({name:"delete"}),isTab:ur({name:"tab"}),isShiftEnter:i(e=>e.name==="return"&&e.shift===!0,"isShiftEnter"),isCtrlEnter:i(e=>e.name==="return"&&e.ctrl===!0,"isCtrlEnter"),isInsertable:i(e=>e.insertable===!0&&!e.ctrl&&!e.meta,"isInsertable")};import{jsx as BD}from"react/jsx-runtime";import{useState as FD,useEffect as Y0,useCallback as hi,useMemo as X0,createContext as WD,useContext as q0}from"react";function PD(e,t){if(!e)return{matched:!0,score:0,highlights:[]};if(e.length>t.length)return{matched:!1,score:0,highlights:[]};let n=e.toLowerCase(),r=t.toLowerCase(),o=0,s=-1,a=[];for(let l=0;l<e.length;l++){let u=n[l];if(u===void 0)continue;let d=r.indexOf(u,s+1);if(d===-1)return{matched:!1,score:0,highlights:[]};d===s+1?o+=10:d===0?o+=5:o-=1,t[d]===e[l]&&(o+=2),a.push(d),s=d}let c=$D(t,a);return o+=c,{matched:!0,score:o,highlights:a}}i(PD,"fuzzyMatch");function $D(e,t){let n=0;for(let r of t)if(r===0)n+=3;else if(r>0){let o=e[r-1];(o===" "||o==="-"||o==="_")&&(n+=2)}return n}i($D,"calculateWordBoundaryBonus");function OD(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}i(OD,"prefixMatch");function ND(e,t){if(OD(e,t)){let o=e?Array.from({length:e.length},(s,a)=>a):[];return{matched:!0,score:100+e.length*10,highlights:o,isPrefix:!0}}return{...PD(e,t),isPrefix:!1}}i(ND,"combinedMatch");function K0(e,t,n=0){return e?t.map(r=>{let o=ND(e,r.text);return{...r,_fuzzyScore:o.matched?o.score:-1,_fuzzyHighlights:o.highlights}}).filter(r=>(r._fuzzyScore??-1)>=n).sort((r,o)=>{let s=(o._fuzzyScore??0)-(r._fuzzyScore??0);return s!==0?s:r.text.length-o.text.length}):t}i(K0,"sortCandidatesCombined");var DD={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},jy=class{static{i(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...DD,...t},this.completers=[new qg(this.options.gitRoot),new VI,new KI,new fp(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 qg)?.setGitRoot(this.options.gitRoot),r){let o=this.completers.findIndex(s=>s instanceof fp);o!==-1&&(this.completers[o]=new fp(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=Jg(r)!==-1,a=r.lastIndexOf("@"),c=a===0||a>0&&/\s/.test(r[a-1]??"");return s||c}fetchCompletions(t,n){this.updateState({loading:!0}),this.fetchCompletionsInternal(t,n).then(r=>{this.lastInput!==t||this.lastCursorPos!==n||(r.length>0?this.updateState({visible:!0,completions:r.slice(0,this.options.maxCompletions),selectedIndex:0,loading:!1}):this.updateState({visible:!1,completions:[],selectedIndex:0,loading:!1}))}).catch(()=>{this.updateState({loading:!1})})}async fetchCompletionsInternal(t,n){let r=this.completers.filter(l=>l.canComplete(t,n));if(r.length===0)return[];let o=[];for(let l of r)try{let u=await l.getCompletions(t,n);o.push(...u)}catch(u){gt({source:"repl:autocomplete",level:"error",message:"Completer failed; continuing with remaining completers.",detail:u})}let s=this.extractPattern(t,n),a=o.map((l,u)=>({_idx:u,text:l.type==="command"&&l.display.startsWith("/")?l.display.slice(1):l.display}));return K0(s,a,this.options.minScore).map(l=>o[l._idx]).filter(l=>l!==void 0)}extractPattern(t,n){let r=t.slice(0,n),o=Jg(r);if(o!==-1){let c=r.slice(o),l=c.match(/^\/skill:(\S*)$/);if(l)return l[1]??"";let u=c.match(/^\/(\S*)$/);if(u)return u[1]??"";let 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){gt({source:"repl:autocomplete",level:"error",message:"Listener failed during autocomplete state update.",detail:r})}}};function z0(e){return new jy(e)}i(z0,"createAutocompleteProvider");var Uy=WD(null);function Qp({children:e,cwd:t,gitRoot:n}){let r=yu({cwd:t,gitRoot:n,enabled:!0});return BD(Uy.Provider,{value:r,children:e})}i(Qp,"AutocompleteContextProvider");function gi(){return q0(Uy)}i(gi,"useAutocompleteContext");function HD(e,t){let n={command:"command",file:"file",argument:"argument",skill:"skill"},r={command:"\u26A1",file:"\u{1F4C4}",argument:"\u2022",skill:"\u2605"};return{id:`autocomplete-${t}`,text:e.text,displayText:e.display,description:e.description,type:n[e.type]??"command",icon:r[e.type]??">"}}i(HD,"completionToSuggestion");function yu(e={}){let t=q0(Uy);return t&&!e.cwd&&!e.gitRoot?t:jD(e)}i(yu,"useAutocomplete");function jD(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,o=X0(()=>z0({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:50}),[]);Y0(()=>{o.updateOptions({cwd:t,gitRoot:n})},[o,t,n]);let[s,a]=FD({visible:!1,selectedIndex:0,completions:[],loading:!1});Y0(()=>o.subscribe(C=>{a(C)}),[o]);let c=X0(()=>s.completions.map((y,C)=>HD(y,C)),[s.completions]),l=hi((y,C)=>{if(!r){o.cancel();return}o.handleInput(y,C)},[o,r]),u=hi(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),d=hi(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),p=hi(()=>{s.visible&&o.selectPrevious()},[o,s.visible]),h=hi(()=>{s.visible&&o.selectNext()},[o,s.visible]),m=hi(()=>{s.visible&&o.cancel()},[o,s.visible]),g=hi(()=>{o.cancel()},[o]),x=hi(()=>o,[o]);return{state:s,suggestions:c,handleInput:l,handleTab:u,handleEnter:d,handleUp:p,handleDown:h,handleEscape:m,cancel:g,getProvider:x}}i(jD,"useAutocompleteImpl");import{useCallback as Su,useRef as J0}from"react";var dr=[];function Zp(e={}){let{maxSize:t=1e3,onSave:n}=e,r=J0(-1),o=J0(""),s=Su((d,p)=>{if(!d.trim())return;if(dr[dr.length-1]?.text!==d){let m={text:d,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};dr.push(m),dr.length>t&&dr.splice(0,dr.length-t),n?.(m)}r.current=-1,o.current=""},[t,n]),a=Su(()=>dr.length===0?null:r.current===-1?(r.current=dr.length-1,dr[r.current]??null):r.current>0?(r.current--,dr[r.current]??null):null,[]),c=Su(()=>r.current===-1?null:r.current<dr.length-1?(r.current++,dr[r.current]??null):(r.current=-1,{text:o.current,timestamp:Date.now()}),[]),l=Su(()=>{r.current=-1,o.current=""},[]),u=Su(d=>{r.current===-1&&(o.current=d)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}i(Zp,"useInputHistory");function $n(e,t,n){return In(e).slice(t,n).join("")}i($n,"sliceByCodePoints");var cc=class{static{i(this,"TextBuffer")}_text="";_lines=[""];_cursor={row:0,col:0};_rememberedCol=0;_history=[];_historyIndex=-1;_maxHistory;constructor(t={}){this._maxHistory=t.maxHistory??100}get text(){return this._text}get lines(){return[...this._lines]}get cursor(){return{...this._cursor}}get lineCount(){return this._lines.length}get currentLine(){return this._lines[this._cursor.row]??""}get isEmpty(){return this._text.length===0}get currentLineVisualWidth(){return Lr(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=$n(t,0,this._cursor.col);return{row:this._cursor.row,col:Lr(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=In(t)[this._cursor.col];return r?Ar(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=In(n),o=0;for(let s=0;s<r.length;s++){let a=Ar(r[s])?2:1;if(o+a>t)return s;o+=a}return r.length}moveToVisualCol(t){this._cursor.col=this.visualColToLogicalCol(t),this._rememberedCol=this._cursor.col}setText(t){this._saveHistory(),this._setTextInternal(t),this._clampCursor()}replaceRange(t,n,r){this._saveHistory();let o=Math.max(0,Math.min(t,this._text.length)),s=Math.max(o,Math.min(n,this._text.length)),a=this._text.slice(0,o)+r+this._text.slice(s);this._setTextInternal(a),this.moveToAbsoluteOffset(o+r.length)}insert(t,n){if(this._saveHistory(),n?.paste){this._insertText(t);return}let r=t.split(`
|
|
42
|
+
`);for(let o=0;o<r.length;o++)o>0&&this._insertNewline(),this._insertText(r[o])}_insertText(t){let n=this._lines[this._cursor.row],r=$n(n,0,this._cursor.col),o=$n(n,this._cursor.col);this._lines[this._cursor.row]=r+t+o,this._cursor.col+=Mn(t),this._rememberedCol=this._cursor.col,this._updateText()}newline(){this._saveHistory(),this._insertNewline()}_insertNewline(){let t=this._lines[this._cursor.row],n=$n(t,0,this._cursor.col),r=$n(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=$n(t,0,n),o=$n(t,this._cursor.col);this._lines[this._cursor.row]=r+o,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}else if(this._cursor.row>0){this._saveHistory();let t=this._lines[this._cursor.row],n=this._lines[this._cursor.row-1];this._cursor.col=Mn(n),this._lines[this._cursor.row-1]=n+t,this._lines.splice(this._cursor.row,1),this._cursor.row--,this._rememberedCol=this._cursor.col,this._updateText()}}delete(){let t=this._lines[this._cursor.row];if(this._cursor.col<Mn(t)){this._saveHistory();let n=$n(t,0,this._cursor.col),r=$n(t,this._cursor.col+1);this._lines[this._cursor.row]=n+r,this._updateText()}else if(this._cursor.row<this._lines.length-1){this._saveHistory();let n=this._lines[this._cursor.row+1];this._lines[this._cursor.row]=t+n,this._lines.splice(this._cursor.row+1,1),this._updateText()}}move(t){switch(t){case"up":this._moveUp();break;case"down":this._moveDown();break;case"left":this._moveLeft();break;case"right":this._moveRight();break;case"home":this._moveHome();break;case"end":this._moveEnd();break}}_moveUp(){this._cursor.row>0&&(this._cursor.row--,this._clampColumn())}_moveDown(){this._cursor.row<this._lines.length-1&&(this._cursor.row++,this._clampColumn())}_moveLeft(){this._cursor.col>0?(this._cursor.col--,this._rememberedCol=this._cursor.col):this._cursor.row>0&&(this._cursor.row--,this._cursor.col=Mn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col)}_moveRight(){let t=this._lines[this._cursor.row];this._cursor.col<Mn(t)?(this._cursor.col++,this._rememberedCol=this._cursor.col):this._cursor.row<this._lines.length-1&&(this._cursor.row++,this._cursor.col=0,this._rememberedCol=0)}_moveHome(){this._cursor.col=0,this._rememberedCol=0}_moveEnd(){this._cursor.col=Mn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col}_clampColumn(){let t=this._lines[this._cursor.row],n=Mn(t);this._cursor.col=Math.min(this._rememberedCol,n)}_clampCursor(){this._cursor.row=Math.max(0,Math.min(this._cursor.row,this._lines.length-1)),this._cursor.col=Math.max(0,Math.min(this._cursor.col,Mn(this._lines[this._cursor.row]))),this._rememberedCol=this._cursor.col}killLineRight(){let t=this._lines[this._cursor.row];this._cursor.col<Mn(t)&&(this._saveHistory(),this._lines[this._cursor.row]=$n(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]=$n(t,this._cursor.col),this._cursor.col=0,this._rememberedCol=0,this._updateText()}}deleteWordLeft(){if(this._cursor.col===0)return;this._saveHistory();let t=this._lines[this._cursor.row],n=this._cursor.col-1,r=In(t);for(;n>0&&/\s/.test(r[n]??"");)n--;for(;n>0&&!/\s/.test(r[n-1]??"");)n--;let o=$n(t,0,n),s=$n(t,this._cursor.col);this._lines[this._cursor.row]=o+s,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}_saveHistory(){this._history=this._history.slice(0,this._historyIndex+1),this._history.push(this._text),this._history.length>this._maxHistory&&this._history.shift(),this._historyIndex=this._history.length-1}undo(){return this._historyIndex>0?(this._historyIndex--,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
|
|
43
|
+
`),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}redo(){return this._historyIndex<this._history.length-1?(this._historyIndex++,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
|
|
44
|
+
`),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}_updateText(){this._text=this._lines.join(`
|
|
45
|
+
`)}_setTextInternal(t){this._text=t,this._lines=t.split(`
|
|
46
|
+
`),this._lines.length===0&&(this._lines=[""])}moveToAbsoluteOffset(t){let r=Math.max(0,Math.min(t,this._text.length));for(let o=0;o<this._lines.length;o++){let s=this._lines[o]??"",a=s.length;if(r<=a){this._cursor={row:o,col:Mn(s.slice(0,r))},this._rememberedCol=this._cursor.col;return}r-=a,o<this._lines.length-1&&(r-=1)}this.moveToEnd()}clear(){this._saveHistory(),this._text="",this._lines=[""],this._cursor={row:0,col:0},this._rememberedCol=0}getAbsoluteOffset(){let t=0;for(let r=0;r<this._cursor.row;r++)t+=(this._lines[r]?.length??0)+1;let n=this._lines[this._cursor.row]??"";return t+=$n(n,0,this._cursor.col).length,t}isLineContinuation(){return this._lines[this._cursor.row].endsWith("\\")}moveToEnd(){this._cursor.row=this._lines.length-1,this._cursor.col=Mn(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as UD,useCallback as Jt,useRef as Gy,useEffect as GD}from"react";function em(e={}){let{initialValue:t="",onTextChange:n}=e,r=Gy(null),o=Gy(null),s=Gy(null),[a,c]=UD({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new cc,t&&r.current.setText(t)),o.current===null&&(o.current=DI());let l=r.current,u=o.current,d=Jt(q=>{c(S=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:q?.isPasting??S.isPasting,editingMode:q?.editingMode??S.editingMode})),n?.(l.text)},[l,n]),p=Jt(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{c(q=>({...q,isPasting:!1,editingMode:q.text?"typing":"idle"})),s.current=null},120)},[]),h=Jt(q=>{l.setText(q),d({isPasting:!1,editingMode:q?"typing":"idle"})},[l,d]),m=Jt((q,S,L)=>{l.replaceRange(q,S,L),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),g=Jt((q,S)=>{let L=S?.paste??!1;if(L&&OI(q)){let ee=q.replace(/\r\n/g,`
|
|
47
|
+
`).replace(/\r/g,`
|
|
48
|
+
`),{placeholder:j}=u.registerText(ee);l.insert(j,{paste:!0}),d({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(q,{paste:!1}),d({isPasting:L,editingMode:L?"pasting":"typing"}),L&&p()},[l,u,p,d]),x=Jt(()=>{l.newline(),d({isPasting:!1,editingMode:"typing"})},[l,d]),y=Jt(()=>{let q=l.getAbsoluteOffset(),S=up(l.text,q);S?l.replaceRange(S.start,S.end,""):l.backspace(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),C=Jt(()=>{let q=l.getAbsoluteOffset(),S=dp(l.text,q);S?l.replaceRange(S.start,S.end,""):l.delete(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),v=Jt(q=>{l.move(q),d()},[l,d]),_=Jt(()=>{l.clear(),d({isPasting:!1,editingMode:"idle"})},[l,d]),E=Jt(()=>{let q=l.undo();return q&&d(),q},[l,d]),R=Jt(()=>{let q=l.redo();return q&&d(),q},[l,d]),I=Jt(()=>{l.moveToEnd(),d()},[l,d]),W=Jt(q=>{l.moveToAbsoluteOffset(q),d()},[l,d]),$=Jt(()=>{l.killLineRight(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),D=Jt(()=>{l.killLineLeft(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),z=Jt(()=>{l.deleteWordLeft(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),re=Jt(()=>{s.current&&(clearTimeout(s.current),s.current=null),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]);return GD(()=>()=>{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:x,backspace:y,delete:C,move:v,moveToEnd:I,moveToOffset:W,killLineRight:$,killLineLeft:D,deleteWordLeft:z,clear:_,undo:E,redo:R}}i(em,"useTextBuffer");import{jsx as Ts,jsxs as om}from"react/jsx-runtime";import{useState as rR}from"react";import{useCallback as lc,useEffect as Yy,useRef as nm}from"react";function Q0(e,t,n){let r=Math.max(0,Math.min(t,e.length)),o=e.slice(0,r);if(n.type==="command"||n.type==="skill"){let a=o.lastIndexOf("/");return{start:a===-1?0:a,end:r,replacement:n.text}}if(n.type==="argument"){let a=o.match(/\S+$/);if(a){let c=a[0],l=r-c.length;if(c.startsWith("/")&&o.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=o.lastIndexOf("@");return{start:s===-1?0:s,end:r,replacement:n.text}}i(Q0,"buildAutocompleteReplacement");import{readFile as qD}from"node:fs/promises";var JD=/\.(png|jpe?g|gif|webp|bmp)$/i;async function Vy(e){if(e.length===0)return process.platform==="darwin"?Z0():{kind:"text",text:""};let t=tm(e);return t.length>0?QD(t,e):{kind:"text",text:e}}i(Vy,"handleBracketedPaste");async function Ky(){return Z0()}i(Ky,"triggerExplicitClipboardImage");async function Z0(){let e;try{e=await If()}catch(t){return{kind:"error",message:`Failed to read clipboard image: ${zy(t)}`}}return e?eR(e):{kind:"noop"}}i(Z0,"readClipboardAsImagesOutcome");async function QD(e,t){let n=[],r=[];for(let o of e){let s;try{s=await qD(o)}catch(c){r.push(`Failed to read ${o}: ${zy(c)}`);continue}let a=await eR(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}}i(QD,"readImagePathsAsOutcome");async function eR(e){try{let t=await vf(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: ${zy(t)}`}}}i(eR,"decodeBufferToOutcome");function tm(e){return e.split(/ (?=\/|[A-Za-z]:\\)/).filter(n=>JD.test(n.trim()))}i(tm,"extractImagePaths");function zy(e){return e instanceof Error?e.message:String(e)}i(zy,"describeError");function rm(e,t){gt({source:"repl:prompt-input",level:"warn",message:e,...t!==void 0?{detail:t}:{}})}i(rm,"reportPromptInputDiagnostic");var eB=500;function tR(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}i(tR,"shouldUseHistoryNavigation");function tB(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<eB?"clear-input":"arm-clear":"pass-through"}i(tB,"resolvePromptEscapeBehavior");function nB(e){return e.keyName==="newline"||e.keyName==="return"&&(e.ctrl||e.shift)||e.isPasting?"newline":e.isAutocompleteVisible?"accept-completion-and-submit":e.isLineContinuation?"line-continuation":"submit"}i(nB,"resolvePromptEnterBehavior");function rB(e){if(e.meta&&e.name==="backspace")return"delete-word-left";if(e.ctrl)switch(e.name){case"a":return"move-home";case"e":return"move-end";case"z":return"undo";case"y":return"redo";case"k":return"kill-line-right";case"u":return"kill-line-left";case"w":return"delete-word-left";default:return}}i(rB,"resolvePromptEditingCommand");function nR({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:o,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onPasteFallback:l,onHistoryRecall:u,onPopPendingInputs:d}){let p=nm(0),{add:h,navigateUp:m,navigateDown:g,reset:x,saveTempInput:y}=Zp(),{buffer:C,text:v,cursor:_,lines:E,isPasting:R,editingMode:I,pasteStore:W,resetTransientState:$,setText:D,replaceRange:z,clear:re,move:q,moveToOffset:S,insert:L,backspace:ee,newline:j,delete:ae,undo:de,redo:me,killLineRight:be,killLineLeft:pe,deleteWordLeft:we}=em({initialValue:r,onTextChange:c}),Pe=nm(0);Yy(()=>{if(R)return;if(v.length<=1e4){Pe.current=0;return}if(v.length===Pe.current)return;let P=W.peekNextId(),{truncatedText:U,placeholderContent:H}=NI(v,P);H&&(W.registerTruncatedText(H),Pe.current=U.length,D(U))},[v,R,W,D]);let Q=gi(),se=yu({cwd:o,gitRoot:s,enabled:a}),{state:Te,suggestions:nt,handleInput:It,handleTab:ze,handleEnter:Ge,handleUp:he,handleDown:Ie,handleEscape:G}=Q??se;Yy(()=>{n||(p.current=0,$(),Te.visible&&G())},[Te.visible,n,G,$]);let Fe=nm(v);Yy(()=>{a&&v!==Fe.current&&(Fe.current=v,It(v,C.getAbsoluteOffset()))},[a,C,It,v]);let wt=lc(P=>{if(!P?.text)return;let U=Q0(v,C.getAbsoluteOffset(),P),H=v.slice(0,U.start)+U.replacement+v.slice(U.end);return z(U.start,U.end,U.replacement),H},[C,z,v]),Vt=lc(P=>{let U=P??v;if(!U.trim())return;let H=W.expand(U),Z=new Set,N=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let ve of U.matchAll(N)){let Re=Number.parseInt(ve[2]??"0",10);Number.isFinite(Re)&&Re>0&&Z.add(Re)}let Me=[];for(let ve of Z){let Re=W.get(ve);Re&&Me.push(Re)}h(U,{pastedContents:Me}),e({displayText:U,fullText:H,pastedContents:Me}),re()},[h,re,e,W,v]),Xe=lc(P=>{if(P){if(P.pastedContents&&P.pastedContents.length>0){for(let U of P.pastedContents)W.adopt(U);u?.({text:P.text,pastedContents:[...P.pastedContents]})}D(P.text)}},[u,W,D]),Lt=lc(async P=>{try{let U=await Vy(P);if(U.kind==="images"){let H=U.blocks.map(Z=>`@${Z.path}`).join(" ");L(`${H} `,{paste:!1})}else U.kind==="error"&&(rm(`Paste image handling failed: ${U.message}`),L(P,{paste:!1}),l?.("Image paste failed; inserted as plain text."))}catch(U){rm("Paste image handling failed.",U)}},[L,l]),Zt=nm(!1),Zn=lc(async()=>{if(!Zt.current){Zt.current=!0;try{let P=await Ky();if(P.kind==="images"){let U=P.blocks.map(H=>`@${H.path}`).join(" ");L(`${U} `,{paste:!1})}else P.kind==="error"&&rm(`Clipboard image handling failed: ${P.message}`)}catch(P){rm("Clipboard image handling failed.",P)}finally{Zt.current=!1}}},[L]),Sn=lc(P=>{if(!n)return!1;if(P.name==="v"&&(P.ctrl||P.meta))return Zn(),!0;if(P.name==="paste"&&P.isPasted&&tm(P.sequence).length>0)return Lt(P.sequence),!0;let U=Te.visible&&nt.length>0;if(P.name==="tab"&&U){let Z=ze();return Z&&wt(Z),!0}if(P.ctrl&&P.name==="c")return v.length>0?(re(),x()):t?.(),!0;if(P.name==="escape")switch(tB({isAutocompleteVisible:U,hasText:v.length>0,timeSinceLastEscapeMs:Date.now()-p.current})){case"cancel-autocomplete":return G(),p.current=0,!0;case"clear-input":return p.current=0,re(),x(),!0;case"arm-clear":return p.current=Date.now(),!0;default:return!1}if(P.name==="up"){if(U)return he(),!0;if(P.ctrl)return q("up"),!0;if(v.length===0&&d){let Z=d();if(typeof Z=="string"&&Z.length>0)return D(Z),!0}if(tR(_.row,E.length,"up")){y(v);let Z=m();Xe(Z)}else q("up");return!0}if(P.name==="down"){if(U)return Ie(),!0;if(P.ctrl)return q("down"),!0;if(tR(_.row,E.length,"down")){let Z=g();Xe(Z)}else q("down");return!0}if(P.name==="left"){let Z=C.getAbsoluteOffset(),N=up(C.text,Z);return N?S(N.start):q("left"),!0}if(P.name==="right"){let Z=C.getAbsoluteOffset(),N=dp(C.text,Z);return N?S(N.end):q("right"),!0}if(P.name==="home")return q("home"),!0;if(P.name==="end")return q("end"),!0;let H=rB(P);if(H)switch(H){case"move-home":return q("home"),!0;case"move-end":return q("end"),!0;case"undo":return de(),!0;case"redo":return me(),!0;case"kill-line-right":return be(),!0;case"kill-line-left":return pe(),!0;case"delete-word-left":return we(),!0;default:break}if(P.name==="backspace")return ee(),!0;if(P.name==="delete")return ae(),!0;if(P.name==="return"||P.name==="newline")switch(nB({keyName:P.name,ctrl:P.ctrl,shift:P.shift,isAutocompleteVisible:U,isLineContinuation:!!E[_.row]?.endsWith("\\"),isPasting:R})){case"accept-completion-and-submit":{let N=Ge();if(N){let Me=wt(N);Vt(Me)}else Vt();return!0}case"newline":return j(),!0;case"line-continuation":return ee(),j(),!0;default:return Vt(),!0}return P.insertable&&!P.ctrl&&!P.meta?(L(P.sequence,P.isPasted?{paste:!0}:void 0),!0):!1},[wt,h,Te.visible,ee,C,re,_.row,ae,n,Ie,G,he,Ge,Xe,ze,Lt,Zn,E,pe,be,q,S,g,m,j,t,d,me,x,y,D,Vt,nt.length,v.length,we,R,de]);return{text:v,cursor:_,lines:E,isPasting:R,terminalFocused:n,editingMode:I,handleKey:Sn}}i(nR,"usePromptInputController");var Cs=i(({onSubmit:e,onHistoryRecall:t,onPopPendingInputs:n,placeholder:r="Type a message...",prompt:o=">",focus:s=!0,initialValue:a="",cwd:c,gitRoot:l,autocompleteEnabled:u=!0,onInputChange:d,onPasteFallback:p})=>{let{exit:h}=Zr(),{cursor:m,lines:g,handleKey:x,isPasting:y,terminalFocused:C,editingMode:v}=nR({onSubmit:e,onExit:h,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:u,onInputChange:d,onPasteFallback:p,onHistoryRecall:t,onPopPendingInputs:n});return Kn(vn.High,_=>x(_),[x]),Ts(A,{flexDirection:"column",children:Ts(Xp,{lines:g,cursorRow:m.row,cursorCol:m.col,prompt:o,placeholder:r,focus:s,terminalFocused:C,isPasting:y,editingMode:v,theme:"dark"})})},"InputPrompt"),oR=i(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,o]=rR(""),[s,a]=rR(0);Kn(vn.High,p=>{if(p.name==="return")return r.trim()&&(e(r),o(""),a(0)),!0;if(p.name==="backspace"&&s>0){let h=[...r].slice(0,s-1).join(""),m=[...r].slice(s).join("");return o(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 o(h+p.sequence+m),a(s+1),!0}return!1},[r,s,e]);let c=ce("dark");if(!r)return om(A,{children:[om(k,{color:c.colors.primary,children:[n," "]}),t&&Ts(k,{dimColor:!0,children:t}),Ts(k,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",d=[...r].slice(s+1).join("");return om(A,{children:[om(k,{color:c.colors.primary,children:[n," "]}),Ts(k,{children:l}),Ts(k,{backgroundColor:c.colors.primary,color:"#000000",children:u}),Ts(k,{children:d})]})},"SimpleInputPrompt");import{jsx as Ct,jsxs as sn}from"react/jsx-runtime";import{useState as sR,useEffect as aR}from"react";var iR=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],oB=80,im=new Set,wu=null;function iB(){let e=Array.from(im);for(let t of e)t()}i(iB,"dispatchSharedSpinnerTick");function sB(e){return im.add(e),wu===null&&(wu=setInterval(iB,oB)),()=>{im.delete(e),im.size===0&&wu!==null&&(clearInterval(wu),wu=null)}}i(sB,"subscribeToSharedSpinnerClock");function xu(e=!0){let[t,n]=sR(0);return aR(()=>{if(e)return sB(()=>{n(r=>r+1)})},[e]),t}i(xu,"useSharedSpinnerTick");var zn=i(({color:e,theme:t})=>{let n=t??ce("dark"),o=xu(!0)%iR.length,s=e??n.colors.accent;return Ct(k,{color:s,children:iR[o]})},"Spinner");function aB(e){return e<=0?0:Math.round(e/4)}i(aB,"estimateOutputTokens");function cB(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/3600),r=Math.floor(t%3600/60),o=t%60;return n===0?`${r}m${o}s`:`${n}h${r}m${o}s`}i(cB,"formatElapsedDuration");var cR=i(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??ce("dark");if(xu(e!==null),e===null)return null;let o=lB(Date.now()-e,t);return Ct(k,{color:r.colors.dim,wrap:"truncate",children:o})},"SpinnerStatsTail");function lB(e,t){let n=cB(e),r=aB(t);return r>0?` (${n} \xB7 \u2193 ${r} tokens)`:` (${n})`}i(lB,"buildSpinnerStatsText");var Xy=i(({label:e,dotCount:t=3,theme:n})=>{let r=n??ce("dark"),[o,s]=sR(1);aR(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(o);return sn(A,{children:[e&&Ct(k,{color:r.colors.text,children:e}),Ct(k,{color:r.colors.accent,children:a})]})},"DotsIndicator"),qy=i(({progress:e,label:t,width:n=20,theme:r})=>{let o=r??ce("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 sn(A,{flexDirection:"column",children:[t&&Ct(A,{marginBottom:1,children:Ct(k,{color:o.colors.text,children:t})}),sn(A,{children:[Ct(k,{color:o.colors.primary,children:l}),Ct(k,{dimColor:!0,children:u}),sn(k,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),lR=i(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??ce("dark"),o=e??"Thinking";return sn(A,{children:[t&&Ct(A,{marginRight:1,children:Ct(zn,{theme:r})}),sn(k,{color:r.colors.accent,children:[o,"\u2026"]})]})},"ThinkingIndicator"),uR=i(({message:e,subMessage:t,progress:n,type:r="spinner",compact:o=!1,theme:s})=>{let a=s??ce("dark"),c=e??"Loading";return o?sn(A,{children:[Ct(zn,{theme:a}),sn(k,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?sn(A,{flexDirection:"column",children:[Ct(qy,{progress:n,label:c,theme:a}),t&&Ct(A,{marginTop:1,children:Ct(k,{dimColor:!0,children:t})})]}):r==="dots"?sn(A,{flexDirection:"column",children:[Ct(Xy,{label:c,theme:a}),t&&Ct(A,{marginTop:1,children:Ct(k,{dimColor:!0,children:t})})]}):r==="simple"?sn(A,{flexDirection:"column",children:[sn(k,{color:a.colors.accent,children:[c,"\u2026"]}),t&&Ct(A,{marginTop:1,children:Ct(k,{dimColor:!0,children:t})}),n!==void 0&&Ct(A,{marginTop:1,children:sn(k,{dimColor:!0,children:[n,"%"]})})]}):sn(A,{flexDirection:"column",children:[sn(A,{children:[Ct(zn,{theme:a}),sn(k,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&sn(k,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&Ct(A,{marginTop:1,children:Ct(k,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as xe,jsxs as Qe,Fragment as lS}from"react/jsx-runtime";import{useEffect as GR,useMemo as no,memo as Yn}from"react";import*as Cu from"node:path";function Tu(e){if(JC(e)){let t=QC(e);return t?`[memory:${t}]`:"[memory]"}if(uB(e))return"[memory]"}i(Tu,"memoryBadgeFor");function uB(e){let t=Cu.resolve(e),n=Zo("projects");if(!t.startsWith(n+Cu.sep)&&t!==n)return!1;let o=t.slice(n.length+1).split(Cu.sep);return o.length>=2&&o[1]==="memory"}i(uB,"isInsideAnyMemoryDir");function ot(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}i(ot,"truncateValue");function dR(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}i(dR,"extractFirstMeaningfulLine");function mR(e){let t=e.match(/^\[([^\]]+)\]\s+(.*)$/);if(!t)return{toolLabel:e};let n=t[1]?.trim(),r=t[2]?.trim()??e,o=new RegExp(`^${n?.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"i"),s=r.replace(o,"").trim();return{rolePrefix:n?`[${n}]`:void 0,toolLabel:s||r}}i(mR,"splitDisplayToolName");function sm(e){let{rolePrefix:t,toolLabel:n}=mR(e);return t?`${t} ${n}`:n}i(sm,"normalizeDisplayToolName");function vu(e){return mR(e).toolLabel}i(vu,"stripRolePrefix");function am(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}i(am,"asRecord");function hR(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(hR,"readString");function Nt(e,...t){for(let n of t){let r=hR(e?.[n]);if(r)return r}}i(Nt,"readFirstString");function eo(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim().length>0){let t=Number(e.trim());return Number.isFinite(t)?t:void 0}}i(eo,"readNumber");function gR(e){if(!Array.isArray(e))return;let t=e.map(n=>typeof n=="string"?n.trim():"").filter(Boolean);return t.length>0?t:void 0}i(gR,"readStringArray");function dB(e){if(typeof e=="string")return e.trim()||void 0;let t=am(e);if(t)return hR(t.preview)??void 0}i(dB,"extractPreview");function fR(e){if(e)try{return am(JSON.parse(e))}catch{return}}i(fR,"parsePreviewRecord");function He(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}i(He,"extractFieldFromPreview");function to(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}i(to,"extractNumberFromPreview");function yR(e){if(!e)return;let t=e.match(/"paths"\s*:\s*\[([^\]]*)/);if(!t?.[1])return;let n=Array.from(t[1].matchAll(/"([^"]+)"/g)).map(r=>r[1]?.trim()??"").filter(Boolean);return n.length>0?n:void 0}i(yR,"extractPathsFromPreview");function fB(e){let t=dB(e);if(typeof e=="string")return{record:fR(t),preview:t};let n=am(e),r=fR(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}i(fB,"resolveInputRecord");function uc(e,t,n,r=!1){let o=Nt(t,"path","target_path","targetPath")??He(n,"path")??He(n,"target_path")??He(n,"targetPath"),s=gR(t?.paths)??yR(n);if(r&&s?.length){if(s.length===1){let a=Tu(s[0]);a&&e.push(a),e.push(ot(s[0]))}else e.push(`${s.length} files`);return}if(o){let a=Tu(o);a&&e.push(a),e.push(ot(o));return}if(s?.length)if(s.length===1){let a=Tu(s[0]);a&&e.push(a),e.push(ot(s[0]))}else e.push(`${s.length} files`)}i(uc,"pushPathSummary");function dc(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}i(dc,"pushNumericSummary");function Jy(e,t,n){let r=Nt(t,"baseRef","base_ref")??He(n,"baseRef")??He(n,"base_ref"),o=Nt(t,"targetRef","target_ref")??He(n,"targetRef")??He(n,"target_ref");r&&o&&e.push(ot(`${r}...${o}`,88))}i(Jy,"pushRangeSummary");function pB(e,t){let{record:n,preview:r}=fB(t),o=vu(e).toLowerCase(),s=[];if(o.includes("changed_diff_bundle")){let a=gR(n?.paths)??yR(r);a?.length?(s.push(a.length===1?ot(a[0]):`${a.length} files`),a.length>1&&s.push(ot(a[0]))):uc(s,n,r,!0);let c=eo(n?.limit_per_path)??eo(n?.limitPerPath)??to(r,"limit_per_path")??to(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),Jy(s,n,r),s}if(o.includes("changed_diff"))return uc(s,n,r),dc(s,"offset",eo(n?.offset)??to(r,"offset")),dc(s,"limit",eo(n?.limit)??to(r,"limit")),Jy(s,n,r),s;if(o==="read"||o.includes("read_"))return uc(s,n,r),dc(s,"offset",eo(n?.offset)??to(r,"offset")),dc(s,"limit",eo(n?.limit)??to(r,"limit")),s;if(o.includes("changed_scope"))return uc(s,n,r,!0),Jy(s,n,r),s;if(o.includes("repo_overview"))return uc(s,n,r),s;if(o.includes("bash")||o.includes("shell_command")){let a=Nt(n,"command")??He(r,"command");return a&&s.push(`cmd=${ot(a,140)}`),s}if(o==="glob"||o.includes("glob_")){let a=Nt(n,"pattern")??He(r,"pattern"),c=Nt(n,"path","root","directory","cwd")??He(r,"path")??He(r,"root")??He(r,"directory")??He(r,"cwd");if(a&&s.push(`pattern=${ot(a,96)}`),c){let l=Tu(c);l&&s.push(l),s.push(ot(c))}return s}if(o==="grep"||o.includes("grep_")){let a=Nt(n,"pattern","query")??He(r,"pattern")??He(r,"query"),c=Nt(n,"path","root","directory","cwd")??He(r,"path")??He(r,"root")??He(r,"directory")??He(r,"cwd");if(a&&s.push(`pattern=${ot(a,96)}`),c){let l=Tu(c);l&&s.push(l),s.push(ot(c))}return s}if(o==="web_fetch"){let a=Nt(n,"url")??He(r,"url"),c=Nt(n,"provider_id","providerId")??He(r,"provider_id")??He(r,"providerId"),l=Nt(n,"capability_id","capabilityId")??He(r,"capability_id")??He(r,"capabilityId");return a&&s.push(ot(a,120)),c&&s.push(`provider=${ot(c,48)}`),l&&s.push(`cap=${ot(l,48)}`),s}if(o==="mcp_describe"||o==="mcp_read_resource"){let a=Nt(n,"id")??He(r,"id");return a&&s.push(ot(a,120)),s}if(o==="mcp_call"){let a=Nt(n,"id")??He(r,"id"),c=am(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(ot(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(o==="skill"){let a=Nt(n,"skill","name")??He(r,"skill");return a&&s.push(ot(a,64)),s}if(o==="mcp_search"){let a=Nt(n,"query")??He(r,"query"),c=Nt(n,"server")??He(r,"server"),l=Nt(n,"kind")??He(r,"kind"),u=eo(n?.limit)??to(r,"limit");return a&&s.push(`query=${ot(a,96)}`),c&&s.push(`server=${ot(c,48)}`),l&&s.push(`kind=${l}`),u!==void 0&&s.push(`limit=${u}`),s}if(o==="web_search"||o==="code_search"||o==="semantic_lookup"){let a=Nt(n,"query","pattern")??He(r,"query")??He(r,"pattern"),c=Nt(n,"path","target_path","targetPath")??He(r,"path")??He(r,"target_path")??He(r,"targetPath"),l=Nt(n,"provider_id","providerId")??He(r,"provider_id")??He(r,"providerId"),u=eo(n?.limit)??to(r,"limit");return a&&s.push(`query=${ot(a,96)}`),c&&s.push(ot(c,72)),l&&s.push(`provider=${ot(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return uc(s,n,r,!0),dc(s,"offset",eo(n?.offset)??to(r,"offset")),dc(s,"limit",eo(n?.limit)??to(r,"limit")),s}i(pB,"summarizeToolDetails");function SR(e){let t=e.match(/Showing diff lines\s+(\d+)-(\d+)\s+of\s+(\d+)/i);if(t)return`${t[1]}-${t[2]}/${t[3]}`}i(SR,"extractChangedDiffRange");function mB(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}i(mB,"extractDiffPreviewLine");function hB(e){let t=[],n=SR(e);if(n){let[o,s]=n.split("/");t.push(s?`Diff range: ${o} of ${s}`:`Diff range: ${n}`)}let r=mB(e);return r&&t.push(`Preview: ${ot(r,220)}`),t}i(hB,"formatChangedDiffExplanation");function gB(e){let t=[],n=e.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(n?.[1]){let o=Number(n[1]);Number.isFinite(o)&&o>0&&t.push(`Bundle: ${o===1?"1 file":`${o} files`}`)}let r=e.match(/^===\s+(.+?)\s+===/m);return r?.[1]&&t.push(`First file: ${ot(r[1].trim(),220)}`),t}i(gB,"formatChangedDiffBundleExplanation");function wR(e,t){if(!t)return[];let n=vu(e).toLowerCase(),r=[];if(n.includes("changed_diff_bundle")){let o=t.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(o?.[1]){let a=Number(o[1]);Number.isFinite(a)&&a>0&&r.push(a===1?"1 file":`${a} files`)}let s=t.match(/^===\s+(.+?)\s+===/m);return s?.[1]&&r.push(ot(s[1].trim())),r}if(n.includes("changed_diff")){let o=t.match(/^Changed diff for\s+(.+)$/im);o?.[1]&&r.push(ot(o[1].trim()));let s=SR(t);return s&&r.push(s),r}if(n==="read"||n.includes("read_")){let o=t.match(/^Reading\s+(.+)$/im);return o?.[1]&&r.push(ot(o[1].trim())),r}return[]}i(wR,"summarizeToolOutputDetails");function Qy(e,t){let n=sm(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}i(Qy,"formatToolDetailSummary");function yB(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(yB,"formatDuration");function SB(e){switch(e.status){case V.Scheduled:return"scheduled";case V.Validating:return"validating";case V.AwaitingApproval:return"awaiting approval";case V.Executing:return"running";case V.Error:return"failed";case V.Cancelled:return"cancelled";default:return}}i(SB,"formatToolStatusDetail");function pR(e){switch(e.status){case V.Scheduled:return["Queued: waiting to start"];case V.Validating:return["Validating: checking inputs and policy"];case V.AwaitingApproval:return["Waiting: approval required before execution"];case V.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 V.Cancelled:return["Cancelled before completion"];default:return[]}}i(pR,"formatToolProgressExplanation");function Zy(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}i(Zy,"resolveToolExplanationTone");function wB(e){let t=dR(e.error),n=typeof e.output=="string"?dR(e.output):void 0,r=[];return t&&r.push(`Error: ${ot(t,220)}`),e.status===V.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${ot(n,220)}`),r}i(wB,"formatToolFailureExplanation");function eS(e){if(typeof e.output!="string"||!e.output.trim())return pR(e);let t=vu(e.name).toLowerCase();return e.status===V.Error?wB(e):e.status!==V.Success?pR(e):t.includes("changed_diff_bundle")?gB(e.output):t.includes("changed_diff")?hB(e.output):[]}i(eS,"formatToolResultExplanation");function tS(e,t){return Qy(e,pB(e,t))}i(tS,"formatToolSummary");function cm(e){let t=typeof e.output=="string"?wR(e.name,e.output):[],n=t.length>0?Qy(e.name,t):tS(e.name,e.input),r=SB(e),o=yB(e.startTime,e.endTime),s=e.status===V.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===V.Executing&&e.preview?e.preview:void 0,a=[r,s,o].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}i(cm,"formatToolCallInlineText");function lm(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?wR(n.name,n.output):[],o=r.length>0?Qy(n.name,r):tS(n.name,n.input),a=n.progressLines&&n.progressLines.length>0?`${o}|${n.id}`:`${o}|${n.error??""}`,c=t.get(a);c?(c.tool=n,c.count+=1):t.set(a,{tool:n,count:1})}return[...t.values()]}i(lm,"collapseToolCalls");function Iu(e){let t=cm(e.tool);return e.count>1?`${t} x${e.count}`:t}i(Iu,"formatCollapsedToolInlineText");function um(e,t,n){let r=tS(e,t);return r!==sm(e)?`[Tools] ${r}`:n>0?`[Tools] ${sm(e)} (${n} chars)`:`[Tools] ${sm(e)}`}i(um,"formatLiveToolLabel");function nS(e,t=e.length){let n=0,r=Math.min(t,e.length);for(let o=0;o<r;o++)e.charCodeAt(o)===10&&(n+=1);return n}i(nS,"countNewlines");function dm(e,t={}){let n=t.maxChars??1e4,r=t.headChars??2500,o=t.tailChars??2500;if(e.length<=n)return e;let s=e.slice(0,r),a=e.slice(-o),c=nS(e),l=nS(s),u=nS(a),d=Math.max(0,c-l-u);return`${s}
|
|
49
|
+
\u2026 +${d} lines \u2026
|
|
50
|
+
${a}`}i(dm,"truncateUserMessageForDisplay");var xR="(?:\x1B[[0-9;]*m)*",xB=new RegExp(`^(${xR})(?:[ \r]*
|
|
51
|
+
)+`),TB=new RegExp(`(?:
|
|
52
|
+
[ \r]*)+(${xR})$`);function rS(e){return e.replace(xB,"$1").replace(TB,"$1")}i(rS,"stripOuterBlankLines");function Gt(e){let t=/\u001b\[[0-9;?]*[ -/]*[@-~]/g,n=/\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)/g,r=/\u001b[@-_]/g;return e.replace(t,"").replace(n,"").replace(r,"")}i(Gt,"stripAnsi");var CB=new Set(["edit","write","multi_edit","insert_after_anchor"]),vB=20;function IB(e){return CB.has(vu(e.name).trim().toLowerCase())}i(IB,"isMutationTool");function bB(e){return e.startsWith("--- ")||e.startsWith("+++ ")?{color:"dim",skip:!0}:/^(File (edited|created|updated|written)|Content inserted)/.test(e)?{color:"dim",skip:!0}:e.startsWith("@@")?{color:"dim",skip:!1}:e.startsWith("+")?{color:"success",skip:!1}:e.startsWith("-")?{color:"error",skip:!1}:{color:"dim",skip:!1}}i(bB,"classifyDiffLine");function RB(e,t,n,r,o){let s=[],a=!1;for(let p of n.split(/\r?\n/)){let{color:h,skip:m}=bB(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=o?u:u.slice(0,vB);return d.forEach((p,h)=>{Ne(e,`${t}-diff-${h}`,p.text,ft(r,4),{color:p.color,indent:4})}),!o&&u.length>d.length&&Ne(e,`${t}-diff-more`,`... (${u.length-d.length} more lines)`,ft(r,4),{color:"dim",indent:4}),!0}i(RB,"pushDiffRows");var TR=400,kB="... (thinking truncated; press Ctrl+O to inspect full reasoning)",CR=2e5,EB="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",RR=1e5,vR=120,_B=" \u2026 (Ctrl+O to expand)";function kR(){return process.env.KODAX_THINKING_COLLAPSE!=="0"}i(kR,"isThinkingCollapseEnabled");function MB(e){let t=e.split(/\r?\n/).map(a=>a.trim()).filter(a=>a.length>0),n=t[0]??"",r=t.length>1,o=n.length>vR;return{summary:o?`${n.slice(0,vR).trimEnd()}\u2026`:n,hasMore:r||o}}i(MB,"buildCollapsedThinkingLine");function AB(e,t){if(!e||!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^\\[Tools\\]\\s+\\[${n}\\]\\s+`,"i"),"[Tools] ").replace(new RegExp(`^\\[Thinking\\]\\s+\\[${n}\\]\\s*`,"i"),"[Thinking] ").replace(new RegExp(`^\\[${n}\\]\\s+thinking\\b`,"i"),"[Thinking]").trim()}i(AB,"normalizeManagedLiveActivityLabel");function bu(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(bu,"formatTimestamp");function ER(e){switch(e){case V.Scheduled:return"\u25CB";case V.Validating:return"\u25D0";case V.AwaitingApproval:return"\u23F8";case V.Executing:return"\u25CF";case V.Success:return"\u2713";case V.Error:return"\u2717";case V.Cancelled:return"\u2298";default:return"[tool]"}}i(ER,"getToolStatusIcon");function _R(e){switch(e){case V.Scheduled:case V.Validating:return"dim";case V.AwaitingApproval:return"accent";case V.Executing:return"primary";case V.Success:return"success";case V.Error:return"error";case V.Cancelled:return"dim";default:return"text"}}i(_R,"getToolStatusColor");function LB(e,t){let n=Math.max(1,t),r=e.split(`
|
|
53
|
+
`),o=bn(r.length>0?r:[""],n,0,0);return o.visualLines.length>0?o.visualLines:[""]}i(LB,"wrapText");function oS(e,t,n,r=!1){if(n||r)return e.length>CR?`${e.slice(0,CR)}
|
|
54
|
+
|
|
55
|
+
${EB}`:e;let o=e.split(/\r?\n/),s=o.length>t,a=s?o.slice(0,t).join(`
|
|
56
|
+
`):e,c=a.length>TR,l=c?a.slice(0,TR):a;return!s&&!c?e:`${l}
|
|
57
|
+
|
|
58
|
+
${kB}`}i(oS,"buildThinkingPreview");function PB(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user")return t;return 0}i(PB,"findActiveRoundStartIndex");function Ne(e,t,n,r,o){let s=Gt(n),a=LB(s,r);if(a.length===0){e.push({key:`${t}-0`,text:"",...o});return}a.forEach((c,l)=>{e.push({key:`${t}-${l}`,text:c,...o})})}i(Ne,"pushWrappedRows");function fc(e,t){e.push({key:t,text:" "})}i(fc,"pushBlankRow");function ft(e,t=0){return Math.max(20,e-t)}i(ft,"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):[]}i($B,"buildToolInputPreview");function OB(e,t,n,r,o,s=!1,a=!1){Ne(e,`${t}-tool-${n.id}-main`,`${ER(n.status)} ${Iu({tool:n,count:r})}`,ft(o,2),{color:_R(n.status),indent:2,bold:n.status===V.Executing}),eS(n).forEach((u,d)=>{let p=Zy(u);Ne(e,`${t}-tool-${n.id}-explanation-${d}`,u,ft(o,4),{color:p,indent:4})});let l=n.status===V.Success&&typeof n.output=="string"&&n.output.trim().length>0&&IB(n)&&RB(e,`${t}-tool-${n.id}`,n.output,o,a);if(s){let u=$B(n),d=a?u:u.slice(0,6);d.forEach((p,h)=>{Ne(e,`${t}-tool-${n.id}-input-${h}`,p,ft(o,4),{color:"dim",indent:4})}),!a&&u.length>d.length&&Ne(e,`${t}-tool-${n.id}-input-more`,`... (${u.length-d.length} more lines)`,ft(o,4),{color:"dim",indent:4})}if(s&&!l&&typeof n.output=="string"&&n.output.trim()){let u=n.output.trim().split(/\r?\n/),d=a?u:u.slice(0,8);d.forEach((h,m)=>{Ne(e,`${t}-tool-${n.id}-output-${m}`,h,ft(o,4),{color:"dim",indent:4})});let p=u.length;!a&&p>d.length&&Ne(e,`${t}-tool-${n.id}-output-more`,`... (${p-d.length} more lines)`,ft(o,4),{color:"dim",indent:4})}}i(OB,"buildToolRows");function NB(e,t,n,r){let o=n.status===V.Executing,s=o?"":`${ER(n.status)} `;Ne(e,`${t}-tool-${n.id}-main`,`${s}${Iu({tool:n,count:1})}`,ft(r,2),{color:_R(n.status),indent:2,bold:o,spinner:o}),eS(n).forEach((c,l)=>{let u=Zy(c);Ne(e,`${t}-tool-${n.id}-explanation-${l}`,c,ft(r,4),{color:u,indent:4})})}i(NB,"buildLiveToolRows");function MR(e){let{items:t,viewportWidth:n,isLoading:r=!1,maxLines:o=1e3,isThinking:s=!1,thinkingCharCount:a=0,thinkingContent:c="",streamingResponse:l="",currentTool:u,activeToolCalls:d=[],toolInputCharCount:p=0,toolInputContent:h="",iterationHistory:m=[],currentIteration:g=1,isCompacting:x=!1,managedAgentMode:y,managedPhase:C,managedHarnessProfile:v,managedWorkerTitle:_,managedRound:E,managedMaxRounds:R,lastLiveActivityLabel:I,liveStatusLines:W=[],currentTodoActiveForm:$,showFullThinking:D=!1,showDetailedTools:z=!1,showAllContent:re=!1,showLiveProgressRows:q=!0}=e,S=[];for(let L of t)switch(L.type){case"user":Ne(S,`${L.id}-header`,`You [${bu(L.timestamp)}]`,n,{color:"primary",bold:!0,itemId:L.id}),Ne(S,`${L.id}-body`,dm(L.text),ft(n,2),{color:"text",indent:2,itemId:L.id}),S.push({key:`${L.id}-blank`,text:" ",itemId:L.id});break;case"assistant":{let ee=rS(re?L.text:L.compactText??L.text);Ne(S,`${L.id}-header`,`Assistant [${bu(L.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:L.isStreaming,itemId:L.id}),Ne(S,`${L.id}-body`,ee,ft(n,2),{color:"text",indent:2,itemId:L.id}),S.push({key:`${L.id}-blank`,text:" ",itemId:L.id});break}case"system":Ne(S,`${L.id}-header`,`System [${bu(L.timestamp)}]`,n,{color:"dim",bold:!0,itemId:L.id}),Ne(S,`${L.id}-body`,L.text,ft(n,2),{color:"dim",indent:2,itemId:L.id}),S.push({key:`${L.id}-blank`,text:" ",itemId:L.id});break;case"tool_group":Ne(S,`${L.id}-header`,`Tools [${bu(L.timestamp)}]`,n,{color:"accent",bold:!0,itemId:L.id}),lm(L.tools).forEach(ee=>OB(S,L.id,ee.tool,ee.count,n,z,re)),S.push({key:`${L.id}-blank`,text:" ",itemId:L.id});break;case"thinking":{Ne(S,`${L.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:L.id});let ee=kR()&&!D&&!re?MB(L.compactText??L.text):void 0;if(ee?.hasMore){Ne(S,`${L.id}-body`,`${ee.summary}${_B}`,ft(n,2),{color:"thinking",indent:2,italic:!0,itemId:L.id}),S.push({key:`${L.id}-blank`,text:" ",itemId:L.id});break}let j=re?oS(L.text,o,D,re):L.compactText??oS(L.text,o,D,re);Ne(S,`${L.id}-body`,j,ft(n,2),{color:"thinking",indent:2,italic:!0,itemId:L.id}),S.push({key:`${L.id}-blank`,text:" ",itemId:L.id});break}case"error":Ne(S,`${L.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:L.id}),Ne(S,`${L.id}-body`,L.text,ft(n,2),{color:"error",indent:2,itemId:L.id}),S.push({key:`${L.id}-blank`,text:" ",itemId:L.id});break;case"info":Ne(S,`${L.id}-body`,`${L.icon??"\u2139"} ${rS(re?L.text:L.compactText??L.text)}`,n,{color:"info",itemId:L.id}),S.push({key:`${L.id}-blank`,text:" ",itemId:L.id});break;case"event":Ne(S,`${L.id}-body`,`${L.icon??">"} ${re?L.text:L.compactText??L.text}`,n,{color:"text",itemId:L.id}),S.push({key:`${L.id}-blank`,text:" ",itemId:L.id});break;case"hint":Ne(S,`${L.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:L.id}),Ne(S,`${L.id}-body`,L.text,ft(n,2),{color:"dim",indent:2,itemId:L.id}),S.push({key:`${L.id}-blank`,text:" ",itemId:L.id});break;case"sidecar":{let ee=L.delivery==="budget-exhausted"?"\u26A1 Sidecar Verifier \u2014 budget exhausted":L.verdict==="blocked"?"\u26A1 Sidecar Verifier \u2014 blocked":"\u26A1 Sidecar Verifier \u2014 revise";Ne(S,`${L.id}-header`,`${ee} [${bu(L.timestamp)}]`,n,{color:"warning",bold:!0,itemId:L.id}),Ne(S,`${L.id}-body`,L.text,ft(n,2),{color:"dim",indent:2,itemId:L.id}),S.push({key:`${L.id}-blank`,text:" ",itemId:L.id});break}default:break}if(q&&m.length>0&&(m.forEach(L=>{if(Ne(S,`iteration-${L.iteration}-header`,`\u2500\u2500 Round ${L.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),L.thinkingSummary){let ee=L.thinkingLength>60?` (${L.thinkingLength} chars total)`:"";Ne(S,`iteration-${L.iteration}-thinking`,`\u{1F4AD} ${L.thinkingSummary}${ee}`,ft(n,1),{color:"thinking",indent:1,italic:!0})}if(L.response){let ee=L.response.slice(0,200);Ne(S,`iteration-${L.iteration}-response`,ee,ft(n,1),{color:"text",indent:1}),L.response.length>200&&Ne(S,`iteration-${L.iteration}-response-more`,`... (${L.response.length} chars total)`,ft(n,1),{color:"dim",indent:1})}L.toolsUsed.length>0&&Ne(S,`iteration-${L.iteration}-tools`,`* tools: ${L.toolsUsed.join(", ")}`,ft(n,1),{color:"accent",indent:1}),fc(S,`iteration-${L.iteration}-blank`)}),Ne(S,"iteration-current-header",`\u2500\u2500 Round ${g} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),fc(S,"iteration-current-blank")),r&&c){let L=oS(c,o,D,re);Ne(S,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),Ne(S,"thinking-stream-body",L,ft(n,2),{color:"thinking",indent:2,italic:!0}),fc(S,"thinking-stream-blank")}if(r){let L="Thinking",ee="",j=AB(I,_),ae=_??"Scout",de=C==="routing"?`[${y?y.toUpperCase():"AMA"} Routing] `:C==="preflight"?`[${y?y.toUpperCase():"AMA"} ${ae}] `:C==="verifying"?`[${y?y.toUpperCase():"AMA"} Verifying] `:v?`[${y?y.toUpperCase():"AMA"} ${_??"Worker"}] `:"",me=d.filter(Q=>Q.status===V.Executing).length,be=d.filter(Q=>Q.status===V.Success).length,pe=d.filter(Q=>Q.status===V.Error).length,we=d.filter(Q=>Q.status===V.Cancelled).length,Pe=d.length>0&&(me>0||!l);if(x)L="Compacting";else if(C==="verifying")ee=de,L="checking agent output";else if(Pe){let Q=[];if(me>0&&Q.push(`${me} running`),be>0&&Q.push(`${be} done`),pe>0&&Q.push(`${pe} error`),we>0&&Q.push(`${we} cancelled`),Q.length===0&&Q.push(`${d.length} tools`),Ne(S,"loading-tools-header",`${de}[Tools] ${Q.join(", ")}`,n,{color:"primary",bold:!0,spinner:me>0}),d.forEach(se=>{NB(S,"loading-tools",se,n)}),fc(S,"loading-tools-blank"),me>0&&!l&&!q)return S}else if($)ee=de||"[Plan] ",L=$;else if(u)ee=de||"[Tool] ",L=j?.startsWith("[Tools]")?j:um(u,h,p);else if(s){ee=de||"[Thinking] ";let Q=E&&R&&E>1?` round ${E}/${R}`:"";L=a>0?`${a} chars${Q}`:j?`${j}${Q}`:`processing${Q}`}else j&&(L=j);q&&Ne(S,"loading-indicator",`${ee}${L}...`,n,{color:"accent",spinner:!0})}if(q&&W.length>0&&(Ne(S,"live-status-header","Live status",n,{color:"dim",bold:!0}),W.forEach((L,ee)=>{Ne(S,`live-status-${ee}`,L,ft(n,2),{color:"dim",indent:2})}),fc(S,"live-status-blank")),l){let L=l.lastIndexOf(`
|
|
59
|
+
`),ee=L>=0?l.slice(0,L+1):"";ee.length>0&&(Ne(S,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),Ne(S,"streaming-body",ee,ft(n,2),{color:"text",indent:2}),fc(S,"streaming-blank"))}return S}i(MR,"buildTranscriptRows");function DB(e,t,n=1e3,r=!1,o=!1,s=!1){return pc(e,t,n,r,void 0,o,s)}i(DB,"buildStaticTranscriptSections");var IR=new WeakMap,bR=new Set(["thinking","tool_group"]);function BB(){return process.env.KODAX_TRANSCRIPT_TIGHT!=="0"}i(BB,"isTightRunSpacingEnabled");function FB(e,t){return BB()?t.map((n,r)=>{let o=e[r],s=e[r+1];if(!o||!s||!bR.has(o.type)||!bR.has(s.type))return n;let a=n.rows,c=a[a.length-1];return c&&c.text===" "&&c.key.endsWith("-blank")?{...n,rows:a.slice(0,-1)}:n}):t}i(FB,"suppressTightRunBlanks");function pc(e,t,n=1e3,r=!1,o,s=!1,a=!1){let c=e.map(l=>{let u=r||!!o?.has(l.id),d=`${t}|${n}|${s?1:0}|${u?1:0}|${kR()?1:0}|${a?1:0}`,p=IR.get(l);if(p!==void 0&&p.sig===d)return p.section;let h={key:l.id,rows:MR({items:[l],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:u,showFullThinking:a})};return IR.set(l,{sig:d,section:h}),h});return FB(e,c)}i(pc,"buildHistoryItemTranscriptSections");function WB(e,t){return{key:e,rows:MR(t)}}i(WB,"buildDynamicTranscriptSection");function fm(e){let{items:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:o=!1,showAllContent:s=!1,showFullThinking:a=!1,windowed:c=!1}=e;if(c)return{staticSections:[],activeItems:t};let l=PB(t),u=t.slice(0,l),d=t.slice(l);return{staticSections:DB(u,n,r,o,s,a),activeItems:d}}i(fm,"buildTranscriptStaticPortion");function pm(e){let{activeItems:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:o=!1,showAllContent:s=!1,showFullThinking:a=!1,expandedItemKeys:c,...l}=e,u=pc(t,n,r,o,c,s,a),d=WB("active-pending",{...l,items:[],managedLiveEvents:[],lastLiveActivityLabel:l.lastLiveActivityLabel,viewportWidth:n,maxLines:r,showAllContent:s,showDetailedTools:o,showFullThinking:a,expandedItemKeys:c}),p=d.rows.length>0?[d]:[];return{sections:u,previewSections:p}}i(pm,"buildTranscriptDynamicPortion");function mm(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:vs(t.sections),previewSections:t.previewSections,previewRows:vs(t.previewSections)}}i(mm,"composeTranscriptRenderModel");function AR(e,t,n){let r=mm(e,t);return n?{...r,staticSections:[n,...r.staticSections]}:r}i(AR,"buildInlinePromptRenderModel");function LR(e,t,n,r){let o=Number.isFinite(r)?Math.max(1,Math.floor(r)):1,s=[...t,...n],a=Math.max(0,s.length-o),c=s.slice(a),l=e.flatMap(h=>h.rows),u=s.slice(0,a).filter(h=>h.spinner!==!0);return{committedSections:[...l,...u].map((h,m)=>({key:`il-${m}`,rows:[{...h,key:`il-${m}`}]})),liveRows:c}}i(LR,"splitInlineLedgerModel");function HB(e){return e.replace(/^(You|Assistant|Tools|System) \[\d{1,2}:\d{2}[^\]]*\]$/u,"$1")}i(HB,"stripHeaderTimestamp");function PR(e){let t=5381;for(let n of e.rows){let r=HB(n.text);for(let o=0;o<n.key.length;o++)t=(t<<5)+t+n.key.charCodeAt(o)|0;t=(t<<5)+t+0|0;for(let o=0;o<r.length;o++)t=(t<<5)+t+r.charCodeAt(o)|0;t=(t<<5)+t+1|0}return{key:e.key,fingerprint:`${t>>>0}`}}i(PR,"identifyInlineCommitSection");function hm(e){let t=fm({items:e.items,viewportWidth:e.viewportWidth,maxLines:e.maxLines,showDetailedTools:e.showDetailedTools,showAllContent:e.showAllContent,showFullThinking:e.showFullThinking,windowed:e.windowed}),{items:n,...r}=e,o=pm({...r,activeItems:t.activeItems});return mm(t,o)}i(hm,"buildTranscriptRenderModel");function vs(e){return e.flatMap(t=>t.rows)}i(vs,"flattenTranscriptSections");function $R(e){let t=5381;for(let n of e.rows){let r=`${n.key}\0${n.text}`;for(let o=0;o<r.length;o++)t=Math.imul(t,33)+r.charCodeAt(o)|0}return{key:e.key,fingerprint:`${e.rows.length}:${(t>>>0).toString(36)}`}}i($R,"identifyTranscriptSection");function iS(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:vs(t),previewSections:[...e.previewSections],previewRows:vs(e.previewSections)}}i(iS,"materializeTranscriptRenderModel");function OR(e,t={}){let{start:n,end:r,viewportTop:o,viewportHeight:s,viewportRows:a,scrollOffset:c=0,windowed:l=!1}=t;if(typeof o=="number"&&typeof s=="number"){let u=Math.max(0,o),d=Math.max(u,o+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?aS(e,a,c):e}i(OR,"resolveVisibleTranscriptRows");var jB=200,UB=50,sS=30;function NR(e,t,n=jB,r=UB){let o=t.current,s=o?e.findIndex(l=>l.id===o.id):-1,a=s>=0?s:o?Math.min(o.idx,Math.max(0,e.length-n)):0;e.length-a>n+r&&(a=e.length-n);let c=e[a];return c&&(o?.id!==c.id||o.idx!==a)?t.current={id:c.id,idx:a}:!c&&o&&(t.current=null),a}i(NR,"computeTranscriptCapStart");function DR(e,t){if(t<=0||e.length===0)return[];let n=0,r=0;for(let o=e.length-1;o>=0;o--)if(e[o]?.type==="user"&&(n++,n>t)){r=o+1;break}return e.slice(r)}i(DR,"sliceHistoryToRecentRounds");function aS(e,t,n=0){if(!t||t<=0)return e;let r=Math.max(0,n),o=Math.max(0,e.length-r),s=Math.max(0,o-t);return e.slice(s,o)}i(aS,"getVisibleTranscriptRows");function BR(e,t,n){if(!t||!n||n<=0)return 0;let r=vs(e),o=e.find(u=>u.key===t);if(!o||o.rows.length===0)return 0;let s=o.rows[0]?.key,a=r.findIndex(u=>u.key===s);if(a===-1)return 0;let c=Math.max(0,a-Math.floor(n/3)),l=Math.min(r.length,c+n);return Math.max(0,r.length-l)}i(BR,"resolveScrollOffsetForTranscriptItem");function FR(e,t){if(t)switch(t){case"warning":return e.colors.warning;case"info":return e.colors.info;case"hint":return e.colors.hint;default:return e.colors[t]}}i(FR,"resolveTranscriptColor");var gm="__transcript_hidden_divider__";function WR(e,t){let n=e===1?"message":"messages";return{id:gm,type:"info",timestamp:t?Math.max(0,t-1):0,text:`${e} earlier ${n} hidden \u2014 press Ctrl+E to show all`,icon:"\u2191"}}i(WR,"buildTranscriptHiddenDivider");function cS(e){return e.id===gm}i(cS,"isTranscriptHiddenDivider");var HR=new fs(500);function GB(e){let t=In(e),n=[],r=[],o=0,s=0;for(let a of t)n.push(o),r.push(s),o+=a.length,s+=yp(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}i(GB,"buildTranscriptTextMetrics");function Ru(e){let t=HR.get(e);if(t)return t;let n=GB(e);return HR.set(e,n),n}i(Ru,"getTranscriptTextMetrics");function yi(e){return Ru(e).length}i(yi,"getTranscriptTextLength");function jR(e){return Ru(e).displayWidth}i(jR,"getTranscriptTextDisplayWidth");function ym(e,t){let n=Ru(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}i(ym,"charAtTranscriptText");function mc(e,t,n){let r=Ru(e),o=Math.max(0,Math.min(r.length,Math.floor(t))),s=typeof n=="number"?Math.max(o,Math.min(r.length,Math.floor(n))):r.length;return r.graphemes.slice(o,s).join("")}i(mc,"sliceTranscriptText");function UR(e,t){let n=Ru(e),r=Math.max(0,Math.floor(t));if(r<=0||n.length===0)return 0;for(let o=0;o<n.length;o+=1){let s=n.visualOffsets[o]??0,a=o+1<n.length?n.visualOffsets[o+1]??n.displayWidth:n.displayWidth;if(r<a||r===s)return o}return n.length}i(UR,"resolveTranscriptTextIndexAtVisualColumn");function Sm(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Sm,"formatTimestamp");function VB(e,t){let n=e.split(`
|
|
60
|
+
`),r=n.slice(0,t),o=n.length>t;return{lines:r,hasMore:o}}i(VB,"truncateLines");function KB(e){switch(e){case V.Scheduled:return"\u25CB";case V.Validating:return"\u25D0";case V.AwaitingApproval:return"\u23F8";case V.Executing:return"\u25CF";case V.Success:return"\u2713";case V.Error:return"\u2717";case V.Cancelled:return"\u2298";default:return"?"}}i(KB,"getToolStatusIcon");function zB(e,t){switch(e){case V.Scheduled:case V.Validating:return t.colors.dim;case V.AwaitingApproval:return t.colors.accent;case V.Executing:return t.colors.primary;case V.Success:return t.colors.success;case V.Error:return t.colors.error;case V.Cancelled:return t.colors.dim;default:return t.colors.text}}i(zB,"getToolStatusColor");var YB=Yn(({item:e,theme:t})=>{let n=no(()=>dm(e.text),[e.text]);return Qe(A,{flexDirection:"column",marginBottom:1,children:[Qe(A,{children:[xe(k,{color:t.colors.primary,bold:!0,children:"You"}),Qe(k,{dimColor:!0,children:[" [",Sm(e.timestamp),"]"]})]}),xe(A,{marginLeft:2,children:xe(k,{color:t.colors.text,children:n})})]})}),XB=Yn(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:o,hasMore:s}=VB(r,n);return Qe(A,{flexDirection:"column",marginBottom:1,children:[Qe(A,{children:[xe(k,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&Qe(lS,{children:[xe(k,{children:" "}),xe(zn,{color:t.colors.accent})]}),Qe(k,{dimColor:!0,children:[" [",Sm(e.timestamp),"]"]})]}),Qe(A,{marginLeft:2,flexDirection:"column",children:[o.map((a,c)=>xe(k,{color:t.colors.text,children:a||" "},c)),s&&Qe(k,{dimColor:!0,children:["... (",r.split(`
|
|
61
|
+
`).length-n," more lines)"]})]})]})}),qB=Yn(({item:e,theme:t})=>Qe(A,{flexDirection:"column",marginBottom:1,children:[Qe(A,{children:[xe(k,{color:t.colors.dim,bold:!0,children:"System"}),Qe(k,{dimColor:!0,children:[" [",Sm(e.timestamp),"]"]})]}),xe(A,{marginLeft:2,children:xe(k,{dimColor:!0,children:e.text})})]})),JB=Yn(({tool:e,count:t=1,theme:n})=>{let r=KB(e.status),o=zB(e.status,n);return Qe(A,{flexDirection:"column",marginLeft:2,children:[Qe(A,{children:[Qe(k,{color:o,children:[r," "]}),xe(k,{color:n.colors.text,bold:!0,children:Iu({tool:e,count:t})})]}),e.error&&xe(A,{marginLeft:2,children:xe(k,{color:n.colors.error,children:e.error})})]})}),QB=Yn(({item:e,theme:t})=>{let n=lm(e.tools);return Qe(A,{flexDirection:"column",marginBottom:1,children:[Qe(A,{children:[xe(k,{color:t.colors.accent,bold:!0,children:"Tools"}),Qe(k,{dimColor:!0,children:[" [",Sm(e.timestamp),"]"]})]}),n.map(r=>xe(JB,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),ZB=Yn(({item:e,theme:t})=>Qe(A,{flexDirection:"column",marginBottom:1,children:[xe(A,{children:xe(k,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),xe(A,{marginLeft:2,children:xe(k,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),eF=Yn(({item:e,theme:t})=>Qe(A,{flexDirection:"column",marginBottom:1,children:[xe(A,{children:Qe(k,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),xe(A,{marginLeft:2,children:xe(k,{color:t.colors.error,children:e.text})})]})),tF=Yn(({item:e,theme:t})=>xe(A,{flexDirection:"column",marginBottom:1,children:Qe(k,{color:t.colors.text,children:[xe(k,{color:t.colors.accent,bold:!0,children:e.icon??">"}),xe(k,{children:" "}),e.compactText??e.text]})})),nF=Yn(({item:e,theme:t})=>xe(A,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:Qe(k,{color:t.colors.info,children:[Qe(k,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),rF=Yn(({item:e,theme:t})=>Qe(A,{flexDirection:"column",marginBottom:1,children:[xe(A,{children:Qe(k,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),xe(A,{marginLeft:2,children:xe(k,{dimColor:!0,children:e.text})})]})),VR=Yn(({item:e,theme:t,maxLines:n=1e3})=>{let r=no(()=>ce("dark"),[]),o=t??r;switch(e.type){case"user":return xe(YB,{item:e,theme:o});case"assistant":return xe(XB,{item:e,theme:o,maxLines:n});case"system":return xe(qB,{item:e,theme:o});case"tool_group":return xe(QB,{item:e,theme:o});case"thinking":return xe(ZB,{item:e,theme:o});case"error":return xe(eF,{item:e,theme:o});case"event":return xe(tF,{item:e,theme:o});case"info":return xe(nF,{item:e,theme:o});case"hint":return xe(rF,{item:e,theme:o});default:return xe(A,{children:xe(k,{dimColor:!0,children:"Unknown item type"})})}});function oF(e,t){if(e.theme!==t.theme||(e.animateSpinners??!0)!==(t.animateSpinners??!0)||(e.selectedItem??!1)!==(t.selectedItem??!1))return!1;let n=e.row,r=t.row;if(n!==r){if(n.key!==r.key||n.text!==r.text||n.color!==r.color||n.bold!==r.bold||n.italic!==r.italic||n.indent!==r.indent||n.spinner!==r.spinner||n.itemId!==r.itemId)return!1}let o=e.selectionRange,s=t.selectionRange;return o===s?!0:!o||!s?!1:o.start===s.start&&o.end===s.end}i(oF,"areTranscriptRowPropsEqual");var KR=Yn(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:o})=>{let s=FR(t,e.color),a=e.text===" "?"":e.text,c=a||" ",l=o&&a?mc(a,o.start,o.end):"",u=o&&a?mc(a,0,o.start):a,d=o&&a?mc(a,o.end):"",p=r&&!o,h=!p&&e.color==="dim",m={bold:e.bold||p,italic:e.italic,dimColor:h};return Qe(A,{marginLeft:e.indent??0,children:[e.spinner&&n&&Qe(lS,{children:[xe(zn,{color:t.colors.accent,theme:t}),xe(k,{children:" "})]}),xe(k,{color:p?t.colors.accent:s,...m,children:o&&a?Qe(lS,{children:[u?xe(k,{color:p?t.colors.accent:s,...m,children:u}):null,xe(k,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:l}),d?xe(k,{color:p?t.colors.accent:s,...m,children:d}):null]}):c})]})},oF),uS=Yn(({section:e,theme:t,animateSpinners:n=!0})=>xe(A,{flexDirection:"column",children:e.rows.map(r=>xe(KR,{row:r,theme:t,animateSpinners:n},r.key))})),Si=i(({items:e,isLoading:t=!1,maxLines:n=1e3,isThinking:r=!1,thinkingCharCount:o=0,thinkingContent:s="",streamingResponse:a="",currentTool:c,activeToolCalls:l,toolInputCharCount:u=0,toolInputContent:d="",iterationHistory:p=[],currentIteration:h=1,isCompacting:m=!1,agentMode:g,managedPhase:x,managedHarnessProfile:y,managedWorkerTitle:C,managedRound:v,managedMaxRounds:_,managedGlobalWorkBudget:E,managedBudgetUsage:R,managedBudgetApprovalRequired:I,lastLiveActivityLabel:W,liveStatusLines:$,viewportRows:D,viewportWidth:z,scrollOffset:re=0,animateSpinners:q=!0,windowed:S=!1,showFullThinking:L=!1,showDetailedTools:ee=!1,showAllContent:j=!1,showLiveProgressRows:ae=!0,selectedItemId:de,expandedItemKeys:me,onMetricsChange:be,onVisibleRowsChange:pe,rendererWindow:we,selectedTextRanges:Pe,transcriptModel:Q,visibleRowsOverride:se})=>{let Te=no(()=>ce("dark"),[]),{stdout:nt}=Qr(),It=z??nt?.columns??80,ze=no(()=>Q??hm({items:e,viewportWidth:It,isLoading:t,maxLines:n,isThinking:r,thinkingCharCount:o,thinkingContent:s,streamingResponse:a,currentTool:c,activeToolCalls:l,toolInputCharCount:u,toolInputContent:d,iterationHistory:p,currentIteration:h,isCompacting:m,managedAgentMode:g,managedPhase:x,managedHarnessProfile:y,managedWorkerTitle:C,managedRound:v,managedMaxRounds:_,managedGlobalWorkBudget:E,managedBudgetUsage:R,managedBudgetApprovalRequired:I,lastLiveActivityLabel:W,liveStatusLines:$,windowed:S,showFullThinking:L,showDetailedTools:ee,showAllContent:j,showLiveProgressRows:ae,expandedItemKeys:me}),[Q,e,It,t,n,r,o,s,a,c,l,u,d,p,h,m,g,x,y,C,v,_,E,R,I,W,$,S,L,ee,j,ae,me]),Ge=ze.staticSections,he=ze.rows,Ie=ze.previewRows,G=no(()=>[...he,...Ie],[Ie,he]),wt=!(G.length>0)&&e.length===0&&!t,Vt=no(()=>S||we||se?G:he,[G,we,he,se,S]),Xe=no(()=>se||OR(Vt,{viewportTop:we?Math.max(0,we.viewportTop):void 0,viewportHeight:we?Math.max(0,we.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:D,scrollOffset:re,windowed:S}),[we,re,D,se,S,Vt]),Lt=no(()=>se||S||we?Xe:G,[G,we,Xe,se,S]),Zt=no(()=>G,[G]),Zn=we?Math.max(0,we.viewportHeight):D;return GR(()=>{be?.({scrollHeight:G.length,viewportHeight:we?Math.max(0,we.viewportHeight):Zn??G.length})},[G.length,Zn,be,we]),GR(()=>{pe?.({rows:Lt,allRows:Zt})},[Zt,pe,Lt]),wt?xe(A,{paddingY:1,children:xe(k,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):Qe(A,{flexDirection:"column",children:[!S&&Ge.length>0&&xe(nc,{items:Ge,children:i(Sn=>xe(uS,{section:Sn,theme:Te,animateSpinners:q},Sn.key),"children")}),Lt.map(Sn=>xe(KR,{row:Sn,theme:Te,animateSpinners:q,selectedItem:de?Sn.key.startsWith(`${de}-`):!1,selectionRange:Pe?.get(Sn.key)},Sn.key))]})},"MessageList");var zR=i(({role:e,content:t})=>{let n=no(()=>ce("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return Qe(A,{flexDirection:"column",marginBottom:1,children:[xe(k,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),xe(k,{children:t})]})},"SimpleMessageDisplay");import{jsx as fS,jsxs as Cm}from"react/jsx-runtime";import TF,{useMemo as pS}from"react";function ku(e,t,n){let r=Bg({triggerPercent:t,triggerTokens:n},e),o=r.config.triggerPercent,s=Math.round(r.triggerTokens/1e3);if(r.absoluteTriggerTokens===void 0)return`@ ${o}% (${s}k)`;let a=Math.round(r.absoluteTriggerTokens/1e3);return`@ min(${o}%, ${a}k) (${s}k)`}i(ku,"formatCompactionPolicy");function YR(e,t,n=0,r){let o=zC(e,n);return Bg({triggerPercent:t,triggerTokens:r},e,o).triggerTokens}i(YR,"resolveCompactionThresholdTokens");var iF="\u{1F504}",sF="\u2588",aF="\u2592",cF="\u2192",lF=" \xB7 ";function uF(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()}}i(uF,"formatReasoningModeShort");function dF(e){if(e)return e==="none"?"off":e}i(dF,"formatEffortShort");function fF(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"}}i(fF,"getReasoningColor");function XR(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(XR,"formatTokenCount");function pF(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${sF.repeat(t)}${aF.repeat(n)}`}i(pF,"createMiniProgressBar");function mF(e,t,n,r,o){if(t===0)return"green";let s=YR(t,n,r,o);return e>=s?"red":e>=s*(2/3)?"yellow":"green"}i(mF,"getContextColor");function hF(e){switch(e.toLowerCase()){case"plan":return"blue";case"accept-edits":return"green";case"auto":case"auto-in-project":return"warning";default:return"magenta"}}i(hF,"getPermissionModeColor");function gF(e,t){let n=Vf(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}i(gF,"buildPermissionModeText");function yF(e){let t=e.toLowerCase();return t.includes("read")||t.includes("view")||t.includes("search")||t.includes("list")||t.includes("find")||t.includes("browser")||t.includes("get")?"Read":t.includes("write")||t.includes("replace")||t.includes("edit")||t.includes("modify")?"Edit":t.includes("command")||t.includes("bash")||t.includes("terminal")?"Bash":t.includes("ask")||t.includes("notify")||t.includes("user")||t.includes("question")?"Ask":t.includes("think")||t.includes("reason")?"Think":e}i(yF,"formatToolAction");function wm(e,t){return t&&t>0?`${e} (${t} chars)`:e}i(wm,"formatThinkingStatus");function xm(e,t,n){let r=yF(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}i(xm,"formatToolStatus");function dS({activeToolCount:e,currentTool:t,isThinkingActive:n,thinkingCharCount:r,isCompacting:o,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(o)return"Compacting";if(c==="routing")return h?`Routing - ${h}`:t?`Routing - ${xm(t,s,a)}`:n?wm("Routing",r):"Routing";if(c==="preflight"){let m=u??"Scout";return h?`${m} - ${h}`:t?`${m} - ${xm(t,s,a)}`:n?wm(m,r):m}if(c==="verifying")return"Verifying";if(l){let m=u??"Worker";if(d===!0&&!h&&!t&&!n){let g=p??0,x=g>1?`waiting for ${g} children`:g===1?"waiting for 1 child":"idle - resuming";return`${m} - ${x}`}return h?`${m} - ${h}`:t?`${m} - ${xm(t,s,a)}`:n?wm(m,r):m}if(h)return h;if(t)return xm(t,s,a);if(n)return wm("Thinking",r)}i(dS,"buildBusyStatusText");function SF({agentMode:e,managedPhase:t,managedHarnessProfile:n,managedRound:r,managedMaxRounds:o,managedGlobalWorkBudget:s,managedBudgetUsage:a,currentIteration:c,maxIter:l}){let u=[];return t==="routing"||t==="preflight"||(n&&r&&o&&r>1&&u.push({label:"Round",current:r,max:o}),n&&s&&typeof a=="number"?u.push({label:"Work",current:a,max:s}):e==="sa"&&c&&l&&u.push({label:"Iter",current:c,max:l})),u}i(SF,"resolveIterationSegments");function wF(e){if(e.length!==0)return`${iF} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(lF)}`}i(wF,"formatLabeledIterationStatus");function xF(e){let{sessionId:t,permissionMode:n,agentMode:r,provider:o,model:s,tokenUsage:a,currentTool:c,activeToolCount:l,thinking:u,isThinkingActive:d,thinkingCharCount:p,reasoningMode:h=u?"auto":"off",effort:m,reasoningEffortLabel:g,isCompacting:x,toolInputCharCount:y,toolInputContent:C,currentIteration:v,maxIter:_,contextUsage:E,learning:R,showBusyStatus:I=!0,managedPhase:W,managedHarnessProfile:$,managedWorkerTitle:D,managedRound:z,managedMaxRounds:re,managedGlobalWorkBudget:q,managedBudgetUsage:S,managedIdleWaiting:L,managedIdleWaitingPendingCount:ee}=e,j=[{id:"agent-mode",text:`KodaX - ${r.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:gF(n,e.autoModeEngine),color:hF(n)}],ae=g??dF(m)??uF(h);j.push({id:"reasoning-mode",text:ae,color:fF(ae)});let de=SF({agentMode:r,managedPhase:W,managedHarnessProfile:$,managedRound:z,managedMaxRounds:re,managedGlobalWorkBudget:q,managedBudgetUsage:S,currentIteration:v,maxIter:_}),me=wF(de);if(me){let pe=Math.max(...de.map(Pe=>Pe.current/Pe.max)),we="green";pe>=.8?we="red":pe>=.5&&(we="yellow"),j.push({id:"iteration-status",text:me,color:we})}j.push({id:"session-id",text:t,color:"dim"});let be=I?dS({activeToolCount:l,currentTool:c,isThinkingActive:d,thinkingCharCount:p,isCompacting:x,toolInputCharCount:y,toolInputContent:C,managedPhase:W,managedHarnessProfile:$,managedWorkerTitle:D,managedIdleWaiting:L,managedIdleWaitingPendingCount:ee}):void 0;if(be&&j.push({id:"busy-status",text:be,color:"dim"}),j.push({id:"provider-model",text:`${o}/${s}`,color:"secondary"}),E&&E.contextWindow!==0){let pe=Math.round(E.currentTokens/E.contextWindow*100),we=XR(E.currentTokens),Pe=XR(E.contextWindow),Q=pF(pe);j.push({id:"context-usage",text:`${we}/${Pe} ${Q} ${pe}%`,color:mF(E.currentTokens,E.contextWindow,E.triggerPercent,E.reservedResponseTokens,E.triggerTokens)})}if(R&&(R.ready>0||R.newlyActive>0||R.attention>0)){let pe=[...R.ready>0?[`${R.ready}R`]:[],...R.newlyActive>0?[`${R.newlyActive}N`]:[],...R.attention>0?[`${R.attention}!`]:[]];j.push({id:"learning",text:`Learn:${pe.join("/")}`,color:R.attention>0||R.ready>0?"yellow":"cyan",tone:R.attention>0||R.ready>0?"warning":"accent"})}return a&&j.push({id:"token-usage",text:`${a.input}${cF}${a.output} (${a.total})`,color:"dim"}),j}i(xF,"buildStatusBarSegments");function Tm(e){let t=xF(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}i(Tm,"buildStatusBarViewModel");function CF(e,t){if(e.color)return t.colors[e.color]??e.color;switch(e.tone){case"primary":return t.colors.primary;case"accent":return t.colors.accent;case"success":return t.colors.success;case"warning":return t.colors.warning;case"error":return t.colors.error;default:return t.colors.dim}}i(CF,"resolveViewModelSegmentColor");var Is=i(({viewModel:e,...t})=>{let n=pS(()=>ce("dark"),[]),r=pS(()=>e??Tm(t),[t,e]);return fS(A,{paddingX:1,children:r.segments.map((o,s)=>Cm(TF.Fragment,{children:[fS(k,{color:CF(o,n),bold:o.bold,children:o.text}),s<r.segments.length-1?fS(k,{dimColor:!0,children:" | "}):null]},o.id))})},"StatusBar"),qR=i(({permissionMode:e,provider:t,model:n})=>{let r=pS(()=>ce("dark"),[]);return Cm(A,{children:[Cm(k,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),Cm(k,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as wi,jsxs as bm}from"react/jsx-runtime";import{useState as mS,useCallback as vm,useMemo as JR}from"react";function Im(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(Im,"generateId");function vF(e){let t={id:e.id,timestamp:e.timestamp};switch(e.role){case"user":return{...t,type:"user",text:e.content};case"assistant":return{...t,type:"assistant",text:e.content};case"system":return{...t,type:"system",text:e.content};default:return{...t,type:"info",text:e.content}}}i(vF,"messageToHistoryItem");var QR=i(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:o="ama"})=>{let{stdout:s}=Qr(),a=JR(()=>ce("dark"),[]),[c,l]=mS({messages:[],isLoading:!1,sessionId:Im()}),[u,d]=mS(null),[p,h]=mS(),m=vm(async C=>{if(!C.trim())return;let v={id:Im(),role:"user",content:C,timestamp:Date.now()};l(_=>({..._,messages:[..._.messages,v],isLoading:!0}));try{await n(C)}catch(_){let E={id:Im(),role:"system",content:`Error: ${_ instanceof Error?_.message:"Unknown error"}`,timestamp:Date.now()};l(R=>({...R,messages:[...R.messages,E],isLoading:!1}))}finally{l(_=>({..._,isLoading:!1}))}},[n]),g=vm((C,v)=>{let _={id:Im(),role:C,content:v,timestamp:Date.now()};l(E=>({...E,messages:[...E.messages,_]}))},[]),x=vm((C,v)=>{d({input:C,output:v,total:C+v})},[]),y=vm(C=>{h(C)},[]);return bm(A,{flexDirection:"column",children:[wi(A,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:wi(Si,{items:c.messages.map(vF),isLoading:c.isLoading})}),wi(A,{flexShrink:0,children:wi(Cs,{onSubmit:i(C=>m(C.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),wi(A,{flexShrink:0,children:wi(Is,{sessionId:c.sessionId,permissionMode:r,agentMode:o,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),ZR=i(({model:e,provider:t,onInput:n})=>{let r=JR(()=>ce("dark"),[]);return bm(A,{flexDirection:"column",children:[bm(A,{marginBottom:1,children:[wi(k,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),bm(k,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),wi(Cs,{onSubmit:i(o=>n(o.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as IF}from"react/jsx-runtime";var Rm=i(({top:e,topRows:t=0,transcript:n,renderTranscriptWindow:r,footer:o,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:x,onWindowChange:y,overscanRows:C})=>IF(Dy,{width:l,top:e,topRows:t,stickyHeader:a,jumpToLatest:c,scrollable:n,renderScrollableWindow:r,overlay:s,bottom:o,scrollTop:u,scrollHeight:d,viewportHeight:p,stickyScroll:h,scrollRef:m,onScrollTopChange:g,onStickyChange:x,onWindowChange:y,overscanRows:C}),"FullscreenTranscriptLayout");import{jsx as ek}from"react/jsx-runtime";function hc({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:o=!1,matchNavigation:s=!1,dismissAction:a}){let c=[];return o&&c.push("\u2190/\u2192 browse"),e&&c.push("C copy"),t&&c.push("I tool input"),n&&c.push("Mouse select copies"),r&&c.push("V details"),s&&c.push("N/Shift+N matches"),a==="clear"&&c.push("Esc clear"),a==="close-search"&&c.push("Esc close search"),c.length>0?c.join(" | "):void 0}i(hc,"buildMessageActionsText");var km=i(({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:o=!1,matchNavigation:s=!1,dismissAction:a})=>{let c=ce("dark"),l=hc({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:r,selectionNavigation:o,matchNavigation:s,dismissAction:a});return l?ek(A,{paddingX:1,children:ek(k,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as tk}from"react/jsx-runtime";function hS({itemSummary:e,itemKind:t,position:n,detailState:r="compact"}){if(!e||!n||n.total<=0)return;let o=r==="expanded"?"expanded":"compact",s=t?`${t}: `:"";return`Selected item ${n.current}/${n.total}: ${s}${e} | ${o}`}i(hS,"buildMessageSelectorText");var nk=i(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let o=ce("dark"),s=hS({itemSummary:e,itemKind:t,position:n,detailState:r});return s?tk(A,{paddingX:1,children:tk(k,{color:o.colors.dim,children:s})}):null},"MessageSelector");import{jsx as gc,jsxs as bF}from"react/jsx-runtime";import{useMemo as rk}from"react";function Em(e,t){return Math.max(1,bn(e.length>0?e.split(`
|
|
62
|
+
`):[""],Math.max(1,t),0,0).visualLines.length)}i(Em,"countWrappedRows");var _m=i(({browse:e,selection:t,search:n,chromeMode:r="inline",...o})=>{let s=r==="inline",a=t?.itemSummary,c=t?.position,l=t?.itemKind,u=t?.detailState??"compact",d=t?.copyCapabilities,p=d?.message??!1,h=d?.toolInput??!1,m=d?.copyOnSelect??!1,g=t?.toggleDetail??!1,x=t?.navigationCapabilities?.selection??!1,y=n?.statusText,C=n?.matches?.length??0,v=n?.surface,_=o.viewportWidth??80,E=Math.max(1,_-2),R=n?.query?.trim()?"close-search":a||p||h||g||x?"clear":void 0,I=hS({itemSummary:a,itemKind:l,position:c,detailState:u}),W=rk(()=>hc({copyMessage:p,copyToolInput:h,copyOnSelect:m,toggleDetail:g,selectionNavigation:x,matchNavigation:!!y&&C>0,dismissAction:R}),[p,h,x,g,R,C,y,m]),$=rk(()=>{if(!s)return 0;let z=0;return e?.hintText&&(z+=Em(e.hintText,E)),I&&(z+=Em(I,E)),W&&(z+=Em(W,E)),y&&(z+=Em(y,E)),v&&(z+=1),z},[W,e?.hintText,E,s,y,v,I]),D=typeof o.viewportRows=="number"?Math.max(1,o.viewportRows-$):o.viewportRows;return bF(A,{flexDirection:"column",flexGrow:o.windowed?0:1,children:[s&&e?.hintText?gc(A,{paddingX:1,children:gc(k,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||h||m||g||x||C>0)?gc(km,{copyMessage:p,copyToolInput:h,copyOnSelect:m,toggleDetail:g,selectionNavigation:x,matchNavigation:!!y&&C>0,dismissAction:R}):null,s&&y?gc(A,{paddingX:1,children:gc(k,{dimColor:!0,children:y})}):null,s?v:null,gc(Si,{...o,viewportRows:D})]})},"TranscriptViewport");import{jsx as ok}from"react/jsx-runtime";var Mm=i(e=>ok(A,{flexDirection:"column",children:ok(Cs,{...e})}),"PromptComposer");import{jsx as bs,jsxs as Am}from"react/jsx-runtime";import ik from"react";var sk=" \xB7 ",Eu=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ce("dark");return t.length===0?null:bs(A,{flexGrow:1,children:t.map((r,o)=>Am(ik.Fragment,{children:[bs(k,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?bs(k,{dimColor:!0,children:sk}):null]},r.id))})},"PromptFooterLeftSide"),_u=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ce("dark");return t.length===0?null:bs(A,{justifyContent:"flex-end",children:t.map((r,o)=>Am(ik.Fragment,{children:[bs(k,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?bs(k,{dimColor:!0,children:sk}):null]},r.id))})},"PromptFooterRightSide"),Mu=i(({left:e,right:t,queued:n,stashNotice:r,notifications:o,inlineNotices:s,activityBar:a,todoSurface:c,composer:l,inlineSuggestions:u,helpSurface:d,taskBar:p,statusLine:h,inlineDialogs:m})=>Am(A,{flexDirection:"column",children:[e||t?Am(A,{paddingX:1,children:[bs(A,{flexGrow:1,children:e}),t]}):null,n,r,o,s,a,c,l,u,m,d,p,h]}),"PromptFooter");import{jsx as gS,jsxs as ak}from"react/jsx-runtime";var Lm=i(({sections:e,title:t="Help"})=>{let n=ce("dark"),r=e.filter(o=>o.items.length>0);return r.length===0?null:ak(A,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[gS(k,{color:n.colors.accent,bold:!0,children:t}),r.map(o=>ak(A,{flexDirection:"column",children:[gS(k,{color:n.colors.primary,bold:!0,children:o.title}),gS(k,{dimColor:!0,children:o.items.map(s=>s.label).join(" | ")})]},o.id))]})},"PromptHelpMenu");import{jsx as ck}from"react/jsx-runtime";import{createContext as dk,useContext as fk,useReducer as RF,useCallback as an,useMemo as kF}from"react";var lk=150;function Lu(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(Lu,"generateId");function Au(e){let t=e.timestamp;return{...e,id:Lu(),timestamp:t!==void 0&&Number.isFinite(t)&&t>=0?t:Date.now()}}i(Au,"createHistoryItem");function uk(e){if(e.length<=lk)return e;let t=0,n=e.length-lk;for(let o=e.length-1;o>=0;o--)if(e[o]?.type==="user"&&(t++,t>50)){n=Math.max(n,o);break}let r=e.slice(n).findIndex(o=>o.type==="user");return r>0&&(n+=r),e.slice(n)}i(uk,"trimHistoryToRounds");function yS(e,t){return e.filter(n=>n.type==="user"&&typeof n.id=="string"&&!t.has(n.id))}i(yS,"selectUncommittedLedgerUserItems");function Pm(e){return{...e,id:Lu(),startTime:Date.now()}}i(Pm,"createToolCall");function EF(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:uk([...e.history,t.payload])};case"BULK_ADD_HISTORY_ITEMS":return{...e,history:uk([...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}}i(EF,"uiReducer");var pk=dk(null),mk=dk(null);function Pu({children:e,initialState:t}){let[n,r]=RF(EF,{...Uf,...t}),o=an(I=>{r({type:"SET_STREAMING_STATE",payload:I})},[]),s=an(I=>{r({type:"APPEND_TO_RESPONSE",payload:I})},[]),a=an(()=>{r({type:"CLEAR_RESPONSE"})},[]),c=an(I=>{let W=Au(I);r({type:"ADD_HISTORY_ITEM",payload:W})},[]),l=an(I=>{I.length!==0&&r({type:"BULK_ADD_HISTORY_ITEMS",payload:I.map(Au)})},[]),u=an((I,W)=>{r({type:"UPDATE_HISTORY_ITEM",payload:{id:I,updates:W}})},[]),d=an(()=>{r({type:"CLEAR_HISTORY"})},[]),p=an(I=>{let W=Pm(I);return r({type:"ADD_TOOL_CALL",payload:W}),W.id},[]),h=an((I,W)=>{r({type:"UPDATE_TOOL_CALL",payload:{id:I,updates:W}})},[]),m=an(()=>{r({type:"CLEAR_TOOL_CALLS"})},[]),g=an(I=>{r({type:"SET_SESSION_ID",payload:I})},[]),x=an(I=>{r({type:"SET_MODE",payload:I})},[]),y=an(I=>{r({type:"SET_PROVIDER",payload:I})},[]),C=an(I=>{r({type:"SET_MODEL",payload:I})},[]),v=an(I=>{r({type:"SET_TOKEN_USAGE",payload:I})},[]),_=an(I=>{r({type:"SET_ERROR",payload:I})},[]),E=an(I=>{r({type:"SET_LOADING",payload:I})},[]),R=kF(()=>({setStreamingState:o,appendToResponse:s,clearResponse:a,addHistoryItem:c,addHistoryItems:l,updateHistoryItem:u,clearHistory:d,addToolCall:p,updateToolCall:h,clearToolCalls:m,setSessionId:g,setMode:x,setProvider:y,setModel:C,setTokenUsage:v,setError:_,setLoading:E}),[o,s,a,c,l,u,d,p,h,m,g,x,y,C,v,_,E]);return ck(pk.Provider,{value:n,children:ck(mk.Provider,{value:R,children:e})})}i(Pu,"UIStateProvider");function yc(){let e=fk(pk);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}i(yc,"useUIState");function Sc(){let e=fk(mk);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}i(Sc,"useUIActions");function SS(){let e=yc(),t=Sc();return{state:e,actions:t}}i(SS,"useUI");function wS(){return ce()}i(wS,"useTheme");import{jsxs as xi,jsx as $m,Fragment as _F}from"react/jsx-runtime";import{useMemo as MF}from"react";var AF=80,LF=7,PF={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function $F(e,t,n){if(t<=n)return{start:0,end:t};let r=Math.floor(n/2),o=e-r,s=o+n;return o<0?(o=0,s=n):s>t&&(s=t,o=t-n),{start:o,end:s}}i($F,"getVisibleRange");function OF({suggestion:e,isSelected:t,width:n}){let r=wS(),o=e.icon||e.type&&PF[e.type]||"",s=o?Lr(o)+1:0,a=Lr(e.displayText||e.text),c=e.description?Lr(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,d=Math.max(0,u),p=Va(e.displayText||e.text,l),h=e.description?Va(e.description,d):"";return xi(A,{children:[o&&xi(k,{color:t?r.colors.accent:r.colors.dim,children:[o," "]}),$m(k,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),h&&xi(_F,{children:[$m(k,{children:" "}),$m(k,{color:r.colors.dim,children:Va(e.description||"",d)})]}),t&&xi(k,{color:r.colors.accent,children:[" ","\u25C0"]})]})}i(OF,"SuggestionItem");function $u({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=LF,width:o=AF,showCount:s=!1}){let a=wS();if(!n||e.length===0)return null;let{start:c,end:l}=MF(()=>$F(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return xi(A,{flexDirection:"column",marginLeft:2,children:[c>0&&xi(k,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((d,p)=>{let m=c+p===t;return $m(OF,{suggestion:d,isSelected:m,width:o},d.id)}),l<e.length&&xi(k,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&xi(k,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}i($u,"SuggestionsDisplay");import{jsx as wc,jsxs as NF}from"react/jsx-runtime";var Om=i(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let o=gi(),s=ce("dark");if(n)return null;if(!o)return e?wc(A,{height:8}):null;let{state:a,suggestions:c}=o;return a.visible&&c.length>0?r==="overlay"?NF(A,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[wc(k,{color:s.colors.accent,bold:!0,children:"Suggestions"}),wc($u,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):wc(A,{height:8,children:wc($u,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?wc(A,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as $r,jsx as fr,Fragment as xS}from"react/jsx-runtime";import DF,{useEffect as BF,useState as FF}from"react";var xc=15,hk=Math.max(1,xc-2),Nm=i(({confirm:e,request:t})=>e?$r(A,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[$r(k,{color:"yellow",bold:!0,children:[ne("dialog.confirm")," ",e.prompt]}),e.planContent?fr(WF,{content:e.planContent}):null,e.instruction?fr(k,{dimColor:!0,children:e.instruction}):null]}):t?$r(A,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?$r(xS,{children:[$r(k,{color:"cyan",bold:!0,children:[ne("dialog.select")," ",t.title]}),(()=>{let n=t.options??[],r=t.visibleSelectOptions??5,o=t.focusedIndex??0,s=n.length,a=0;if(s>r){let u=Math.floor(r/2);a=Math.max(0,Math.min(o-u,s-r))}let c=a,l=Math.max(0,s-a-r);return $r(xS,{children:[c>0?fr(k,{dimColor:!0,children:ne("select.more_above",{count:c})}):null,n.slice(a,a+r).map((u,d)=>{let p=a+d,h=p===o,m=t.selectedIndices?.includes(p)??!1,g=h?"\u276F ":" ",x=m?" \u2713":"",y=u.description?` - ${u.description}`:"";return fr(k,{color:h?"cyan":void 0,dimColor:!h,children:`${g}${u.label}${y}${x}`},`${u.value}-${p}`)}),l>0?fr(k,{dimColor:!0,children:ne("select.more_below",{count:l})}):null]})})(),fr(k,{dimColor:!0,children:t.multiSelect?ne("select.multiselect_hint"):ne("select.navigate_hint")})]}):$r(xS,{children:[$r(k,{color:"cyan",bold:!0,children:[ne("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0?fr(k,{dimColor:!0,children:`${ne("input.default")} ${t.defaultValue}`}):null,fr(k,{dimColor:!0,children:`${ne("input.value")} ${t.buffer||ne("input.type_response")}`}),fr(k,{dimColor:!0,children:ne("select.confirm_hint")})]}),t.error?fr(k,{color:"red",children:t.error}):null]}):null,"DialogSurface"),WF=i(({content:e})=>{let t=DF.useMemo(()=>e.split(`
|
|
63
|
+
`),[e]),n=t.length,r=n>xc,[o,s]=FF(0);BF(()=>{s(u=>{let d=Math.max(0,n-xc);return u>d?d:u})},[n]),rc((u,d)=>{if(!r)return;let p=Math.max(0,n-xc);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-hk)):d.pageDown&&s(h=>Math.min(p,h+hk))},{isActive:!0});let a=t.slice(o,o+xc),c=o,l=Math.max(0,n-o-xc);return $r(A,{flexDirection:"column",marginTop:1,children:[r&&c>0?$r(k,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((u,d)=>fr(k,{children:u},`plan-line-${o+d}`)),r&&l>0?$r(k,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,r?fr(k,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as Ou,jsx as HF}from"react/jsx-runtime";function gk(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}i(gk,"normalizePendingPreview");function yk(e){if(e.length===0)return;let t=gk(e[e.length-1]??"");return e.length===1?`Queued 1 follow-up: ${t} (Esc removes it)`:`Queued ${e.length} follow-ups. Latest: ${t} (Esc removes latest)`}i(yk,"formatPendingInputsSummary");function TS(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:gk(n)}))}i(TS,"formatPendingInputsLines");function Sk(e){let t=TS(e);return t.length===0?void 0:[...t.map(o=>`\u23F3 [${o.index}/${o.total}] ${o.preview}`)," \u2191 pull all into editor \xB7 Esc drops latest"].join(`
|
|
64
|
+
`)}i(Sk,"formatPendingInputsBudgetText");var Dm=i(({pendingInputs:e})=>{let t=TS(e);if(t.length===0)return null;let n=ce("dark");return Ou(A,{flexDirection:"column",children:[t.map(r=>Ou(A,{children:[Ou(k,{color:n.colors.hint,children:["\u23F3"," "]}),Ou(k,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),HF(A,{children:Ou(k,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as wk}from"react/jsx-runtime";function jF(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}i(jF,"resolveNotificationColor");var Nu=i(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=ce("dark");return t.length===0?null:wk(A,{flexDirection:"column",paddingX:1,children:t.map(r=>wk(k,{color:jF(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as xk}from"react/jsx-runtime";var Bm=i(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=ce("dark");return xk(A,{flexDirection:"column",paddingX:1,children:t.map((r,o)=>xk(k,{color:n.colors.dim,children:r},`${r}-${o}`))})},"StatusNoticesSurface");import{jsxs as Tk,jsx as UF}from"react/jsx-runtime";var Du=i(({text:e})=>{let t=e?.trim();if(!t)return null;let n=ce("dark");return Tk(A,{paddingX:1,children:[Tk(k,{color:n.colors.hint,children:["\u22EF"," "]}),UF(k,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as Rs,jsxs as GF}from"react/jsx-runtime";function Ck({text:e,accent:t=!1,selected:n=!1}){let r=ce("dark");return Rs(A,{marginRight:1,children:Rs(k,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}i(Ck,"Pill");var Bu=i(({items:e,overflowLabel:t,ctaHint:n,showSpinner:r=!1})=>{let o=e.filter(s=>s.label.trim().length>0);return o.length===0&&!t&&!n&&!r?null:GF(A,{flexDirection:"row",paddingX:1,children:[r?Rs(A,{marginRight:1,children:Rs(zn,{})}):null,o.map(s=>Rs(Ck,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?Rs(Ck,{text:t}):null,n?Rs(k,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import{jsx as Fu,jsxs as qF}from"react/jsx-runtime";import VF from"string-width";var CS=9,vS=3,vk=160,KF={shouldRender:!1,activeCount:0,rows:[]};function Ik(e,t=CS){let n=VF(e);return n>=t?e:`${e}${" ".repeat(t-n)}`}i(Ik,"padChildActivitySymbol");function IS(e){let t=e.replace(/\s+/gu," ").trim();return t.length<=vk?t:`${t.slice(0,vk-3)}...`}i(IS,"truncateChildActivityDetail");function Fm(e){return!!(e?.liveOnly===!0&&(e.workflowCorrelation||e.childAgentId))}i(Fm,"shouldRouteToChildActivity");function bk(e,t){return!!(e?.liveOnly===!0&&e.workflowCorrelation?.workflowRunId&&t&&e.workflowCorrelation.workflowRunId===t)}i(bk,"shouldRouteWorkflowLiveOnlyNotice");function Rk(e){return!e.isTranscriptMode&&e.childActivityVisible&&(e.isLoading||e.hasWorkflowLiveSurface)}i(Rk,"shouldShowChildActivitySurface");function bS(e){let t=e.childAgentId??e.workflowCorrelation?.childAgentId??"child",n=e.workflowCorrelation?.workflowRunId;return n?`${n}:${t}`:t}i(bS,"childActivityId");function kk(e){return e.childAgentName??e.childAgentId??e.workflowCorrelation?.childAgentId??"child"}i(kk,"childActivityLabel");function Ek(e){return e.workflowCorrelation?"workflow":"normal"}i(Ek,"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 IS(`${e}${r}`)}i(_k,"toolActivityDetail");function Mk(e,t){return e==="tool"&&["thinking","assistant","stream"].includes(t)}i(Mk,"suppressesChurnOverToolAction");function zF(e){let t=Math.max(0,Math.floor(e/1e3)),n=t%60,r=Math.floor(t/60)%60,o=Math.floor(t/3600);return o>0?`${o}h${String(r).padStart(2,"0")}m`:r>0?`${r}m${String(n).padStart(2,"0")}s`:`${n}s`}i(zF,"formatChildActivityElapsed");function YF(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"}}i(YF,"kindLabel");function XF(e,t){let n=e.label.trim()||"child",r=e.startedAt!==void 0?` \xB7 ${zF(t-e.startedAt)}`:"",o=e.detail.trim(),s=o.length>0?`: ${o}`:"";return`${n}${r} - ${YF(e.kind)}${s}`}i(XF,"rowText");function Ak(e,t=vS,n=Date.now()){let r=e.filter(u=>u.status==="running");if(r.length===0)return KF;let o=Math.max(1,Math.floor(t)),s=[],a=r.length>o&&o>1?o-1:o,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:XF(u,n),isActive:!0});let l=r.length-c.length;return l>0&&s.length<o&&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,o)}}i(Ak,"buildChildActivityViewModel");var Lk=CS;function JF(e){let t=ce("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;default:return t.colors.dim}}i(JF,"resolveSymbolColor");var QF=i(({row:e})=>{let t=JF(e.symbolColor);return qF(A,{flexDirection:"row",children:[Fu(A,{width:Lk,flexShrink:0,children:Fu(k,{color:t,bold:e.isActive,wrap:"truncate",children:Ik(e.symbol,Lk)})}),Fu(k,{color:e.kind==="summary"?ce("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"ChildActivityRowView");function Wm(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}i(Wm,"measureChildActivitySurfaceRows");var Hm=i(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:Fu(A,{flexDirection:"column",flexGrow:1,children:e.rows.map(t=>Fu(QF,{row:t},`${t.kind}-${t.id}`))}),"ChildActivitySurface");import Pk,{createContext as Nk,useContext as Dk,useReducer as ZF,useCallback as it,useRef as $k,useEffect as Ok}from"react";function eW(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}i(eW,"isPendingPromptForAgent");function ES(e){return ar().getSnapshot().filter(t=>eW(t,e))}i(ES,"getPendingPrompts");function RS(e){return ES(e).map(t=>t.content)}i(RS,"getPendingPromptContents");var kS={state:Er.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 jm(e={}){let t=i(()=>e.getPendingInputAgentId?.(),"getPendingInputAgentId"),n={...kS,pendingInputs:RS(t())},r=new Set,o="",s="",a=0,c=null,l=!1,u=80,d=i(()=>{for(let y of r)y(n)},"notify"),p=i(()=>{let y=RS(t());if(y.length===n.pendingInputs.length){let C=!0;for(let v=0;v<y.length;v++)if(y[v]!==n.pendingInputs[v]){C=!1;break}if(C)return}n={...n,pendingInputs:y},d()},"syncReactStateFromQueue"),h=ar().subscribe(()=>{p()}),m=i(()=>ar().dequeue({agentId:t(),maxPriority:"user",mode:"prompt"}).map(C=>C.content),"drainOurSlice"),g=i(()=>{if(c&&(clearTimeout(c),c=null),o||s||a>0){let C=n.thinkingContent+s,v=s?C.length:n.thinkingCharCount+a;n={...n,currentResponse:n.currentResponse+o,thinkingContent:C,thinkingCharCount:v,...s||a>0?{isThinking:!0}:{}},o="",s="",a=0,d()}},"flushPendingUpdates"),x=i(()=>{c||(c=setTimeout(g,u))},"scheduleFlush");return{getState:i(()=>n,"getState"),setState:i(y=>{g(),n={...n,state:y},d()},"setState"),startStreaming:i(()=>{l=!1,o="",s="",a=0,c&&(clearTimeout(c),c=null),n={...n,state:Er.Responding,currentResponse:"",abortController:new AbortController,error:void 0,roundStartedAt:Date.now()},d()},"startStreaming"),stopStreaming:i(()=>{g(),n={...n,state:Er.Idle,abortController:void 0,roundStartedAt:null},d()},"stopStreaming"),appendResponse:i(y=>{l||(o+=y,x())},"appendResponse"),clearResponse:i(()=>{g(),n={...n,currentResponse:""},d()},"clearResponse"),setError:i(y=>{g(),n={...n,error:y,state:y?Er.Idle:n.state},d()},"setError"),abort:i(y=>{l=!0,g(),n.abortController?.abort(),o="",s="",a=0,c&&(clearTimeout(c),c=null),y?.preservePendingInputs||m(),n={...n,state:Er.Idle,abortController:void 0,roundStartedAt:null},d()},"abort"),reset:i(()=>{l=!0,g(),n.abortController?.abort(),o="",s="",a=0,c&&(clearTimeout(c),c=null),m(),n={...kS,pendingInputs:RS(t())},l=!1,d()},"reset"),isStreaming:i(()=>n.state===Er.Responding||n.state===Er.WaitingForConfirmation,"isStreaming"),subscribe:i(y=>(r.add(y),()=>{r.delete(y)}),"subscribe"),startThinking:i(()=>{g(),n={...n,isThinking:!0,thinkingCharCount:0,thinkingContent:""},d()},"startThinking"),appendThinkingChars:i(y=>{l||(a+=y,x())},"appendThinkingChars"),appendThinkingContent:i(y=>{l||(s+=y,x())},"appendThinkingContent"),stopThinking:i(()=>{g(),n={...n,isThinking:!1,thinkingCharCount:0},d()},"stopThinking"),clearThinkingContent:i(()=>{g(),n={...n,isThinking:!1,thinkingCharCount:0,thinkingContent:""},d()},"clearThinkingContent"),setCurrentTool:i(y=>{g(),n={...n,currentTool:y,toolInputCharCount:0,toolInputContent:""},d()},"setCurrentTool"),appendToolInputChars:i(y=>{n={...n,toolInputCharCount:n.toolInputCharCount+y},d()},"appendToolInputChars"),appendToolInputContent:i(y=>{n.toolInputContent.length<240&&(n={...n,toolInputContent:(n.toolInputContent+y).slice(0,240)},d())},"appendToolInputContent"),clearToolInputContent:i(()=>{n={...n,toolInputContent:""},d()},"clearToolInputContent"),getSignal:i(()=>n.abortController?.signal,"getSignal"),getFullResponse:i(()=>n.currentResponse+o,"getFullResponse"),getThinkingContent:i(()=>n.thinkingContent+s,"getThinkingContent"),startNewIteration:i(y=>{g(),n.thinkingContent||n.currentResponse?n={...n,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:y}:n={...n,currentIteration:y},d()},"startNewIteration"),clearIterationHistory:i(()=>{g(),n={...n,iterationHistory:[],currentIteration:1,maxIter:kS.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},d()},"clearIterationHistory"),setMaxIter:i(y=>{g(),n={...n,maxIter:y},d()},"setMaxIter"),startCompacting:i(()=>{g(),n={...n,isCompacting:!0},d()},"startCompacting"),stopCompacting:i(()=>{g(),n={...n,isCompacting:!1},d()},"stopCompacting"),addPendingInput:i(y=>{let C=y.trim();C&&(ES(t()).length>=5||(g(),ar().enqueue({agentId:t(),priority:"user",mode:"prompt",content:C})))},"addPendingInput"),removeLastPendingInput:i(()=>{let y=ES(t()),C=y[y.length-1];C&&(g(),ar().dequeue({agentId:t(),maxPriority:"user",mode:"prompt",id:C.id}))},"removeLastPendingInput"),shiftPendingInput:i(()=>(g(),ar().dequeue({agentId:t(),maxPriority:"user",mode:"prompt",limit:1})[0]?.content),"shiftPendingInput"),clearPendingInputs:i(()=>{g(),m()},"clearPendingInputs"),consumePendingInputs:i(()=>(g(),m()),"consumePendingInputs"),dispose:i(()=>{h()},"dispose")}}i(jm,"createStreamingManager");var Bk=Nk(null),Fk=Nk(null);function Hu({children:e,onStateChange:t,getPendingInputAgentId:n}){let r=$k(n);r.current=n;let o=$k(void 0);o.current||(o.current=jm({getPendingInputAgentId:i(()=>r.current?.(),"getPendingInputAgentId")}));let s=o.current,[,a]=ZF(pe=>pe+1,0);Ok(()=>s.subscribe(we=>{a(),t?.(we)}),[s,t]),Ok(()=>()=>{s.dispose()},[s]);let c=it(()=>{s.startStreaming()},[]),l=it(()=>{s.stopStreaming()},[]),u=it(pe=>{s.appendResponse(pe)},[]),d=it(()=>{s.clearResponse()},[]),p=it(pe=>{s.setError(pe)},[]),h=it(pe=>{s.abort(pe)},[]),m=it(()=>{s.reset()},[]),g=it(()=>{s.startThinking()},[]),x=it(pe=>{s.appendThinkingChars(pe)},[]),y=it(pe=>{s.appendThinkingContent(pe)},[]),C=it(()=>{s.stopThinking()},[]),v=it(()=>{s.clearThinkingContent()},[]),_=it(pe=>{s.setCurrentTool(pe)},[]),E=it(pe=>{s.appendToolInputChars(pe)},[]),R=it(pe=>{s.appendToolInputContent(pe)},[]),I=it(()=>{s.clearToolInputContent()},[]),W=it(()=>s.getSignal(),[]),$=it(()=>s.getFullResponse(),[]),D=it(()=>s.getThinkingContent(),[]),z=it(pe=>{s.startNewIteration(pe)},[]),re=it(()=>{s.clearIterationHistory()},[]),q=it(pe=>{s.setMaxIter(pe)},[]),S=it(()=>{s.startCompacting()},[]),L=it(()=>{s.stopCompacting()},[]),ee=it(pe=>{s.addPendingInput(pe)},[]),j=it(()=>{s.removeLastPendingInput()},[]),ae=it(()=>s.shiftPendingInput(),[]),de=it(()=>{s.clearPendingInputs()},[]),me=it(()=>s.consumePendingInputs(),[]),be={startStreaming:c,stopStreaming:l,appendResponse:u,clearResponse:d,setError:p,abort:h,reset:m,startThinking:g,appendThinkingChars:x,appendThinkingContent:y,stopThinking:C,clearThinkingContent:v,setCurrentTool:_,appendToolInputChars:E,appendToolInputContent:R,clearToolInputContent:I,getSignal:W,getFullResponse:$,getThinkingContent:D,startNewIteration:z,clearIterationHistory:re,setMaxIter:q,startCompacting:S,stopCompacting:L,addPendingInput:ee,removeLastPendingInput:j,shiftPendingInput:ae,clearPendingInputs:de,consumePendingInputs:me};return Pk.createElement(Bk.Provider,{value:s.getState()},Pk.createElement(Fk.Provider,{value:be},e))}i(Hu,"StreamingProvider");function Tc(){let e=Dk(Bk);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}i(Tc,"useStreamingState");function Cc(){let e=Dk(Fk);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}i(Cc,"useStreamingActions");function _S(){let e=Tc(),t=Cc(),n=e.state===Er.Responding||e.state===Er.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}i(_S,"useStreaming");import{useCallback as tW,useRef as nW}from"react";var rW=500;function Wk(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:o=!0}=e,s=nW(0),{exit:a}=Zr(),c=tW(l=>{if(!o)return!1;if(l.name==="escape"){let u=Date.now(),d=u-s.current<rW;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)},[o,a,r,n,t]);return Kn(c,{isActive:o}),{lastEscTime:s.current}}i(Wk,"useKeypress");function Hk(e){return{is:i((t,n)=>!(e.name!==t||n?.ctrl!==void 0&&e.ctrl!==n.ctrl||n?.shift!==void 0&&e.shift!==n.shift||n?.meta!==void 0&&e.meta!==n.meta),"is"),isCtrl:i(t=>e.ctrl&&e.name===t,"isCtrl"),isShift:i(t=>e.shift&&e.name===t,"isShift"),isArrow:i(()=>["up","down","left","right"].includes(e.name),"isArrow"),isChar:i(()=>e.sequence?.length===1&&!e.ctrl&&!e.meta,"isChar"),getChar:i(()=>e.sequence?.length===1?e.sequence:null,"getChar")}}i(Hk,"createKeyMatcher");import{useCallback as jk,useSyncExternalStore as oW}from"react";function iW(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}i(iW,"isQueuedPromptForAgent");var MS=null,Um=new Map;function sW(e){let t=ar().getSnapshot();t!==MS&&(MS=t,Um.clear());let n=Um.get(e);if(n!==void 0)return n;let r=Object.freeze(t.filter(o=>iW(o,e)));return Um.set(e,r),r}i(sW,"getQueueSliceSnapshot");function AS(e){let t=jk(r=>ar().subscribe(r),[]),n=jk(()=>sW(e),[e]);return oW(t,n,n)}i(AS,"useQueuedPrompts");function Uk(e){return AS(e).map(n=>n.content)}i(Uk,"useQueuedPromptContents");function Gk(){MS=null,Um.clear()}i(Gk,"_resetQueuedPromptsCacheForTests");var vc="Runtime state: run active until this approval is resolved.";function Gm(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."}}i(Gm,"resolveReplRuntimePermissionDecision");function Ic(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}:{}}}i(Ic,"toReplRuntimeAutoModeSettings");async function bc(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??ks(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}i(bc,"createInteractiveContext");function ks(){return rv()}i(ks,"generateSessionId");function Or(e){e.lastAccessed=new Date().toISOString()}i(Or,"touchContext");import ju from"node:fs";import ro from"node:os";import gn from"node:path";var aW=new Set(["write","edit","multi_edit","insert_after_anchor"]),cW=new Set(["read","grep","glob"]),Yk=new Set([".ssh",".aws",".azure",".gnupg",".kube",".docker",".kodax",".agents",".codex",".claude",".gemini",".direnv",".terraform.d",".password-store"]),lW=new Set([".env",".envrc",".pgpass",".npmrc",".pypirc",".netrc",".git-credentials","credentials","credentials.json","application_default_credentials.json","id_rsa","id_ed25519",".gitconfig",".terraformrc",".condarc",".bashrc",".bash_profile",".zshrc",".zprofile",".profile",".bash_history",".zsh_history"]),uW=new Set([".env.example",".env.sample",".env.template"]),LS=/(?:^|_)(?:api_?key|access_?key|secret|token|password|passwd|credentials?|private_?key|signing_?key|encryption_?key|auth|cookie|pat|jwt|database_?url|db_?url|redis_?url|mongodb_?url|connection_?string|sentry_?dsn)(?:_|$)|^(?:pgpassword|mysql_pwd|kubeconfig|git_askpass)$/i,PS=/^(?:_|psitem|true|false|null|lastexitcode|path|pathext|home|pwd|oldpwd|temp|tmp|tmpdir|userprofile|homedrive|homepath|username|userdomain|computername|hostname|logname|user|os|comspec|systemroot|systemdrive|windir|processor_architecture|processor_identifier|processor_level|processor_revision|number_of_processors|psmodulepath|psversiontable|term|colorterm|lang|lc_(?:all|ctype)|shell)$/i,dW=/credential|extraheader|oauth|token|password|passwd|secret|askpass|sslkey|cookie|proxy/i,fW=/^(?:remote\..+\.(?:url|pushurl)|submodule\..+\.url|url\..+\.(?:insteadof|pushinsteadof))$/i,pW=/^\^user\\\.(?:(?:name|email)|\((?:\?:)?name\|email\))\$$/i,Xk=new Set(["cat","type","get-content","head","tail","less","more","wc","fc"]),mW=new Set(["rg","ripgrep","grep","egrep","fgrep","findstr","select-string","sed","awk"]),hW={"get-childitem":"get-childitem",gci:"get-childitem",dir:"get-childitem",ls:"get-childitem","get-item":"get-item",gi:"get-item","get-content":"get-content",gc:"get-content",cat:"get-content",type:"get-content","select-string":"select-string",sls:"select-string","get-variable":"get-variable",gv:"get-variable"},gW=new Set(["allmatches","casesensitive","directory","file","followsymlink","force","hidden","list","name","notmatch","quiet","raw","readonly","recurse","simplematch","stream","system","wait"]),yW=["erroraction","errorvariable","informationaction","informationvariable","outbuffer","outvariable","pipelinevariable","progressaction","warningaction","warningvariable"],SW=new Set(["ea","ev","infa","iv","ob","ov","pv","proga","wa","wv"]),Vk=new Set(["debug","verbose"]),qk={"get-content":["path","literalpath","filter","include","exclude","delimiter","encoding","readcount","totalcount","tail","raw","wait","stream","credential"],"select-string":["path","literalpath","include","exclude","pattern","simplematch","casesensitive","quiet","list","allmatches","notmatch","encoding","context","raw","culture","inputobject"],"get-childitem":["path","literalpath","filter","include","exclude","recurse","file","directory","force","name","depth","attributes","hidden","readonly","system","followsymlink"],"get-item":["path","literalpath","filter","include","exclude","force","credential"],"get-variable":["name","valueonly","scope","include","exclude"]},wW=new Set(["-g","-s","--format","--pretty","--date","--encoding","--diff-algorithm","--word-diff-regex","--diff-filter","--find-object","--line-prefix","--grep","--author","--committer","--since","--after","--until","--before","--max-count","-n","--skip","--min-parents","--max-parents"]),xW=new Set(["rm","rmdir","mkdir","touch","mv","move","ren","del","erase","rd","cp","copy","chmod","chown","dd","tee","remove-item","set-content","add-content","out-file","new-item","copy-item","move-item","rename-item","ni"]),TW=new Set(["add","remove","rm","rename","set-head","set-branches","set-url","prune","update"]),CW=new Set(["-d","-m","-c","-f","--force","--delete","--move","--copy","--edit-description","--set-upstream-to","--unset-upstream","--create-reflog","--track","--no-track","--recurse-submodules"]),vW=new Set(["-a","--annotate","-s","--sign","-u","--local-user","-d","--delete","-f","--force","-m","--message","-F","--file","--create-reflog"].map(e=>e.toLowerCase()));function Gu(e){let t=ro.tmpdir(),n=[[/^%temp%/i,t],[/^%tmp%/i,t],[/^\$env:temp\b/i,t],[/^\$env:tmp\b/i,t],[/^\$tmpdir\b/i,t],[/^\$temp\b/i,t],[/^\$tmp\b/i,t]],r=e==="~"?ro.homedir():/^~[\\/]/.test(e)?gn.join(ro.homedir(),e.slice(2)):e,o=/^(?:\$\{HOME\}|\$HOME|\$env:(?:home|userprofile)|%userprofile%)(?=$|[\\/])/i;r=r.replace(o,ro.homedir());for(let[s,a]of n)s.test(r)&&(r=r.replace(s,a));return r}i(Gu,"expandPermissionPath");function IW(e){let t=Gu(e);if(!(/[$%*?`^]/.test(t)||/![^!\r\n]+!/.test(t)||/^~/.test(t)))return t}i(IW,"normalizeShellTarget");function NS(e){return/^(?:%temp%|%tmp%|\$env:(?:temp|tmp)|\$\{env:(?:temp|tmp)\}|\$\{(?:tmpdir|temp|tmp)\}|\$(?:tmpdir|temp|tmp))(?=$|[\\/])/i.test(e)}i(NS,"hasTempEnvironmentPathPrefix");function bW(e){let t=Gu(e);if(!(/[$%`{}^]/.test(t)||/![^!\r\n]+!/.test(t)||/^~/.test(t)))return t}i(bW,"normalizeLiteralShellTarget");function Km(e){let t=Gu(e);return/[$%*?`^\[\]{}]/.test(t)||/![^!\r\n]+!/.test(t)||/^~/.test(t)||/^:\([^)]*\battr(?::|=|\s)/i.test(t)}i(Km,"hasShellReadExpansion");function hn(e){return`\${search-filter:${e}}`}i(hn,"unresolvedSearchFilterTarget");function Jk(e){let t=new Set,n=new Set;for(let r of e.statements)for(let o of r.stages){let s=new Set,a=Rn(o);if(!a){for(let c of o.argv)n.add(c);continue}for(let c=1;c<o.argv.length;c+=1){let l=o.argv[c]??"",u=Ti(a,l);if(u?.name==="literalpath"){t.add(u.value),t.add(":"+u.value),s.add(c);continue}if(Ci(a,l)!=="literalpath")continue;let d=o.argv[c+1];d&&(t.add(d),s.add(c+1)),c+=1}for(let c=0;c<o.argv.length;c+=1){if(s.has(c))continue;let l=o.argv[c]??"";n.add(l);let u=Math.max(l.indexOf(":"),l.indexOf("="));u>0&&n.add(l.slice(u+1))}}return new Set([...t].filter(r=>!n.has(r)))}i(Jk,"collectLiteralReadTargets");function Rn(e){return hW[vt(e)]}i(Rn,"canonicalPowerShellReadExecutable");function RW(e){let t=vt(e);return t.includes("-")||["gci","gi","gc","sls","gv"].includes(t)}i(RW,"isUnambiguousPowerShellReadStage");function Qk(e){return Rn(e)!==void 0&&e.argv.slice(1).some(t=>/^@(?:(?:global|script|local|private):)?[a-z_][a-z0-9_]*$/i.test(t))}i(Qk,"hasDynamicPowerShellParameterBinding");function Ti(e,t){let n=/^-([^:]+):(.*)$/s.exec(t);if(!n)return;let r=n[1]?.toLowerCase()??"";if(r==="pspath")return{name:"literalpath",value:n[2]??""};let o=(qk[e]??[]).filter(s=>s.startsWith(r));return{...o.length===1?{name:o[0]}:{},value:n[2]??""}}i(Ti,"parseAttachedPowerShellReadParameter");function Ci(e,t){if(!/^-[a-z][a-z-]*$/i.test(t))return;let n=t.slice(1).toLowerCase();if(n==="pspath")return"literalpath";let r=(qk[e]??[]).filter(o=>o.startsWith(n));return r.length===1?r[0]:void 0}i(Ci,"resolvePowerShellReadParameter");function Zk(e){if(!/^-[a-z][a-z-]*$/i.test(e))return;let t=e.slice(1).toLowerCase();if(SW.has(t))return!0;if(Vk.has(t))return!1;let n=yW.filter(o=>o.startsWith(t)),r=[...Vk].filter(o=>o.startsWith(t));if(n.length+r.length===1)return n.length===1}i(Zk,"powerShellCommonParameterConsumesValue");var kW={head:new Set(["-c","--bytes","-n","--lines"]),tail:new Set(["-c","--bytes","-n","--lines","--max-unchanged-stats","--pid","-s","--sleep-interval"]),less:new Set(["-p","-P","-t","-T","-x","--pattern","--prompt","--tag","--tag-file","--tabs"])},eE=new Set(["b","h","j","k","p","P","t","T","x","y","z"]),tE=new Set(["H","I","L","P","T"]),Kk=new Set([...tE,"o"]),EW=new Set(["--charset","--filelimit","--output","--sort","--timefmt"]),_W=new Set(["T"]),MW=new Set(["o","O"]),AW=new Set(["o"]);function Ym(e,t,n){if(!/^-[^-]/.test(e))return{matched:!1};let r=e.slice(1);for(let o=0;o<r.length;o+=1){let s=r[o]??"";if(t.has(s)){let a=r.slice(o+1)||void 0;return a===void 0?{matched:!0}:{matched:!0,attachedValue:a}}if(n.has(s))return{matched:!1}}return{matched:!1}}i(Ym,"shortOptionValue");function Ii(e){let t=Rn(e);if(!t)return[];let n=[],r=!1;for(let o=1;o<e.argv.length;o+=1){let s=e.argv[o]??"",a=Ti(t,s);if(a){(a.name==="path"||a.name==="literalpath")&&n.push({value:a.value,literal:a.name==="literalpath"}),t==="select-string"&&a.name==="pattern"&&(r=!0);continue}let c=Ci(t,s);if(c){if(gW.has(c))continue;let u=e.argv[o+1];u&&(c==="path"||c==="literalpath")&&n.push({value:u,literal:c==="literalpath"}),t==="select-string"&&c==="pattern"&&(r=!0),o+=1;continue}let l=Zk(s);if(l!==void 0){l&&(o+=1);continue}if(!s.startsWith("-")){if(t==="select-string"&&!r){r=!0;continue}n.push({value:s,literal:!1})}}return n}i(Ii,"powerShellReadPathOperands");function LW(e){let t=vt(e);if(!Xk.has(t))return[];let n=[],r=kW[t],o=!1;for(let s=1;s<e.argv.length;s+=1){let a=e.argv[s]??"";if(t==="less"){let c=Ym(a,_W,eE);if(c.matched){let l=c.attachedValue??e.argv[s+1];l&&n.push({value:l,literal:!1}),c.attachedValue===void 0&&(s+=1);continue}if(Ke(a,"--tag-file")){let l=a.indexOf("="),u=l>=0?a.slice(l+1):e.argv[s+1];u&&n.push({value:u,literal:!1}),l<0&&(s+=1);continue}}if(!o&&a==="--"){o=!0;continue}if(!o&&r?.has(a)){s+=1;continue}!o&&(a.startsWith("-")||/^\/[a-z]+(?::[^\\/]+)?$/i.test(a))||t==="more"&&/^\+\d+$/.test(a)||n.push({value:a,literal:!1})}return n}i(LW,"positionalContentReadPathOperands");function PW(e){let t=[];for(let n of e.statements)for(let r of n.stages){let o=Rn(r);o==="get-content"||o==="select-string"?t.push(...Ii(r)):(t.push(...LW(r)),t.push(...sH(r)),t.push(...$W(r)))}return t}i(PW,"modeledContentReadPathOperands");function $W(e){let t=vt(e);if(t==="tree")return OW(e.argv);if(t!=="find")return[];let n=[];for(let r=1;r<e.argv.length;r+=1){let o=e.argv[r]??"",s=/^--?files0-from=(.*)$/i.exec(o);if(s){s[1]&&n.push({value:s[1],literal:!1});continue}if(/^--?files0-from$/i.test(o)){let a=e.argv[r+1];a&&n.push({value:a,literal:!1}),r+=1}}return n}i($W,"commandFileListPathOperands");function OW(e){let t=e.slice(1).flatMap(s=>{let a=/^--from(?:tab)?file=(.*)$/i.exec(s);return a?.[1]?[a[1]]:[]});if(!(t.length>0||e.slice(1).some(s=>/^--from(?:tab)?file$/i.test(s))))return[];let r=[...t],o=!1;for(let s=1;s<e.length;s+=1){let a=e[s]??"";if(!/^--from(?:tab)?file(?:=|$)/i.test(a)){if(a==="--"){o=!0;continue}if(!o){let c=Ym(a,Kk,Kk);if(c.matched){c.attachedValue===void 0&&(s+=1);continue}let l=a.split("=",1)[0]?.toLowerCase()??"";if(EW.has(l)){a.includes("=")||(s+=1);continue}if(a.startsWith("-"))continue}r.push(a)}}return r.map(s=>({value:s,literal:!1}))}i(OW,"treeFileListPathOperands");function DS(e){return/^(?:env:|environment::|microsoft\.powershell\.core(?:\\)?environment::|microsoft\.powershell\.coreenvironment::)[\\/]?(.*)$/i.exec(e.trim())?.[1]}i(DS,"environmentProviderName");function BS(e){return/^(?:variable:|microsoft\.powershell\.core(?:\\)?variable::|microsoft\.powershell\.corevariable::)[\\/]?(.*)$/i.exec(e.trim())?.[1]}i(BS,"variableProviderName");function NW(e){let t=e.trim();if(/^[a-z]:/i.test(t)||DS(t)!==void 0||BS(t)!==void 0)return;let n=/^(?:microsoft\.powershell\.core\\)?([a-z][\w.-]*)::/i.exec(t),r=/^([a-z][\w.-]*):/i.exec(t),o=(n?.[1]??r?.[1])?.toLowerCase();if(!(!o||["environment","env","filesystem","variable"].includes(o)))return o}i(NW,"nonFileSystemPowerShellProvider");function $S(e,t){return!e||!t&&/[*?\[\]{}]/.test(e)?!0:LS.test(e)||!PS.test(e)}i($S,"sensitiveProviderSelector");function DW(e){if(Rn(e)!=="get-variable")return[];let t=[];for(let n=1;n<e.argv.length;n+=1){let r=e.argv[n]??"",o=Ti("get-variable",r);if(o){(o.name==="name"||o.name==="include")&&t.push(o.value);continue}let s=Ci("get-variable",r);if(s){if(s==="valueonly")continue;let c=e.argv[n+1];c&&(s==="name"||s==="include")&&t.push(c),n+=1;continue}let a=Zk(r);if(a!==void 0){a&&(n+=1);continue}r.startsWith("-")||t.push(r)}return t}i(DW,"powerShellVariableSelectors");function BW(e){if(Rn(e)!=="get-variable")return!1;let t=DW(e);return t.length===0||t.some(n=>n.split(",").some(r=>$S(r,!1)))}i(BW,"sensitivePowerShellVariableRead");function FW(e){return Ii(e).some(({value:t,literal:n})=>t.split(",").some(r=>{let o=DS(r);if(o!==void 0)return $S(o,n);let s=BS(r);return s!==void 0&&$S(s,n)}))}i(FW,"sensitivePowerShellEnvironmentRead");function WW(e){return Ii(e).some(({value:t})=>t.split(",").some(n=>NW(n)!==void 0))}i(WW,"sensitivePowerShellProcessDataRead");function HW(e){let t=new Set(["get-childitem","get-item","get-content"]);return e.statements.some(n=>n.stages.some((r,o)=>{let s=Rn(r);return o>0&&s!==void 0&&t.has(s)&&Ii(r).length===0}))}i(HW,"sensitivePowerShellPipelineProviderRead");function Ec(e,t){if(!e.trim()||e.includes("\0"))return;let n=Gu(e);if(process.platform==="win32"&&/^[a-z]:[^\\/]/i.test(n))return;let r=gn.isAbsolute(n)?gn.resolve(n):gn.resolve(t??process.cwd(),n),o=[],s=r;for(;;){try{ju.lstatSync(s)}catch(a){if((a instanceof Error?a.code:void 0)!=="ENOENT")return;let l=gn.dirname(s);if(l===s)return;o.unshift(gn.basename(s)),s=l;continue}try{return gn.join(ju.realpathSync.native(s),...o)}catch{return}}}i(Ec,"canonicalizePath");function OS(e){try{let t=gn.resolve(Gu(e));return ju.statSync(t).isDirectory()?ju.realpathSync.native(t):void 0}catch{return}}i(OS,"canonicalizeExistingDirectory");function jW(){let e=[ro.tmpdir(),process.env.TEMP,process.env.TMP,process.env.TMPDIR,process.platform==="win32"?gn.join(process.env.SystemRoot??"C:\\Windows","Temp"):"/tmp",...process.platform==="win32"?[]:["/var/tmp"]],t=new Set;for(let n of e){if(!n?.trim())continue;let r=OS(n);r&&t.add(r)}return[...t]}i(jW,"canonicalTempDirectories");function UW(e){return process.platform!=="win32"?!1:e.split(/[\\/]+/).some(t=>{let n=t.toLowerCase();if(!n||n==="."||n===".."||/^[a-z]:$/i.test(n))return!1;let r=n.indexOf(":"),s=(r>=0?n.slice(0,r):n).replace(/[ .]+$/g,"").split(".",1)[0]??"";return/^(?:con|prn|aux|clock\$|conin\$|conout\$|com[1-9\u00b9\u00b2\u00b3]|lpt[1-9\u00b9\u00b2\u00b3])$/i.test(s)})}i(UW,"hasWindowsDeviceComponent");function GW(e){return e.some((t,n)=>t===".m2"&&["settings.xml","settings-security.xml"].includes(e[n+1]??"")||t===".gradle"&&e[n+1]==="gradle.properties"||t===".nuget"&&e.slice(n+1).includes("nuget.config")||t===".pip"&&e[n+1]==="pip.conf"||t===".huggingface"&&e[n+1]==="token"||t===".cache"&&e[n+1]==="huggingface"&&e[n+2]==="token"||t===".config"&&e[n+1]==="pip"&&e[n+2]==="pip.conf"||t===".config"&&e[n+1]==="rclone"&&e[n+2]==="rclone.conf"||t===".config"&&e[n+1]==="pypoetry"&&e[n+2]==="auth.toml"||t===".config"&&e[n+1]==="fish"&&["config.fish","fish_variables"].includes(e[n+2]??"")||t===".local"&&e[n+1]==="share"&&e[n+2]==="keyrings"||t==="library"&&e[n+1]==="keychains"||t==="appdata"&&["local","roaming"].includes(e[n+1]??"")&&e[n+2]==="microsoft"&&["credentials","protect","vault"].includes(e[n+3]??""))}i(GW,"hasSensitiveCredentialLocation");function VW(e){if(e[0]!==""||e[1]!=="proc")return!1;let t=e[2]??"";if(!/^(?:self|thread-self|\d+)$/.test(t))return!1;let n=i(r=>/^(?:environ|cmdline|mem|auxv|maps|fd|fdinfo)$/.test(e[r]??""),"sensitiveEntry");return n(3)?!0:e[3]==="task"&&/^\d+$/.test(e[4]??"")&&n(5)}i(VW,"isSensitiveProcProcessData");function Es(e){let t=e.split(/[\\/]+/).map(l=>{let u=l.toLowerCase();if(process.platform!=="win32"||u==="."||u===".."||/^[a-z]:$/i.test(u))return u;let d=u.indexOf(":");return(d>=0?u.slice(0,d):u).replace(/[ .]+$/g,"")}),n=t.at(-1)??"",r=!uW.has(n)&&(n===".env"||n.startsWith(".env.")),o=VW(t),s=t.some((l,u)=>l===".git"&&(t[u+1]==="config"||t[u+1]==="config.worktree"||t[u+1]==="worktrees"&&t[u+3]==="config.worktree")),a=t.some((l,u)=>l===".config"&&t[u+1]==="git"&&t[u+2]==="config"),c=t.some((l,u)=>l===".cargo"&&t[u+1]==="credentials.toml");return o||s||a||c||GW(t)||n===".gitconfig"||n===".gitmodules"||t.some(l=>Yk.has(l))||t.some(l=>lW.has(l))||r||t.some(l=>/^id_(?:rsa|dsa|ecdsa|ed25519)(?:\.pub)?$/.test(l))||t.some((l,u)=>l===".config"&&(t[u+1]==="gcloud"||t[u+1]==="gh"||t[u+1]==="openai"||t[u+1]==="anthropic"))}i(Es,"isSensitivePath");function KW(e){try{let t=Ec(bo());return t!==void 0&&Fl(e,t)}catch{return!0}}i(KW,"isProtectedAgentHome");function cn(e,t,n=!1){if(t.trustProcessEnvironmentPathExpansion===!1&&NS(e))return{path:e,boundary:"unresolved"};if(/^\\\\(?:[?.]\\|[^\\])/i.test(e)||/^\\[?.]\\/i.test(e))return{path:e,boundary:"unresolved"};if(UW(e))return{path:e,boundary:"unresolved"};if(Es(e))return{path:e,boundary:"protected"};let r=n?bW(e):IW(e);if(!r)return{path:e,boundary:"unresolved"};if(Es(r))return{path:e,boundary:"protected"};let o=OS(t.executionCwd),s=OS(t.projectRoot),a=o?Ec(r,o):void 0;return!a||!s?{path:e,boundary:"unresolved"}:Es(a)||KW(a)?{path:e,boundary:"protected"}:Fl(a,s)?{path:e,boundary:"workspace"}:jW().some(c=>Fl(a,c))?{path:e,boundary:"system-temp"}:{path:e,boundary:"outside-workspace"}}i(cn,"classifyTarget");function zm(e,t){let n=Ec(e,t.executionCwd);if(!n)return!1;try{return ju.statSync(n).isDirectory()}catch{return!1}}i(zm,"isExistingDirectoryTarget");function Vm(e){return e.boundary==="workspace"||e.boundary==="system-temp"}i(Vm,"isAllowedMutationTarget");function pr(e){return{action:"escalate",reason:e}}i(pr,"escalate");function vt(e){return(e.argv[0]??"").replace(/\\/g,"/").split("/").at(-1)?.toLowerCase()??""}i(vt,"shellExecutable");function nE(e){return e.unparseable||e.statements.length===0?!1:e.statements.every(t=>t.stages.length>0&&t.stages.every(n=>!Qk(n)&&(xW.has(vt(n))||Rn(n)!==void 0||fI(n.argv))))}i(nE,"hasOnlyModeledShellStages");function rE(e,t){return Gn(e)?!0:nE(t)&&t.statements.some(n=>n.stages.some(r=>Rn(r)!==void 0))}i(rE,"isModeledShellReadCommand");function zW(e){for(let t of e.statements)for(let n of t.stages){let r=n.argv.map(l=>l.toLowerCase()),o=vt(n);if(o==="find"&&r.some(l=>l==="-delete"||l==="-exec"||l==="-execdir"||l==="-ok"||l==="-okdir"))return!0;if(o!=="git")continue;let s=os(n.argv);if(s===void 0)continue;let a=r[s],c=n.argv.slice(s+1);if(a==="grep"&&c.some(l=>Ke(l,"--open-files-in-pager")||Ke(l,"--ext-grep")))return!0;if(a==="remote"){let l=c.find(u=>!u.startsWith("-"))?.toLowerCase();if(l&&TW.has(l))return!0}if(a==="branch"&&(c.some(l=>CW.has(l.toLowerCase()))||c[0]&&!c[0].startsWith("-"))||a==="tag"&&(c.some(u=>vW.has(u.toLowerCase())||u.toLowerCase().startsWith("--message=")||u.toLowerCase().startsWith("--file="))||!c.some(u=>u==="-l"||u==="--list")&&c[0]&&!c[0].startsWith("-")))return!0}return!1}i(zW,"hasWriteCapableReadSyntax");function YW(e,t){let n=typeof e.path=="string"?e.path:"";if(!n)return mr(pr("auto-mode rules could not resolve the file target"),vi("incomplete","tool",[],["target_unresolved"],"file target is missing"));let r={kind:"write",target:cn(n,t)},o=r.target.boundary!=="unresolved",s=aE(r)?{action:"allow"}:pr("auto-mode rules require confirmation for a protected or out-of-boundary file target");return mr(s,vi(o?"complete":"incomplete","tool",[r],jS([r]),o?void 0:"file target could not be resolved safely"))}i(YW,"assessFileCall");function XW(e,t,n){let r=e==="glob"?t.pattern:t.glob;if(typeof r=="string")return Rc(r)??hn(r);let o=typeof t.path=="string"&&t.path.trim()?t.path:e==="read"?"":n.executionCwd;return e==="grep"&&o&&zm(o,n)?hn(`grep directory ${o}`):o}i(XW,"readToolTarget");function qW(e,t,n){let r=XW(e,t,n);if(!r)return mr(pr("auto-mode could not resolve the read target"),vi("incomplete","tool",[],["target_unresolved"],"read target is missing"));let o={kind:"read",target:cn(r,n)},s=o.target.boundary!=="unresolved",a=s&&o.target.boundary!=="protected";return mr(a?{action:"allow"}:pr("auto-mode requires confirmation before reading a sensitive or unresolved target"),vi(s?"complete":"incomplete","tool",[o],jS([o]),s?void 0:"read target could not be resolved safely"))}i(qW,"assessReadFileCall");function JW(e){let t=!1,n=!1;return[...e].map(r=>r==='"'&&!t?(n=!n,r):r==="'"&&!n?(t=!t," "):t?" ":r).join("")}i(JW,"maskSingleQuotedDollarReferences");function QW(e,t){let n=JW(e);return/\$\{!/.test(n)||[...n.matchAll(/\$(?:\{)?(?:(env|variable|global|script|local|private|using):)?([a-z_][a-z0-9_]*)(?:\})?/gi)].some(s=>{let a=s[2]??"";return LS.test(a)||!PS.test(a)})||[...e.matchAll(/%([a-z_][a-z0-9_]*)(?::[^%\r\n]*)?%/gi)].some(s=>!PS.test(s[1]??""))||HW(t)?!0:t.statements.some(s=>s.stages.some(a=>{let c=vt(a);if(FW(a)||BW(a)||c==="git"&&nH(a.argv)||c==="git"&&ZW(a.argv))return!0;if(c!=="env"&&c!=="printenv")return!1;let l=a.argv.slice(1).filter(u=>!u.startsWith("-"));return l.length===0||l.some(u=>LS.test(u))}))}i(QW,"sensitiveEnvironmentRead");function ZW(e){let t=os(e);if(t===void 0||e[t]?.toLowerCase()!=="remote")return!1;let n=e.slice(t+1),r=n.find(o=>!o.startsWith("-"))?.toLowerCase();return r==="get-url"||r==="show"?!0:r===void 0&&n.some(o=>o==="-v"||Ke(o,"--verbose"))}i(ZW,"sensitiveGitRemoteRead");function eH(e){return e.statements.some(t=>t.stages.some(n=>WW(n)))}i(eH,"sensitiveProcessDataRead");function tH(e,t){return/^\s*&\s+|\$env:|\b(?:where-object|select-object)\b/i.test(e)?!0:t.statements.some(n=>n.stages.some(r=>Rn(r)==="get-variable"||Rn(r)!==void 0&&Ii(r).some(({value:o})=>o.split(",").some(s=>DS(s)!==void 0||BS(s)!==void 0))||/^(?:get|set|new|remove|copy|move|rename|select|where)-[a-z]+$/i.test(vt(r))))}i(tH,"looksLikePowerShell");function nH(e){let t=os(e);if(t===void 0||e[t]?.toLowerCase()!=="config")return!1;let n=e.slice(t+1),r=n.map(h=>h.toLowerCase()),o=!1;for(let h of n)Ke(h,"--no-name-only")?o=!1:Ke(h,"--name-only")&&(o=!0);if(r.some(h=>h==="--list"||h==="-l"||h==="list")&&!o)return!0;let a=n.findIndex(h=>{let m=h.toLowerCase();return["--get","--get-all","--get-regexp","--get-urlmatch","get"].includes(m)||m!=="--get"&&["--get-all","--get-regexp","--get-urlmatch"].some(g=>Ke(h,g))});if(a<0)return!1;let c=r[a],l=n[a]??"",u=n.slice(a+1);if(o)return!1;let d=n[a+1]??"",p=c==="--get-regexp"||c!=="--get"&&Ke(l,"--get-regexp")?d:c==="get"&&u.some(h=>Ke(h,"--regexp"))?zk(u):void 0;return p!==void 0&&!pW.test(p)||(c==="--get-urlmatch"||c!=="--get"&&Ke(l,"--get-urlmatch"))&&!d.includes(".")||c==="get"&&u.some(h=>Ke(h,"--url"))&&!zk(u).includes(".")?!0:n.slice(a+1).some(h=>dW.test(h)||fW.test(h))}i(nH,"sensitiveGitConfigRead");function rH(e,t){if(e!=="diff"&&e!=="log"&&e!=="show")return!1;let n,r=!1,o=!1;for(let s=0;s<t.length;s+=1){let a=t[s]??"",c=a.toLowerCase();if(/^-[^-]/.test(a))for(let l=1;l<a.length;l+=1){let u=a[l]??"";if(u==="s")n=!1;else if(u==="p"||u==="u"||u==="c")n=!0;else if(u==="U"){n=!0;break}else if(u==="L"){n=!0;break}else if(u==="S"||u==="G"||u==="B"||u==="M"||u==="C")break}if(c==="-s"||Ke(a,"--no-patch")){n=!1;continue}if(c==="-p"||c==="-u"||/^-u\d+$/.test(c)||c==="-c"||c==="--cc"||["--patch","--patch-with-stat","--patch-with-raw","--word-diff","--color-words","--full-diff","--binary","--unified"].some(l=>Ke(a,l))){n=!0;continue}if(Ke(a,"--remerge-diff")){o=!0;continue}if(Ke(a,"--diff-merges")){let l=a.indexOf("="),u=l>=0?a.slice(l+1):t[s+1];o=!u||!/^(?:off|none)$/i.test(u),l<0&&u&&(s+=1);continue}(c==="--stat"||c==="--shortstat"||c==="--numstat"||c==="--name-only"||c==="--name-status"||c==="--summary"||c==="--raw"||c==="--compact-summary"||c==="--quiet"||c.startsWith("--dirstat"))&&(r=!0,o=!1)}return n!==void 0?n:o?!0:r?!1:e==="diff"||e==="show"}i(rH,"gitReadEmitsUnscopedContent");function oH(e){if(e[0]?.toLowerCase()!=="show")return!1;let t=e.slice(1);return t.some(n=>{let r=n.toLowerCase();return r==="-p"||r==="-u"||/^-[^-]*[pu]/i.test(n)||Ke(n,"--patch")||Ke(n,"--include-untracked")||Ke(n,"--only-untracked")})?!0:!t.some(n=>n.toLowerCase()==="-s"||Ke(n,"--no-patch")||Ke(n,"--stat")||Ke(n,"--shortstat")||Ke(n,"--numstat")||Ke(n,"--name-only")||Ke(n,"--name-status")||Ke(n,"--summary"))}i(oH,"gitStashShowEmitsContent");function FS(e,t){return e==="stash"?oH(t):rH(e,t)}i(FS,"gitReadEmitsContent");function WS(e){if(e.startsWith(":(")||e.startsWith(":/"))return;let t=/^:(?:[0-3]:)?(.+)$/.exec(e)?.[1];if(t)return t;let n=e.indexOf(":");if(!(n<=0||/^[a-z]:[\\/]/i.test(e)))return e.slice(n+1)||void 0}i(WS,"gitObjectPath");function iH(e){if(Uu(e))return;if(e.startsWith(":/"))return e.slice(2)||void 0;let t=/^:\(([^)]*)\)(.*)$/s.exec(e);if(!t)return e;let n=(t[1]??"").split(",").map(r=>r.trim().toLowerCase());if(!n.some(r=>r==="exclude"||r==="!"))return n.some(r=>r.startsWith("attr:"))?hn(`Git attribute pathspec ${e}`):n.some(r=>!["top","literal","glob","icase"].includes(r))?hn(`Git pathspec magic ${e}`):t[2]||void 0}i(iH,"normalizedGitPathspec");function sH(e){if(vt(e)!=="git")return[];let t=os(e.argv);if(t===void 0)return[];let n=e.argv[t]?.toLowerCase(),r=e.argv.slice(t+1),o=n==="grep"||FS(n,r),s=[],a=!1;for(let c=0;c<r.length;c+=1){let l=r[c]??"";if(l==="--"){a=!0;continue}if(a){if(o&&!Uu(l)){let u=iH(l);u&&s.push({value:u,literal:!1})}continue}if(n==="show"){let u=WS(l);u&&s.push({value:u,literal:!1})}if(n==="log"&&(l==="-L"||l.startsWith("-L"))){let u=l==="-L"?r[++c]:l.slice(2),d=u?oE(u):void 0;d&&s.push({value:d,literal:!1})}}return s}i(sH,"gitContentReadPathOperands");function oE(e){let t=!1,n=!1,r=e.startsWith(":")?1:0;for(let o=r;o<e.length;o+=1){let s=e[o]??"";if(n){n=!1;continue}if(s==="\\"){n=!0;continue}if(s==="/"){t=!t;continue}if(s===":"&&!t)return e.slice(o+1)||void 0}}i(oE,"gitLineLogTarget");function aH(e){for(let t=1;t<e.length;t+=1){let n=e[t]??"",r=n.toLowerCase();if(Ke(n,"--recursive"))return!0;if(Ke(n,"--directories")){let o=n.indexOf("="),s=o>=0?n.slice(o+1):e[++t];if(!s||!/^(?:read|skip)$/i.test(s))return!0;continue}if(/^-[^-]/.test(n))for(let o=1;o<n.length;o+=1){let s=n[o]??"";if(s==="r"||s==="R")return!0;if(s!=="d")continue;let c=n.slice(o+1).replace(/^=/,"")||e[++t];if(!c||!/^(?:read|skip)$/i.test(c))return!0;break}}return!1}i(aH,"grepUsesRecursiveDirectoryTraversal");function Ke(e,t){let n=e.indexOf("="),r=(n>=0?e.slice(0,n):e).toLowerCase();return r.startsWith("--")&&r.length>=3&&t.startsWith(r)}i(Ke,"gitLongOptionMatches");function zk(e){let t=new Set(["-f","-t"]),n=["--file","--blob","--value","--url","--type","--default"],r=[];for(let o=0;o<e.length;o+=1){let s=e[o]??"",a=s.toLowerCase();if(t.has(a)||n.some(c=>Ke(s,c))){if(s.includes("="))continue;o+=1;continue}s.startsWith("-")||r.push(s)}return r.length===1?r[0]:""}i(zk,"gitConfigGetSelector");function Uu(e){return/^:\((?:[^,)]*,)*(?:exclude|!)(?:[,)]|$)/i.test(e)||/^:!/.test(e)}i(Uu,"isExcludingGitPathspec");function Rc(e){if(Uu(e))return;if(Es(e))return e;let t=e.match(/^:\([^)]*\)(.+)$/)?.[1];if(t&&Es(t))return t;for(let n=e.indexOf(":");n>=0;n=e.indexOf(":",n+1)){let r=e.slice(n+1);if(r&&Es(r))return r}}i(Rc,"sensitivePathCandidate");function cH(e,t,n){let r=new Set,o=Vg(e),s=Jk(t),a=i((l,u=!1,d=!1)=>{if(!l)return;if(d&&l.includes(",")){for(let m of l.split(","))a(m.trim(),u);return}let p=Ec(l,n.executionCwd),h=Rc(l)??(p&&Es(p)?p:void 0);if(h){r.add(h);return}!u&&Km(l)&&r.add(l)},"addCandidate"),c=i(l=>{if(!l||l.startsWith("!"))return;let u=Rc(l);r.add(u??hn(l))},"addSearchFilter");for(let l of o)a(l,s.has(l));for(let l of t.statements){let u=l.stages.some(RW);for(let d of l.stages){let p=vt(d),h=u?Rn(d)??p:p,m=uH(d,n,o);if(m&&r.add(m),h==="git"){let x=os(d.argv);if(x===void 0)continue;let y=d.argv[x]?.toLowerCase();y==="grep"&&d.argv.slice(x+1).some(R=>Ke(R,"--no-index")||Ke(R,"--untracked"))&&r.add(hn("git grep expanded read scope"));let C=!1,v=!1,_=!1,E=!1;for(let R=x+1;R<d.argv.length;R+=1){let I=d.argv[R]??"",W=I.toLowerCase();if(I==="--"){C=!0;continue}if(!C&&y==="grep"){if(W==="-f"||W==="--file"){a(d.argv[R+1]),v=!0,R+=1;continue}if(W.startsWith("--file=")){a(I.slice(I.indexOf("=")+1)),v=!0;continue}if(W==="-e"||W==="--regexp"){v=!0,R+=1;continue}if(W.startsWith("--regexp=")){v=!0;continue}let D=dI(I);if(D.valueKind==="pattern-file"){a(D.attachedValue??d.argv[R+1]),v=!0,D.consumesNext&&(R+=1);continue}if(D.valueKind==="pattern"){v=!0,D.consumesNext&&(R+=1);continue}if(D.valueKind==="other"){D.consumesNext&&(R+=1);continue}}if(!C&&y==="log"&&(I==="-L"||I.startsWith("-L"))){let D=I==="-L"?d.argv[++R]:I.slice(2),z=D?oE(D):void 0;if(!z){r.add(hn("Git line-log target"));continue}a(z),E=!0,zm(z,n)&&r.add(hn("Git line-log directory target"));continue}if(!C&&wW.has(I.toLowerCase())){R+=1;continue}if(!C&&I.startsWith("-"))continue;if(y==="grep"&&!C&&!v){v=!0;continue}if(y==="grep"&&!C){a(I);continue}let $=y==="show"?WS(I):void 0;(C||y==="diff"||y==="log"||y==="show"||$!==void 0)&&(a($??I),y==="grep"&&!Uu(I)&&(_=!0),(C||$!==void 0)&&!Uu(I)&&(E=!0,zm(I,n)&&r.add(hn("Git directory pathspec"))))}y==="grep"&&!_&&r.add(hn("git grep implicit tracked scope")),FS(y,d.argv.slice(x+1))&&!E&&r.add(hn(`git ${y??"read"} content scope`));continue}let g=u&&l.stages.some(x=>["get-content","select-string"].includes(Rn(x)??vt(x)));if(h==="get-childitem"&&g){let x=!1;for(let y=1;y<d.argv.length;y+=1){let C=d.argv[y]??"",v=Ti(h,C);if(v){v.name==="literalpath"?a(v.value,!0,!0):v.name==="path"?a(v.value,!1,!0):(v.name==="filter"||v.name==="include")&&(x=!0,c(v.value));continue}let _=Ci(h,C);if(_){let E=["path","literalpath","filter","include","exclude","depth","attributes"].includes(_),R=E?d.argv[y+1]:void 0;_==="literalpath"?a(R,!0,!0):_==="path"?a(R,!1,!0):(_==="filter"||_==="include")&&(x=!0,c(R)),E&&(y+=1);continue}C.startsWith("-")||a(C,!1,!0)}x||r.add(".env");continue}if(mW.has(h)){if((h==="rg"||h==="ripgrep")&&!d.argv.slice(1).some(x=>/^--(?:help|version)$/i.test(x))){let x=d.argv.slice(1).filter(v=>!v.startsWith("-")),y=x.at(-1)??"";(!(x.length>1&&/(?:[\\/.]|[*?\[\]{}]|^~|^%|^\$)/.test(y))||x.some(v=>zm(v,n)))&&r.add(hn("ripgrep directory scope"))}if(["grep","egrep","fgrep"].includes(h)&&aH(d.argv)&&r.add(hn("recursive grep scope")),h==="findstr"&&d.argv.slice(1).some(x=>/^\/s$/i.test(x))&&r.add(hn("recursive findstr scope")),h==="rg"||h==="ripgrep"){let x=new Map,y=new Set;for(let C=1;C<d.argv.length;C+=1){let v=d.argv[C]??"",_=v.toLowerCase();if(["-g","--glob","--iglob"].includes(_)){c(d.argv[C+1]),C+=1;continue}if(_.startsWith("--glob=")||_.startsWith("--iglob=")){c(v.slice(v.indexOf("=")+1));continue}if(/^-g.+/s.test(v)){c(v.slice(2));continue}let E=_==="--type-add"?d.argv[++C]:_.startsWith("--type-add=")?v.slice(v.indexOf("=")+1):void 0;if(E){let R=E.indexOf(":");R>0&&x.set(E.slice(0,R).toLowerCase(),E.slice(R+1));continue}if(_==="--type"||_==="-t"){let R=d.argv[++C];R&&y.add(R.toLowerCase());continue}if(_.startsWith("--type=")){y.add(v.slice(v.indexOf("=")+1).toLowerCase());continue}/^-t[^-].+/s.test(v)&&y.add(v.slice(2).toLowerCase())}for(let C of y)c(x.get(C))}if(h==="grep"||h==="egrep"||h==="fgrep")for(let x=1;x<d.argv.length;x+=1){let y=d.argv[x]??"",C=y.toLowerCase();C==="--include"?(c(d.argv[x+1]),x+=1):C.startsWith("--include=")&&c(y.slice(y.indexOf("=")+1))}if(h==="select-string"){for(let x of Ii(d))a(x.value,x.literal,!0);for(let x=1;x<d.argv.length;x+=1){let y=d.argv[x]??"",C=Ti(h,y);if(C){C.name==="include"&&c(C.value);continue}let v=Ci(h,y);if(!v)continue;let _=["path","literalpath","include","exclude","pattern","encoding","context","culture"].includes(v),E=_?d.argv[x+1]:void 0;v==="include"&&c(E),_&&(x+=1)}}continue}if(Xk.has(h))for(let x=1;x<d.argv.length;x+=1){let y=d.argv[x]??"",C=y.toLowerCase();if(h==="less"){if(y==="-T"||C==="--tag-file"){a(d.argv[x+1]),x+=1;continue}if(y.startsWith("-T")&&y.length>2){a(y.slice(2));continue}if(C.startsWith("--tag-file=")){a(y.slice(y.indexOf("=")+1));continue}}if(h==="get-content"){let v=Ti(h,y);if(v){v.name==="literalpath"?a(v.value,!0,!0):v.name==="path"?a(v.value,!1,!0):v.name==="filter"||v.name==="include"?c(v.value):v.name===void 0&&a(v.value);continue}let _=Ci(h,y);if(_){let E=["path","literalpath","filter","include","exclude","delimiter","encoding","readcount","totalcount","tail","stream","credential"].includes(_),R=E?d.argv[x+1]:void 0;_==="literalpath"?a(R,!0,!0):_==="path"?a(R,!1,!0):(_==="filter"||_==="include")&&c(R),E&&(x+=1);continue}}y.startsWith("-")||a(y,!1,h==="get-content")}}}return[...r]}i(cH,"collectSensitiveReadTargets");function lH(e,t){let n=typeof e.command=="string"?e.command:"";if(!n.trim())return mr(pr("auto-mode rules could not resolve the shell command"),vi("incomplete","shell",[],["command_unresolved"],"shell command is missing"));if(dH(n))return mr(pr("auto-mode requires confirmation because a quoted Windows directory is ambiguous"),vi("incomplete","shell",[{kind:"unknown",summary:"ambiguous quoted Windows directory command"}],["command_unresolved"],"a trailing backslash may escape the closing quote"));let r=cI(n),o=AH(r)||tH(n,r)?"powershell":"shell",s=wH(n,r,t),a=t.signals.some(m=>m.kind==="dangerous_pattern"&&m.severity==="high"),c=!r.unparseable&&!zW(r)&&nE(r),l=Mr(n)||s.operations.some(m=>m.kind!=="execute"),u=s.complete&&c&&(rE(n,r)||l)&&s.operations.length>0&&s.operations.every(m=>Xm(m).every(g=>g.boundary!=="unresolved")),d=jS(s.operations);a&&d.push("high_risk_pattern"),s.reason?.includes("repository-configured")&&d.push("indirect_execution"),r.statements.some(m=>m.stages.some(Qk))&&d.push("target_unresolved"),QW(n,r)&&d.push("sensitive_environment_read"),eH(r)&&d.push("sensitive_process_data_read");let p=vi(u?"complete":"incomplete",o,s.operations,d,u?void 0:s.reason??"shell effects are not fully modeled");if(!u)return mr(pr("auto-mode rules require confirmation for an unmodelled shell command"),p);if(a)return mr(pr("auto-mode rules require confirmation for a high-risk shell command"),p);if(d.includes("sensitive_environment_read"))return mr(pr("auto-mode requires confirmation before reading sensitive environment data"),p);if(d.includes("sensitive_process_data_read"))return mr(pr("auto-mode requires confirmation before reading non-filesystem provider data"),p);let h=s.operations.every(aE)?{action:"allow"}:pr("auto-mode rules require confirmation for a protected or out-of-boundary shell target");return mr(h,p)}i(lH,"assessBashCall");function uH(e,t,n){let r=vt(e),o=Rn(e)??r,s=e.argv.slice(1),a;if(r==="dir"&&process.platform==="win32"&&s.some(l=>/^\/s(?::.*)?$/i.test(l))){let l=s.filter(u=>!/^\/[a-z]/i.test(u));a=l.length>0?l:["."]}else if(r==="ls"&&s.some(l=>l==="--recursive"||/^-[^-]*R/.test(l))){let l=s.filter(u=>!u.startsWith("-"));a=l.length>0?l:["."]}else if(o==="get-childitem"){if(!s.some(d=>{let p=Ti("get-childitem",d);return p?.name==="recurse"||p?.name==="depth"||["recurse","depth"].includes(Ci("get-childitem",d)??"")}))return;if(s.some(d=>Ti("get-childitem",d)?.name==="followsymlink"||Ci("get-childitem",d)==="followsymlink"))return hn("recursive listing follows symbolic links");let u=Ii(e);a=u.length>0?u.map(d=>d.value):["."]}else if(o==="tree"){let l=s.filter(u=>!u.startsWith("-")&&!/^\/[fa]$/i.test(u));a=l.length>0?l.slice(0,1):["."]}else if(o==="find"){if(s.some(u=>u==="-L"||u==="-follow"))return hn("recursive listing follows symbolic links");let l=s.filter(u=>!u.startsWith("-")&&!/^[()!,]$/.test(u));a=l.length>0?l.slice(0,1):["."]}else if(o==="ls"){if(!s.some(u=>u==="--recursive"||/^-[^-]*R/.test(u)))return;let l=s.filter(u=>!u.startsWith("-"));a=l.length>0?l:["."]}else return;let c=[...[...Yk].map(l=>gn.join(ro.homedir(),l)),gn.join(ro.homedir(),".config","gcloud"),gn.join(ro.homedir(),".config","gh"),gn.join(ro.homedir(),".config","openai"),gn.join(ro.homedir(),".config","anthropic")];for(let l of a){let u=kc(l,n),d=Ec(u,t.executionCwd);if(!d)continue;let p=c.find(h=>{let m=Ec(h);return m!==void 0&&Fl(m,d)});if(p)return p}}i(uH,"sensitiveRecursiveListingDescendant");function dH(e){return process.platform!=="win32"?!1:/"[A-Za-z]:\\[^"\r\n]*\\"(?=\s*(?:&&|\|\||[;|]|$))/.test(e)}i(dH,"hasAmbiguousQuotedWindowsDirectory");var fH=["path","literalpath","destination","newname","filter","include","exclude","recurse","force","passthru","credential","fromsession","tosession","container","verbose","debug","erroraction","warningaction","informationaction","progressaction","errorvariable","warningvariable","informationvariable","outvariable","outbuffer","pipelinevariable","whatif","confirm","usetransaction"],pH=new Set(["ea","ev","wa","wv","ia","infa","iv","ov","ob","pv","vb","db","wi","cf","usetx","pspath"]),mH=new Set(["cp","copy","mv","move","rm","del","ren"]),hH={cp:new Set(["f","p","r","v"]),copy:new Set(["f","p","r","v"]),mv:new Set(["f","v"]),move:new Set(["f","v"]),rm:new Set(["f","r","v"]),del:new Set(["f","r","v"]),ren:new Set};function gH(e){let t=vt(e);return mH.has(t)?e.argv.slice(1).some(n=>{if(!/^-[^-]/.test(n))return!1;let r=n.slice(1).split(":",1)[0]?.toLowerCase()??"";return r.length===1?!hH[t]?.has(r):r.length===0?!1:pH.has(r)?!0:fH.some(o=>o.startsWith(r))}):!1}i(gH,"hasPowerShellNamedParameterOnShellAlias");function yH(e){let t=vt(e),n=e.argv.indexOf("--"),r=e.argv.slice(1,n<0?void 0:n),o=i(c=>r.some(l=>/^-[^-]/.test(l)&&l.slice(1).includes(c)),"hasShort"),s=o("L")||r.includes("--dereference");return t==="tree"&&o("l")?"recursive listing explicitly follows symbolic links":s&&(t==="ls"?o("R")||r.includes("--recursive"):t==="cp"?o("R")||o("r")||o("a")||r.includes("--recursive"):(t==="chmod"||t==="chown")&&(o("R")||r.includes("--recursive")))?"recursive operation explicitly follows symbolic links":void 0}i(yH,"recursiveSymlinkFollowReason");function SH(e){for(let t of e.statements)for(let n of t.stages){let r=vt(n);if(gH(n))return"shell alias uses PowerShell named-parameter semantics that require PowerShell binding";let o=yH(n);if(o)return o;if(r==="git"){let s=os(n.argv),a=s===void 0?void 0:n.argv[s]?.toLowerCase(),c=s===void 0?[]:n.argv.slice(s+1);if(uI(a,c))return"git signature inspection may invoke a repository-configured signature-verification helper";if(a==="status")return"git status may invoke a repository-configured core.fsmonitor helper";if(a==="describe"&&c.some(h=>Ke(h,"--dirty")||Ke(h,"--broken")))return"git describe worktree-state modes may refresh the index or invoke fsmonitor";let l=FS(a,c),u=a==="show"&&c.some(h=>WS(h)!==void 0)&&!c.includes("--"),d=c.some(h=>h.toLowerCase()==="--no-textconv"),p=c.some(h=>h.toLowerCase()==="--no-ext-diff");if(l&&!u&&(!d||!p))return"git content inspection may invoke repository-configured textconv or external-diff helpers"}if(r==="findstr"&&n.argv.slice(1).some(s=>/^\/f:/i.test(s)))return"findstr file-list targets cannot be resolved before reading the list";if(r==="wc"&&n.argv.slice(1).some(s=>s.toLowerCase()==="--files0-from"||s.toLowerCase().startsWith("--files0-from=")))return"wc file-list targets cannot be resolved before reading the list";if(r==="find"&&n.argv.slice(1).some(s=>/^--?files0-from(?:=|$)/i.test(s)))return"find file-list targets cannot be resolved before reading the list"}}i(SH,"indirectReadReason");function wH(e,t,n){if(t.unparseable)return{complete:!1,operations:[{kind:"unknown",summary:`opaque shell payload (${Buffer.byteLength(e,"utf8")} bytes)`}],reason:"shell syntax could not be parsed"};let r=[],o=new Set,s=new Set(t.statements.flatMap(m=>m.stages.flatMap(g=>iE(g)?.artifacts??[]))),a=[...new Set([...Vg(e),...Gg(e).flatMap(m=>m.map(g=>g.value)).filter(NS)])].filter(m=>!Gl(m)),c=t.statements.some(m=>m.stages.some(g=>g.redirections.some(x=>x.input&&x.op!=="<")))?"inline shell input syntax cannot be bound to a filesystem target":void 0,l=SH(t)??c,u=l===void 0,d=l;for(let m of t.statements)for(let g of m.stages){if(!Ug(vt(g)))continue;let x=lI(g.argv.map((y,C)=>C===0?y:kc(y,a)));x.status==="incomplete"&&(u=!1,d??=x.reason);for(let y of x.operations){let C=MH(y,n,a);r.push(C);for(let v of Xm(C))o.add(v.path)}}for(let m of t.statements)for(let g of m.stages)for(let x of xH(g,n,a)){r.push(x);for(let y of Xm(x))o.add(y.path)}for(let m of TH(e)){if(o.has(m))continue;let g=Rc(m);r.push({kind:"read",target:g?{path:m,boundary:"protected"}:Km(m)?{path:m,boundary:"unresolved"}:cn(m,n)}),o.add(m)}for(let m of yI(e)){let g=kc(m,a);Gl(g)||o.has(g)||s.has(g)||IH(t,m)||r.push({kind:"write",target:cn(g,n)})}for(let m of vH(t)){let g=Rc(m);r.push({kind:"read",target:g?{path:m,boundary:"protected"}:Km(m)?{path:m,boundary:"unresolved"}:cn(m,n)}),o.add(m)}let p=cH(e,t,n),h=[...PW(t),...t.statements.flatMap(m=>m.stages.flatMap(g=>Rn(g)===void 0?[]:Ii(g)))].map(m=>({...m,value:kc(m.value,a)})).filter((m,g,x)=>x.findIndex(y=>y.value===m.value&&y.literal===m.literal)===g);if(Gn(e)||p.length>0||h.length>0){let m=new Set(p),g=Jk(t);for(let x of h)m.add(x.value);if(Gn(e)||h.length>0)for(let x of a)m.add(x);for(let x of m){if(o.has(x))continue;let y=Rc(x);r.push({kind:"read",target:y?{path:x,boundary:"protected"}:!g.has(x)&&Km(x)?{path:x,boundary:"unresolved"}:cn(x,n,g.has(x))}),o.add(x)}}if(r.length===0&&t.statements.length>0){let m=rE(e,t);r.push({kind:"execute",summary:m?"read-only shell command":"shell command with unmodelled effects",options:{readOnly:m}})}return d===void 0?{complete:u,operations:r}:{complete:u,operations:r,reason:d}}i(wH,"collectShellOperations");function xH(e,t,n){let r=vt(e),o=i(l=>kc(l,n),"restorePath"),s=iE(e);if(s)return[{kind:"write",target:cn(o(s.target),t)}];let a=bH(e).map(o).filter(l=>!Gl(l));if(a.length>0)return a.map(l=>({kind:"write",target:cn(l,t)}));let c=sE(r,e.argv.slice(1)).map(o);if(["rm","rmdir","del","erase","rd"].includes(r))return c.map(l=>({kind:"delete",target:cn(l,t),options:{recursive:e.argv.some(u=>u==="--recursive"||/^-[^-]*[rR]/.test(u)||["del","erase","rd","rmdir"].includes(r)&&/^\/s$/i.test(u))}}));if(r==="mkdir"||r==="touch")return c.map(l=>({kind:"create",target:cn(l,t)}));if(r==="mv"||r==="move"||r==="cp"||r==="copy"){let l=EH(e.argv),u=l===void 0?void 0:o(l),d=u?c:c.slice(0,-1),p=u??c.at(-1);return!p||d.length===0?[]:d.map(h=>({kind:r==="cp"||r==="copy"?"copy":"move",source:cn(h,t),destination:cn(p,t),options:{force:e.argv.some(m=>/^(?:-f|--force|\/y)$/i.test(m)),recursive:(r==="cp"||r==="copy")&&e.argv.some(m=>m==="--recursive"||/^-[^-]*[rRa]/.test(m)),destinationIsDirectory:u!==void 0||d.length>1,overwritePossible:!0}}))}if(r==="ren"&&c.length===2){let l=c[0];return[{kind:"rename",source:cn(l,t),destination:cn(_H(l,c[1]),t)}]}return[]}i(xH,"collectDirectShellOperations");function iE(e){if(vt(e)!=="copy")return;let t=e.argv.slice(1).filter(s=>!HS("copy",s)&&!s.startsWith("-")),n=t.join(" ").trim(),r=n.lastIndexOf("+");if(r<=0||!/^\s*,\s*,\s*$/.test(n.slice(r+1)))return;let o=n.slice(0,r).trim().replace(/^["']|["']$/g,"");if(o)return{target:o,artifacts:t}}i(iE,"cmdCopyTimestampSyntax");function TH(e){let t=new Set;for(let n of Gg(e)){if((n[0]?.value??"").replace(/\\/g,"/").split("/").at(-1)?.toLowerCase()!=="copy")continue;let o=n.slice(1).filter(s=>!HS("copy",s.value)&&!s.value.startsWith("-"));for(let s of o.slice(0,-1)){let a=e.slice(s.start,s.end);for(let c of CH(a))t.add(c)}}return[...t]}i(TH,"collectCmdCopyConcatenationSources");function CH(e){let t=[],n="",r;for(let o=0;o<e.length;o+=1){let s=e[o];if(s==="^"&&r===void 0&&o+1<e.length){n+=e[o+1],o+=1;continue}if(s==='"'||s==="'"){r=r===s?void 0:r??s;continue}if(s==="+"&&r===void 0){if(n.length===0)return[];t.push(n),n="";continue}n+=s}return t.length===0||n.length===0?[]:(t.push(n),t)}i(CH,"splitCmdCopySource");function vH(e){let t=new Set;for(let n of e.statements)for(let r of n.stages){for(let o of r.redirections)o.input&&!o.descriptorDuplication&&o.op!=="<<"&&o.op!=="<<<"&&!Gl(o.target)&&t.add(o.target);if(vt(r)==="dd")for(let o of r.argv.slice(1)){let s=/^if=(.+)$/i.exec(o);s?.[1]&&s[1]!=="-"&&t.add(s[1])}}for(let n of e.statements)for(let r of n.stages){let o=vt(r);if(!["touch","date","chmod","chown"].includes(o))continue;let s=o==="touch"||o==="date";for(let a=1;a<r.argv.length;a+=1){let c=r.argv[a]??"";if(s&&c==="-r"||c==="--reference"){let u=r.argv[a+1];u&&t.add(u),a+=1;continue}let l=/^--reference=(.+)$/.exec(c)?.[1]??(s?/^-r(.+)$/.exec(c)?.[1]:void 0);l&&t.add(l)}}return[...t]}i(vH,"collectShellInputReadTargets");function IH(e,t){return e.statements.some(n=>n.stages.some(r=>{if(vt(r)!=="ren")return!1;let o=sE("ren",r.argv.slice(1));return o.length===2&&o.includes(t)}))}i(IH,"modeledRenameCoversTarget");function kc(e,t){if(process.platform!=="win32")return e;let n=/^[a-z]:[^\\/]/i.test(e),r=/^(?:%temp%|%tmp%|\$env:(?:temp|tmp)|\$\{env:(?:temp|tmp)\}|\$\{(?:tmpdir|temp|tmp)\}|\$(?:tmpdir|temp|tmp))[^\\/]/i.test(e);if(!n&&!r)return e;let o=e.replace(/[\\/]/g,"").toLowerCase();return t.find(s=>(/^[a-z]:[\\/]/i.test(s)||NS(s))&&s.replace(/[\\/]/g,"").toLowerCase()===o)??e}i(kc,"restoreMangledShellPath");function bH(e){let t=vt(e);if(t!=="less"&&t!=="tree")return[];let n=[];for(let r=1;r<e.argv.length;r+=1){let o=e.argv[r]??"";if(t==="less"){let a=Ym(o,MW,eE);if(a.matched){let c=a.attachedValue??e.argv[r+1];c&&n.push(c),a.attachedValue===void 0&&(r+=1);continue}if(Ke(o,"--log-file")){let c=o.indexOf("="),l=c>=0?o.slice(c+1):e.argv[r+1];l&&n.push(l),c<0&&(r+=1)}continue}let s=Ym(o,AW,tE);if(s.matched){let a=s.attachedValue??e.argv[r+1];a&&n.push(a),s.attachedValue===void 0&&(r+=1);continue}if(Ke(o,"--output")){let a=o.indexOf("="),c=a>=0?o.slice(a+1):e.argv[r+1];c&&n.push(c),a<0&&(r+=1)}}return n}i(bH,"readCommandOutputTargets");function sE(e,t){let n=[],r=!1;for(let o of t){if(r){r=!1;continue}if(kH(e,o)){r=!0;continue}o!=="--"&&(o.startsWith("-")||HS(e,o)||n.push(o))}return n}i(sE,"directPositionals");var RH={copy:new Set(["/a","/b","/d","/j","/l","/n","/v","/y","/-y","/z"]),del:new Set(["/p","/f","/s","/q","/a"]),erase:new Set(["/p","/f","/s","/q","/a"]),move:new Set(["/y","/-y"]),rd:new Set(["/s","/q"]),rmdir:new Set(["/s","/q"])};function HS(e,t){let n=t.toLowerCase(),r=n.indexOf(":"),o=r>=0?n.slice(0,r):n;return RH[e]?.has(o)===!0}i(HS,"isDirectWindowsSwitch");function kH(e,t){return(e==="cp"||e==="copy"||e==="mv"||e==="move")&&["-t","--target-directory","-S","--suffix"].includes(t)||e==="mkdir"&&["-m","--mode"].includes(t)?!0:e==="touch"&&["-d","--date","-r","--reference","-t","--time"].includes(t)}i(kH,"directOptionTakesValue");function EH(e){let t=e.findIndex(r=>r==="-t"||r==="--target-directory");return t>=0?e[t+1]:e.find(r=>r.startsWith("--target-directory="))?.slice(19)}i(EH,"directTargetDirectory");function _H(e,t){let n=/^[a-z]:|\\/i.test(e)?gn.win32:gn.posix;return n.join(n.dirname(e),t)}i(_H,"joinSourceParent");function MH(e,t,n){let r=i(o=>kc(o,n),"restorePath");return"target"in e?{kind:e.kind,target:cn(r(e.target),t),options:e.options}:{kind:e.kind,source:cn(r(e.source),t),destination:cn(r(e.destination),t),options:e.options}}i(MH,"mapPowerShellOperation");function AH(e){return e.statements.some(t=>t.stages.some(n=>Ug(vt(n))))}i(AH,"hasPowerShellMutationStage");function Xm(e){return"target"in e?[e.target]:"source"in e?[e.source,e.destination]:[]}i(Xm,"operationPaths");function aE(e){return e.options?.whatIf===!0?!0:e.kind==="execute"?e.options?.readOnly===!0:e.kind==="unknown"?!1:e.kind==="read"?e.target.boundary!=="protected"&&e.target.boundary!=="unresolved":"target"in e?Vm(e.target):"source"in e?e.kind==="copy"?Vm(e.destination)&&e.source.boundary!=="protected"&&e.source.boundary!=="unresolved":Vm(e.source)&&Vm(e.destination):!1}i(aE,"isOperationAllowed");function jS(e){let t=new Set;for(let n of e){if(n.options?.whatIf===!0)continue;let r=Xm(n);LH(n).some(o=>o.boundary==="outside-workspace")&&t.add("outside_workspace_mutation"),n.kind==="read"&&r.some(o=>o.boundary==="protected")&&t.add("sensitive_read"),r.some(o=>o.boundary==="protected")&&t.add("protected_path"),r.some(o=>o.boundary==="unresolved")&&t.add("target_unresolved"),(n.kind==="move"||n.kind==="rename")&&(t.add("source_removed"),n.source.boundary!==n.destination.boundary&&t.add("cross_boundary_mutation")),n.kind==="copy"&&n.source.boundary!==n.destination.boundary&&(t.add("cross_boundary_copy"),n.destination.boundary==="outside-workspace"&&t.add("data_export_possible")),n.kind==="delete"&&(t.add("source_removed"),n.options?.recursive===!0&&t.add("recursive_delete")),(n.kind==="move"||n.kind==="copy")&&n.options?.overwritePossible&&t.add("destination_overwrite_possible")}return[...t]}i(jS,"collectRisks");function LH(e){return"target"in e?e.kind==="read"?[]:[e.target]:"source"in e?e.kind==="copy"?[e.destination]:[e.source,e.destination]:[]}i(LH,"mutationTargets");function vi(e,t,n,r,o){return{schemaVersion:1,analysis:{status:e,shell:t,binding:e==="complete"?"exact":"partial",...o?{reason:o}:{}},operations:n,risks:r}}i(vi,"review");function mr(e,t){return{decision:e,review:t}}i(mr,"assessment");function cE(e,t){return aW.has(e.name)?YW(e.input,t):cW.has(e.name)?qW(e.name,e.input,t):e.name==="bash"?lH(e.input,t):mr(pr(`auto-mode rules require confirmation for tool "${e.name}"`),vi("incomplete","tool",[{kind:"unknown",summary:`tool ${e.name}`}],["tool_effects_unresolved"],"tool has no deterministic effect analyzer"))}i(cE,"assessAutoModeCall");var lE=i((e,t)=>cE(e,t).review,"analyzeAutoModeCall"),uE=i((e,t)=>cE(e,t).decision,"evaluateAutoRulesCall");async function _c(e){let t=await vv({userKodaxDir:fv(),projectRoot:e.projectRoot}),n;return{getGuardrail:i(()=>n||(n=Iv({rules:t.merged,getToolProjection:i(o=>(Ff(o)??uv(o))?.toClassifierInput,"getToolProjection"),resolveProvider:i(o=>{try{return qi(o)}catch{return}},"resolveProvider"),defaultProvider:e.getCurrentProviderName(),defaultModel:e.getCurrentModel()??"",getDefaultProvider:e.getCurrentProviderName,getDefaultModel:i(()=>e.getCurrentModel()??"","getDefaultModel"),askUser:e.askUser,allowOnClassifierFailure:i(o=>wI(o,e.projectRoot,e.executionCwd),"allowOnClassifierFailure"),workspaceShellSandboxAvailable:e.workspaceShellSandboxAvailable,admitWorkspaceSandboxCall:e.admitWorkspaceSandboxCall,evaluateRulesCall:uE,analyzeCall:lE,log:e.log,onEngineChange:e.onEngineChange,sharedState:e.sharedState,projectRoot:e.projectRoot,executionCwd:e.executionCwd,trustProcessEnvironmentPathExpansion:e.trustProcessEnvironmentPathExpansion!==!1,extraCollectors:e.extraCollectors,extraAbsoluteDenyChecks:[xI],initialEngine:e.autoModeSettings.engine,timeoutMs:e.autoModeSettings.timeoutMs,userSettings:e.autoModeSettings.classifierModel,envVar:e.autoModeSettings.classifierModelEnv,speculativeWindowMs:e.autoModeSettings.speculativeWindowMs}),n),"getGuardrail"),rulesLoadResult:t}}i(_c,"bootstrapAutoMode");var _s=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t);this.sessions.set(t,{...structuredClone(n),scope:n.scope??r?.scope??"user",uiHistory:n.uiHistory??r?.uiHistory,extensionState:n.extensionState??r?.extensionState,artifactLedger:n.artifactLedger??r?.artifactLedger,actorSnapshot:n.actorSnapshot??r?.actorSnapshot,extensionRecords:n.extensionRecords??r?.extensionRecords,tag:n.tag??r?.tag,lineage:Je(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 o=this.sessions.get(t);if(!o?.lineage)return null;let s=Ca(o.lineage,n,r);if(!s)return null;let a={...structuredClone(o),messages:$t(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async setLabel(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=va(o.lineage,n,r);if(!s)return null;let a={...structuredClone(o),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async fork(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=Ro(o.lineage,n);if(!s)return null;let a=r?.sessionId??await ka(),c={messages:$t(s),title:r?.title??o.title,gitRoot:o.gitRoot,tag:o.tag,uiHistory:o.uiHistory?o.uiHistory.map(l=>({...l})):void 0,extensionState:o.extensionState?structuredClone(o.extensionState):void 0,artifactLedger:o.artifactLedger?structuredClone(o.artifactLedger):void 0,extensionRecords:o.extensionRecords?structuredClone(o.extensionRecords):void 0,lineage:s};return this.sessions.set(a,c),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let r=this.sessions.get(t);if(!r?.lineage)return null;let o=n??ba(r.lineage);if(!o)return null;let s=Ra(r.lineage,o);if(!s)return null;let a={...r,messages:$t(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.scope??"user")==="user").map(([n,r])=>({id:n,title:r.title,msgCount:r.lineage?Zi(r.lineage):r.messages.length,...r.tag!==void 0?{tag:r.tag}:{}}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function dE(){return new _s}i(dE,"createMemorySessionStorage");import*as fE from"child_process";import*as pE from"util";import qm from"chalk";var PH=pE.promisify(fE.exec),$H={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function Vu(e,t={}){let n={...$H,...t},r=e.trim(),o=pI(r);if(o)return o.startsWith("[Blocked]")&&(console.log(qm.yellow(`
|
|
65
|
+
${o}`)),console.log()),o;try{console.log(qm.dim(`
|
|
66
|
+
[Executing: ${r}]`));let{stdout:s,stderr:a}=await PH(r,{cwd:n.cwd,maxBuffer:n.maxBuffer,timeout:n.timeout,windowsHide:!0}),c="";return s&&(c+=s),a&&(c+=(c?`
|
|
67
|
+
`:"")+`[stderr] ${a}`),c.length>n.maxOutputLength&&(c=c.slice(0,n.maxOutputLength)+`
|
|
68
|
+
...[output truncated]`),console.log(qm.dim(c||"[No output]")),console.log(),`[Shell command executed: ${r}]
|
|
69
|
+
|
|
70
|
+
Output:
|
|
71
|
+
${c||"(no output)"}`}catch(s){let c=(s instanceof Error?s:new Error(String(s))).message;return c.length>n.maxErrorLength&&(c=c.slice(0,n.maxErrorLength)+`
|
|
72
|
+
...[error truncated]`),console.log(qm.red(`
|
|
73
|
+
[Shell Error: ${c}]`)),console.log(),`[Shell command failed: ${r}]
|
|
74
|
+
|
|
75
|
+
Error: ${c}`}}i(Vu,"executeShellCommand");async function US(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return Vu(n,t)}return e}i(US,"processSpecialSyntax");function mE(e){return e.trim().startsWith("!")}i(mE,"isShellCommand");function hE(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}i(hE,"isShellCommandSuccess");function Ku(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}i(Ku,"isShellCommandHandled");var gE=150,yE=50;function oo(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>yE){let r=t[t.length-yE]??0;n=e.slice(r)}if(n.length>gE){let r=n.slice(-gE),o=r.findIndex(s=>s.type==="user");n=o>0?r.slice(o):r}return[...n]}i(oo,"trimPersistedUiHistorySnapshot");function bi(e){if(e)return oo(e)}i(bi,"normalizePersistedUiHistory");function OH(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}}}}i(OH,"toCreatableTextHistoryItem");function NH(e){if(e.type!=="tool_group")return OH(e);let t=e.tools.map(tp);return t.length>0?{type:"tool_group",tools:t,...e.timestamp===void 0?{}:{timestamp:e.timestamp}}:void 0}i(NH,"persistedUiHistoryItemToCreatableHistoryItem");function DH(e){let t=new Set,n=[];for(let r of e){if(r.type!=="tool_group"){n.push(r);continue}let o=r.tools.filter(s=>t.has(s.id)?!1:(t.add(s.id),!0));o.length>0&&n.push({...r,tools:o})}return n}i(DH,"dedupePersistedToolGroups");function wE(e,t){if(e.type!==t.type)return!1;if(e.type==="tool_group"&&t.type==="tool_group")return e.tools.map(o=>o.id).join(`
|
|
76
|
+
`)===t.tools.map(o=>o.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||SE(n,r)||SE(r,n)}i(wE,"matchesTimestampSource");function SE(e,t){if(!e.endsWith(t))return!1;let n=e.slice(0,-t.length);return/^\[[^\]\r\n]+\]\s+$/.test(n)}i(SE,"hasDisplayPrefix");function BH(e,t){let n=0;return e.map(r=>{if(r.timestamp!==void 0)return r;for(let o=n;o<t.length;o+=1){let s=t[o];if(!(s?.timestamp===void 0||!wE(r,s)))return n=o+1,{...r,timestamp:s.timestamp}}return r})}i(BH,"recoverMissingTimestamps");function FH(e,t){let n=new Map,r=e.length-1;for(let o=t.length-1;o>=0;o-=1){let s=t[o];if(!(!s||s.type==="tool_group"))for(let a=r;a>=0;a-=1){let c=e[a];if(!(!c||c.type==="tool_group")&&wE(c,s)){n.set(o,a),r=a-1;break}}}return n}i(FH,"alignCanonicalTextItems");function WH(e,t){let n=new Array(t),r=new Array(t),o;for(let s=0;s<t;s+=1){n[s]=o;let a=e.get(s);a!==void 0&&(o=a)}o=void 0;for(let s=t-1;s>=0;s-=1){r[s]=o;let a=e.get(s);a!==void 0&&(o=a)}return{previous:n,next:r}}i(WH,"nearestAnchors");function HH(e,t){let n=FH(e,t),r=WH(n,t.length),o=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(E=>a.has(E.id)?!1:(a.add(E.id),!0)).map(E=>s.get(E.id)?.tool??E),m=r.previous[d];if(m===void 0||h.length===0){for(let E of h)a.delete(E.id);continue}let g=r.next[d],x=g!==void 0&&g>m?g:m+1,y=g??e.findIndex((E,R)=>R>m&&E.type==="user"),C=y<0?e.length:y;for(let E=m+1;E<C;E+=1){let R=e[E];R?.type==="event"&&R.icon==="tool"&&!c.has(E)&&l.add(E)}let v=o.get(x)??[],_=h.map(E=>s.get(E.id)?.timestamp).find(E=>E!==void 0);v.push({...p,tools:h,..._===void 0?{}:{timestamp:_}}),o.set(x,v)}let u=[];for(let d=0;d<=e.length;d+=1){u.push(...o.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 BH(u,t)}i(HH,"enrichPersistedUiHistory");function zu(e){let t=np(e.messages).map(ni),n=bi(e.uiHistory);if(!n||n.length===0)return t;let r=DH(n.map(NH).filter(o=>!!o));return HH(r,t)}i(zu,"restoreHistoryItemsFromSession");async function Mc(e,t){return(await e.list(t,{limit:1e3})).find(r=>r.msgCount>0)}i(Mc,"findMostRecentResumableSession");function Yu(e,t,n){let r=e.trim();return{type:"info",icon:"\u23F3",text:/\bretry\s+\d+\/\d+\b/i.test(r)||/\b\d+\/\d+\b/.test(r)?r:`${r} \xB7 retry ${t}/${n}`}}i(Yu,"createRetryHistoryItem");function xE(e,t,n,r){e(Yu(t,n,r))}i(xE,"emitRetryHistoryItem");function Xu(e){let{recoveryAction:t,attempt:n,maxAttempts:r,delayMs:o,stage:s,fallbackUsed:a}=e,c=Math.round(o/1e3);if(t==="manual_continue")return{type:"info",icon:"\u26A0",text:'Recovery exhausted. Type "continue" to retry or "stop" to cancel.'};if(t==="non_streaming_fallback"||a)return{type:"info",icon:"\u23F3",text:"Stream unstable, switching to non-streaming mode"};if(t==="sanitize_thinking_and_retry")return{type:"info",icon:"\u23F3",text:"Provider rejected replay thinking, sanitizing history and retrying"};let l;switch(s){case"before_first_delta":case"before_request_accepted":l="Provider request timed out";break;case"mid_stream_text":case"mid_stream_thinking":l="Stream interrupted after partial output";break;case"mid_stream_tool_input":l="Stream interrupted during tool input";break;case"post_tool_execution_pre_assistant_close":l="Stream interrupted after tool execution";break;default:l="Stream interrupted";break}let u=t==="stable_boundary_retry"?"recovering":"retrying";return{type:"info",icon:"\u23F3",text:c>0?`${l} \xB7 ${u} ${n}/${r} in ${c}s`:`${l} \xB7 ${u} ${n}/${r}`}}i(Xu,"createRecoveryHistoryItem");function TE(e,t){e(Xu(t))}i(TE,"emitRecoveryHistoryItem");import{jsx as fe,jsxs as On,Fragment as HU}from"react/jsx-runtime";import yA,{useState as Ue,useCallback as X,useRef as Se,useEffect as Be,useMemo as ye}from"react";import{jsx as io,Fragment as jH,jsxs as Jm}from"react/jsx-runtime";var GS=" | ",CE=i(({searchActive:e=!1,selectionActive:t=!1,showAllActive:n=!1,searchQuery:r="",searchCurrent:o=0,searchCount:s=0,searchDetailText:a,pendingLiveUpdates:c=0,secondaryText:l,noticeText:u})=>{let d=ce("dark"),p=r.trim(),h=a?.trim(),m=l?.trim(),g=u?.trim(),x=e?p?`Search /${p}`:"Search":"Transcript",y=e?`Enter jump | n/N next/prev | Ctrl+E ${n?"collapse":"show all"} | Esc close | Ctrl+O/q back`:t?`PgUp/PgDn page | j/k scroll | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | Esc clear focus | Ctrl+O/q back`:`PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | s dump | Ctrl+O/q/Esc back`,C=c>0?c===1?"1 new update":`${c} new updates`:void 0,v=e&&s>0?`${Math.max(0,o)}/${s}`:void 0,_=e&&h||m,E=!!(_||g);return Jm(A,{flexDirection:"column",children:[Jm(A,{paddingX:1,children:[io(k,{color:d.colors.dim,children:x}),io(k,{dimColor:!0,children:GS}),io(k,{color:d.colors.dim,children:y}),v||C?io(A,{flexGrow:1}):null,v?Jm(jH,{children:[io(k,{dimColor:!0,children:v}),C?io(k,{dimColor:!0,children:GS}):null]}):null,C?io(k,{color:d.colors.accent,bold:!0,children:C}):null]}),E?Jm(A,{paddingX:1,children:[_?io(k,{color:d.colors.dim,children:_}):null,_&&g?io(k,{dimColor:!0,children:GS}):null,g?io(k,{color:d.colors.accent,bold:!0,children:g}):null]}):null]})},"TranscriptModeFooter");import{jsx as UH,jsxs as GH}from"react/jsx-runtime";var vE=i(({banner:e,...t})=>GH(A,{flexDirection:"column",children:[e,UH(Si,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as VH,jsxs as KH}from"react/jsx-runtime";var IE=i(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...o})=>KH(A,{flexDirection:"column",children:[e,VH(_m,{...o,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as zH,jsx as YH}from"react/jsx-runtime";var bE=i(({text:e,tone:t="success"})=>{let n=e?.trim();if(!n)return null;let r=ce("dark"),o=t==="warning"?r.colors.warning:r.colors.accent,s=t==="warning"?"!":"\u2713";return YH(A,{paddingX:1,backgroundColor:r.colors.inputBackground,children:zH(k,{color:o,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as Ri,Fragment as XH,jsxs as VS}from"react/jsx-runtime";var qH=" \u23BF ";function JH(e){let t=ce("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;case"red":return t.colors.error;default:return t.colors.dim}}i(JH,"resolveSymbolColor");var QH=i(({row:e})=>{let t=JH(e.symbolColor),n=e.kind!=="item";return VS(A,{flexDirection:"row",children:[Ri(k,{color:t,bold:e.isActive,children:e.symbol}),Ri(k,{children:" "}),Ri(k,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?VS(XH,{children:[Ri(k,{children:" "}),Ri(k,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),RE=i(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=ce("dark").colors.dim;return VS(A,{flexDirection:"row",children:[Ri(k,{color:t,children:qH}),Ri(A,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>Ri(QH,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");import{jsx as qu,jsxs as ZH}from"react/jsx-runtime";var kE=MI;function e2(e){let t=ce("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;case"red":return t.colors.error;default:return t.colors.dim}}i(e2,"resolveSymbolColor");var t2=i(({row:e})=>{let t=e2(e.symbolColor);return ZH(A,{flexDirection:"row",children:[qu(A,{width:kE,flexShrink:0,children:qu(k,{color:t,bold:e.isActive,wrap:"truncate",children:AI(e.symbol,kE)})}),qu(k,{color:e.kind==="hint"?ce("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"WorkflowRunRow");function EE(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}i(EE,"measureWorkflowRunSurfaceRows");var _E=i(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:qu(A,{flexDirection:"column",flexGrow:1,children:e.rows.map((t,n)=>qu(t2,{row:t},`${t.kind}-${t.id??n}`))}),"WorkflowRunSurface");var ME=6;var n2=1;function AE(e){return ne("todo.progress",{completed:e.completedCount,total:e.totalCount})}i(AE,"formatTodoPlanProgressText");function LE(e){if(!e.shouldRender||e.rows.length===0)return[];let t=[ne("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}i(LE,"formatTodoPlanViewModelForTranscript");var PE="\u2610",r2="\u25CF",$E="\u2713",o2="\u2717",i2="\u2298",s2="\u2612";function a2(e){switch(e){case"in_progress":return{symbol:r2,color:"cyan"};case"completed":return{symbol:$E,color:"green"};case"failed":return{symbol:o2,color:"red"};case"skipped":return{symbol:i2,color:"gray"};case"cancelled":return{symbol:s2,color:"gray"};default:return{symbol:PE,color:"dim"}}}i(a2,"symbolForStatus");function c2(e){for(let t=0;t<e.length;t++)if(e[t].status==="in_progress")return t;for(let t=0;t<e.length;t++)if(e[t].status==="pending")return t;for(let t=e.length-1;t>=0;t--)if(e[t].status==="completed")return t;return 0}i(c2,"pickAnchorIndex");function l2(e){let{symbol:t,color:n}=a2(e.status),r=e.status==="failed"&&e.note?`${e.subject} (${e.note})`:e.subject,o=e.status==="cancelled",s=e.evaluator?`[${e.evaluator}]`:void 0;return{kind:"item",id:e.id,symbol:t,symbolColor:n,text:r,isActive:e.status==="in_progress",isStrikethrough:o,evaluatorBadge:s}}i(l2,"buildItemRow");function u2(e){return{kind:"summary_done",symbol:$E,symbolColor:"green",text:ne("todo.summary.done",{count:e}),isActive:!1,summaryCount:e}}i(u2,"buildDoneSummary");function KS(e){return{kind:"summary_pending",symbol:PE,symbolColor:"dim",text:ne("todo.summary.more",{count:e}),isActive:!1,summaryCount:e}}i(KS,"buildPendingSummary");function d2(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}i(d2,"pickFailedToPromote");function f2(e,t){let n=e.length;if(n===0)return{visibleIdx:[],hiddenCompletedCount:0,hiddenPendingCount:0};let r=4,o=Math.max(0,t-1),s=Math.min(n,o+r);s-o<r&&o>0&&(o=Math.max(0,s-r)),s-o<r&&s<n&&(s=Math.min(n,o+r));let a=[];for(let u=o;u<s;u++)a.push(u);let c=0,l=0;for(let u=0;u<o;u++)e[u].status==="completed"&&c++;for(let u=s;u<n;u++){let d=e[u].status;(d==="pending"||d==="in_progress")&&l++}return{visibleIdx:a,hiddenCompletedCount:c,hiddenPendingCount:l}}i(f2,"decideWindow");function OE(e,t){let n=e.length,r=e.reduce((m,g)=>g.status==="completed"?m+1:m,0),o=i((m,g)=>({shouldRender:g,rows:m,completedCount:r,totalCount:n}),"baseVm");if(n<n2)return o([],!1);t.now,t.lastAllCompletedAt;let s=c2(e),a=f2(e,s),c=new Set(a.visibleIdx),l=d2(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 x=u[g];if(x!==s&&e[x].status==="pending"){m=g;break}}if(m>=0){let g=u[m];u[m]=l,p+=1,u.sort((C,v)=>C-v);let x=u[0],y=0;for(let C=0;C<x;C++)e[C].status==="completed"&&y++;d=y}}let h=[];d>0&&h.push(u2(d));for(let m of u)h.push(l2(e[m]));if(p>0&&h.push(KS(p)),h.length>ME)for(;h.length>ME;){let m=!1;for(let g=h.length-1;g>=0;g--){let x=h[g];if(x.kind==="item"&&!x.isActive){h.splice(g,1);let y=h[h.length-1];if(y&&y.kind==="summary_pending"){let C=(y.summaryCount??0)+1;h[h.length-1]=KS(C)}else h.push(KS(1));m=!0;break}}if(!m)break}return o(h,!0)}i(OE,"buildTodoPlanViewModel");function NE(e){let t=[];e.isHistorySearchActive?t.push({id:"search",label:"Search",accent:!0}):e.isTranscriptMode&&t.push({id:"transcript",label:"Transcript"}),e.pendingInputCount>0&&t.push({id:"queue",label:`Queue ${e.pendingInputCount}`}),e.buffering==="buffered-fallback"&&(e.isHistorySearchActive||e.isTranscriptMode)&&t.push({id:"buffered",label:"Buffered"}),e.isTranscriptMode&&e.pendingLiveUpdates>0&&t.push({id:"updates",label:e.pendingLiveUpdates===1?"1 update":`${e.pendingLiveUpdates} updates`,accent:!0});let n=[],r=[...t,...n].map(o=>o.label.trim()).filter(Boolean).join(" | ");return{leftItems:t,rightItems:n,summary:r}}i(NE,"buildFooterHeaderViewModel");function Qm(e,t,n,r){if(r?.contextKind==="child")return null;let o=n?.preCompactionMessages?Je([...n.preCompactionMessages],e):e;return n?.anchor?Af(o,t,n.anchor,n.postCompactAttachments??[]):Je(t,o)}i(Qm,"prepareRootCompactionLineage");function DE(e,t){let n=e.loadFullLineage;if(!n)return e;let r=i(async o=>(await t(),n.call(e,o)),"guardedLoadFullLineage");return new Proxy(e,{get(o,s){if(s==="loadFullLineage")return r;let a=Reflect.get(o,s,o);return typeof a=="function"?a.bind(o):a}})}i(DE,"withSessionHistoryReadBarrier");function BE(){let e=Promise.resolve();return t=>{let n=e.then(t);return e=n.then(()=>{},()=>{}),n}}i(BE,"createConfirmationDialogQueue");function p2(e){return Uv(e.provider,e.model,"off",{longRunning:!0})}i(p2,"evaluateSessionTransitionPolicy");function m2(e,t){let n=t.snapshot.model?`${t.snapshot.provider}:${t.snapshot.model}`:t.snapshot.provider,r=[`[Provider Guardrail] ${e} on ${n}: ${t.summary}`],o=t.issues[0]?.detail;return o&&r.push(` ${o}`),t.status==="block"?r.push(" Switch to a provider with durable full-history session semantics before continuing."):t.status==="warn"&&r.push(" Continuing with degraded session semantics."),r}i(m2,"formatSessionTransitionGuardMessage");function ki(e,t,n){let r=p2(e);if(!r||r.status==="allow")return!0;let[o,...s]=m2(t,r);return n(r.status,o,s),r.status!=="block"}i(ki,"enforceSessionTransitionGuard");function h2(e){switch(e.type){case"message":{let n=(typeof e.message.content=="string"?e.message.content:"[complex content]").replace(/\s+/g," ").trim();return`${e.message.role}: ${n.slice(0,48)}${n.length>48?"...":""}`}case"compaction":return`compaction: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;case"branch_summary":return`branch: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;case"archive_marker":return`archived: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;default:return e}}i(h2,"summarizeEntry");function FE(e,t,n,r){let o=t?n?"\\- ":"|- ":"",s=e.active?"*":" ",a=e.entry.id.slice(0,12),c=e.label?` [${e.label}]`:"";r.push(`${t}${o}${s} ${a} ${h2(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,d)=>{FE(u,l,d===e.children.length-1,r)})}i(FE,"formatNode");function Zm(e){let t=[];return e.forEach((n,r)=>{FE(n,"",r===e.length-1,t)}),t}i(Zm,"formatSessionTree");function WE(e,t){return e!==null&&e.attempt===t.attempt&&e.maxAttempts===t.maxAttempts&&e.waitMs===t.delayMs}i(WE,"isDuplicateLegacyRateLimit");var g2=100,y2=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,jE=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,UE=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,GE=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function Ac(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(Ac,"readString");function yn(e,t,n){n&&e.push({label:t,value:n})}i(yn,"pushField");function S2(e){return e.replace(/\s+/g," ").trim()}i(S2,"normalizeWhitespace");function w2(e,t){if(e.length<=t)return e;let n=Math.ceil((t-3)/2),r=Math.floor((t-3)/2);return`${e.slice(0,n)}...${e.slice(e.length-r)}`}i(w2,"truncateMiddle");function x2(e){let t=e;return t=t.replace(/\b(authorization\s*:\s*bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b((?:authorization|cookie)\s*:\s*)([^'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(api[_-]?key|access[_-]?token|refresh[_-]?token|token|secret|password|passwd|cookie|session)\b(\s*[:=]\s*)(['"]?)([^'"\s]+)(\3)/gi,(n,r,o,s)=>`${r}${o}${s}[REDACTED]${s}`),t=t.replace(/(--(?:api-key|token|secret|password|cookie)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/((?:-u|--user)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t}i(x2,"maskSensitiveSegments");function HE(e){return w2(x2(S2(e)),g2)}i(HE,"summarizeCommand");function T2(e){return Gn(e)?ne("intent.read"):jE.test(e)?ne("intent.delete"):UE.test(e)?ne("intent.deps"):Mr(e)||GE.test(e)?ne("intent.modify"):ne("intent.execute")}i(T2,"classifyShellIntent");function C2(e){let t=[];return jE.test(e)?t.push(ne("risk.destructive")):UE.test(e)?t.push(ne("risk.deps")):Mr(e)||GE.test(e)?t.push(ne("risk.modify")):Gn(e)||t.push(ne("risk.unknown")),y2.test(e)&&t.push(ne("risk.network")),t}i(C2,"classifyShellRisks");function v2(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}i(v2,"readSignals");function I2(e){if(e){if(e.some(t=>t.kind==="protected_path"))return ne("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return ne("scope.outside")}}i(I2,"scopeFromSignals");function b2(e){if(e._outsideProject===!0)return ne("scope.outside");if(e._alwaysConfirm===!0)return ne("scope.protected")}i(b2,"scopeFromMarkers");function R2(e){if(!e)return[];let t=[],n=e.some(o=>o.kind==="dangerous_pattern"&&o.severity==="high"),r=e.some(o=>o.kind==="dangerous_pattern"&&o.severity==="medium");return n?t.push(ne("risk.destructive")):r&&t.push(ne("risk.modify")),e.some(o=>o.kind==="network")&&t.push(ne("risk.network")),e.some(o=>o.kind==="package_install")&&t.push(ne("risk.deps")),t}i(R2,"risksFromSignals");var k2={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function E2(e){return ne(k2[e])}i(E2,"localizeFieldLabel");function Lc(e,t){return{title:e,fields:t,details:t.map(n=>`${E2(n.label)}: ${n.value}`)}}i(Lc,"buildDisplayFromFields");function eh(e,t){if(e==="confirm"){let l=Ac(t._message);if(l)return Lc(l,[])}if(e==="exit_plan_mode"){let l=Ac(t.plan),u="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:u,fields:[],details:l.split(`
|
|
78
|
+
`)}:Lc(u,[])}let n=[],r=Ac(t.path),o=Ac(t.command),s=Ac(t._reason)??Ac(t.justification),a=v2(t._classifierSignals),c=I2(a)??b2(t);switch(yn(n,"Reason",s),e){case"bash":case"shell_command":{if(o){yn(n,"Intent",T2(o)),yn(n,"Scope",c);let l=R2(a),u=l.length>0?l:C2(o);u.length>0&&yn(n,"Risk",u.join("; ")),yn(n,"Summary",HE(o))}else yn(n,"Scope",c);return Lc(e==="bash"?ne("tool.bash.title"):ne("tool.shell.title"),n)}case"write":return yn(n,"Intent",ne("intent.write_file")),yn(n,"Target",r),yn(n,"Scope",c),Lc(ne("tool.write.title"),n);case"edit":return yn(n,"Intent",ne("intent.edit_file")),yn(n,"Target",r),yn(n,"Scope",c),Lc(ne("tool.edit.title"),n);default:return yn(n,"Intent",ne("intent.use_tool",{tool:e})),yn(n,"Target",r),yn(n,"Scope",c),o&&yn(n,"Summary",HE(o)),Lc(ne("tool.generic.title",{tool:e}),n)}}i(eh,"buildToolConfirmationDisplay");function VE(e,t){let n=eh(e,t);return n.details.length>0?`${n.title}
|
|
79
|
+
${n.details.join(`
|
|
80
|
+
`)}`:n.title}i(VE,"buildToolConfirmationPrompt");function KE(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(KE,"truncateToolPreview");function zE(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(zE,"truncateToolOutputPreview");function zS(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}i(zS,"stripToolRolePrefix");function YS(e){return zS(e).toLowerCase()}i(YS,"normalizeToolNameForMatch");function XS(e){return e===`[${ne("managed.completed")}]`||e===`[${ne("managed.completed.blocked")}]`||e===`[${ne("managed.completed.continuation")}]`}i(XS,"isCompletionTranscriptItem");function th(e,t){if(!e||!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^\\[Tools\\]\\s+\\[${n}\\]\\s+`,"i"),"[Tools] ").replace(new RegExp(`^\\[Thinking\\]\\s+\\[${n}\\]\\s*`,"i"),"[Thinking] ").replace(new RegExp(`^\\[${n}\\]\\s+thinking\\b`,"i"),"[Thinking]").trim()}i(th,"formatManagedLiveActivityLabel");function Do(e,t){return th(`[Tools] ${cm(e)}`,t)??`[Tools] ${cm(e)}`}i(Do,"formatManagedLiveToolLabel");function nh(e,t){if(e.type!==t.type)return!1;switch(e.type){case"assistant":{let n=t;return e.text===n.text&&e.compactText===n.compactText}case"thinking":{let n=t;return e.text===n.text&&e.compactText===n.compactText}case"event":{let n=t;return e.text===n.text&&e.compactText===n.compactText&&e.icon===n.icon}case"info":{let n=t;return e.text===n.text&&e.compactText===n.compactText&&e.icon===n.icon}case"error":case"hint":case"system":case"user":{let n=t;return e.text===n.text}case"tool_group":{let n=t;return JSON.stringify(e.tools)===JSON.stringify(n.tools)}default:return!1}}i(nh,"areManagedLiveItemsEquivalent");function YE(e){return e==="Task completed"?ne("managed.completed"):e==="Task needs continuation"?ne("managed.completed.continuation"):e==="Task ended: blocked"?ne("managed.completed.blocked"):e==="Task ended: needs_continuation"?ne("managed.completed.continuation"):e.startsWith("Task ended:")?ne("managed.completed.blocked"):e}i(YE,"localizeManagedCompletionSummary");function XE(e,t){let n=e.trim();return t.trim()?n?e===t?e:t.startsWith(e)?t:e.startsWith(t)?e:t:t:e}i(XE,"mergeLiveThinkingContent");function Pc(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,r=e.activeWorkerTitle?`${e.agentMode.toUpperCase()} ${e.activeWorkerTitle}`:e.agentMode.toUpperCase(),o=e.activeWorkerTitle??"Scout",s=`${e.agentMode.toUpperCase()} ${o}`,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} - ${o} 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}}i(Pc,"formatManagedTaskBreadcrumb");var qE=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function JE(e){if(e.events&&e.events.length>0)return e.events.reduce((r,o)=>{let s=o.summary.trim(),a=(o.detail??o.summary).trim();if(!s||!a)return r;let c=`managed-live-${o.key}`,l=Date.now(),u=o.persistToHistory??e.persistToHistory??!1;if(o.presentation==="thinking")return r.push({item:{id:c,type:"thinking",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;if(o.presentation==="assistant")return r.push({item:{id:c,type:"assistant",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;let d=o.kind==="completed";if(d&&!qE)return r;let p=d?`[${YE(s)}]`:void 0,h=p??s,m=p??a;return r.push({item:{id:c,type:"event",timestamp:l,text:m,icon:o.kind==="warning"?"!":d?"\u2713":">",...h!==m?{compactText:h}:{}},persistToHistory:u}),r},[]);if(e.phase==="completed"&&!qE)return[];let t=Pc(e),n=Pc(e,{expanded:!0})??t;return!t||!n?[]:[{item:{id:`managed-live-fallback-${e.phase??"worker"}-${t.toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48)}`,type:"event",timestamp:Date.now(),text:n,icon:">",...t!==n?{compactText:t}:{}},persistToHistory:e.persistToHistory??!1}]}i(JE,"buildManagedLiveEventDrafts");function _2(e,t){return!(t||e.role!=="evaluator"||e.signal!=="COMPLETE")}i(_2,"shouldFilterSidecarAcceptEntry");function qS(e,t){let n=e.managedTask;if(!n)return[];let r=t?.verifierLog??process.env.KODAX_VERIFIER_LOG==="1",o=i(d=>{if(!e.interrupted&&!n.verdict.signalReason?.includes("Orchestration cancelled"))return!1;let p=d.signalReason?.trim()??"",h=d.summary?.trim()??"",m=d.output?.trim()??"",g=p.includes("Orchestration cancelled"),x=h.includes("Orchestration cancelled"),y=!m||h==="No textual output produced.";return d.status!=="completed"&&(g||x||y)||(g||x)&&y},"isInterruptedCancellation"),s=new Map(n.roleAssignments.map((d,p)=>[d.id,p])),a=n.verdict.decidedByAssignmentId,c=Math.max(0,...n.evidence.entries.filter(d=>d.assignmentId===a).map(d=>d.round??1)),l=[...n.evidence.entries].sort((d,p)=>{let h=(d.round??1)-(p.round??1);return h!==0?h:(s.get(d.assignmentId)??0)-(s.get(p.assignmentId)??0)}).filter(d=>!o(d)).filter(d=>!_2(d,r)).filter(d=>e.interrupted||!(d.assignmentId===a&&(d.round??1)===c)).map(d=>{let p=d.output?.trim()??"",h=d.summary?.trim()??"",m=p?ja(p):"",g=h?ja(h):"",x=d.role==="scout"?g?`Scout completed: ${g}`:"Scout completed.":g;return{entry:d,text:g||m||x}}).filter(({text:d})=>!!d).map(({entry:d,text:p})=>{let h=d.role==="scout"?" Preflight":(d.round??1)>1?` Round ${d.round}`:"";return`[${d.role==="evaluator"?`\u26A1 Sidecar Verifier${h}`:`${d.title??d.assignmentId}${h}`}]
|
|
81
|
+
${p}`}),u=n.verdict.disposition==="complete"?ne("managed.completed"):n.verdict.disposition==="needs_continuation"?ne("managed.completed.continuation"):n.verdict.disposition==="blocked"?ne("managed.completed.blocked"):void 0;return[...l,...u?[`[${u}]`]:[]]}i(qS,"buildManagedTaskTranscriptItems");function QE(e){let r=e.slice(0,400).match(new RegExp("\\*\\*([^*\\n]{1,80}?)\\*\\*"))?.[1]?.trim();return r?{header:r}:{}}i(QE,"extractBoldHeader");var JS=[" \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 rh=class e{static{i(this,"ShortcutsRegistry")}static instance=null;shortcuts=new Map;static getInstance(){return e.instance||(e.instance=new e),e.instance}static resetInstance(){e.instance=null}register(t){let n=this.shortcuts.get(t.id);this.shortcuts.set(t.id,{definition:t,effectiveBindings:n?.effectiveBindings??t.defaultBindings,handler:n?.handler})}registerAll(t){for(let n of t)this.register(n)}unregister(t){return this.shortcuts.delete(t)}setHandler(t,n){let r=this.shortcuts.get(t);r&&(r.handler=n)}findMatchingShortcut(t,n){let r=null,o=-1/0;for(let s of this.shortcuts.values()){let a=s.definition.context;a!=="global"&&a!==n||this.matchesBinding(t,s.effectiveBindings)&&s.handler&&s.definition.priority>o&&(o=s.definition.priority,r=s)}return r}matchesBinding(t,n){for(let r of n){let o=this.normalizeKeyName(t.name),s=this.normalizeKeyName(r.key);if(o===s){let a=(r.ctrl??!1)===t.ctrl,c=(r.shift??!1)===t.shift,l=(r.meta??!1)===t.meta;if(a&&c&&l)return!0}}return!1}normalizeKeyName(t){let n={return:"enter",esc:"escape",del:"delete",backspace:"backspace"," ":"space"},r=t.toLowerCase();return n[r]??r}executeShortcut(t,n){let r=this.findMatchingShortcut(t,n);return r?.handler?r.handler(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 ")}},so=i(()=>rh.getInstance(),"getShortcutsRegistry");import{useEffect as M2,useCallback as A2,useRef as L2}from"react";function Bo(e,t,n={}){let{context:r,isActive:o=!0}=n,s=so(),a=L2(t);a.current=t,M2(()=>(s.setHandler(e,u=>a.current(u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=A2(u=>{if(!o)return!1;let p=s.getAllShortcuts().find(x=>x.definition.id===e);if(!p)return!1;let h=r??p.definition.context,m=h==="global"?"input":h,g=s.findMatchingShortcut(u,m);return g&&g.definition.id===e?a.current(u)===!0:!1},[s,e,o,r]),l=P2(e,s);Kn(c,{isActive:o,priority:l})}i(Bo,"useShortcut");function P2(e,t){let r=t.getAllShortcuts().find(o=>o.definition.id===e);return r?r.definition.priority:0}i(P2,"getShortcutPriority");import $2,{createContext as O2,useContext as N2,useState as ZE,useCallback as QS}from"react";var e_=O2(null);function ZS({children:e,initialContext:t="input"}){let[n,r]=ZE(!1),[o,s]=ZE(t);so().registerAll(Oa);let c=QS(()=>{r(p=>!p)},[]),l=QS(()=>{let h=so().getAllShortcuts(),m={global:[],mode:[],navigation:[],editing:[]};for(let g of h){let x=g.definition.category;m[x]||(m[x]=[]),m[x].push(g)}return m},[]),u=QS(()=>so().getShortcutsByContext(o),[o]),d={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:o,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return $2.createElement(e_.Provider,{value:d},e)}i(ZS,"ShortcutsProvider");function ew(){let e=N2(e_);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}i(ew,"useShortcutsContext");import D2 from"chalk";var t_={off:0,minimal:1,low:2,medium:3,high:4,xhigh:5,max:6,auto:7};function B2(e,t){let n=e.indexOf(t);if(n!==-1)return n;let r=t_[t];if(r===void 0)return-1;let o=-1,s=-1;for(let a=0;a<e.length;a++){let c=t_[e[a]];c===void 0||c>r||c>s&&(s=c,o=a)}return o}i(B2,"nearestCycleIndex");function tw({currentConfig:e,setCurrentConfig:t,isLoading:n,abort:r,stopThinking:o,clearThinkingContent:s,setCurrentTool:a,setIsLoading:c,onToggleHelp:l,setShowHelp:u,onSetThinking:d,onSetReasoningMode:p,onToggleTranscriptMode:h,onOpenTranscriptSearch:m,canOpenTranscriptSearch:g=!0,isInteractiveDialogActive:x=!1,onSetAgentMode:y,onSetPermissionMode:C,isInputEmpty:v,onSavePermissionMode:_}){let E=i(R=>R?.name?.toLowerCase()==="c"&&R.ctrl===!0,"isCtrlCInterrupt");return Bo("interrupt",R=>E(R)&&n?(r(),o(),s(),a(void 0),c(!1),console.log(D2.yellow(`
|
|
82
|
+
[Interrupted]`)),!0):!1,{isActive:n}),Bo("showHelp",()=>x?!1:v?(l(),!0):!1,{isActive:v}),Bo("toggleThinking",()=>{if(x)return!1;let R=Gv(e.provider,e.model);if(R.length===0)return!1;let I=e.permissionMode==="plan"&&!e.effortOverride&&e.planModeEffort!==void 0?e.planModeEffort:e.effortOverride?e.effort:void 0,$=B2(R,I===void 0||I==="auto"?"auto":I==="none"?"off":I),D=R[($+1)%R.length]??R[0],z=D==="auto"?void 0:D==="off"?"none":D,re=D!=="auto",q=D!=="off",S=D==="off"?"off":"auto";return t(L=>({...L,effort:z,effortOverride:re,thinking:q,reasoningMode:S})),rs({effort:z,thinking:q,reasoningMode:S}),p?.(S),d?.(q),u(!1),!0}),Bo("toggleTranscriptMode",()=>x?!1:(h?.(),u(!1),!0)),Bo("openTranscriptSearch",()=>x||!g?!1:(m?.(),u(!1),!0)),Bo("togglePermissionMode",()=>{if(x)return!1;let R=["plan","accept-edits","auto"],I=e.permissionMode==="auto-in-project"?"auto":e.permissionMode,$=(R.indexOf(I)+1)%R.length,D=R[$];return t(z=>({...z,permissionMode:D})),C?.(D),_?.(D),u(!1),!0}),Bo("toggleAgentMode",()=>{if(x)return!1;let R=vI(e.agentMode);return t(I=>({...I,agentMode:R})),rs({agentMode:R}),y?.(R),u(!1),!0}),null}i(tw,"GlobalShortcuts");import{exec as F2}from"child_process";import{promisify as W2}from"util";var H2=W2(F2),j2={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function n_(e){let t=[],n="",r=0;for(let o of e){if(o===","&&r===0){n.trim()&&t.push(n.trim()),n="";continue}o==="("?r++:o===")"&&r>0&&r--,n+=o}return n.trim()&&t.push(n.trim()),t}i(n_,"splitTopLevelCommaList");function U2(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:n_(e).map(r=>{if(r==="*")return{tool:"*"};if(r.includes("(")&&!r.endsWith(")")){t.push(r);return}let o=r.match(/^([^(]+?)(?:\((.*)\))?$/);if(!o){t.push(r);return}let s=j2[o[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=o[2]?n_(o[2]).map(c=>c.trim()).filter(Boolean):void 0;return{tool:s,patterns:a&&a.length>0?a:void 0}}).filter(r=>r!==void 0),invalidEntries:t}}i(U2,"parseAllowedTools");function G2(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}i(G2,"wildcardToRegExp");function r_(e,t){return G2(e).test(t)}i(r_,"matchesPattern");function o_(e,t,n){if(!e.configured)return!0;if(e.rules.length===0)return!1;let r=t.toLowerCase(),o=r==="bash"?String(n.command??"").trim():"";return e.rules.some(s=>s.tool!=="*"&&s.tool!==r?!1:!s.patterns||s.patterns.length===0||r!=="bash"?!0:s.patterns.some(a=>r_(a,o)))}i(o_,"isToolAllowed");function V2(e,t){return e.matcher?r_(e.matcher,t):!0}i(V2,"hookMatches");function K2(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(`
|
|
83
|
+
`)}i(K2,"formatManualOutput");function z2(e,t){if(!t)return;let n=t.trim();if(n){if(!["haiku","sonnet","opus"].includes(n))return n;if(e==="anthropic")switch(n){case"haiku":return"claude-3-5-haiku-latest";case"opus":return"claude-opus-4-1";default:return"claude-sonnet-4-6"}}}i(z2,"resolveModelOverride");async function Y2(e,t,n,r,o,s){let a=typeof n.displayName=="string"?n.displayName:"frontmatter invocation",c={command:t.command,_reason:`Frontmatter hook ${e} for ${a}`,_frontmatterHook:!0,_hookEvent:e,_hookMatcher:t.matcher};if(!o_(s,"bash",c))return{allow:!1,message:`Hook ${e} for ${a} is blocked by allowed-tools policy.`};if(o.beforeToolExecute&&!await o.beforeToolExecute("bash",c))return{allow:!1,message:`Hook ${e} for ${a} was blocked by the current permission policy.`};try{let{stdout:l,stderr:u}=await H2(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(`
|
|
84
|
+
`);d&&o.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)}`),{}}}i(Y2,"executeHookCommand");async function $c(e,t,n,r,o,s,a){let c=e?.[t];if(!c||c.length===0)return{};let l={};for(let u of c){if(!V2(u,n))continue;let d=await Y2(t,u,r,o,s,a);if(d.message&&await o(`[Hook ${t}] ${d.message}`),d.additionalContext&&(l.additionalContext=l.additionalContext?`${l.additionalContext}
|
|
85
|
+
${d.additionalContext}`:d.additionalContext),d.allow===!1){l.allow=!1;break}}return l}i($c,"runHooks");async function oh(e,t,n,r){if(t.disableModelInvocation)return{mode:"manual",manualOutput:K2(t),finalize:i(async()=>{},"finalize")};let o=e.events??{},s=U2(t.allowedTools),a=z2(e.provider,t.model),c=!1,l=i(async y=>{if(r(y),!(c||!t.hooks?.Notification?.length)){c=!0;try{await $c(t.hooks,"Notification",y,{displayName:t.displayName,source:t.source,path:t.path,message:y},async C=>{r(C)},o,s)}finally{c=!1}}},"emitWithNotifications");t.model&&!a&&await l(`[Info] Model preference '${t.model}' is not supported by provider '${e.provider}', using the current model.`),s.invalidEntries.length>0&&await l(`[Warning] ${t.displayName} has invalid allowed-tools entries: ${s.invalidEntries.join(", ")}`),s.configured&&s.rules.length===0&&await l(`[Warning] ${t.displayName} has no valid allowed-tools entries, so all tool execution will be blocked.`);let u=await $c(t.hooks,"SessionStart",t.displayName,{displayName:t.displayName,source:t.source,path:t.path},l,o,s);if(u.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped before execution.`,finalize:i(async()=>{},"finalize")};let d=await $c(t.hooks,"UserPromptSubmit",n,{displayName:t.displayName,source:t.source,prompt:n,path:t.path},l,o,s);if(d.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped by a UserPromptSubmit hook.`,finalize:i(async()=>{},"finalize")};let p=[t.agent?`Preferred agent: ${t.agent}`:void 0,u.additionalContext,d.additionalContext].filter(y=>typeof y=="string"&&y.trim().length>0),h=[p.length>0?p.join(`
|
|
86
|
+
|
|
87
|
+
`):void 0,t.prompt,`User request: ${n}`].filter(y=>typeof y=="string"&&y.trim().length>0),m={...o,beforeToolExecute:i(async(y,C,v)=>o_(s,y,C)?(await $c(t.hooks,"PreToolUse",y,{tool:y,input:C,displayName:t.displayName,source:t.source,path:t.path},l,o,s)).allow===!1?(await l(`[Blocked] PreToolUse hook blocked '${y}' for ${t.displayName}`),!1):o.beforeToolExecute?await o.beforeToolExecute(y,C,v):!0:(await l(`[Blocked] Tool '${y}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:i((y,C)=>{o.onToolResult?.(y,C),$c(t.hooks,"PostToolUse",y.name,{...y,displayName:t.displayName,source:t.source,path:t.path},l,o,s)},"onToolResult")},g=!1,x=i(async y=>{g||(g=!0,await $c(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:y?.message},l,o,s))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:h.join(`
|
|
88
|
+
|
|
89
|
+
`),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:x}}i(oh,"prepareInvocationExecution");import{appendFileSync as X2,mkdirSync as q2,writeFileSync as J2}from"node:fs";import{join as s_}from"node:path";import i_ from"node:v8";var ow=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),iw=ow>=1,sw=bo(),a_=s_(sw,"memory-diag.log"),nw=0,rw=!1;function c_(){if(!rw)try{q2(sw,{recursive:!0}),rw=!0}catch{rw=!0}}i(c_,"ensureLogDir");function Q2(e){c_();try{X2(a_,e+`
|
|
90
|
+
`)}catch{}}i(Q2,"writeLog");function Dt(e){return`${(e/1024/1024).toFixed(2)}MB`}i(Dt,"formatMB");function Z2(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}i(Z2,"tryGC");function Mt(e){return e?e.length*2:0}i(Mt,"strBytes");function Ms(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+=Ms(r,t+1);return n}if(typeof e=="object"){let n=64;for(let[r,o]of Object.entries(e))n+=r.length*2,n+=Ms(o,t+1);return n}return 16}i(Ms,"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 o of t.content)n+=l_(o);typeof t.partial_json=="string"&&(n+=t.partial_json.length*2),typeof t.data=="string"&&(n+=t.data.length*2),typeof t.signature=="string"&&(n+=t.signature.length*2),typeof t.path=="string"&&(n+=t.path.length*2),t.input!==void 0&&(n+=Ms(t.input));for(let[o,s]of Object.entries(t))r.has(o)||(n+=o.length*2+Ms(s));return n}i(l_,"estimateBlockBytes");function aw(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}i(aw,"estimateMessageBytes");function Ju(e){let t=128;switch(t+=Mt(e.id)+Mt(e.parentId??void 0)+Mt(e.timestamp),e.type){case"message":return t+aw(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+=Ms(e.details)),e.memorySeed!==void 0&&(t+=Ms(e.memorySeed)),t;case"branch_summary":return t+=Mt(e.summary),t+=Mt(e.fromId),e.details!==void 0&&(t+=Ms(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}}i(Ju,"estimateEntryBytes");function ej(e){let t={},n=[];for(let o=0;o<e.length;o++){let s=e[o],a=aw(s);n.push({index:o,role:s.role,bytes:a});let c=t[s.role]??{count:0,bytes:0};c.count++,c.bytes+=a,t[s.role]=c}return n.sort((o,s)=>s.bytes-o.bytes),{totalBytes:n.reduce((o,s)=>o+s.bytes,0),biggest:n.slice(0,5),byRole:t}}i(ej,"buildMessageBreakdown");function ih(){return iw}i(ih,"memDiagEnabled");function sh(e,t){if(!iw)return;e==="turn-start"&&nw++;let n=process.memoryUsage(),r=new Date().toISOString(),o=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${nw} phase=${e} @${r} \u2550\u2550\u2550`,` V8 heap: used=${Dt(n.heapUsed)} total=${Dt(n.heapTotal)} rss=${Dt(n.rss)} ext=${Dt(n.external)}`," \u2500\u2500 Data breakdown \u2500\u2500",` context.messages: ${t.messageCount} msgs, ${Dt(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: ${Dt(t.lineageNonMessageBytes)} (sidecar payloads)`,` lineage orphan messages: ${t.lineageOrphanMessageCount} msgs, ${Dt(t.lineageOrphanMessageBytes)} (in lineage but not in context.messages \u2014 branches/pruned)`,` UI history: ${t.historyItemCount} items, ${Dt(t.historyTextBytes)}`,` foreground turn: ${t.foregroundItemCount} items, ${Dt(t.foregroundTextBytes)}`,` streaming response: ${Dt(t.streamingResponseBytes)}`,` streaming thinking: ${Dt(t.streamingThinkingBytes)}`,` persisted UI history: ${t.persistedUiHistoryCount} items, ${Dt(t.persistedUiHistoryBytes)}`];if(o.length>0){s.push(" \u2500\u2500 Top 5 biggest messages \u2500\u2500");for(let u of o)s.push(` [${u.index}] role=${u.role} ${Dt(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=${Dt(u.space_used_size)} allocated=${Dt(u.space_size)}`);if(s.push(" \u2500\u2500 Summary \u2500\u2500"),s.push(` tracked data total: ${Dt(a)}`),s.push(` V8 heap used: ${Dt(n.heapUsed)}`),s.push(` unaccounted (overhead): ${Dt(n.heapUsed-a)}`),s.push(" (React/Ink tree, provider SDK buffers, module metadata,"),s.push(' tokenizer caches, source maps \u2014 see "Blind spots" note)'),Z2()){let u=process.memoryUsage();s.push(` after forced GC: heap=${Dt(u.heapUsed)} (freed ${Dt(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(ow>=2)try{let u=s_(sw,`heap-turn${nw}-${e}.heapsnapshot`);i_.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}Q2(s.join(`
|
|
91
|
+
`))}i(sh,"memDiagSnapshot");function ah(e,t,n){let r=ej(e),o=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++,o.has(v.message)||(c++,a+=aw(v.message));break;case"compaction":l++,s+=Ju(v);break;case"branch_summary":u++,s+=Ju(v);break;case"label":d++,s+=Ju(v);break;case"archive_marker":p++,s+=Ju(v);break;case"rewind_marker":h++,s+=Ju(v);break}let x=0;for(let v of n.historyItems)x+=Mt(v.text);let y=0;for(let v of n.foregroundItems)y+=Mt(v.text);let C=0;for(let v of n.persistedUiHistory)C+=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:x,foregroundItemCount:n.foregroundItems.length,foregroundTextBytes:y,streamingResponseBytes:Mt(n.streamingResponse),streamingThinkingBytes:Mt(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:C}}i(ah,"buildMemDiagBreakdown");function u_(){if(iw){c_();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${ow} 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(`
|
|
92
|
+
`);J2(a_,t+`
|
|
93
|
+
`)}catch{}}}i(u_,"memDiagReset");import tj from"node:fs";import lw from"node:path";var nj={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},rj=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function oj(e){return nj[lw.extname(e).toLowerCase()]}i(oj,"resolveImageMediaType");var cw="[Image unavailable]";function ij(e){return""}i(ij,"buildImageAnchor");function Oc(e,t){let n=[],r=[],o=new Set,s=new Map,a=new Set,c=[],l=0;for(let d of e.matchAll(rj)){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=oj(h);if(!m){c.push(d[0]),l=p+d[0].length;continue}let g=lw.resolve(t,h);try{if(!tj.statSync(g).isFile()){a.has(g)||(r.push(`[Image input skipped] ${h} is not a file.`),a.add(g)),c.push(cw),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(cw),l=p+d[0].length;continue}if(!o.has(g)){o.add(g);let x=ij(n.length+1);s.set(g,x),n.push({kind:"image",path:g,mediaType:m,source:"user-inline",description:`Attached image ${lw.basename(g)}`})}c.push(s.get(g)??cw),l=p+d[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:mv(u,n),inputArtifacts:n,warnings:r}}i(Oc,"preparePromptInputArtifacts");function d_(e){let t=sj(e.stage),n=aj(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}i(d_,"createRepoIntelTraceHistoryItem");function sj(e){switch(e){case"routing":return"routing";case"preturn":return"preturn";case"module":return"module";case"impact":return"impact";case"task-snapshot":return"task-snapshot";default:return String(e)}}i(sj,"stageDisplayName");function aj(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(`${cj(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?lj(e.summary):t.join(" \xB7 ")}i(aj,"buildRepoIntelDetailLine");function cj(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(cj,"formatTokens");function lj(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}i(lj,"stripSummaryStagePrefix");function f_(e,t,n,r,o){let s=e?.gitRoot??t??void 0,a=e?.executionCwd??o??s??process.cwd();return{...e,gitRoot:s,executionCwd:a,contextTokenSnapshot:n,taskSurface:"repl",skillsPrompt:r}}i(f_,"buildManagedRunContext");var uj=["global","mode","navigation","editing"],dj={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},fj={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},pj={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 mj(e){let t=so(),n=t.getAllShortcuts().find(o=>o.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let r=Oa.find(o=>o.id===e);if(r?.defaultBindings?.length)return t.formatBindings(r.defaultBindings)}i(mj,"resolveShortcutBindingLabel");function hj(e){return`${mj(e.id)??e.id} ${e.name}`}i(hj,"buildMenuItemLabel");function gj(e){return so().getAllShortcuts().find(r=>r.definition.id===e)?.definition??Oa.find(r=>r.id===e)}i(gj,"resolveShortcutDefinition");function ch(){return[...uj.map(t=>{let n=dj[t].map(r=>gj(r)).filter(r=>!!r).map(r=>({id:r.id,label:hj(r)}));return{id:t,title:fj[t],items:n}}).filter(t=>t.items.length>0),pj]}i(ch,"buildHelpMenuSections");var uw=2,p_=1,m_=4;function pt(e,t){let n=bn(e.length>0?e.split(`
|
|
94
|
+
`):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}i(pt,"wrapLineCount");function yj(e,t,n=">"){let r=n.length+1,o=Math.max(20,t-r),s=bn(e.length>0?e.split(`
|
|
95
|
+
`):[""],o,0,0);return Math.max(1,s.visualLines.length)+2}i(yj,"calculateInputPromptRows");function h_(e){let{terminalRows:t,terminalWidth:n,windowedTranscript:r=!1,inputText:o,inputPrompt:s=">",footerHeaderText:a,activitySummary:c,pendingInputSummary:l,stashNoticeSummary:u,notificationSummary:d,statusNoticeSummary:p,workStripText:h,suggestionsReserved:m,suggestionsMode:g="inline",showHelp:x,statusBarText:y,confirmPrompt:C,confirmInstruction:v,uiRequest:_,dialogMode:E="inline",historySearch:R,maxVisibleSelectOptions:I=5,reviewHint:W,todoSurfaceRows:$=0,workflowSurfaceRows:D=0,childActivitySurfaceRows:z=0,activityBarVisible:re=!1}=e,q=Math.max(0,Math.floor($)),S=Math.max(0,Math.floor(D)),L=Math.max(0,Math.floor(z)),ee=a?pt(a,Math.max(1,n-2)):0,j=c?pt(c,Math.max(1,n-2)):0,ae=re?1:j,de=l?pt(l,Math.max(1,n-2)):0,me=u?pt(u,Math.max(1,n-2)):0,be=d?pt(d,Math.max(1,n-2)):0,pe=p?pt(p,Math.max(1,n-2)):0,we=h?pt(h,Math.max(1,n-2)):0,Pe=yj(o,n,s),Q=m?8:0,se=x?p_+m_+ch().reduce((Xe,Lt)=>Xe+pt(Lt.title,Math.max(1,n-uw))+pt(Lt.items.map(Zt=>Zt.label).join(" | "),Math.max(1,n-uw)),0):0,Te=pt(y,Math.max(1,n-2)),nt=0;if(C&&v){let Xe=Math.max(1,n-4);nt=3+pt(`[Confirm] ${C}`,Xe)+pt(v,Xe)}let It=0,ze=0;if(_){let Xe=Math.max(1,n-4);_.kind==="select"?(ze=Math.min(I,_.options.length),It=3+pt(`[Select] ${_.title}`,Xe)+_.options.slice(0,ze).reduce((Lt,Zt,Zn)=>Lt+pt(`${Zn+1}. ${Zt.label}${Zt.description?` - ${Zt.description}`:""}`,Xe),0)+(_.options.length>ze?2:0)+pt(`Choice: ${_.buffer||"(type a number)"}`,Xe)+1+(_.error?pt(_.error,Xe):0)):It=3+pt(`[Input] ${_.prompt}`,Xe)+(_.defaultValue!==void 0?pt(`Default: ${_.defaultValue}`,Xe):0)+pt(`Value: ${_.buffer||"(type your response)"}`,Xe)+1+(_.error?pt(_.error,Xe):0)}let Ge=0;if(R){let Xe=Math.max(1,n-4);Ge=3+pt(`Query: ${R.query||"(type to search)"}`,Xe)+(R.matchCount===0?pt("No matches yet",Xe):pt(`${Math.max(1,R.matchCount)} matches`,Xe)+pt(R.selectedExcerpt||"",Xe))+1}let he=W?pt(W,Math.max(1,n-2)):0,Ie=ee+ae+S+q+L+de+me+be+Pe+se+pe+he+(g==="inline"?Q:0)+(E==="inline"?nt+It+Ge:0),G=(g==="overlay"?Q:0)+(E==="overlay"?nt+It+Ge:0),Fe=Ie+we+Te,wt=Math.max(1,t-Fe);return{messageRows:wt,reservedBottomRows:Fe,headerRows:ee,activityRows:ae,pendingInputRows:de,stashNoticeRows:me,notificationRows:be,workStripRows:we,inputRows:Pe,suggestionsRows:Q,helpRows:se,statusNoticeRows:pe,statusRows:Te,confirmRows:nt,uiRequestRows:It,historySearchRows:Ge,footerRows:Ie,overlayRows:G,visibleSelectOptions:ze,reviewHintRows:he,todoSurfaceRows:q,workflowSurfaceRows:S,childActivitySurfaceRows:L,slots:[{name:"transcript",rows:wt},{name:"footer",rows:Ie},{name:"overlay",rows:G},{name:"status",rows:Te},{name:"task-bar",rows:we}]}}i(h_,"calculateViewportBudget");function g_(e,t={}){let n=ds(e,{rendererMode:t.rendererMode??"owned"});return{hostProfile:e,surface:"prompt",buffering:n.bufferingMode,ownsViewportByDefault:n.ownsViewportByDefault,supportsMouseTracking:n.supportsMouseTracking,supportsFullscreenLayout:n.supportsFullscreenLayout,supportsOverlaySurface:n.supportsOverlaySurface,supportsSelection:n.supportsSelection,supportsCopyOnSelect:n.supportsCopyOnSelect,supportsWheelHistory:n.supportsWheelHistory,supportsViewportChrome:n.supportsViewportChrome,supportsSearchViewport:n.supportsSearchViewport,supportsStickyPrompt:n.supportsStickyPrompt,scrollAnchor:0,jumpToLatestAvailable:!1,stickyPromptVisible:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(g_,"createTranscriptDisplayState");function y_(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(y_,"enterTranscriptMode");function S_(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(S_,"exitTranscriptMode");function w_(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}i(w_,"setTranscriptPendingLiveUpdates");function x_(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}i(x_,"setTranscriptScrollAnchor");function T_(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(T_,"jumpTranscriptToLatest");function C_(e,t){return{...e,stickyPromptVisible:t}}i(C_,"setTranscriptStickyPromptVisible");function Nc(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}i(Nc,"setTranscriptSelectedItem");function v_(e,t){return{...e,surface:"transcript",searchMode:"history",searchAnchorItemId:t?.anchorItemId??e.selectedItemId??e.searchAnchorItemId,currentMatchIndex:Math.max(0,t?.initialMatchIndex??e.currentMatchIndex),jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(v_,"openTranscriptSearch");function I_(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}i(I_,"closeTranscriptSearch");function b_(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}i(b_,"setTranscriptSearchMatchIndex");function R_(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}i(R_,"shouldWindowTranscript");function k_(e){return e.surface==="transcript"}i(k_,"shouldPauseLiveTranscript");function dw(e){return e.supportsSelection}i(dw,"ownsTranscriptSelectionPath");function lh(e,t,n){if(!(!dw(e)||!n))return t.includes(n)?n:void 0}i(lh,"resolveTranscriptSelectedItemId");function E_(e){return e.supportsSelection&&e.supportsCopyOnSelect}i(E_,"supportsPassiveTranscriptCopyOnSelect");function __(e){if(e.surface==="transcript")return"Transcript | PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | q/Esc/Ctrl+O back"}i(__,"buildTranscriptBrowseHint");var M_="Slash commands cannot be queued mid-task. Press Esc twice or Ctrl+C to abort the current task, then run the command.",A_="slash-guard";function L_(e){return e.trimStart().startsWith("/")}i(L_,"isSlashCommandText");var Sj=`
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
`;async function P_(e){let{initialPrompt:t,runRound:n,shiftPendingPrompt:r,onRoundComplete:o,onBeforeQueuedRound:s,shouldContinue:a=i(()=>!0,"shouldContinue"),shouldDrainQueuedPrompts:c=i(()=>!0,"shouldDrainQueuedPrompts")}=e,l=t,u=await n(l);for(;;){if(await o?.(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(Sj),await s?.(l),u=await n(l)}}i(P_,"runQueuedPromptSequence");function O_(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}i(O_,"hasTranscriptInputActivity");function wj(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}i(wj,"shouldHandleManagedTranscriptMouse");function $_(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}i($_,"shouldHandleManagedTranscriptWheel");function N_(e){if(wj({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"?$_({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?$_({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?e.historyScrollOffset===0?{kind:"consume"}:{kind:"scroll-by",delta:-e.reviewWheelStep}:{kind:"none"}:{kind:"none"}}i(N_,"resolveTranscriptPointerAction");function D_(e){return e.isTranscriptMode&&e.hasTextSelection}i(D_,"shouldDeferInterruptToTranscriptSelectionCopy");function B_(e){return e.hasActiveWorkflow?e.ctrl&&e.keyName==="c"?!D_({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection}):e.keyName!=="escape"||e.isTranscriptMode||e.isAwaitingUserInteraction?!1:e.isDoubleEscape&&e.isInputEmpty&&e.pendingInputCount===0:!1}i(B_,"shouldStopWorkflowFromInterruptKey");function F_(e){return e.ctrl&&e.keyName==="c"?D_({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"}}i(F_,"resolveStreamingInterruptAction");function W_(e){let{key:t,isTranscriptMode:n,isHistorySearchActive:r,historySearchMatchCount:o,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"?o===0?{kind:"none"}:{kind:"search-match-nav",direction:t.shift?"prev":"next"}:{kind:"none"}:{kind:"none"}}i(W_,"resolveTranscriptKeyboardAction");function H_(e){switch(e.action.kind){case"none":return!1;case"scroll-page-up":return e.hasTranscript&&(e.disarmHistorySearchSelection(),e.scrollTranscriptBy(e.pageScrollDelta)),!0;case"close-history-search":return e.closeHistorySearchSurface(),!0;case"history-search-backspace":return e.backspaceHistorySearchQuery(),!0;case"history-search-step":return e.stepHistorySearchSelection(e.action.direction),!0;case"history-search-submit":return e.submitHistorySearchSelection(),!0;case"history-search-append":return e.appendHistorySearchQuery(e.action.text),!0;case"open-history-search":return e.openHistorySearchSurface(),!0;case"clear-selection-focus":return e.clearTranscriptSelectionFocus(),!0;case"exit-transcript":return e.exitTranscriptModeSurface(),!0;case"toggle-show-all":return e.toggleTranscriptShowAll(),!0;case"scroll-home":case"jump-oldest":return e.disarmHistorySearchSelection(),e.scrollTranscriptHome(),!0;case"scroll-page-down":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(-e.pageScrollDelta),!0;case"scroll-end":return e.isTranscriptMode?(e.exitTranscriptModeSurface(),!0):(e.scrollTranscriptToBottom(),!0);case"scroll-line-down":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(-1),!0;case"scroll-line-up":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(1),!0;case"jump-latest":return e.scrollTranscriptToBottom(),!0;case"cycle-selection":return e.cycleTranscriptSelection(e.action.direction),!0;case"copy-selection":return e.copySelectedTranscriptText(),!0;case"copy-item":return e.copySelectedTranscriptItem(),!0;case"copy-tool-input":return e.copySelectedTranscriptToolInput(),!0;case"toggle-detail":return e.toggleSelectedTranscriptDetail(),!0;case"search-match-nav":return e.navigateSearchMatch(e.action.direction),!0;case"dump-to-scrollback":return e.dumpTranscriptToScrollback(),!0;default:return!1}}i(H_,"executeTranscriptKeyboardAction");function Ei(e){let t=/\u001b\[[0-9;?]*[ -/]*[@-~]/g,n=/\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)/g,r=/\u001b[@-_]/g;return e.replace(t,"").replace(n,"").replace(r,"")}i(Ei,"stripAnsi");function xj(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
|
|
100
|
+
`)}i(xj,"serializeToolGroup");function Tj(e){switch(e.type){case"thinking":return null;case"user":return`user: ${Ei(e.text)}`;case"assistant":return`assistant: ${Ei(e.text)}`;case"system":return`system: ${Ei(e.text)}`;case"info":return`info: ${Ei(e.text)}`;case"error":return`error: ${Ei(e.text)}`;case"event":return`event: ${Ei(e.text)}`;case"hint":return`hint: ${Ei(e.text)}`;case"sidecar":return`sidecar: ${Ei(e.text)}`;case"tool_group":return xj(e);default:return e}}i(Tj,"serializeOne");function Cj(e){let t=[];for(let n of e){let r=Tj(n);r!==null&&r!==""&&t.push(r)}return t.join(`
|
|
101
|
+
|
|
102
|
+
`)}i(Cj,"serializeTranscriptForScrollback");function j_(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:o}=e,s=Cj(t);r(),s.length>0&&n(`${s}
|
|
103
|
+
`),o()}i(j_,"dumpTranscriptToNativeScrollback");var Dc={committed:[],width:0,hasBanner:!1};function U_(e,t,n){let r=e.bannerSection!==null,o=e.bannerSection!==null?[e.bannerSection,...e.finalizedSections]:[...e.finalizedSections],s=o.map(t),a={committed:s,width:e.width,hasBanner:r},c=i(d=>({plan:{kind:"rebuild",sections:o,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:o.slice(n.committed.length)},nextState:a}}i(U_,"planInlineScrollback");import{jsx as hM}from"react/jsx-runtime";import hU from"yoga-layout";import{LegacyRoot as gU}from"react-reconciler/constants.js";import Xj from"react-reconciler";import{DefaultEventPriority as qj,NoEventPriority as sM}from"react-reconciler/constants.js";import*as _i from"scheduler";import nM from"yoga-layout";import{createContext as Jj}from"react";import Dj from"yoga-layout";import vj from"widest-line";var G_=new Map,Ij=i(e=>{if(e.length===0)return{width:0,height:0};let t=G_.get(e);if(t)return t;let n=vj(e),r=e.split(`
|
|
104
|
+
`).length,o={width:n,height:r};return G_.set(e,o),o},"measureText"),fw=Ij;import bj from"wrap-ansi";import Rj from"cli-truncate";var V_={},kj=i((e,t,n)=>{let r=e+String(t)+String(n),o=V_[r];if(o)return o;let s=e;if(n==="wrap"&&(s=bj(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=Rj(e,t,{position:a})}return V_[r]=s,s},"wrapText"),uh=kj;var Ej=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),_j=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),Mj=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),Y_=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),Aj=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),X_=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),K_=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!Ej(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!_j(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!Mj(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),z_=i((e,t,n)=>{for(let r=t;r<e.length;r++){let o=e[r];if(n&&o==="\x07"||o==="\x9C")return r+1;if(o==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),Lj=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!Y_(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!Aj(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),Pj=i(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),$j=i(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),pw=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(X_(t))return!0;return!1},"hasAnsiControlCharacters"),Bc=i((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),q_=i(e=>{if(!pw(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let o=e[r];if(o===void 0)break;if(o==="\x1B"){let a=e[r+1];if(a===void 0)return Bc(t,e,n,r);if(a==="["){let u=K_(e,r+2);if(u===void 0)return Bc(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=Pj(a);if(c!==void 0){let u=z_(e,r+2,c.allowBellTerminator);if(u===void 0)return Bc(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=Lj(e,r+1);if(l===void 0){if(Y_(a))return Bc(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(o==="\x9B"){let a=K_(e,r+1);if(a===void 0)return Bc(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=$j(o);if(s!==void 0){let a=z_(e,r+1,s.allowBellTerminator);if(a===void 0)return Bc(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(o==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:o}),r++,n=r;continue}if(X_(o)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:o}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var Oj=/^[\d:;]*$/,Nj=i(e=>{if(!pw(e))return e;let t="";for(let n of q_(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&Oj.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),J_=Nj;var Q_=i(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=Q_(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return J_(t)},"squashTextNodes"),Qu=Q_;var dh=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:Dj.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(Bj.bind(null,t)),t},"createNode"),fh=i((e,t)=>{t.parentNode&&Zu(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")&&ph(e)},"appendChildNode"),mw=i((e,t,n)=>{t.parentNode&&Zu(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")&&ph(e)},"insertBeforeNode"),Zu=i((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&ph(e)},"removeChildNode"),hw=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),gw=i((e,t)=>{e.style=t},"setStyle"),Z_=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return ed(t,e),t},"createTextNode"),Bj=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Qu(e),r=fw(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=uh(n,t,o);return fw(s)},"measureTextNode"),eM=i(e=>{if(e?.parentNode)return e.yogaNode??eM(e.parentNode)},"findClosestYogaNode"),ph=i(e=>{eM(e)?.markDirty()},"markNodeAsDirty"),ed=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,ph(e)},"setTextNodeValue");import Ae from"yoga-layout";var Fj=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?Ae.POSITION_TYPE_ABSOLUTE:Ae.POSITION_TYPE_RELATIVE)},"applyPositionStyles"),Wj=i((e,t)=>{"margin"in t&&e.setMargin(Ae.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(Ae.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(Ae.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(Ae.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(Ae.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(Ae.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(Ae.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),Hj=i((e,t)=>{"padding"in t&&e.setPadding(Ae.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(Ae.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(Ae.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(Ae.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(Ae.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(Ae.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(Ae.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),jj=i((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(Ae.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(Ae.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(Ae.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(Ae.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(Ae.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(Ae.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(Ae.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(Ae.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(Ae.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(Ae.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(Ae.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(Ae.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(Ae.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(Ae.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(Ae.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(Ae.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(Ae.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(Ae.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(Ae.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(Ae.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(Ae.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),Uj=i((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),Gj=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Ae.DISPLAY_FLEX:Ae.DISPLAY_NONE)},"applyDisplayStyles"),Vj=i((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(Ae.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(Ae.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(Ae.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(Ae.EDGE_RIGHT,n)}},"applyBorderStyles"),Kj=i((e,t)=>{"gap"in t&&e.setGap(Ae.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(Ae.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(Ae.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),zj=i((e,t={})=>{Fj(e,t),Wj(e,t),Hj(e,t),jj(e,t),Uj(e,t),Gj(e,t),Vj(e,t),Kj(e,t)},"styles"),yw=zj;import Yj from"node:process";var tM=i(()=>Yj.env.DEV==="true","isDev");if(tM())try{await import("./devtools-XR5F2C6T.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
105
|
+
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
106
|
+
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
107
|
+
|
|
108
|
+
To install use this command:
|
|
109
|
+
|
|
110
|
+
$ npm install --save-dev react-devtools-core
|
|
111
|
+
`.trim()+`
|
|
112
|
+
`);else throw e}var rM=i((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let o of Object.keys(e))(!t||!Object.hasOwn(t,o))&&(n[o]=void 0,r=!0);if(t)for(let o of Object.keys(t))t[o]!==e[o]&&(n[o]=t[o],r=!0);return r?n:void 0},"diff"),oM=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),mh=sM,Sw,iM={name:void 0,version:void 0},Fc=Xj({getRootHostContext:i(()=>({isInsideText:!1}),"getRootHostContext"),prepareForCommit:i(()=>null,"prepareForCommit"),preparePortalMount:i(()=>null,"preparePortalMount"),clearContainer:i(()=>!1,"clearContainer"),resetAfterCommit(e){if(typeof e.onComputeLayout=="function"&&e.onComputeLayout(),e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext(e,t){let n=e.isInsideText,r=t==="ink-text"||t==="ink-virtual-text";return n===r?e:{isInsideText:r}},shouldSetTextContent:i(()=>!1,"shouldSetTextContent"),createInstance(e,t,n,r){if(r.isInsideText&&e==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let o=e==="ink-text"&&r.isInsideText?"ink-virtual-text":e,s=dh(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){gw(s,c),s.yogaNode&&yw(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){Sw=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}hw(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 Z_(e)},resetTextContent(){},hideTextInstance(e){ed(e,"")},unhideTextInstance(e,t){ed(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(nM.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(nM.DISPLAY_FLEX)},appendInitialChild:fh,appendChild:fh,insertBefore:mw,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:_i.unstable_scheduleCallback,cancelCallback:_i.unstable_cancelCallback,shouldYield:_i.unstable_shouldYield,now:_i.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:fh,insertInContainerBefore:mw,removeChildFromContainer(e,t){Zu(e,t),oM(t.yogaNode)},commitUpdate(e,t,n,r){Sw&&e.internal_static&&(Sw.isStaticDirty=!0);let o=rM(n,r),s=rM(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){gw(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}hw(e,a,c)}s&&e.yogaNode&&yw(e.yogaNode,s)}},commitTextUpdate(e,t,n){ed(e,n)},removeChild(e,t){Zu(e,t),oM(t.yogaNode)},setCurrentUpdatePriority(e){mh=e},getCurrentUpdatePriority:i(()=>mh,"getCurrentUpdatePriority"),resolveUpdatePriority(){return mh!==sM?mh:qj},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:Jj(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:iM.name,rendererVersion:iM.version});import sU from"widest-line";import aU from"indent-string";import Mi from"yoga-layout";import hh from"yoga-layout";var Qj=i(e=>e.getComputedWidth()-e.getComputedPadding(hh.EDGE_LEFT)-e.getComputedPadding(hh.EDGE_RIGHT)-e.getComputedBorder(hh.EDGE_LEFT)-e.getComputedBorder(hh.EDGE_RIGHT),"getMaxWidth"),aM=Qj;import rU from"cli-boxes";import gh from"chalk";import Fo from"chalk";var Zj=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,eU=/^ansi256\(\s?(\d+)\s?\)$/,tU=i(e=>e in Fo,"isNamedColor"),nU=i((e,t,n)=>{if(!t)return e;if(tU(t)){if(n==="foreground")return Fo[t](e);let r=`bg${t[0].toUpperCase()+t.slice(1)}`;return Fo[r](e)}if(t.startsWith("#"))return n==="foreground"?Fo.hex(t)(e):Fo.bgHex(t)(e);if(t.startsWith("ansi256")){let r=eU.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?Fo.ansi256(o)(e):Fo.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=Zj.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?Fo.rgb(o,s,a)(e):Fo.bgRgb(o,s,a)(e)}return e},"colorize"),As=nU;var oU=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?rU[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,x=n.style.borderTop!==!1,y=n.style.borderBottom!==!1,C=n.style.borderLeft!==!1,v=n.style.borderRight!==!1,_=o-(C?1:0)-(v?1:0),E=x?As((C?a.topLeft:"")+a.top.repeat(_)+(v?a.topRight:""),c,"foreground"):void 0;x&&p&&(E=gh.dim(E));let R=s;x&&(R-=1),y&&(R-=1);let I=(As(a.left,u,"foreground")+`
|
|
113
|
+
`).repeat(R);m&&(I=gh.dim(I));let W=(As(a.right,d,"foreground")+`
|
|
114
|
+
`).repeat(R);g&&(W=gh.dim(W));let $=y?As((C?a.bottomLeft:"")+a.bottom.repeat(_)+(v?a.bottomRight:""),l,"foreground"):void 0;y&&h&&($=gh.dim($));let D=x?1:0;E&&r.write(e,t,E,{transformers:[]}),C&&r.write(e,t+D,I,{transformers:[]}),v&&r.write(e+o-1,t+D,W,{transformers:[]}),$&&r.write(e,t+s-1,$,{transformers:[]})}},"renderBorder"),cM=oU;var iU=i((e,t,n,r)=>{if(!n.style.backgroundColor)return;let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=n.style.borderStyle&&n.style.borderLeft!==!1?1:0,c=n.style.borderStyle&&n.style.borderRight!==!1?1:0,l=n.style.borderStyle&&n.style.borderTop!==!1?1:0,u=n.style.borderStyle&&n.style.borderBottom!==!1?1:0,d=o-a-c,p=s-l-u;if(!(d>0&&p>0))return;let h=As(" ".repeat(d),n.style.backgroundColor,"background");for(let m=0;m<p;m++)r.write(e+a,t+l+m,h,{transformers:[]})},"renderBackground"),lM=iU;var cU=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
|
|
115
|
+
`.repeat(o)+aU(t,r)}return t},"applyPaddingToText"),yh=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===Mi.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=Qu(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
|
|
116
|
+
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>yh(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:o}=e.internal_accessibility;if(o){let a=Object.keys(o).filter(c=>o[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),ww=null,xw=null;function uM(){ww=null,xw=null}i(uM,"resetScrollHint");function dM(){return ww}i(dM,"getScrollHint");function fM(){return xw}i(fM,"getScrollRepaint");var pM=i((e,t,n)=>{let{offsetX:r=0,offsetY:o=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===Mi.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=o+c.getComputedTop(),d=s;if(typeof e.internal_transform=="function"&&(d=[e.internal_transform,...s]),e.nodeName==="ink-text"){let m=Qu(e);if(m.length>0){let g=sU(m),x=aM(c);if(g>x){let y=e.style.textWrap??"wrap";m=uh(m,x,y)}m=cU(e,m),t.write(l,u,m,{transformers:d})}return}let p=!1,h=0;if(e.nodeName==="ink-box"){lM(l,u,e,t),cM(l,u,e,t);let m=e.style.overflowX??e.style.overflow,g=e.style.overflowY??e.style.overflow,x=m==="hidden"||m==="scroll",y=g==="hidden"||g==="scroll";if(g==="scroll"){let C=c.getComputedBorder(Mi.EDGE_TOP),v=c.getComputedBorder(Mi.EDGE_BOTTOM),_=Math.max(0,c.getComputedHeight()-C-v),E=e.attributes?.virtualScrollWindowed===!0,R=e.childNodes[0],I=Math.max(0,Math.floor(E?e.attributes?.scrollHeight??0:R?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),W=typeof e.scrollHeight=="number"?e.scrollHeight:I,$=_p({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:I,viewportHeight:_,previousScrollHeight:W,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:E,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+C});e.scrollHeight=$.scrollHeight,e.scrollViewportHeight=_,e.scrollViewportTop=$.viewportTop,e.appliedScrollTop=$.appliedScrollTop,$.scrollHint&&(ww=$.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&(xw={top:$.scrollHint.top,bottom:$.scrollHint.bottom})),e.attributes&&e.attributes.pendingScrollDelta&&(e.attributes.pendingScrollDelta=0),e.scrollTop=$.scrollTop,h=$.scrollOffsetY}if(x||y){let C=x?l+c.getComputedBorder(Mi.EDGE_LEFT):void 0,v=x?l+c.getComputedWidth()-c.getComputedBorder(Mi.EDGE_RIGHT):void 0,_=y?u+c.getComputedBorder(Mi.EDGE_TOP):void 0,E=y?u+c.getComputedHeight()-c.getComputedBorder(Mi.EDGE_BOTTOM):void 0;t.clip({x1:C,x2:v,y1:_,y2:E}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let m of e.childNodes)pM(m,t,{offsetX:l,offsetY:u-h,transformers:d,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),Tw=pM;import lU from"slice-ansi";import uU from"string-width";import{styledCharsFromTokens as dU,styledCharsToString as fU,tokenize as pU}from"@alcalzone/ansi-tokenize";var Cw=class{static{i(this,"OutputCaches")}widths=new Map;blockWidths=new Map;styledChars=new Map;getStyledChars(t){let n=this.styledChars.get(t);return n===void 0&&(n=dU(pU(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=uU(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let r=0;for(let o of t.split(`
|
|
117
|
+
`))r=Math.max(r,this.getStringWidth(o));n=r,this.blockWidths.set(t,n)}return n}},Wc=class{static{i(this,"Output")}width;height;operations=[];caches=new Cw;constructor(t){let{width:n,height:r}=t;this.width=n,this.height=r}write(t,n,r,o){let{transformers:s}=o;r&&this.operations.push({type:"write",x:t,y:n,text:r,transformers:s})}clip(t){this.operations.push({type:"clip",clip:t})}unclip(){this.operations.push({type:"unclip"})}getGrid(){let t=[];for(let r=0;r<this.height;r++){let o=[];for(let s=0;s<this.width;s++)o.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(o)}let n=[];for(let r of this.operations)if(r.type==="clip"&&n.push(r.clip),r.type==="unclip"&&n.pop(),r.type==="write"){let{text:o,transformers:s}=r,{x:a,y:c}=r,l=o.split(`
|
|
118
|
+
`),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(o);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,x=this.caches.getStringWidth(m),y=a+x>u.x2?u.x2-a:x;return lU(m,g,y)}),a<u.x1&&(a=u.x1)),h){let m=c<u.y1?u.y1-c:0,g=l.length,x=c+g>u.y2?u.y2-c:g;l=l.slice(m,x),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 y of s)h=y(h,p);let g=this.caches.getStyledChars(h),x=a;for(let y of g){m[x]=y;let C=Math.max(1,this.caches.getStringWidth(y.value));if(C>1)for(let v=1;v<C;v++)m[x+v]={type:"char",value:"",fullWidth:!1,styles:y.styles};x+=C}d++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let o=r.filter(s=>s!==void 0);return fU(o).trimEnd()}).join(`
|
|
119
|
+
`),height:t.length}}};var mU=i((e,t,n)=>{if(e.yogaNode){if(t){let p=yh(e,{skipStaticElements:!0}),h=p===""?0:p.split(`
|
|
120
|
+
`).length,m="";return e.staticNode&&(m=yh(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:h,staticOutput:m?`${m}
|
|
121
|
+
`:"",frame:void 0}}let r=new Wc({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});uM(),Tw(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new Wc({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),Tw(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Lp(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:dM(),scrollRepaint:fM()};return{output:s,outputHeight:a,staticOutput:o?`${o.get().output}
|
|
122
|
+
`:"",frame:d}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),vw=mU;var yU=i((e,t)=>{let n=t?.columns??80,r=dh("ink-root"),o="";r.onComputeLayout=()=>{r.yogaNode.setWidth(n),r.yogaNode.calculateLayout(void 0,void 0,hU.DIRECTION_LTR)},r.onImmediateRender=()=>{let{staticOutput:l}=vw(r,!1);l&&l!==`
|
|
123
|
+
`&&(o+=l)};let s,a=Fc.createContainer(r,gU,null,!1,null,"render-to-string",l=>{s??=l},()=>{},()=>{},()=>{}),c=!1;try{Fc.updateContainerSync(e,a,null,()=>{}),Fc.flushSyncWork();let{output:l}=vw(r,!1);if(Fc.updateContainerSync(null,a,null,()=>{}),Fc.flushSyncWork(),c=!0,r.yogaNode.free(),s!==void 0)throw s instanceof Error?s:new Error(String(s));let u=o.endsWith(`
|
|
124
|
+
`)?o.slice(0,-1):o;return u&&l?u+`
|
|
125
|
+
`+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),mM=yU;var SU="\x1B[0m";function gM(e,t){if(e.length===0)return"";let n=hM(A,{flexDirection:"column",children:e.map(s=>hM(uS,{section:s,theme:t.theme,animateSpinners:!1},s.key))}),r=mM(n,{columns:t.width});return(r.endsWith(`
|
|
126
|
+
`)?r.slice(0,-1):r)+SU+`
|
|
127
|
+
`}i(gM,"renderFinalizedSectionsToScrollbackText");function yM(e){return e.enabled&&!e.useRendererViewportShell&&!e.isTranscriptMode&&e.hasCommitHandle}i(yM,"isInlineLedgerActive");function SM(e){if(!e.active)return{kind:"reset"};if(!e.hasCommitHandle)return{kind:"skip"};let t=!e.wasActive,n=t?Dc:e.prior,{plan:r,nextState:o}=U_({bannerSection:e.bannerSection??null,finalizedSections:e.finalizedSections,width:e.width},e.identify??$R,n);return t?r.kind==="none"?e.forceRebuild?{kind:"commit",mode:"rebuild",sections:e.finalizedSections,nextState:o}:{kind:"noop",nextState:o}:{kind:"commit",mode:e.forceRebuild?"rebuild":"append",sections:r.sections,nextState:o}:r.kind==="none"?{kind:"noop",nextState:o}:{kind:"commit",mode:r.kind,sections:r.sections,nextState:o}}i(SM,"computeInlineLedgerStep");function wM(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:Dc,wasActive:!1,owns:!0}:{state:Dc,wasActive:!1,owns:n}}i(wM,"resolveInlineLedgerState");function xM(e,t){return t?{...e,staticSections:[]}:e}i(xM,"gateInlinePromptModel");function wU(e){switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[t.name];return typeof t.output=="string"&&n.push(Gt(t.output)),t.error&&n.push(Gt(t.error)),n.join(`
|
|
128
|
+
`)}).join(`
|
|
129
|
+
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return Gt(e.text);default:return""}}i(wU,"buildSearchText");function xU(e,t){let n=e.replace(/\s+/g," ").trim();if(!n)return"";let r=n.toLowerCase(),o=t.toLowerCase(),s=r.indexOf(o);if(s===-1)return n.slice(0,120);let a=Math.max(0,s-40),c=Math.min(n.length,s+t.length+60),l=a>0?"...":"",u=c<n.length?"...":"";return`${l}${n.slice(a,c)}${u}`}i(xU,"buildExcerpt");function TM(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:wU(t)}))}i(TM,"createTranscriptSearchIndex");function CM(e,t){let n=t.trim().toLowerCase();return n?e.flatMap(r=>{let o=r.searchText;return o.toLowerCase().includes(n)?[{itemId:r.itemId,itemIndex:r.itemIndex,excerpt:xU(o,t.trim())}]:[]}):[]}i(CM,"searchTranscriptIndex");function Iw(e,t,n){return e<=0?0:t<0?n==="next"?0:e-1:n==="next"?(t+1)%e:t<=0?e-1:t-1}i(Iw,"stepTranscriptSearchMatch");function vM(e,t){return e.length===0?void 0:t<0?`${e.length} transcript matches`:`${Math.min(Math.max(t,0),e.length-1)+1}/${e.length} transcript matches`}i(vM,"buildTranscriptSearchSummary");function IM(e,t,n){if(t.length===0||!n)return 0;let r=t.findIndex(a=>a.itemId===n);if(r>=0)return r;let o=e.find(a=>a.itemId===n)?.itemIndex;if(o===void 0)return 0;let s=t.findIndex(a=>a.itemIndex>=o);return s>=0?s:0}i(IM,"resolveTranscriptSearchMatchIndex");function bM(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:TU(e),kindLabel:"tool"};case"error":return{summary:"Error entry",kindLabel:"error"};case"info":return{summary:"Info note",kindLabel:"info"};case"hint":return{summary:"Hint",kindLabel:"hint"};default:return{summary:"Transcript entry",kindLabel:"entry"}}}i(bM,"buildTranscriptSelectionSummary");function TU(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}i(TU,"summarizeToolGroup");function RM(e){return e.map(t=>t.id)}i(RM,"getSelectableTranscriptItemIds");function kM(e,t,n){if(e.length===0)return;if(!t)return n==="next"?e[0]:e[e.length-1];let r=e.indexOf(t);return r===-1?n==="next"?e[0]:e[e.length-1]:n==="next"?e[Math.min(e.length-1,r+1)]:e[Math.max(0,r-1)]}i(kM,"moveTranscriptSelection");function bw(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: ${Gt(t.output)}`),t.error&&n.push(`Error: ${Gt(t.error)}`),n.join(`
|
|
130
|
+
`)}).join(`
|
|
131
|
+
|
|
132
|
+
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return Gt(e.text);default:return}}i(bw,"buildTranscriptCopyText");function EM(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(`
|
|
133
|
+
`)}).filter(n=>!!n);return t.length>0?t.join(`
|
|
134
|
+
|
|
135
|
+
`):void 0}i(EM,"buildTranscriptToolInputCopyText");import{useCallback as td,useRef as CU,useState as _M}from"react";function MM(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:o,isTranscriptMode:s,historySearchQuery:a}=e,c=__(t),l;if(t.supportsStickyPrompt&&t.stickyPromptVisible)if(o){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}}i(MM,"buildTranscriptChromeModel");function AM(e){return Math.max(1,e-2)}i(AM,"resolveTranscriptPageSize");function LM(e){return Math.max(3,Math.floor(e/4))}i(LM,"resolveTranscriptWheelStep");function vU(e,t){return Math.max(0,e+t)}i(vU,"incrementTranscriptScrollOffset");function PM(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}i(PM,"clampTranscriptScrollOffset");function $M(){let e=CU(null),[t,n]=_M(0),[r,o]=_M(!0),s=td(d=>{n(Math.max(0,d))},[]),a=td(d=>{o(d)},[]),c=td(d=>{if(e.current){e.current.scrollTo(d);return}n(Math.max(0,d)),o(d===0)},[]),l=td(d=>{if(e.current){e.current.scrollBy(d);return}n(p=>vU(p,d)),o(!1)},[]),u=td(()=>{if(e.current){e.current.scrollToBottom();return}n(0),o(!0)},[]);return{scrollRef:e,scrollOffset:t,sticky:r,setScrollOffset:n,setSticky:o,handleScrollTopChange:s,handleStickyChange:a,scrollTo:c,scrollBy:l,scrollToBottom:u}}i($M,"useTranscriptViewportScrollController");function OM(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:o,viewportRows:s,itemId:a,visibleRows:c,expandedItemKeys:l,showDetailedTools:u=!1}=e;if(!a||c.length===0)return!1;let p=(n?.sections??pc(t,r,o,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??"")}i(OM,"isTranscriptItemVisible");function NM(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:o,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,u=n?.sections??pc(t,r,o,l,c);return BR(u,a,s)}i(NM,"resolveTranscriptSelectionOffset");function DM(e){let{items:t,renderModel:n,selectedItemId:r,terminalWidth:o=80,transcriptMaxLines:s=1e3,viewportRows:a,scrollOffset:c=0,expandedItemKeys:l,showDetailedTools:u=!1,preferViewportAnchor:d=!1}=e;if(r&&t.some(p=>p.id===r))return r;if(d&&c>0&&a&&a>0){let p=n?.sections??pc(t,o,s,u,l),h=n?.rows??vs(p),g=aS(h,a,c)[0]?.key,x=g?p.find(y=>y.rows.some(C=>C.key===g)):void 0;if(x?.key)return x.key}return t[t.length-1]?.id}i(DM,"resolveTranscriptSearchAnchorItemId");function BM(e){let t=mu(e.stickyHeader),n=zp(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}i(BM,"resolveTranscriptOwnedWindowGeometry");function IU(e){return e.text===" "?"":Gt(e.text)}i(IU,"normalizeTranscriptRowText");function Rw(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}i(Rw,"buildTranscriptRowIndexByKey");function bU(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}i(bU,"resolveTranscriptTextStartColumn");function FM(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??Rw(t.allRows??e),o=e.map((s,a)=>{let c=IU(s),l=bU(s,t),u=yi(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+jR(c)}});return{rows:o,topRow:o[0]?.screenRow??n+1,bottomRow:o[o.length-1]?.screenRow??n,viewportHeight:Math.max(0,t.viewportHeight??e.length)}}i(FM,"buildTranscriptScreenBuffer");function RU(e,t){let n=Math.max(1,Math.floor(t));return UR(e.text,n-e.textStartColumn)}i(RU,"clampTextColumn");function kw(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:RU(e,t)}}}i(kw,"toHit");function Ew(e,t,n){let r=e.rows.find(o=>o.screenRow===t);return r?kw(r,n):void 0}i(Ew,"hitTestTranscriptScreen");function _w(e,t,n){if(e.rows.length!==0)return t<=e.topRow?kw(e.rows[0],n):t>=e.bottomRow?kw(e.rows[e.rows.length-1],n):Ew(e,t,n)}i(_w,"clampTranscriptScreenHit");function WM(e){return e.text===" "?"":Gt(e.text)}i(WM,"normalizeTranscriptRowText");function HM(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(HM,"comparePoints");function jM(e,t,n,r={}){if(e.length===0)return;let[o,s]=HM(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=HM(t,n)===0,l=e[o.modelRowIndex],u=e[s.modelRowIndex];if(!l||!u)return;let d=a&&c?{...o,column:0}:o,p=a&&c?{...s,column:yi(WM(u))}:s,h=new Map,m=[],g=0;for(let x=d.modelRowIndex;x<=p.modelRowIndex;x+=1){let y=e[x];if(!y)continue;let C=WM(y),v=yi(C),_=x===d.modelRowIndex?d.column:0,E=x===p.modelRowIndex?p.column:v,R=Math.max(0,Math.min(_,v)),I=Math.max(R,Math.min(E,v)),W=mc(C,R,I);I>R&&(h.set(y.key,{start:R,end:I}),g+=I-R),m.push(W)}if(h.size!==0)return{anchor:t,focus:n,rowRanges:h,rowCount:m.length,charCount:g,text:m.join(`
|
|
136
|
+
`)}}i(jM,"buildTranscriptScreenSelection");function UM(e){if(!e)return;let t=`${e.charCount} char${e.charCount===1?"":"s"}`;return e.rowCount<=1?`Selected ${t}`:`Selected ${t} across ${e.rowCount} lines`}i(UM,"buildTranscriptScreenSelectionSummary");function GM(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}i(GM,"resolveTranscriptDragEdgeScrollDirection");var kU="Other...";function Sh(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}i(Sh,"toSelectOptions");function Mw(e,t){return t.kind==="input"||t.allowCustomInput===!1||e.some(n=>n.value===Gr)?e:[...e,{label:t.customInputLabel??kU,value:Gr}]}i(Mw,"appendCustomInputOption");function Aw(e){return e.question}i(Aw,"getAskUserDialogTitle");function VM(e){return!!e.activity}i(VM,"shouldRenderPromptActivityInFooter");function EU(e){switch(e){case"confirm":return ne("waiting.confirm");case"select":return ne("waiting.select");case"input":return ne("waiting.input")}}i(EU,"formatPromptWaitingText");function KM(e){return e.waitingReason==="confirm"?ne("placeholder.confirm"):e.waitingReason==="select"?ne("placeholder.select"):e.waitingReason==="input"?ne("placeholder.input"):e.isLoading?e.canQueueFollowUps?ne("placeholder.queue"):ne("placeholder.busy"):ne("placeholder.idle")}i(KM,"buildPromptPlaceholderText");function zM(e){return e.isTranscriptMode?void 0:e.waitingReason?{kind:"waiting",text:EU(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:dS({activeToolCount:e.streamingState.activeToolCalls.filter(n=>n.status===V.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}i(zM,"buildPromptActivityViewModel");function YM(e,t,n){if(!e)return;let r=e.userOverrideContextWindow??e.contextWindow,o=e.reservedResponseTokens;try{let s=n(t.provider);e.userOverrideContextWindow===void 0&&(r=s?.getEffectiveContextWindow?.(t.model)??r),o=s?.getEffectiveMaxOutputTokens?.(t.model)??o}catch{}return r===e.contextWindow&&o===e.reservedResponseTokens?e:{...e,contextWindow:r,reservedResponseTokens:o}}i(YM,"resolveEffectiveCompactionInfo");function Ls(e,t,n){return e==="auto"||e==="auto-in-project"?t??n:void 0}i(Ls,"resolveSurfaceAutoModeEngine");function XM(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===V.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}}i(XM,"buildSurfaceStatusBarProps");function qM(e){let t=dw(e.state),n=t?lh(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&&E_(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}i(qM,"buildTranscriptSelectionRuntimeState");function JM(e){if(!(!e.runtime.selectionEnabled||!e.runtime.selectedItemId))return{itemSummary:e.itemSummary?.summary,itemKind:e.itemSummary?.kindLabel,position:e.runtime.position,detailState:e.runtime.detailState,copyCapabilities:e.runtime.copyCapabilities,toggleDetail:e.runtime.toggleDetail,navigationCapabilities:e.runtime.navigationCapabilities}}i(JM,"buildTranscriptSelectionViewModel");function QM(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}i(QM,"buildTranscriptSearchViewModel");function _U(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}i(_U,"clampTranscriptSearchSelectedIndex");function MU(e){return e.isHistorySearchActive?e.historySearchQuery.trim()?e.matches.length===0?"No matches yet":e.clampedSelectedIndex<0?`${e.matches.length} matches | use n/N or Enter to jump`:e.matches[e.clampedSelectedIndex]?.excerpt:"Type to search transcript":void 0}i(MU,"buildTranscriptSearchDetailText");function ZM(e){let t=_U(e.matches.length,e.selectedIndex),n=vM(e.matches,t),r=MU({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:QM({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}i(ZM,"buildTranscriptSearchChrome");function AU(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}i(AU,"buildDefaultTranscriptSecondaryText");function eA(e){let t=[];return e.historySearchQuery.trim().length>0&&e.isHistorySearchActive&&e.historySearchMatchCount===0&&t.push({id:"search-empty",text:"No transcript matches yet",tone:"info"}),e.pendingInputCount>=e.maxPendingInputs&&t.push({id:"queue-full",text:`Queued follow-up limit reached (${e.maxPendingInputs})`,tone:"warning"}),t}i(eA,"buildFooterNotifications");function tA(e){let t=[];return e.historySearchQuery.trim()&&t.push(`Search: ${e.historySearchQuery.trim()}`),e.pendingInputCount>0&&t.push(`Queued follow-ups: ${e.pendingInputCount}`),t}i(tA,"buildBaseFooterNotices");function nA(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}i(nA,"buildStashNoticeText");function rA(e){return[...e]}i(rA,"buildPromptFooterNotices");function LU(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?AU(e.showAllActive):n.join(" | ")}i(LU,"buildTranscriptFooterSecondaryText");function PU(e){let t=[];return e&&t.push(e),t}i(PU,"buildTranscriptFooterBudgetNotices");function oA(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,o=UM(e.textSelection),s=e.textSelection?hc({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?hc({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=LU({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:o,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:o,actionSummary:s,secondaryText:a,budgetNotices:PU(a)}}i(oA,"buildTranscriptFooterViewModel");import{jsx as Gne,jsxs as Vne}from"react/jsx-runtime";function iA(e,t){if(!(!e||!t||t<=0))switch(e){case"finding-validation":return`Validating ${t} finding${t===1?"":"s"}`;case"module-triage":return`Scanning ${t} module${t===1?"":"s"}`;case"evidence-scan":return`Parallel evidence pass (${t})`;case"hypothesis-check":return`Checking ${t} hypothesis${t===1?"":"es"}`;default:return}}i(iA,"formatAmaWorkStripText");function sA(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}i(sA,"stripLiveActivityPrefix");function aA(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?sA(um(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?sA(e.liveActivityLabel):void 0;e.activeWorkerTitle?t.push({id:"primary-worker",label:`${e.activeWorkerTitle} active`,accent:!0,selected:!0}):e.activePhase?t.push({id:"primary-phase",label:e.activePhase,accent:!0,selected:!0}):u?t.push({id:"primary-live-activity",label:u,accent:!0,selected:!0}):l?t.push({id:"primary-tool",label:l,accent:!0,selected:!0}):e.isThinkingActive?t.push({id:"primary-thinking",label:"Thinking",accent:!0,selected:!0}):t.push({id:"primary-generic",label:"Agent active",accent:!0,selected:!0})}e.parallelText&&t.push({id:"parallel",label:e.parallelText});let[r,o,s,...a]=t,c=[r,o,s].filter(l=>!!l);return e.isLoading?{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}:{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}}i(aA,"buildBackgroundTaskViewModel");function cA(e,t){if(!(!t||!e||e.agentMode!=="ama"))return iA(e.childFanoutClass,e.childFanoutCount)}i(cA,"buildAmaWorkStripFromStatus");function Lw(e){let t=cA(e.status,e.isLoading);return{workStripText:t,backgroundTask:aA({isLoading:e.isLoading,showPrimary:!!(e.parallelTextOverride??t),activeWorkerTitle:e.status?.activeWorkerTitle,activePhase:e.status?.phase??(e.agentMode==="ama"?"AMA active":void 0),parallelText:e.parallelTextOverride??t,currentTool:e.currentTool,toolInputCharCount:e.toolInputCharCount,toolInputContent:e.toolInputContent,liveActivityLabel:e.liveActivityLabel,isThinkingActive:e.isThinkingActive})}}i(Lw,"buildAmaSummaryViewModel");function Pw(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}i(Pw,"captureTranscriptSnapshot");function lA(e){if(!e.isTranscriptMode||!e.snapshot)return 0;let t=Math.max(0,e.currentItemsLength-e.snapshot.items.length);return e.isLoading!==e.snapshot.isLoading&&(t+=1),e.currentResponse!==e.snapshot.currentResponse&&(t+=1),e.thinkingContent!==e.snapshot.thinkingContent&&(t+=1),e.activeToolCallsLength!==e.snapshot.activeToolCalls.length&&(t+=1),(e.currentManagedLiveEventsLength??0)!==e.snapshot.managedLiveEvents.length&&(t+=1),t}i(lA,"countPendingTranscriptUpdates");function uA(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}i(uA,"resolveTranscriptSurfaceItems");function dA(e){let t=[];for(let n of e)switch(n.type){case"user":case"system":case"error":case"tool_group":case"event":case"info":t.push({...n});break;case"assistant":case"thinking":{let{compactText:r,...o}=n;t.push(o);break}default:break}return t}i(dA,"buildPromptSurfaceItems");function fA(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}i(fA,"resolveFullscreenShellMode");function $U(e,t){return e.enabled&&fA(e,t)==="virtual"}i($U,"shouldUseRendererViewportShell");function pA(e,t){let n=fA(e,t),r=e.enabled&&n==="virtual",o=e.enabled&&n==="virtual",s=r&&(e.mouseWheel||e.mouseClicks),a=s&&e.mouseClicks,c=o&&e.mouseWheel;return{shellMode:n,usesAlternateScreenShell:r,usesRendererViewportShell:o,usesRendererMouseTracking:s,usesManagedMouseClicks:a,usesManagedMouseWheel:c,usesManagedSelection:o,usesManagedWheelHistory:c,usesNativeMainScreenScrollback:!o}}i(pA,"resolveTranscriptInteractionPolicy");function mA(e,t,n){return $U(e,t)?t==="transcript"||n:!1}i(mA,"shouldOwnTranscriptViewport");var OU=500,NU=1,DU=/[\p{L}\p{N}_/.\-+~\\]/u;function BU(e){return e.text===" "?"":e.text}i(BU,"normalizeTranscriptRowText");function hA(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(hA,"comparePoints");function $w(e){return e===""||/\s/.test(e)?0:DU.test(e)?1:2}i($w,"charClass");function gA(e){let t=e.timeoutMs??OU,n=e.distance??NU,r=e.time-e.previous.time<=t,o=Math.abs(e.row-e.previous.row)<=n&&Math.abs(e.column-e.previous.column)<=n,s=r&&o?Math.min(3,e.previous.count+1):1;return{time:e.time,row:e.row,column:e.column,count:s}}i(gA,"resolveTranscriptMultiClickState");function wh(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let o=BU(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:yi(o)}};let s=yi(o);if(s===0)return{kind:n,start:{...t,column:0},end:{...t,column:0}};let a=Math.max(0,Math.min(s-1,t.column));t.column===s&&(a=s-1);let c=$w(ym(o,a)),l=a,u=a+1;for(;l>0&&$w(ym(o,l-1))===c;)l-=1;for(;u<s&&$w(ym(o,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}i(wh,"resolveTranscriptSelectionSpanAt");function Ow(e,t){return hA(t.end,e.start)<0?{anchor:e.end,focus:t.start}:hA(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}i(Ow,"extendTranscriptSelectionSpan");function Hc(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}:{}}}i(Hc,"buildHostSessionPayload");var jU=500;function UU(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}i(UU,"learningCenterActions");function GU(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}})}i(GU,"buildLearningCenterOptions");async function VU(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)}i(VU,"applyLearningCenterAction");function KU(e){return typeof e.appendSessionDelta=="function"}i(KU,"hasAppendSessionDelta");function SA(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))}i(SA,"applyRuntimeSessionSnapshot");function wA(e){let t=e;return typeof t.prepareSessionAppend=="function"&&typeof t.appendPreparedSessionTail=="function"&&typeof t.appendSessionDelta=="function"}i(wA,"hasPreparedSessionAppend");function zU(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),o=t.activeEntryId;for(let s of r){if(s.type!=="message"||s.parentId!==o)return;o=s.id}if(e.lineage.activeEntryId===o)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}:{}}}i(zU,"createPreparedSessionTail");var YU=12,xA="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 Nw(e,t){if(_r(e))return[t.getGuardrail()]}i(Nw,"buildAutoModeGuardrails");function XU(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}i(XU,"resolveInitialReasoningMode");function Dw(e){return Gt(e.map(t=>typeof t=="string"?t:String(t)).join(" "))}i(Dw,"formatCapturedConsoleOutput");function Bw(e){let t=e.map(Gt).join(`
|
|
137
|
+
`).trimEnd();return t.trim().length>0?t:void 0}i(Bw,"joinCapturedConsoleOutput");function qU(e){let t=e.split(/\r?\n/).map(s=>s.trim()).filter(Boolean);if(t.length===0)return;if(t.length===1)return t[0];let[n,r]=t,o=n.startsWith("[")?`${n} ${r}`:`${n} / ${r}`;return o.length>220?`${o.slice(0,217)}...`:o}i(qU,"buildManagedTranscriptCompactText");function TA(e){let t=qU(e);return{type:"event",icon:XS(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}i(TA,"toManagedTranscriptEventItem");function Ai(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}}i(Ai,"toCreatableHistoryItem");function Ww(e){return kI(e)?"":ja(e).trim()}i(Ww,"sanitizeInterruptedAssistantText");function JU(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i(JU,"escapeRegExpLiteral");function QU(e,t){let n=t?.trim();return n?e.replace(new RegExp(`^\\[${JU(n)}\\]\\s*`),""):e}i(QU,"stripManagedWorkerPrefix");function CA(e,t){let n=ja(e);return QU(n,t).trim().length>0}i(CA,"hasSubstantiveManagedAssistantText");function ZU(e,t){return e?t||e.trim().length>0:!1}i(ZU,"shouldAppendManagedAssistantTextDelta");function vA(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}i(vA,"isForegroundManagedStreamingStatus");function eG(e,t,n){let r=[],o=n?.infoItems??[],s=Hw({thinking:e,toolCalls:n?.toolCalls,toolNames:n?.toolNames});for(let c of o){let l=c.trim();l&&r.push({type:"info",text:l})}r.push(...s);let a=Ww(t);return a&&r.push({type:"assistant",text:`${a}
|
|
138
|
+
|
|
139
|
+
[Interrupted]`}),r}i(eG,"buildInterruptedPersistenceItems");function Hw({thinking:e,response:t,toolCalls:n,toolNames:r}){let o=[],s=e?.trim()??"",a=t?.trim()??"",c=n&&n.length>0?[...n]:[],l=r&&r.length>0?[...r]:[];return s&&o.push({type:"thinking",text:s}),c.length>0?o.push({type:"tool_group",tools:c}):!s&&!a&&l.length>0&&o.push({type:"info",icon:"*",text:`Tools: ${l.join(", ")}`}),a&&o.push({type:"assistant",text:a}),o}i(Hw,"buildRoundHistoryItems");var tG=20,nG="Session ended before the tool completed.";function rG(e){switch(e.status){case V.Success:return{status:"success"};case V.Error:return{status:"error"};case V.Cancelled:return{status:"cancelled"};case V.AwaitingApproval:case V.Scheduled:case V.Validating:case V.Executing:return{status:"cancelled",error:nG};default:return e.status}}i(rG,"toPersistedToolStatus");function oG(e){if(!e.id||!e.name)return;let t=rG(e),n=t.status==="success"?zg(e.output):void 0,r=t.status==="error"||t.status==="cancelled"?Kg(e.error??zg(e.output)??t.error??""):void 0,o=II(e.input);return{id:e.id,name:e.name,status:t.status,...o?{input:o}:{},...typeof e.preview=="string"&&e.preview.trim().length>0?{preview:Kg(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}:{}}}i(oG,"toPersistedToolCall");function iG(e){let t=e.tools.slice(0,tG).map(oG).filter(r=>!!r),n=jw(e);return t.length>0?{type:"tool_group",tools:t,...n===void 0?{}:{timestamp:n}}:void 0}i(iG,"toPersistedToolGroup");function jw(e){return e.timestamp!==void 0&&Number.isFinite(e.timestamp)&&e.timestamp>=0?e.timestamp:void 0}i(jw,"persistedHistoryTimestamp");function EA(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=jw(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,o=jw(e);return{type:e.type,text:t,...o===void 0?{}:{timestamp:o},...n?{icon:n}:{},...r?{compactText:r}:{}}}i(EA,"toPersistedUiHistoryItem");var IA=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1",sG=process.env.KODAX_SCROLL_OVERSCAN==="1"?80:void 0;function bA(e){return oo(e.map(t=>EA(t)).filter(t=>!!t))}i(bA,"serializeUiHistorySnapshot");function aG(e){return e.map(t=>EA(t)).filter(t=>!!t)}i(aG,"serializeCreatableHistoryItems");function xh(e,t){return t.length===0?oo(e):oo([...e,...aG(t)])}i(xh,"appendPersistedUiHistorySnapshot");function nd(e,t,n){console.log((e==="block"?yt.red:yt.yellow)(t)),n.forEach(r=>console.log(yt.dim(r)))}i(nd,"logSessionTransitionGuard");var Fw=i(({config:e,sessionId:t,workingDir:n,compactionInfo:r})=>{let o=ce("dark"),s=e.model??Kr(e.provider)??e.provider,a=ei({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?ku(r.contextWindow,r.triggerPercent,r.triggerTokens):void 0;return On(A,{flexDirection:"column",marginBottom:1,children:[JS.map((u,d)=>fe(k,{color:o.colors.primary,children:u},d)),On(A,{children:[fe(k,{color:o.colors.primary,children:" \u258E "}),fe(k,{color:o.colors.primary,children:"AI Coding Agent \xB7 Minimalist & Intelligent"})]}),On(A,{children:[fe(k,{color:o.colors.success,children:" \u258E "}),On(k,{bold:!0,color:o.colors.text,children:["v",ts]}),fe(k,{dimColor:!0,children:" \xB7 "}),On(k,{color:o.colors.success,children:[e.provider,"/",s]}),fe(k,{dimColor:!0,children:` \xB7 effort:${a}`}),fe(k,{dimColor:!0,children:" \xB7 "}),fe(k,{color:o.colors.primary,children:e.agentMode.toUpperCase()}),fe(k,{dimColor:!0,children:" / "}),fe(k,{color:o.colors.accent,children:e.permissionMode})]}),r&&On(A,{children:[fe(k,{color:o.colors.accent,children:" \u258E "}),fe(k,{color:o.colors.text,children:`ctx ${c}k \xB7 compaction `}),fe(k,{color:r.enabled?o.colors.success:o.colors.text,children:r.enabled?"on":"off"}),fe(k,{color:o.colors.text,children:` \xB7 ${l}`})]}),On(A,{children:[fe(k,{color:o.colors.secondary,children:" \u258E "}),fe(k,{color:o.colors.text,children:"session "}),fe(k,{color:o.colors.primary,children:t}),fe(k,{color:o.colors.text,children:" \xB7 "}),fe(k,{color:o.colors.text,children:n})]})]})},"Banner");function cG(e){let t=e.config.model??Kr(e.config.provider)??e.config.provider,n=ei({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,o=e.compactionInfo?ku(e.compactionInfo.contextWindow,e.compactionInfo.triggerPercent,e.compactionInfo.triggerTokens):void 0,s=" \u258E AI Coding Agent \xB7 Minimalist & Intelligent",a=` \u258E v${ts} \xB7 ${e.config.provider}/${t} \xB7 effort:${n} \xB7 ${e.config.agentMode.toUpperCase()} / ${e.config.permissionMode}`,c=e.compactionInfo?` \u258E ctx ${r}k \xB7 compaction ${e.compactionInfo.enabled?"on":"off"} \xB7 ${o}`:void 0,l=` \u258E session ${e.sessionId} \xB7 ${e.workingDir}`,u=[],d=i(h=>{let m=bn(h.length>0?h.split(`
|
|
140
|
+
`):[""],Math.max(1,e.terminalWidth),0,0);return m.visualLines.length>0?m.visualLines:[""]},"wrapBannerLine"),p=i((h,m,g)=>{d(m).forEach((x,y)=>{u.push({key:`${h}-${y}`,text:x,...g})})},"pushLineRows");return JS.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}}i(cG,"buildBannerTranscriptSection");function RA(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}i(RA,"prependTranscriptSection");var lG=process.env.KODAX_INLINE_LEDGER!=="0";function kA(e,t){process.env.KODAX_INLINE_LEDGER_DEBUG==="1"&>({source:"repl:inline-ledger",level:"debug",message:`${e}; rebuilding on next change.`,...t!==void 0?{detail:t}:{}})}i(kA,"reportInlineLedgerFailure");var uG=i(({options:e,config:t,context:n,startupRuntimeInfo:r,storage:o,autoModeSettings:s,rendererMode:a,fullscreenPolicy:c,onExit:l,compactionInfo:u,autoModeBootstrap:d,setAutoModeAskUser:p,setAutoModeEngineChange:h,setCurrentConfigRef:m,teamModeHandle:g})=>{let{exit:x}=Zr(),{stdout:y}=Qr(),C=y.rows??24,{stdin:v,setRawMode:_,isRawModeSupported:E}=uu(),R=sc(),{history:I}=yc(),W=yA.useRef(null),$=yA.useRef(xv()),{addHistoryItem:D,addHistoryItems:z,clearHistory:re,setSessionId:q}=Sc(),S=Se(I),L=Se(bA(I));Be(()=>{S.current=I,L.current=bA(I)},[I]),Be(()=>{u_()},[]),Be(()=>{HI()},[]);let ee=y.columns||80,j=Tc(),ae=Se(j);Be(()=>{ae.current=j},[j]);let{startStreaming:de,stopStreaming:me,abort:be,startThinking:pe,appendThinkingChars:we,appendThinkingContent:Pe,stopThinking:Q,clearThinkingContent:se,setCurrentTool:Te,appendToolInputChars:nt,appendToolInputContent:It,clearToolInputContent:ze,clearResponse:Ge,appendResponse:he,getSignal:Ie,getFullResponse:G,getThinkingContent:Fe,startNewIteration:wt,clearIterationHistory:Vt,startCompacting:Xe,stopCompacting:Lt,setMaxIter:Zt,addPendingInput:Zn,removeLastPendingInput:Sn,shiftPendingInput:P,consumePendingInputs:U}=Cc(),[H,Z]=Ue(!1),[N,Me]=Ue(t),ve=ye(()=>ns({provider:N.provider,model:N.model,effort:N.effort,effortOverride:N.effortOverride,permissionMode:N.permissionMode,planModeEffort:N.planModeEffort,thinking:N.thinking,reasoningMode:N.reasoningMode}),[N.provider,N.model,N.effort,N.effortOverride,N.permissionMode,N.planModeEffort,N.thinking,N.reasoningMode]),Re=ve.configuredEffort,Pt=ve.runtimeEffort,Kt=ye(()=>({...N,effort:Re}),[N,Re]),wn=ye(()=>YM(u,{provider:N.provider,model:N.model},qi),[u,N.provider,N.model]),[po,Ft]=Ue(!0),[Sr,oT]=Ue(!0),[Td,Cd]=Ue(0),[Gh,el]=Ue(!1),[iT,sT]=Ue(void 0),[aT,Vh]=Ue([]),[cT,wr]=Ue(null),tl=Se(!1),m1=ye(()=>si(),[]),nl=Se(null),vd=Se(null),Kh=Se(Promise.resolve()),Id=Se(null),Fi=Se({requested:!1,uiHistoryOverride:void 0}),Vs=Se(null),rl=Se(!1),ol=Se(null);Be(()=>{let f=e.learning;if(!f)return;let w=!0,T,b=i(async()=>{let B=await f.getSnapshot();return w&&sT(F=>F!==void 0&&F.revision>B.revision?F:B),B},"refresh"),M=i(B=>{gt({source:"repl:learning",level:"warn",message:"Failed to refresh the Learning Center snapshot.",detail:B instanceof Error?B.message:String(B)})},"reportRefreshFailure"),O=i(B=>{if(w){if(B.kind==="ready"||B.kind==="activated"||B.kind==="attention"){let F=B.kind==="ready"?"is ready for review":B.kind==="activated"?"became active":"requires attention";Vh(te=>[{id:B.eventId,text:`A learned ${B.carrier} ${F}: ${B.displayName} [/learn]`,tone:B.kind==="activated"?"accent":"warning"},...te.filter(oe=>oe.id!==B.eventId)].slice(0,2))}b().catch(M)}},"onEvent");return b().then(B=>{if(!w)return;let F=ep(B);if(F){let te=B.attention>0||B.ready>0?"warning":"accent";Vh(oe=>[{id:"learning-recovery",text:F,tone:te},...oe.filter(je=>je.id!=="learning-recovery")].slice(0,2))}T=f.subscribe(O,{afterRevision:B.revision})}).catch(M),()=>{w=!1,T?.close()}},[e.learning]);let[il,bd]=Ue(!0),[zh,Rd]=Ue(""),[Ye,Dr]=Ue(()=>g_(m1,{rendererMode:a})),[zt,Yh]=Ue(!1),[h1,g1]=Ue(0),{scrollRef:y1,scrollOffset:xr,sticky:Xh,setScrollOffset:S1,handleScrollTopChange:w1,handleStickyChange:x1,scrollTo:kd,scrollBy:Ed,scrollToBottom:_d}=$M(),qh=Se(null),Md=Se(null),sl=Se([]),Ad=Se([]),Ks=Se(null),Tr=Se(null),lT=Se({time:0,row:-1,column:-1,count:0}),[Ld,Jh]=Ue(void 0),[mo,Qh]=Ue(void 0),[zs,uT]=Ue(void 0),[Dn,T1]=Ue(()=>new Set),[Zh,dT]=Ue(null),[un,fT]=Ue(null),[J,Pd]=Ue(null),[pT,Ys]=Ue(null),[eg,mT]=Ue(null),al=Se(null),cl=X(f=>{al.current=f,mT(f)},[]),ll=X(f=>{let w=f(al.current);al.current=w,mT(w)},[]),ul=X((f,w)=>{let T=al.current;return T?.status!=="running"||!bk(f,T.runId)?!1:(cl({...T,message:w}),!0)},[cl]),tg=X(f=>{if(f.status==="running"){cl({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}ll(w=>w?.runId===f.runId?null:w)},[cl,ll]),C1=X(f=>{let w=f.type==="workflow_updated"?f.message:void 0,T=Kl(f.snapshot.goal,f.snapshot.workflowName,f.snapshot.displayName,f.snapshot.latestMessage,w);tg(LI(f.snapshot,w===void 0?{locale:T}:{locale:T,message:w}))},[tg]),[$d,ho]=Ue([]),Xs=ye(()=>{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]),[kz,dl]=Ue([]),[fl,v1]=Ue([]),[Od,_t]=Ue(void 0),[Wi,pl]=Ue(void 0),ht=Se(null),Nd=Se(null),Hi=Se([]),qs=Se([]),xn=Se([]),ng=Se(new Set),ct=Se({}),bt=Se({activeToolGroupTools:[]}),hT=Se(0),Dd=Se({itemId:void 0,kind:"thinking",pendingText:""}),Cr=Se(null),I1=80,b1=20,R1=Se(null),Bd=ye(()=>[...I,...fl],[I,fl]),rg=ye(()=>{let f=NR(Bd,R1);return f===0?Bd:Bd.slice(f)},[Bd]),Fd=ye(()=>DR(rg,b1),[rg]),Js=rg,dn=Se(null),Br=Se(null),Fr=Se([]),fn=Se([]),[ji,k1]=Ue([]),go=Se([]),[og,E1]=Ue([]),ml=Se([]),er=X(f=>{go.current=f,k1(f)},[]),Qs=X(f=>{ml.current=f,E1(f)},[]),ig=X(()=>{Qs([])},[Qs]),gT=X(f=>{if(!Fm(f))return!1;let w=bS(f),T=ml.current.filter(b=>b.id!==w);return T.length===ml.current.length||Qs(T),!0},[Qs]),tr=X((f,w,T,b)=>{if(!Fm(f))return!1;let M=bS(f),O=ml.current.find(Ve=>Ve.id===M);if(b?.skipIfExisting&&O?.kind===w||Mk(O?.kind,w))return!0;let B=b?.append&&O?.kind===w?`${O.detail}${T}`:T||O?.detail||"running",F={id:M,label:kk(f),source:Ek(f),status:"running",kind:w,detail:IS(B),startedAt:O?.startedAt??Date.now()},te=ml.current,oe=te.findIndex(Ve=>Ve.id===M),je=oe>=0?te.map((Ve,on)=>on===oe?F:Ve):[...te,F].slice(0,YU);return Qs(je),!0},[Qs]),yT=X(f=>{Hi.current=f,dl(f)},[]),Zs=X(f=>{xn.current=f,v1(f)},[]),ST=X(f=>{let w=f([...xn.current]);Zs(w)},[Zs]),wT=X(f=>{f.length!==0&&Zs([...xn.current,...f])},[Zs]),Wd=X(f=>{let w=bt.current,T=w.activeToolGroupTools.some(b=>b.status===V.Executing);bt.current={...f?.clearOwner?{}:{workerId:w.workerId,workerTitle:w.workerTitle},...T?{activeToolGroupItemId:w.activeToolGroupItemId,activeToolGroupTools:w.activeToolGroupTools}:{activeToolGroupTools:[]}},f?.clearOwner&&(ct.current={})},[]),Hd=X(f=>{for(let w of f)w.type==="user"&&typeof w.id=="string"&&ng.current.add(w.id)},[]),hl=X(()=>{Dd.current={itemId:void 0,kind:"thinking",pendingText:""},Cr.current&&(clearTimeout(Cr.current),Cr.current=null);let f=yS(xn.current,ng.current);if(f.length>0){for(let w of f)ng.current.add(w.id);Vs.current?.(f.map(w=>Ai(w)))}Wd({clearOwner:!0}),Zs([])},[Wd,Zs]),jd=X(f=>(hT.current+=1,`managed-foreground-${f}-${hT.current}`),[]),en=X(f=>(wT([f]),f.id),[wT]),Bn=X((f,w)=>{ct.current.workerId?en({id:`${w}-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:f.type,text:f.text,...f.icon?{icon:f.icon}:{},...f.tightSpacing?{tightSpacing:!0}:{},timestamp:Date.now()}):D(f)},[D,en]),xT=X((f,w)=>{let T=Date.now();ct.current.workerId?en({id:`${w}-${T}-${Math.random().toString(36).slice(2,7)}`,type:"sidecar",text:f.text,...f.verdict?{verdict:f.verdict}:{},...f.delivery?{delivery:f.delivery}:{},timestamp:T}):D(f)},[D,en]),yo=X((f,w)=>{if(!f)return;let T;return ST(b=>b.map(M=>M.id!==f?M:(T=w(M),T))),T},[ST]),ea=X((f,w)=>{let T=bt.current;if(T.activeKind===f){if(f==="thinking"&&T.activeThinkingItemId)return T.activeThinkingItemId;if(f==="assistant"&&T.activeAssistantItemId)return T.activeAssistantItemId;if(f==="tool_group"&&T.activeToolGroupItemId)return T.activeToolGroupItemId}let b=Date.now(),M=w?.trim()?`[${w.trim()}] `:"",O=T.activeToolGroupTools.some(F=>F.status===V.Executing);if(f==="thinking"){let F=en({id:jd("thinking"),type:"thinking",timestamp:b,text:M});return bt.current={...bt.current,activeKind:"thinking",activeThinkingItemId:F,currentTurnThinkingItemId:F,activeAssistantItemId:void 0,...O?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},F}if(f==="assistant"){let F=en({id:jd("assistant"),type:"assistant",timestamp:b,text:M});return bt.current={...bt.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:F,...O?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},F}let B=en({id:jd("tool_group"),type:"tool_group",timestamp:b,tools:[]});return bt.current={...bt.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:B,activeToolGroupTools:[]},B},[en,jd]),vr=X(()=>{Cr.current&&(clearTimeout(Cr.current),Cr.current=null);let f=Dd.current;if(!f.pendingText||!f.itemId)return;let w=f.pendingText,T=f.itemId,b=f.kind;f.pendingText="",yo(T,M=>M.type!==b?M:{...M,text:`${M.text}${w}`})},[yo]),TT=X(()=>{Cr.current||(Cr.current=setTimeout(vr,I1))},[vr]),Ud=X((f,w)=>{if(!w)return;let T=bt.current;if(f==="assistant"&&!ZU(w,T.activeKind==="assistant"&&!!T.activeAssistantItemId))return;let b=T.workerTitle,M=ea(f,b),O=Dd.current;O.itemId===M&&O.kind===f?O.pendingText+=w:(vr(),O.itemId=M,O.kind=f,O.pendingText=w),TT()},[ea,vr,TT]),CT=X(f=>{let w=f.trim();if(!w)return;let T=Dd.current;T.kind==="thinking"&&T.pendingText&&(T.pendingText="",Cr.current&&(clearTimeout(Cr.current),Cr.current=null));let b=bt.current.workerTitle?.trim(),M=b?`[${b}] ${w}`:w,O=bt.current.currentTurnThinkingItemId;if(O){yo(O,F=>F.type==="thinking"?{...F,text:M}:F);return}let B=ea("thinking",bt.current.workerTitle);yo(B,F=>F.type==="thinking"?{...F,text:M}:F)},[ea,yo]),Ir=X(f=>{vr();let w=bt.current;if(w.activeToolGroupItemId&&w.activeToolGroupTools.some(B=>B.id===f.id)){let B=w.activeToolGroupTools.map(te=>te.id===f.id?f:te),F=B.every(te=>te.status===V.Success||te.status===V.Error||te.status===V.Cancelled);bt.current={...w,...F?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:B}},yo(w.activeToolGroupItemId,te=>te.type==="tool_group"?{...te,tools:B}:te);return}let T=xn.current;for(let B=T.length-1;B>=0;B-=1){let F=T[B];if(F.type!=="tool_group"||!F.tools.some(oe=>oe.id===f.id))continue;let te=F.tools.map(oe=>oe.id===f.id?f:oe);yo(F.id,oe=>oe.type==="tool_group"?{...oe,tools:te}:oe);return}let b=ea("tool_group",w.workerTitle),O=w.activeKind==="tool_group"&&w.activeToolGroupItemId===b?w.activeToolGroupTools.some(B=>B.id===f.id)?w.activeToolGroupTools.map(B=>B.id===f.id?f:B):[...w.activeToolGroupTools,f]:[f];bt.current={...bt.current,activeKind:"tool_group",activeToolGroupItemId:b,activeToolGroupTools:O},yo(b,B=>B.type==="tool_group"?{...B,tools:O}:B)},[ea,yo,vr]),_1=X(f=>{vr();let w=bt.current,T=w.activeToolGroupTools.some(O=>O.status===V.Executing),b=go.current.filter(O=>O.status===V.Executing),M=new Set(b.map(O=>O.id));bt.current={workerId:f?.workerId,workerTitle:f?.workerTitle,...T?{activeToolGroupItemId:w.activeToolGroupItemId,activeToolGroupTools:w.activeToolGroupTools}:{activeToolGroupTools:[]}},ct.current={workerId:f?.workerId,workerTitle:f?.workerTitle},Fr.current=[],fn.current=fn.current.filter(O=>M.has(O.id)),er(b),ze(),Te(void 0),Q(),se(),Ge(),_t(void 0)},[vr,ze,Ge,se,Te,er,_t,Q]),M1=X(f=>{if(f.length===0)return[];let w=[],T=[...Hi.current],b=[...qs.current];for(let M of f){let O=M.item,B=T.findIndex(F=>F.id===O.id);if(B>=0){let F=T[B];nh(F,O)||(T=T.map((te,oe)=>oe===B?{...O,timestamp:F.timestamp}:te))}else T=[...T,O].slice(-12),w.push(O);if(M.persistToHistory){let F=b.findIndex(te=>te.id===O.id);if(F>=0){let te=b[F];nh(te,O)||(b=b.map((oe,je)=>je===F?{...O,timestamp:te.timestamp}:oe))}else b=[...b,O].slice(-48)}}return qs.current=b,(w.length>0||T.some((M,O)=>!nh(M,Hi.current[O]??M)||M.id!==Hi.current[O]?.id))&&yT(T),w},[yT]),Gd=X(f=>{if(fn.current.findIndex(T=>T.id===f.id)===-1){fn.current=[...fn.current,f];return}fn.current=fn.current.map(T=>T.id===f.id?f:T)},[]),Ko=X(f=>{let w=go.current.filter(T=>T.status===V.Executing);if(w.length!==0){if(f){let T=YS(f);for(let b=w.length-1;b>=0;b-=1){let M=w[b];if(YS(M.name)===T)return M}}return w[w.length-1]}},[]),ta=X(()=>{let f=Ko();Te(f?zS(f.name):void 0)},[Ko,Te]),vT=X(f=>(Gd(f),er([...go.current.filter(w=>w.id!==f.id),f]),ta(),f),[er,ta,Gd]),na=X((f,w)=>{let T=go.current.find(M=>M.id===f);if(!T)return null;let b=w(T);return Gd(b),er(go.current.map(M=>M.id===f?b:M)),ta(),b},[er,ta,Gd]),IT=X((f,w,T)=>{if(f){let M=na(f,T);if(M)return M}let b=Ko(w);return b?na(b.id,T):null},[Ko,na]),Vd=X((f,w,T,b,M)=>{let O=f??Ko(M)?.id;return O?na(O,B=>({...B,status:w,endTime:Date.now(),error:T,output:b})):null},[Ko,na]),gl=X((f,w)=>{let T=Date.now(),b=new Map;for(let M of go.current){if(M.status!==V.Executing)continue;let O=w(M);b.set(M.id,{...M,status:f,endTime:T,...O})}return b.size===0?[]:(fn.current=fn.current.map(M=>b.get(M.id)??M),er(go.current.map(M=>b.get(M.id)??M)),ta(),[...b.values()])},[er,ta]),zo=X(()=>{er([])},[er]),{showHelp:bT,toggleHelp:A1,setShowHelp:RT}=ew(),L1=X(f=>{Rd(f),bd(f.trim().length===0)},[]),Kd=gi(),kT=ye(()=>Kd?Kd.state.visible&&Kd.suggestions.length>0:!1,[Kd]),[yl,ET]=Ue(!1),_T=Se(Td),Ui=X(()=>{dn.current&&(clearTimeout(dn.current),dn.current=null),Br.current&&(clearTimeout(Br.current),Br.current=null)},[]);Be(()=>{kT&&!yl&&ET(!0)},[kT,yl]),Be(()=>{Td!==_T.current&&(_T.current=Td,yl&&ET(!1))},[Td,yl]);let[qe,Sl]=Ue(null),So=Se(null),P1=Se(BE()),[We,br]=Ue(null),zd=Se(null),Yd=Se(We);Yd.current=We;let[Tn,ra]=Ue(""),[Xd,Rr]=Ue(0),sg=Se(""),wl=Se(void 0),MT=ye(()=>{if(!wn)return;let{contextWindow:f,triggerPercent:w,triggerTokens:T,reservedResponseTokens:b}=wn;return{currentTokens:cT??n.contextTokenSnapshot?.currentTokens??Ji(n.messages),contextWindow:f,triggerPercent:w,triggerTokens:T,reservedResponseTokens:b}},[n.messages,n.contextTokenSnapshot,wn,cT]),xl=ye(()=>{if(!qe)return;let f=new Set(qe.runtimeGrantSuggestions?.map(b=>b.kind)??[]);if(f.has("persistent"))return ne("confirm.instruction.runtime_persistent");if(f.has("session"))return ne("confirm.instruction.runtime_session");if(qe.runtimeGrantSuggestions!==void 0)return ne("confirm.instruction.basic");let w=!!qe.input._alwaysConfirm,T=N.permissionMode==="accept-edits"&&!w;return w?ne("confirm.instruction.protected"):T?ne("confirm.instruction.always"):ne("confirm.instruction.basic")},[qe,N.permissionMode]),xt=Ye.searchMode==="history",ue=Ye.surface==="transcript",Wr=!!qe||!!We||xt,Wt=ue?zt?RR:1e3:12,Yo=pA(c,Ye.surface),AT=Yo.shellMode,ag=Yo.usesAlternateScreenShell,Gi=Yo.usesRendererViewportShell,qd=Yo.usesRendererMouseTracking,LT=Yo.usesManagedMouseClicks,PT=Yo.usesManagedMouseWheel,cg=Yo.usesManagedSelection,Ht=mA(c,Ye.surface,R_(Ye)),$T=k_(Ye),Jd=yl&&!ue,OT=X(()=>Pw({items:Js,managedLiveEvents:[],isLoading:H,isThinking:j.isThinking,thinkingCharCount:j.thinkingCharCount,thinkingContent:j.thinkingContent,currentResponse:j.currentResponse,currentTool:j.currentTool,activeToolCalls:ji,toolInputCharCount:j.toolInputCharCount,toolInputContent:j.toolInputContent,lastLiveActivityLabel:Od,workStripText:Wi,iterationHistory:j.iterationHistory,currentIteration:j.currentIteration,isCompacting:j.isCompacting}),[Js,H,j.isThinking,j.thinkingCharCount,j.thinkingContent,j.currentResponse,j.currentTool,ji,j.toolInputCharCount,j.toolInputContent,Od,Wi,j.iterationHistory,j.currentIteration,j.isCompacting]);Be(()=>{if(ue){dT(f=>f??OT());return}dT(null)},[OT,ue]);let Tl=ye(()=>lA({isTranscriptMode:ue,snapshot:Zh,currentItemsLength:Js.length,currentManagedLiveEventsLength:0,isLoading:H,currentResponse:j.currentResponse,thinkingContent:j.thinkingContent,activeToolCallsLength:ji.length}),[ji.length,H,ue,Js.length,j.currentResponse,j.thinkingContent,Zh]),tn=ue?Zh:null,lg=ye(()=>dA(Fd),[Fd]),$1=ye(()=>!!(fl.length>0||vA(J)),[fl.length,J]),Qd=fl.length>0,pn=c.streamingPreview&&$1,oa=ye(()=>uA({surface:"transcript",snapshot:tn,promptItems:Fd,transcriptItems:Js}),[tn,Fd,Js]),Cl=ye(()=>{if(!ue||zt||oa.length<=sS)return oa;let f=oa.slice(-sS),w=oa.length-f.length;return[WR(w,f[0]?.timestamp),...f]},[oa,ue,zt]),Tt=tn?.isLoading??H,dt=c.streamingPreview?{isThinking:pn?!1:j.isThinking,thinkingCharCount:pn?0:j.thinkingCharCount,thinkingContent:pn?"":j.thinkingContent,currentResponse:pn?"":j.currentResponse,currentTool:pn?void 0:j.currentTool,activeToolCalls:pn?[]:ji,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:pn?Od:void 0,iterationHistory:[],currentIteration:j.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:j.currentIteration,isCompacting:!1},ke=c.streamingPreview?{isThinking:pn?!1:tn?.isThinking??j.isThinking,thinkingCharCount:pn?0:tn?.thinkingCharCount??j.thinkingCharCount,thinkingContent:pn?"":tn?.thinkingContent??j.thinkingContent,currentResponse:pn?"":tn?.currentResponse??j.currentResponse,currentTool:pn?void 0:tn?.currentTool??j.currentTool,activeToolCalls:pn?[]:tn?.activeToolCalls??ji,toolInputCharCount:pn?0:tn?.toolInputCharCount??j.toolInputCharCount,toolInputContent:pn?"":tn?.toolInputContent??j.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:tn?.lastLiveActivityLabel??Od,iterationHistory:pn?[]:tn?.iterationHistory??j.iterationHistory,currentIteration:tn?.currentIteration??j.currentIteration,isCompacting:tn?.isCompacting??j.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:tn?.currentIteration??j.currentIteration,isCompacting:!1},wo=ue?mo:Ld,NT=!!Ld,DT=X(()=>Pw({items:lg,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,lg,dt.activeToolCalls,dt.currentIteration,dt.currentResponse,dt.currentTool,dt.isCompacting,dt.isThinking,dt.iterationHistory,dt.lastLiveActivityLabel,dt.thinkingCharCount,dt.thinkingContent,dt.toolInputCharCount,dt.toolInputContent]);Be(()=>{if(!NT){fT(null);return}fT(f=>f??DT())},[DT,NT]);let vl=un?.items??lg,Cn=un?.isLoading??H,De=un?{isThinking:un.isThinking,thinkingCharCount:un.thinkingCharCount,thinkingContent:un.thinkingContent,currentResponse:un.currentResponse,currentTool:un.currentTool,activeToolCalls:un.activeToolCalls,toolInputCharCount:un.toolInputCharCount,toolInputContent:un.toolInputContent,managedLiveEvents:un.managedLiveEvents,lastLiveActivityLabel:un.lastLiveActivityLabel,iterationHistory:un.iterationHistory,currentIteration:un.currentIteration,isCompacting:un.isCompacting}:dt,nn=ue?Cl:vl,Hr=ue?Tt:Cn,et=ue?ke:De,BT=Cn&&!j.currentResponse&&!j.thinkingContent&&ji.length===0,O1=xu(eg?.status==="running"),Yt=ye(()=>$I(eg,Date.now()),[eg,O1]),FT=Yt.shouldRender?`Workflow ${Yt.workflow}${Yt.phase?` - ${Yt.phase}`:""}`:void 0,xo=ye(()=>OE($d,{now:Date.now(),lastAllCompletedAt:null}),[$d]),WT=C<=20?1:vS,N1=xu(og.length>0),ug=ye(()=>Ak(og,WT,Date.now()),[WT,og,N1]),HT=Rk({isTranscriptMode:ue,isLoading:H,hasWorkflowLiveSurface:Yt.shouldRender,childActivityVisible:ug.shouldRender}),ia=ye(()=>{if(!ue)return[];let f=[];return f.push(...PI(Yt)),H&&xo.shouldRender&&f.push(...LE(xo)),f},[ue,H,xo,Yt]),Vi=ye(()=>({config:Kt,sessionId:n.sessionId,workingDir:e.context?.executionCwd||e.context?.gitRoot||n.runtimeInfo?.executionCwd||n.gitRoot||process.cwd(),terminalWidth:ee,compactionInfo:wn??void 0}),[wn,n.sessionId,Kt,n.runtimeInfo?.executionCwd,e.context?.gitRoot,e.context?.executionCwd,ee]),Xo=ye(()=>c.enabled&&Sr?cG(Vi):void 0,[Vi,c.enabled,Sr]),jT=Se(Dc),UT=Se(!1),dg=Se(!1),sa=yM({enabled:lG,useRendererViewportShell:Gi,isTranscriptMode:ue,hasCommitHandle:typeof ws(y)?.commitInlineScrollback=="function"}),Il=ye(()=>fm({items:vl,viewportWidth:ee,maxLines:Wt,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[vl,ee,Wt]),Ki=ye(()=>{let f=pm({activeItems:Il.activeItems,viewportWidth:ee,isLoading:Cn,maxLines:Wt,isThinking:De.isThinking,thinkingCharCount:De.thinkingCharCount,thinkingContent:De.thinkingContent,streamingResponse:De.currentResponse,currentTool:De.currentTool,activeToolCalls:De.activeToolCalls,toolInputCharCount:De.toolInputCharCount,toolInputContent:De.toolInputContent,iterationHistory:De.iterationHistory,currentIteration:De.currentIteration,isCompacting:De.isCompacting,managedAgentMode:N.agentMode,managedPhase:Cn?J?.phase:void 0,managedHarnessProfile:Cn?J?.harnessProfile:void 0,managedWorkerTitle:Cn?J?.activeWorkerTitle:void 0,managedRound:Cn?J?.currentRound:void 0,managedMaxRounds:Cn?J?.maxRounds:void 0,managedGlobalWorkBudget:Cn?J?.globalWorkBudget:void 0,managedBudgetUsage:Cn?J?.budgetUsage:void 0,managedBudgetApprovalRequired:Cn?J?.budgetApprovalRequired:void 0,lastLiveActivityLabel:De.lastLiveActivityLabel,currentTodoActiveForm:Xs,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:BT}),w=AR(Il,f,Xo);return xM(w,sa)},[N.agentMode,sa,Cn,De.activeToolCalls,De.currentIteration,De.currentTool,De.isCompacting,De.currentResponse,De.isThinking,De.iterationHistory,De.lastLiveActivityLabel,De.thinkingCharCount,De.thinkingContent,De.toolInputCharCount,De.toolInputContent,J?.activeWorkerTitle,J?.budgetApprovalRequired,J?.budgetUsage,J?.currentRound,J?.globalWorkBudget,J?.harnessProfile,J?.maxRounds,J?.phase,BT,Il,Xo,ee,Wt,Xs]),fg=ye(()=>fm({items:Cl,viewportWidth:ee,maxLines:Wt,showDetailedTools:zt,showAllContent:zt,showFullThinking:!0,windowed:!1}),[Cl,ee,Wt,zt]),Zd=ye(()=>{if(!ue||Gi)return;let f=pm({activeItems:fg.activeItems,viewportWidth:ee,isLoading:Tt,maxLines:Wt,isThinking:ke.isThinking,thinkingCharCount:ke.thinkingCharCount,thinkingContent:ke.thinkingContent,streamingResponse:ke.currentResponse,currentTool:ke.currentTool,activeToolCalls:ke.activeToolCalls,toolInputCharCount:ke.toolInputCharCount,toolInputContent:ke.toolInputContent,iterationHistory:ke.iterationHistory,currentIteration:ke.currentIteration,isCompacting:ke.isCompacting,managedAgentMode:N.agentMode,managedPhase:Tt?J?.phase:void 0,managedHarnessProfile:Tt?J?.harnessProfile:void 0,managedWorkerTitle:Tt?J?.activeWorkerTitle:void 0,managedRound:Tt?J?.currentRound:void 0,managedMaxRounds:Tt?J?.maxRounds:void 0,managedGlobalWorkBudget:Tt?J?.globalWorkBudget:void 0,managedBudgetUsage:Tt?J?.budgetUsage:void 0,managedBudgetApprovalRequired:Tt?J?.budgetApprovalRequired:void 0,lastLiveActivityLabel:ke.lastLiveActivityLabel,liveStatusLines:ia,currentTodoActiveForm:Xs,showFullThinking:!0,showDetailedTools:zt,showAllContent:zt,showLiveProgressRows:!Qd,expandedItemKeys:Dn});return RA(iS(mm(fg,f)),Xo)},[N.agentMode,Dn,Qd,Xo,ue,J?.activeWorkerTitle,J?.budgetApprovalRequired,J?.budgetUsage,J?.currentRound,J?.globalWorkBudget,J?.harnessProfile,J?.maxRounds,J?.phase,ee,Tt,Wt,fg,ke.activeToolCalls,ke.currentIteration,ke.currentResponse,ke.currentTool,ke.isCompacting,ke.isThinking,ke.iterationHistory,ke.lastLiveActivityLabel,ke.thinkingCharCount,ke.thinkingContent,ke.toolInputCharCount,ke.toolInputContent,zt,ia,Gi,Xs]),bl=ye(()=>{if(Ht)return ue?RA(hm({items:nn,viewportWidth:ee,isLoading:Hr,maxLines:Wt,isThinking:et.isThinking,thinkingCharCount:et.thinkingCharCount,thinkingContent:et.thinkingContent,streamingResponse:et.currentResponse,currentTool:et.currentTool,activeToolCalls:et.activeToolCalls,toolInputCharCount:et.toolInputCharCount,toolInputContent:et.toolInputContent,iterationHistory:et.iterationHistory,currentIteration:et.currentIteration,isCompacting:et.isCompacting,managedAgentMode:N.agentMode,managedPhase:Hr?J?.phase:void 0,managedHarnessProfile:Hr?J?.harnessProfile:void 0,managedWorkerTitle:Hr?J?.activeWorkerTitle:void 0,managedRound:Hr?J?.currentRound:void 0,managedMaxRounds:Hr?J?.maxRounds:void 0,managedGlobalWorkBudget:Hr?J?.globalWorkBudget:void 0,managedBudgetUsage:Hr?J?.budgetUsage:void 0,managedBudgetApprovalRequired:Hr?J?.budgetApprovalRequired:void 0,lastLiveActivityLabel:et.lastLiveActivityLabel,liveStatusLines:ia,currentTodoActiveForm:Xs,windowed:!0,showFullThinking:ue,showDetailedTools:zt,showAllContent:zt,showLiveProgressRows:ue&&!Qd,expandedItemKeys:ue?Dn:void 0}),Xo):iS(Ki)},[N.agentMode,Hr,nn,Qd,Xo,et.activeToolCalls,et.currentIteration,et.currentResponse,et.currentTool,et.isCompacting,et.isThinking,et.iterationHistory,et.lastLiveActivityLabel,et.thinkingCharCount,et.thinkingContent,et.toolInputCharCount,et.toolInputContent,Dn,ue,J?.activeWorkerTitle,J?.budgetApprovalRequired,J?.budgetUsage,J?.currentRound,J?.globalWorkBudget,J?.harnessProfile,J?.maxRounds,J?.phase,Ki,H,ue,ee,Wt,Ht,ia,zt,Xs]),jr=ye(()=>bl??Zd,[bl,Zd]),Rl=ye(()=>Lw({status:J,isLoading:H,agentMode:N.agentMode}),[N.agentMode,H,J]).workStripText,kl=tn?.workStripText??Wi,aa=ye(()=>Lw({status:J,isLoading:H,agentMode:N.agentMode,parallelTextOverride:kl}),[N.agentMode,kl,H,J]),zi=ye(()=>RM(nn).filter(f=>f!==gm),[nn]),lt=ye(()=>lh(Ye,zi,Ye.selectedItemId),[zi,Ye]),Fn=ye(()=>nn.find(f=>f.id===lt),[nn,lt]),GT=ye(()=>({...Ye,supportsSelection:Ye.supportsSelection&&Ht,supportsCopyOnSelect:Ye.supportsCopyOnSelect&&Ht}),[Ye,Ht]),nr=ye(()=>qM({state:GT,selectableItemIds:zi,selectedItemId:lt,selectedItemType:Fn?.type,isExpanded:lt?Dn.has(lt):!1}),[Dn,zi,Fn?.type,lt,GT]),VT=nr.selectionEnabled,KT=nr.copyCapabilities.copyOnSelect,Mz=nr.selectedItemIndex,zT=ye(()=>bM(Fn),[Fn]),ef=ye(()=>TM(nn.filter(f=>!cS(f))),[nn]),Xt=ye(()=>CM(ef,Tn),[ef,Tn]),tf=ye(()=>ZM({isHistorySearchActive:xt,historySearchQuery:Tn,matches:Xt,selectedIndex:Xd,anchorItemId:Ye.searchAnchorItemId,useOverlaySurface:Ye.supportsOverlaySurface&&Ye.supportsSearchViewport&&Ht}),[Xt,Tn,Xd,xt,Ye.searchAnchorItemId,Ye.supportsOverlaySurface,Ye.supportsSearchViewport,Ht]),qo=tf.clampedSelectedIndex,YT=tf.statusText,pg=tf.detailText,XT=tf.searchState,Az=nr.detailState==="expanded",nf=nr.selectionEnabled&&zi.length>0&&!wo,ca=nr.copyCapabilities.message,rf=nr.copyCapabilities.toolInput,of=nr.toggleDetail;Be(()=>{if(Rl){if(Br.current&&(clearTimeout(Br.current),Br.current=null),Wi===Rl)return;if(Wi){dn.current&&(clearTimeout(dn.current),dn.current=null),pl(Rl);return}dn.current&&clearTimeout(dn.current),dn.current=setTimeout(()=>{pl(Rl),dn.current=null},400);return}if(!Wi){dn.current&&(clearTimeout(dn.current),dn.current=null);return}dn.current&&(clearTimeout(dn.current),dn.current=null),Br.current&&clearTimeout(Br.current),Br.current=setTimeout(()=>{pl(void 0),Br.current=null},300)},[Ui,Rl,Wi]),Be(()=>()=>{Ui()},[Ui]);let Jo=ye(()=>MM({state:Ye,ownsViewport:Ht,isAwaitingUserInteraction:Wr,isHistorySearchActive:xt,isTranscriptMode:ue,historySearchQuery:Tn}),[Tn,Wr,xt,ue,Ye,Ht]);Be(()=>{Dr(f=>{let w=x_(f,xr);return w=w_(w,Tl),w=C_(w,c.enabled&&Ht?!Xh||xt||Wr:ue||xt||Wr),w=b_(w,qo),w})},[qo,c.enabled,xr,Wr,xt,ue,Tl,Ht,Xh]),Be(()=>{Xd!==qo&&Rr(qo)},[qo,Xd]),Be(()=>{if(!xt){sg.current=Tn;return}if(Tn===sg.current)return;sg.current=Tn;let f=IM(ef,Xt,Ye.searchAnchorItemId);Rr(f)},[Xt,Tn,xt,Ye.searchAnchorItemId,ef]);let qT=ue?ke:{isThinking:De.isThinking,thinkingCharCount:De.thinkingCharCount,currentTool:De.currentTool,activeToolCalls:De.activeToolCalls,toolInputCharCount:De.toolInputCharCount,toolInputContent:De.toolInputContent,currentIteration:De.currentIteration,isCompacting:De.isCompacting},El=ue?Tt:Cn,[mg,rr]=Ue(()=>Ls(N.permissionMode,e.runtimeAutoModeControl?void 0:d.getGuardrail().getEngine(),s.engine));Be(()=>{if(!e.runtimeAutoModeControl){_r(N.permissionMode)||rr(void 0);return}if(!_r(N.permissionMode)){rr(void 0),e.runtimeAutoModeControl.syncSettings?.(n.sessionId,N.permissionMode,s);return}rr(b=>Ls(N.permissionMode,b,s.engine));let f=!0;i(async()=>{let b=await e.runtimeAutoModeControl?.syncSettings?.(n.sessionId,N.permissionMode,s)??await e.runtimeAutoModeControl?.getStats(n.sessionId);f&&rr(Ls(N.permissionMode,b?.engine,s.engine))},"refresh")();let T=e.runtimeAutoModeControl.subscribe?.(n.sessionId,b=>{f&&rr(Ls(N.permissionMode,b?.engine,s.engine))});return()=>{f=!1,T?.close()}},[s,n.sessionId,N.permissionMode,e.runtimeAutoModeControl]);let sf=ye(()=>XM({sessionId:n.sessionId,permissionMode:N.permissionMode,agentMode:N.agentMode,provider:N.provider,model:N.model??Kr(N.provider)??N.provider,thinking:N.thinking,reasoningMode:N.reasoningMode,effort:Re,reasoningEffortLabel:ei({provider:N.provider,model:N.model,effort:Re,effortOverride:N.effortOverride,thinking:N.thinking,reasoningMode:N.reasoningMode}),isTranscriptMode:ue,streamingState:qT,maxIter:j.maxIter,contextUsage:MT,learning:iT,isLoading:El,managedState:{phase:J?.phase,harnessProfile:J?.harnessProfile,workerTitle:J?.activeWorkerTitle,round:J?.currentRound,maxRounds:J?.maxRounds,globalWorkBudget:J?.globalWorkBudget,budgetUsage:J?.budgetUsage,budgetApprovalRequired:J?.budgetApprovalRequired,idleWaiting:J?.idleWaiting,idleWaitingPendingCount:J?.idleWaitingPendingCount},autoModeEngine:mg}),[n.sessionId,N.permissionMode,N.agentMode,N.provider,N.model,N.thinking,N.reasoningMode,N.effortOverride,Re,ue,qT,j.maxIter,MT,iT,El,J?.phase,J?.harnessProfile,J?.activeWorkerTitle,J?.currentRound,J?.maxRounds,J?.globalWorkBudget,J?.budgetUsage,J?.budgetApprovalRequired,J?.idleWaiting,J?.idleWaitingPendingCount,mg]),hg=qe?"confirm":We?.kind,JT=ye(()=>zM({isTranscriptMode:ue,isLoading:El,streamingState:De,managedState:El?{phase:J?.phase,harnessProfile:J?.harnessProfile,workerTitle:J?.activeWorkerTitle}:void 0,waitingReason:hg,workflowBuilderMessage:pT??void 0,backgroundWorkflowMessage:FT}),[De.activeToolCalls,De.currentTool,De.isCompacting,De.isThinking,De.thinkingCharCount,De.toolInputCharCount,De.toolInputContent,ue,J?.activeWorkerTitle,J?.harnessProfile,J?.phase,hg,El,pT,FT]),To=VM({activity:JT})?JT:void 0,QT=To?.text,ZT=!!To,eC=Se(!1);Be(()=>{eC.current&&!H&&ho(f=>f.length>0?[]:f),eC.current=H},[H]);let gg=ye(()=>Tm(sf),[sf]),tC=ye(()=>gg,[gg]),nC=tC.text,D1=ye(()=>Sk(j.pendingInputs),[j.pendingInputs]),yg=ye(()=>NE({isHistorySearchActive:xt,isTranscriptMode:ue,pendingInputCount:j.pendingInputs.length,buffering:Ye.buffering,pendingLiveUpdates:Tl}),[xt,ue,Tl,j.pendingInputs.length,Ye.buffering]),rC=yg.leftItems,oC=yg.rightItems,iC=yg.summary,af=ye(()=>tA({historySearchQuery:Tn,pendingInputCount:j.pendingInputs.length}),[Tn,j.pendingInputs.length]),cf=ye(()=>[...eA({historySearchQuery:Tn,isHistorySearchActive:xt,historySearchMatchCount:Xt.length,pendingInputCount:j.pendingInputs.length,maxPendingInputs:5}),...aT],[Xt.length,Tn,xt,aT,j.pendingInputs.length]),sC=ye(()=>cf.map(f=>f.text).join(" | "),[cf]),lf=ye(()=>nA({inputText:zh,isTranscriptMode:ue,isHistorySearchActive:xt}),[zh,xt,ue]),aC=Ye.supportsOverlaySurface&&Ye.supportsSearchViewport&&Ht,uf=ye(()=>JM({runtime:nr,itemSummary:zT}),[zT,nr]),Sg=ye(()=>rA(af),[af]),cC=ye(()=>oA({textSelection:wo,selectionState:uf,isHistorySearchActive:xt,historySearchDetailText:pg,historySearchHasMatches:!!YT&&Xt.length>0,showAllActive:zt,baseFooterNotices:af}),[wo,af,pg,Xt.length,YT,xt,zt,uf]),B1=cC.secondaryText,F1=cC.budgetNotices,lC=ue?F1:Sg,uC=C,dC=ue?"":zh,fC=ue?void 0:D1,pC=kl,mC=ue?!1:bT,hC=Yt.shouldRender?EE(Yt):0,gC=H&&xo.shouldRender?xo.rows.length:0,yC=HT?Wm(ug):0,rn=ye(()=>h_({terminalRows:uC,terminalWidth:ee,windowedTranscript:Gi,inputText:dC,footerHeaderText:iC,activitySummary:ue?void 0:QT,activityBarVisible:ue?!1:ZT,workflowSurfaceRows:ue?0:hC,childActivitySurfaceRows:ue?0:yC,todoSurfaceRows:ue?0:gC,pendingInputSummary:fC,stashNoticeSummary:lf,notificationSummary:sC,statusNoticeSummary:lC.join(" | "),workStripText:pC,suggestionsReserved:Jd,suggestionsMode:"inline",showHelp:mC,statusBarText:nC,confirmPrompt:qe?.prompt,confirmInstruction:xl,dialogMode:"inline",reviewHint:c.enabled&&Ht?void 0:Jo.browseHintText,uiRequest:We?We.kind==="select"?{kind:"select",title:We.title,options:We.options.map(f=>({label:f.label,description:f.description})),buffer:We.buffer,error:We.error}:{kind:"input",prompt:We.prompt,defaultValue:We.defaultValue,buffer:We.buffer,error:We.error}:null}),[uC,ee,dC,iC,QT,ZT,ue,hC,yC,gC,fC,lf,sC,lC,pC,Jd,aC,mC,nC,qe,xl,c.enabled,Jo.browseHintText,Ht,We]),wg=ye(()=>{if(!sa)return{model:Ki,committedSections:[]};let{committedSections:f,liveRows:w}=LR(Il.staticSections,Ki.rows,Ki.previewRows,rn.messageRows);return{model:{...Ki,staticSections:[],rows:w,previewRows:[]},committedSections:f}},[sa,Ki,Il.staticSections,rn.messageRows]),SC=wg.model;Be(()=>{let f=ws(y),w=typeof f?.commitInlineScrollback=="function",T=SM({active:sa,hasCommitHandle:w,wasActive:UT.current,forceRebuild:dg.current,prior:jT.current,finalizedSections:wg.committedSections,bannerSection:Xo,width:ee,identify:PR}),b=!1,M=!1;if(T.kind==="commit"){let B=T.sections.flatMap(te=>te.rows),F=gM(B.length>0?[{key:"il-delta",rows:B}]:[],{width:ee,theme:ce("dark")});if(M=F.length>0,T.mode==="append"&&!F)kA("empty-append-text");else try{f?.commitInlineScrollback?.({mode:T.mode,text:F}),b=!0}catch(te){kA("commit-threw",te)}}let O=wM(T,{committed:b,hadContent:M},dg.current);jT.current=O.state,UT.current=O.wasActive,dg.current=O.owns},[sa,wg.committedSections,Xo,ee,y]);let W1=ye(()=>fe(Om,{reserveSpace:Jd,width:ee,hidden:ue,mode:"inline"}),[Jd,ee,ue,aC]),_l=ye(()=>AM(rn.messageRows),[rn.messageRows]),wC=ye(()=>LM(_l),[_l]),la=!$T&&c.transcriptSpinnerAnimation,Ml=jr?jr.rows.length+jr.previewRows.length:h1,df=X(f=>{jr||g1(f.scrollHeight)},[jr]),Al=X(f=>BM({window:f,stickyHeader:Jo.stickyHeader,width:ee,topChromeRows:0}),[ee,Jo.stickyHeader]),ua=X((f=sl.current,w=Ad.current,T=qh.current?Al(qh.current):Md.current)=>{if(!T||f.length===0){Ks.current=null;return}Md.current=T,Ks.current=FM(f,{allRows:w,rowIndexByKey:Rw(w),topOffsetRows:T.topOffsetRows,viewportHeight:T.contentWindow.viewportHeight,animateSpinners:la})},[Al,la]),Ll=X(()=>{let f=Md.current;return f?.contentWindow.viewportHeight&&f.contentWindow.viewportHeight>0?f.contentWindow.viewportHeight:rn.messageRows},[rn.messageRows]),H1=X(f=>{qh.current=f;let w=Al(f);Md.current=w,ua(sl.current,Ad.current,w)},[ua,Al]),ff=X(f=>{sl.current=f.rows,Ad.current=f.allRows,ua(f.rows,f.allRows)},[ua]),mn=X(()=>{Tr.current=null,Jh(void 0),Qh(void 0)},[]),xg=X(()=>{mn(),Dr(f=>Nc(f,void 0))},[mn]);Be(()=>{ua()},[ua]),Be(()=>{S1(f=>PM(f,Ml,rn.messageRows))},[Ml,rn.messageRows]),Be(()=>{if(!zs)return;let f=setTimeout(()=>{uT(void 0)},2e3);return()=>{clearTimeout(f)}},[zs]);let Wn=X((f,w="success")=>{let T=f?.trim();T&&uT({text:T,tone:w})},[]);Be(()=>e.subscribeTransientNotices?.(f=>{Wn(f.text,f.tone)}),[e.subscribeTransientNotices,Wn]);let j1=X(f=>{Wn(f,"warning")},[Wn]),da=X((f,w)=>{let T=w instanceof Error?w.message:String(w);return`${f}: ${T}`},[]),pf=X(async f=>{let w=f??wo;if(!w)return!1;let T=w.text.trimEnd();if(!T)return!1;try{return await Vl(T,{terminalWrite:R}),Wn(`Copied ${w.rowCount} selected line${w.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(b){return Wn(da("Failed to copy transcript selection",b),"warning"),!1}},[wo,da,Wn,R]),fa=X(f=>{if(!f||OM({items:nn,renderModel:jr,terminalWidth:ee,transcriptMaxLines:Wt,viewportRows:Ll(),itemId:f,visibleRows:sl.current,expandedItemKeys:Dn,showDetailedTools:!1}))return;let w=NM({items:nn,renderModel:jr,terminalWidth:ee,transcriptMaxLines:Wt,viewportRows:Ll(),itemId:f,expandedItemKeys:Dn,showDetailedTools:!1});kd(w)},[nn,ee,Wt,jr,Dn,Ll,kd,sl]),xC=X(f=>{Dr(w=>Nc(w,f)),f&&fa(f)},[fa]),Tg=X(f=>{f&&fa(f)},[fa]),TC=X(f=>{if(!nf)return;let w=kM(zi,lt,f);w&&xC(w)},[nf,zi,lt,xC]),CC=X(()=>{!of||!lt||(T1(f=>{let w=new Set(f);return w.has(lt)?w.delete(lt):w.add(lt),w}),fa(lt))},[fa,of,lt]),vC=X(async()=>{if(!ca||!Fn)return;let f=bw(Fn);if(f)try{await Vl(f,{terminalWrite:R}),Wn("Copied selected transcript entry to clipboard.","success")}catch(w){Wn(da("Failed to copy transcript entry",w),"warning")}},[da,ca,Fn,Wn,R]),IC=X(async()=>{if(!rf||!Fn)return;let f=EM(Fn);if(f)try{await Vl(f,{terminalWrite:R}),Wn("Copied selected tool args to clipboard.","success")}catch(w){Wn(da("Failed to copy tool args",w),"warning")}},[da,rf,Fn,Wn,R]),Pl=X(()=>Ad.current,[]),bC=X((f,w)=>{if(!c.enabled||!Ht)return;let T=Ks.current;return T?Ew(T,f,w):void 0},[c.enabled,Ht]),pa=X((f,w,T)=>{let b=Pl(),M=jM(b,f,w,{animateSpinners:la,selectFullRowOnCollapsed:T?.selectFullRowOnCollapsed});ue?Qh(M):Jh(M);let O=b[Math.max(0,Math.min(w.modelRowIndex,b.length-1))];return T?.updateSelectedItem&&O?.itemId&&Dr(B=>Nc(B,O.itemId)),M},[ue,Pl,la]),RC=X((f,w)=>{if(!f)return;Tr.current=null;let T={...f,focus:w?.focusPoint??f.focus};if(!(T.mode!=="char"||T.didDrag)){mn();return}let M=pa(T.anchor,T.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!M){mn();return}return w?.copySelection!==!1&&pf(M),M},[mn,pf,pa]),Cg=X(()=>{if(!ue||!nn.length||qe||We)return;mn();let f=DM({items:nn,selectedItemId:lt,renderModel:jr,terminalWidth:ee,transcriptMaxLines:Wt,viewportRows:Ll(),scrollOffset:xr,expandedItemKeys:Dn,showDetailedTools:!1,preferViewportAnchor:!0});Dr(w=>v_(w,{anchorItemId:f,initialMatchIndex:0})),ra(""),Rr(0)},[qe,nn,Dn,xr,ue,lt,jr,ee,Wt,We,Ll,mn]),vg=X(()=>{Dr(f=>I_(f)),ra(""),Rr(0),mn()},[mn]),mf=X(()=>{!xt||Xt.length===0||Rr(-1)},[Xt.length,xt]),kC=ye(()=>{if(!qe)return null;if(qe.tool==="exit_plan_mode"){let f=typeof qe.input.plan=="string"?qe.input.plan:void 0;return{prompt:qe.prompt.split(`
|
|
141
|
+
`,1)[0]??qe.prompt,instruction:xl,planContent:f}}return{prompt:qe.prompt,instruction:xl}},[xl,qe]),EC=ye(()=>We?We.kind==="select"?{kind:"select",title:We.title,options:We.options,buffer:We.buffer,error:We.error,visibleSelectOptions:rn.visibleSelectOptions,focusedIndex:We.focusedIndex,selectedIndices:We.selectedIndices,multiSelect:We.multiSelect}:{kind:"input",prompt:We.prompt,defaultValue:We.defaultValue,buffer:We.buffer,error:We.error}:null,[We,rn.visibleSelectOptions]),U1=ye(()=>fe(Nm,{confirm:kC,request:EC}),[kC,EC]),Ig=ye(()=>{if(zs)return fe(bE,{text:zs.text,tone:zs.tone})},[zs]),bg=ye(()=>{if(Ig)return fe(A,{flexDirection:"column",width:"100%",children:Ig})},[Ig]),hf=X(()=>{Dr(f=>T_(S_(f))),Yh(!1),_d(),ra(""),Rr(0),mn()},[mn,_d]),_C=X(()=>{ue&&Yh(f=>!f)},[ue]),G1=X(()=>{if(ue){hf();return}Yh(!1),Dr(f=>y_(f)),ra(""),Rr(0),mn()},[mn,hf,ue]);Be(()=>{VT||!Ye.selectedItemId||Dr(f=>Nc(f,void 0))},[VT,Ye.selectedItemId]),Be(()=>{if(!ue||!ca||!KT){wl.current=void 0;return}if(mo||!lt||!Fn)return;if(!wl.current){wl.current=lt;return}if(wl.current===lt)return;wl.current=lt;let f=bw(Fn);f&&Vl(f,{terminalWrite:R}).catch(()=>{})},[ue,Fn,lt,ca,KT,mo,R]),Be(()=>{if(y?.isTTY!==!0)return;let f=ws(y);f?.setShellMode?.(AT,qd),ag||f?.setAltScreenActive?.(!1)},[AT,y,ag,qd]);let V1=ye(()=>DE(o,()=>Kh.current),[o]),$e=Se({...e,thinking:N.thinking,reasoningMode:N.reasoningMode,effort:Pt,agentMode:N.agentMode,workflowRunsBaseDir:Zo("workflow-runs",is(process.cwd()).key),context:{...e.context,gitRoot:n.gitRoot??void 0,executionCwd:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),repoIntelligenceMode:N.repoIntelligenceMode,repoIntelligenceTrace:N.repoIntelligenceTrace,toolConstructionMode:!0},session:{...e.session,id:n.sessionId,storage:V1,persistedByHost:!0},guardrails:e.runtimeRunner?void 0:Nw(N.permissionMode,d)});Be(()=>{$e.current.effort=Pt},[Pt]);let $l=X(f=>{let w=f.workspaceRoot??void 0;n.runtimeInfo=f,n.gitRoot=w,$e.current.context={...$e.current.context,gitRoot:w,executionCwd:f.executionCwd??w??process.cwd()}},[n]),Hn=Se(N.permissionMode),MC=Se(0);Be(()=>{Hn.current=N.permissionMode},[N.permissionMode]);let K1=ye(()=>Wa(),[]),AC=Se(K1),Rt=Se(N);Be(()=>{Rt.current=N},[N]);let Rg=Se(null);Rg.current===null&&(Rg.current=jf({getProvider:i(()=>qi(Rt.current.provider),"getProvider"),getModel:i(()=>Rt.current.model??"","getModel")}));let LC=Se(Kf());Be(()=>{N.permissionMode==="auto-in-project"&&LC.current()},[]);let kg=X(async f=>{let w=++MC.current;Me(M=>({...M,permissionMode:f})),Hn.current=f,rr(Ls(f,void 0,s.engine));let T=await e.runtimeAutoModeControl?.syncSettings?.(n.sessionId,f,s);if(w!==MC.current)return;let b=ns({provider:Rt.current.provider,model:Rt.current.model,effort:Rt.current.effort,effortOverride:Rt.current.effortOverride,permissionMode:f,planModeEffort:Rt.current.planModeEffort,thinking:Rt.current.thinking,reasoningMode:Rt.current.reasoningMode});if($e.current={...$e.current,effort:b.runtimeEffort,guardrails:e.runtimeRunner?void 0:Nw(f,d)},!_r(f))rr(void 0);else if(e.runtimeAutoModeControl){let M=T??await e.runtimeAutoModeControl.getStats(n.sessionId);rr(Ls(f,M?.engine,s.engine))}else rr(d.getGuardrail().getEngine());f==="auto-in-project"&&LC.current()},[d,s,n.sessionId,e.runtimeAutoModeControl,e.runtimeRunner]),PC=Se(j.pendingInputs),ut=Se(!1),$C=Se(0),Eg=Se(null),Ol=Se(0),gf=X(()=>{if(rl.current)return;let f=Nd.current?.trim(),w=S.current.length>0?S.current[S.current.length-1]:void 0,T=w&&"text"in w&&typeof w.text=="string"?w.text.trim():void 0,M=xn.current.length>0?[...xn.current.map(O=>Ai(O)),...f&&f!==T?[{type:"info",text:f}]:[]]:[...xn.current.map(O=>Ai(O)),...eG(Fe(),G(),{toolCalls:fn.current,toolNames:Fr.current,infoItems:f&&f!==T?[f]:[]})];M.length!==0&&(rl.current=!0,Hd(xn.current),Vs.current?.(M))},[G,Fe,Hd]);Be(()=>{PC.current=j.pendingInputs},[j.pendingInputs]);let OC=X(()=>{ut.current=!0,be(),me(),Q(),se(),ze(),Ge(),Te(void 0),zo(),_t(void 0),hl(),Hi.current=[],qs.current=[],ht.current=null,Nd.current=null,dl([]),Pd(null),Ys(null),Ui(),pl(void 0),Z(!1),y?.isTTY===!0&&ws(y)?.clear?.()},[be,Ge,se,ze,Ui,zo,hl,Te,dl,Z,_t,me,Q,y]),yf=X(f=>{let w=hv(),T=w.list().filter(M=>M.status==="running"||M.status==="paused");if(T.length===0)return!1;for(let M of T)w.stop(M.runId,f);ll(M=>!M||M.status!=="running"||!T.some(O=>O.runId===M.runId)?M:{...M,status:"stopped",activeAgents:[],message:"Workflow stopped by user."});let b=T[0];return T.length===1&&b?Bn({type:"info",text:`Stopped workflow ${b.workflow} (${b.runId}).`},"workflow-stop"):Bn({type:"info",text:`Stopped ${T.length} active workflows.`},"workflow-stop"),!0},[Bn,ll]);Be(()=>{if(!Yt.shouldRender)return;let f=i(()=>{yf("stopped by Ctrl+C")},"handleSigint");return process.on("SIGINT",f),()=>{process.off("SIGINT",f)}},[yf,Yt.shouldRender]),Kn(vn.Critical,f=>{let w=f.name==="escape",T=Date.now(),b=w&&!ue&&!Wr&&il&&j.pendingInputs.length===0&&(H||Yt.shouldRender),M=b&&(f.meta===!0||T-$C.current<jU);if($C.current=b?T:0,B_({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ue,isAwaitingUserInteraction:Wr,isInputEmpty:il,isDoubleEscape:M,pendingInputCount:j.pendingInputs.length,hasTranscriptTextSelection:!!mo,hasActiveWorkflow:Yt.shouldRender}))return yf(f.ctrl?"stopped by Ctrl+C":"stopped by Escape");if(!H)return!1;switch(F_({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ue,isAwaitingUserInteraction:Wr,isInputEmpty:il,isDoubleEscape:M,pendingInputCount:j.pendingInputs.length,hasTranscriptTextSelection:!!mo}).kind){case"interrupt":return gf(),OC(),!0;case"pop-pending-input":return Sn(),!0;default:break}return!1},[H,ue,Wr,il,j.pendingInputs.length,Sn,gf,OC,yf,mo,Yt.shouldRender]),Kn(vn.Critical,f=>{let w=O_({itemsLength:nn.length,currentResponse:et.currentResponse,thinkingContent:et.thinkingContent,activeToolCallsLength:et.activeToolCalls.length}),T=N_({keyName:f.name,hasTranscript:w,historyScrollOffset:xr,reviewPageSize:_l,reviewWheelStep:wC,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:LT,supportsMouseTracking:Ye.supportsMouseTracking,usesRendererMouseTracking:qd,usesManagedMouseWheel:PT,supportsWheelHistory:Ye.supportsWheelHistory});if(T.kind==="mouse-phase"){let M=f.mouse;if(!M)return!1;T.phase==="press"&&Tr.current&&RC(Tr.current);let O=bC(M.row,M.column);if(T.phase==="press"){if(!O||!w)return wo||lt?(xg(),!0):(mn(),!1);let B=gA({previous:lT.current,time:Date.now(),row:M.row,column:M.column});lT.current=B;let F=B.count>=3?"line":B.count===2?"word":"char";if(mf(),Dr(te=>Nc(te,void 0)),ue?Qh(void 0):Jh(void 0),F!=="char"){let te=wh(Pl(),O.point,F);if(te)return Tr.current={anchor:te.start,focus:te.end,didDrag:!1,mode:F,anchorSpan:te},pa(te.start,te.end,{updateSelectedItem:!1}),!0}return Tr.current={anchor:O.point,focus:O.point,didDrag:!1,mode:"char"},!0}if(!Tr.current)return!1;if(T.phase==="drag"){let B=Ks.current,F=B?GM(B,M.row):0;F!==0&&Ed(F);let te=O??(B?_w(B,M.row,M.column):void 0);if(!te)return!1;let oe=Tr.current;if(oe.mode!=="char"&&oe.anchorSpan){let je=wh(Pl(),te.point,oe.mode);if(!je)return!1;let Ve=Ow(oe.anchorSpan,je);return Tr.current={...oe,anchor:Ve.anchor,focus:Ve.focus,didDrag:!0},pa(Ve.anchor,Ve.focus,{updateSelectedItem:!1}),!0}return Tr.current={...oe,focus:te.point,didDrag:!0},pa(oe.anchor,te.point,{updateSelectedItem:!1}),!0}if(T.phase==="release"){let B=Tr.current,F=B.focus,oe=(O??(Ks.current?_w(Ks.current,M.row,M.column):void 0))?.point??F;if(B.mode!=="char"&&B.anchorSpan){let je=wh(Pl(),oe,B.mode);if(je){let Ve=Ow(B.anchorSpan,je);B.anchor=Ve.anchor,oe=Ve.focus}}return RC(B,{focusPoint:oe}),!0}}if(T.kind==="scroll-by")return mf(),Ed(T.delta),!0;if(T.kind==="consume")return!0;let b=W_({key:f,isTranscriptMode:ue,isHistorySearchActive:xt,historySearchMatchCount:Xt.length,hasTextSelection:!!wo,hasFocusedItem:!!lt,canCopySelectedItem:ca,canCopySelectedToolInput:rf,canToggleSelectedDetail:of,canCycleTranscriptSelection:nf});return H_({action:b,hasTranscript:w,isTranscriptMode:ue,pageScrollDelta:_l,disarmHistorySearchSelection:mf,scrollTranscriptBy:Ed,closeHistorySearchSurface:vg,backspaceHistorySearchQuery:i(()=>{ra(M=>M.slice(0,-1)),Rr(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:i(M=>{Rr(O=>Iw(Xt.length,O,M))},"stepHistorySearchSelection"),submitHistorySearchSelection:i(()=>{let M=Xt[qo];M&&(Tg(M.itemId),vg())},"submitHistorySearchSelection"),appendHistorySearchQuery:i(M=>{ra(O=>O+M),Rr(0)},"appendHistorySearchQuery"),openHistorySearchSurface:Cg,clearTranscriptSelectionFocus:xg,exitTranscriptModeSurface:hf,toggleTranscriptShowAll:_C,scrollTranscriptHome:i(()=>{kd(Math.max(0,Ml-rn.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:i(()=>{_d(),mn()},"scrollTranscriptToBottom"),cycleTranscriptSelection:TC,copySelectedTranscriptText:i(()=>{pf()},"copySelectedTranscriptText"),copySelectedTranscriptItem:i(()=>{vC()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:i(()=>{IC()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:CC,navigateSearchMatch:i(M=>{Rr(O=>{let B=Iw(Xt.length,O,M),F=Xt[B];return F&&Tg(F.itemId),B})},"navigateSearchMatch"),dumpTranscriptToScrollback:i(()=>{j_({items:nn.filter(M=>!cS(M)),exitAltScreen:i(()=>{R(Up({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:i(M=>{R(M)},"writeToScrollback"),enterAltScreen:i(()=>{R(jp({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[ue,nn,et.currentResponse,et.thinkingContent,et.activeToolCalls,xr,Ml,_l,wC,lt,xg,hf,_C,Ye,Ed,kd,_d,nf,qo,mn,pf,Xt,Cg,vg,mf,TC,ca,vC,rf,IC,of,CC,Tg,wo,bC,Ye.supportsMouseTracking,mo,LT,PT,cg,Gi,qd,pa,rn.messageRows]),Kn(f=>{if(!qe)return!1;let w=f.sequence.trim().toLowerCase(),T=qe.runtimeGrantSuggestions?.find(te=>te.kind==="session"),b=qe.runtimeGrantSuggestions?.find(te=>te.kind==="persistent"),M=!!qe.input._alwaysConfirm,O=qe.runtimeGrantSuggestions!==void 0,B=b!==void 0||!O&&N.permissionMode==="accept-edits"&&!M,F=i(te=>{let oe=`${ne("dialog.confirm")} ${qe.prompt}
|
|
142
|
+
\u2192 ${ne(`confirm.result.${te}`)}`;!!ct.current.workerId?en({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:oe,timestamp:Date.now()}):D({type:"info",text:oe})},"recordConfirmResult");return w==="y"||w==="yes"?(F("approved"),Sl(null),So.current?.({confirmed:!0}),So.current=null,!0):T&&(w==="s"||w==="session")?(F("approved_session"),Sl(null),So.current?.({confirmed:!0,runtimeGrantKind:"session"}),So.current=null,!0):B&&(w==="a"||w==="always")?(F("approved_always"),Sl(null),So.current?.(b?{confirmed:!0,runtimeGrantKind:"persistent"}:{confirmed:!0,always:!0}),So.current=null,!0):w==="n"||w==="no"||f.name==="escape"?(F("denied"),Sl(null),So.current?.({confirmed:!1}),So.current=null,!0):f.insertable||f.name==="return"},{isActive:!!qe,priority:vn.Critical});let Sf=X(f=>{br(null),zd.current?.(f),zd.current=null},[]),Co=X((f,w,T,b)=>w.length===0?Promise.resolve(void 0):new Promise(M=>{zd.current=M,br({kind:"select",title:f,options:w,buffer:"",focusedIndex:0,selectedIndices:[],multiSelect:T,minSelections:b?.minSelections,maxSelections:b?.maxSelections})}),[]),z1=X((f,w)=>Co(f,w.map(T=>({label:T,value:T}))).then(T=>Array.isArray(T)?T[0]:T),[Co]),Y1=X(async f=>{let w=e.learning;if(!w)return;let T=f;if(!T){let B=await w.list({limit:200});if(B.items.length===0){Vh([{id:"learning-center-empty",text:"Learning Center has no learned capabilities.",tone:"accent"}]);return}let F=await Co("Learning Center \u2014 type to search",GU(B.items));T=Array.isArray(F)?F[0]:F}if(!T)return;let b=await w.get(T),M=await Co(`${b.displayName} \xB7 ${b.carrier} \xB7 ${b.lifecycle}`,UU(b)),O=Array.isArray(M)?M[0]:M;O&&(await VU(w,b.capabilityId,O),sT(await w.getSnapshot()))},[e.learning,Co]),NC=X(async f=>{let w=f.options?Sh(f.options):[],T=await Co(Aw(f),w,!1);return T===void 0?Ea:Array.isArray(T)?T[0]??Ea:T},[Co]);Be(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:w}=await import("./construction-bootstrap-K3ZGEN5N.js");f||w(NC)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:w}=await import("./construction-bootstrap-K3ZGEN5N.js");w(null)})()}},[NC]);let ma=X((f,w)=>new Promise(T=>{zd.current=b=>T(Array.isArray(b)?b[0]:b),br({kind:"input",prompt:f,defaultValue:w,buffer:""})}),[]);Kn(f=>{let w=Yd.current;if(!w)return!1;if(f.name==="escape")return Sf(void 0),!0;if(w.kind==="select"){let T=w.options.length;if(f.name==="up"||f.sequence==="k")return br(b=>b&&b.kind==="select"?{...b,focusedIndex:(b.focusedIndex-1+T)%T,error:void 0}:b),!0;if(f.name==="down"||f.sequence==="j")return br(b=>b&&b.kind==="select"?{...b,focusedIndex:(b.focusedIndex+1)%T,error:void 0}:b),!0;if(f.sequence===" "&&w.multiSelect)return br(b=>{if(!b||b.kind!=="select")return b;let M=b.focusedIndex,O=b.selectedIndices.includes(M)?b.selectedIndices.filter(B=>B!==M):[...b.selectedIndices,M];return{...b,selectedIndices:O,error:void 0}}),!0;if(f.name==="return"){let b=Yd.current;if(!b||b.kind!=="select")return!1;if(b.multiSelect){let M=b.selectedIndices.length,{minSelections:O,maxSelections:B}=b,F=M===0&&O!==0?ne("select.multiselect_empty"):O!==void 0&&M<O?ne("select.multiselect_min",{min:String(O)}):B!==void 0&&M>B?ne("select.multiselect_max",{max:String(B)}):void 0;if(F!==void 0)return br(oe=>oe&&oe.kind==="select"?{...oe,error:F}:oe),!0;let te=b.selectedIndices.slice().sort((oe,je)=>oe-je).map(oe=>b.options[oe]?.value).filter(oe=>typeof oe=="string"&&oe.length>0);Sf(te)}else Sf(b.options[b.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(f.sequence)){let b=Number.parseInt(f.sequence,10)-1;if(b>=0&&b<T)return w.multiSelect?br(M=>{if(!M||M.kind!=="select")return M;let O=M.selectedIndices.includes(b)?M.selectedIndices.filter(B=>B!==b):[...M.selectedIndices,b];return{...M,focusedIndex:b,selectedIndices:O,error:void 0}}):br(M=>M&&M.kind==="select"?{...M,focusedIndex:b,error:void 0}:M),!0}return!1}if(f.name==="return"){let T=Yd.current;if(!T||T.kind!=="input")return!1;let b=T.buffer.trim();return Sf(b===""?T.defaultValue??void 0:b),!0}return f.name==="backspace"||f.name==="delete"?(br(T=>T&&T.kind==="input"?{...T,buffer:T.buffer.slice(0,-1),error:void 0}:T),!0):(f.insertable||f.isPasted===!0)&&!f.ctrl&&!f.meta?(br(T=>T&&T.kind==="input"?{...T,buffer:T.buffer+f.sequence,error:void 0}:T),!0):!1},{isActive:!!We,priority:vn.Critical}),Be(()=>{if(n.messages.length>0&&I.length===0){if(n.uiHistory?.length){let f=oo(n.uiHistory);f.length!==n.uiHistory.length&&(n.uiHistory=f),z(zu({messages:n.messages,uiHistory:f}));return}z(zu({messages:n.messages}))}},[n.messages,n.uiHistory,I.length,z]),Be(()=>{_f(n.gitRoot)},[n.gitRoot]),Be(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&cv({executionCwd:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:N.repoIntelligenceMode})},[n.gitRoot,n.runtimeInfo?.executionCwd,N.repoIntelligenceMode]);let Nl=X(()=>({onMemoryOutcomeDigest:i((f,w)=>{if(f.sessionId!==n.sessionId){e.events?.onMemoryOutcomeDigest?.(f,w);return}n.lineage=Pf(n.lineage??Je(n.messages),f,w?.jobId)},"onMemoryOutcomeDigest"),onMemoryReviewReceipt:i(f=>{if(f.sessionId!==void 0&&f.sessionId!==n.sessionId){e.events?.onMemoryReviewReceipt?.(f);return}n.lineage=$f(n.lineage??Je(n.messages),f)},"onMemoryReviewReceipt"),onMemoryNotice:i(f=>{if(f.sessionId!==void 0&&f.sessionId!==n.sessionId){e.events?.onMemoryNotice?.(f);return}let w=n.lineage??Je(n.messages),T=Of(w,{...f,createdAt:new Date().toISOString()});n.lineage=T,T!==w&&D({type:"info",text:`[memory] ${f.summaries.slice(0,3).join("; ")}`}),e.events?.onMemoryNotice?.(f)},"onMemoryNotice"),onThinkingDelta:i((f,w)=>{if(ut.current||tr(w,"thinking",f,{append:!0}))return;j.currentTool&&(Te(void 0),ze());let{header:T}=QE(Fe()+f),b=T?`[Thinking: ${T}]`:"[Thinking]";_t(th(ht.current?.activeWorkerTitle?`[${ht.current.activeWorkerTitle}] ${b}`:b,ht.current?.activeWorkerTitle)),we(f.length),Pe(f),ct.current.workerId&&Ud("thinking",f)},"onThinkingDelta"),onThinkingEnd:i((f,w)=>{if(ut.current||tr(w,"thinking",f))return;let T=Fe(),b=XE(T,f);b&&b!==T&&(se(),pe(),we(b.length),Pe(b)),ct.current.workerId&&CT(b),Q()},"onThinkingEnd"),onTextDelta:i((f,w)=>{ut.current||tr(w,"assistant",f,{append:!0})||(j.currentTool&&(Te(void 0),ze()),Q(),_t(void 0),he(f),ct.current.workerId&&Ud("assistant",f))},"onTextDelta"),onToolUseStart:i((f,w)=>{if(ut.current||tr(w,"tool",_k(f.name,f.input)))return;Fr.current.includes(f.name)||(Fr.current=[...Fr.current,f.name]);let T=ht.current?.activeWorkerTitle?`[${ht.current.activeWorkerTitle}] `:"",b={id:f.id,name:`${T}${f.name}`,status:V.Executing,startTime:Date.now(),input:f.input};vT(b),ct.current.workerId&&Ir(b),_t(Do(b,ht.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:i((f,w,T)=>{if(ut.current||tr(T,"tool",f,{skipIfExisting:!0}))return;nt(w.length),It(w);let b=IT(T?.toolId,f,M=>{let O=M.preview??"",B=KE(`${O}${w}`);return{...M,preview:B||void 0,input:M.input?B?{...M.input,preview:B}:{...M.input}:B?{preview:B}:void 0}});b&&(ct.current.workerId&&Ir(b),_t(Do(b,ht.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:i((f,w)=>{if(ut.current||tr(w,"tool",`${f.name} completed`))return;let T=typeof f.content=="string"?f.content:String(f.content??""),b=zE(T);if(/^\[(?:Tool Error|Error)\]/.test(T)){let O=Vd(f.id,V.Error,b,b,f.name);O&&(ct.current.workerId&&Ir(O),_t(Do(O,ht.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(T)){let O=Vd(f.id,V.Cancelled,void 0,b,f.name);O&&(ct.current.workerId&&Ir(O),_t(Do(O,ht.current?.activeWorkerTitle)));return}let M=Vd(f.id,V.Success,void 0,b||void 0,f.name);M&&(ct.current.workerId&&Ir(M),_t(Do(M,ht.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:i((f,w)=>{if(ut.current||tr(w,"progress",f.message))return;let T=f.message.length>100?f.message.slice(0,97)+"...":f.message,b=na(f.id,M=>({...M,preview:T,progressLines:[...(M.progressLines??[]).slice(-4),T]}));b&&ct.current.workerId&&Ir(b),_t(T)},"onToolProgress"),onStreamEnd:i(f=>{if(ut.current||Fm(f))return;let w=gl(V.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),T=w[w.length-1];ct.current.workerId&&w.forEach(b=>Ir(b)),T&&_t(Do(T,ht.current?.activeWorkerTitle)),Q(),ze(),Te(void 0)},"onStreamEnd"),onChildActivityEnd:i(f=>{gT(f)},"onChildActivityEnd"),hasPendingInputs:i(()=>PC.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:i(f=>{if(!ut.current)for(let w of f){let T=w.trim();T&&(ct.current.workerId?en({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:T,timestamp:Date.now()}):D({type:"user",text:T}))}},"onMidTurnUserMessages"),onSidecarMessage:i(f=>{if(ut.current)return;let w=f.suggestedFix?`${f.content}
|
|
143
|
+
Suggested fix: ${f.suggestedFix}`:f.content;if(f.delivery==="budget-exhausted")xT({type:"sidecar",text:w,delivery:"budget-exhausted"},"sidecar-message");else{let T=f.verdict==="blocked"?"blocked":"revise";xT({type:"sidecar",text:w,verdict:T},"sidecar-message")}},"onSidecarMessage"),onError:i(f=>{let w=Ko();w?.name&&_t(Do(w,ht.current?.activeWorkerTitle));let T=gl(V.Error,()=>({error:f.message,output:void 0})),b=T[T.length-1];ct.current.workerId&&T.forEach(je=>Ir(je)),b&&_t(Do(b,ht.current?.activeWorkerTitle));let M=sv(f),O=["Transient","Permanent","Tool Call ID","User Abort"];if(M.category===Wl.USER_ABORT)return;let F=[`\u274C API Error (${O[M.category]||"Unknown"}): ${f.message}`];M.shouldCleanup&&F.push(" \u{1F9F9} Cleaned incomplete tool calls"),M.category===Wl.PERMANENT?(F.push(" \u{1F4A1} This error requires manual intervention. Please check:"),f.message.includes("auth")||f.message.includes("401")?(F.push(" - Your API key is valid"),F.push(" - Run /config to check provider settings")):f.message.includes("400")?(F.push(" - The request parameters are correct"),F.push(" - Try restarting the conversation")):F.push(" - The error details above")):M.category===Wl.TRANSIENT?F.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):M.category===Wl.TOOL_CALL_ID&&F.push(" \u2705 Session cleaned, ready to continue");let te=F.join(`
|
|
144
|
+
`);!!ct.current.workerId?en({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:te,timestamp:Date.now()}):D({type:"error",text:te})},"onError"),onRetry:i((f,w,T,b)=>{if(ut.current)return;let M=Yu(f,w,T);if(ul(b,M.text)||tr(b,"progress",M.text))return;!!ct.current.workerId?en({...M,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):D(M)},"onRetry"),onProviderRecovery:i((f,w)=>{if(ut.current)return;let T=Xu(f);if(ul(w,T.text)||tr(w,"progress",T.text))return;let b=!!ct.current.workerId,M=G().trim();M&&(b?Ud("assistant",M):D({type:"assistant",text:M})),Ge(),se(),Q(),ze(),Te(void 0),zo(),_t(void 0),b?en({...T,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):D(T)},"onProviderRecovery"),onManagedTaskStatus:i(f=>{if(ut.current)return;let w=ct.current;if(vA(f)){if(w.workerId&&w.workerId!==f.activeWorkerId)_1({workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle});else if(w.workerId!==f.activeWorkerId){let B=bt.current,F=B.activeToolGroupTools.some(te=>te.status===V.Executing);bt.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle,...F?{activeToolGroupItemId:B.activeToolGroupItemId,activeToolGroupTools:B.activeToolGroupTools}:{activeToolGroupTools:[]}},ct.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle}}}ht.current=f,Pd(f);let T=JE(f);M1(T);let b=Pc(f),O=Pc(f,{expanded:!0})??b;O&&(Nd.current=O)},"onManagedTaskStatus"),onProviderRateLimit:i((f,w,T,b)=>{if(ut.current)return;let M=Eg.current;if(Eg.current=null,WE(M,{attempt:f,maxAttempts:w,delayMs:T}))return;let O=`[Rate Limit] Retrying in ${T/1e3}s (${f}/${w})...`;ul(b,O)||tr(b,"progress",O)||Bn({type:"info",icon:"\u23F3",text:O},"ratelimit")},"onProviderRateLimit"),onRetryAfter:i((f,w)=>{if(ut.current)return;Eg.current={attempt:f.attempt,maxAttempts:f.maxAttempts,waitMs:f.waitMs};let T=Math.round(f.waitMs/1e3),b=f.source==="exponential-backoff"?"no-header \u2192 backoff":f.source,O=`[${f.reason==="overloaded"?"Overloaded":"Rate limited"}] (${f.provider}) \u2014 retrying in ${T}s [${b}] (${f.attempt}/${f.maxAttempts})`;ul(w,O)||tr(w,"progress",O)||Bn({type:"info",icon:"\u23F3",text:O},"ratelimit")},"onRetryAfter"),onReasoningEffortRejected:i(f=>{YC(f.provider,f.model,f.effort,"observed",new Date().toISOString());let T=ns({provider:f.provider,model:f.model,effort:Rt.current.effort,effortOverride:Rt.current.effortOverride,permissionMode:Rt.current.permissionMode,planModeEffort:Rt.current.planModeEffort,thinking:Rt.current.thinking,reasoningMode:Rt.current.reasoningMode}).runtimeEffort;Me(b=>({...b,effort:T,effortOverride:T!==void 0})),rs({effort:T}),$e.current.effort=T,Bn({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${T?`,\u5DF2\u5207\u5230 ${T}`:""}]`},"ratelimit")},"onReasoningEffortRejected"),onRepoIntelligenceTrace:i(f=>{ut.current||Bn(d_(f),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:i(f=>{ut.current||ho(f)},"onTodoUpdate"),onScoutSuspiciousCompletion:i(f=>{ut.current||IA&&Bn({type:"info",icon:"\u26A0",text:`[Scout] Completion marked uncertain \u2014 signals: ${f.signals.join(", ")}. Verify the result before continuing.`},"scout-uncertain")},"onScoutSuspiciousCompletion"),onIterationStart:i((f,w)=>{if(ut.current)return;if(w&&Zt(w),ht.current?.globalWorkBudget){let oe={...ht.current,budgetUsage:Math.min(ht.current.globalWorkBudget,(ht.current.budgetUsage??0)+1)};ht.current=oe,Pd(oe)}let T=f>1?Fe().trim():"",b=f>1?Ww(G()):"",M=f>1?[...Fr.current]:[],O=f>1?[...fn.current]:[],B=!!ct.current.workerId;wt(f),B&&Wd({clearOwner:!1});let F=go.current.filter(oe=>oe.status===V.Executing),te=new Set(F.map(oe=>oe.id));if(Fr.current=[],fn.current=fn.current.filter(oe=>te.has(oe.id)),er(F),ze(),Te(void 0),_t(th(ht.current?.activeWorkerTitle?`[Thinking] [${ht.current.activeWorkerTitle}]`:void 0,ht.current?.activeWorkerTitle)),pe(),f>1&&!B){let oe=Hw({thinking:T,response:b,toolCalls:O,toolNames:M});Vs.current?Vs.current(oe):z([...oe])}},"onIterationStart"),beforeToolExecute:i(async(f,w)=>{let T=Hn.current,b=_a(T),M=AC.current,O=n.gitRoot;if(Gf(T,mg))return!0;if(Tv($.current,f,w))return`[Skipped] Previously denied operation. ${Cv($.current)}`;if(T==="plan"&&(ko.has(f)||f==="undo"))return`[Blocked] Tool '${f}' is not allowed in plan mode (read-only). ${xA}`;if(T==="plan"&&f==="bash"){let B=w.command??"";if(Mr(B))return`[Blocked] Bash write operation not allowed in plan mode: ${B.slice(0,50)}... ${xA}`}if(f==="bash"){let B=w.command??"";if(Gn(B))return!0}if(f==="bash"){let B=w.command??"",F=wv(B);if(F.level==="dangerous"){let te=await vo(f,{...w,_dangerousCommand:!0});return te.confirmed?te.confirmed:($.current=jg($.current,f,w,F.reason),`[Blocked] Dangerous command requires confirmation: ${F.reason}`)}}if(O){let B=!1;if(ko.has(f)){let F=w.path;F&&Da(F,O)&&(B=!0)}if(f==="bash"){let F=w.command;F&&Jf(F,O)&&(B=!0)}if(B){let F=await vo(f,{...w,_alwaysConfirm:!0});if(Hn.current==="plan"&&(ko.has(f)||f==="undo"))return!1;if(Hn.current==="plan"&&f==="bash"){let te=w.command??"";if(Mr(te))return!1}return F.confirmed}}if(b.has(f)){if(T==="accept-edits"&&f==="bash"&&await Na(f,w,M,Rg.current??void 0))return!0;let B=await vo(f,w);if(Hn.current==="plan"&&(ko.has(f)||f==="undo"))return!1;if(Hn.current==="plan"&&f==="bash"){let F=w.command??"";if(Mr(F))return!1}if(!B.confirmed)return D({type:"info",text:ne("cancelled")}),$.current=jg($.current,f,w),!1;B.always&&T==="accept-edits"&&(Qf(f,w,!1),AC.current=Wa())}return!0},"beforeToolExecute"),askUser:i(async f=>{let w=Mw(f.options?Sh(f.options):[],f),T=await Co(Aw(f),w,f.multiSelect,{minSelections:f.minSelections,maxSelections:f.maxSelections});if(T===void 0)return Ea;if(T===Gr){let b=await ma(f.customInputPrompt??f.question,f.customInputDefault);return b===void 0?Ea:{kind:"customInput",value:b}}if(Array.isArray(T)&&T.includes(Gr)){let b=await ma(f.customInputPrompt??f.question,f.customInputDefault);return b===void 0?Ea:T.map(M=>M===Gr?{kind:"customInput",value:b}:M)}return T},"askUser"),exitPlanMode:i(async f=>Hn.current!=="plan"?"not-in-plan-mode":(await vo("exit_plan_mode",{plan:f})).confirmed?(kg("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:i(async f=>{let w=f.questions,T={},b=0;for(;b<w.length;){let M=w[b],O=Mw(Sh(M.options),M);b>0&&O.push({label:ne("select.back_prev"),value:Og});let B=`[${b+1}/${w.length}] ${M.question}`,F=await Co(B,O,M.multiSelect,{minSelections:M.minSelections,maxSelections:M.maxSelections});if(F===void 0)return;if(!Array.isArray(F)&&F===Og){b--;continue}if(!Array.isArray(F)&&F===Gr){let te=await ma(M.customInputPrompt??M.question,M.customInputDefault);if(te===void 0)return;T[M.question]={kind:"customInput",value:te},b++;continue}if(Array.isArray(F)&&F.includes(Gr)){let te=await ma(M.customInputPrompt??M.question,M.customInputDefault);if(te===void 0)return;T[M.question]=F.map(oe=>oe===Gr?{kind:"customInput",value:te}:oe),b++;continue}T[M.question]=F,b++}return T},"askUserMulti"),askUserInput:i(async f=>ma(f.question,f.default),"askUserInput"),onCompactStart:i(()=>{Xe()},"onCompactStart"),onCompactStats:i(f=>{nl.current=f.tokensBefore,wr(f.tokensAfter)},"onCompactStats"),onCompactedMessages:i(async(f,w,T)=>{let b=Qm(n.lineage,f,w,T);if(!b)return;n.messages=f,w?.artifactLedger&&w.artifactLedger.length>0&&(n.artifactLedger=Qi(n.artifactLedger??[],w.artifactLedger),n.sessionSnapshotDirty=!0),n.lineage=b;let M=Ji(f);if(n.contextTokenSnapshot={currentTokens:M,baselineEstimatedTokens:M,source:"estimate"},Or(n),wr(M),e.runtimeRunner){n.lineage===b&&(n.lineage=Ia(b));return}let O=vd.current;if(!O)throw new Error("Ink REPL compaction persistence is not initialized.");try{await O(),n.lineage===b&&(n.lineage=Ia(b))}catch(B){throw gt({source:"repl:compaction",level:"error",message:"Failed to durably persist compacted session history.",detail:B}),B}},"onCompactedMessages"),onCompact:i(f=>{Lt();let w=nl.current??f;nl.current=null;let T=Math.round(w/1e3);Bn({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${T}k tokens)`},"compact")},"onCompact"),onCompactEnd:i(()=>{nl.current=null,Lt()},"onCompactEnd"),onIterationEnd:i(f=>{f.scope!=="worker"&&(n.contextTokenSnapshot=f.contextTokenSnapshot),wr(f.tokenCount)},"onIterationEnd")}),[we,Pe,Q,he,Te,nt,It,ze,wt,pe,N,n,Xe,Lt,D,se,Fe,G,Wd,_t,Ud,CT,Ir,vT,IT,Vd,gl,Ko,zo,er,gT,ul,tr,Bn,j.currentTool]),vo=i((f,w,T)=>{let b=VE(f,w),M=T?.map(F=>F.label)??[],O=T===void 0?[]:[vc,...M.map(F=>`Runtime scope: ${F}`)],B=O.length>0?`${b}
|
|
145
|
+
${O.join(`
|
|
146
|
+
`)}`:b;return P1.current(()=>(vr(),new Promise(F=>{So.current=F,Sl({tool:f,input:w,prompt:B,...T!==void 0?{runtimeGrantSuggestions:T}:{}})})))},"showConfirmDialog"),X1=i(async f=>{let w=await vo(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??[]);return Gm(f,w)},"requestRuntimePermission");Be(()=>(p(async(f,w,T)=>(await vo(f.name,{...f.input,_reason:`[auto-mode] ${w}`,...T&&T.length>0?{_classifierSignals:T}:{}})).confirmed?"allow":"block"),h(f=>{rr(f)}),()=>{p(null),h(null)}),[]),Be(()=>{m(N)},[N,m]),Be(()=>{let f=i(()=>Nl(),"resolve");return Ng({askUser:i(w=>{let T=f().askUser;if(!T)throw new Error("askUser surface unavailable");return T(w)},"askUser"),askUserMulti:i(async w=>{let T=f().askUserMulti;return T?T(w):void 0},"askUserMulti"),askUserInput:i(async w=>{let T=f().askUserInput;return T?T(w):void 0},"askUserInput")}),()=>Ng(void 0)},[Nl]);let ha=i(async(f,w,T=n.lineage?$t(n.lineage,n.lineage.activeEntryId):n.messages,b)=>{let M={...Nl(),getCostReport:W,onWorkflowProcessEvent:C1,onWorkflowAgentDigest:i(({runId:oe,event:je})=>{let Ve=je.data??{},on=typeof Ve.summary=="string"?Ve.summary:void 0,Yi=typeof Ve.name=="string"?Ve.name:void 0,wa=al.current,Xi=on!==void 0||Yi!==void 0?Kl(on,Yi):wa?.runId===oe?wa.locale??"en":"en",rt=sp(je,Xi,oe);rt&&(ct.current.workerId?en({id:`wf-digest-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"assistant",text:rt,timestamp:Date.now()}):or([{type:"assistant",text:rt}]))},"onWorkflowAgentDigest")},B=Ef(n.gitRoot).getSystemPromptSnippet(),F=f_(f.context,n.gitRoot,n.contextTokenSnapshot,B,n.runtimeInfo?.executionCwd);b&&b.length>0&&(F.inputArtifacts=[...b]),F.planModeBlockCheck=(oe,je)=>Hn.current!=="plan"?null:ti(oe,je,n.gitRoot??n.runtimeInfo?.executionCwd??process.cwd());let te={...f,session:{...f.session,initialMessages:T,initialExtensionState:n.extensionState??{},initialExtensionRecords:n.extensionRecords??[]},context:F,events:M,abortSignal:Ie()};try{return e.runtimeRunner?await e.runtimeRunner({options:te,prompt:w,sessionId:n.sessionId,permissionMode:Hn.current,autoModeSettings:s,requestPermission:X1,legacyPermissionHook:!0}):await Hl(te,w)}finally{lv()}},"runAgentRound"),jn=X(f=>{let w=Je([...f],n.lineage);return n.lineage=w,w},[n]),Dl=X(async f=>{if(n.messages.length===0)return;let w=ri(n.messages),T=oo(f??L.current);L.current=T,n.title=w,n.uiHistory=T;let b=n.lineage??jn(n.messages);n.lineage=b;let M={...n.extensionStateDirty?{extensionState:n.extensionState??{}}:{},...n.extensionRecordsDirty?{extensionRecords:n.extensionRecords??[]}:{}},O=Hc({messages:n.messages,title:w,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:$e.current.session?.tag,uiHistory:T,lineage:b,artifactLedger:n.artifactLedger,...M}),B=wA(o)?await o.prepareSessionAppend(n.sessionId):null,F=B===null?void 0:zU(O,B,n.sessionSnapshotDirty===!0);wA(o)&&F!==void 0?await o.appendPreparedSessionTail(n.sessionId,F):KU(o)?await o.appendSessionDelta(n.sessionId,O):await o.save(n.sessionId,O),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,ih()&&sh("persist",ah(n.messages,b,{historyItems:S.current,foregroundItems:xn.current,streamingResponse:ae.current.currentResponse,streamingThinking:ae.current.thinkingContent,persistedUiHistory:L.current}))},[n,jn,o]),_g=X(()=>{if(Id.current)return Id.current;let f=(async()=>{try{for(;Fi.current.requested;){Fi.current.requested=!1;let w=Fi.current.uiHistoryOverride;Fi.current.uiHistoryOverride=void 0,await Dl(w)}}finally{Id.current=null,Fi.current.requested&&_g()}})();return Id.current=f,Kh.current=f,f},[Dl]),Io=X(f=>{if(f!==void 0){let w=oo(f);L.current=w,Fi.current.uiHistoryOverride=w}return Fi.current.requested=!0,_g()},[_g]),q1=X(async()=>{if(ol.current)return ol.current;let f=(async()=>{ut.current=!0,be(),me(),Q(),se(),ze(),Ge(),Te(void 0),Z(!1),await Kh.current.catch(()=>{}),await vd.current?.().catch(()=>{}),Ft(!1),E&&v?.isRaw&&_(!1),v?.pause?.(),v?.unref?.(),x(),l()})();return ol.current=f.finally(()=>{ol.current=null}),ol.current},[be,Ge,se,ze,x,E,l,Te,Z,_,v,me,Q]);Be(()=>(vd.current=Io,()=>{vd.current=null}),[Io]);let wf=X(f=>{if(f.length===0)return;let w=xh(L.current,f);L.current=w,Io(w)},[Io]),or=X(f=>{f.length!==0&&(z([...f]),wf(f))},[z,wf]),ga=X(f=>{f.length!==0&&(z([...f]),L.current=xh(L.current,f))},[z]);Be(()=>(Vs.current=or,()=>{Vs.current=null}),[or]);let DC=X(async f=>{vr(),n.messages=f.messages,n.contextTokenSnapshot=f.contextTokenSnapshot,SA(n,f),jn(f.messages);let w=f.success===!1&&!f.interrupted,T=Fe().trim(),b=RI(f.messages,G(),f.managedTask?.verdict.summary,f.lastText),M=bt.current.workerTitle,O=[...xn.current],B=O.length>0;Hd(O);let F=B&&O.some(rt=>rt.type==="assistant"&&"text"in rt&&CA(String(rt.text??""),M)),te=O.filter(rt=>rt.type!=="assistant"||!("text"in rt)||CA(String(rt.text??""),M)),oe=!w&&b&&!F,je=[...qs.current],Ve=w?[]:je.length===0?IA?qS(f):qS(f).filter(rt=>!XS(rt)):[],on=B?[]:Hw({thinking:T,response:void 0,toolCalls:fn.current,toolNames:Fr.current}),Yi=[...te.map(rt=>Ai(rt)),...on,...w?[]:je.map(rt=>Ai(rt)),...Ve.map(rt=>TA(rt)),...oe?[{type:"assistant",text:f.interrupted?`${b}
|
|
147
|
+
|
|
148
|
+
[Interrupted]`:b}]:!b&&!F&&!f.interrupted&&!w?[{type:"info",text:"[No response text was produced for this round]"}]:[]],wa=xh(L.current,Yi);se(),Ge();let Xi=[...te.map(rt=>Ai(rt)),...on,...w?[]:[...Ve.map(rt=>TA(rt)),...je.map(rt=>Ai(rt))],...oe?[{type:"assistant",text:f.interrupted?`${b}
|
|
149
|
+
|
|
150
|
+
[Interrupted]`:b}]:!b&&!F&&!f.interrupted&&!w?[{type:"info",text:"[No response text was produced for this round]"}]:[]];z(Xi),Fr.current=[],fn.current=[],zo(),ze(),Te(void 0),_t(void 0),hl(),Hi.current=[],qs.current=[],dl([]),Vt(),Io(wa).catch(()=>{})},[z,Vt,ze,Ge,se,n,vr,G,Fe,Io,jn,zo,hl,Te,_t,j.currentIteration]),ya=X(async f=>{let w=f.trim();w&&(D({type:"user",text:w}),Cd(T=>T+1),Or(n))},[D,n]),Sa=X(async(f,w)=>{let T=Ol.current;ut.current=!1,rl.current=!1,el(!0);try{return await P_({initialPrompt:f,runRound:w,shiftPendingPrompt:P,onRoundComplete:i(async b=>{Ol.current===T&&await DC(b)},"onRoundComplete"),onBeforeQueuedRound:i(async b=>{ut.current=!1,rl.current=!1,await ya(b)},"onBeforeQueuedRound"),shouldContinue:i(b=>!ut.current&&b.success!==!1,"shouldContinue"),shouldDrainQueuedPrompts:i(()=>tl.current?ae.current.pendingInputs.length===0?(tl.current=!1,!0):!1:!0,"shouldDrainQueuedPrompts")})}finally{el(!1)}},[DC,P,ya]),BC=X(async f=>{if(n.messages.length===0)return"empty";if(!ki(N,"Recovering into a new session",nd))return"blocked";let T=n.sessionId,b=n.lineage??jn(n.messages);n.lineage=b;let M=n.artifactLedger?structuredClone(n.artifactLedger):void 0,O=Df({sourceSessionId:T,messages:n.messages,lineage:b,artifactLedger:M,reason:"provider session recovery"}),B=n.title||ri(n.messages);await o.save(n.sessionId,Hc({messages:n.messages,title:B,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:$e.current.session?.tag,uiHistory:L.current,lineage:b,artifactLedger:M,extensionState:n.extensionState,extensionRecords:n.extensionRecords}));let F=ks(),te=Je(O.messages);await o.save(F,Hc({messages:O.messages,title:O.title,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:$e.current.session?.tag,uiHistory:[],lineage:te,artifactLedger:M}));let oe=new Date().toISOString();n.sessionId=F,n.messages=O.messages,n.uiHistory=[],n.title=O.title,n.contextTokenSnapshot=void 0,n.lineage=te,n.artifactLedger=M,n.extensionState=void 0,n.extensionRecords=void 0,n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,n.createdAt=oe,n.lastAccessed=oe,L.current=[],$e.current.session={...$e.current.session,id:F},wr(null),re(),ho([]),Xg()?.reset(),q(F),g?.writer.update({sessionId:F}),ga([{type:"info",text:`Recovered into new session ${F}
|
|
151
|
+
Source session saved: ${T}
|
|
152
|
+
Raw provider history was not replayed.`}]),await o.save(F,Hc({messages:n.messages,title:n.title,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:$e.current.session?.tag,uiHistory:L.current,lineage:n.lineage,artifactLedger:n.artifactLedger}));let je=Nf(f);try{await ya(je),await Sa(je,async Ve=>{let on=Oc(Ve,$e.current.context?.executionCwd??process.cwd());for(let Yi of on.warnings)D({type:"info",text:Yi});return ha($e.current,on.promptText,n.messages,on.inputArtifacts)})}catch(Ve){let on=Ve instanceof Error?Ve.message:String(Ve);return or([{type:"error",text:`[Recover failed] ${on}`}]),"failed"}return"recovered"},[D,or,ga,re,n,N,jn,Sa,ya,o,g]),Mg=X(async()=>{let f=P();if(!f||!f.trim())return;let w=f.trim();await ya(w),await Sa(w,async T=>ha($e.current,T))},[ha,Sa,P,ya]),Ag=X(f=>{let w=f[f.length-1];if(w?.role!=="assistant")return;let T=Ha(w);z(T.map(ni))},[z]),FC=X(async(f,w)=>{let T=await oh({...$e.current,provider:N.provider,thinking:N.thinking,reasoningMode:N.reasoningMode},f,w,b=>D({type:"info",text:b}));if(T.mode==="manual"){T.manualOutput&&D({type:"info",text:T.manualOutput}),await T.finalize();return}if(!T.prompt||!T.options){await T.finalize();return}el(!0);try{let b=T.mode==="fork"?[]:n.lineage?$t(n.lineage,n.lineage.activeEntryId):n.messages,M=Ol.current,O=await ha(T.options,T.prompt,b);if(Ol.current!==M)await T.finalize();else{let B=L.current,F=[];if(T.mode==="fork"){let te=O.messages.find(je=>je.role==="user");te&&n.messages.push(te);let oe=O.messages.slice().reverse().find(je=>je.role==="assistant");if(oe){n.messages.push({role:"assistant",content:oe.content}),jn(n.messages);for(let je of Ha(oe)){let Ve=ni(je);D(Ve),F.push(Ve)}}}else{n.messages=O.messages,n.contextTokenSnapshot=O.contextTokenSnapshot,jn(O.messages),Ag(O.messages);let te=O.messages[O.messages.length-1];if(te?.role==="assistant")for(let oe of Ha(te))F.push(ni(oe))}SA(n,O),await Dl(xh(B,F)),ih()&&sh("round-end",ah(n.messages,n.lineage,{historyItems:S.current,foregroundItems:xn.current,streamingResponse:ae.current.currentResponse,streamingThinking:ae.current.thinkingContent,persistedUiHistory:L.current})),await T.finalize()}}catch(b){let M=b instanceof Error?b:new Error(String(b));throw await T.finalize(M),el(!1),M}el(!1),await Mg()},[D,Ag,n,N.provider,N.thinking,Mg,Dl,jn,ha]),J1=X(async f=>{for(let w of f.pastedContents)if(w.type==="text"&&!w.content&&w.contentHash)try{let T=await WI(w.contentHash);T&&(w.content=T)}catch{}},[]),Q1=X(async f=>{let{displayText:w,fullText:T,pastedContents:b}=f;if(!T.trim()||!po||qe||We)return;for(let Ee of b){if(Ee.type!=="text"||Ee.content.length<1024)continue;let Oe=BI(Ee.content);FI(Oe,Ee.content)}if(RT(!1),H){if(!Gh)return;if(j.pendingInputs.length>=5){Bn({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(L_(T)){Bn({type:"info",icon:"\u26A0",text:M_},A_);return}let Ee=j.currentTool;if(Ee&&Ff(Ee)?.interruptBehavior==="cancel"){Zn(T),be({preservePendingInputs:!0}),Rd(""),bd(!0),Cd(Un=>Un+1),Or(n);return}Zn(T),Rd(""),bd(!0),Cd(Oe=>Oe+1),Or(n);return}let M=Ww(G()),O=xn.current.map(Ee=>Ai(Ee)),B=O.length>0;O.length>0&&(Hd(xn.current),ga(O)),!B&&M&&ga([{type:"assistant",text:M+`
|
|
153
|
+
|
|
154
|
+
[Interrupted]`}]),ga([{type:"user",text:w}]),Rd(""),bd(!0),Cd(Ee=>Ee+1),ih()&&sh("turn-start",ah(n.messages,n.lineage,{historyItems:S.current,foregroundItems:xn.current,streamingResponse:ae.current.currentResponse,streamingThinking:ae.current.thinkingContent,persistedUiHistory:L.current})),Z(!0),ut.current=!1,rl.current=!1,++Ol.current,Pd(null),Ys(null),ht.current=null,Nd.current=null,_t(void 0),hl(),Hi.current=[],qs.current=[],dl([]),Ui(),pl(void 0),Fr.current=[],fn.current=[],zo(),ig(),Ge(),ze(),Te(void 0),Vt(),de(),Or(n),await new Promise(Ee=>setTimeout(Ee,50));let F=i(Ee=>{if(Ee.stage==="started"||Ee.stage==="generating"||Ee.stage==="validating"||Ee.stage==="ready"){Ys(Ee.message);return}Ys(null)},"handleWorkflowBuilderEvent"),te=tg,oe=i(Ee=>{if(Ee.type==="event")return;let Oe=Gt(Ee.text).trimEnd();if(Oe.trim()){if(Ee.type==="error"){D({type:"error",text:Oe});return}if(Ee.type==="assistant"){or([{type:"assistant",text:Oe}]);return}Bn({type:"info",text:Oe},"workflow-message")}},"handleWorkflowRunMessage"),je=i(async(Ee,Oe,Un)=>{if(Wf({source:Ee.source}).action==="none")return!1;let kr=[],Qo=console.log;console.log=(...ie)=>{kr.push(Dw(ie))};let Ur=!1,xa=i(()=>{Ur||(Ur=!0,n.messages.push({role:"user",content:Oe||Ee.request}))},"commitWorkflowUserMessage"),Y={...Un,onWorkflowRunMessage:i(ie=>{if(Un.onWorkflowRunMessage?.(ie),ie.type!=="assistant"||ie.final!==!0)return;let ge=Gt(ie.text).trimEnd();ge.trim()&&(xa(),n.messages.push({role:"assistant",content:ge}),jn(n.messages),Io(),ae.current.pendingInputs.length>0&&(tl.current=!0))},"onWorkflowRunMessage")};try{let ie=await ap({request:Ee.request,callbacks:Y,approval:N.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:Ee.displayName,processSource:Ee.processSource??"command",...Ee.builtin!==void 0?{builtin:Ee.builtin}:{},onBuilderEvent:Y.onWorkflowBuilderEvent});return ie==="started"&&ae.current.pendingInputs.length>0&&(tl.current=!0),Hf({outcome:ie})}finally{Ys(null),console.log=Qo;let ie=Bw(kr.filter((ge,jt,qt)=>qt.indexOf(ge)===jt));ie&&D({type:"info",text:ie})}},"runWorkflowInvocation"),Ve=ss(T.trim());if(Ve){let Ee=!1,Oe=i(Y=>{Ve.command==="workflow"&&(Ee||(Ee=!0,n.messages.push({role:"user",content:T.trim()})),n.messages.push({role:"assistant",content:Y}),jn(n.messages),Io())},"commitSlashWorkflowFinalMessage"),Un={getRuntimeStatus:e.getRuntimeStatus,validateSetupA2AConfig:e.validateSetupA2AConfig,prepareSetupSandbox:e.prepareSetupSandbox,inspectSandbox:e.inspectSandbox,learning:e.learning,getLearningSummary:e.learning?()=>e.learning.getSnapshot():void 0,openLearningCenter:Y1,exit:q1,saveSession:i(async()=>{if(n.messages.length>0){let Y=ri(n.messages);n.title=Y;let ie=n.lineage??jn(n.messages);n.lineage=ie,await o.save(n.sessionId,Hc({messages:n.messages,title:Y,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:$e.current.session?.tag,uiHistory:L.current,lineage:ie,artifactLedger:n.artifactLedger,extensionState:n.extensionState,extensionRecords:n.extensionRecords})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1}},"saveSession"),startNewSession:i(()=>{let Y=ks(),ie=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,L.current=[],n.createdAt=ie,n.lastAccessed=ie,$l(r),$e.current.session={...$e.current.session,id:Y},wr(null),re(),ho([]),Xg()?.reset(),q(Y),g?.writer.update({sessionId:Y})},"startNewSession"),loadSession:i(async Y=>{let ie=await o.load(Y);if(ie){if(!ki(N,"Resuming a saved session",nd))return"blocked";let jt=await zr({cwd:process.cwd()}),qt=_n(ie),sr=qt??jt;return qt?.workspaceRoot&&!ip(qt)&&(sr=jt),n.messages=ie.messages,n.uiHistory=bi(ie.uiHistory),n.lineage=ie.lineage,n.artifactLedger=ie.artifactLedger,n.extensionState=ie.extensionState?structuredClone(ie.extensionState):void 0,n.extensionRecords=ie.extensionRecords?.map(Bl=>({...Bl})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ie.title,n.sessionId=Y,n.contextTokenSnapshot=void 0,$l(sr),n.sessionSnapshotDirty=JSON.stringify(sr)!==JSON.stringify(qt),$e.current.session={...$e.current.session,id:Y,tag:ie.tag},L.current=n.uiHistory??[],wr(null),re(),ho([]),q(Y),g?.writer.update({sessionId:Y}),console.log(yt.green(`[Session loaded: ${Y}]`)),"loaded"}return"missing"},"loadSession"),listSessions:i(async()=>{let Y=await o.list(n.gitRoot??void 0);if(Y.length===0){console.log(yt.dim(`
|
|
155
|
+
[No saved sessions]`));return}console.log(yt.bold(`
|
|
156
|
+
Recent Sessions:
|
|
157
|
+
`));for(let ie of Y.slice(0,10))console.log(` ${yt.cyan(ie.id)} ${yt.dim(`(${ie.msgCount} messages)`)} ${ie.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:i(()=>{n.uiHistory=[],re(),ho([])},"clearHistory"),printHistory:i(()=>{if(n.messages.length===0){console.log(yt.dim(`
|
|
158
|
+
[No conversation history]`));return}console.log(yt.bold(`
|
|
159
|
+
Conversation History:
|
|
160
|
+
`));let Y=n.messages.slice(-20);for(let ie=0;ie<Y.length;ie++){let ge=Y[ie],jt=yt.cyan(ge.role.padEnd(10)),qt=rp(ge.content),sr=qt.slice(0,60).replace(/\n/g," "),Bl=qt.length>60?"...":"";console.log(` ${(ie+1).toString().padStart(2)}. ${jt} ${sr}${Bl}`)}console.log()},"printHistory"),switchProvider:i((Y,ie)=>{let ge=ns({provider:Y,model:ie,effort:Rt.current.effort,effortOverride:Rt.current.effortOverride,permissionMode:Rt.current.permissionMode,planModeEffort:Rt.current.planModeEffort,thinking:Rt.current.thinking,reasoningMode:Rt.current.reasoningMode});Me(jt=>({...jt,provider:Y,model:ie})),$e.current.provider=Y,$e.current.model=ie,$e.current.effort=ge.runtimeEffort,ge.diagnostic&&console.log(yt.yellow(`
|
|
161
|
+
[${ge.diagnostic}]`))},"switchProvider"),setThinking:i(Y=>{let ie=Y?"auto":"off";Me(ge=>({...ge,thinking:Y,reasoningMode:ie})),$e.current.thinking=Y,$e.current.reasoningMode=ie},"setThinking"),setEffort:i(Y=>{Me(ie=>({...ie,effort:Y,effortOverride:Y!==void 0}))},"setEffort"),setReasoningMode:i(Y=>{let ie=Y!=="off";Me(ge=>({...ge,thinking:ie,reasoningMode:Y})),$e.current.thinking=ie,$e.current.reasoningMode=Y},"setReasoningMode"),setAgentMode:i(Y=>{Me(ie=>({...ie,agentMode:Y})),$e.current.agentMode=Y},"setAgentMode"),setPermissionMode:kg,setRepoIntelligenceRuntime:i(Y=>{Me(ie=>({...ie,...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,$e.current.context={...$e.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,$e.current.context={...$e.current.context,repoIntelligenceTrace:Y.trace})},"setRepoIntelligenceRuntime"),deleteSession:i(async Y=>{await o.delete?.(Y)},"deleteSession"),deleteAllSessions:i(async()=>{await o.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let Y=await o.getLineage?.(n.sessionId);if(!Y){console.log(yt.dim(`
|
|
162
|
+
[No session tree available for this session]`));return}let ie=Zm(Lf(Y));console.log(yt.bold(`
|
|
163
|
+
Session Tree:
|
|
164
|
+
`)),ie.forEach(ge=>console.log(` ${ge}`)),console.log()},"printSessionTree"),switchSessionBranch:i(async Y=>{if(!ki(N,"Switching session branches",nd))return"blocked";let ge=await o.setActiveEntry?.(n.sessionId,Y,{summarizeCurrentBranch:!0});if(!ge)return"missing";n.messages=ge.messages,n.uiHistory=bi(ge.uiHistory),n.lineage=ge.lineage,n.artifactLedger=ge.artifactLedger,n.extensionState=ge.extensionState?structuredClone(ge.extensionState):void 0,n.extensionRecords=ge.extensionRecords?.map(sr=>({...sr})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ge.title,n.contextTokenSnapshot=void 0;let jt=_n(ge),qt=jt??n.runtimeInfo??r;return $l(qt),n.sessionSnapshotDirty=JSON.stringify(qt)!==JSON.stringify(jt),L.current=n.uiHistory??[],wr(null),re(),ho([]),console.log(yt.green(`
|
|
165
|
+
[Switched to tree entry: ${Y}]`)),console.log(yt.dim(` Messages: ${ge.messages.length}`)),"switched"},"switchSessionBranch"),labelSessionBranch:i(async(Y,ie)=>{let ge=await o.setLabel?.(n.sessionId,Y,ie);if(!ge)return!1;n.lineage=ge.lineage;let jt=ie&&ie.trim()?`checkpoint label set: ${ie.trim()}`:"checkpoint label cleared";return console.log(yt.green(`
|
|
166
|
+
[${jt}]`)),!0},"labelSessionBranch"),forkSession:i(async Y=>{if(!ki(N,"Forking a session branch",nd))return"blocked";let ge=await o.fork?.(n.sessionId,Y);if(!ge)return"failed";n.sessionId=ge.sessionId,n.messages=ge.data.messages,n.uiHistory=bi(ge.data.uiHistory),n.lineage=ge.data.lineage,n.artifactLedger=ge.data.artifactLedger,n.extensionState=ge.data.extensionState?structuredClone(ge.data.extensionState):void 0,n.extensionRecords=ge.data.extensionRecords?.map(Bl=>({...Bl})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ge.data.title,n.contextTokenSnapshot=void 0;let jt=_n(ge.data),qt=jt??n.runtimeInfo??r;$l(qt),n.sessionSnapshotDirty=JSON.stringify(qt)!==JSON.stringify(jt),L.current=n.uiHistory??[];let sr=new Date().toISOString();return n.createdAt=sr,n.lastAccessed=sr,$e.current.session={...$e.current.session,id:ge.sessionId,tag:ge.data.tag},wr(null),re(),ho([]),q(ge.sessionId),g?.writer.update({sessionId:ge.sessionId}),console.log(yt.green(`
|
|
167
|
+
[Forked session: ${ge.sessionId}]`)),console.log(yt.dim(` Messages: ${ge.data.messages.length}`)),"forked"},"forkSession"),recoverSession:BC,rewindSession:i(async Y=>{if(!ki(N,"Rewinding session",nd))return"blocked";let ge=await o.rewind?.(n.sessionId,Y);if(!ge)return"failed";n.messages=ge.messages,n.uiHistory=bi(ge.uiHistory),n.lineage=ge.lineage,n.artifactLedger=ge.artifactLedger,n.extensionState=ge.extensionState?structuredClone(ge.extensionState):void 0,n.extensionRecords=ge.extensionRecords?.map(sr=>({...sr})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ge.title,n.contextTokenSnapshot=void 0;let jt=_n(ge),qt=jt??n.runtimeInfo??r;return $l(qt),n.sessionSnapshotDirty=JSON.stringify(qt)!==JSON.stringify(jt),L.current=n.uiHistory??[],wr(null),re(),ho([]),console.log(yt.green(`
|
|
168
|
+
[Rewound session${Y?` to ${Y}`:" to previous turn"}]`)),console.log(yt.dim(` Messages: ${ge.messages.length}`)),"rewound"},"rewindSession"),getCostReport:i(()=>W.current?.()??null,"getCostReport"),getAutoModeStats:i(async()=>{if(_r(Hn.current))return e.runtimeAutoModeControl?e.runtimeAutoModeControl.getStats(n.sessionId):d.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(async Y=>{if(_r(Hn.current)){if(e.runtimeAutoModeControl){let ie=await e.runtimeAutoModeControl.setEngine(n.sessionId,Y);rr(ie?.engine??Y);return}d.getGuardrail().setEngine(Y),rr(Y)}},"setAutoModeEngine"),createKodaXOptions:i(()=>({...$e.current,provider:N.provider,model:N.model,effort:Pt,thinking:N.thinking,reasoningMode:N.reasoningMode,agentMode:N.agentMode,guardrails:e.runtimeRunner?void 0:Nw(Hn.current,d),events:Nl()}),"createKodaXOptions"),reloadAgentsFiles:i(async()=>await pv({cwd:process.cwd(),projectRoot:n.gitRoot??void 0}),"reloadAgentsFiles"),startCompacting:i(()=>{Xe()},"startCompacting"),stopCompacting:i(()=>{Lt()},"stopCompacting"),onCompactStats:i(Y=>{nl.current=Y.tokensBefore,wr(Y.tokensAfter)},"onCompactStats"),confirm:i(async Y=>(await vo("confirm",{_alwaysConfirm:!0,_message:Y})).confirmed,"confirm"),onWorkflowBuilderEvent:F,onWorkflowRunMessage:i(Y=>{if(oe(Y),Y.type!=="assistant"||Y.final!==!0)return;let ie=Gt(Y.text).trimEnd();ie.trim()&&Oe(ie)},"onWorkflowRunMessage"),onWorkflowRunUpdate:te,ui:{select:i(async(Y,ie)=>z1(Y,ie),"select"),confirm:i(async Y=>(await vo("confirm",{_alwaysConfirm:!0,_message:Y})).confirmed,"confirm"),input:i(async(Y,ie)=>ma(Y,ie),"input")}},ir=[],kr=console.log;console.log=(...Y)=>{ir.push(Dw(Y))};let Qo,Ur;try{let Y=await as(Ve,n,Un,N);typeof Y=="object"&&Y!==null&&"invocation"in Y&&(Qo=Y.invocation),typeof Y=="object"&&Y!==null&&"workflow"in Y&&(Ur=Y.workflow)}finally{Ys(null),console.log=kr}let xa=Bw(ir);if(xa&&D({type:"info",text:xa}),Ur){try{await je(Ur,T.trim(),Un)}finally{ae.current.pendingInputs.length>0&&(tl.current=!0),Z(!1),me(),se()}return}if(Qo){Z(!1),me(),Z(!0),de(),pe();try{await FC(Qo,T.trim())}catch(Y){let ie=Y instanceof Error?Y:new Error(String(Y)),ge=ie.name==="AbortError"||ie.message.includes("aborted")||ie.message.includes("ABORTED");console.log=kr,ge?gf():or([{type:"error",text:ie.message}])}finally{Z(!1),me(),se()}return}Z(!1),me();return}let on=await US(T.trim());if(T.trim().startsWith("!")&&Ku(on)){Z(!1),me();return}let Yi=$e.current.context?.executionCwd??process.cwd(),wa=i(Ee=>{Ee.length!==0&&or(Ee.map(Oe=>({type:"info",text:Oe})))},"emitArtifactWarnings");pe();let Xi=[],rt=console.log;console.log=(...Ee)=>{Xi.push(Dw(Ee))};try{await Sa(on,async Ee=>{let Oe=Oc(Ee,$e.current.context?.executionCwd??process.cwd());return wa(Oe.warnings),ha($e.current,Oe.promptText,n.messages,Oe.inputArtifacts)})}catch(Ee){let Oe=Ee instanceof Error?Ee:new Error(String(Ee));if(Oe.name==="AbortError"||Oe.message.includes("aborted")||Oe.message.includes("ABORTED"))console.log=rt,gf();else{let ir=Oe.message;if(Oe.message.includes("rate limit")||Oe.message.includes("Rate limit")?ir=`[Rate Limit] ${Oe.message}
|
|
169
|
+
Suggestion: Wait a moment and try again, or switch provider with /mode`:Oe.message.includes("API key")||Oe.message.includes("not configured")?ir=`[Configuration Error] ${Oe.message}
|
|
170
|
+
Suggestion: Set the required API key environment variable`:Oe.message.includes("network")||Oe.message.includes("ECONNREFUSED")||Oe.message.includes("ETIMEDOUT")?ir=`[Network Error] ${Oe.message}
|
|
171
|
+
Suggestion: Check your internet connection`:(Oe.message.includes("token")||Oe.message.includes("context too long"))&&(ir=`[Context Error] ${Oe.message}
|
|
172
|
+
Suggestion: Use /clear to start fresh`),console.log=rt,ct.current.workerId?en({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:ir,timestamp:Date.now()}):or([{type:"error",text:ir}]),lp({error:Oe,messageCount:n.messages.length})){let kr={type:"info",text:zl};if(ct.current.workerId?(en({id:`recover-hint-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,...kr,timestamp:Date.now()}),wf([kr])):or([kr]),(await vo("confirm",{_alwaysConfirm:!0,_message:cp})).confirmed)try{await BC(on)}catch(Ur){let xa=Ur instanceof Error?Ur.message:String(Ur);or([{type:"error",text:`[Recover failed] ${xa}`}])}}}}finally{if(console.log=rt,Xi.length>0){let Oe=Xi.filter((ir,kr,Qo)=>Qo.indexOf(ir)===kr),Un=Bw(Oe);Un&&D({type:"info",text:Un})}if(!ut.current){let Oe=gl(V.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));Oe.length>0&&ct.current.workerId&&Oe.forEach(Un=>Ir(Un))}Z(!1),me(),Ge(),ig(),se();let Ee=Ji(n.messages);n.contextTokenSnapshot={currentTokens:Ee,baselineEstimatedTokens:Ee,source:"estimate"},wr(Ee)}},[po,n,N,Gh,j.pendingInputs.length,o,qe,We,x,l,D,re,de,me,Ge,Nl,FC,Ie,G,Fe,en,ga,or,Ag,Dl,Io,wf,jn,Sa,Mg,Xe,Lt,zo,ig,gl,Ir,Ui,cl,ll]),WC=Yt.shouldRender?fe(A,{paddingX:1,children:fe(_E,{viewModel:Yt})}):void 0,HC=H&&xo.shouldRender?fe(A,{paddingX:1,children:fe(RE,{viewModel:xo})}):void 0,jC=HT?fe(A,{paddingX:1,children:fe(Hm,{viewModel:ug})}):void 0,Z1=WC||HC||jC?On(A,{flexDirection:"column",children:[HC,WC,jC]}):void 0,UC=Yt.shouldRender?Yt.counterText:void 0,e$=fe(Mu,{left:fe(Eu,{items:rC}),right:fe(_u,{items:oC}),queued:fe(Dm,{pendingInputs:j.pendingInputs}),stashNotice:fe(Du,{text:lf}),notifications:fe(Nu,{notifications:cf}),inlineNotices:Sg.length>0?fe(Bm,{notices:Sg}):void 0,activityBar:To?On(A,{paddingX:1,flexDirection:"row",children:[On(A,{flexGrow:1,children:[To?.showSpinner?fe(zn,{color:ce("dark").colors.accent}):null,To?On(k,{color:To.kind==="waiting"?ce("dark").colors.warning:ce("dark").colors.accent,wrap:"truncate",children:[To.showSpinner?" ":"",To.text]}):null,To?.showSpinner&&j.roundStartedAt!=null?fe(cR,{roundStartedAt:j.roundStartedAt,charCount:j.currentResponse.length,theme:ce("dark")}):null]}),UC?fe(k,{dimColor:!0,wrap:"truncate",children:UC}):H&&xo.shouldRender?fe(k,{dimColor:!0,wrap:"truncate",children:AE(xo)}):null]}):void 0,todoSurface:Z1,composer:fe(Mm,{onSubmit:Q1,onHistoryRecall:J1,onPopPendingInputs:i(()=>{let f=U();if(f.length!==0)return f.join(`
|
|
173
|
+
---
|
|
174
|
+
`)},"onPopPendingInputs"),prompt:">",placeholder:KM({isLoading:H,canQueueFollowUps:Gh,waitingReason:hg}),focus:!qe&&!We&&!xt,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:L1,onPasteFallback:j1}),inlineSuggestions:W1,helpSurface:bT?fe(Lm,{sections:ch()}):void 0,taskBar:kl?fe(Bu,{items:aa.backgroundTask.items,overflowLabel:aa.backgroundTask.overflowLabel,ctaHint:aa.backgroundTask.ctaHint,showSpinner:H}):void 0,statusLine:fe(A,{children:fe(Is,{...sf,viewModel:tC})}),inlineDialogs:U1}),t$=fe(Mu,{left:fe(Eu,{items:rC}),right:fe(_u,{items:oC}),stashNotice:fe(Du,{text:lf}),notifications:fe(Nu,{notifications:cf}),composer:fe(CE,{searchActive:xt,selectionActive:!!(wo||lt),showAllActive:zt,searchQuery:Tn,searchCurrent:Xt.length>0?qo+1:0,searchCount:Xt.length,searchDetailText:pg,pendingLiveUpdates:Tl,secondaryText:B1}),taskBar:kl?fe(Bu,{items:aa.backgroundTask.items,overflowLabel:aa.backgroundTask.overflowLabel,ctaHint:aa.backgroundTask.ctaHint,showSpinner:Tt}):void 0,statusLine:fe(A,{children:fe(Is,{...sf,viewModel:gg})})}),Lg=X(f=>fe(vE,{banner:f?.bannerVisible?fe(Fw,{...Vi}):void 0,items:vl,isLoading:Cn,viewportRows:rn.messageRows,viewportWidth:ee,scrollOffset:xr,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?bl:SC,maxLines:Wt,selectedTextRanges:cg?Ld?.rowRanges:void 0,onMetricsChange:df,onVisibleRowsChange:ff}),[Vi,vl,Cn,df,ff,xr,SC,ee,Wt,Ld?.rowRanges,rn.messageRows,cg]),Pg=X(f=>fe(IE,{banner:f?.bannerVisible?fe(Fw,{...Vi}):void 0,items:Cl,browse:{hintText:Jo.browseHintText},selection:uf,search:XT,isLoading:Tt,isThinking:ke.isThinking,thinkingCharCount:ke.thinkingCharCount,thinkingContent:ke.thinkingContent,streamingResponse:ke.currentResponse,currentTool:ke.currentTool,activeToolCalls:ke.activeToolCalls,toolInputCharCount:ke.toolInputCharCount,toolInputContent:ke.toolInputContent,iterationHistory:ke.iterationHistory,currentIteration:ke.currentIteration,isCompacting:ke.isCompacting,agentMode:N.agentMode,managedPhase:Tt?J?.phase:void 0,managedHarnessProfile:Tt?J?.harnessProfile:void 0,managedWorkerTitle:Tt?J?.activeWorkerTitle:void 0,managedRound:Tt?J?.currentRound:void 0,managedMaxRounds:Tt?J?.maxRounds:void 0,managedGlobalWorkBudget:Tt?J?.globalWorkBudget:void 0,managedBudgetUsage:Tt?J?.budgetUsage:void 0,managedBudgetApprovalRequired:Tt?J?.budgetApprovalRequired:void 0,lastLiveActivityLabel:ke.lastLiveActivityLabel,liveStatusLines:ia,viewportRows:rn.messageRows,viewportWidth:ee,scrollOffset:xr,windowed:!!f?.windowed,animateSpinners:!!f?.rendererWindow&&la,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?bl:Zd,maxLines:Wt,showDetailedTools:zt,showAllContent:zt,selectedItemId:nr.selectionEnabled?lt:void 0,selectedTextRanges:mo?.rowRanges,expandedItemKeys:nr.selectionEnabled?Dn:void 0,onMetricsChange:df,onVisibleRowsChange:ff}),[Vi,N.agentMode,Tt,Dn,c.transcriptSpinnerAnimation,df,ff,xr,$T,J?.activeWorkerTitle,J?.budgetApprovalRequired,J?.budgetUsage,J?.currentRound,J?.globalWorkBudget,J?.harnessProfile,J?.maxRounds,J?.phase,bl,Zd,Jo.browseHintText,lt,uf,ee,la,Cl,Wt,ke.activeToolCalls,ke.currentIteration,ke.currentResponse,ke.currentTool,ke.isCompacting,ke.isThinking,ke.iterationHistory,ke.lastLiveActivityLabel,ke.thinkingCharCount,ke.thinkingContent,ke.toolInputCharCount,ke.toolInputContent,ia,mo?.rowRanges,XT,zt,rn.messageRows]),n$=ue?Pg({bannerVisible:!1,windowed:Ht}):Lg({bannerVisible:!1}),GC=ue?t$:e$,r$=c.enabled&&Gi,VC=On(A,{flexDirection:"column",width:ee,flexShrink:0,flexGrow:r$?1:0,children:[fe(tw,{currentConfig:N,setCurrentConfig:Me,isLoading:H,abort:be,stopThinking:Q,clearThinkingContent:se,setCurrentTool:Te,setIsLoading:Z,onToggleHelp:A1,setShowHelp:RT,onSetThinking:i(f=>{$e.current.thinking=f},"onSetThinking"),onSetReasoningMode:i(f=>{$e.current.reasoningMode=f,$e.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:G1,onOpenTranscriptSearch:Cg,canOpenTranscriptSearch:ue&&!qe&&!We,isInteractiveDialogActive:!!(qe||We),onSetAgentMode:i(f=>{$e.current.agentMode=f},"onSetAgentMode"),onSetPermissionMode:i(f=>{kg(f)},"onSetPermissionMode"),isInputEmpty:il,onSavePermissionMode:CI}),Sr&&(c.enabled?null:fe(nc,{items:[1],children:i(()=>fe(Fw,{...Vi},"banner"),"children")})),Gi?fe(Rm,{width:ee,stickyHeader:Jo.stickyHeader,jumpToLatest:Jo.jumpToLatest,transcript:!c.enabled||!Ht?ue?Pg({bannerVisible:!1}):Lg({bannerVisible:!1}):void 0,renderTranscriptWindow:c.enabled&&Ht?f=>(()=>{let T=Al(f).contentWindow;return ue?Pg({bannerVisible:!1,windowed:!0,rendererWindow:T}):Lg({bannerVisible:!1,rendererWindow:T})})():void 0,overlay:bg,scrollTop:xr,scrollHeight:Ml,viewportHeight:rn.messageRows,stickyScroll:!ue&&!Wr&&Xh,overscanRows:sG,scrollRef:y1,onWindowChange:H1,onScrollTopChange:w1,onStickyChange:x1,footer:GC}):On(HU,{children:[On(A,{flexDirection:"column",flexGrow:1,children:[n$,bg?fe(A,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:bg}):null]}),GC]})]});return ag?fe($y,{mouseTracking:Yo.usesRendererMouseTracking,children:VC}):VC},"InkREPLInner"),dG=i(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return fe(Pu,{children:fe(Hu,{getPendingInputAgentId:i(()=>Tf(e.context.sessionId,"/root"),"getPendingInputAgentId"),children:fe(gu,{children:fe(ZS,{children:fe(Qp,{cwd:t,gitRoot:n,children:fe(uG,{...e})})})})})})},"InkREPL");function fG(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}i(fG,"isRawModeSupported");async function Th(e){if(!fG())throw new Hg("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 _s,n=si(),r=ai(),o=ci(n,r),{prepareRuntimeConfig:s}=await import("./utils-6LEKJPQN.js"),{loadCompactionConfig:a}=await import("./compaction-config-AEUGVROL.js"),{resolveProvider:c}=await import("./dist-GFJFRPAV.js"),l=s(),u=La({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,configuredProvider:l.provider,defaultProvider:xf}),d=Pa({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,explicitModel:e.model,configuredProvider:l.provider,configuredModel:l.model}),p=XU(e,l),h=$a({explicitEffort:e.effort,environmentEffort:process.env.KODAX_EFFORT,configuredEffort:l.effort}),m=Xf(e,l,process.env.KODAX_EFFORT),g=e.agentMode??l.agentMode??"ama",x=p!=="off",y=Ma(l.permissionMode,"accept-edits")??"accept-edits",C=Bf(),v=l.repoIntelligenceTrace===!0,_={provider:u,model:d,effort:h,effortOverride:m,planModeEffort:l.planModeEffort,thinking:x,reasoningMode:p,agentMode:g,permissionMode:y,repoIntelligenceMode:C.mode,repoIntelligenceTrace:v},E=e.session?.id,R=[],I,W,$,D,z,re="",q=await zr({cwd:process.cwd()}),S=q.workspaceRoot??void 0,L=q,ee=S,j=Rf({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(j){let Q=i(()=>{j.shutdown()},"teamModeCleanup");process.on("exit",Q),process.on("SIGTERM",Q)}try{let{bootstrapConstructionRuntime:Q}=await import("./construction-bootstrap-K3ZGEN5N.js"),se=await Q(S??process.cwd());if(se.loaded>0||se.failed>0||se.tampered>0){let Te=se.failed>0?`; ${se.failed} failed`:"",nt=se.tampered>0?`; ${se.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";gt({source:"repl:construction",level:se.failed>0||se.tampered>0?"warn":"info",message:`Rehydrated ${se.loaded} active tool(s)${Te}${nt}.`})}if(se.markdownLoaded>0||se.markdownFailures.length>0){gt({source:"repl:agents",level:se.markdownFailures.length>0?"warn":"info",message:`Loaded ${se.markdownLoaded} markdown agent(s).`});for(let Te of se.markdownFailures)gt({source:"repl:agents",level:"warn",message:`Skipped markdown agent ${Te.path}: ${Te.reason}`})}}catch(Q){gt({source:"repl:construction",level:"warn",message:`Bootstrap failed: ${Q.message}. Self-construction disabled this session.`})}let ae;try{let Q=await a(S),se=c(u);ae={contextWindow:Q.contextWindow??se.getContextWindow?.()??2e5,triggerPercent:Q.triggerPercent,triggerTokens:Q.triggerTokens,enabled:Q.enabled,reservedResponseTokens:se.getEffectiveMaxOutputTokens?.(d),userOverrideContextWindow:Q.contextWindow}}catch{}if(e.session?.id&&!e.session.resume){let Q=await t.load(e.session.id);Q&&(R=Q.messages,I=bi(Q.uiHistory),W=Q.lineage,$=Q.artifactLedger,D=Q.extensionState,z=Q.extensionRecords,re=Q.title,E=e.session.id,L=_n(Q)??q,ee=L.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:E,tag:Q.tag}},console.log(yt.green(`[Session loaded: ${E}]`)))}else if(e.session?.resume||e.session?.autoResume){let Q=await Mc(t,S);if(Q){let se=await t.load(Q.id);se&&(R=se.messages,I=bi(se.uiHistory),W=se.lineage,$=se.artifactLedger,D=se.extensionState,z=se.extensionRecords,re=se.title,E=Q.id,L=_n(se)??q,ee=L.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:E,tag:se.tag}},console.log(yt.green(`[Continuing session: ${Q.id}]`)))}}let de=await bc({sessionId:E,gitRoot:ee,runtimeInfo:L,existingMessages:R,existingUiHistory:I,existingLineage:W,existingArtifactLedger:$,existingExtensionState:D,existingExtensionRecords:z});de.title=re,e={...e,context:{...e.context,gitRoot:de.gitRoot??void 0,executionCwd:de.runtimeInfo?.executionCwd??de.gitRoot??process.cwd()}},j?.writer.update({sessionId:de.sessionId});let me={current:null},be={current:null},pe={current:_},we=Fa(),Pe=await _c({askUser:i(async(Q,se,Te)=>{let nt=me.current;return nt?nt(Q,se,Te):"block"},"askUser"),projectRoot:S??process.cwd(),executionCwd:L.executionCwd??S??process.cwd(),getCurrentProviderName:i(()=>pe.current.provider,"getCurrentProviderName"),getCurrentModel:i(()=>pe.current.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>pe.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:we,log:i((Q,se)=>{gt({source:"repl:auto-mode",level:Q==="warn"?"warn":"info",message:se})},"log"),onEngineChange:i(Q=>{be.current?.(Q)},"onEngineChange"),extraCollectors:[Ba]});try{let Q=process.stdout,se=process.stdin,Te=!1,{waitUntilExit:nt,cleanup:It}=tc(fe(dG,{options:e,config:_,context:de,startupRuntimeInfo:q,storage:t,autoModeSettings:Ic(we),compactionInfo:ae,rendererMode:r,fullscreenPolicy:o,autoModeBootstrap:Pe,setAutoModeAskUser:i(Ge=>{me.current=Ge},"setAutoModeAskUser"),setAutoModeEngineChange:i(Ge=>{be.current=Ge},"setAutoModeEngineChange"),setCurrentConfigRef:i(Ge=>{pe.current=Ge},"setCurrentConfigRef"),teamModeHandle:j,onExit:i(()=>{Te=!0},"onExit")}),{stdout:Q,stdin:se,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:o.enabled?o.promptShell:"main-screen"});await nt(),It(),j?.shutdown(),se.isTTY===!0&&typeof se.setRawMode=="function"&&se.isRaw&&se.setRawMode(!1),se.pause?.(),se.unref?.(),Te&&console.log(yt.dim(`
|
|
175
|
+
[Exiting KodaX...]`));let ze=e.hardExitOnClose??process.env.VITEST!=="true";if(Te&&ze){let Ge=process.exitCode??0,he=!1,Ie=i(()=>{he||(he=!0,process.exit(Ge))},"requestProcessExit");setTimeout(Ie,0).unref?.(),Q.write("",Ie);return}}catch(Q){throw Q instanceof Error&&Q.message.includes("Raw mode")?new Hg("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):Q}}i(Th,"runInkInteractiveMode");import{jsx as rd,jsxs as jc}from"react/jsx-runtime";import{useMemo as pG,useRef as mG,useState as Uw}from"react";var hG=40;function gG(e,t){let n=t.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return n.length===0?[...e]:e.filter(r=>{let o=[r.title,r.id,r.surface??"",r.createdAt??"",String(r.msgCount)].join(" ").toLocaleLowerCase();return n.every(s=>o.includes(s))})}i(gG,"filterSessionPickerItems");function yG(e,t,n){let r=Math.max(1,n),o=e.length===0?0:Math.max(0,Math.min(t,e.length-1)),s=Math.floor(o/r)*r;return{items:e.slice(s,s+r),selectedIndex:o,pageStart:s,pageIndex:Math.floor(s/r),pageCount:Math.max(1,Math.ceil(e.length/r))}}i(yG,"buildSessionPickerPage");function SG(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"),o=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0");return`${n}-${r}-${o} ${s}:${a}`}i(SG,"formatTimestamp");function wG({sessions:e,onSelect:t,onSelectionError:n,onCancel:r,pageSize:o=8}){let{exit:s}=Zr(),[a,c]=Uw(""),[l,u]=Uw(0),[d,p]=Uw(!1),h=mG(!1),m=pG(()=>gG(e,a),[e,a]),g=yG(m,l,o),x=m[g.selectedIndex];return rc((y,C)=>{if(!h.current){if(C.escape||C.ctrl&&y==="c"){r(),s();return}if(C.return){let v=m[g.selectedIndex];v&&(h.current=!0,p(!0),(async()=>{await new Promise(_=>setTimeout(_,hG));try{await t(v)}catch(_){n(_)}finally{s()}})());return}if(C.upArrow)u(v=>Math.max(0,v-1));else if(C.downArrow)u(v=>Math.min(Math.max(0,m.length-1),v+1));else if(C.pageUp)u(v=>Math.max(0,v-o));else if(C.pageDown)u(v=>Math.min(Math.max(0,m.length-1),v+o));else if(C.home)u(0);else if(C.end)u(Math.max(0,m.length-1));else if(C.tab){let v=m[g.selectedIndex];v&&(c(v.title),u(0))}else C.backspace||C.delete?(c(v=>v.slice(0,-1)),u(0)):y&&!C.ctrl&&!C.meta&&!C.super&&(c(v=>v+y),u(0))}}),jc(A,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,children:[rd(k,{bold:!0,color:"cyan",children:"Resume a session"}),jc(k,{children:["Search: ",rd(k,{color:"yellow",children:a||"type to filter"})]}),rd(k,{dimColor:!0,children:d?"Loading selected session...":"\u2191/\u2193 select \xB7 PgUp/PgDn page \xB7 Tab complete \xB7 Enter resume \xB7 Esc cancel"}),jc(A,{flexDirection:"column",marginTop:1,children:[g.items.length===0?rd(k,{color:"yellow",children:"No matching sessions."}):null,g.items.map((y,C)=>{let _=g.pageStart+C===g.selectedIndex,E=y.title.trim()||"Untitled session",R=y.surface?` \xB7 ${y.surface}`:"";return jc(k,{color:_?"cyan":void 0,bold:_,children:[_?"\u276F":" "," ",E," \xB7 ",y.msgCount," msgs",R," \xB7 ",SG(y.createdAt)," \xB7 ",y.id.slice(0,8)]},y.id)})]}),jc(k,{dimColor:!0,children:[m.length," matches \xB7 Page ",g.pageIndex+1,"/",g.pageCount]}),jc(k,{dimColor:!0,children:["Selected ID: ",x?.id??"none"]})]})}i(wG,"SessionPicker");async function _A(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,o=!1,s,a=Math.max(4,Math.min(12,(process.stdout.rows??24)-8)),c=tc(rd(wG,{sessions:e,pageSize:a,onSelect:i(async l=>{n=l,await t.prepareSelection?.(l)},"onSelect"),onSelectionError:i(l=>{o=!0,s=l},"onSelectionError"),onCancel:i(()=>{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(o)throw s;if(!n&&!r)throw new Error("Session picker exited unexpectedly before selection or cancellation.");return n}i(_A,"runSessionPicker");import kn from"chalk";var MA=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],AA=["\x1B[36m","\x1B[35m","\x1B[34m"],id=null,Uc=!1;function od(){let e=0,t=0,n=!1,r="Thinking...",o=i(()=>{if(n)return;let c=AA[t%AA.length],l="\x1B[0m",u=MA[e%MA.length];process.stdout.write(`\r${c}${u}${l} ${r}`)},"renderFrame"),s=setInterval(()=>{e++,e%10===0&&t++,o()},80);o();let a={stop:i(()=>{n||(n=!0,clearInterval(s),process.stdout.write("\r\x1B[K"))},"stop"),isStopped:i(()=>n,"isStopped"),updateText:i(c=>{r=c},"updateText")};return id=a,a}i(od,"startWaitingDots");function LA(e=!0){let t=null,n=0,r=!1;return{onSessionStart:i(s=>{console.log(e?kn.cyan(`[KodaX] Provider: ${s.provider} | Session: ${s.sessionId}`):kn.cyan(`[KodaX] Provider: ${s.provider}`))},"onSessionStart"),onTextDelta:i(s=>{t&&(t.stop(),t=null),n=0,process.stdout.write(s),r=!0},"onTextDelta"),onThinkingDelta:i(s=>{n+=s.length,t||(t=od()),t.updateText(`Thinking... (${n} chars)`)},"onThinkingDelta"),onThinkingEnd:i(s=>{if(t&&(t.stop(),t=null),s){let a=s.replace(/\n/g," "),c=a.length>100?a.slice(0,100)+"...":a;console.log(kn.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:i(s=>{t||(Uc||(process.stdout.write(`
|
|
176
|
+
`),Uc=!0),t=od()),t.updateText(`Executing ${s.name}...`)},"onToolUseStart"),onToolInputDelta:i((s,a,c)=>{let l=a.length;t&&!t.isStopped()?t.updateText(`Receiving ${s}... (${l} chars)`):(!t||t.isStopped())&&(Uc||(process.stdout.write(`
|
|
177
|
+
`),Uc=!0,r=!1),t=od(),t.updateText(`Receiving ${s}... (${l} chars)`))},"onToolInputDelta"),onToolResult:i(s=>{t&&(t.stop(),t=null),console.log(kn.green(`[Result] ${s.content.slice(0,300)}${s.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:i(s=>{t&&(t.stop(),t=null),console.log(kn.dim(`[RepoIntel] ${s.summary}`))},"onRepoIntelligenceTrace"),onSidecarMessage:i(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}
|
|
178
|
+
Suggested fix: ${s.suggestedFix}`:s.content;process.stdout.write(kn.yellow(`
|
|
179
|
+
${a}
|
|
180
|
+
`)+kn.dim(`${c}
|
|
181
|
+
`))},"onSidecarMessage"),onStreamEnd:i(()=>{id&&!id.isStopped()&&id.stop(),id=null,Uc=!1,r&&(console.log(),r=!1),(!t||t.isStopped())&&(t=od(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:i((s,a)=>{t&&!t.isStopped()&&t.stop(),Uc=!1,r=!1,console.log(kn.magenta(`
|
|
182
|
+
[Assistant]`)),t=od()},"onIterationStart"),onCompactStart:i(()=>{console.log(kn.dim(`
|
|
183
|
+
[KodaX] Compacting context...`))},"onCompactStart"),onCompact:i(s=>{console.log(kn.dim(`[KodaX] Compaction finished (${s} tokens).`))},"onCompact"),onCompactEnd:i(()=>{},"onCompactEnd"),onRetry:i((s,a,c)=>{console.log(kn.yellow(`[KodaX] Retry ${a}/${c}: ${s}`))},"onRetry"),onProviderRecovery:i(s=>{let a=s.recoveryAction==="non_streaming_fallback"?"switching to non-streaming fallback":s.recoveryAction==="manual_continue"?"awaiting manual continue":`recovering ${s.attempt}/${s.maxAttempts}`;console.log(kn.yellow(`[KodaX] ${a} (${s.errorClass}, ${s.stage})`))},"onProviderRecovery"),onComplete:i(()=>{t&&(t.stop(),t=null),console.log(kn.green(`
|
|
184
|
+
[KodaX] Done!`))},"onComplete"),onError:i(s=>{t&&(t.stop(),t=null),console.log(kn.red(`
|
|
185
|
+
[Error] ${s.message}`))},"onError"),onScoutSuspiciousCompletion:i(s=>{console.log(kn.yellow(`
|
|
186
|
+
[Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:i(async(s,a)=>!0,"beforeToolExecute")}}i(LA,"createCliEvents");function Qt(e){return{...e?.sessionId!==void 0?{sessionId:e.sessionId}:{},...e?.seq!==void 0?{seq:e.seq}:{},...e?.turnId!==void 0?{turnId:e.turnId}:{},...e?.deliveryId!==void 0?{deliveryId:e.deliveryId}:{},...e?.timestamp!==void 0?{timestamp:e.timestamp}:{},...e?.workflowCorrelation!==void 0?{workflowCorrelation:e.workflowCorrelation}:{},...e?.childAgentId!==void 0?{childAgentId:e.childAgentId}:{},...e?.childAgentName!==void 0?{childAgentName:e.childAgentName}:{},...e?.parentToolId!==void 0?{parentToolId:e.parentToolId}:{},...e?.liveOnly!==void 0?{liveOnly:e.liveOnly}:{}}}i(Qt,"activityMetaFields");function Ps(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}:{}}}i(Ps,"liveMetaFields");function st(e,t){e.write(`${JSON.stringify(t)}
|
|
187
|
+
`)}i(st,"writeJsonLine");function xG(e,t){return{type:"error",name:e.name,message:e.message,stack:e.stack,...Qt(t)}}i(xG,"serializeError");function PA(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:i(r=>{st(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId,...Ps(r)})},"onSessionStart"),onTurnStarted:i(r=>{st(t,{type:"turn.started",...r})},"onTurnStarted"),onTurnCompleted:i(r=>{st(t,{type:"turn.completed",...r})},"onTurnCompleted"),onTurnFailed:i(r=>{st(t,{type:"turn.failed",...r})},"onTurnFailed"),onIterationStart:i((r,o,s)=>{st(t,{type:"iteration.start",iter:r,maxIter:o,...Qt(s)})},"onIterationStart"),onIterationEnd:i(r=>{st(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}:{},...Ps(r)})},"onIterationEnd"),onTextDelta:i((r,o)=>{st(t,{type:"text.delta",text:r,...Qt(o)})},"onTextDelta"),onThinkingDelta:i((r,o)=>{st(t,{type:"thinking.delta",text:r,...Qt(o)})},"onThinkingDelta"),onThinkingEnd:i((r,o)=>{st(t,{type:"thinking.end",thinking:r,...Qt(o)})},"onThinkingEnd"),onToolUseStart:i((r,o)=>{st(t,{type:"tool.start",id:r.id,name:r.name,input:r.input,...Qt(o)})},"onToolUseStart"),onToolInputDelta:i((r,o,s)=>{st(t,{type:"tool.input.delta",toolName:r,partialJson:o,toolId:s?.toolId,...Qt(s)})},"onToolInputDelta"),onToolResult:i((r,o)=>{st(t,{type:"tool.result",id:r.id,name:r.name,content:r.content,...Qt(o)})},"onToolResult"),onStreamEnd:i(r=>{st(t,{type:"stream.end",...Qt(r)})},"onStreamEnd"),onCompactStart:i(r=>{st(t,{type:"compact.start",...Qt(r)})},"onCompactStart"),onCompact:i((r,o)=>{st(t,{type:"compact.finish",estimatedTokens:r,...Qt(o)})},"onCompact"),onCompactStats:i(r=>{st(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter,...Ps(r)})},"onCompactStats"),onCompactEnd:i(r=>{st(t,{type:"compact.end",...Qt(r)})},"onCompactEnd"),onRetry:i((r,o,s,a)=>{st(t,{type:"retry",reason:r,attempt:o,maxAttempts:s,...Qt(a)})},"onRetry"),onProviderRecovery:i((r,o)=>{st(t,{type:"provider.recovery",stage:r.stage,reasonCode:r.errorClass,attempt:r.attempt,maxAttempts:r.maxAttempts,delayMs:r.delayMs,nextAt:Date.now()+r.delayMs,recoveryAction:r.recoveryAction,fallbackUsed:r.fallbackUsed,...Qt(o)})},"onProviderRecovery"),onProviderRateLimit:i((r,o,s,a)=>{st(t,{type:"provider.rate_limit",attempt:r,maxRetries:o,delayMs:s,...Qt(a)})},"onProviderRateLimit"),onRepoIntelligenceTrace:i(r=>{st(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace,...Ps(r)})},"onRepoIntelligenceTrace"),onSidecarMessage:i(r=>{st(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}:{},...Ps(r)})},"onSidecarMessage"),onToolProgress:i((r,o)=>{st(t,{type:"tool.progress",id:r.id,message:r.message,...Qt(o)})},"onToolProgress"),onToolSandboxObservation:i((r,o)=>{st(t,{type:"tool.sandbox",id:r.id,observation:r.observation,...Qt(o)})},"onToolSandboxObservation"),onManagedTaskStatus:i(r=>{st(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,...Ps(r)})},"onManagedTaskStatus"),onScoutSuspiciousCompletion:i(r=>{st(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview,...Ps(r)})},"onScoutSuspiciousCompletion"),onComplete:i(r=>{st(t,{type:"complete",...Qt(r)})},"onComplete"),onError:i((r,o)=>{st(n,xG(r,o))},"onError")}}i(PA,"createJsonEvents");import{jsx as kt,jsxs as Nn}from"react/jsx-runtime";import bG,{useMemo as sd}from"react";var Gw=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,$A=/^---\s+(.+)$/;function OA(e){if(!e)return[];let t=e.split(`
|
|
188
|
+
`),n=[],r=[],o=[],s=!1,a=null,c=null,l=0,u=0,d=i(()=>{if(r.length===0)return;let h=r.join(`
|
|
189
|
+
`);h.length>0&&n.push({kind:"text",text:h}),r=[]},"flushText"),p=i(()=>{o.length!==0&&(n.push({kind:"diff",text:o.join(`
|
|
190
|
+
`),addedLines:l,removedLines:u,filePath:c}),o=[],l=0,u=0,c=null)},"flushDiff");for(let h=0;h<t.length;h++){let m=t[h];if(!s){let y=$A.exec(m);if(y){let C=Math.min(h+3,t.length-1),v=!1;for(let _=h+1;_<=C;_++)if(t[_]?.startsWith("+++ ")||Gw.test(t[_]??"")){v=!0;break}if(v){d(),s=!0,a=y[1]??null,c=a,o.push(m);continue}}if(Gw.test(m)){d(),s=!0,o.push(m);continue}r.push(m);continue}let g=$A.exec(m);if(g){let y=Math.min(h+3,t.length-1),C=!1;for(let v=h+1;v<=y;v++)if(t[v]?.startsWith("+++ ")||Gw.test(t[v]??"")){C=!0;break}if(C){p(),c=g[1]??null,o.push(m);continue}}let x=m[0];if(x==="+"||x==="-"||x===" "||x==="@"||m===""){x==="+"&&!m.startsWith("+++ ")&&l++,x==="-"&&!m.startsWith("--- ")&&u++,o.push(m);continue}p(),s=!1,a=null,r.push(m)}return p(),d(),n}i(OA,"parseUnifiedDiff");function NA(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}i(NA,"containsUnifiedDiff");import{jsxs as Gc,jsx as TG}from"react/jsx-runtime";import CG from"react";function vG(e){return e.startsWith("+++ ")?{text:e,kind:"file-header"}:e.startsWith("--- ")?{text:e,kind:"file-header"}:e.startsWith("@@ ")?{text:e,kind:"hunk-header"}:e.startsWith("+")?{text:e,kind:"add"}:e.startsWith("-")?{text:e,kind:"remove"}:{text:e,kind:"context"}}i(vG,"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}}i(IG,"colorFor");var Vw=CG.memo(({text:e,addedLines:t,removedLines:n,filePath:r,theme:o,maxLines:s=16,extremeThreshold:a=200})=>{let c=o??ce("dark"),l=e.split(`
|
|
191
|
+
`),u=l.map(vG),d=`(${t>0?`+${t}`:"\xB10"} ${n>0?`-${n}`:""})`.trim();if(l.length>a)return Gc(A,{flexDirection:"column",marginLeft:4,children:[r&&Gc(k,{dimColor:!0,children:[r," ",d]}),Gc(k,{dimColor:!0,children:["[diff too large to render inline \u2014 ",l.length," lines, ",t,"+ / ",n,"-]"]})]});let p,h=0;if(l.length>s){let m=Math.floor(s/2),g=u.slice(0,m),x=u.slice(-m);h=l.length-g.length-x.length,p=[...g,{text:"",kind:"context"},...x]}else p=u;return Gc(A,{flexDirection:"column",marginLeft:4,children:[r&&Gc(k,{dimColor:!0,children:[r," ",d]}),p.map((m,g)=>{if(g===Math.floor(s/2)&&h>0&&m.kind==="context"&&m.text==="")return Gc(k,{dimColor:!0,children:["... ",h," lines collapsed ..."]},`collapse-${g}`);let y=IG(m.kind,c);return TG(k,{color:y,children:m.text||" "},g)})]})});Vw.displayName="DiffHunk";function DA(e){switch(e){case V.Scheduled:return"\u25CB";case V.Validating:return"\u25D0";case V.AwaitingApproval:return"\u23F8";case V.Executing:return"\u25CF";case V.Success:return"\u2713";case V.Error:return"\u2717";case V.Cancelled:return"\u2298";default:return"?"}}i(DA,"getStatusIcon");function BA(e,t){switch(e){case V.Scheduled:case V.Validating:return t.colors.dim;case V.AwaitingApproval:return t.colors.accent;case V.Executing:return t.colors.primary;case V.Success:return t.colors.success??t.colors.primary;case V.Error:return t.colors.error;case V.Cancelled:return t.colors.dim;default:return t.colors.text}}i(BA,"getStatusColor");function RG(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(RG,"formatDuration");function kG(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}i(kG,"formatInputSummary");var FA=i(({status:e,theme:t})=>{let n=t??sd(()=>ce("dark"),[]),r=DA(e),o=BA(e,n);return kt(k,{color:o,children:r})},"ToolStatusBadge"),Kw=i(({progress:e,width:t=20,theme:n})=>{let r=n??sd(()=>ce("dark"),[]),o=Math.max(0,Math.min(100,e)),s=Math.round(o/100*t),a=t-s,c="\u2588".repeat(s),l="\u2591".repeat(a);return Nn(A,{children:[kt(k,{color:r.colors.primary,children:c}),kt(k,{dimColor:!0,children:l}),Nn(k,{children:[" ",o,"%"]})]})},"ToolProgressBar"),zw=i(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??sd(()=>ce("dark"),[]),o=DA(e.status),s=BA(e.status,r),a=kG(e.input),c=RG(e.startTime,e.endTime);return t?Nn(A,{children:[Nn(k,{color:s,children:[o," "]}),kt(k,{color:r.colors.text,children:e.name})]}):Nn(A,{flexDirection:"column",marginLeft:2,children:[Nn(A,{children:[Nn(k,{color:s,children:[o," "]}),kt(k,{color:r.colors.text,bold:!0,children:e.name}),a&&Nn(k,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===V.Executing&&kt(A,{marginLeft:2,children:kt(Kw,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===V.Executing&&kt(A,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>kt(k,{dimColor:!0,children:l},u))}),e.error&&kt(A,{marginLeft:2,children:kt(k,{color:r.colors.error,children:e.error})}),e.status===V.Success&&typeof e.output=="string"&&e.output.length>0&&kt(WA,{output:e.output,theme:r}),c&&e.status!==V.Executing&&kt(A,{marginLeft:2,children:Nn(k,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),WA=bG.memo(({output:e,theme:t})=>{if(!NA(e))return kt(A,{marginLeft:2,children:kt(k,{dimColor:!0,children:e})});let n=OA(e);return kt(A,{flexDirection:"column",marginLeft:2,children:n.map((r,o)=>r.kind==="text"?kt(k,{dimColor:!0,children:r.text},o):kt(Vw,{text:r.text,addedLines:r.addedLines,removedLines:r.removedLines,filePath:r.filePath,theme:t},o))})});WA.displayName="ToolOutputBlock";var HA=i(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let o=r??sd(()=>ce("dark"),[]);if(e.length===0)return null;let s=sd(()=>{let c={[V.Scheduled]:0,[V.Validating]:0,[V.AwaitingApproval]:0,[V.Executing]:0,[V.Success]:0,[V.Error]:0,[V.Cancelled]:0};for(let l of e)c[l.status]++;return c},[e]),a=n??"Tools";if(t){let c=s[V.Success],l=s[V.Error],u=s[V.Executing]+s[V.Scheduled]+s[V.Validating];return kt(A,{flexDirection:"column",marginBottom:1,children:Nn(A,{children:[kt(k,{color:o.colors.accent,bold:!0,children:a}),Nn(k,{dimColor:!0,children:[" ","(",e.length," tools",c>0&&`, ${c} succeeded`,l>0&&`, ${l} failed`,u>0&&`, ${u} running`,")"]})]})})}return Nn(A,{flexDirection:"column",marginBottom:1,children:[Nn(A,{children:[kt(k,{color:o.colors.accent,bold:!0,children:a}),Nn(k,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>kt(zw,{tool:c,theme:o},c.id))]})},"ToolGroup");import{jsxs as jA,jsx as EG}from"react/jsx-runtime";var UA=i(({pendingInputs:e})=>{let t=yk(e);if(!t)return null;let n=ce("dark");return jA(A,{children:[jA(k,{color:n.colors.hint,children:["\u23F3"," "]}),EG(k,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as GA from"child_process";var ad;function _G(){if(process.platform!=="win32")return null;if(ad!==void 0)return ad;try{ad=GA.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{ad=null}return ad}i(_G,"detectWindowsCodePage");function cd(){let e=process.env;return!!(e.COLORTERM==="truecolor"||e.COLORTERM==="24bit"||e.TERM_PROGRAM==="iTerm.app"||e.WT_SESSION||e.TERM==="xterm-kitty"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="gnome-terminal")}i(cd,"supportsTrueColor");function Yw(){if(cd())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}i(Yw,"supports256Colors");function ao(){let e=process.env,t=e.LC_ALL||"",n=e.LC_CTYPE||"",r=e.LANG||"";if(t==="C"||t==="POSIX"||n==="C"||n==="POSIX"||r==="C"||r==="POSIX")return!1;let o=`${t}|${n}|${r}`.toLowerCase();return o.includes("utf-8")||o.includes("utf8")?!0:process.platform==="win32"?e.WT_SESSION||e.TERM_PROGRAM==="vscode"?!0:_G()==="65001":!0}i(ao,"supportsUnicode");function Xw(){let e=process.env;return!!(e.TERM_PROGRAM==="iTerm.app"||e.WT_SESSION||e.TERM==="xterm-kitty"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="Apple_Terminal"||e.TERM_PROGRAM==="gnome-terminal"||e.COLORTERM)}i(Xw,"supportsEmoji");function qw(){if(process.stdout?.columns)return process.stdout.columns;let t=process.env.COLUMNS;if(t){let n=Number.parseInt(t,10);if(!Number.isNaN(n)&&n>0)return n}return 80}i(qw,"getTerminalWidth");function Jw(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}i(Jw,"isScreenReader");function MG(){return process.stdout?.isTTY??!1}i(MG,"isTTY");function VA(){return{trueColor:cd(),colors256:Yw(),unicode:ao(),emoji:Xw(),tty:MG(),columns:qw(),screenReader:Jw()}}i(VA,"detectTerminalCapabilities");var Vc=class{static{i(this,"ConsoleCapturer")}captured=[];originalLog=null;start(){this.captured=[],this.originalLog=console.log,console.log=(...t)=>{let n=t.map(r=>typeof r=="string"?r:String(r)).join(" ");this.captured.push(n)}}stop(){return this.originalLog!==null&&(console.log=this.originalLog,this.originalLog=null),this.captured}getCaptured(){return[...this.captured]}clear(){this.captured=[]}};async function KA(e){let t=new Vc;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(KA,"withCapture");function zA(e){let t=new Vc;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(zA,"withCaptureSync");import*as rL from"readline";import le from"chalk";import Xn from"chalk";var AG=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],LG=[{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 PG(e,t=!0){return e.map(n=>{let r=Xn.dim(`[${n.key}]`);return t?`${r} ${Xn.cyan(n.label)} ${Xn.dim(`- ${n.description}`)}`:`${r} ${n.label}`}).join(" ")}i(PG,"formatOptions");function Qw(){return process.stdout.columns??80}i(Qw,"getTerminalWidth");function $G(){return ao()}i($G,"supportsUnicode");function OG(){let e=$G();return{success:e?"\u2713":"[OK]",error:e?"\u2717":"[X]",warning:e?"\u26A0":"[!]",info:e?"\u2139":"[i]",arrow:e?"\u2192":"->",bullet:e?"\u2022":"*",check:e?"\u2713":"[v]",cross:e?"\u2717":"[x]"}}i(OG,"getSymbols");async function NG(e,t){let{message:n,default:r,options:o,showDescription:s=!0}=t,a=o??AG,c=PG(a,s);console.log(),console.log(Xn.cyan(`? ${n}`));let l=Qw();if(c.length>l-4)for(let u of a){let d=Xn.dim(` [${u.key}]`);console.log(`${d} ${Xn.cyan(u.label)}`),s&&console.log(Xn.dim(` ${u.description}`))}else console.log(Xn.dim(` ${c}`));return new Promise(u=>{let d=r?` (${r})`:"";e.question(Xn.dim(` Choose${d}: `),p=>{let h=p.trim().toLowerCase()||r||"",m=a.find(g=>g.key===h||g.value===h||g.label.toLowerCase()===h);u(m?m.value:h===""?"no":h)})})}i(NG,"confirmEnhanced");async function Kc(e,t,n,r){let{isOutsideProject:o=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits",runtimeGrantSuggestions:c}=r??{},l=OG(),u,d,p={...n,...o?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},h=eh(t,p),m=h.details.map(x=>` ${Xn.dim(x)}`);o||s?(u=`${Xn.yellow(l.warning)} Safety Warning`,m.length>0&&(u+=`
|
|
192
|
+
${m.join(`
|
|
193
|
+
`)}`),d=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]):(u=h.title,m.length>0&&(u+=`
|
|
194
|
+
${m.join(`
|
|
195
|
+
`)}`),c!==void 0&&(u+=`
|
|
196
|
+
${Xn.dim(vc)}`,u+=`
|
|
197
|
+
${c.map(x=>` ${Xn.dim(`Runtime scope: ${x.label}`)}`).join(`
|
|
198
|
+
`)}`),c!==void 0?d=[{key:"y",label:"Once",description:"Allow this operation once",value:"yes"},...c.some(x=>x.kind==="session")?[{key:"s",label:"Session",description:"Allow this Runtime-issued scope for this session",value:"session"}]:[],...c.some(x=>x.kind==="persistent")?[{key:"a",label:"Always",description:"Always allow this Runtime-issued scope",value:"always"}]:[],{key:"n",label:"No",description:"Cancel",value:"no"}]:d=a==="accept-edits"?LG:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let g=await NG(e,{message:u,default:"n",options:d});return g==="always"?c!==void 0?{confirmed:!0,runtimeGrantKind:"persistent"}:{confirmed:!0,always:!0}:g==="session"?{confirmed:!0,runtimeGrantKind:"session"}:{confirmed:g==="yes"}}i(Kc,"confirmToolExecution");import pae from"chalk";function YA(){return{prompt:"\u276F",success:"\u2713",error:"\u2717",warning:"\u26A0",info:"\u2139",arrow:"\u2192",bullet:"\u2022",check:"\u2713",cross:"\u2717",spinner:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]}}i(YA,"getUnicodeSymbols");function Zw(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}i(Zw,"getAsciiSymbols");var XA={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:ao()?YA():Zw(),spinner:{frames:ao()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},DG={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:ao()?YA():Zw(),spinner:{frames:ao()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},BG={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:Zw(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},FG={dark:XA,light:DG,minimal:BG},qA=XA;function $s(){return qA}i($s,"getCurrentTheme");function ld(e){let t=FG[e];return t?(qA=t,!0):!1}i(ld,"setTheme");function WG(){if(!process.stdout.isTTY){ld("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){ld("dark");return}ld("dark")}i(WG,"autoSelectTheme");WG();var Ch=class{static{i(this,"ReadlineUIContext")}rl;constructor(t){this.rl=t}async select(t,n){if(n.length!==0)return console.log(`
|
|
199
|
+
${t}`),console.log("\u2500".repeat(t.length)),n.forEach((r,o)=>{console.log(` ${o+1}. ${r}`)}),console.log(" 0. Cancel"),console.log(""),new Promise(r=>{this.rl.question("Enter choice (0 to cancel): ",o=>{let s=o.trim();if(s==="0"||s===""){r(void 0);return}let a=parseInt(s,10)-1;if(isNaN(a)||a<0||a>=n.length){console.log("Invalid choice. Please try again."),r(void 0);return}r(n[a])})})}async confirm(t){return new Promise(n=>{this.rl.question(`${t} (y/N): `,r=>{let o=r.trim().toLowerCase();n(o==="y"||o==="yes")})})}async input(t,n){let r=n?`${t} [${n}]: `:`${t}: `;return new Promise(o=>{this.rl.question(r,s=>{let a=s.trim();if(a===""&&n!==void 0){o(n);return}o(a||void 0)})})}};import*as JA from"child_process";import*as dd from"path";import*as ud from"fs";import*as QA from"os";import co from"chalk";function ZA(e,t){let n=$s(),r=e==="plan"?co.hex(n.colors.warning):co.hex(n.colors.success),o=t.model??Kr(t.provider)??t.provider,s=ei({provider:t.provider,model:t.model,effort:qf(t),effortOverride:t.effortOverride,thinking:t.thinking,reasoningMode:t.reasoningMode}),a=Qw();if(a<60){let l=e==="plan"?"?":n.symbols.prompt;return r(`${l} `)}if(a<100){let l=co.hex(n.colors.dim)(`[${s}]`);return r(`kodax:${e}${l}> `)}let c=co.hex(n.colors.info)(`[effort:${s}]`);return r(`kodax:${e} (${t.provider}:${o})${c}> `)}i(ZA,"getPrompt");async function eL(e,t){let n=$s(),r=[],o=await new Promise(s=>{e.question(t,s)});if(o===""||o.toLowerCase()==="/e")return ex(r.join(`
|
|
200
|
+
`));for(r.push(o);HG(r.join(`
|
|
201
|
+
`));){let s=co.hex(n.colors.dim)("... "),a=await new Promise(c=>{e.question(s,c)});r.push(a)}return r.join(`
|
|
202
|
+
`).replace(/\\\n/g,`
|
|
203
|
+
`)}i(eL,"askInput");async function ex(e){let t=dd.join(QA.tmpdir(),"kodax"),n=dd.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await ud.promises.mkdir(t,{recursive:!0}),await ud.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=dd.basename(r);console.log(co.yellow(`
|
|
204
|
+
[Security] Editor path sanitized: ${a}`)),r=a}console.log(co.dim(`
|
|
205
|
+
[Opening editor: ${r}]`));let o=process.platform==="win32"&&(r.toLowerCase()==="notepad"||r.toLowerCase()==="notepad.exe");return console.log(o?co.dim(`Note: Please close Notepad manually after editing to continue.
|
|
206
|
+
`):co.dim(`Save and close the editor to continue...
|
|
207
|
+
`)),JA.spawnSync(r,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await ud.promises.readFile(n,"utf-8")).trim()}catch(r){let o=r instanceof Error?r:new Error(String(r));return console.log(co.red(`
|
|
208
|
+
[Editor Error] ${o.message}`)),e}finally{try{await ud.promises.unlink(n)}catch{}}}i(ex,"openExternalEditor");function HG(e){if(e.endsWith("\\")&&!e.endsWith("\\\\"))return!0;let t={"(":0,"[":0,"{":0},n={")":"(","]":"[","}":"{"},r=null;for(let o=0;o<e.length;o++){let s=e[o];if(s!==void 0){if((s==='"'||s==="'"||s==="`")&&e[o-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(o=>o>0)?!0:r!==null}i(HG,"needsContinuation");import Ze from"chalk";function tL(e){e?.workspaceRoot&&(console.log(Ze.dim(` Workspace: ${Yr(e)}`)),console.log(Ze.dim(` Use /status workspace for runtime details.
|
|
209
|
+
`)))}i(tL,"printWorkspaceEntryNotice");function nL(e,t,n,r){let o=$s(),s=e.model??Kr(e.provider)??e.provider,a=ei({provider:e.provider,model:e.model,effort:qf(e),effortOverride:e.effortOverride,thinking:e.thinking,reasoningMode:e.reasoningMode}),c=`
|
|
210
|
+
\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
|
|
211
|
+
\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
|
|
212
|
+
\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
|
|
213
|
+
\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
|
|
214
|
+
\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
|
|
215
|
+
\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=i(d=>Ze.hex(d)(" \u258E "),"bar"),u=Ze.hex(o.colors.dim)(" \xB7 ");if(console.log(Ze.hex(o.colors.primary)(`
|
|
216
|
+
`+c)),console.log(""),console.log(l(o.colors.primary)+Ze.hex(o.colors.primary)("AI Coding Agent \xB7 Minimalist & Intelligent")),console.log(l(o.colors.success)+Ze.bold.hex(o.colors.text)(`v${ts}`)+u+Ze.hex(o.colors.success)(`${e.provider}:${s}`)+u+Ze.hex(o.colors.primary)(e.agentMode.toUpperCase())+Ze.hex(o.colors.dim)(" / ")+Ze.hex(o.colors.accent)(t)+Ze.hex(o.colors.dim)(" \xB7 ")+Ze.hex(o.colors.warning)(`effort:${a}`)),n){let d=Math.round(n.contextWindow/1e3),p=n.enabled?Ze.hex(o.colors.success)("on"):Ze.hex(o.colors.secondary)("off"),h=ku(n.contextWindow,n.triggerPercent,n.triggerTokens);console.log(l(o.colors.accent)+Ze.hex(o.colors.secondary)(`ctx ${d}k \xB7 compaction `)+p+Ze.hex(o.colors.secondary)(` \xB7 ${h}`))}r&&console.log(l(o.colors.secondary)+Ze.hex(o.colors.secondary)(`${r.length} project rule file(s) loaded \u2014 `)+Ze.hex(o.colors.dim)("/reload to refresh")),console.log(""),console.log(Ze.hex(o.colors.dim)(" Quick tips:")),console.log(Ze.hex(o.colors.primary)(" /help ")+Ze.hex(o.colors.dim)("Show all commands")),console.log(Ze.hex(o.colors.primary)(" /mode ")+Ze.hex(o.colors.dim)("Switch permission mode")),console.log(Ze.hex(o.colors.primary)(" /clear ")+Ze.hex(o.colors.dim)("Clear conversation")),console.log(Ze.hex(o.colors.primary)(" @path ")+Ze.hex(o.colors.dim)("Attach image to context")),console.log(Ze.hex(o.colors.primary)(" !cmd ")+Ze.hex(o.colors.dim)("Run read-only shell command")),console.log(Ze.hex(o.colors.dim)(`
|
|
217
|
+
Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
|
|
218
|
+
`))}i(nL,"printStartupBanner");async function jG(e,t,n){if(e?.id){let r=await t.load(e.id);if(!r)return null;let o=_n(r);return{id:e.id,data:r,kind:"load",...o?{runtimeInfo:o}:{}}}if(e?.resume||e?.autoResume){let r=await Mc(t,n);if(!r)return null;let o=await t.load(r.id);if(!o)return null;let s=_n(o);return{id:r.id,data:o,kind:"continue",...s?{runtimeInfo:s}:{}}}return null}i(jG,"loadClassicStartupSession");async function UG(e){return(await _f(e)).getSystemPromptSnippet()}i(UG,"buildClassicCliSkillsPrompt");function GG(e,t){let n=Ef(e);t.context={...t.context,skillsPrompt:n.getSystemPromptSnippet()}}i(GG,"syncClassicCliSkillsPrompt");var rx=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t),o=Je(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:o}})}async load(t){return structuredClone(this.sessions.get(t)?.data??null)}async getLineage(t){return structuredClone(this.sessions.get(t)?.data.lineage??null)}async loadFullLineage(t){return this.getLineage(t)}async setActiveEntry(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=Ca(o.data.lineage,n,r);if(!s)return null;let a={...structuredClone(o.data),messages:$t(s),lineage:s};return this.sessions.set(t,{...o,data:a}),structuredClone(a)}async setLabel(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=va(o.data.lineage,n,r);if(!s)return null;let a={...structuredClone(o.data),lineage:s};return this.sessions.set(t,{...o,data:a}),structuredClone(a)}async fork(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=Ro(o.data.lineage,n);if(!s)return null;let a=r?.sessionId??await ka(),c={messages:$t(s),title:r?.title??o.data.title,gitRoot:o.data.gitRoot,tag:o.data.tag,runtimeInfo:o.data.runtimeInfo?structuredClone(o.data.runtimeInfo):void 0,scope:o.data.scope??"user",extensionState:o.data.extensionState?structuredClone(o.data.extensionState):void 0,extensionRecords:o.data.extensionRecords?structuredClone(o.data.extensionRecords):void 0,lineage:s};return this.sessions.set(a,{createdAt:new Date().toISOString(),data:c}),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let r=this.sessions.get(t);if(!r?.data.lineage)return null;let o=n??ba(r.data.lineage);if(!o)return null;let s=Ra(r.data.lineage,o);if(!s)return null;let a={...r.data,messages:$t(s),lineage:s};return this.sessions.set(t,{...r,data:a}),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.data.scope??"user")==="user").map(([n,r])=>({id:n,title:r.data.title,msgCount:r.data.lineage?Zi(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 tx(e,t,n){e.runtimeInfo=n,e.gitRoot=n?.workspaceRoot??e.gitRoot,t.context={...t.context,gitRoot:e.gitRoot,executionCwd:n?.executionCwd??process.cwd()}}i(tx,"applyRuntimeContext");function vh(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))}i(vh,"applyRuntimeSessionSnapshot");function Wo(e){return{...e.extensionStateDirty?{extensionState:e.extensionState??{}}:{},...e.extensionRecordsDirty?{extensionRecords:e.extensionRecords??[]}:{}}}i(Wo,"contextExtensionSessionData");function zc(e){e.extensionStateDirty=!1,e.extensionRecordsDirty=!1}i(zc,"markExtensionSessionPersisted");function VG(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}i(VG,"resolveInitialReasoningMode");var ox={current:null};async function oL(e){let t=await zr({cwd:process.cwd()}),n=t.workspaceRoot??await Eo()??void 0,r=e.storage??new rx,o=await jG(e.session,r,n),s=o?o.runtimeInfo??t:t,a=s.workspaceRoot??n;o&&(e={...e,session:{...e.session??{},id:o.id,tag:o.data.tag}});let c=Rf({meta:{cwd:process.cwd(),startedAt:Date.now()}}),l=Yf(),u=La({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,configuredProvider:l.provider,defaultProvider:xf}),d=Pa({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,explicitModel:e.model,configuredProvider:l.provider,configuredModel:l.model}),p=VG(e,l),h=$a({explicitEffort:e.effort,environmentEffort:process.env.KODAX_EFFORT,configuredEffort:l.effort}),m=Xf(e,l,process.env.KODAX_EFFORT),g=e.agentMode??l.agentMode??"ama",x=p!=="off",y=Ma(l.permissionMode,"accept-edits")??"accept-edits",C=Kf();y==="auto-in-project"&&C();let v=Bf(),_=l.theme;_&&ld(_);let E=$s(),R={provider:u,model:d,effort:h,effortOverride:m,planModeEffort:l.planModeEffort,thinking:x,reasoningMode:p,agentMode:g,permissionMode:y,repoIntelligenceMode:v.mode,repoIntelligenceTrace:v.trace,fallbackProviders:l.fallbackProviders},I=y,W=Wa(),$=i(P=>ns({provider:P?.provider??R.provider,model:P?.model??R.model,effort:R.effort,effortOverride:R.effortOverride,permissionMode:P?.permissionMode??R.permissionMode,planModeEffort:R.planModeEffort,thinking:R.thinking,reasoningMode:R.reasoningMode}),"resolveCurrentRuntimeEffort"),D=0,z="",re=!1,q=500,S=await bc({sessionId:o?.id??e.session?.id,gitRoot:a,runtimeInfo:s,existingMessages:o?.data.messages,existingUiHistory:o?.data.uiHistory,existingLineage:o?.data.lineage,existingArtifactLedger:o?.data.artifactLedger,existingExtensionState:o?.data.extensionState,existingExtensionRecords:o?.data.extensionRecords});if(S.title=o?.data.title??"",o){let P=o.kind==="continue"?"Continuing session":"Session loaded";process.stdout.write(`${le.green(`[${P}: ${o.id}]`)}
|
|
219
|
+
`)}S.skillDynamicContext=e.skillDynamicContext,c?.writer.update({sessionId:S.sessionId});let L=i(P=>ki(R,P,(U,H,Z)=>{console.log((U==="block"?le.red:le.yellow)(`
|
|
220
|
+
${H}`));for(let N of Z)console.log(le.dim(N));console.log()}),"guardSessionTransition"),ee=await Zf(a??void 0),{resolveProvider:j}=await import("./dist-GFJFRPAV.js"),ae=j(R.provider),de=ee.contextWindow??ae.getEffectiveContextWindow?.(R.model)??ae.getContextWindow?.()??2e5,{loadAgentsFiles:me}=await import("./dist-GFJFRPAV.js"),be=i(async()=>me({cwd:process.cwd(),projectRoot:S.gitRoot??void 0}),"reloadAgentsFiles"),pe=await be();if(nL(R,R.permissionMode,{contextWindow:de,triggerPercent:ee.triggerPercent,triggerTokens:ee.triggerTokens,enabled:ee.enabled},pe),tL(s),e.learning)try{let P=ep(await e.learning.getSnapshot());P&&console.log(le.yellow(`
|
|
221
|
+
${P}
|
|
222
|
+
`))}catch(P){gt({source:"repl:learning",level:"warn",message:"Failed to recover the Learning Center startup summary.",detail:P instanceof Error?P.message:String(P)})}let we=zI(()=>S.gitRoot??process.cwd()),Pe=rL.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:i((P,U)=>{we(P).then(H=>{U(null,H)}).catch(()=>{U(null,[[],P])})},"completer")}),Q=i(async P=>{let U=await Kc(Pe,P.toolName,{...P.input,...P.reason!==void 0?{_reason:P.reason}:{},...P.executionCwd!==void 0?{_executionCwd:P.executionCwd}:{},...P.risk!==void 0?{_runtimeRisk:P.risk}:{}},{permissionMode:I,runtimeGrantSuggestions:P.grantSuggestions??[]});return Gm(P,U)},"requestRuntimePermission"),se=Fa(),Te=Ic(se);await e.runtimeAutoModeControl?.syncSettings?.(S.sessionId,I,Te);let nt=await _c({askUser:i(async(P,U,H)=>(await Kc(Pe,P.name,{...P.input,...H&&H.length>0?{_classifierSignals:H}:{}},{permissionMode:I,reason:`[auto-mode] ${U}`})).confirmed?"allow":"block","askUser"),projectRoot:a??process.cwd(),executionCwd:s.executionCwd??a??process.cwd(),getCurrentProviderName:i(()=>R.provider,"getCurrentProviderName"),getCurrentModel:i(()=>R.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>I,"getCurrentPermissionMode"),autoModeSettings:se,log:i((P,U)=>{console.log(P==="warn"?le.yellow(U):le.dim(U))},"log"),extraCollectors:[Ba]}),It=jf({getProvider:i(()=>j(R.provider),"getProvider"),getModel:i(()=>R.model??"","getModel")}),ze=`
|
|
223
|
+
Keyboard Shortcuts:
|
|
224
|
+
Tab Auto-complete (@paths, /commands)
|
|
225
|
+
Esc+Esc Edit last message
|
|
226
|
+
Ctrl+T Cycle reasoning effort
|
|
227
|
+
Ctrl+E Open external editor
|
|
228
|
+
Ctrl+R Search command history (built-in)
|
|
229
|
+
Ctrl+C Cancel current input
|
|
230
|
+
Ctrl+D Exit REPL`,Ge=i(()=>{console.log(le.dim(ze))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(P,U)=>{if(U&&U.name==="escape"){let H=Date.now();H-D<q&&z&&(re=!0,console.log(le.dim(`
|
|
231
|
+
[Opening editor with last message...]`)),Pe.pause()),D=H}});let he=await UG(a),Ie=!0,G={...e,provider:u,model:d,effort:$().runtimeEffort,agentMode:g,reasoningMode:p,thinking:x,workflowRunsBaseDir:Zo("workflow-runs",is(a??s.executionCwd??process.cwd()).key),context:{...e.context,gitRoot:a,executionCwd:s.executionCwd,repoIntelligenceMode:v.mode,repoIntelligenceTrace:v.trace,skillsPrompt:he},session:{...e.session,id:S.sessionId,storage:r,persistedByHost:!0}},Fe=i(()=>{let P=$();G.effort=P.runtimeEffort},"refreshCurrentEffort");ox.current=null;let wt=i(async P=>{if(S.messages.length===0)return"empty";if(!L("Recovering into a new session"))return"blocked";let U=S.sessionId,H=S.lineage??Je(S.messages);S.lineage=H;let Z=S.artifactLedger?structuredClone(S.artifactLedger):void 0,N=S.title||lo(S.messages),Me=Df({sourceSessionId:U,messages:S.messages,lineage:H,artifactLedger:Z,reason:"provider session recovery"});await r.save(U,{messages:S.messages,title:N,gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo,lineage:H,artifactLedger:Z,uiHistory:S.uiHistory,...Wo(S),...G.session?.tag!==void 0?{tag:G.session.tag}:{}});let ve=ks(),Re=Je(Me.messages);await r.save(ve,{messages:Me.messages,title:Me.title,gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo,lineage:Re,artifactLedger:Z,...G.session?.tag!==void 0?{tag:G.session.tag}:{}});let Pt=new Date().toISOString();S.sessionId=ve,S.messages=Me.messages,S.title=Me.title,S.contextTokenSnapshot=void 0,S.lineage=Re,S.artifactLedger=Z,S.extensionState=void 0,S.extensionRecords=void 0,S.extensionStateDirty=!1,S.extensionRecordsDirty=!1,S.createdAt=Pt,S.lastAccessed=Pt,G.session={...G.session,id:ve},c?.writer.update({sessionId:ve}),console.log(le.green(`
|
|
232
|
+
[Recovered session: ${ve}]`)),console.log(le.dim(` Source session saved: ${U}`)),console.log(le.dim(" Raw provider history was not replayed."));let Kt;try{Kt=await nx(G,S,Nf(P),S.messages,void 0,e.runtimeRunner,I,Q,Te)}catch(po){let Ft=po instanceof Error?po.message:String(po);return console.log(le.red(`
|
|
233
|
+
[Recover failed] ${Ft}`)),"failed"}S.messages=Kt.messages,S.contextTokenSnapshot=Kt.contextTokenSnapshot,vh(S,Kt),S.artifactLedger=Qi(S.artifactLedger??[],Kt.artifactLedger??Mf(Kt.messages)),S.lineage=Je(S.messages,S.lineage);let wn=lo(S.messages);return S.title=wn,await r.save(S.sessionId,{messages:S.messages,title:wn,gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo,lineage:S.lineage,artifactLedger:S.artifactLedger,...Wo(S),...G.session?.tag!==void 0?{tag:G.session.tag}:{}}),zc(S),"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:i(()=>{Ie=!1,c?.shutdown(),Pe.close()},"exit"),saveSession:i(async()=>{if(S.messages.length>0){let P=lo(S.messages);S.title=P,await r.save(S.sessionId,{messages:S.messages,title:P,gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo,artifactLedger:S.artifactLedger,...Wo(S),...G.session?.tag!==void 0?{tag:G.session.tag}:{}}),zc(S)}},"saveSession"),startNewSession:i(()=>{S.sessionId=ks(),S.title="",S.contextTokenSnapshot=void 0,S.artifactLedger=void 0,S.extensionState=void 0,S.extensionRecords=void 0,S.extensionStateDirty=!1,S.extensionRecordsDirty=!1,S.createdAt=new Date().toISOString(),S.lastAccessed=S.createdAt,tx(S,G,t),G.session={...G.session,id:S.sessionId},c?.writer.update({sessionId:S.sessionId})},"startNewSession"),loadSession:i(async P=>{let U=await r.load(P);if(U){if(!L("Resuming a saved session"))return"blocked";let H=await zr({cwd:process.cwd()}),Z=_n(U),N=Z??H;return Z?.workspaceRoot&&!ip(Z)?(console.log(le.yellow(`
|
|
234
|
+
[Saved workspace unavailable]`)),console.log(le.dim(` Session workspace: ${Yr(Z)}`)),console.log(le.dim(` Falling back to current workspace: ${Yr(H)}`)),N=H):Z?.workspaceRoot&&H.workspaceRoot&&Z.workspaceRoot!==H.workspaceRoot&&(console.log(le.cyan(`
|
|
235
|
+
[Loading sibling workspace session]`)),console.log(le.dim(` Current workspace: ${Yr(H)}`)),console.log(le.dim(` Session workspace: ${Yr(Z)}`))),S.messages=U.messages,S.title=U.title,S.sessionId=P,S.contextTokenSnapshot=void 0,S.artifactLedger=U.artifactLedger,S.extensionState=U.extensionState?structuredClone(U.extensionState):void 0,S.extensionRecords=U.extensionRecords?.map(Me=>({...Me})),S.extensionStateDirty=!1,S.extensionRecordsDirty=!1,S.lastAccessed=new Date().toISOString(),tx(S,G,N),G.session={...G.session,id:P,tag:U.tag},c?.writer.update({sessionId:P}),console.log(le.green(`
|
|
236
|
+
[Loaded session: ${P}]`)),console.log(le.dim(` Messages: ${U.messages.length}`)),S.runtimeInfo?.workspaceRoot&&console.log(le.dim(` Workspace: ${Yr(S.runtimeInfo)}`)),"loaded"}return"missing"},"loadSession"),listSessions:i(async()=>{let P=await r.list(S.gitRoot??void 0);if(P.length===0){console.log(le.dim(`
|
|
237
|
+
[No saved sessions]`));return}console.log(le.bold(`
|
|
238
|
+
Recent Sessions:
|
|
239
|
+
`)),S.runtimeInfo?.workspaceRoot&&(console.log(le.dim(` Current workspace: ${Yr(S.runtimeInfo)}`)),console.log());for(let U of P.slice(0,10))if(console.log(` ${le.cyan(U.id)} ${le.dim(`(${U.msgCount} messages)`)} ${U.title.slice(0,40)}`),U.runtimeInfo?.workspaceRoot){let Z=S.runtimeInfo?.workspaceRoot===U.runtimeInfo.workspaceRoot?" (current workspace)":"";console.log(le.dim(` workspace: ${Yr(U.runtimeInfo)}${Z}`))}console.log()},"listSessions"),clearHistory:i(()=>{S.messages=[],S.contextTokenSnapshot=void 0},"clearHistory"),printHistory:i(()=>{if(S.messages.length===0){console.log(le.dim(`
|
|
240
|
+
[No conversation history]`));return}console.log(le.bold(`
|
|
241
|
+
Conversation History:
|
|
242
|
+
`));let P=S.messages.slice(-20);for(let U=0;U<P.length;U++){let H=P[U],Z=le.cyan(H.role.padEnd(10)),N=typeof H.content=="string"?H.content:"[Complex content]",Me=N.slice(0,60).replace(/\n/g," "),ve=N.length>60?"...":"";console.log(` ${(U+1).toString().padStart(2)}. ${Z} ${Me}${ve}`)}console.log()},"printHistory"),switchProvider:i((P,U)=>{let H=$({provider:P,model:U});R.provider=P,R.model=U,G.provider=P,G.model=U,G.effort=H.runtimeEffort,H.diagnostic&&console.log(le.yellow(`
|
|
243
|
+
[${H.diagnostic}]`))},"switchProvider"),setThinking:i(P=>{R.thinking=P,G.thinking=P,R.reasoningMode=P?"auto":"off",G.reasoningMode=R.reasoningMode},"setThinking"),setEffort:i(P=>{R.effort=P,R.effortOverride=P!==void 0,Fe()},"setEffort"),setReasoningMode:i(P=>{let U=P!=="off";R.reasoningMode=P,R.thinking=U,G.reasoningMode=P,G.thinking=U},"setReasoningMode"),setAgentMode:i(P=>{R.agentMode=P,G.agentMode=P},"setAgentMode"),setPermissionMode:i(async P=>{await e.runtimeAutoModeControl?.syncSettings?.(S.sessionId,P,Te),R.permissionMode=P,I=P,Fe(),P==="auto-in-project"&&C()},"setPermissionMode"),setRepoIntelligenceRuntime:i(P=>{P.mode!==void 0&&(R.repoIntelligenceMode=P.mode,process.env.KODAX_REPO_INTELLIGENCE=P.mode,G.context={...G.context,repoIntelligenceMode:P.mode}),P.trace!==void 0&&(R.repoIntelligenceTrace=P.trace,P.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,G.context={...G.context,repoIntelligenceTrace:P.trace})},"setRepoIntelligenceRuntime"),deleteSession:i(async P=>{await r.delete?.(P)},"deleteSession"),deleteAllSessions:i(async()=>{await r.deleteAll?.(S.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let P=await r.getLineage?.(S.sessionId);if(!P){console.log(le.dim(`
|
|
244
|
+
[No session tree available for this session]`));return}let U=Zm(Lf(P));console.log(le.bold(`
|
|
245
|
+
Session Tree:
|
|
246
|
+
`));for(let H of U)console.log(` ${H}`);console.log()},"printSessionTree"),switchSessionBranch:i(async P=>{if(!L("Switching session branches"))return"blocked";let U=await r.setActiveEntry?.(S.sessionId,P,{summarizeCurrentBranch:!0});return U?(S.messages=U.messages,S.title=U.title,S.contextTokenSnapshot=void 0,console.log(le.green(`
|
|
247
|
+
[Switched to tree entry: ${P}]`)),console.log(le.dim(` Messages: ${U.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(P,U)=>{if(!await r.setLabel?.(S.sessionId,P,U))return!1;let Z=U&&U.trim()?`checkpoint label set: ${U.trim()}`:"checkpoint label cleared";return console.log(le.green(`
|
|
248
|
+
[${Z}]`)),!0},"labelSessionBranch"),forkSession:i(async P=>{if(!L("Forking a session branch"))return"blocked";let U=await r.fork?.(S.sessionId,P);return U?(S.sessionId=U.sessionId,S.messages=U.data.messages,S.title=U.data.title,S.contextTokenSnapshot=void 0,S.createdAt=new Date().toISOString(),S.lastAccessed=S.createdAt,tx(S,G,_n(U.data)??S.runtimeInfo),G.session={...G.session,id:U.sessionId},console.log(le.green(`
|
|
249
|
+
[Forked session: ${U.sessionId}]`)),console.log(le.dim(` Messages: ${U.data.messages.length}`)),"forked"):"failed"},"forkSession"),recoverSession:wt,rewindSession:i(async P=>{if(!L("Rewinding session"))return"blocked";let U=await r.rewind?.(S.sessionId,P);return U?(S.messages=U.messages,S.title=U.title,S.contextTokenSnapshot=void 0,S.lastAccessed=new Date().toISOString(),console.log(le.green(`
|
|
250
|
+
[Rewound session${P?` to ${P}`:" to previous turn"}]`)),console.log(le.dim(` Messages: ${U.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>ox.current?.()??null,"getCostReport"),getAutoModeStats:i(async()=>{if(_r(I))return e.runtimeAutoModeControl?e.runtimeAutoModeControl.getStats(S.sessionId):nt.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(async P=>{if(_r(I)){if(e.runtimeAutoModeControl){await e.runtimeAutoModeControl.setEngine(S.sessionId,P);return}nt.getGuardrail().setEngine(P)}},"setAutoModeEngine"),createKodaXOptions:i(()=>{let P=i((H,Z)=>I!=="plan"?null:ti(H,Z,a??process.cwd()),"planModeBlockCheck"),U=!e.runtimeRunner&&_r(I)?[nt.getGuardrail()]:void 0;return{...G,provider:R.provider,model:R.model,effort:$().runtimeEffort,thinking:R.thinking,reasoningMode:R.reasoningMode,guardrails:U,context:{...G.context,planModeBlockCheck:P},events:{...G.events,onMemoryOutcomeDigest:i((H,Z)=>{if(H.sessionId!==S.sessionId){G.events?.onMemoryOutcomeDigest?.(H,Z);return}S.lineage=Pf(S.lineage??Je(S.messages),H,Z?.jobId),G.events?.onMemoryOutcomeDigest?.(H,Z)},"onMemoryOutcomeDigest"),onMemoryReviewReceipt:i(H=>{if(H.sessionId!==void 0&&H.sessionId!==S.sessionId){G.events?.onMemoryReviewReceipt?.(H);return}S.lineage=$f(S.lineage??Je(S.messages),H),G.events?.onMemoryReviewReceipt?.(H)},"onMemoryReviewReceipt"),onMemoryNotice:i(H=>{if(H.sessionId!==void 0&&H.sessionId!==S.sessionId){G.events?.onMemoryNotice?.(H);return}let Z=S.lineage??Je(S.messages),N=Of(Z,{...H,createdAt:new Date().toISOString()});S.lineage=N,N!==Z&&console.log(le.dim(`
|
|
251
|
+
[memory] ${H.summaries.slice(0,3).join("; ")}`)),G.events?.onMemoryNotice?.(H)},"onMemoryNotice"),exitPlanMode:i(async H=>I!=="plan"?"not-in-plan-mode":(await Kc(Pe,"exit_plan_mode",{plan:H},{isProtectedPath:!1,permissionMode:I})).confirmed?(R.permissionMode="accept-edits",I="accept-edits",Fe(),!0):!1,"exitPlanMode"),beforeToolExecute:i(async(H,Z)=>{let N=I,Me=_a(N);if(N==="plan"){let ve=ti(H,Z,a??process.cwd());if(ve)return console.log(le.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=Z.command??"";if(Gn(ve))return!0}if(Gf(N,nt.getGuardrail().getEngine()))return!0;if(a&&ko.has(H)){let ve=Z.path;if(ve&&Da(ve,a))return(await Kc(Pe,H,Z,{isProtectedPath:!0,permissionMode:N})).confirmed?!0:(console.log(le.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(Me.has(H)){if(N==="accept-edits"&&H==="bash"&&await Na(H,Z,W,It))return!0;let ve=await Kc(Pe,H,Z,{isOutsideProject:Z._outsideProject===!0,reason:Z._reason,permissionMode:N});if(!ve.confirmed)return console.log(le.dim("[Cancelled] Operation cancelled by user")),!1;ve.always&&N==="accept-edits"&&(Qf(H,Z,!1),W=Wa())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:i(async()=>(pe=await be(),pe),"reloadAgentsFiles"),readline:Pe,ui:new Ch(Pe)},Xe=i(async P=>{S.uiHistory=[...S.uiHistory??[],P];let U=S.title||lo(S.messages);S.title=U,await r.save(S.sessionId,{messages:S.messages,title:U,gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo,lineage:S.lineage,artifactLedger:S.artifactLedger,uiHistory:S.uiHistory,...Wo(S),...G.session?.tag!==void 0?{tag:G.session.tag}:{}})},"appendPersistedUiHistoryItem"),Lt=i(async(P,U)=>{if(!lp({error:P,messageCount:S.messages.length}))return!1;console.log(le.dim(`
|
|
252
|
+
${zl}`));try{await Xe({type:"info",text:zl})}catch(Me){let ve=Me instanceof Error?Me.message:String(Me);console.log(le.dim(`Could not persist recovery hint: ${ve}`))}let H=_I(Vt);if(!H)return console.log(),!1;if(!await H(cp))return!1;let N;try{N=await Vt.recoverSession?.(U)}catch(Me){let ve=Me instanceof Error?Me.message:String(Me);return console.log(le.red(`
|
|
253
|
+
[Recover failed] ${ve}`)),!1}return N==="failed"&&console.log(le.dim(`Recovery session was created, but the continuation request still failed.
|
|
254
|
+
`)),N==="recovered"},"maybeRecoverAfterProviderError");Pe.on("SIGINT",async()=>{console.log(le.dim(`
|
|
255
|
+
|
|
256
|
+
[Press /exit to quit]`)),Pe.prompt()});let Zt=i(()=>{c?.shutdown(),Pe.close()},"cleanup");process.on("exit",Zt),process.on("SIGTERM",Zt);let Zn=i(async(P,U)=>{if(Wf({source:P.source}).action==="none")return!1;let Z=!1,N=i(Re=>{Z||(Z=!0,S.messages.push({role:"user",content:U||P.request,timestamp:new Date().toISOString()})),S.messages.push({role:"assistant",content:Re,timestamp:new Date().toISOString()});let Pt=lo(S.messages);S.title=Pt,r.save(S.sessionId,{messages:S.messages,title:Pt,gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo,artifactLedger:S.artifactLedger,...G.session?.tag!==void 0?{tag:G.session.tag}:{}}).catch(Kt=>{let wn=Kt instanceof Error?Kt.message:String(Kt);console.log(le.red(`
|
|
257
|
+
[workflow] failed to save final answer: ${wn}
|
|
258
|
+
`))})},"commitWorkflowFinal"),Me={...Vt,onWorkflowRunMessage:i(Re=>{if(Re.type==="event")return;let Pt=Re.text.trimEnd();if(Pt.trim()){if(Re.type==="error"){console.log(le.red(`
|
|
259
|
+
${Pt}
|
|
260
|
+
`));return}if(Re.type==="success"){console.log(le.green(`
|
|
261
|
+
${Pt}
|
|
262
|
+
`));return}if(Re.type==="assistant"){console.log(`
|
|
263
|
+
${Pt}
|
|
264
|
+
`),Re.final===!0&&N(Pt);return}console.log(le.dim(`
|
|
265
|
+
${Pt}
|
|
266
|
+
`))}},"onWorkflowRunMessage")},ve=await ap({request:P.request,callbacks:Me,approval:R.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:P.displayName,processSource:P.processSource??"command",...P.builtin!==void 0?{builtin:P.builtin}:{}});return Hf({outcome:ve})},"startWorkflowInvocation"),Sn=i(async(P,U)=>{if(!P||typeof P!="object")return;if(P.workflow){await Zn(P.workflow,U);return}if(!P.invocation)return;let H=await oh({...G,provider:R.provider,thinking:R.thinking,reasoningMode:R.reasoningMode},P.invocation,U,Z=>console.log(le.dim(`
|
|
267
|
+
${Z}`)));if(H.mode==="manual"){H.manualOutput&&console.log(le.yellow(`
|
|
268
|
+
${H.manualOutput}
|
|
269
|
+
`)),await H.finalize();return}if(!H.prompt||!H.options){await H.finalize();return}try{let Z=H.mode==="fork"?[]:S.messages,N=await nx(H.options,S,H.prompt,Z,void 0,e.runtimeRunner,I,Q,Te);if(H.mode==="fork"){let Me=bI(N.messages);Me.trim()&&(console.log(`
|
|
270
|
+
${Me}
|
|
271
|
+
`),S.messages.push({role:"assistant",content:Me,timestamp:new Date().toISOString()}))}else S.messages=N.messages,S.contextTokenSnapshot=N.contextTokenSnapshot;if(vh(S,N),S.messages.length>0){let Me=lo(S.messages);S.title=Me,await r.save(S.sessionId,{messages:S.messages,title:Me,gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo,...Wo(S),...G.session?.tag!==void 0?{tag:G.session.tag}:{}}),zc(S)}await H.finalize()}catch(Z){throw await H.finalize(Z instanceof Error?Z:new Error(String(Z))),Z}},"handleCommandResult");for(;Ie;){if(re&&z){re=!1,Pe.resume();let ve=await ex(z);if(ve&&ve.trim()&&ve!==z){console.log(le.dim(`
|
|
272
|
+
[Edited message ready to send]`));let Re=ve.trim();Or(S);let Pt=ss(Re);if(Pt){let Ft=await as(Pt,S,Vt,R);await Sn(Ft,Re);continue}let Kt=await Ih(Re,G.context?.executionCwd);if(Re.startsWith("!")&&Ku(Kt))continue;let wn=Oc(Kt,G.context?.executionCwd??process.cwd());for(let Ft of wn.warnings)console.log(le.yellow(`
|
|
273
|
+
${Ft}`));S.messages.push({role:"user",content:wn.messageContent}),z=Re;let po=S.lineage?Sv({getLineage:i(()=>S.lineage,"getLineage"),setLineage:i(Ft=>{S.lineage=Ft},"setLineage"),saveSession:i(async()=>{await r.save(S.sessionId,{messages:S.messages,title:S.title??lo(S.messages),gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo,artifactLedger:S.artifactLedger,lineage:S.lineage,...Wo(S),...G.session?.tag!==void 0?{tag:G.session.tag}:{}}),zc(S)},"saveSession"),getLatestUsage:i(()=>{},"getLatestUsage"),getTurnStartMs:i(()=>{},"getTurnStartMs"),getPermissionMode:i(()=>I,"getPermissionMode"),hasPendingUserInput:i(()=>ar().has({agentId:Tf(S.sessionId,"/root"),maxPriority:"user",mode:"prompt"}),"hasPendingUserInput"),verifyComplete:i(async()=>({ok:!0}),"verifyComplete")}):void 0;try{let Ft=await Hl({...G,provider:R.provider,thinking:R.thinking,reasoningMode:R.reasoningMode,session:{...G.session,initialMessages:S.lineage?$t(S.lineage,S.lineage.activeEntryId):S.messages,initialExtensionState:S.extensionState??{},initialExtensionRecords:S.extensionRecords??[]},context:{...G.context,taskSurface:"repl",planModeBlockCheck:i((Sr,oT)=>I!=="plan"?null:ti(Sr,oT,a??process.cwd()),"planModeBlockCheck"),...wn.inputArtifacts.length>0?{inputArtifacts:wn.inputArtifacts}:{},...po?{goalRuntime:po}:{}}},Kt);if(S.messages=Ft.messages,S.contextTokenSnapshot=Ft.contextTokenSnapshot,vh(S,Ft),S.artifactLedger=Qi(S.artifactLedger??[],Ft.artifactLedger??Mf(Ft.messages)),S.messages.length>0){let Sr=lo(S.messages);S.title=Sr,await r.save(S.sessionId,{messages:S.messages,title:Sr,gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo,artifactLedger:S.artifactLedger,...Wo(S),...G.session?.tag!==void 0?{tag:G.session.tag}:{}}),zc(S)}}catch(Ft){let Sr=Ft instanceof Error?Ft:new Error(String(Ft));if(S.messages.pop(),console.log(le.red(`
|
|
274
|
+
[Error] ${Sr.message}`)),await Lt(Sr,Kt))continue}continue}else ve===z&&console.log(le.dim(`
|
|
275
|
+
[No changes made, continuing...]`))}let P=ZA(R.permissionMode,R),U=await eL(Pe,P);if(!Ie)break;let H=U.trim();if(!H)continue;Or(S);let Z=ss(H);if(Z){let ve=await as(Z,S,Vt,R);await Sn(ve,H);continue}let N=await Ih(H,G.context?.executionCwd);if(H.startsWith("!")&&Ku(N))continue;let Me=Oc(N,G.context?.executionCwd??process.cwd());for(let ve of Me.warnings)console.log(le.yellow(`
|
|
276
|
+
${ve}`));S.messages.push({role:"user",content:Me.messageContent}),z=H;try{let ve=await nx(G,S,N,S.messages,Me.inputArtifacts,e.runtimeRunner,I,Q,Te);if(S.messages=ve.messages,S.contextTokenSnapshot=ve.contextTokenSnapshot,vh(S,ve),S.artifactLedger=Qi(S.artifactLedger??[],ve.artifactLedger??Mf(ve.messages)),S.messages.length>0){let Re=lo(S.messages);S.title=Re,await r.save(S.sessionId,{messages:S.messages,title:Re,gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo,artifactLedger:S.artifactLedger,...Wo(S),...G.session?.tag!==void 0?{tag:G.session.tag}:{}}),zc(S)}}catch(ve){let Re=ve instanceof Error?ve:new Error(String(ve));S.messages.pop(),Re.message.includes("rate limit")||Re.message.includes("Rate limit")?(console.log(le.yellow(`
|
|
277
|
+
[Rate Limit] ${Re.message}`)),console.log(le.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
|
|
278
|
+
`))):Re.message.includes("API key")||Re.message.includes("not configured")?(console.log(le.red(`
|
|
279
|
+
[Configuration Error] ${Re.message}`)),console.log(le.dim(`Suggestion: Set the required API key environment variable
|
|
280
|
+
`))):Re.message.includes("network")||Re.message.includes("ECONNREFUSED")||Re.message.includes("ETIMEDOUT")?(console.log(le.red(`
|
|
281
|
+
[Network Error] ${Re.message}`)),console.log(le.dim(`Suggestion: Check your internet connection and try again
|
|
282
|
+
`))):Re.message.includes("token")||Re.message.includes("context too long")?(console.log(le.yellow(`
|
|
283
|
+
[Context Error] ${Re.message}`)),console.log(le.dim(`Suggestion: Use /clear to start a fresh conversation
|
|
284
|
+
`))):(console.log(le.red(`
|
|
285
|
+
[Error] ${Re.message}`)),console.log(le.dim(`Your message was not sent. Please try again.
|
|
286
|
+
`))),await Lt(Re,N)}}}i(oL,"runInteractiveMode");async function Ih(e,t=process.cwd()){let n=e.match(/@[\w./-]+/g);if(n)for(let r of n){let o=r.slice(1)}if(e.startsWith("!")){let r=e.slice(1).trim();return Vu(r,{cwd:t})}return e}i(Ih,"processSpecialSyntax");function KG(e){let t=e.snapshot;if(e.type==="workflow_started")return le.dim(`
|
|
287
|
+
\u25B6 workflow ${t.workflowName} started (${t.runId})`);if(e.type==="workflow_finished"){let n=t.status==="completed"?le.green("\u2713"):t.status==="failed"?le.red("\u2717"):le.yellow("\u2022"),r=t.resultSummary?` \u2014 ${t.resultSummary.split(`
|
|
288
|
+
`)[0]}`:"";return`${n} workflow ${t.workflowName} ${t.status}${r}`}if(e.type==="workflow_updated"&&e.message)return le.dim(` ${e.message}`)}i(KG,"renderInlineWorkflowProcessLine");async function nx(e,t,n,r=t.messages,o,s,a="accept-edits",c,l){let u={...e.events??{},getCostReport:ox,onWorkflowProcessEvent:i(p=>{let h=KG(p);h&&console.log(h)},"onWorkflowProcessEvent"),onWorkflowAgentDigest:i(({runId:p,event:h})=>{let m=h.data??{},g=typeof m.summary=="string"?m.summary:void 0,x=typeof m.name=="string"?m.name:void 0,y=Kl(g,x),C=sp(h,y,p);C&&console.log(`
|
|
289
|
+
${C}
|
|
290
|
+
`)},"onWorkflowAgentDigest"),onCompactedMessages:i(async(p,h,m)=>{let g=Qm(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=Qi(t.artifactLedger??[],h.artifactLedger)),s)t.lineage=Ia(g);else{let x=e.session?.storage;if(!x)throw new Error("Classic REPL compaction requires Session storage.");try{await x.save(t.sessionId,{messages:p,title:lo(p),gitRoot:t.gitRoot??"",runtimeInfo:t.runtimeInfo,lineage:g,artifactLedger:t.artifactLedger,...Wo(t),...e.session?.tag!==void 0?{tag:e.session.tag}:{}}),t.lineage=Ia(g)}catch(y){throw gt({source:"repl:compaction",level:"error",message:"Failed to durably persist compacted session history.",detail:y}),y}}await e.events?.onCompactedMessages?.(p,h,m)},"onCompactedMessages")};GG(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",...o&&o.length>0?{inputArtifacts:[...o]}:{}}};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)}i(nx,"runAgentRound");function lo(e){return ri(e)}i(lo,"extractTitle");import bh from"node:fs";import zG from"node:path";function iL(){let e=Eh();return _h(e).map(n=>Rh(n))}i(iL,"listCustomProviders");function sL(e){if(typeof e!="string"||e.length===0)return;let t=_h(Eh()).find(n=>n.name===e);return t?Rh(t):void 0}i(sL,"getCustomProviderConfig");function aL(e){KC(e);let t=Rh(e),n=kh(),r=jl(n,()=>{let o=Eh(),s=_h(o),a=s.findIndex(l=>l.name===t.name),c=a>=0?s.map((l,u)=>u===a?t:l):[...s,t];return lL({...o,customProviders:c}),c});return $g(r),Rh(t)}i(aL,"upsertCustomProvider");function cL(e){if(typeof e!="string"||e.length===0)return!1;let t=kh(),n=jl(t,()=>{let r=Eh(),o=_h(r),s=o.filter(a=>a.name!==e);if(s.length!==o.length)return lL({...r,customProviders:s}),s});return n?($g(n),!0):!1}i(cL,"removeCustomProvider");function kh(){return Zo("config.json")}i(kh,"configFilePath");function Eh(){let e=kh();if(!bh.existsSync(e))return{};try{let t=JSON.parse(bh.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(Eh,"readWholeConfig");function lL(e){let t=kh();bh.mkdirSync(zG.dirname(t),{recursive:!0}),bh.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(lL,"writeWholeConfig");function _h(e){let t=e.customProviders;return Array.isArray(t)?t:[]}i(_h,"extractCustomProviders");function Rh(e){return structuredClone(e)}i(Rh,"cloneCustomProvider");function uL(){return structuredClone(es(bo()).document.servers)}i(uL,"listMcpServers");function dL(e){if(typeof e!="string"||e.length===0)return;let t=es(bo()).document.servers[e];return t===void 0?void 0:structuredClone(t)}i(dL,"getMcpServerConfig");function fL(e,t){ix(e,t);let n=bo(),r=es(n),o=structuredClone(t);return Ul({domain:"mcp",configHome:n,...r.source==="user"?{expectedRevision:r.revision}:{},document:{version:1,servers:{...r.document.servers,[e]:o}},validate:Aa}),structuredClone(o)}i(fL,"upsertMcpServer");function pL(e){if(typeof e!="string"||e.length===0)return!1;let t=bo(),n=es(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:Aa}),!0}i(pL,"removeMcpServer");function ix(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("MCP server name must be a non-empty string");Aa({version:1,servers:{[e]:t}})}i(ix,"validateMcpServerConfig");import{createHash as ax}from"node:crypto";var YG=16,XG=4*1024,mL=512,hL="kodax-conversation-entry-chain-v1\0",qG="kodax-conversation-history-v2\0";function Ph(){return`sha256:${ax("sha256").update(hL).digest("hex")}`}i(Ph,"emptyConversationEntryChain");function Yc(e,t){let n=e;for(let r of t){let o=JSON.stringify(r);n=`sha256:${ax("sha256").update(hL).update(n).update(`${Buffer.byteLength(o,"utf8")}:`).update(o).digest("hex")}`}return n}i(Yc,"extendConversationEntryChain");function Os(e){return Yc(Ph(),e)}i(Os,"createConversationEntryChain");function Ns(e,t=Os(e.entries)){return`sha256:${ax("sha256").update(qG).update(t).update(JSON.stringify({sourceRevision:e.sourceRevision,status:e.status,issues:e.issues})).digest("hex")}`}i(Ns,"createSessionConversationHistoryRevision");function gL(e){return e.type==="message"||e.type==="compaction"||e.type==="branch_summary"}i(gL,"isThreadEntry");function Mh(e,t,n){let r=[],o=new Set,s=t.get(e),a=s!==void 0,c=0;for(;s!==void 0;){if(c%256===0&&n?.(),c+=1,o.has(s.id)){a=!1;break}if(o.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}}i(Mh,"threadPath");function Ah(e){return $h(e).length>0}i(Ah,"hasExplicitProvenance");function $h(e){return[...new Set([...e.logicalId!==void 0&&e.logicalId!==e.id?[e.logicalId]:[],...e.sourceEntryId!==void 0&&e.sourceEntryId!==e.id?[e.sourceEntryId]:[]])]}i($h,"explicitProvenanceKeys");function sx(e,t){let n=new Set([e.id,e.logicalId,e.sourceEntryId]);return $h(t).every(r=>n.has(r))}i(sx,"provenanceMatches");function JG(e,t,n){let r=-1;for(let s=0;s<t.length;s+=1)if(s>0&&s%256===0&&n?.(),Ah(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(Li(e[l].message));let c=[];for(let l=0;l<t.length;l+=1)l>0&&l%256===0&&n?.(),c.push(Li(t[l].message));return cx(s,c,n).length>0}let o=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<o||!sx(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=Ah(h)?sx(p,h):pd(p.message,h.message)}if(u)return!0}return!1}i(JG,"retainedSuffixMatches");function QG(e,t,n,r,o){let s=[],a=new Map,c=new Map;for(let m=0;m<e.length;m+=1){m>0&&m%256===0&&o?.();let g=e[m];gL(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&&o?.();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&&o?.();let g=s[m];l.has(g.id)||u.push({leaf:g,path:Mh(g.id,a,o)})}let d=[];for(let m=0;m<u.length;m+=1)m>0&&m%256===0&&o?.(),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&&o?.();let g=u[m];yL(g.path,s.length,c,o)||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[0]?.id!==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&&o?.();let g=u[m],x=[];for(let y=0;y<g.path.entries.length;y+=1){y>0&&y%256===0&&o?.();let C=g.path.entries[y];C.type==="message"&&x.push(C)}JG(x,n,o)&&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.map(m=>m.id)]}),h}i(QG,"compactionPredecessorCandidates");function ZG(e,t,n,r,o){let s=QG(e,t,n,r,o),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)]})}i(ZG,"resolveCompactionPredecessor");function eV(e,t,n){if(t[0]?.id!==e.firstKeptEntryId)return[];let r=-1;for(let a=0;a<t.length;a+=1)if(a>0&&a%256===0&&n?.(),!Ah(t[a])){r=a;break}let o=r<0?t.length:r;if(o===0)return[];for(let a=o;a<t.length;a+=1)if(a>o&&a%256===0&&n?.(),Ah(t[a]))return[];let s=[];for(let a=0;a<o;a+=1)a>0&&a%256===0&&n?.(),s.push(t[a]);return s}i(eV,"leadingExplicitRetainedCopies");function yL(e,t,n,r){let o=-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<=o)return!1;o=c}return!0}i(yL,"isAppendOrderedPriorPath");function tV(e,t,n,r,o,s,a){let c=eV(e,t,a),l=c.at(-1),u=l===void 0?void 0:$h(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((o.get(g.id)??Number.MAX_SAFE_INTEGER)>=n)continue;let x=Mh(g.id,r,a),y=[];for(let E=0;E<x.entries.length;E+=1){E>0&&E%256===0&&a?.();let R=x.entries[E];R.type==="message"&&y.push(R)}if(!x.complete||!yL(x,n,o,a))continue;let C=Math.max(0,y.length-c.length),v=[];for(let E=C;E<y.length;E+=1)E>C&&E%256===0&&a?.(),v.push(y[E]);let _=v.length===c.length;for(let E=0;_&&E<v.length;E+=1){E>0&&E%256===0&&a?.();let R=v[E],I=c[E];_=sx(R,I)&&pd(R.message,I.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()]}i(tV,"explicitCompactionPredecessorCandidates");function nV(e,t){let n=new Map;for(let r=0;r<e.length;r+=1){r>0&&r%256===0&&t?.();let o=e[r];if(o.type==="message")for(let s of new Set([o.id,o.logicalId,o.sourceEntryId])){if(s===void 0)continue;let a=n.get(s)??[];a.push(o),n.set(s,a)}}return n}i(nV,"indexMessagesByIdentity");function rV(e,t,n){let r=[],o=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),gL(g)&&(r.push(g),o.set(g.id,g),g.type==="message"&&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=nV(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}:Mh(e.activeEntryId,o,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=[];for(let E=0;E<h.entries.length;E+=1){E>0&&E%256===0&&n?.();let R=h.entries[E];R.type==="message"&&g.push(R)}if(d.push({root:m,messages:g}),m.type!=="compaction"||m.reason==="rewind")break;let x=s.get(m.id)??0,y=l.get(m.id)??0,C=[],v=[];for(let E=y;E<x;E+=1)E>y&&E%256===0&&n?.(),v.push(e.entries[E]);let _=ZG(v,m,g,C,n);if(_===void 0){let E=tV(m,g,x,o,s,c,n);E.length===1?[_]=E:(t.push(...C),E.length>1&&t.push({code:"compaction_predecessor_ambiguous",message:`Compaction ${m.id} provenance identifies multiple predecessor copies.`,entryIds:[m.id,...E.map(R=>R.id)]}))}if(_===void 0)break;h=Mh(_.id,o,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()}i(rV,"conversationEpochs");function Li(e){return JSON.stringify([e.role,e.content,e._synthetic===!0,e._source,e._taskResult,e._taskResults])}i(Li,"messageFingerprint");function cx(e,t,n){if(e.length===0||t.length===0)return[];let r=e.slice(Math.max(0,e.length-t.length)),o=[...t,void 0,...r],s=new Array(o.length).fill(0);for(let l=1;l<o.length;l+=1){l%256===0&&n?.();let u=s[l-1];for(;u>0&&o[l]!==o[u];)u=s[u-1];o[l]===o[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}i(cx,"prefixSuffixOverlapLengths");function pd(e,t){return e===t||Li(e)===Li(t)}i(pd,"messagesEqual");function oV(e){return e.logicalId??e.id}i(oV,"logicalIdentity");function SL(e,t){return Lh(e,t).groups}i(SL,"explicitPriorGroups");function Lh(e,t){let n=$h(e),r=n.filter(s=>!t.has(s)),o=[...new Set(n.flatMap(s=>{let a=t.get(s);return a===void 0?[]:[a]}))];return{keys:n,groups:o,unresolvedKeys:r}}i(Lh,"explicitPriorGroupResolution");function fd(e,t,n){for(let r of[e.id,oV(e),e.sourceEntryId])r!==void 0&&!n.has(r)&&n.set(r,t)}i(fd,"registerEntryIdentities");function iV(e,t,n,r,o,s){let a=new Map,c=e.firstKeptEntryId;if(c===void 0||n.length===0||t.length===0)return a;if(t.findIndex(_=>_.id===c)!==0)return o.push({code:"compaction_boundary_invalid",message:`Compaction ${e.id} does not identify the first retained message.`,entryIds:[e.id,c]}),a;let u=cx(n.slice(-t.length).map(_=>Li(_.source.message)),t.map(_=>Li(_.message)),s),d=!1,p=t.flatMap((_,E)=>{let R=Lh(_,r);return R.keys.length===0?[]:[{index:E,resolution:R}]}),h=p[0],m=h===void 0?u:u.filter(_=>_<=h.index),g;if(h!==void 0){let{index:_,resolution:E}=h,R=E.groups.length===1?E.groups[0].index:-1,I=n.length+_-R;g=E.unresolvedKeys.length===0&&E.groups.length===1&&R>=0&&u.includes(I)&&I>_?I:void 0,g===void 0&&u.some(W=>W>_)&&(d=!0)}for(let _ of p.slice(1)){if(g===void 0||g<=_.index)continue;let{resolution:E}=_,R=E.groups.length===1?E.groups[0].index:-1;(E.unresolvedKeys.length>0||E.groups.length!==1||R<0||n.length+_.index-R!==g)&&(d=!0,g=void 0)}let y=[...m,...g===void 0?[]:[g]].map(_=>n.length-_),C=SL(t[0],r);if(y.length===0&&C.length===1&&!pd(C[0].source.message,t[0].message))return a;if(d&&o.push({code:"logical_identity_conflict",message:`Compaction ${e.id} contains provenance keys that name different history records.`,entryIds:[e.id,...t.map(_=>_.id)]}),y.length!==1)return o.push({code:"compaction_boundary_invalid",message:`Compaction ${e.id} has no unique retained suffix.`,entryIds:[e.id,...t.map(_=>_.id)]}),a;let v=y[0];for(let _=v;_<n.length;_+=1)a.set(t[_-v].id,n[_]);return a}i(iV,"provenLegacyOverlap");function sV(e,t,n,r){let[o=0]=cx(t.slice(-e.length).map(s=>Li(s.source.message)),e.map(s=>Li(s.message)),r);return e.slice(0,o).filter(s=>SL(s,n).length===0)}i(sV,"longestUnprovenOverlap");function aV(e,t,n,r,o){let s=t.get(e.id);if(s!==void 0){let d=Lh(e,r);if(d.unresolvedKeys.length>0||d.groups.length>1||d.groups.length===1&&d.groups[0]!==s){o.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:[e.id]};n.push(p),fd(e,p,r);return}else{s.auditEntryIds.push(e.id),fd(e,s,r);return}}let a=Lh(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&&pd(l.source.message,e.message)){l.auditEntryIds.push(e.id),fd(e,l,r);return}c.length>0&&(a.unresolvedKeys.length>0||c.length!==1||l===void 0||!pd(l.source.message,e.message))&&o.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:[e.id]};n.push(u),fd(e,u,r)}i(aV,"appendConversationMessage");function cV(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"}i(cV,"historyStatus");function wL(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 o of n.entryIds)r.entryIds.length<YG&&!r.entryIds.includes(o)&&r.evidenceBytes+Buffer.byteLength(o,"utf8")<=XG&&(r.entryIds.push(o),r.evidenceBytes+=Buffer.byteLength(o,"utf8"));t.set(n.code,r)}return[...t.entries()].map(([n,r])=>({code:n,message:r.message.length<=mL?r.message:`${r.message.slice(0,mL-1)}\u2026`,occurrenceCount:r.occurrenceCount,entryCount:r.entryCount,entryIds:r.entryIds}))}i(wL,"summarizeConversationIssues");function md(e,t,n){let r=[];n?.();let o=rV(e,r,n),s=r.some(u=>u.code==="active_entry_missing"||u.code==="compaction_boundary_invalid"||u.code==="compaction_predecessor_ambiguous"||u.code==="compaction_predecessor_missing"||u.code==="lineage_path_incomplete"),a=s?e.entries.filter(u=>u.type==="message").map((u,d)=>({index:d,source:u,auditEntryIds:[u.id]})):[],c=new Map;if(s)for(let u of a)fd(u.source,u,c);for(let u of o){if(s)break;let d=u.root,p=d.type==="compaction"&&d.reason!=="rewind"?iV(d,u.messages,a,c,r,n):new Map;if(d.type==="compaction"&&d.firstKeptEntryId===void 0){let h=sV(u.messages,a,c,n);h.length>0&&r.push({code:"legacy_overlap_ambiguous",message:`Legacy compaction ${d.id} overlaps earlier history without durable provenance.`,entryIds:h.map(m=>m.id)})}for(let h=0;h<u.messages.length;h+=1){h%256===0&&n?.();let m=u.messages[h];aV(m,p,a,c,r)}}let l=a.map(u=>({boundaryId:u.source.id,auditEntryIds:u.auditEntryIds,message:u.source.message}));return{sourceRevision:t,status:cV(r),entries:l,issues:wL(r)}}i(md,"buildSessionConversationHistory");function xL(e,t,n,r){r?.();let o={...e,activeEntryId:t},s=Ta(o,t,r);if(s.at(-1)?.id!==t)return null;let a=Ro(o,t,r);if(a===null)return null;let c=Ta(a,a.activeEntryId,r);if(c.length!==s.length)return null;let l=new Map(s.map((I,W)=>(W>0&&W%256===0&&r?.(),[I.id,c[W].id]))),u={...a,entries:a.entries.map((I,W)=>{W>0&&W%256===0&&r?.();let $=s[W];return I.type==="compaction"&&$?.type==="compaction"&&$.firstKeptEntryId!==void 0?{...I,firstKeptEntryId:l.get($.firstKeptEntryId)}:I})},d=s[0];if(d?.type!=="compaction"||d.reason==="rewind")return u;let p=md(o,n,r);if(p.status!=="resolved"||d.firstKeptEntryId===void 0)return null;let h=[],m=new Set,g=-1;for(let I=0;I<s.length;I+=1){I>0&&I%256===0&&r?.();let W=s[I];W.type==="message"&&(W.id===d.firstKeptEntryId&&(g=h.length),h.push(W),m.add(W.id))}if(g<0)return null;let x=new Map;for(let I=0;I<p.entries.length;I+=1){I>0&&I%256===0&&r?.();let W=p.entries[I].auditEntryIds;for(let $=0;$<W.length;$+=1){$>0&&$%256===0&&r?.();let D=W[$];x.set(D,I)}}let y=-1;for(let I=g;I<h.length;I+=1){I>g&&I%256===0&&r?.();let W=h[I],$=x.get(W.id);if($===void 0)return null;let D=!1,z=p.entries[$].auditEntryIds;for(let re=0;re<z.length;re+=1)if(re>0&&re%256===0&&r?.(),!m.has(z[re])){D=!0;break}if(!D)break;if(y>=0&&$!==y+1)return null;y=$}if(y<0)return null;let C=new Map;for(let I=0;I<e.entries.length;I+=1){I>0&&I%256===0&&r?.();let W=e.entries[I];C.set(W.id,W)}let v=null,_=[];for(let I=0;I<=y;I+=1){I>0&&I%256===0&&r?.();let W=p.entries[I],$;for(let q=0;q<W.auditEntryIds.length;q+=1){q>0&&q%256===0&&r?.();let S=W.auditEntryIds[q];if(m.has(S)){$=S;break}}let D=$??W.boundaryId,z=D===void 0?void 0:C.get(D);if(z?.type!=="message")return null;let re={...z,parentId:v};_.push(re),v=re.id}let E=_.at(-1);if(E===void 0)return null;let R=Ro({version:2,activeEntryId:E.id,entries:_},void 0,r);return R===null?null:{version:2,activeEntryId:u.activeEntryId,entries:[...R.entries,...u.entries]}}i(xL,"forkSessionConversationLineage");function TL(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:[]},o=[];for(let s=0;s<e.length;s+=1)s>0&&s%256===0&&n?.(),o.push({auditEntryIds:[],message:e[s]});return{sourceRevision:t,status:"partial",entries:o,issues:wL([r])}}i(TL,"buildLineageUnavailableConversationHistory");import{createHash as px,randomUUID as LL}from"node:crypto";import ln from"node:fs/promises";import St from"node:path";import{createHash as ux}from"node:crypto";var CL={main:0,islands:1,legacy_archive:2},Xc=64*1024;function lx(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(lx,"isRecord");function vL(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}i(vL,"normalizeRelativePath");function lV(e,t){return ux("sha256").update("kodax-session-source-file-v1\0").update(`${e}:${Buffer.byteLength(t,"utf8")}:${t}`).digest("hex")}i(lV,"initialFileChain");function uV(e,t){return ux("sha256").update("kodax-session-source-chunk-v1\0").update(e,"hex").update(t).digest("hex")}i(uV,"extendChunkChain");function IL(e,t){let n=e,r=0,o=0;for(;t.length-o>=Xc;)n=uV(n,t.subarray(o,o+Xc)),r+=1,o+=Xc;return{chain:n,count:r,tail:t.subarray(o)}}i(IL,"consumeCompleteChunks");function bL(e,t){return CL[e.kind]-CL[t.kind]||e.relativePath.localeCompare(t.relativePath)}i(bL,"compareFileStates");function RL(e){let t=e.map(n=>{let r=vL(n.relativePath),o=IL(lV(n.kind,r),n.bytes);return{kind:n.kind,relativePath:r,byteLength:n.bytes.length,chunkCount:o.count,chain:o.chain,tail:o.tail.toString("base64")}}).sort(bL);if(new Set(t.map(n=>n.kind)).size!==t.length)throw new Error("Duplicate Session source file kind");return{version:1,files:t}}i(RL,"createSessionSourceRevisionState");function Pi(e){let t=ux("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")}`}i(Pi,"createSessionSourceRevision");function kL(e,t,n){if(n.length===0)return e;if(n[0]!==10)return;let r=vL(t),o=e.files.findIndex(l=>l.kind==="main"&&l.relativePath===r);if(o<0)return;let s=e.files[o],a=IL(s.chain,Buffer.concat([Buffer.from(s.tail,"base64"),n])),c=[...e.files];return c[o]={...s,byteLength:s.byteLength+n.length,chunkCount:s.chunkCount+a.count,chain:a.chain,tail:a.tail.toString("base64")},{version:1,files:c}}i(kL,"extendSessionMainSourceRevisionState");function EL(e){if(!lx(e)||e.version!==1||!Array.isArray(e.files)||!e.files.some(r=>lx(r)&&r.kind==="main"))return!1;let t,n=new Set;for(let r of e.files){if(!lx(r))return!1;let o=r.kind;if(o!=="main"&&o!=="islands"&&o!=="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(o))return!1;let s=Buffer.from(r.tail,"base64");if(s.length>=Xc||s.toString("base64")!==r.tail||Number(r.chunkCount)!==Math.floor(Number(r.byteLength)/Xc)||s.length!==Number(r.byteLength)%Xc)return!1;let a=r;if(t!==void 0&&bL(t,a)>=0)return!1;n.add(o),t=a}return!0}i(EL,"isSessionSourceRevisionState");var PL=3,uo=24,$i=".conversation-cache.",dV=`${$i}json`,fV=1024*1024,pV=1024*1024,mV=1024*1024,hV=4*1024*1024,mx=128*1024,gV=7,mt=class extends Error{static{i(this,"ConversationPageCacheStaleError")}constructor(t){super(t),this.name="ConversationPageCacheStaleError"}},Ho=class extends Error{static{i(this,"ConversationPageCacheCapacityError")}constructor(){super("Conversation page capacity exceeded"),this.name="ConversationPageCacheCapacityError"}},Ds=class extends Error{static{i(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 hd(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(hd,"isRecord");function dx(e){if(e?.aborted)throw new mt("Conversation page read cancelled")}i(dx,"throwIfAborted");function hx(e){return e.slice(0,-St.extname(e).length)+dV}i(hx,"cacheManifestPath");function _L(e,t,n){return`${e.slice(0,-St.extname(e).length)}${$i}${t}.${n}`}i(_L,"cacheGenerationPath");function gx(e){let t=e.lastIndexOf($i);if(t<=0)return;let n=e.slice(t+$i.length);if(!(n!=="json"&&!(n.startsWith("json.")&&n.endsWith(".tmp"))&&!n.endsWith(".data")&&!n.endsWith(".index")))return e.slice(0,t)}i(gx,"cacheArtifactSessionId");function ML(e,t,n){let r=St.basename(e,St.extname(e));return St.basename(t)===t&&t.startsWith(`${r}${$i}`)&&t.endsWith(`.${n}`)}i(ML,"isSafeCacheFileName");function yV(e){if(!hd(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")}i(yV,"isConversationIssue");function SV(e){return hd(e)&&(e.surface===void 0||typeof e.surface=="string")&&(e.profileId===void 0||typeof e.profileId=="string")}i(SV,"isConversationPageCacheAdmission");function $L(e){let t=px("sha256").update("kodax-conversation-identity-filter-v1\0").update(e,"utf8").digest();return Array.from({length:gV},(n,r)=>t.readUInt32LE(r*4)%(mx*8))}i($L,"identityPositions");function OL(e,t){return $L(t).every(n=>(e[n>>>3]&1<<(n&7))!==0)}i(OL,"identityFilterContains");function NL(e,t){for(let n of $L(t))e[n>>>3]=e[n>>>3]|1<<(n&7)}i(NL,"addIdentityToFilter");function DL(e){return[e.id,e.logicalId,e.sourceEntryId].filter(t=>t!==void 0)}i(DL,"lineageEntryIdentities");function Oh(e){let t=Buffer.alloc(mx);for(let n of e.entries)for(let r of DL(n))NL(t,r);return t.toString("base64")}i(Oh,"createConversationPageIdentityFilter");function yx(e,t){let n=Buffer.from(e,"base64");for(let r of t)for(let o of DL(r))NL(n,o);return n.toString("base64")}i(yx,"extendConversationPageIdentityFilter");function BL(e){if(typeof e!="string")return!1;let t=Buffer.from(e,"base64");return t.length===mx&&t.toString("base64")===e}i(BL,"isIdentityFilter");function FL(e,t){return BL(e)?OL(Buffer.from(e,"base64"),t):!0}i(FL,"conversationPageIdentityFilterContains");function wV(e,t){if(!(!hd(e)||e.version!==PL)&&!(typeof e.sessionId!="string"||typeof e.generation!="string"||typeof e.sourceRevision!="string"||!EL(e.sourceRevisionState)||Pi(e.sourceRevisionState)!==e.sourceRevision||!BL(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(yV)||!Number.isSafeInteger(e.entryCount)||Number(e.entryCount)<0||!Number.isSafeInteger(e.lineageEntryCount)||Number(e.lineageEntryCount)<0||e.activeEntryId!==null&&typeof e.activeEntryId!="string"||!SV(e.admission)||!Number.isSafeInteger(e.chunkBytes)||Number(e.chunkBytes)<=0||Number(e.chunkBytes)>hV||typeof e.dataFile!="string"||!Number.isSafeInteger(e.dataBytes)||Number(e.dataBytes)<0||typeof e.indexFile!="string"||!Number.isSafeInteger(e.indexBytes)||Number(e.indexBytes)<0||!ML(t,e.dataFile,"data")||!ML(t,e.indexFile,"index")||e.dataFile!==`${e.sessionId}${$i}${e.generation}.data`||e.indexFile!==`${e.sessionId}${$i}${e.generation}.index`||e.sessionId!==St.basename(t,St.extname(t))||Number(e.indexBytes)!==Number(e.entryCount)*uo))return e}i(wV,"parseManifest");function WL(e){return{...e?.surface!==void 0?{surface:e.surface}:{},...e?.profileId!==void 0?{profileId:e.profileId}:{}}}i(WL,"cacheAdmission");async function Jc(e){let t;try{t=await ln.open(hx(e),"r");let n=(await t.stat()).size;if(n>pV)return;let r=JSON.parse((await qc(t,0,n)).toString("utf8"));return wV(r,e)}catch(n){if(n.code==="ENOENT"||n instanceof SyntaxError)return;throw n}finally{await t?.close()}}i(Jc,"readConversationPageCacheManifest");function Nh(e,t){let n=St.dirname(e);return{dataPath:St.join(n,t.dataFile),indexPath:St.join(n,t.indexFile)}}i(Nh,"cachePaths");async function Bs(e,t){let n=Nh(e,t),[r,o]=await Promise.all([ln.stat(n.dataPath),ln.stat(n.indexPath)]);if(r.size!==t.dataBytes||o.size!==t.indexBytes)throw new mt("Conversation page cache changed")}i(Bs,"assertCacheFilesStable");async function qc(e,t,n){let r=Buffer.allocUnsafe(n),o=0;for(;o<n;){let s=await e.read(r,o,n-o,t+o);if(s.bytesRead===0)throw new mt("Conversation page cache ended unexpectedly");o+=s.bytesRead}return r}i(qc,"readFully");function HL(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)}}i(HL,"decodeIndexRecord");function jL(e,t,n){let r=e.entryOffset+e.entryLength,o=e.descriptorOffset+e.descriptorLength,s=Math.ceil(e.entryLength/n),a=Math.min(mV,e.entryLength+s*70+256);if(!Number.isSafeInteger(r)||!Number.isSafeInteger(o)||r>t||o>t||e.descriptorOffset<r||e.descriptorLength>a)throw new mt("Conversation page index is out of bounds")}i(jL,"assertIndexRecordBounds");function UL(e){let t=Buffer.allocUnsafe(uo);return t.writeBigUInt64LE(BigInt(e.entryOffset),0),t.writeUInt32LE(e.entryLength,8),t.writeBigUInt64LE(BigInt(e.descriptorOffset),12),t.writeUInt32LE(e.descriptorLength,20),t}i(UL,"encodeIndexRecord");function xV(e){if(!hd(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}:{}}}i(xV,"parseDescriptor");async function GL(e,t){let n=await qc(e,t.descriptorOffset,t.descriptorLength);try{return xV(JSON.parse(n.toString("utf8")))}catch(r){throw r instanceof mt?r:new mt("Conversation page descriptor is corrupt")}}i(GL,"readDescriptor");function VL(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(px("sha256").update(e.subarray(r,Math.min(e.length,r+t))).digest("hex"));return n}i(VL,"entryChunkDigests");function TV(e,t,n){let r=VL(e,n);if(r.length!==t.chunkDigests.length||r.some((o,s)=>o!==t.chunkDigests[s]))throw new mt("Conversation page cache entry is corrupt")}i(TV,"assertEntryIntegrity");function KL(e){if(e instanceof mt||e instanceof Ho)return e;let t=new Set(["EACCES","EBADF","EBUSY","EIO","EISDIR","EMFILE","ENFILE","ENOENT","ENOTDIR","EPERM","ESTALE"]);return e instanceof SyntaxError||hd(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))}i(KL,"normalizeConversationPageCacheReadError");async function Sx(e,t,n){let r=await ln.open(e,n);try{let o=await ln.open(t,n);return{data:r,index:o}}catch(o){throw await r.close(),o}}i(Sx,"openCachePair");async function zL(e,t,n){try{return await CV(e,t,n)}catch(r){throw KL(r)}}i(zL,"readConversationPageCache");async function CV(e,t,n){dx(n.signal);let r=await Jc(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 Bs(e,r);let o=Math.min(n.end??r.entryCount,r.entryCount),s=Math.max(0,o-n.limit),a=Nh(e,r),{data:c,index:l}=await Sx(a.dataPath,a.indexPath,"r");try{let u=await qc(l,s*uo,(o-s)*uo),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 Ho;for(let m=o-s-1;m>=0;m-=1){dx(n.signal);let g=s+m,x=HL(u,m*uo);jL(x,r.dataBytes,r.chunkBytes);let y=await GL(c,x),C=x.entryLength<=n.maxInlineEntryBytes?await qc(c,x.entryOffset,x.entryLength):void 0;C!==void 0&&TV(C,y,r.chunkBytes);let v={index:g,...y.boundaryId!==void 0?{boundaryId:y.boundaryId}:{},byteLength:x.entryLength,oversized:x.entryLength>n.maxInlineEntryBytes,...C!==void 0?{entry:JSON.parse(C.toString("utf8"))}:{}},_=Buffer.byteLength(JSON.stringify(v),"utf8");if(p+_>n.maxPageBytes){if(d.length===0)throw new Ho;break}d.unshift(v),p+=_}let h=d[0]?.index??o;return await Bs(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()])}}i(CV,"readConversationPageCacheInternal");async function YL(e,t,n){try{return await vV(e,t,n)}catch(r){throw KL(r)}}i(YL,"readConversationPageCacheChunk");async function vV(e,t,n){dx(n.signal);let r=await Jc(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 Bs(e,r);let o=Nh(e,r),{data:s,index:a}=await Sx(o.dataPath,o.indexPath,"r");try{let c=await qc(a,n.entryIndex*uo,uo),l=HL(c,0);jL(l,r.dataBytes,r.chunkBytes);let u=await GL(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 qc(s,l.entryOffset+n.offset,d-n.offset);if(px("sha256").update(p).digest("hex")!==u.chunkDigests[n.offset/r.chunkBytes])throw new mt("Conversation page cache entry is corrupt");return await Bs(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()])}}i(vV,"readConversationPageCacheChunkInternal");async function fx(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}}i(fx,"writeFully");function XL(e,t,n){return Buffer.from(JSON.stringify({...e.boundaryId!==void 0?{boundaryId:e.boundaryId}:{},chunkDigests:VL(t,n)}),"utf8")}i(XL,"createDescriptor");async function IV(e,t,n,r){let{data:o,index:s}=await Sx(e,t,"wx"),a=0,c=0,l=[],u=[],d=0,p=i(async()=>{d!==0&&(await Promise.all([fx(o,Buffer.concat(l)),fx(s,Buffer.concat(u))]),l=[],u=[],d=0)},"flush");try{for(let h of n){let m=Buffer.from(JSON.stringify(h),"utf8"),g=XL(h,m,r);l.push(m,g),u.push(UL({entryOffset:a,entryLength:m.length,descriptorOffset:a+m.length,descriptorLength:g.length})),a+=m.length+g.length,c+=uo,d+=m.length+g.length+uo,d>=fV&&await p()}return await p(),await Promise.all([o.sync(),s.sync()]),{dataBytes:a,indexBytes:c}}finally{await Promise.all([o.close(),s.close()])}}i(IV,"writeCacheEntries");async function wx(e,t){let n=hx(e),r=`${n}.${process.pid}.${LL()}.tmp`;await ln.writeFile(r,JSON.stringify(t),{encoding:"utf8",flag:"wx"});try{await ln.rename(r,n)}finally{await ln.rm(r,{force:!0})}}i(wx,"replaceManifest");async function bV(e,t){let n=St.dirname(e),r=St.basename(e,St.extname(e)),s=`${`${r}${$i}`}${t}.`,a=await ln.readdir(n);await Promise.all(a.filter(c=>gx(c)===r&&!c.startsWith(s)&&c!==St.basename(hx(e))).map(c=>ln.rm(St.join(n,c),{force:!0})))}i(bV,"removeGenerationFiles");async function xx(e,t,n,r,o,s,a){if(Pi(n)!==r.sourceRevision)throw new mt("Conversation source revision state is inconsistent");let c=LL(),l=_L(e,c,"data"),u=_L(e,c,"index");try{let d=await IV(l,u,r.entries,a),p=Os(r.entries);await wx(e,{version:PL,sessionId:St.basename(e,St.extname(e)),generation:c,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:Oh(o),boundaryRevision:t,revision:Ns(r,p),entryChain:p,status:r.status,issues:r.issues,entryCount:r.entries.length,lineageEntryCount:o.entries.length,activeEntryId:o.activeEntryId,admission:WL(s),chunkBytes:a,dataFile:St.basename(l),dataBytes:d.dataBytes,indexFile:St.basename(u),indexBytes:d.indexBytes})}catch(d){throw await Promise.all([ln.rm(l,{force:!0}),ln.rm(u,{force:!0})]),d}try{await bV(e,c)}catch(d){process.emitWarning(`Unable to remove an old Conversation page cache generation: ${String(d)}`,{code:"KODAX_CONVERSATION_PAGE_CACHE_GC_FAILED"})}}i(xx,"writeConversationPageCache");async function qL(e,t,n,r,o,s){if(Pi(n)!==r.sourceRevision)return!1;let a=await Jc(e);if(a===void 0||a.entryCount!==r.entries.length)return!1;await Bs(e,a);let c=Os(r.entries);if(c!==a.entryChain||r.status!==a.status||JSON.stringify(r.issues)!==JSON.stringify(a.issues))return!1;let l=Ns(r,c);return await wx(e,{...a,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:Oh(o),boundaryRevision:t,revision:l,entryChain:c,status:r.status,issues:r.issues,lineageEntryCount:o.entries.length,activeEntryId:o.activeEntryId,admission:WL(s)}),await Bs(e,a),!0}i(qL,"refreshConversationPageCache");async function AL(e,t){if(t.length===0)return;let n=await ln.open(e,"a");try{await fx(n,Buffer.concat(t)),await n.sync()}finally{await n.close()}}i(AL,"appendBuffers");async function JL(e,t,n,r,o,s,a){let c=Pi(r),l=Nh(e,t);await Bs(e,t);let u=[],d=[],p=t.dataBytes;for(let g of o){let x=Buffer.from(JSON.stringify(g),"utf8"),y=XL(g,x,t.chunkBytes);u.push(x,y),d.push(UL({entryOffset:p,entryLength:x.length,descriptorOffset:p+x.length,descriptorLength:y.length})),p+=x.length+y.length}await AL(l.dataPath,u),await AL(l.indexPath,d);let h=Yc(t.entryChain,o),m={sourceRevision:c,status:t.status,issues:t.issues,entries:[]};await wx(e,{...t,sourceRevision:c,sourceRevisionState:r,identityFilter:yx(t.identityFilter,s),boundaryRevision:n,revision:Ns(m,h),entryChain:h,entryCount:t.entryCount+o.length,lineageEntryCount:t.lineageEntryCount+s.length,activeEntryId:a,dataBytes:p,indexBytes:t.indexBytes+o.length*uo})}i(JL,"appendConversationPageCache");async function hr(e){let t=St.dirname(e),n=St.basename(e,St.extname(e)),r;try{r=await ln.readdir(t)}catch(o){if(o.code==="ENOENT")return;throw o}await Promise.all(r.filter(o=>gx(o)===n).map(o=>ln.rm(St.join(t,o),{force:!0})))}i(hr,"removeConversationPageCache");async function Tx(e){let t;try{t=await ln.readdir(e,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;throw new Ds(e,n)}try{await Promise.all(t.filter(n=>!n.isDirectory()&&gx(n.name)!==void 0).map(n=>ln.rm(St.join(e,n.name),{force:!0})))}catch(n){throw new Ds(e,n)}}i(Tx,"removeConversationPageCachesInDirectory");function QL(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 o=Buffer.from(e.identityFilter,"base64"),s=new Set,a=t,c=[];for(let l of n){if(l.type!=="message"||l.parentId!==a||l.logicalId!==void 0&&l.logicalId!==l.id||l.sourceEntryId!==void 0||OL(o,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}i(QL,"canAppendConversationPageCache");import Le from"fs/promises";import at from"fs";import K from"path";import{createHash as Di,randomUUID as Dh}from"node:crypto";import uP from"chalk";import Et from"fs/promises";import tP from"fs";import Bt from"path";var nP=3,RV=300*1e3,ZL=65536,Cx=i(e=>Bt.join(e,".layout.json"),"layoutMarkerPath"),Ix=i(e=>Bt.join(e,".migration-lock"),"lockDirPath"),rP=i(e=>Bt.join(Ix(e),"owner.json"),"ownerPath"),vx=i(e=>Bt.join(e,".migration-journal.jsonl"),"journalPath"),bx=i(e=>Bt.join(Bt.dirname(e),"sessions-archive"),"sessionsArchiveDir");function Rx(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}i(Rx,"isSessionFile");function oP(e){return e.endsWith(".archive.jsonl")||e.endsWith(".islands.jsonl")?e.slice(0,-14):null}i(oP,"sidecarId");async function kV(e){let t;try{t=await Et.open(e,"r");let n=Buffer.allocUnsafe(ZL),{bytesRead:r}=await t.read(n,0,ZL,0);if(r===0)return null;let o=n.toString("utf8",0,r),s=o.indexOf(`
|
|
291
|
+
`),a=(s>=0?o.slice(0,s):o).trim();if(!a)return null;let c=JSON.parse(a);if(c&&typeof c=="object"&&c._type==="meta"){let l=c;return{gitRoot:typeof l.gitRoot=="string"?l.gitRoot:void 0,runtimeInfo:l.runtimeInfo}}return null}catch{return null}finally{await t?.close()}}i(kV,"readMeta");async function EV(e){let t=await kV(e);return t?oi({gitRoot:t.gitRoot,runtimeInfo:t.runtimeInfo}).key:Yg}i(EV,"destKeyFor");async function _V(e){let t=[],n=i(async(r,o)=>{let s=[];try{s=await Et.readdir(r,{withFileTypes:!0})}catch{return}for(let a of s)!a.isFile()||a.name.startsWith(".")||(Rx(a.name)||o&&oP(a.name)!==null)&&t.push(Bt.join(r,a.name))},"pushDir");return await n(e,!0),await n(bx(e),!0),t}i(_V,"collectFlatSources");async function MV(e){let t=await _V(e),n=t.filter(s=>Rx(Bt.basename(s))),r=new Set(n.map(s=>Bt.basename(s,".jsonl"))),o=[];for(let s of n){let a=Bt.basename(s,".jsonl"),c=await EV(s);o.push({from:s,to:Bt.join(e,c,`${a}.jsonl`),reason:`session\u2192${c}`});for(let l of[".archive.jsonl",".islands.jsonl"]){let u=Bt.join(Bt.dirname(s),`${a}${l}`);tP.existsSync(u)&&o.push({from:u,to:Bt.join(e,c,`${a}.islands.jsonl`),reason:"sidecar\u2192islands"})}}for(let s of t){let a=oP(Bt.basename(s));a===null||r.has(a)||o.push({from:s,to:Bt.join(e,Yg,"orphan-islands",`${a}.islands.jsonl`),reason:"orphan-sidecar\u2192_unknown"})}return o}i(MV,"planMigration");async function AV(e){try{let t=JSON.parse(await Et.readFile(Cx(e),"utf8"));return t!==null&&typeof t=="object"&&t.version===nP}catch{return!1}}i(AV,"isMigrated");async function eP(e){await Tx(e),await Tx(bx(e))}i(eP,"removeLegacyConversationCaches");async function LV(e){try{let t=JSON.parse(await Et.readFile(rP(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>RV}catch{return!0}}i(LV,"lockIsStale");async function PV(e){let t=Ix(e);for(let n=0;n<2;n+=1)try{return await Et.mkdir(t),await Et.writeFile(rP(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 LV(e)){await Et.rm(t,{recursive:!0,force:!0}).catch(()=>{});continue}return!1}return!1}i(PV,"acquireLock");async function $V(e){await Et.rm(Ix(e),{recursive:!0,force:!0}).catch(()=>{})}i($V,"releaseLock");async function OV(e){try{if((await Et.readdir(Bt.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}}i(OV,"assertNoActiveSessionWriters");async function NV(e){let t=new Set;try{let n=await Et.readFile(vx(e),"utf8");for(let r of n.split(`
|
|
292
|
+
`))if(r.trim())try{let o=JSON.parse(r);o.done&&typeof o.from=="string"&&t.add(o.from)}catch{}}catch{}return t}i(NV,"readJournalDone");async function DV(e){if(await Et.mkdir(Bt.dirname(e.to),{recursive:!0}),tP.existsSync(e.to)){await Et.unlink(e.from).catch(()=>{});return}try{await Et.rename(e.from,e.to)}catch(t){let n=t.code;if(n==="EXDEV")await Et.copyFile(e.from,e.to),await Et.unlink(e.from).catch(()=>{});else if(n!=="ENOENT")throw t}}i(DV,"executeMove");async function BV(e){await Et.mkdir(e,{recursive:!0});let t=`${Cx(e)}.${process.pid}.tmp`,n=JSON.stringify({version:nP,migratedAt:new Date().toISOString(),from:"flat-v1"});await Et.writeFile(t,n+`
|
|
293
|
+
`,"utf8"),await Et.rename(t,Cx(e))}i(BV,"writeMarker");async function FV(e){let t=bx(e);try{(await Et.readdir(t)).length===0&&await Et.rmdir(t).catch(()=>{})}catch{}}i(FV,"retireSessionsArchive");async function WV(e){if(!await PV(e))return{moved:0,planned:0};try{await OV(e),await eP(e);let t=await MV(e),n=await NV(e),r=await Et.open(vx(e),"a"),o=0;try{for(let s of t){if(Rx(Bt.basename(s.from)))try{await hr(s.to)}catch(a){throw new Ds(Bt.dirname(s.to),a)}n.has(s.from)||(await DV(s),await r.write(JSON.stringify({from:s.from,to:s.to,done:!0})+`
|
|
294
|
+
`),o+=1)}}finally{await r.close()}return await FV(e),await eP(e),await BV(e),await Et.rm(vx(e),{force:!0}).catch(()=>{}),{moved:o,planned:t.length}}finally{await $V(e)}}i(WV,"runMigration");async function Fs(e){try{if(await AV(e))return;await WV(e)}catch(t){if(t instanceof Ds)throw t}}i(Fs,"ensureLayoutMigrated");var HV=new Set(["user","assistant","system"]),jV=new Set(["user","assistant","system","thinking","error","event","info","hint"]),UV=new Set(["success","error","cancelled","awaiting_approval"]);function tt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(tt,"isRecord");function jo(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(jo);if(!tt(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(jo)}i(jo,"isKodaXJsonValue");function sP(e){return tt(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||jo(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}i(sP,"isKodaXExtensionSessionRecord");function aP(e){return tt(e)?Object.values(e).every(t=>tt(t)?Object.values(t).every(jo):!1):!1}i(aP,"isKodaXExtensionSessionState");function GV(e){if(!tt(e)||typeof e.type!="string")return!1;switch(e.type){case"text":return typeof e.text=="string";case"tool_use":return typeof e.id=="string"&&typeof e.name=="string"&&tt(e.input);case"tool_result":return typeof e.tool_use_id=="string"&&(typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(VV))&&(e.is_error===void 0||typeof e.is_error=="boolean")&&(e.metadata===void 0||tt(e.metadata));case"image":return typeof e.path=="string"&&(e.mediaType===void 0||typeof e.mediaType=="string");case"thinking":return typeof e.thinking=="string"&&(e.signature===void 0||typeof e.signature=="string");case"redacted_thinking":return typeof e.data=="string";case"cache-boundary":return e.hint===void 0||e.hint==="system"||e.hint==="tools"||e.hint==="role-prompt";default:return!1}}i(GV,"isKodaXContentBlock");function VV(e){return tt(e)?e.type==="text"?typeof e.text=="string":e.type==="image"&&typeof e.path=="string"&&(e.mediaType===void 0||typeof e.mediaType=="string"):!1}i(VV,"isKodaXToolResultContentItem");function kx(e){return!tt(e)||typeof e.role!="string"||!HV.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(GV)}i(kx,"isKodaXMessage");function cP(e){return tt(e)?(e.lastError===void 0||typeof e.lastError=="string")&&(e.lastErrorTime===void 0||typeof e.lastErrorTime=="number")&&(e.consecutiveErrors===void 0||typeof e.consecutiveErrors=="number"):!1}i(cP,"isSessionErrorMetadata");function KV(e){return tt(e)&&Object.values(e).every(jo)}i(KV,"isKodaXSessionUiToolInput");function zV(e){return tt(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.status=="string"&&UV.has(e.status)&&(e.input===void 0||KV(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")}i(zV,"isKodaXSessionUiToolCall");function iP(e){return e===void 0||typeof e=="number"&&Number.isFinite(e)&&e>=0}i(iP,"isOptionalHistoryTimestamp");function lP(e){return!tt(e)||typeof e.type!="string"?!1:e.type==="tool_group"?iP(e.timestamp)&&Array.isArray(e.tools)&&e.tools.length>0&&e.tools.every(zV):jV.has(e.type)&&typeof e.text=="string"&&iP(e.timestamp)&&(e.icon===void 0||typeof e.icon=="string")&&(e.compactText===void 0||typeof e.compactText=="string")}i(lP,"isKodaXSessionUiHistoryItem");var YV=[10,25,50,100],Ex=6e4,XV=15e3,$x=".location-topology",qV=".location-topology.lock",Wh=".location-index",JV=64*1024,dP=256*1024,LP=256,_x=0;function PP(e){let t=e??XV;if(!Number.isSafeInteger(t)||t<=0)throw new Error("Session read timeoutMs must be a positive safe integer");return t}i(PP,"normalizeSessionReadTimeout");function Jn(e){if(e?.aborted)throw new Ce("read_cancelled","Session history read cancelled")}i(Jn,"throwIfSessionReadAborted");function jh(e,t){Jn(e.signal);let n=PP(e.timeoutMs);if(!(Date.now()-t<n))throw new Ce("read_timeout",`Session history read timed out after ${n}ms`)}i(jh,"assertSessionReadBudget");async function Qc(e,t){let n=PP(t.timeoutMs),r,o;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new Ce("read_timeout",`Session history read timed out after ${n}ms`)),n),t.signal!==void 0&&(o=i(()=>a(new Ce("read_cancelled","Session history read cancelled")),"abort"),t.signal.addEventListener("abort",o,{once:!0}))})])}finally{r!==void 0&&clearTimeout(r),o!==void 0&&t.signal?.removeEventListener("abort",o)}}i(Qc,"raceSessionRead");async function Mx(e,t){for(let n=0;;n+=1)try{await Le.rename(e,t);return}catch(r){let o=YV[n];if(o===void 0||!QV(r))throw r;await new Promise(s=>setTimeout(s,o))}}i(Mx,"replaceSessionFile");function QV(e){if(!(e instanceof Error)||!("code"in e))return!1;let t=e.code;return t==="EPERM"||t==="EBUSY"||t==="EACCES"}i(QV,"isTransientRenameError");function ZV(e){return!tt(e)||e._type!=="meta_update"?!1:(e.title===void 0||typeof e.title=="string")&&(e.tag===void 0||typeof e.tag=="string")&&(e.activeEntryId===void 0||typeof e.activeEntryId=="string"||e.activeEntryId===null)&&(e.activeMessageCount===void 0||typeof e.activeMessageCount=="number")&&(e.uiHistory===void 0||Array.isArray(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")&&(e.lineageIdentityFilterHash===void 0||typeof e.lineageIdentityFilterHash=="string"&&/^[a-f0-9]{64}$/.test(e.lineageIdentityFilterHash))}i(ZV,"isPersistedMetaUpdateLine");function $P(e){if(!Array.isArray(e))return;let t=e.filter(lP).map(n=>n.type==="tool_group"?{...n,tools:n.tools.map(r=>({...r}))}:{...n});return t.length>0?t:void 0}i($P,"normalizeKodaXSessionUiHistory");var Ce=class extends Error{static{i(this,"SessionReadError")}code;constructor(t,n){super(n),this.code=t,this.name="SessionReadError"}};function fP(e,t){let n=Ta(e,t);if(!(n.at(-1)?.id!==t||n[0]?.parentId!==null))return n.every((r,o)=>o===0||r.parentId===n[o-1].id)?n:void 0}i(fP,"completeLineageBoundaryPath");function wd(e,t){let n=Di("sha256").update(t,"utf8").digest("hex");return K.join(e,".write-locks",`${n}.lock`)}i(wd,"sessionWriteLockPath");function Hs(e){return K.join(e,qV)}i(Hs,"sessionLocationTopologyLockPath");function OP(e,t){let n=Di("sha256").update(t,"utf8").digest("hex");return K.join(e,Wh,`${n}.json`)}i(OP,"sessionLocationHintPath");function NP(e,t){return`${wd(e,t)}.queue`}i(NP,"sessionWriteQueuePath");function Fx(e){return K.join(e,".write-locks")}i(Fx,"sessionGlobalWriteBoundaryPath");function pP(e){let t=Fx(e);try{let n=Di("sha256"),r=at.readdirSync(t,{withFileTypes:!0}).filter(o=>o.isDirectory()&&o.name.endsWith(".lock.queue")).sort((o,s)=>o.name.localeCompare(s.name));for(let o of r){let s=js(at.statSync(K.join(t,o.name),{bigint:!0}));n.update(o.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(`
|
|
295
|
+
`)}return n.digest("hex")}catch(n){return n.code==="ENOENT"?Di("sha256").digest("hex"):void 0}}i(pP,"sessionWriterTopologyDigestSync");function fo(e,t){let n=[wd(e,t),Hs(e),K.join(e,".migration-lock"),K.join(e,".migration-journal.jsonl")].find(r=>at.existsSync(r));if(n!==void 0)throw new Ce("data_changed",`Session data changed during the read boundary: ${K.basename(n)}`)}i(fo,"assertStableSessionReadBoundary");function eK(e){let t=[K.join(e,".migration-lock"),K.join(e,".migration-journal.jsonl")].find(n=>at.existsSync(n));if(t!==void 0)throw new Ce("data_changed",`Session layout migration is active: ${K.basename(t)}`)}i(eK,"assertSessionMigrationInactive");function mP(e){try{return at.statSync(e).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}i(mP,"inspectSessionCandidate");async function Ax(e){try{return(await Le.stat(e)).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}i(Ax,"inspectSessionCandidateAsync");function Hh(e,t){return new Ce("data_changed",`Session candidate could not be verified for ${e}: ${K.basename(t)}`)}i(Hh,"inaccessibleSessionCandidate");async function hP(e,t){let n=[],r=K.join(e,`${t}.jsonl`),o=mP(r);if(o==="present"&&n.push(r),o==="unverifiable")throw Hh(t,r);let s=[];try{s=await Le.readdir(e,{withFileTypes:!0})}catch(a){if(a.code!=="ENOENT")throw Hh(t,e)}for(let a of s){if(!a.isDirectory()||a.name.startsWith("."))continue;let c=K.join(e,a.name);for(let l of[K.join(c,`${t}.jsonl`),K.join(c,"archived",`${t}.jsonl`)]){let u=mP(l);if(u==="present"&&n.push(l),u==="unverifiable")throw Hh(t,l)}}return n.sort()}i(hP,"findStableSessionCandidates");async function tK(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}),o=await n.readFile(),s=await n.stat({bigint:!0}),a=js(r),c=js(s);if(!Nr(a,c)||BigInt(o.length)!==c.size)throw new Ce("data_changed",`Session file changed while reading: ${K.basename(t)}`);return{file:{kind:e,path:t,bytes:o,modifiedAt:new Date(Number(c.mtimeNs/1000000n)).toISOString()},identity:c}}catch(r){throw r.code==="ENOENT"?new Ce("data_changed",`Session file changed while reading: ${K.basename(t)}`):r}finally{await n.close()}}i(tK,"readStableBundleFile");function js(e){return{dev:e.dev,ino:e.ino,size:e.size,mtimeNs:e.mtimeNs,ctimeNs:e.ctimeNs}}i(js,"stableFileIdentity");function gP(e){return{dev:e.dev.toString(),ino:e.ino.toString(),size:e.size.toString(),mtimeNs:e.mtimeNs.toString(),ctimeNs:e.ctimeNs.toString()}}i(gP,"persistStableFileIdentity");function yP(e){if(!(!tt(e)||!["dev","ino","size","mtimeNs","ctimeNs"].every(n=>typeof e[n]=="string"&&/^\d+$/.test(e[n]))))return{dev:BigInt(e.dev),ino:BigInt(e.ino),size:BigInt(e.size),mtimeNs:BigInt(e.mtimeNs),ctimeNs:BigInt(e.ctimeNs)}}i(yP,"parsePersistedStableFileIdentity");function Nr(e,t){return e.dev===t.dev&&e.ino===t.ino&&e.size===t.size&&e.mtimeNs===t.mtimeNs&&e.ctimeNs===t.ctimeNs}i(Nr,"sameStableFileIdentity");function Ox(e,t){return e===null||t===null?e===t:Nr(e,t)}i(Ox,"sameOptionalStableFileIdentity");function Oi(e,t){return Nr(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&Ox(e.writerIdentity,t.writerIdentity)&&Ox(e.activeWriterIdentity,t.activeWriterIdentity)}i(Oi,"sameSessionTopologyIdentity");function nK(e,t){return Nr(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&Ox(e.writerIdentity,t.writerIdentity)}i(nK,"sameSessionTopologyWithoutActiveWriter");function rK(e,t){return e===null||t===null?e===t:Oi(e,t)}i(rK,"sameOptionalSessionTopologyIdentity");function oK(e,t,n){if(K.isAbsolute(n))return;let o=n.replace(/\\/g,"/").split("/"),s=`${t}.jsonl`;if(!(o.length===1&&o[0]===s||o.length===2&&!o[0].startsWith(".")&&o[1]===s||o.length===3&&!o[0].startsWith(".")&&o[1]==="archived"&&o[2]===s)||o.some(u=>u===".."||u===""))return;let c=K.resolve(e),l=K.resolve(e,...o);return l.startsWith(`${c}${K.sep}`)?l:void 0}i(oK,"resolvePersistedSessionLocationPath");async function iK(e,t){let n;try{n=await Le.open(OP(e,t),"r");let r=(await n.stat()).size;if(r>JV)return;let o=Buffer.allocUnsafe(r),s=0;for(;s<r;){let{bytesRead:d}=await n.read(o,s,r-s,s);if(d===0)return;s+=d}let a=JSON.parse(o.toString("utf8"));if(!tt(a)||a.version!==1||a.id!==t||!Array.isArray(a.filePaths)||a.filePaths.length===0||a.filePaths.length>16||!tt(a.topology)||a.topology.epoch!==null&&typeof a.topology.epoch!="string")return;let c=yP(a.topology.root),l=a.topology.writerIdentity===null?null:yP(a.topology.writerIdentity);if(c===void 0||l===void 0)return;let u=a.filePaths.flatMap(d=>{if(typeof d!="string")return[];let p=oK(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()}}i(iK,"readSessionLocationHint");async function Bh(e,t,n="session"){let r=await Qn(e);if(r===null)return null;let o=await Qn(n==="session"?NP(e,t):Fx(e)),s=n==="session"?await Qn(wd(e,t)):null;try{return{root:r,epoch:(await Le.readFile(K.join(e,$x),"utf8")).trim(),writerScope:n,writerIdentity:o,activeWriterIdentity:s}}catch(a){if(a.code==="ENOENT")return{root:r,epoch:null,writerScope:n,writerIdentity:o,activeWriterIdentity:s};throw a}}i(Bh,"statSessionTopologyIdentity");async function Qn(e){try{return js(await Le.stat(e,{bigint:!0}))}catch(t){if(t.code==="ENOENT")return null;throw t}}i(Qn,"statStableFileIdentity");function DP(e,t){return RL(t.map(n=>({kind:n.kind,relativePath:K.relative(e,n.path).replace(/\\/g,"/"),bytes:n.bytes})))}i(DP,"createStableBundleSourceRevisionState");function Wx(e,t){let n=Di("sha256");n.update("kodax-session-bundle-boundary-v1\0");for(let r of t){if(r===null)continue;let o=K.relative(e,r.file.path).replace(/\\/g,"/"),s=r.identity;n.update(`${r.file.kind}:${o}:`),n.update([s.dev,s.ino,s.size,s.mtimeNs,s.ctimeNs].map(a=>a.toString()).join(":"))}return`sha256:${n.digest("hex")}`}i(Wx,"createStableBundleBoundaryRevision");async function Nx(e,t,n,r,o=!1,s){Jn(r),o||fo(e,t);let a=K.dirname(n),c=[{kind:"main",filePath:n},{kind:"islands",filePath:K.join(a,`${t}.islands.jsonl`)},{kind:"legacy_archive",filePath:K.join(a,`${t}.archive.jsonl`)}],l=[];for(let p of c)if(Jn(r),p.kind==="main"&&s!==void 0){let h=await Qn(p.filePath);if(h===null||h.size!==BigInt(s.length))throw new Ce("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 tK(p.kind,p.filePath));if(l[0]===null)throw new Ce("data_changed","Session main file moved during the read boundary");o||fo(e,t);for(let p=0;p<c.length;p+=1){Jn(r);let h=await Qn(c[p].filePath),m=l[p];if(m===null&&h!==null||m!==null&&(h===null||!Nr(m.identity,h)))throw new Ce("data_changed",`Session file changed during the read boundary: ${K.basename(c[p].filePath)}`)}o||fo(e,t);let u=l.flatMap(p=>p===null?[]:[p.file]),d=DP(e,u);return{candidates:[n],files:u,sourceRevision:Pi(d),sourceRevisionState:d,boundaryRevision:Wx(e,l)}}i(Nx,"readStableSessionBundleAtPath");async function Ws(e,t,n,r=!1){return(await yd(e,t,n,r)).revision}i(Ws,"readStableSessionBundleBoundaryAtPath");async function yd(e,t,n,r=!1){r||fo(e,t);let o=K.dirname(n),s=[{kind:"main",filePath:n},{kind:"islands",filePath:K.join(o,`${t}.islands.jsonl`)},{kind:"legacy_archive",filePath:K.join(o,`${t}.archive.jsonl`)}],a=[];for(let c of s){let l=await Qn(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 Ce("data_changed","Session main file moved during the read boundary");r||fo(e,t);for(let c=0;c<s.length;c+=1){let l=await Qn(s[c].filePath),u=a[c];if(u===null&&l!==null||u!==null&&(l===null||!Nr(u.identity,l)))throw new Ce("data_changed",`Session file changed during the read boundary: ${K.basename(s[c].filePath)}`)}return r||fo(e,t),{revision:Wx(e,a),identities:a.map(c=>c?.identity??null)}}i(yd,"readStableSessionBundleBoundarySnapshotAtPath");function sK(e,t,n){let r=e.identities[0],o=t.identities[0];return r==null||o===null||o===void 0||r.dev!==o.dev||r.ino!==o.ino||o.size!==r.size+BigInt(n)?!1:[1,2].every(s=>{let a=e.identities[s]??null,c=t.identities[s]??null;return a===null?c===null:c!==null&&Nr(a,c)})}i(sK,"isExpectedAppendBoundaryTransition");async function BP(e,t,n){let r=K.resolve(e);Jn(n),fo(r,t);let o=await hP(r,t);if(o.length!==1){let c=DP(r,[]);return{candidates:o,files:[],sourceRevision:Pi(c),sourceRevisionState:c,boundaryRevision:Wx(r,[])}}let s=await Nx(r,t,o[0],n);Jn(n);let a=await hP(r,t);if(a.length!==o.length||a.some((c,l)=>c!==o[l]))throw new Ce("data_changed","Session location changed during the read boundary");return s}i(BP,"readStableSessionBundleFiles");function qn(e,t,n){gt({source:"repl:session-storage",level:e,message:t,...n!==void 0?{detail:n}:{}})}i(qn,"reportStorageDiagnostic");function SP(e,t){t!==0&&qn("warn",`Skipped ${t} malformed session record(s) from ${K.basename(e)}.`)}i(SP,"warnMalformedSessionData");function Uo(e){qn("info",e)}i(Uo,"writeStorageNotice");function wP(e){return{_type:"extension_record",...e}}i(wP,"toExtensionRecordLine");function xP(e){return{_type:"lineage_entry",entry:e}}i(xP,"toLineageEntryLine");function TP(e){return{_type:"artifact_ledger_entry",entry:e}}i(TP,"toArtifactLedgerLine");function aK(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}}i(aK,"activeMessageContribution");function cK(e,t,n,r){if(e===void 0)return;let o=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=o.get(a);if(l===void 0)return;let u=aK(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}i(cK,"activeMessageCountAfterAppend");function CP(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}i(CP,"hasTailIdCollision");function Dx(e){return[e.kind,e.sourceTool??"",e.action??"",e.target].join("::")}i(Dx,"artifactLedgerDedupKey");function lK(e,t){if(t.size+e.length>LP)return!0;let n=new Set;for(let r of e){let o=Dx(r);if(t.has(o)||n.has(o))return!0;n.add(o)}return!1}i(lK,"hasArtifactTailConflict");function Fh(e){return Di("sha256").update("kodax-conversation-identity-filter-authority-v1\0").update(e,"utf8").digest("hex")}i(Fh,"conversationIdentityFilterHash");function uK(e,t,n,r){if(e===void 0)return!1;let o=e,s=new Set;for(let a of t){if(a.type!=="message"||a.parentId!==o||a.logicalId!==void 0&&a.logicalId!==a.id||a.sourceEntryId!==void 0||FL(r,a.id)||s.has(a.id))return!1;s.add(a.id),o=a.id}return n===o}i(uK,"isLinearPreparedMessageTail");function dK(e){return tt(e)&&e._type==="extension_record"&&sP(e)}i(dK,"isPersistedExtensionRecordLine");function fK(e){return tt(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"&&(e.logicalId===void 0||typeof e.logicalId=="string")&&(e.sourceEntryId===void 0||typeof e.sourceEntryId=="string")}i(fK,"hasEntryBase");function FP(e){if(!fK(e))return!1;let t=e;switch(t.type){case"message":return kx(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||jo(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||jo(t.payload));case"goal":return typeof t.event=="string";case"memory_outcome_digest":return tt(t.digest)&&typeof t.digest.id=="string"&&typeof t.digest.reviewKey=="string"&&typeof t.digest.sessionId=="string"&&typeof t.digest.branchId=="string"&&Number.isSafeInteger(t.digest.sequence)&&(t.jobId===void 0||typeof t.jobId=="string");case"memory_review_receipt":return typeof t.reviewKey=="string"&&Array.isArray(t.proposalIds)&&t.proposalIds.every(n=>typeof n=="string")&&(t.status==="completed"||t.status==="no_action")&&typeof t.completedAt=="string"&&(t.jobId===void 0||typeof t.jobId=="string");default:return!1}}i(FP,"isKodaXSessionEntry");function pK(e){return tt(e)&&e._type==="lineage_entry"&&FP(e.entry)}i(pK,"isPersistedLineageEntryLine");function mK(e){return tt(e)&&e._type==="archived_entry"&&typeof e.archiveBatchId=="string"&&FP(e.entry)}i(mK,"isPersistedArchivedEntryLine");function vP(e){return typeof e=="string"||e===null?e:void 0}i(vP,"archivedEntryAnchor");function Ni(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]"}i(Ni,"isCompactedPlaceholder");function hK(e,t){let n=new Map;for(let r of e)n.set(r.id,r);for(let r of t){let o=n.get(r.id);(!o||Ni(o))&&n.set(r.id,r)}return[...n.values()]}i(hK,"mergeConcurrentLineageEntries");function Sd(e,t,n,r){if(!n||!r||n===r||!t.has(n)||!t.has(r))return;let o=e.get(n)??new Set;o.add(r),e.set(n,o)}i(Sd,"addOrderingEdge");function gK(e,t,n){let r=new Set,o;for(let s of n)!t.has(s)||r.has(s)||(Sd(e,t,o,s),o=s,r.add(s))}i(gK,"addSequenceEdges");function IP(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}i(IP,"pushMin");function yK(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 o=r*2+1;if(o>=e.length)break;let s=o+1,a=s<e.length&&e[s]<e[o]?s:o;if(e[a]>=n)break;e[r]=e[a],r=a}return e[r]=n,t}i(yK,"popMin");function bP(e,t){let n=new Map(e.map(r=>[r,0]));for(let r of t.values())for(let o of r)n.set(o,(n.get(o)??0)+1);return n}i(bP,"orderingIndegrees");function RP(e,t,n,r){for(;e.length>0;){let o=yK(e),s=t[o];if(!n.has(s)&&r(s))return o}}i(RP,"popEligibleIndex");function SK(e,t,n){let r=e.find(a=>!t.has(a));if(!r)return;let o=new Set,s=r;for(;s&&!t.has(s);){if(o.has(s))return s;o.add(s),s=n.get(s)}}i(SK,"findParentCycleNode");function kP(e,t,n,r,o){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&&o(s))}}i(kP,"releaseOrderingTargets");function wK(e,t,n,r){let o=new Map(e.map((h,m)=>[h,m])),s=bP(e,t),a=bP(e,n),c=[],l=[],u=new Set,d=[],p=i(h=>{s.get(h)===0&&IP(l,o.get(h)),s.get(h)===0&&a.get(h)===0&&IP(c,o.get(h))},"queueIfReady");for(let h of e)p(h);for(;d.length<e.length;){let h=RP(c,e,u,g=>s.get(g)===0&&a.get(g)===0);if(h??=RP(l,e,u,g=>s.get(g)===0),h===void 0){let g=SK(e,u,r);if(!g)break;s.set(g,0),p(g);continue}let m=e[h];u.add(m),d.push(m),kP(m,t,s,u,p),kP(m,n,a,u,p)}return d}i(wK,"stablePriorityTopologicalOrder");function gd(e,t){let n=new Map,r=new Map,o=[];for(let p of e){let h=r.get(p.entry.id);h||o.push(p.entry.id),(!h||xK(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||o.push(p.id),(!h||!Ni(p))&&n.set(p.id,p)}let s=new Set(n.keys()),a=new Map;gK(a,s,t.map(p=>p.id));let c=new Set(t.filter(p=>!Ni(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}Sd(a,s,l.get(h),p.entry.id),l.set(h,p.entry.id),Sd(a,s,p.previousEntryId,p.entry.id),Sd(a,s,p.entry.id,p.nextEntryId)}let u=new Map,d=new Map;for(let p of n.values())Sd(u,s,p.parentId,p.id),p.parentId&&s.has(p.parentId)&&p.parentId!==p.id&&d.set(p.id,p.parentId);return wK(o,u,a,d).map(p=>n.get(p))}i(gd,"mergeFullLineageEntries");function xK(e,t){let n=!Ni(e.entry),r=!Ni(t.entry);return n!==r?n:e.streamId!==t.streamId?e.streamId<t.streamId:!0}i(xK,"shouldPreferArchivedRecord");function TK(e,t){let n=e.lineage,r=t.lineage,o=n&&r?{...n,entries:hK(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,...o?{lineage:o}:{},...e.artifactLedger!==void 0||t.artifactLedger!==void 0?{artifactLedger:[...s.values()]}:{},...e.extensionRecords!==void 0||t.extensionRecords!==void 0?{extensionRecords:[...a.values()]}:{}}}i(TK,"mergeConcurrentAppendData");function CK(e,t,n){let r=n.map(d=>d.entry),o=vK(e,t)?bK(t,e):e,s=new Set(Ta(o).map(d=>d.id)),a=new Map(r.map(d=>[d.id,d])),c=new Map;for(let d of r)Ni(d)||c.set(d.id,d);for(let d of t?.entries??[])Ni(d)||c.set(d.id,d);let l=[],u=new Set;for(let d of o.entries){if(a.has(d.id)&&!s.has(d.id))continue;let p=Ni(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{...o,entries:l}}i(CK,"reconcileCompactionLineage");function vK(e,t){if(t===void 0)return!1;let n=new Set(e.entries.map(r=>r.id));return t.entries.some(r=>IK(r)&&!n.has(r.id))}i(vK,"persistedTopologySupersedesIncoming");function IK(e){return e.type==="compaction"||e.type==="rewind_marker"}i(IK,"isTopologyEntry");function bK(e,t){let n=[...e.entries],r=new Set(n.map(o=>o.id));for(let o of t.entries)!r.has(o.id)&&RK(o)&&(n.push(o),r.add(o.id));return{...e,entries:n}}i(bK,"mergeContextSilentLineageEntries");function RK(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"}i(RK,"isContextSilentLineageEntry");function kK(e){return tt(e)&&typeof e.id=="string"&&typeof e.kind=="string"&&typeof e.target=="string"&&typeof e.timestamp=="string"&&(e.sourceTool===void 0||typeof e.sourceTool=="string")&&(e.action===void 0||typeof e.action=="string")&&(e.displayTarget===void 0||typeof e.displayTarget=="string")&&(e.summary===void 0||typeof e.summary=="string")&&(e.sessionEntryId===void 0||typeof e.sessionEntryId=="string")&&(e.metadata===void 0||jo(e.metadata))}i(kK,"isKodaXSessionArtifactLedgerEntry");function EK(e){return tt(e)&&e._type==="artifact_ledger_entry"&&kK(e.entry)}i(EK,"isPersistedArtifactLedgerLine");function Hx(e){return tt(e)&&(e.canonicalRepoRoot===void 0||typeof e.canonicalRepoRoot=="string")&&(e.workspaceRoot===void 0||typeof e.workspaceRoot=="string")&&(e.executionCwd===void 0||typeof e.executionCwd=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.workspaceKind===void 0||e.workspaceKind==="detected"||e.workspaceKind==="managed")}i(Hx,"isKodaXSessionRuntimeInfo");function Lx(e,t){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase()===t.toLowerCase():e===t}i(Lx,"pathsEqual");function _K(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}i(_K,"getLastNavigableEntryId");var MK="1970-01-01T00:00:00.000Z";function AK(e){let t=e.meta?.id??Di("sha256").update(e.rawContent).digest("hex"),n=e.meta?.createdAt??MK,r=null,o=e.legacyMessages.map((s,a)=>{let l=`entry_${Di("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:o}}i(AK,"buildDeterministicLegacyLineage");function LK(e){return e.lineageEntries.length>0?{version:2,activeEntryId:e.meta?.activeEntryId??_K(e.lineageEntries),entries:e.lineageEntries}:e.legacyMessages.length===0?e.meta?.lineageVersion===2?{version:2,activeEntryId:e.meta.activeEntryId??null,entries:[]}:void 0:AK(e)}i(LK,"buildLineage");function EP(e){return typeof e=="string"?`t:${e}`:`j:${JSON.stringify(e)}`}i(EP,"serializeMessageContentForCompare");function PK(e,t){return e===t?!0:e.role===t.role&&e._synthetic===!0==(t._synthetic===!0)&&EP(e.content)===EP(t.content)}i(PK,"sameMessageByContent");function $K(e,t){if(e.lineage)return e.lineage;if(t){let n=$t(t),r=e.messages;if(r.length<=n.length&&r.every((s,a)=>PK(s,n[a])))return t}return Je(e.messages,t)}i($K,"resolveSnapshotLineage");function _P(e,t){let n=LK(e),r=n?$t(n):[...e.legacyMessages];return{createdAt:e.meta?.createdAt,filePath:t,...e.mainIdentity!==void 0?{mainIdentity:e.mainIdentity}:{},activeMessageCount:r.length,...e.meta?.lineageIdentityFilterHash!==void 0?{lineageIdentityFilterHash:e.meta.lineageIdentityFilterHash}:{},data:{messages:r,title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",tag:typeof e.meta?.tag=="string"?e.meta.tag:void 0,runtimeInfo:Hx(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:$P(e.meta?.uiHistory),...cP(e.meta?.errorMetadata)?{errorMetadata:{...e.meta.errorMetadata}}:{},extensionState:aP(e.meta?.extensionState)?e.meta?.extensionState:void 0,extensionRecords:e.extensionRecords.map(o=>({...o})),lineage:n,artifactLedger:e.artifactLedger.map(o=>({...o,metadata:o.metadata?structuredClone(o.metadata):void 0})),actorSnapshot:e.meta?.actorSnapshot?structuredClone(e.meta.actorSnapshot):void 0}}}i(_P,"buildSessionData");function OK(e,t,n,r,o){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?Zi(n):t.messages.length,lineageIdentityFilterHash:o}}i(OK,"createSessionMeta");async function Px(e,t=!1,n){let r=n,o;if(r===void 0)try{let l=await Qn(e);r=await Le.readFile(e,"utf-8");let u=await Qn(e);if(o=l!==null&&u!==null&&Nr(l,u)?u:void 0,t&&o===void 0)throw new Ce("data_changed",`Session data changed while reading ${K.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,...o!==void 0?{mainIdentity:o}:{}},c=s.split(`
|
|
296
|
+
`);for(let l=0;l<c.length;l+=1)if(c[l].trim().length!==0)try{let u=JSON.parse(c[l]);if(l===0&&tt(u)&&u._type==="meta"){if(t&&u.lineageVersion!==void 0&&u.lineageVersion!==2)throw new Ce("version_incompatible",`Unsupported Session lineage version in ${K.basename(e)}: ${String(u.lineageVersion)}`);a.meta=u;continue}if(ZV(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=$P(u.uiHistory)),u.scope!==void 0&&(a.meta.scope=u.scope),u.lineageIdentityFilterHash!==void 0&&(a.meta.lineageIdentityFilterHash=u.lineageIdentityFilterHash));continue}if(pK(u)){a.lineageEntries.push(u.entry);continue}if(EK(u)){a.artifactLedger.push(u.entry);continue}if(dK(u)){a.extensionRecords.push({id:u.id,extensionId:u.extensionId,type:u.type,ts:u.ts,data:u.data,dedupeKey:u.dedupeKey});continue}if(kx(u)){a.legacyMessages.push(u);continue}if(t)throw new Ce("version_incompatible",`Unsupported Session record at ${K.basename(e)}:${l+1}`);a.malformedCount+=1}catch(u){if(u instanceof Ce)throw u;if(t)throw new Ce("data_corrupt",`Malformed Session record at ${K.basename(e)}:${l+1}`);a.malformedCount+=1}return a}i(Px,"readPersistedSessionFile");var Bx=65536;async function NK(e){let t=await Le.open(e,"r");try{let n=Buffer.allocUnsafe(Bx),{bytesRead:r}=await t.read(n,0,n.length,0);if(r===0)throw new Ce("data_corrupt","Session metadata is empty");let o=n.toString("utf8",0,r),s=o.indexOf(`
|
|
297
|
+
`);if(s<0&&r===n.length)throw new Ce("data_corrupt","Session metadata exceeds the bounded page-admission record");let a;try{a=JSON.parse((s<0?o:o.slice(0,s)).trim())}catch(l){throw new Ce("data_corrupt",`Session metadata is invalid: ${l instanceof Error?l.message:String(l)}`)}if(!tt(a)||a._type!=="meta")return{};let c=Hx(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()}}i(NK,"readConversationPageAdmission");async function jx(e){let t;try{t=await Le.open(e,"r");let n=Buffer.allocUnsafe(Bx),{bytesRead:r}=await t.read(n,0,Bx,0);if(r===0)return null;let o=n.toString("utf8",0,r),s=o.indexOf(`
|
|
298
|
+
`);if(s>=0)return o.slice(0,s).trim();let a=await Le.readFile(e,"utf-8"),c=a.indexOf(`
|
|
299
|
+
`);return(c>=0?a.slice(0,c):a).trim()}catch{return null}finally{await t?.close()}}i(jx,"readSessionFirstLine");async function MP(e){try{let t=(await Le.readFile(e,"utf-8")).trim();return t?t.split(`
|
|
300
|
+
`).length:0}catch{return 0}}i(MP,"countSessionLines");var AP=new Map;function DK(e){let t=AP.get(e);return t===void 0&&(t=new Map,AP.set(e,t)),t}i(DK,"processSessionLocationIndex");var gr=class{static{i(this,"FileSessionStorage")}sessionsDir;configHome;sessionLocations;verifiedLocationMisses=new Map;hostCwd;emitMismatchWarnings;constructor(t){this.sessionsDir=K.resolve(t?.sessionsDir??Vr),this.configHome=K.resolve(t?.configHome??zf),this.sessionLocations=DK(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>LP||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 o=r.appendRevision;try{let s=await Jc(r.filePath);if(s===void 0)return null;let a=await yd(this.sessionsDir,t,r.filePath),c=this.appendState.get(t),l=a.identities[0];return c===void 0||c.appendRevision!==o||c.mainIdentity===void 0||l===null||l===void 0||!Nr(c.mainIdentity,l)||s.boundaryRevision!==a.revision||Fh(s.identityFilter)!==c.lineageIdentityFilterHash?null:(c.lineageIdentityFilter=s.identityFilter,c.bundleBoundaryRevision=a.revision,this.currentPreparedSessionAppend(t))}catch(s){if(s instanceof Ce&&s.code==="data_changed")return null;throw s}}indexSessionLocations(t,n,r){let o=n&&r!==void 0,s=new Map;for(let a of t){let c=K.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(o){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=>at.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{at.mkdirSync(K.join(this.sessionsDir,Wh),{recursive:!0})}catch(n){t=!1,qn("warn","Unable to prepare the durable Session location index.",n)}return{topologyBefore:t?this.readSessionTopologyIdentitySync("","global"):void 0,writerTopologyDigestBefore:t?pP(this.sessionsDir):void 0,topologyMutationBefore:!t||at.existsSync(Hs(this.sessionsDir))}}completeSessionLocationTraversal(t,n,r){let o=this.readSessionTopologyIdentitySync("","global"),s=pP(this.sessionsDir);if(!(r&&!t.topologyMutationBefore&&!at.existsSync(Hs(this.sessionsDir))&&t.topologyBefore!==void 0&&t.writerTopologyDigestBefore!==void 0&&o!==void 0&&s!==void 0&&Oi(t.topologyBefore,o)&&t.writerTopologyDigestBefore===s)){this.indexSessionLocations(n,!1);return}let c=new Map;for(let p of n){let h=K.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&&o!==void 0&&!at.existsSync(Hs(this.sessionsDir))&&Oi(o,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){let r=this.writeQueues.get(t)??Promise.resolve(),o=i(async()=>{await kf(this.sessionWriteLockPath(t),async()=>{eK(this.sessionsDir),await n()},Ex),this.refreshSelfVerifiedLocationTopology(t),await this.persistSessionLocationHint(t)},"locked"),s=r.then(o,o);return this.writeQueues.set(t,s),s}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,o=this.readSessionTopologyIdentitySync(t);o===void 0||o.activeWriterIdentity!==null||!nK(r,o)||this.sessionLocations.set(t,{kind:"located",filePath:n.filePath,globallyVerified:!0,topologyIdentity:o})}sessionWriteLockPath(t){return wd(this.sessionsDir,t)}async persistSessionLocationHint(t){let n=OP(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 o=[r.filePath];if((await Promise.all(o.map(Ax))).some(p=>p!=="present"))return;await Le.mkdir(K.dirname(n),{recursive:!0});let a=await Bh(this.sessionsDir,t);if(a===null||a.activeWriterIdentity!==null||at.existsSync(Hs(this.sessionsDir))||r.topologyIdentity===void 0||!Oi(r.topologyIdentity,a))return;let c=o.map(p=>K.relative(this.sessionsDir,p).replace(/\\/g,"/")),l={version:1,id:t,filePaths:c,topology:{root:gP(a.root),epoch:a.epoch,writerIdentity:a.writerIdentity===null?null:gP(a.writerIdentity)}},u=`${n}.${process.pid}.${Dh()}.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 Mx(u,n)}finally{await d?.close().catch(()=>{}),await Le.rm(u,{force:!0})}this.sessionLocations.set(t,{kind:"located",filePath:o[0],globallyVerified:!0,topologyIdentity:a})}catch(r){qn("warn",`Unable to update the Session location hint for ${t}.`,r)}}async resolveSessionLocationHint(t,n){let r;try{r=await iK(this.sessionsDir,t)}catch(l){qn("warn",`Unable to read the Session location hint for ${t}.`,l);return}if(r===void 0||at.existsSync(Hs(this.sessionsDir)))return;let o=await Bh(this.sessionsDir,t);if(o===null||o.activeWriterIdentity!==null||!Oi(r.topology,o))return;let s=await Promise.all(r.filePaths.map(Ax)),a=s.findIndex(l=>l==="unverifiable");if(a>=0&&n)throw Hh(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:o}),r.filePaths[0];let c=[...r.filePaths].sort();if(this.sessionLocations.set(t,{kind:"ambiguous",filePaths:c}),n)throw new Ce("data_changed",`Ambiguous Session id ${t} has multiple persisted main files`);return this.resolveAmbiguousSessionLocation(t,c)}appendState=new Map;lineageIdentityFilterHashes=new Map;projectJsonWritten=new Set;migrationPromise;ensureMigrated(){if(!this.migrationPromise){let t;t=Fs(this.sessionsDir).catch(n=>{throw this.migrationPromise===t&&(this.migrationPromise=void 0),n}),this.migrationPromise=t}return this.migrationPromise}syncAppendState(t,n,r,o){let s=this.appendState.get(t);this.appendState.set(t,{appendRevision:Dh(),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:o??(n.lineage?Zi(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(Dx)):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,filePath:r?.filePath??s?.filePath,mainIdentity:r?.mainIdentity})}async syncAppendStateFromFile(t,n,r,o){this.syncAppendState(t,n,{filePath:r,mainIdentity:await Qn(r)??void 0},o)}legacyFlatPath(t){return K.join(this.sessionsDir,`${t}.jsonl`)}legacyFlatArchivePath(t){return K.join(this.sessionsDir,`${t}.archive.jsonl`)}projectDir(t){return K.join(this.sessionsDir,t)}resolveWriteDir(t,n){let r=this.sessionLocations.get(t);if(r?.kind==="located"){let s=K.dirname(r.filePath);if(s!==this.sessionsDir)return K.basename(s)==="archived"?K.dirname(s):s}let o=oi(n);return this.projectDir(o.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&&Oi(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&&Oi(n,r))return n;this.verifiedLocationMisses.delete(t)}assertLocationTopologyUnchanged(t,n){fo(this.sessionsDir,t);let r=n===void 0?void 0:this.readSessionTopologyIdentitySync(t,n.writerScope);if(n===void 0||r===void 0||!Oi(n,r))throw new Ce("data_changed",`Session location topology changed during the read boundary for ${t}`)}readSessionTopologyIdentitySync(t,n="session"){try{let r=js(at.statSync(this.sessionsDir,{bigint:!0})),o;try{o=js(at.statSync(n==="session"?NP(this.sessionsDir,t):Fx(this.sessionsDir),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return;o=null}let s=null;if(n==="session")try{s=js(at.statSync(wd(this.sessionsDir,t),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return}try{return{root:r,epoch:at.readFileSync(K.join(this.sessionsDir,$x),"utf8").trim(),writerScope:n,writerIdentity:o,activeWriterIdentity:s}}catch(a){return a.code==="ENOENT"?{root:r,epoch:null,writerScope:n,writerIdentity:o,activeWriterIdentity:s}:void 0}}catch{return}}async advanceSessionLocationTopology(){let t=K.join(this.sessionsDir,$x),n=`${t}.${process.pid}.${Date.now()}.${_x++}.tmp`,r;try{r=await Le.open(n,"wx"),await r.writeFile(`${Dh()}
|
|
301
|
+
`,"utf8"),await r.sync(),await r.close(),r=void 0,await Mx(n,t)}finally{await r?.close().catch(()=>{}),await Le.unlink(n).catch(o=>{if(o.code!=="ENOENT")throw o})}}withSessionLocationTopologyChange(t){return kf(Hs(this.sessionsDir),async()=>(await this.advanceSessionLocationTopology(),t()),Ex)}writeFilePath(t,n){return K.join(this.resolveWriteDir(t,n),`${t}.jsonl`)}async resolveSessionLocation(t,n=!1){n&&fo(this.sessionsDir,t);let r=this.sessionLocations.get(t);if(r?.kind==="located"&&at.existsSync(r.filePath)&&(!n||this.isLocationGloballyVerified(t)))return r.filePath;if(r?.kind==="ambiguous"){let m=r.filePaths.filter(g=>at.existsSync(g));if(m.length===r.filePaths.length){if(n)throw new Ce("data_changed",`Ambiguous Session id ${t} has multiple persisted main files`);return this.resolveAmbiguousSessionLocation(t,m)}}let o=await this.resolveSessionLocationHint(t,n);if(o!==void 0)return o;let s=!0;try{await Le.mkdir(K.join(this.sessionsDir,Wh),{recursive:!0})}catch(m){s=!1,qn("warn",`Unable to prepare the durable Session location index for ${t}.`,m)}let a=this.legacyFlatPath(t),c;try{c=await Bh(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(K.join(this.sessionsDir,m.name,`${t}.jsonl`),K.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),x=await Promise.all(g.map(Ax));for(let[y,C]of x.entries()){let v=g[y];C==="present"&&d.push(v),C==="unverifiable"&&(s=!1)}}d.sort();let h;try{h=await Bh(this.sessionsDir,t)}catch{s=!1}if(s=s&&c!==void 0&&h!==void 0&&rK(c,h),n&&!s)throw new Ce("data_changed",`Session location topology could not be verified for ${t}`);if(n&&fo(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 Ce("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 zr({cwd:this.hostCwd}),o=await Eo(this.hostCwd),s=this.projectDir(oi({gitRoot:o??void 0,runtimeInfo:r}).key),a=n.find(c=>{let l=K.dirname(c);return l===s||K.basename(l)==="archived"&&K.dirname(l)===s});if(a)return a}return Uo(`[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 o=n.strict===!0?this.verifiedLocationTopology(t):void 0,s=await Px(r,n.strict===!0);if(!s)return null;n.strict===!0&&this.assertLocationTopologyUnchanged(t,o),SP(r,s.malformedCount);let a=_P(s,r);return a.lineageIdentityFilterHash===void 0?this.lineageIdentityFilterHashes.delete(t):this.lineageIdentityFilterHashes.set(t,a.lineageIdentityFilterHash),a}async readArchivedEntries(t,n,r=!1,o){let s=n??await this.resolveSessionLocation(t);if(!s)return[];let a=K.dirname(s),c=[K.join(a,`${t}.islands.jsonl`),K.join(a,`${t}.archive.jsonl`)],l=[];for(let u=0;u<c.length;u+=1){let d=c[u],p;if(o?.has(d)){let g=o.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 x=h[g]??"";if(x.trim())try{let y=JSON.parse(x);if(mK(y)){let C=y;l.push({...y,previousEntryId:vP(C.previousEntryId),nextEntryId:vP(C.nextEntryId),streamId:u})}else{if(tt(y)&&y._type==="archive_batch")continue;if(r)throw new Ce("version_incompatible",`Unsupported island sidecar record at ${K.basename(d)}:${g+1}`)}}catch(y){if(y instanceof Ce)throw y;if(r)throw new Ce("data_corrupt",`Malformed island sidecar record at ${K.basename(d)}:${g+1}`);qn("warn",g===m?`Ignored incomplete island sidecar tail ${K.basename(d)}:${g+1}.`:`Skipped malformed island sidecar record ${K.basename(d)}:${g+1}.`,y)}}}return l}async completeConversationLineage(t,n,r){let o=await this.readArchivedEntries(t,n);return o.length===0?r:{...r,entries:gd(o,r.entries)}}async appendIslandArchive(t,n,r,o,s,a){if(r.length===0)return;let c=a?K.dirname(a):this.resolveWriteDir(t,n);await Le.mkdir(c,{recursive:!0});let l=K.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:o,sessionId:t,archivedAt:new Date().toISOString(),entryCount:r.length})+`
|
|
302
|
+
`);for(let p of r){let h=u.get(p.id);await d.write(JSON.stringify({_type:"archived_entry",archiveBatchId:o,...h===void 0?{}:{previousEntryId:s[h-1]?.id??null,nextEntryId:s[h+1]?.id??null},entry:p})+`
|
|
303
|
+
`)}await d.sync()}finally{await d.close()}}async ensureProjectJson(t,n){if(n.canonicalRoot===null||this.projectJsonWritten.has(t))return;this.projectJsonWritten.add(t);let r=K.join(t,"project.json");try{let o=JSON.stringify({canonicalRoot:n.canonicalRoot,displayName:n.displayName,lastUsed:new Date().toISOString()});await Le.writeFile(r,o+`
|
|
304
|
+
`,"utf-8")}catch{}}async rebuildConversationCache(t,n,r,o){try{let s=await this.readArchivedEntries(t,n,!0),a=s.length===0?r:{...r,entries:gd(s,r.entries)},c=await Nx(this.sessionsDir,t,n,void 0,!0),l=md(a,c.sourceRevision);if(await qL(n,c.boundaryRevision,c.sourceRevisionState,l,a,o))return;await xx(n,c.boundaryRevision,c.sourceRevisionState,l,a,o,dP)}catch(s){try{await hr(n)}catch(a){qn("warn",`Unable to invalidate Conversation page cache for ${t}.`,new AggregateError([s,a]));return}qn("warn",`Unable to prepare Conversation pages for ${t}; reads will use the canonical fallback.`,s)}}async updateConversationCacheAfterAppend(t,n,r,o,s,a,c){try{let l=await Jc(n),u=l?.boundaryRevision===r.revision?QL(l,o,s,a):void 0;if(l===void 0||u===void 0){l!==void 0&&await hr(n);return}let d=kL(l.sourceRevisionState,K.relative(this.sessionsDir,n).replace(/\\/g,"/"),Buffer.from(c,"utf8"));if(d===void 0){await hr(n);return}let p=await yd(this.sessionsDir,t,n,!0);if(!sK(r,p,Buffer.byteLength(c,"utf8"))){await hr(n);return}await JL(n,l,p.revision,d,u,s,a)}catch(l){qn("warn",`Unable to extend Conversation page cache for ${t}; invalidating it.`,l);try{await hr(n)}catch(u){qn("warn",`Unable to invalidate Conversation page cache for ${t}.`,new AggregateError([l,u]))}}}async writeSessionInternal(t,n,r,o,s=this.verifiedLocationTopology(t),a){let c=o?K.dirname(o):this.resolveWriteDir(t,n),l=o??K.join(c,`${t}.jsonl`),u=`${l}.${process.pid}.${Date.now()}.${_x++}.tmp`,d=n.lineage??Je(n.messages),p=a===void 0?void 0:Oh(a),h=p===void 0?void 0:Fh(p),m=OK(t,n,d,r,h),g=this.legacyFlatPath(t),x=!at.existsSync(l)||g!==l&&at.existsSync(g),y=i(async()=>{await Le.mkdir(c,{recursive:!0});try{let E=await Le.open(u,"w");try{await E.write(JSON.stringify(m)+`
|
|
305
|
+
`);for(let I of d.entries)await E.write(JSON.stringify(xP(I))+`
|
|
306
|
+
`);for(let I of n.artifactLedger??[])await E.write(JSON.stringify(TP(I))+`
|
|
307
|
+
`);for(let I of n.extensionRecords??[])await E.write(JSON.stringify(wP(I))+`
|
|
308
|
+
`);await E.sync()}finally{await E.close()}await Mx(u,l);let R=K.basename(c)==="archived"?K.dirname(c):c;if(await this.ensureProjectJson(R,oi(n)),g!==l&&at.existsSync(g)){await Le.unlink(g).catch(()=>{});let I=this.legacyFlatArchivePath(t);at.existsSync(I)&&await Le.rename(I,K.join(R,`${t}.islands.jsonl`)).catch(()=>{})}}finally{at.existsSync(u)&&await Le.unlink(u).catch(()=>{})}},"write");x?await this.withSessionLocationTopologyChange(y):await y(),a===void 0?await hr(l):await this.rebuildConversationCache(t,l,a,n.runtimeInfo);let C=[l];g!==l&&at.existsSync(g)&&C.push(g);let v=this.readSessionTopologyIdentitySync(t),_=s!==void 0&&v!==void 0;return this.verifiedLocationMisses.delete(t),this.sessionLocations.set(t,C.length===1?{kind:"located",filePath:l,globallyVerified:_,..._?{topologyIdentity:v}:{}}:{kind:"ambiguous",filePaths:C.sort()}),h===void 0?this.lineageIdentityFilterHashes.delete(t):this.lineageIdentityFilterHashes.set(t,h),l}async mergeAndWriteInternal(t,n){let r=await this.readSession(t),o=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:$K(n,r?.data.lineage)},a=await this.readArchivedEntries(t),c=CK(s.lineage,r?.data.lineage,a),l=nv(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,o,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),o=r?.filePath===void 0?null:await Qn(r.filePath);if(!(r!==void 0&&(r.mainIdentity===void 0||o===null||!Nr(r.mainIdentity,o)))){await this.mergeAndWriteInternal(t,n);return}let a=await this.readSession(t);await this.mergeAndWriteInternal(t,a?TK(n,a.data):n)})}async appendPreparedSessionTail(t,n){let r=structuredClone(n);await this.ensureMigrated();let o,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 Ce("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||Fh(a.lineageIdentityFilter)!==a.lineageIdentityFilterHash||a.bundleBoundaryRevision===void 0||!uK(a.activeEntryId,l,r.activeEntryId,a.lineageIdentityFilter)||CP(u,a.artifactEntryIds)||lK(u,a.artifactDedupKeys)||CP(d,a.extensionRecordIds))throw new Ce("data_changed",`Prepared Session tail for ${t} is not a new linear append; use appendSessionDelta()`);let p=cK(a.activeEntryId,a.activeMessageCount,l,r.activeEntryId);if(p===void 0)throw new Ce("data_changed",`Prepared Session tail for ${t} is not a linear append; use appendSessionDelta()`);let h=a.filePath===void 0?null:await Qn(a.filePath);if(a.filePath===void 0||a.mainIdentity===void 0||h===null||!Nr(a.mainIdentity,h))throw new Ce("data_changed",`Persisted Session changed after the prepared append boundary for ${t}`);let m=await yd(this.sessionsDir,t,a.filePath,!0);if(m.revision!==a.bundleBoundaryRevision)throw new Ce("data_changed",`Persisted Session bundle changed after the prepared append boundary for ${t}`);let g=[];for(let E of l)g.push(JSON.stringify(xP(E)));for(let E of u)g.push(JSON.stringify(TP(E)));for(let E of d)g.push(JSON.stringify(wP(E)));let x=yx(a.lineageIdentityFilter,l),y=Fh(x),C={_type:"meta_update",title:r.title,activeEntryId:r.activeEntryId,activeMessageCount:p,...r.uiHistory!==void 0?{uiHistory:[...r.uiHistory]}:{},...r.scope!==void 0?{scope:r.scope}:{},lineageIdentityFilterHash:y};g.push(JSON.stringify(C));let v=`
|
|
309
|
+
${g.join(`
|
|
310
|
+
`)}`;await Le.appendFile(a.filePath,v,"utf-8"),s=!0,await this.updateConversationCacheAfterAppend(t,a.filePath,m,a.activeEntryId,l,r.activeEntryId,v);for(let E of u)a.artifactEntryIds.add(E.id);for(let E of u)a.artifactDedupKeys.add(Dx(E));for(let E of d)a.extensionRecordIds.add(E.id);let _=await yd(this.sessionsDir,t,a.filePath,!0);this.appendState.set(t,{...a,appendRevision:Dh(),lineageCount:a.lineageCount+l.length,artifactCount:a.artifactCount+u.length,extensionCount:a.extensionCount+d.length,activeEntryId:r.activeEntryId,activeMessageCount:p,lineageIdentityFilter:x,lineageIdentityFilterHash:y,bundleBoundaryRevision:_.revision,mainIdentity:await Qn(a.filePath)??void 0}),this.lineageIdentityFilterHashes.set(t,y),o=this.currentPreparedSessionAppend(t)??void 0})}catch(a){if(!s)throw a;return this.appendState.delete(t),qn("error",`Prepared Session tail for ${t} committed, but its successor boundary could not be prepared; reload before the next append.`,a),null}return o??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(K.join(this.sessionsDir,Wh),{recursive:!0});let r=this.writeFilePath(t,n);if(at.existsSync(r)||at.existsSync(this.legacyFlatPath(t)))throw Object.assign(new Error(`Session already exists: ${t}`),{code:"conflict"});await this.writeSessionInternal(t,n,void 0,r,void 0,n.lineage??Je(n.messages));let o=this.readSessionTopologyIdentitySync(t);o!==void 0&&this.sessionLocations.set(t,{kind:"located",filePath:r,globallyVerified:!0,topologyIdentity:o}),await this.syncAppendStateFromFile(t,n,r)})}async mutateLineage(t,n){let r=!1;return await this.serializedWrite(t,async()=>{let o=await this.readSession(t);if(o===null)return;r=!0;let s=o.data.lineage??Je(o.data.messages),a=n(s);a!==s&&await this.mergeAndWriteInternal(t,{...o.data,lineage:a})}),r}async saveActorSnapshot(t,n,r){await this.serializedWrite(t,async()=>{let o=await this.readSession(t);if(!o)throw new Error(`Session not found: ${t}`);let s=o.data.actorSnapshot?.revision??0;if(s!==r)throw new ov(r,s,t);let a={...o.data,actorSnapshot:structuredClone(n)},c=a.lineage===void 0?void 0:await this.completeConversationLineage(t,o.filePath,a.lineage),l=await this.writeSessionInternal(t,a,o.createdAt,o.filePath,void 0,c);await this.syncAppendStateFromFile(t,a,l)})}async peek(t){let n=await this.readSession(t,{migrate:!1});return n?structuredClone(n.data):null}async read(t,n={}){Jn(n.signal);let r=await Qc(this.readSession(t,{migrate:!1,strict:!0}),n);return r?structuredClone(r.data):null}async readConversationPageCache(t,n,r={}){Jn(r.signal);let o=(async()=>{let s=await this.resolveSessionLocation(t,!0);if(s===null)return null;let a=this.verifiedLocationTopology(t);try{let c=await Ws(this.sessionsDir,t,s),l=await zL(s,c,{...n,signal:r.signal}),u=await Ws(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 Ce("data_changed",c.message)}throw c}})();return Qc(o,r)}async readConversationPageBoundary(t,n={}){Jn(n.signal);let r=(async()=>{let o=await this.resolveSessionLocation(t,!0);if(o===null)return null;let s=this.verifiedLocationTopology(t),a=await Ws(this.sessionsDir,t,o),c=await NK(o),l=await Ws(this.sessionsDir,t,o);if(this.assertLocationTopologyUnchanged(t,s),a!==l)throw new Ce("data_changed","Session changed while validating a Conversation page boundary");return{boundaryRevision:l,admission:c}})();return Qc(r,n)}async prepareConversationPageCache(t,n,r,o,s,a,c={}){Jn(c.signal);let l=await this.resolveSessionLocation(t,!0);if(l===null)throw new Ce("data_changed","Session moved before page preparation");await Qc(this.serializedWrite(t,async()=>{if(Jn(c.signal),await Ws(this.sessionsDir,t,l,!0)!==s)throw new Ce("data_changed","Session changed before page preparation");await xx(l,s,a,n,r,o,dP)}),c)}async readConversationPageCacheChunk(t,n,r={}){Jn(r.signal);let o=(async()=>{let s=await this.resolveSessionLocation(t,!0);if(s===null)return null;let a=this.verifiedLocationTopology(t);try{let c=await Ws(this.sessionsDir,t,s),l=await YL(s,c,{...n,signal:r.signal}),u=await Ws(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 Ce("data_changed",c.message):c}})();return Qc(o,r)}async readFullSnapshot(t,n={}){Jn(n.signal);let r=(async()=>{let o=await this.resolveSessionLocation(t,!0);return o===null?null:this.readFullSnapshotAtPath(t,o,n.signal,!1)})();return Qc(r,n)}async readFullSnapshotAtPath(t,n,r,o){let s=this.verifiedLocationTopology(t),a=await Nx(this.sessionsDir,t,n,r,o),c=a.files.find(x=>x.kind==="main");if(c===void 0)throw new Ce("data_changed","Session main file moved during the read boundary");let l=await Px(c.path,!0,c.bytes.toString("utf8"));if(l===null)return null;let u=_P(l,c.path),d=K.dirname(c.path),p=new Map([[K.join(d,`${t}.islands.jsonl`),null],[K.join(d,`${t}.archive.jsonl`),null]]);for(let x of a.files)x.kind!=="main"&&p.set(x.path,x.bytes.toString("utf8"));let h=await this.readArchivedEntries(t,c.path,!0,p),m=gd(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 o||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,o=this.legacyFlatPath(t);if(this.emitMismatchWarnings){let s=await Eo(this.hostCwd),a=await zr({cwd:this.hostCwd}),c=_n(r);(a.canonicalRepoRoot&&c?.canonicalRepoRoot&&!op(a,c)||s&&r.gitRoot&&s!==r.gitRoot&&!op(a,{canonicalRepoRoot:r.gitRoot}))&&(Uo(uP.yellow(`
|
|
311
|
+
[Warning] Session project mismatch:`)),a.workspaceRoot&&Uo(` Current workspace: ${a.workspaceRoot}`),c?.workspaceRoot&&Uo(` Session workspace: ${c.workspaceRoot}`),a.canonicalRepoRoot&&Uo(` Current repo: ${a.canonicalRepoRoot}`),c?.canonicalRepoRoot?Uo(` Session repo: ${c.canonicalRepoRoot}`):r.gitRoot&&Uo(` Session repo: ${r.gitRoot}`),Uo(` Continuing anyway...
|
|
312
|
+
`))}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=qC(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:Je(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&&Uo(uP.cyan("[Session Recovery] Cleaned incomplete tool calls from previous session")),s}return SP(o,0),r}async isArchived(t){await this.ensureMigrated();let n=await this.resolveSessionLocation(t);return n!==null&&K.basename(K.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:gd(r,n.data.lineage.entries)}},Ex)}async setActiveEntry(t,n,r){let o=null;return await Dg({configHome:this.configHome,sessionId:t},async s=>this.serializedWrite(t,async()=>{let a=await this.readSession(t);if(!a?.data.lineage)return;let c=Ca(a.data.lineage,n,r);if(!c)return;await s(Fg(c));let l={...a.data,messages:$t(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),o=l})),o}async rewind(t,n,r){let o=null;return await Dg({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 Ce("data_changed",`Conversation history boundary is stale for ${t}`);let u=l?.lineage??a.data.lineage;if(u===null)return;let d=n??ba(u);if(!d)return;let p=l===void 0?void 0:fP(u,d);if(l!==void 0&&p===void 0)return;let m=Ra(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 x=u.entries.findIndex(re=>re.id===d);if(x<0)return;let{fromId:y,...C}=g,v={...C,...u.activeEntryId!==null?{fromId:u.activeEntryId}:{},truncatedCount:u.entries.length-x-1},_={...m,entries:[...m.entries.slice(0,-1),v]};await s(Fg(_));let E=await this.readArchivedEntries(t,a.filePath),R=l?.lineage?.entries??(E.length===0?a.data.lineage.entries:gd(E,a.data.lineage.entries)),I=new Set(_.entries.map(re=>re.id)),W=a.data.lineage.entries.filter(re=>!I.has(re.id)),$={...a.data,messages:$t(_),lineage:_};await this.appendIslandArchive(t,$,W,v.id,[...R,v],a.filePath);let D=await this.completeConversationLineage(t,a.filePath,_),z=await this.writeSessionInternal(t,$,a.createdAt,a.filePath,void 0,D);await this.syncAppendStateFromFile(t,$,z),o=$})),o}async setLabel(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=va(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),o=c}),o}async fork(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=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 Ce("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||fP(l,n)===void 0))return;let u=Date.now(),d=c===void 0?Ro(l,n):c===null?null:xL(l,n,c.sourceRevision,()=>jh({},u));if(!d)return;let p=r?.sessionId??await ka(),h={messages:$t(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),o={sessionId:p,data:h}}),o}async list(t,n){await this.ensureMigrated(),await Le.mkdir(this.sessionsDir,{recursive:!0});let r=t&&t.trim()?t:void 0,o=r!==void 0||this.hostCwd!==void 0,s=r??(this.hostCwd?await Eo(this.hostCwd):null),a=o?await zr({cwd:s??this.hostCwd??process.cwd()}):void 0,c=this.beginSessionLocationTraversal(),l=await Le.readdir(this.sessionsDir,{withFileTypes:!0}),u=[],d=[],p=a===void 0?void 0:oi({gitRoot:s??void 0,runtimeInfo:a}).key,h=i(I=>I.endsWith(".archive.jsonl")||I.endsWith(".islands.jsonl"),"isSidecar"),m=p!==void 0?[p]:l.filter(I=>I.isDirectory()&&!I.name.startsWith(".")).map(I=>I.name),g=!o,x=i(async I=>{try{return{files:await Le.readdir(I),complete:!0}}catch(W){return{files:[],complete:W.code==="ENOENT"}}},"readDirectory"),y=48;for(let I=0;I<m.length;I+=y){let W=await Promise.all(m.slice(I,I+y).map(async $=>{let D=this.projectDir($),[z,re]=await Promise.all([x(D),x(K.join(D,"archived"))]);return{projectDir:D,active:z,archived:re}}));for(let $ of W){(!$.active.complete||!$.archived.complete)&&(g=!1);for(let D of $.active.files){if(!D.endsWith(".jsonl")||h(D))continue;let z=K.join($.projectDir,D);d.push(z),u.push({path:z,trusted:o,archived:!1})}for(let D of $.archived.files){if(!D.endsWith(".jsonl")||h(D))continue;let z=K.join($.projectDir,"archived",D);d.push(z),n?.includeArchived&&u.push({path:z,trusted:o,archived:!0})}}}for(let I of l)if(I.isFile()&&I.name.endsWith(".jsonl")&&!h(I.name)&&!I.name.startsWith("archived-")&&!I.name.startsWith(".")){let W=K.join(this.sessionsDir,I.name);d.push(W),u.push({path:W,trusted:!1,archived:!1})}this.completeSessionLocationTraversal(c,d,g);let C=[],v=i(async(I,W,$)=>{try{let D=await jx(I);if(!D)return null;let z=JSON.parse(D);if(tt(z)&&z._type==="meta"){let q=typeof z.gitRoot=="string"?z.gitRoot:"",S=Hx(z.runtimeInfo)?z.runtimeInfo:void 0,L=z.scope==="managed-task-worker"?"managed-task-worker":"user";if(a!==void 0&&p!==void 0&&!W){let ae=op(a,S),de=S?.workspaceRoot?Lx(S.workspaceRoot,a.workspaceRoot??""):!!(s&&q&&Lx(q,s)),me=S?.executionCwd?Lx(S.executionCwd,a.executionCwd??""):!1,be=oi({gitRoot:q||void 0,runtimeInfo:S}).key===p;if(!ae&&!de&&!me&&!be)return null}if(L!=="user")return null;let ee=typeof z.extensionRecordCount=="number"&&z.extensionRecordCount>0?z.extensionRecordCount:0,j=typeof z.activeMessageCount=="number"&&z.activeMessageCount>=0?z.activeMessageCount:Math.max(0,await MP(I)-1-ee);return{id:K.basename(I,".jsonl"),title:typeof z.title=="string"?z.title:"",msgCount:j,...typeof z.tag=="string"?{tag:z.tag}:{},createdAt:typeof z.createdAt=="string"?z.createdAt:void 0,runtimeInfo:S?{...S}:q?{canonicalRepoRoot:q}:void 0,...$?{archived:!0}:{}}}let re=await MP(I);return{id:K.basename(I,".jsonl"),title:"",msgCount:re,...$?{archived:!0}:{}}}catch{return null}},"parseSessionFile"),_=48,E=new Set;for(let I=0;I<u.length;I+=_){let W=await Promise.all(u.slice(I,I+_).map($=>v($.path,$.trusted,$.archived)));for(let $ of W)$&&!E.has($.id)&&(E.add($.id),C.push($))}let R=n?.limit??10;return C.sort((I,W)=>{let $=I.createdAt?Date.parse(I.createdAt):Number.NaN,D=W.createdAt?Date.parse(W.createdAt):Number.NaN;return Number.isFinite($)&&Number.isFinite(D)&&$!==D?D-$:Number.isFinite(D)&&!Number.isFinite($)?1:Number.isFinite($)&&!Number.isFinite(D)?-1:W.id.localeCompare(I.id)}).slice(0,R).map(({id:I,title:W,msgCount:$,tag:D,runtimeInfo:z,createdAt:re,archived:q})=>({id:I,title:W,msgCount:$,...D!==void 0?{tag:D}:{},...z?{runtimeInfo:z}:{},...re!==void 0?{createdAt:re}:{},...q?{archived:!0}:{}}))}async archive(t){return this.archiveWithActorOwner(t)}async archiveOwned(t,n){return this.archiveWithActorOwner(t,n)}sessionConversationCacheMainPaths(t,n){let r=K.dirname(n),o=K.basename(r)==="archived"?K.join(K.dirname(r),`${t}.jsonl`):K.join(r,"archived",`${t}.jsonl`);return[n,o,this.legacyFlatPath(t)]}async removeSessionConversationCaches(t,n){let r=new Set;for(let o of this.sessionConversationCacheMainPaths(t,n)){let s=K.resolve(o);r.has(s)||(r.add(s),await hr(o))}}async archiveWithActorOwner(t,n){await this.ensureMigrated();let r=!1;return await this.serializedWrite(t,async()=>{let o=await this.readSession(t);if(!o)return;this.assertActorFileOwner(o.data.actorSnapshot,n);let s=K.dirname(o.filePath);if(K.basename(s)==="archived"){for(let d of this.sessionConversationCacheMainPaths(t,o.filePath).slice(1))await hr(d);r=!0;return}let a=this.verifiedLocationTopology(t),c=K.join(s,"archived");await this.removeSessionConversationCaches(t,o.filePath),await this.withSessionLocationTopologyChange(()=>this.movePair(t,s,c));let l=this.readSessionTopologyIdentitySync(t),u=a!==void 0&&l!==void 0;this.sessionLocations.set(t,{kind:"located",filePath:K.join(c,`${t}.jsonl`),globallyVerified:u,...u?{topologyIdentity:l}:{}}),await this.rebuildConversationCache(t,K.join(c,`${t}.jsonl`),o.data.lineage??Je(o.data.messages),o.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 o=await this.readSession(t);if(!o)return;this.assertActorFileOwner(o.data.actorSnapshot,n);let s=K.dirname(o.filePath);if(K.basename(s)!=="archived"){for(let d of this.sessionConversationCacheMainPaths(t,o.filePath).slice(1))await hr(d);r=!0;return}let a=this.verifiedLocationTopology(t),c=K.dirname(s);await this.removeSessionConversationCaches(t,o.filePath),await this.withSessionLocationTopologyChange(()=>this.movePair(t,s,c));let l=this.readSessionTopologyIdentitySync(t),u=a!==void 0&&l!==void 0;this.sessionLocations.set(t,{kind:"located",filePath:K.join(c,`${t}.jsonl`),globallyVerified:u,...u?{topologyIdentity:l}:{}}),await this.rebuildConversationCache(t,K.join(c,`${t}.jsonl`),o.data.lineage??Je(o.data.messages),o.data.runtimeInfo),r=!0}),r}async movePair(t,n,r){let o=[`${t}.jsonl`,`${t}.islands.jsonl`,`${t}.archive.jsonl`];for(let c of o)if(at.existsSync(K.join(r,c)))throw new Error(`Refusing to overwrite existing Session archive file: ${c}`);await Le.mkdir(r,{recursive:!0});let s=o.filter(c=>at.existsSync(K.join(n,c))),a=[];try{for(let c of s){let l=K.join(n,c);await Le.rename(l,K.join(r,c)),a.push(c)}}catch(c){let l=[];for(let u of a.reverse())try{await Le.rename(K.join(r,u),K.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 o of[...new Set(n)]){let s=`${o}.${process.pid}.${Date.now()}.${_x++}.deleting.tmp`;try{await Le.rename(o,s),r.push({source:o,tombstone:s})}catch(a){if(a.code!=="ENOENT")throw a}}}catch(o){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([o,...s],`Session ${t} deletion failed and rollback was incomplete.`):o}for(let o of r)try{await Le.unlink(o.tombstone)}catch(s){qn("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 Wg(t?.schemaVersion===2?t.owner?.runtimeId:void 0,t?.revision??0,!1);return}if(t?.schemaVersion===2&&t.owner)throw new Wg(t.owner.runtimeId,t.revision,!1);if(t?.turns.some(r=>r.state==="accepted"||r.state==="running"))throw new iv(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 o=r.filePath,s=[],a=i(l=>{s.includes(l)||s.push(l)},"addTarget");a(o.replace(/\.jsonl$/,".archive.jsonl")),a(o.replace(/\.jsonl$/,".islands.jsonl")),a(this.legacyFlatArchivePath(t)),a(this.legacyFlatPath(t));let c=s.indexOf(o);c>=0&&s.splice(c,1),s.push(o),await this.removeSessionConversationCaches(t,o),await this.withSessionLocationTopologyChange(()=>this.removeFileSetAtomically(t,s)),this.sessionLocations.delete(t)})}async deleteAll(t){let n=t??(this.hostCwd?await Eo(this.hostCwd):null),r=await this.list(n??void 0,{limit:Number.MAX_SAFE_INTEGER});for(let o of r)await this.delete(o.id)}async cleanupOldSessions(t){if(!Number.isFinite(t)||t<=0)return 0;await this.ensureMigrated();let n=0,r=[],o=Date.now()-t*24*60*60*1e3,s=i(async a=>{let c=K.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>=o)return;let d=await Px(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=K.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=K.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(K.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 Us from"node:fs/promises";import En from"node:path";var BK=8;function WP(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(WP,"isRecord");function HP(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")&&!e.startsWith("archived-")}i(HP,"isSessionFile");async function FK(e){let t=[],n=[];try{n=await Us.readdir(e,{withFileTypes:!0})}catch{return t}for(let r of n){if(r.isFile()){HP(r.name)&&t.push(En.join(e,r.name));continue}if(!r.isDirectory()||r.name.startsWith("."))continue;let o=En.join(e,r.name),s=[];try{s=await Us.readdir(o)}catch{continue}for(let a of s)HP(a)&&t.push(En.join(o,a))}return t}i(FK,"collectSessionFiles");function WK(e,t){let r=En.relative(e,t).split(En.sep);return r.length>1?r[0]:void 0}i(WK,"getProjectKey");async function HK(e,t){let n=En.relative(e,t),r=En.basename(t,".jsonl");try{let s=(await Us.readFile(t,"utf8")).split(/\r?\n/,1)[0];if(!s)return null;let a=JSON.parse(s);if(!WP(a)||a._type!=="meta")return null;let c=WP(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:WK(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}}i(HK,"parseCandidate");function jK(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)}i(jK,"sameProject");function UK(e,t){if(t.isRunner||t.scope!=="user"||!jK(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>=BK?{canonical:t,score:n,reasons:r}:null}i(UK,"scoreCandidate");function GK(e){let t=i(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("")}i(GK,"formatArchiveBatch");async function VK(e){let t=e,n=1;for(;;){try{await Us.access(t)}catch{return t}let r=En.extname(e);t=`${e.slice(0,e.length-r.length)}.${n}${r}`,n+=1}}i(VK,"uniqueTargetPath");async function jP(e={}){let t=e.sessionsDir??Vr;e.apply&&(await Us.mkdir(t,{recursive:!0}),await Fs(t));let n=await FK(t),r=[],o=[];for(let d of n){let p=await HK(t,d);if(!p){En.basename(d).startsWith("runner-")&&o.push({runnerId:En.basename(d,".jsonl"),path:d,reason:"unreadable"});continue}if(p.isRunner&&p.scope==="managed-task-worker"){o.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=>UK(d,m)).filter(m=>m!==null).sort((m,g)=>g.score-m.score);if(p.length===0){o.push({runnerId:d.id,path:d.filePath,reason:"no-match"});continue}if(p.length>1){o.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=En.join(t,".dedupe-archive",GK(e.now??new Date));if(e.apply)for(let d of c){let p=En.relative(t,d.runnerPath),h;try{h=await VK(En.join(u,p)),await Us.mkdir(En.dirname(h),{recursive:!0}),await Us.rename(d.runnerPath,h),l.push({runnerId:d.runnerId,from:d.runnerPath,to:h})}catch(m){o.push({runnerId:d.runnerId,path:d.runnerPath,reason:"move-failed",detail:`target=${h??En.join(u,p)}; ${m instanceof Error?m.message:String(m)}`})}}return{scanned:n.length,runnerCandidates:s.length,matches:c,moved:l,skipped:o,...e.apply?{archiveDir:u}:{}}}i(jP,"dedupeSessions");function KK(e){return e?.storage?e.storage:e?.sessionsDir!==void 0?new gr({sessionsDir:e.sessionsDir}):new gr}i(KK,"resolveStorage");async function Zc(e,t){let n={compacted:!1,tokensBefore:0,tokensAfter:0,messages:[]};try{let r=KK(t),o=await r.load(e);if(!o)return{...n,reason:`session not found: ${e}`};let s=o.messages,a=t?.provider??o.runtimeInfo?.provider??"anthropic",c=qi(a);if(!c)return{...n,messages:s,reason:`provider not found: ${a}`};let l=t?.contextWindow??c.getEffectiveContextWindow?.(t?.model)??c.getContextWindow?.()??2e5,u=Ji(s),d=await Zf(),p=ZC({...d,contextWindow:l,triggerPercent:t?.triggerPercent??d.triggerPercent,triggerTokens:t?.triggerTokens??d.triggerTokens}),h=await ev(s,p,c,l,t?.customInstructions,void 0,u,gv,yv,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??o.artifactLedger??[],x=Math.max(0,(h.tokensBefore??0)-(h.tokensAfter??0)),{ledgerMessage:y}=tv(g,x),C=y?[y]:[],v=Je(s,o.lineage),_=Af(v,h.messages,m,C),E=$t(_),R=Ji(E),I=[..._.entries].reverse().find(D=>D.type==="compaction"),W=I?{..._,entries:_.entries.map(D=>D.id===I.id&&D.type==="compaction"?{...D,tokensAfter:R}:D)}:_,$={...o,messages:E,lineage:W,artifactLedger:h.artifactLedger??o.artifactLedger};return await r.save(e,$),{compacted:!0,tokensBefore:h.tokensBefore,tokensAfter:R,messages:E,report:h.report}}catch(r){return{...n,reason:r instanceof Error?r.message:String(r)}}}i(Zc,"compactSession");import Gs from"node:fs";import Vo from"node:fs/promises";import At from"node:path";import{createHash as zK,randomUUID as YK}from"node:crypto";async function XK(e,t){let n=[],r=!0,o=i(a=>a.endsWith(".jsonl")&&!a.endsWith(".archive.jsonl")&&!a.endsWith(".islands.jsonl")&&!a.startsWith("."),"isSession"),s=[];try{s=await Vo.readdir(e,{withFileTypes:!0})}catch{return{paths:n,complete:!1}}for(let a of s){if(a.isFile()){o(a.name)&&(t||!a.name.startsWith("archived-"))&&n.push(At.join(e,a.name));continue}if(!a.isDirectory()||a.name.startsWith("."))continue;let c=At.join(e,a.name);try{for(let l of await Vo.readdir(c))o(l)&&n.push(At.join(c,l))}catch(l){l.code!=="ENOENT"&&(r=!1)}if(t){let l=At.join(c,"archived");try{for(let u of await Vo.readdir(l))o(u)&&n.push(At.join(l,u))}catch(u){u.code!=="ENOENT"&&(r=!1)}}}return{paths:n,complete:r}}i(XK,"collectSessionFilePaths");function UP(e){if(!e||!e.trim())return;let t=At.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}i(UP,"normalizeComparableRoot");function qK(e,t,n){let r=UP(n);return r?[e?.gitRoot,e?.workspaceRoot,t].some(o=>UP(o)===r):!0}i(qK,"sessionMatchesProjectRoot");async function JK(e){let t=[],n=[e];for(;n.length>0;){let r=n.pop(),o;try{o=await Vo.readdir(r,{withFileTypes:!0})}catch{continue}for(let s of o){let a=At.join(r,s.name);s.isDirectory()&&!s.isSymbolicLink()?n.push(a):s.isFile()&&s.name.endsWith(".jsonl")&&t.push(a)}}return t}i(JK,"collectJsonlFiles");async function QK(e,t){let n;try{n=new Set(await Vo.readdir(t))}catch{return new Set}let r=new Set,o=i(s=>{for(let a of s.matchAll(/[a-zA-Z0-9._-]+\.txt/g)){let c=a[0];n.has(c)&&r.add(At.join(t,c))}},"collectNames");for(let s of await JK(e)){let a;try{a=await Vo.readFile(s,"utf-8")}catch{continue}o(a)}for(let s of[...r].filter(a=>At.basename(a).includes("-bash-recovery-manifest-")))try{o(await Vo.readFile(s,"utf-8"))}catch{}return r}i(QK,"collectToolOutputReferences");function ZK(e){let t=av();setTimeout(()=>{dv(t,()=>QK(e,t))},3e4).unref()}i(ZK,"scheduleToolOutputRetention");async function ez(e){let t=await jx(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}i(ez,"readSessionMetaRecord");async function tz(e,t){if(typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0)return t.activeMessageCount;let n=(await Vo.readFile(e,"utf-8")).trim(),r=typeof t.extensionRecordCount=="number"&&t.extensionRecordCount>0?t.extensionRecordCount:0;return Math.max(0,n.split(`
|
|
313
|
+
`).length-1-r)}i(tz,"readActiveMessageCount");async function nz(e,t){let n=await ez(e);if(!n)return;let r=n.scope==="managed-task-worker"?"managed-task-worker":"user";if(t.scope!=="all"&&t.scope!==r)return;let o=typeof n.createdAt=="string"?n.createdAt:void 0,s=o?Date.parse(o):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"?XP(n.runtimeInfo):void 0,l=typeof n.gitRoot=="string"?n.gitRoot:void 0,u=c??(l?{gitRoot:l}:void 0);if(!qK(u,l,t.gitRoot)||t.surface!==void 0&&u?.surface!==t.surface)return;let d=At.basename(e,".jsonl"),p=At.basename(At.dirname(e))==="archived";return{id:d,title:typeof n.title=="string"?n.title:"",msgCount:await tz(e,n),...a!==void 0?{tag:a}:{},...o!==void 0?{createdAt:o}:{},...u!==void 0?{runtimeInfo:u}:{},projectKey:is(u?.gitRoot??u?.workspaceRoot).key,...p?{archived:!0}:{},_createdAtMs:s}}i(nz,"readSessionListCandidate");function yr(e,t){return e!==void 0||t!==void 0?new gr({...e===void 0?{}:{sessionsDir:e},...t===void 0?{}:{configHome:t}}):new gr}i(yr,"getStorage");function zP(e){return e??Vr}i(zP,"resolveSessionsDir");function Yx(e){return Buffer.from(e,"utf8").toString("base64url")}i(Yx,"encodeSessionCursor");function rz(e){if(!(!e||e.length>1024))try{let t=Buffer.from(e,"base64url").toString("utf8");return t&&Yx(t)===e?t:void 0}catch{return}}i(rz,"decodeSessionCursor");async function Xx(e){return YP(e,void 0)}i(Xx,"listSessions");async function YP(e,t){try{let n=zP(t);await Fs(n);let r=e?.projectRoot,o=yr(t);await Vo.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:rz(e.cursor);if(e?.cursor!==void 0&&p===void 0)return[];if(s==="user"&&!r&&l===void 0&&!a&&u===void 0&&d===void 0&&p===void 0)return(await o.list(r,{limit:c})).map(oz);let h=o.beginSessionLocationTraversal(),m=await XK(n,!0),g=m.paths;o.completeSessionLocationTraversal(h,g.filter(I=>!At.basename(I).startsWith("archived-")),m.complete);let x=a?g:g.filter(I=>At.basename(At.dirname(I))!=="archived"&&!At.basename(I).startsWith("archived-")),y=[],C=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 I=0;I<x.length;I+=_){let W=await Promise.all(x.slice(I,I+_).map(async $=>{try{return await nz($,v)}catch(D){gt({source:"session.public-api",level:"warn",message:"Unreadable session record was skipped.",detail:{filePath:$,error:D}});return}}));for(let $ of W)$&&!C.has($.id)&&(C.add($.id),y.push($))}y.sort((I,W)=>{let $=I._createdAtMs,D=W._createdAtMs;return Number.isFinite($)&&Number.isFinite(D)&&$!==D?D-$:Number.isFinite(D)&&!Number.isFinite($)?1:Number.isFinite($)&&!Number.isFinite(D)?-1:W.id.localeCompare(I.id)});let E=p===void 0?-1:y.findIndex(I=>I.id===p);if(p!==void 0&&E<0)return[];let R=E+1;return y.slice(R,R+c).map(({id:I,title:W,msgCount:$,tag:D,createdAt:z,runtimeInfo:re,projectKey:q,archived:S})=>({id:I,cursor:Yx(I),title:W,msgCount:$,...D!==void 0?{tag:D}:{},...z!==void 0?{createdAt:z}:{},...re!==void 0?{runtimeInfo:re}:{},...q!==void 0?{projectKey:q}:{},...S?{archived:!0}:{}}))}catch{return[]}}i(YP,"listSessionsImpl");function XP(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}i(XP,"extractRuntimeInfoSummary");function oz(e){let t=e.runtimeInfo?XP(e.runtimeInfo):void 0,n=is(t?.gitRoot??t?.workspaceRoot).key;return{id:e.id,cursor:Yx(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}}i(oz,"toSessionSummary");function Uh(e){return typeof e=="object"&&e!==null}i(Uh,"isRecord");function qP(e){let t=new Map(e.entries.map(o=>[o.id,o])),n=new Set,r=e.activeEntryId;for(;r;){let o=t.get(r);if(!o)break;n.add(o.id),r=o.parentId}return n}i(qP,"collectActiveIds");function GP(e,t){return t==="branch_summary"?{role:"user",content:`The following is a summary of a branch that this conversation came back from:
|
|
314
|
+
|
|
315
|
+
<summary>
|
|
316
|
+
${e}
|
|
317
|
+
</summary>`}:{role:"system",content:`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
|
|
318
|
+
|
|
319
|
+
${e}`}}i(GP,"summaryMessage");function VP(e){return{role:"system",content:`[Rewind] ${e}`}}i(VP,"rewindMarkerMessage");function iz(e){return{role:"system",content:e.content,_source:"client_notice",timestamp:e.timestamp,...e.turnId!==void 0?{turnId:e.turnId}:{}}}i(iz,"clientNoticeMessage");function Ux(e,t){let n=e[t];return typeof n=="string"?n:void 0}i(Ux,"messageStringField");function sz(e){if(e.role==="user")return"user";if(e.role==="assistant")return"assistant";if(e.role==="system")return"system"}i(sz,"messageSource");function KP(e){return Uh(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}i(KP,"isTaskResultMetadata");function az(e){if(KP(e._taskResult))return[e._taskResult];if(Array.isArray(e._taskResults))return e._taskResults.filter(KP);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 o=r[1];if(!o)continue;let s=r[2]?.trim()??"";t.push({type:"task_result",source:"child_task",taskId:o,status:s.startsWith("failed:")||s.startsWith("[Tool Error]")?"failed":"completed",...s.length>0?{summary:s}:{}})}return t}i(az,"taskResultsFromMessage");function cz(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}i(cz,"taskResultPayload");function lz(e){if(!Uh(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}:{}}}i(lz,"legacyRewindDetails");function uz(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)}i(uz,"transcriptEntryActive");function Bi(e){return{entryId:e.id,parentId:e.parentId,logicalId:e.logicalId??e.id,...e.sourceEntryId!==void 0?{sourceEntryId:e.sourceEntryId}:{}}}i(Bi,"transcriptEntryIdentity");function JP(e,t,n){let r=uz(e,t,n);switch(e.type){case"message":{let o=az(e.message);if(o.length>0){let s=o[0];return{...Bi(e),timestamp:e.timestamp,type:"task_result",source:s.source,turnId:Ux(e.message,"turnId"),message:e.message,active:r,payload:cz(o),taskResults:o}}return e.message._source==="client_notice"?{...Bi(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:Ux(e.message,"turnId"),message:e.message,active:r,payload:{content:e.message.content,entersModelContext:!1}}:{...Bi(e),timestamp:e.timestamp,type:"message",source:sz(e.message),turnId:Ux(e.message,"turnId"),message:e.message,active:r}}case"compaction":if(e.reason==="rewind"){let o=lz(e.details),s=r||(e.parentId===null?n===null:t.has(e.parentId));return{...Bi(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:VP(e.summary),active:s,summary:e.summary,payload:{summary:e.summary,reason:"rewind",...o.rewindTargetId!==void 0?{rewindTargetId:o.rewindTargetId}:{},...o.truncatedCount!==void 0?{truncatedCount:o.truncatedCount}:{},...e.details!==void 0?{details:e.details}:{}}}}return{...Bi(e),timestamp:e.timestamp,type:"compaction",source:"system",message:GP(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{...Bi(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:VP(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{...Bi(e),timestamp:e.timestamp,type:"branch_summary",source:"system",message:GP(e.summary,"branch_summary"),active:r,summary:e.summary,payload:{summary:e.summary,fromId:e.fromId,details:e.details}};case"client_notice":return{...Bi(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:e.turnId,message:iz(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}}i(JP,"toTranscriptEntry");function dz(e){let t=qP(e);return e.entries.map(n=>JP(n,t,e.activeEntryId)).filter(n=>n!==null)}i(dz,"buildTranscriptEntries");async function QP(e){return fz(e,void 0)}i(QP,"loadSession");async function fz(e,t){return Gx(e,yr(t))}i(fz,"loadSessionImpl");async function Gx(e,t){try{return await t.load(e)}catch{return null}}i(Gx,"loadSessionWithStorage");async function ZP(e){return Sz(e,void 0)}i(ZP,"loadFullTranscript");async function e1(e,t={}){return o1(e,void 0,t)}i(e1,"readFullTranscript");async function t1(e,t={}){return Vx(e,yr(),t)}i(t1,"readConversationHistory");function qx(e,t){return e.transcript.lineage===void 0?TL(e.transcript.activeMessages,e.sourceRevision,t):md(e.transcript.lineage,e.sourceRevision,t)}i(qx,"conversationHistoryFromCapture");async function n1(e,t={}){return Go(e,yr(),t)}i(n1,"readSessionCapture");async function r1(e,t={}){if(t.signal?.aborted)throw new Ce("read_cancelled","Session bundle export cancelled");let n=At.resolve(t.sessionsDir??Vr),r=gz(t.timeoutMs),o=(async()=>{let s=await BP(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:zK("sha256").update(l.bytes).digest("hex"),modifiedAt:l.modifiedAt,content:l.bytes.toString("utf8"),contentBase64:l.bytes.toString("base64")})),c=a.flatMap(pz);return{sessionId:e,status:hz(c),files:a,diagnostics:c}})();return yz(o,t,r)}i(r1,"exportSessionBundle");function pz(e){let t=[],n=e.content.split(/\r?\n/),r=-1;for(let o=n.length-1;o>=0;o-=1)if((n[o]??"").trim().length>0){r=o;break}for(let o=0;o<=r;o+=1){let s=n[o]??"";if(!s.trim())continue;let a;try{a=JSON.parse(s)}catch{t.push({code:o===r?"partial_tail":"malformed_record",file:e.path,line:o+1,message:o===r?"Trailing partial record was preserved verbatim.":"Malformed record was preserved verbatim."});continue}if(e.kind==="main"&&o===0&&Uh(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}mz(a,e.kind)||t.push({code:"unsupported_record",file:e.path,line:o+1,message:"Unknown record was preserved verbatim."})}return t}i(pz,"inspectSessionBundleFile");function mz(e,t){return Uh(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}i(mz,"isRecognizedBundleRecord");function hz(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"}i(hz,"bundleExportStatus");function gz(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}i(gz,"normalizeBundleExportTimeout");async function yz(e,t,n){let r,o;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new Ce("read_timeout",`Session bundle export timed out after ${n}ms`)),n),t.signal!==void 0&&(o=i(()=>a(new Ce("read_cancelled","Session bundle export cancelled")),"abort"),t.signal.addEventListener("abort",o,{once:!0}))})])}finally{r!==void 0&&clearTimeout(r),o!==void 0&&t.signal?.removeEventListener("abort",o)}}i(yz,"raceBundleExport");async function Sz(e,t){try{return await o1(e,t,{})}catch{return null}}i(Sz,"loadFullTranscriptImpl");async function o1(e,t,n){return(await Go(e,yr(t),n))?.transcript??null}i(o1,"readFullTranscriptImpl");async function Go(e,t,n){let r=await t.readFullSnapshot(e,n);if(r===null)return null;let o=wz(r);return{data:r.data,transcript:o,sourceRevision:r.sourceRevision,sourceRevisionState:r.sourceRevisionState,boundaryRevision:r.boundaryRevision}}i(Go,"readSessionCaptureWithStorage");async function Vx(e,t,n){let r=Date.now(),o=await Go(e,t,n);if(o===null)return null;let s=qx(o,()=>jh(n,r));return await new Promise(a=>setImmediate(a)),jh(n,r),s}i(Vx,"readConversationHistoryWithStorage");function wz(e){if(e.lineage===null)return{...e.data,activeMessages:e.data.messages,transcriptEntries:[]};let t=dz(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}}i(wz,"fullTranscriptFromSnapshot");function xz(e){let t=e?.trim();return t&&t.length>0?t:"client"}i(xz,"normalizeClientNoticeSource");function Tz(e,t){let n=`notice_${YK().replace(/-/g,"").slice(0,12)}`;return{type:"client_notice",id:n,parentId:e.activeEntryId,timestamp:t.timestamp??new Date().toISOString(),logicalId:n,source:xz(t.source),content:t.content,...t.turnId!==void 0?{turnId:t.turnId}:{},...t.payload!==void 0?{payload:t.payload}:{}}}i(Tz,"createClientNoticeEntry");async function i1(e,t){return Cz(e,t,void 0)}i(i1,"appendClientNotice");async function Cz(e,t,n){return Kx(e,t,yr(n))}i(Cz,"appendClientNoticeImpl");async function Kx(e,t,n){try{let r=await n.load(e);if(!r)return null;let o=r.lineage??Je(r.messages),s=Tz(o,t),a={...o,entries:[...o.entries,s]},c={...r,lineage:a,messages:r.messages};await n.appendSessionDelta(e,c);let l=qP(a);return JP(s,l,a.activeEntryId)}catch{return null}}i(Kx,"appendClientNoticeWithStorage");async function Jx(e,t){return s1(e,t,void 0)}i(Jx,"forkSession");async function s1(e,t,n){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let r=t?.historyBoundary;return await yr(n).fork(e,r?.boundaryId??t?.selector,{sessionId:t?.sessionId,title:t?.title,...r!==void 0?{historyBoundary:{sourceRevision:r.sourceRevision}}:{}})}catch{return null}}i(s1,"forkSessionImpl");async function Qx(e,t){return a1(e,t,void 0)}i(Qx,"rewindSession");async function a1(e,t,n,r){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let o=t?.historyBoundary;return await yr(n,r).rewind(e,o?.boundaryId??t?.selector,o===void 0?void 0:{historyBoundary:{sourceRevision:o.sourceRevision}})}catch{return null}}i(a1,"rewindSessionImpl");async function Zx(e,t){return c1(e,t,void 0)}i(Zx,"setActiveEntry");async function c1(e,t,n,r){try{return await yr(n,r).setActiveEntry(e,t)}catch{return null}}i(c1,"setActiveEntryImpl");async function xd(){try{return XC({excludePid:process.pid}).map(t=>({pid:t.pid,startedAt:t.state.meta.startedAt,cwd:t.state.meta.cwd,sessionId:t.state.sessionId}))}catch{return[]}}i(xd,"listRunningSessions");async function eT(e){return l1(e,void 0)}i(eT,"deleteSession");async function l1(e,t){try{let r=(await xd()).find(o=>o.sessionId===e);return r?{error:{code:"session_running",runningProcess:{pid:r.pid,startedAt:r.startedAt}}}:(await yr(t).delete(e),{ok:!0})}catch(n){return gt({source:"session.public-api",level:"error",message:"Session deletion failed.",detail:{sessionId:e,error:n}}),{error:{code:"delete_failed"}}}}i(l1,"deleteSessionImpl");async function tT(e){return u1(e,void 0)}i(tT,"archiveSession");async function u1(e,t){try{return await yr(t).archive(e)}catch(n){return gt({source:"session.public-api",level:"error",message:"Session archive failed.",detail:{sessionId:e,error:n}}),!1}}i(u1,"archiveSessionImpl");async function nT(e){return d1(e,void 0)}i(nT,"unarchiveSession");async function d1(e,t){try{return await yr(t).unarchive(e)}catch(n){return gt({source:"session.public-api",level:"error",message:"Session unarchive failed.",detail:{sessionId:e,error:n}}),!1}}i(d1,"unarchiveSessionImpl");function rT(e){return f1(e,void 0)}i(rT,"watchSessions");function f1(e,t){let n=zP(t);return Fs(n).catch(()=>{}),process.platform==="win32"?bz(e,n):vz(e,n)}i(f1,"watchSessionsImpl");function zx(e){let t=At.basename(e);return!t.endsWith(".jsonl")||t.endsWith(".archive.jsonl")||t.endsWith(".islands.jsonl")||t.startsWith(".")?null:t.slice(0,-6)}i(zx,"sessionIdFromFilename");function vz(e,t){let n=null,r=!1,o=new Map;function s(c,l){let u=o.get(l);u!==void 0&&clearTimeout(u);let d=setTimeout(()=>{o.delete(l),r||e({kind:c,sessionId:l})},100);o.set(l,d)}i(s,"emitDebounced");function a(){if(!r)try{if(!Gs.existsSync(t)){setTimeout(a,1e3);return}let c=i((l,u)=>{if(!u)return;let d=typeof u=="string"?u:u.toString(),p=zx(d);if(!p)return;let h=l==="rename"?Iz(t,d):"change";s(h,p)},"onEvent");try{n=Gs.watch(t,{recursive:!0},c)}catch{n=Gs.watch(t,c)}n.on("error",()=>{n?.close(),n=null,r||setTimeout(a,1e3)})}catch{}}return i(a,"startWatch"),a(),{close(){r=!0,n?.close(),n=null;for(let c of o.values())clearTimeout(c);o.clear()}}}i(vz,"watchSessionsPosix");function Iz(e,t){try{return Gs.statSync(At.join(e,t)),"add"}catch{return"remove"}}i(Iz,"detectRenameKind");function bz(e,t){let n=!1,r=new Set;function o(c,l){try{for(let u of Gs.readdirSync(l)){let d=zx(u);d&&c.add(d)}}catch{}}i(o,"addIds");function s(){let c=new Set;try{if(!Gs.existsSync(t))return c;for(let l of Gs.readdirSync(t,{withFileTypes:!0}))if(l.isFile()){let u=zx(l.name);u&&c.add(u)}else if(l.isDirectory()&&!l.name.startsWith(".")){let u=At.join(t,l.name);o(c,u),o(c,At.join(u,"archived"))}}catch{}return c}i(s,"buildSnapshot"),r=s();let a=setInterval(()=>{if(n)return;let c=s();for(let l of c)r.has(l)||e({kind:"add",sessionId:l});for(let l of r)c.has(l)||e({kind:"remove",sessionId:l});r=c},1e3);return{close(){n=!0,clearInterval(a)}}}i(bz,"watchSessionsWindows");function p1(e){let t=e?.sessionsDir,n=e?.configHome;ZK(t??Vr);let r=t!==void 0||n!==void 0?new gr({...t===void 0?{}:{sessionsDir:t},...n===void 0?{}:{configHome:n}}):new gr;return t===void 0&&n===void 0?{listSessions:Xx,loadSession:i(o=>Gx(o,r),"loadSession"),loadFullTranscript:i(async o=>{try{return(await Go(o,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:i(async(o,s)=>(await Go(o,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:i((o,s)=>Vx(o,r,s??{}),"readConversationHistory"),readSessionCapture:i((o,s)=>Go(o,r,s??{}),"readSessionCapture"),appendClientNotice:i((o,s)=>Kx(o,s,r),"appendClientNotice"),forkSession:Jx,rewindSession:Qx,setActiveEntry:Zx,deleteSession:eT,archiveSession:tT,unarchiveSession:nT,listRunningSessions:xd,watchSessions:rT,compactSession:i((o,s)=>Zc(o,{...s,storage:r}),"compactSession"),storage:r}:{listSessions:i(o=>YP(o,t),"listSessions"),loadSession:i(o=>Gx(o,r),"loadSession"),loadFullTranscript:i(async o=>{try{return(await Go(o,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:i(async(o,s)=>(await Go(o,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:i((o,s)=>Vx(o,r,s??{}),"readConversationHistory"),readSessionCapture:i((o,s)=>Go(o,r,s??{}),"readSessionCapture"),appendClientNotice:i((o,s)=>Kx(o,s,r),"appendClientNotice"),forkSession:i((o,s)=>s1(o,s,t),"forkSession"),rewindSession:i((o,s)=>a1(o,s,t,n),"rewindSession"),setActiveEntry:i((o,s)=>c1(o,s,t,n),"setActiveEntry"),deleteSession:i(o=>l1(o,t),"deleteSession"),archiveSession:i(o=>u1(o,t),"archiveSession"),unarchiveSession:i(o=>d1(o,t),"unarchiveSession"),listRunningSessions:xd,watchSessions:i(o=>f1(o,t),"watchSessions"),compactSession:i((o,s)=>Zc(o,{...s,storage:r}),"compactSession"),storage:r}}i(p1,"createSessionManager");var Rz={};o$(Rz,{App:()=>QR,AutocompleteContextProvider:()=>Qp,BUILTIN_COMMANDS:()=>UI,BackgroundTaskBar:()=>Bu,CONFIG_TEMPLATES:()=>kv,ChildActivitySurface:()=>Hm,ConsoleCapturer:()=>Vc,ConversationPageCacheCapacityError:()=>Ho,CoreConfigWriteConflictError:()=>_v,DEFAULT_UI_STATE:()=>Uf,DialogSurface:()=>Nm,DotsIndicator:()=>Xy,FILE_MODIFICATION_TOOLS:()=>ko,FileSessionStorage:()=>gr,FullscreenTranscriptLayout:()=>Rm,HistoryItemRenderer:()=>VR,InputPrompt:()=>Cs,IntegrationConfigConflictError:()=>Av,IntegrationConfigController:()=>Dv,KODAX_CONFIG_FILE:()=>Bv,KODAX_DIR:()=>zf,KODAX_EXAMPLE_CONFIG_FILE:()=>Yv,KODAX_INTEGRATION_EXAMPLE_FILES:()=>Xv,KODAX_SESSIONS_DIR:()=>Vr,KODAX_VERSION:()=>ts,KeyMatchers:()=>Hy,KeypressHandlerPriority:()=>vn,KeypressParser:()=>ac,KeypressProvider:()=>gu,LRUCache:()=>fs,LoadingIndicator:()=>uR,MemorySessionStorage:()=>_s,MessageActions:()=>km,MessageList:()=>Si,MessageSelector:()=>nk,NotificationsSurface:()=>Nu,PERMISSION_MODES:()=>bv,PREVIEW_MAX_LENGTH:()=>Fv,PendingInputsIndicator:()=>UA,ProgressIndicator:()=>qy,PromptComposer:()=>Mm,PromptFooter:()=>Mu,PromptFooterLeftSide:()=>Eu,PromptFooterRightSide:()=>_u,PromptHelpMenu:()=>Lm,PromptSuggestionsSurface:()=>Om,ProviderSetupConfigConflictError:()=>Zv,ProviderSetupInvalidConfigError:()=>eI,QueuedCommandsSurface:()=>Dm,RUNTIME_PERMISSION_PENDING_NOTICE:()=>vc,SessionReadError:()=>Ce,SimpleApp:()=>ZR,SimpleInputPrompt:()=>oR,SimpleMessageDisplay:()=>zR,SimpleStatusBar:()=>qR,SingleLineTextInput:()=>H0,Spinner:()=>zn,StashNotice:()=>Du,StatusBar:()=>Is,StatusNoticesSurface:()=>Bm,StreamingProvider:()=>Hu,StreamingState:()=>Er,SuggestionsDisplay:()=>$u,TOOL_STATUS_ICONS:()=>i$,TextBuffer:()=>cc,TextInput:()=>Xp,ThinkingIndicator:()=>lR,ToolCallDisplay:()=>zw,ToolCallStatus:()=>V,ToolGroup:()=>HA,ToolProgressBar:()=>Kw,ToolStatusBadge:()=>FA,TranscriptViewport:()=>_m,UIStateProvider:()=>Pu,_resetQueuedPromptsCacheForTests:()=>Gk,appendClientNotice:()=>i1,archiveSession:()=>tT,bootstrapAutoMode:()=>_c,calculateVisualCursorFromLayout:()=>Sp,calculateVisualLayout:()=>bn,collectBashWriteTargets:()=>gI,compactSession:()=>Zc,computeConfirmTools:()=>_a,conversationHistoryFromCapture:()=>qx,coreConfigWriteLockPath:()=>Mv,createCliEvents:()=>LA,createConversationEntryChain:()=>Os,createHistoryItem:()=>Au,createInteractiveContext:()=>bc,createJsonEvents:()=>PA,createKeyMatcher:()=>Hk,createKeypressManager:()=>qp,createMemorySessionStorage:()=>dE,createRecoveryHistoryItem:()=>Xu,createRetryHistoryItem:()=>Yu,createSessionConversationHistoryRevision:()=>Ns,createSessionManager:()=>p1,createStreamingManager:()=>jm,createToolCall:()=>Pm,darkTheme:()=>wp,dedupeSessions:()=>jP,deleteSession:()=>eT,detectTerminalCapabilities:()=>VA,detectTerminalHostProfile:()=>si,detectTerminalRenderHost:()=>ii,emitRecoveryHistoryItem:()=>TE,emitRetryHistoryItem:()=>xE,emptyConversationEntryChain:()=>Ph,ensureExampleConfigFile:()=>Jv,ensureExampleConfigFiles:()=>qv,executeCommand:()=>as,executeShellCommand:()=>Vu,exportSessionBundle:()=>r1,extendConversationEntryChain:()=>Yc,extractHistorySeedsFromMessage:()=>Ha,extractHistorySeedsFromMessages:()=>np,extractTextContent:()=>rp,extractTitle:()=>ri,findMostRecentResumableSession:()=>Mc,forkSession:()=>Jx,formatMessagePreview:()=>EI,generateId:()=>Lu,generateSavePattern:()=>mI,getBashOutsideProjectWriteRisk:()=>SI,getCharAtCodePoint:()=>JI,getCodePointLength:()=>Mn,getCommandRegistry:()=>GI,getConfigTemplate:()=>Ev,getCustomProviderConfig:()=>sL,getGitRoot:()=>Eo,getKeyDisplayName:()=>U0,getMcpServerConfig:()=>dL,getPlanModeBlockReason:()=>ti,getProviderList:()=>Vv,getProviderModel:()=>Kr,getProviderSetupCatalog:()=>tI,getTerminalHostCapabilities:()=>ds,getTerminalWidth:()=>qw,getTheme:()=>ce,getThemeNames:()=>p$,getVersion:()=>jv,getVisualWidth:()=>Lr,getVisualWidthCached:()=>yp,hasCursorUpViewportYankRisk:()=>ls,hasMainScreenRenderScrollRisk:()=>Yl,hydrateProcessEnvFromShell:()=>Wv,initializeSetupConfiguration:()=>iI,inspectProviderSetupReadiness:()=>nI,isAlwaysConfirmPath:()=>Da,isBashReadCommand:()=>Gn,isBashWriteCommand:()=>Mr,isClassicReplForced:()=>Jl,isCommandOnProtectedPath:()=>Jf,isFunctionKey:()=>Fy,isOwnedRendererPreferred:()=>ql,isPathInsideProject:()=>hI,isPermissionMode:()=>Rv,isPrintable:()=>j0,isProviderConfigured:()=>Kv,isRemoteConptyHost:()=>Ua,isScreenReader:()=>Jw,isShellCommand:()=>mE,isShellCommandSuccess:()=>hE,isTmuxControlMode:()=>Ga,isToolCallAllowed:()=>Na,isVsCodeTerminalHostEnv:()=>cs,isWideChar:()=>Ar,listCustomProviders:()=>iL,listMcpServers:()=>uL,listRegisteredCommands:()=>jI,listRunningSessions:()=>xd,listSessions:()=>Xx,loadAutoModeSettings:()=>Fa,loadConfig:()=>zv,loadFullTranscript:()=>ZP,loadSession:()=>QP,measureChildActivitySurfaceRows:()=>Wm,migrateLegacyIntegrationConfig:()=>Nv,minimalTheme:()=>ey,normalizePermissionMode:()=>Ma,parseCommand:()=>ss,parseExtensionsIntegrationDocument:()=>Lv,parseKeypress:()=>hu,parseMcpIntegrationDocument:()=>Aa,permissionModeDisplayName:()=>Vf,persistProviderSetupChoice:()=>rI,planLegacyIntegrationMigration:()=>Ov,prepareRuntimeConfig:()=>Yf,processSpecialSyntax:()=>Ih,providerSetupRestartInstructions:()=>oI,rateLimitedCall:()=>Qv,readConversationHistory:()=>t1,readExtensionsIntegration:()=>$v,readFullTranscript:()=>e1,readMcpIntegration:()=>es,readSessionCapture:()=>n1,registerConfiguredCustomProviders:()=>Hv,removeCustomProvider:()=>cL,removeMcpServer:()=>pL,renderSetupGuide:()=>sI,replBashPathSignalCollector:()=>Ba,resetTmuxControlModeProbeForTesting:()=>mp,resolveAutoModeSettings:()=>TI,resolveConfiguredTuiRendererMode:()=>us,resolveEffectiveTuiRendererMode:()=>ai,resolveFullscreenPolicy:()=>ci,resolveIntegrationConfigPath:()=>Pv,resolveInteractiveSurfacePreference:()=>Xl,resolveRuntimeEffortSelection:()=>$a,resolveRuntimeModelSelection:()=>Pa,resolveRuntimeProviderSelection:()=>La,restoreHistoryItemsFromSession:()=>zu,rewindSession:()=>Qx,runInkInteractiveMode:()=>Th,runInteractiveMode:()=>oL,runProviderSetupWizard:()=>aI,runSessionPicker:()=>_A,saveConfig:()=>rs,seedToHistoryItem:()=>ni,setActiveEntry:()=>Zx,splitByCodePoints:()=>In,supports256Colors:()=>Yw,supportsEmoji:()=>Xw,supportsTrueColor:()=>cd,supportsUnicode:()=>ao,themes:()=>ty,toReplRuntimeAutoModeSettings:()=>Ic,toolCallSeedToHistoryToolCall:()=>tp,touchContext:()=>Or,trimPersistedUiHistorySnapshot:()=>oo,truncateByVisualWidth:()=>Va,unarchiveSession:()=>nT,upsertCustomProvider:()=>aL,upsertMcpServer:()=>fL,useAutocomplete:()=>yu,useAutocompleteContext:()=>gi,useInputHistory:()=>Zp,useKeypress:()=>Wk,useKeypressManager:()=>Jp,useQueuedPromptContents:()=>Uk,useQueuedPrompts:()=>AS,useStreaming:()=>_S,useStreamingActions:()=>Cc,useStreamingState:()=>Tc,useTextBuffer:()=>em,useUI:()=>SS,useUIActions:()=>Sc,useUIState:()=>yc,validateMcpServerConfig:()=>ix,visualWidthCache:()=>hp,watchSessions:()=>rT,withCapture:()=>KA,withCaptureSync:()=>zA,withCoreConfigWriteLock:()=>jl,writeIntegrationDocument:()=>Ul});export{cs as a,ls as b,Ua as c,Yl as d,Ga as e,mp as f,ii as g,si as h,us as i,ai as j,Xl as k,ci as l,ds as m,ql as n,Jl as o,fs as p,Mn as q,Ar as r,Lr as s,JI as t,In as u,Va as v,hp as w,yp as x,bn as y,Sp as z,wp as A,ey as B,ty as C,ce as D,p$ as E,Xp as F,H0 as G,hu as H,ac as I,Fy as J,j0 as K,U0 as L,qp as M,gu as N,Jp as O,Hy as P,Qp as Q,gi as R,yu as S,Zp as T,cc as U,em as V,Cs as W,oR as X,zn as Y,Xy as Z,qy as _,lR as $,uR as aa,VR as ba,Si as ca,zR as da,Is as ea,qR as fa,QR as ga,ZR as ha,Rm as ia,km as ja,nk as ka,_m as la,Mm as ma,Eu as na,_u as oa,Mu as pa,Lm as qa,Lu as ra,Au as sa,Pm as ta,Pu as ua,yc as va,Sc as wa,SS as xa,$u as ya,Om as za,Nm as Aa,Dm as Ba,Nu as Ca,Bm as Da,Du as Ea,Bu as Fa,Wm as Ga,Hm as Ha,jm as Ia,Hu as Ja,Tc as Ka,Cc as La,_S as Ma,Wk as Na,Hk as Oa,AS as Pa,Uk as Qa,Gk as Ra,vc as Sa,Ic as Ta,bc as Ua,Or as Va,_c as Wa,_s as Xa,dE as Ya,Vu as Za,mE as _a,hE as $a,oo as ab,zu as bb,Mc as cb,Yu as db,xE as eb,Xu as fb,TE as gb,Th as hb,_A as ib,LA as jb,PA as kb,FA as lb,Kw as mb,zw as nb,HA as ob,UA as pb,cd as qb,Yw as rb,ao as sb,Xw as tb,qw as ub,Jw as vb,VA as wb,Vc as xb,KA as yb,zA as zb,oL as Ab,Ih as Bb,iL as Cb,sL as Db,aL as Eb,cL as Fb,uL as Gb,dL as Hb,fL as Ib,pL as Jb,ix as Kb,Ph as Lb,Yc as Mb,Os as Nb,Ns as Ob,Ho as Pb,Ce as Qb,gr as Rb,jP as Sb,Zc as Tb,Xx as Ub,QP as Vb,ZP as Wb,e1 as Xb,t1 as Yb,qx as Zb,n1 as _b,r1 as $b,i1 as ac,Jx as bc,Qx as cc,Zx as dc,xd as ec,eT as fc,tT as gc,nT as hc,rT as ic,p1 as jc,Rz as kc};
|