@kodax-ai/kodax 0.7.96 → 0.7.97-alpha.2
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 +86 -0
- package/README.md +85 -62
- package/README_CN.md +57 -67
- package/config-templates/config.example.jsonc +0 -14
- package/dist/chunks/{agent-7N427EVB.js → agent-J7SHFM5N.js} +1 -1
- package/dist/chunks/argument-completer-ZJQOWTIS.js +2 -0
- package/dist/chunks/{chunk-ABZDFK2X.js → chunk-2GV6MQ4T.js} +14 -14
- package/dist/chunks/{chunk-6QI3GOYG.js → chunk-3PS3YEDS.js} +1 -1
- package/dist/chunks/chunk-4VJMQDTH.js +417 -0
- package/dist/chunks/{chunk-NI7PBPUR.js → chunk-5DSUVP46.js} +1 -1
- package/dist/chunks/chunk-5P7RTSZT.js +21 -0
- package/dist/chunks/{chunk-XXNR6S4Q.js → chunk-6ZAQKFIM.js} +1 -1
- package/dist/chunks/chunk-7V2QBZ73.js +137 -0
- package/dist/chunks/{chunk-C7U542KM.js → chunk-F7DHZH6T.js} +1 -1
- package/dist/chunks/{chunk-7IMWOR34.js → chunk-HSRYDDPF.js} +1 -1
- package/dist/chunks/chunk-K3DQGSQU.js +372 -0
- package/dist/chunks/chunk-NO23K2CB.js +2 -0
- package/dist/chunks/{chunk-NKT3B3DR.js → chunk-OT5WHAX4.js} +1 -1
- package/dist/chunks/{chunk-YEAUDI6U.js → chunk-QGWHJIO4.js} +1 -1
- package/dist/chunks/chunk-QOFFAY5C.js +261 -0
- package/dist/chunks/{chunk-4PFZ7BEE.js → chunk-QVDTORL3.js} +11 -11
- package/dist/chunks/chunk-QZ4B4AWG.js +473 -0
- package/dist/chunks/chunk-RXDS6CNA.js +355 -0
- package/dist/chunks/{chunk-WV3DJVW4.js → chunk-VDGPJQL7.js} +135 -135
- package/dist/chunks/chunk-VEZ4WHPN.js +641 -0
- package/dist/chunks/chunk-ZPPAT25E.js +5 -0
- package/dist/chunks/chunk-ZQYWDI4O.js +1 -0
- package/dist/chunks/chunk-ZS2GUADU.js +498 -0
- package/dist/chunks/{chunk-GN2IY5YE.js → chunk-ZTYZYXGV.js} +1 -1
- package/dist/chunks/{chunk-EM4XJBTK.js → chunk-ZZQ4GDVU.js} +1 -1
- package/dist/chunks/{client-6WZZTTSV.js → client-MXOJ5XUN.js} +1 -1
- package/dist/chunks/{compaction-config-ZMEJU4U7.js → compaction-config-5VZSGKBQ.js} +1 -1
- package/dist/chunks/{construction-bootstrap-RX4DMHI7.js → construction-bootstrap-U2ZU2WAT.js} +1 -1
- package/dist/chunks/dist-CSLNWLOE.js +2 -0
- package/dist/chunks/dist-XXMJMJDU.js +2 -0
- package/dist/chunks/host-RUXYZFYN.js +2 -0
- package/dist/chunks/readline-helpers-JCVULR4C.js +2 -0
- package/dist/chunks/run-manager-DRIM5VNE.js +2 -0
- package/dist/chunks/utils-MQEBGKIX.js +2 -0
- package/dist/index.d.ts +63 -30
- package/dist/index.js +10 -6
- package/dist/kodax_bootstrap.js +1 -1
- package/dist/kodax_cli.js +1745 -1734
- package/dist/kodax_resume.js +32 -35
- package/dist/native/win32-x64/kodax-windows-sandbox.exe +0 -0
- package/dist/native/win32-x64/kodax-windows-text-transaction.node +0 -0
- package/dist/native/win32-x64/manifest.json +2 -2
- package/dist/sandbox-network-broker.js +77 -77
- package/dist/sdk-a2a.d.ts +33 -18
- package/dist/sdk-a2a.js +8 -9
- package/dist/sdk-agent.d.ts +33 -26
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-client.d.ts +40 -0
- package/dist/sdk-client.js +2 -0
- package/dist/sdk-coding.d.ts +87 -499
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.d.ts +3 -4
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.d.ts +11 -9
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.d.ts +3 -3
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +3 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +317 -70
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +580 -452
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-sandbox.js +1 -1
- package/dist/sdk-session.d.ts +13 -9
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +57 -57
- package/dist/types-chunks/{base.d-Bt9lhwSV.d.ts → base.d-ZBOdjDUT.d.ts} +2 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-DWFIMg0v.d.ts → bash-prefix-extractor.d-DvswAXKS.d.ts} +136 -66
- package/dist/types-chunks/{capability-learning.d-gRtO03f6.d.ts → capability-learning.d-B4pxKwP4.d.ts} +1 -1
- package/dist/types-chunks/{capability.d-Ch5Vos33.d.ts → capability.d-DOF3r0fJ.d.ts} +1 -1
- package/dist/types-chunks/{capsule.d-Dj1n6s0Y.d.ts → capsule.d-B4atvlxE.d.ts} +7 -19
- package/dist/types-chunks/client-contract-A1jdk6xz.d.ts +1993 -0
- package/dist/types-chunks/{controller.d-C0IM1Tud.d.ts → controller.d-BkUJ_3sl.d.ts} +1 -1
- package/dist/types-chunks/{controller.d-J2t1q8Ly.d.ts → controller.d-yyKajPTi.d.ts} +140 -1380
- package/dist/types-chunks/{cost-tracker.d-BWI4lFWn.d.ts → cost-tracker.d-BeaenODW.d.ts} +2 -47
- package/dist/types-chunks/{history-retrieval.d-CPN5PMBV.d.ts → history-retrieval.d-JdFfkeF3.d.ts} +2 -2
- package/dist/types-chunks/{manager.d-rtmywU9M.d.ts → manager.d-C_20XqCV.d.ts} +8 -1
- package/dist/types-chunks/manifest.d-Bw2i-zQi.d.ts +18 -0
- package/dist/types-chunks/provider-credential-context.d-BH2OaB1b.d.ts +47 -0
- package/dist/types-chunks/provider-request-observation.d-jL8T6wVO.d.ts +34 -0
- package/dist/types-chunks/{public-api.d-amBop8Nk.d.ts → public-api.d-Cq8ILMte.d.ts} +52 -13
- package/dist/types-chunks/{resolver.d-BrwLoWNr.d.ts → resolver.d-DLY01RHx.d.ts} +4 -2
- package/dist/types-chunks/{types.d-CSv0_cZC.d.ts → review-inbox.d-BeaLRNHx.d.ts} +251 -3
- package/dist/types-chunks/{shell-command-sets.d-oejwpP_7.d.ts → review-packet.d-D4bbTbq3.d.ts} +46 -3
- package/dist/types-chunks/{exec-policy.d-BPESl90L.d.ts → run-manager.d-C7Q71rin.d.ts} +385 -62
- package/dist/types-chunks/runtime-client-info-CxnlZlW5.d.ts +175 -0
- package/dist/types-chunks/{sdk-session-B6XjHNU1.d.ts → sdk-session-BDFjCpDn.d.ts} +12 -4
- package/dist/types-chunks/{side-query.d-DHWG1JZg.d.ts → side-query.d-DTrhVd_r.d.ts} +4 -3
- package/dist/types-chunks/trusted-repl-entry-vbUM8R6P.d.ts +445 -0
- package/dist/types-chunks/{types.d-CtO8mR1s.d.ts → types.d-BJTN-RZr.d.ts} +5 -5
- package/dist/types-chunks/{types.d-BrQMB-hy.d.ts → types.d-BjOq57-z.d.ts} +6 -0
- package/dist/types-chunks/types.d-o7t9dds4.d.ts +1484 -0
- package/dist/types-chunks/{utils.d-DcznBeQ3.d.ts → utils.d-CWiMhFfu.d.ts} +202 -36
- package/docs/CLIENT_CONTRACT.md +441 -0
- package/docs/SDK_MIGRATION.md +123 -0
- package/docs/SPACE_SDK_SEAMS.md +139 -0
- package/package.json +10 -5
- package/public_docs/README.md +12 -133
- package/public_docs/configuration/config-files.md +8 -14
- package/public_docs/sdk/embedder-guide.md +494 -420
- package/dist/chunks/argument-completer-FAIHW7HZ.js +0 -2
- package/dist/chunks/chunk-66XN5AFU.js +0 -417
- package/dist/chunks/chunk-7O2AIFNE.js +0 -373
- package/dist/chunks/chunk-DSXUXUZG.js +0 -5
- package/dist/chunks/chunk-GYO73UYQ.js +0 -275
- package/dist/chunks/chunk-HPCS3LZ5.js +0 -324
- package/dist/chunks/chunk-HZYRLIOC.js +0 -137
- package/dist/chunks/chunk-SC2ELSUS.js +0 -675
- package/dist/chunks/chunk-TEUD5VPJ.js +0 -471
- package/dist/chunks/chunk-TYZ2ZAYL.js +0 -487
- package/dist/chunks/dist-3UCCMCYR.js +0 -2
- package/dist/chunks/dist-F5IWZSAY.js +0 -2
- package/dist/chunks/host-W2JJ3V3Q.js +0 -2
- package/dist/chunks/run-manager-RBWU3EVE.js +0 -2
- package/dist/chunks/utils-DJ4ZFJGL.js +0 -2
- package/dist/runtime-worker.js +0 -5381
- package/dist/types-chunks/review-inbox.d-CTeUIKda.d.ts +0 -225
- package/dist/types-chunks/run-manager.d-hm1XgEou.d.ts +0 -94
- package/dist/types-chunks/trusted-repl-entry-D0w5M0UZ.d.ts +0 -323
- package/dist/types-chunks/types.d-B1l9pWyX.d.ts +0 -146
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{$ as yb,A as sb,Aa as Wy,B as ab,Ba as kb,C as xi,Ca as Eb,D as cc,Da as Mb,E as cb,Ea as _b,F as lc,Fa as Ab,G as lb,Ga as Lb,H as ub,Ha as Pb,I as Cs,Ia as Ob,J as gu,Ja as Do,K as db,Ka as vs,L as Rp,La as jy,M as yu,Ma as $b,N as Dy,O as fb,Oa as Uy,P as By,Pa as Bp,Q as Ti,Qa as Nb,R as kp,Ra as Db,S as uc,T as Ep,U as Mp,V as pb,W as mb,X as dc,Y as hb,Z as Ci,_ as gb,a as $r,aa as no,b as K,ba as Fy,c as Q$,ca as _p,d as kn,da as Fn,e as Sp,ea as ro,f as Sv,fa as Hy,g as xv,ga as Is,h as $o,ha as xr,i as ys,ia as Ap,j as xp,ja as wu,k as Za,ka as Lp,l as Tv,la as wb,m as ec,ma as Sb,n as qv,na as xb,o as Jv,oa as Tb,p as Qv,pa as Cb,q as Zv,qa as Ib,r as eb,ra as Pp,s as tb,sa as Op,t as nb,ta as Su,u as ic,ua as $p,v as rb,va as Np,w as ob,wa as Dp,x as sc,xa as vb,y as ib,ya as bb,z as ac,za as Rb}from"./chunk-SC2ELSUS.js";import{$ as nc,E as Bv,J as Fv,K as Si,L as xs,O as Hv,P as Wv,Q as jv,R as Uv,S as Gv,T as Vv,U as Kv,V as zv,W as Xv,Y as Cp,Z as Ts,_ as Ip,a as te,aa as rc,b as Cv,ba as oc,c as Iv,ca as vp,d as vv,da as No,e as bv,f as mu,g as Rv,h as tc,ha as Yv,i as kv,j as Ev,k as ws,l as Mv,m as _v,n as Av,o as hu,p as Lv,q as Tp,r as eo,s as Pv,t as Ov,u as $v,w as Nv,x as Dv,y as Ss,z as to}from"./chunk-GYO73UYQ.js";import{a as bp}from"./chunk-YEAUDI6U.js";import{$a as yv,A as fu,Ba as yi,Ca as dv,Da as Qa,Ga as yp,Ha as wi,Ia as fv,La as pv,Na as mv,Oa as Oo,R as av,S as cv,U as $y,V as lv,Va as Ny,W as uv,Wa as hv,Ya as gv,a as Ry,b as qf,c as ky,f as Py,g as mp,ia as hi,r as hp,s as gp,tb as wv,xa as pu,z as sv,za as gi,zb as wp}from"./chunk-TEUD5VPJ.js";import{J as ov,K as iv}from"./chunk-ABZDFK2X.js";import{Q as ev,mb as tv,nb as nv,ob as rv,q as uu,r as XI}from"./chunk-7O2AIFNE.js";import{$d as QI,F as mi,Id as du,Ld as Oy,Tb as JI,V as YI,c as zI,fb as pp,sb as qI,we as ZI}from"./chunk-66XN5AFU.js";import{$f as up,Gf as WI,Hf as jI,Ic as rp,Jf as qe,Ka as Lo,Kc as BI,Kf as Va,La as fi,Lb as OI,Lf as Bt,Nf as Ka,Of as za,Pf as sp,Qb as np,Qd as lu,Rd as op,Rf as Xa,Sb as $I,Sf as Ya,Ta as PI,Tf as qa,Uf as Po,Vf as ap,Wf as pi,Xf as UI,Yf as cp,Zf as lp,_f as Ay,ag as GI,bg as Ja,cf as ip,df as gs,fc as NI,gc as DI,hh as VI,ih as Ly,jh as KI,k as ms,of as FI,og as dp,pf as _y,pg as fp,r as LI,v as ut,vb as hs,wb as Bn,we as My,zb as Ey,zf as HI}from"./chunk-WV3DJVW4.js";import{b as rr,d as Jf,m as Qf,u as Zf,v as ep,z as tp}from"./chunk-DSXUXUZG.js";import{Fa as Yf,Ra as AI,Ta as by,hb as ps}from"./chunk-HZYRLIOC.js";import{a as i,c as J$}from"./chunk-ONUPGMER.js";import{spawnSync as Z$}from"node:child_process";function Fp(e){return e==="1"||e?.toLowerCase()==="true"}i(Fp,"isTruthyEnv");function Bb(e){return e==="0"||e?.toLowerCase()==="false"}i(Bb,"isFalseyEnv");function bs(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}i(bs,"isVsCodeTerminalHostEnv");function Rs(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}i(Rs,"hasCursorUpViewportYankRisk");function eN(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}i(eN,"isSshSession");function fc(e={}){let t=e.env??process.env;return Fp(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&eN(t)}i(fc,"isRemoteConptyHost");function xu(e={}){let t=e.env??process.env;return Rs(e)||bs(t)}i(xu,"hasMainScreenRenderScrollRisk");function tN(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}i(tN,"isTmuxControlModeEnvHeuristic");var Bo;function pc(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(tN(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(Bo!==void 0||(Bo=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return Bo;try{let o=Z$("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});o.status===0&&(Bo=o.stdout.trim()==="1")}catch{Bo=!1}return Bo}i(pc,"isTmuxControlMode");function Hp(){Bo=void 0}i(Hp,"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":pc(e)?"tmux_control_mode":bs(t)?"xtermjs_host":fc(e)?"remote_conpty_host":Rs(e)?"degraded_vt":"native_vt"}i(Ii,"detectTerminalRenderHost");var vi=Ii;function ks(e={}){let t=e.env??process.env;if(Fp(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}i(ks,"resolveConfiguredTuiRendererMode");function bi(e={}){let t=ks(e);if(t==="legacy"||t==="owned")return t;let n=Ii(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}i(bi,"resolveEffectiveTuiRendererMode");function Es(e={}){let t=e.env??process.env;if(Fp(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=ks({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(Es,"resolveInteractiveSurfacePreference");var nN={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},Fb={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function Ri(e,t="owned",n={}){let r=n.env??process.env;return Bb(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?Fb:nN:rN(e,t)}i(Ri,"resolveFullscreenPolicy");function rN(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 Fb;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}i(rN,"buildFullscreenPolicy");function Ms(e,t={}){let n=t.rendererMode??"owned",r=Ri(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(Ms,"getTerminalHostCapabilities");function Tu(e={}){return bi(e)==="owned"}i(Tu,"isOwnedRendererPreferred");function Cu(e={}){let t=e.env??process.env;return Fp(t.KODAX_FORCE_CLASSIC_REPL)&&!Bb(t.KODAX_FORCE_CLASSIC_REPL)}i(Cu,"isClassicReplForced");var _s=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}},Gy=1,Vy=2,oN=1e3,Hb;function jp(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return Hb??=new Intl.Segmenter("en",{granularity:"grapheme"}),Hb}i(jp,"getGraphemeSegmenter");function Hn(e){if(!e)return 0;let t=jp();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}i(Hn,"getCodePointLength");function Nr(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(Nr,"isWideChar");function Dr(e){if(!e)return 0;let t=0,n=jp();if(n)for(let r of n.segment(e))t+=Nr(r.segment)?Vy:Gy;else for(let r of e)t+=Nr(r)?Vy:Gy;return t}i(Dr,"getVisualWidth");function Wb(e,t){if(!e||t<0)return"";let n=jp();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(Wb,"getCharAtCodePoint");function En(e){if(!e)return[];let t=jp();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}i(En,"splitByCodePoints");function iN(e,t,n){return En(e).slice(t,n).join("")}i(iN,"sliceByCodePoints");function jb(e,t){let n=Math.max(0,t),r=En(e),o=0,s=0;for(;o<r.length;){let a=Nr(r[o])?Vy:Gy;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(jb,"splitAtVisualColumn");function mc(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=En(e);for(let u of l){let d=Nr(u)?2:1;if(c+d>s)break;a+=u,c+=d}return n&&a.length<e.length&&(a+=r),a}i(mc,"truncateByVisualWidth");var Wp=new _s(oN);function Up(e){let t=Wp.get(e);if(t!==void 0)return t;let n=Dr(e);return Wp.set(e,n),n}i(Up,"getVisualWidthCached");function Mn(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=En(l);for(;u<d.length;){let p="",m=0,h=u,g=-1;for(let x=u;x<d.length;x++){let T=d[x],S=Nr(T)?2:1;if(m+S>t){g>=0&&x-u>0?(p=d.slice(u,g).join(""),m=d.slice(u,g).reduce((I,v)=>I+(Nr(v)?2:1),0),h=g):p.length===0&&S>t&&(p=T,m=S,h=x+1);break}p+=T,m+=S,h=x+1,T===" "&&(g=x+1)}if(p.length>0||o.length===0){let x=u,T=o.length;o.push(p),s[c].push([T,x]),a.push([c,x])}u=h}}return{visualLines:o,logicalToVisualMap:s,visualToLogicalMap:a}}i(Mn,"calculateVisualLayout");function Gp(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[h,g]of a)if(g<=s)c=[h,g];else break;let[l,u]=c??a[0],d=r[l]??"",p=Math.max(0,s-u),m=Dr(iN(d,0,p));return[l,m]}i(Gp,"calculateVisualCursorFromLayout");var Vp={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",diffAddBackground:"#213A2B",diffRemoveBackground:"#4A221D"},symbols:{prompt:">",success:"\u2713",error:"\u2717",warning:"!",spinner:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]}},Ky={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",diffAddBackground:"#213A2B",diffRemoveBackground:"#4A221D"},symbols:{prompt:"$",success:"+",error:"-",warning:"?",spinner:["-","\\","|","/"]}};var zy={dark:Vp,minimal:Ky};function ue(e="dark"){return zy[e]??Vp}i(ue,"getTheme");function sN(){return Object.keys(zy)}i(sN,"getThemeNames");import{jsx as Un,jsxs as Cr,Fragment as wB}from"react/jsx-runtime";import{useMemo as Sm}from"react";import{jsx as vR}from"react/jsx-runtime";import{createContext as YD,useContext as Bs,useEffect as vc,useMemo as CR,useState as qD,useCallback as bR,useRef as pm}from"react";import{Stream as bD}from"node:stream";import{openSync as RD,writeSync as uR}from"node:fs";import{performance as kD}from"node:perf_hooks";import{tmpdir as ED}from"node:os";import{join as MD}from"node:path";import Xy,{forwardRef as lN,useContext as uN}from"react";import{createContext as aN}from"react";var hc=aN({isScreenReaderEnabled:!1});import{createContext as cN}from"react";var Kp=cN(void 0);var Ub=lN(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":o,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=uN(hc),u=n?Xy.createElement("ink-text",null,n):void 0;if(l&&r)return null;let d=Xy.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?Xy.createElement(Kp.Provider,{value:t},d):d});Ub.displayName="Box";var Tr=Ub;import mN,{useContext as Gb}from"react";import gc from"chalk";import ki from"chalk";var dN=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,fN=/^ansi256\(\s?(\d+)\s?\)$/;function pN(e){return e in ki}i(pN,"isNamedColor");function Br(e,t,n){if(!t)return e;if(pN(t)){let r=ki;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"?ki.hex(t)(e):ki.bgHex(t)(e);if(t.startsWith("ansi256")){let r=fN.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?ki.ansi256(o)(e):ki.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=dN.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?ki.rgb(o,s,a)(e):ki.bgRgb(o,s,a)(e)}return e}i(Br,"colorize");function Wn({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:m=!1}){let{isScreenReaderEnabled:h}=Gb(hc),g=Gb(Kp),x=h&&d?d:u;if(x==null)return null;let T=i(S=>{let I=S;n&&(I=gc.dim(I)),e&&(I=Br(I,e,"foreground"));let v=t??g;return v&&(I=Br(I,v,"background")),r&&(I=gc.bold(I)),o&&(I=gc.italic(I)),s&&(I=gc.underline(I)),a&&(I=gc.strikethrough(I)),c&&(I=gc.inverse(I)),I},"transform");return h&&p?null:mN.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:T,...m?{internal_cursorAnchor:!0}:{}},h&&d?d:u)}i(Wn,"Text");import hN,{useLayoutEffect as gN,useMemo as Vb,useState as yN}from"react";function Yy({items:e,children:t,style:n}){let[r,o]=yN(0),s=Vb(()=>e.slice(r),[e,r]);gN(()=>{o(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=Vb(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return hN.createElement("ink-box",{internal_static:!0,style:c},a)}i(Yy,"Static");import{writeSync as iD}from"node:fs";import Ns from"node:process";import aR from"react";import sD from"es-toolkit/compat/throttle";import jn from"ansi-escapes";import Vo from"is-in-ci";import aD from"auto-bind";import{onExit as cD}from"signal-exit";import lD from"patch-console";import{LegacyRoot as uD,ConcurrentRoot as dD}from"react-reconciler/constants.js";import fD from"yoga-layout";import pD from"wrap-ansi";import mD from"terminal-size";import wN from"node:process";var zp=i(()=>wN.env.DEV==="true","isDev");import VN from"react-reconciler";import{DefaultEventPriority as KN,NoEventPriority as a0}from"react-reconciler/constants.js";import*as Ei from"scheduler";import r0 from"yoga-layout";import{createContext as zN}from"react";import PN from"yoga-layout";import SN from"widest-line";var Kb=new Map,xN=i(e=>{if(e.length===0)return{width:0,height:0};let t=Kb.get(e);if(t)return t;let n=SN(e),r=e.split(`
|
|
3
|
-
`).length,o={width:n,height:r};return Kb.set(e,o),o},"measureText"),qy=xN;import TN from"wrap-ansi";import CN from"cli-truncate";var zb={},IN=i((e,t,n)=>{let r=e+String(t)+String(n),o=zb[r];if(o)return o;let s=e;if(n==="wrap"&&(s=TN(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=CN(e,t,{position:a})}return zb[r]=s,s},"wrapText"),Xp=IN;var vN=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),bN=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),RN=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),qb=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),kN=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),Jb=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),Xb=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!vN(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!bN(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!RN(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),Yb=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"),EN=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!qb(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!kN(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),MN=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"),_N=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"),Jy=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(Jb(t))return!0;return!1},"hasAnsiControlCharacters"),yc=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"),Qb=i(e=>{if(!Jy(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 yc(t,e,n,r);if(a==="["){let u=Xb(e,r+2);if(u===void 0)return yc(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=MN(a);if(c!==void 0){let u=Yb(e,r+2,c.allowBellTerminator);if(u===void 0)return yc(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let l=EN(e,r+1);if(l===void 0){if(qb(a))return yc(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(o==="\x9B"){let a=Xb(e,r+1);if(a===void 0)return yc(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),r=a.endIndex,n=r;continue}let s=_N(o);if(s!==void 0){let a=Yb(e,r+1,s.allowBellTerminator);if(a===void 0)return yc(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(o==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:o}),r++,n=r;continue}if(Jb(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 AN=/^[\d:;]*$/,LN=i(e=>{if(!Jy(e))return e;let t="";for(let n of Qb(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&AN.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),Zb=LN;var e0=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=e0(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return Zb(t)},"squashTextNodes"),Iu=e0;var Yp=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:PN.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(ON.bind(null,t)),t},"createNode"),qp=i((e,t)=>{t.parentNode&&vu(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")&&Jp(e)},"appendChildNode"),Qy=i((e,t,n)=>{t.parentNode&&vu(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")&&Jp(e)},"insertBeforeNode"),vu=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")&&Jp(e)},"removeChildNode"),Zy=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),ew=i((e,t)=>{e.style=t},"setStyle"),t0=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return bu(t,e),t},"createTextNode"),ON=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Iu(e),r=qy(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=Xp(n,t,o);return qy(s)},"measureTextNode"),n0=i(e=>{if(e?.parentNode)return e.yogaNode??n0(e.parentNode)},"findClosestYogaNode"),Jp=i(e=>{n0(e)?.markDirty()},"markNodeAsDirty"),bu=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Jp(e)},"setTextNodeValue");import Oe from"yoga-layout";var NN=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?Oe.POSITION_TYPE_ABSOLUTE:Oe.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(Oe.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(Oe.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(Oe.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(Oe.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),DN=i((e,t)=>{"margin"in t&&e.setMargin(Oe.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(Oe.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(Oe.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(Oe.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(Oe.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(Oe.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(Oe.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),BN=i((e,t)=>{"padding"in t&&e.setPadding(Oe.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(Oe.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(Oe.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(Oe.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(Oe.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(Oe.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(Oe.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),FN=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(Oe.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(Oe.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(Oe.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(Oe.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(Oe.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(Oe.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(Oe.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(Oe.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(Oe.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(Oe.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(Oe.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(Oe.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(Oe.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(Oe.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(Oe.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(Oe.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(Oe.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(Oe.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(Oe.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(Oe.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(Oe.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),HN=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"),WN=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Oe.DISPLAY_FLEX:Oe.DISPLAY_NONE)},"applyDisplayStyles"),jN=i((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(Oe.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(Oe.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(Oe.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(Oe.EDGE_RIGHT,n)}},"applyBorderStyles"),UN=i((e,t)=>{"gap"in t&&e.setGap(Oe.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(Oe.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(Oe.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),GN=i((e,t={})=>{NN(e,t),DN(e,t),BN(e,t),FN(e,t),HN(e,t),WN(e,t),jN(e,t),UN(e,t)},"styles"),tw=GN;if(zp())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 o0=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"),i0=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Qp=a0,nw,s0={name:void 0,version:void 0},Fo=VN({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=Yp(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){ew(s,c),s.yogaNode&&tw(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"){nw=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}Zy(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 t0(e)},resetTextContent(){},hideTextInstance(e){bu(e,"")},unhideTextInstance(e,t){bu(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(r0.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(r0.DISPLAY_FLEX)},appendInitialChild:qp,appendChild:qp,insertBefore:Qy,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:Ei.unstable_scheduleCallback,cancelCallback:Ei.unstable_cancelCallback,shouldYield:Ei.unstable_shouldYield,now:Ei.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:qp,insertInContainerBefore:Qy,removeChildFromContainer(e,t){vu(e,t),i0(t.yogaNode)},commitUpdate(e,t,n,r){nw&&e.internal_static&&(nw.isStaticDirty=!0);let o=o0(n,r),s=o0(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){ew(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}Zy(e,a,c)}s&&e.yogaNode&&tw(e.yogaNode,s)}},commitTextUpdate(e,t,n){bu(e,n)},removeChild(e,t){vu(e,t),i0(t.yogaNode)},setCurrentUpdatePriority(e){Qp=e},getCurrentUpdatePriority:i(()=>Qp,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Qp!==a0?Qp:KN},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:zN(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:s0.name,rendererVersion:s0.version});import QN from"widest-line";import ZN from"indent-string";import Mi from"yoga-layout";import Zp from"yoga-layout";var XN=i(e=>e.getComputedWidth()-e.getComputedPadding(Zp.EDGE_LEFT)-e.getComputedPadding(Zp.EDGE_RIGHT)-e.getComputedBorder(Zp.EDGE_LEFT)-e.getComputedBorder(Zp.EDGE_RIGHT),"getMaxWidth"),c0=XN;import YN from"cli-boxes";import em from"chalk";var qN=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?YN[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,m=n.style.borderBottomDimColor??n.style.borderDimColor,h=n.style.borderLeftDimColor??n.style.borderDimColor,g=n.style.borderRightDimColor??n.style.borderDimColor,x=n.style.borderTop!==!1,T=n.style.borderBottom!==!1,S=n.style.borderLeft!==!1,I=n.style.borderRight!==!1,v=o-(S?1:0)-(I?1:0),$=x?Br((S?a.topLeft:"")+a.top.repeat(v)+(I?a.topRight:""),c,"foreground"):void 0;x&&p&&($=em.dim($));let _=s;x&&(_-=1),T&&(_-=1);let N=(Br(a.left,u,"foreground")+`
|
|
12
|
-
`).repeat(_);h&&(N=em.dim(N));let B=(Br(a.right,d,"foreground")+`
|
|
13
|
-
`).repeat(_);g&&(B=em.dim(B));let k=T?Br((S?a.bottomLeft:"")+a.bottom.repeat(v)+(I?a.bottomRight:""),l,"foreground"):void 0;T&&m&&(k=em.dim(k));let D=x?1:0;$&&r.write(e,t,$,{transformers:[]}),S&&r.write(e,t+D,N,{transformers:[]}),I&&r.write(e+o-1,t+D,B,{transformers:[]}),k&&r.write(e,t+s-1,k,{transformers:[]})}},"renderBorder"),l0=qN;var JN=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 m=Br(" ".repeat(d),n.style.backgroundColor,"background");for(let h=0;h<p;h++)r.write(e+a,t+l+h,m,{transformers:[]})},"renderBackground"),u0=JN;function tm(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,m=Math.max(0,n-r),h=Math.max(0,Math.min(Math.floor(t),m)),x=s&&n>=o?m:h,T=a!==void 0||c!==void 0?Math.max(a??0,Math.min(x,Math.min(m,c??m))):x,S=l&&u!==void 0,I=Math.max(0,Math.floor(u??0)),v=l?S?I:0:T,$=S?v:T,_=null;if(d!==void 0&&d!==$&&r>0){let N=p+r-1;N>=p&&(_={top:p,bottom:N,delta:$-d})}return{scrollHeight:n,viewportTop:T,appliedScrollTop:$,scrollTop:T,scrollOffsetY:v,scrollHint:_}}i(tm,"computeScrollState");var e1=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
|
|
14
|
-
`.repeat(o)+ZN(t,r)}return t},"applyPaddingToText"),nm=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===Mi.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=Iu(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=>nm(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"),rw=null,ow=null;function d0(){rw=null,ow=null}i(d0,"resetScrollHint");function f0(){return rw}i(f0,"getScrollHint");function p0(){return ow}i(p0,"getScrollRepaint");var m0=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();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 h=Iu(e);if(h.length>0){let g=QN(h),x=c0(c);if(g>x){let T=e.style.textWrap??"wrap";h=Xp(h,x,T)}h=e1(e,h),t.write(l,u,h,{transformers:d})}return}let p=!1,m=0;if(e.nodeName==="ink-box"){u0(l,u,e,t),l0(l,u,e,t);let h=e.style.overflowX??e.style.overflow,g=e.style.overflowY??e.style.overflow,x=h==="hidden"||h==="scroll",T=g==="hidden"||g==="scroll";if(g==="scroll"){let S=c.getComputedBorder(Mi.EDGE_TOP),I=c.getComputedBorder(Mi.EDGE_BOTTOM),v=Math.max(0,c.getComputedHeight()-S-I),$=e.attributes?.virtualScrollWindowed===!0,_=e.childNodes[0],N=Math.max(0,Math.floor($?e.attributes?.scrollHeight??0:_?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),B=typeof e.scrollHeight=="number"?e.scrollHeight:N,k=tm({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:N,viewportHeight:v,previousScrollHeight:B,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:$,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+S});e.scrollHeight=k.scrollHeight,e.scrollViewportHeight=v,e.scrollViewportTop=k.viewportTop,e.appliedScrollTop=k.appliedScrollTop,k.scrollHint&&(rw=k.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&(ow={top:k.scrollHint.top,bottom:k.scrollHint.bottom})),e.attributes&&e.attributes.pendingScrollDelta&&(e.attributes.pendingScrollDelta=0),e.scrollTop=k.scrollTop,m=k.scrollOffsetY}if(x||T){let S=x?l+c.getComputedBorder(Mi.EDGE_LEFT):void 0,I=x?l+c.getComputedWidth()-c.getComputedBorder(Mi.EDGE_RIGHT):void 0,v=T?u+c.getComputedBorder(Mi.EDGE_TOP):void 0,$=T?u+c.getComputedHeight()-c.getComputedBorder(Mi.EDGE_BOTTOM):void 0;t.clip({x1:S,x2:I,y1:v,y2:$}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let h of e.childNodes)m0(h,t,{offsetX:l,offsetY:u-m,transformers:d,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),iw=m0;import t1 from"slice-ansi";import n1 from"string-width";import{styledCharsFromTokens as r1,styledCharsToString as o1,tokenize as i1}from"@alcalzone/ansi-tokenize";var sw=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=r1(i1(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=n1(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}},wc=class{static{i(this,"Output")}width;height;operations=[];caches=new sw;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",m=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let h=this.caches.getWidestLine(o);if(a+h<u.x1||a>u.x2)continue}if(m){let h=l.length;if(c+h<u.y1||c>u.y2)continue}if(p&&(l=l.map(h=>{let g=a<u.x1?u.x1-a:0,x=this.caches.getStringWidth(h),T=a+x>u.x2?u.x2-a:x;return t1(h,g,T)}),a<u.x1&&(a=u.x1)),m){let h=c<u.y1?u.y1-c:0,g=l.length,x=c+g>u.y2?u.y2-c:g;l=l.slice(h,x),c<u.y1&&(c=u.y1)}}let d=0;for(let[p,m]of l.entries()){let h=t[c+d];if(!h)continue;for(let T of s)m=T(m,p);let g=this.caches.getStyledChars(m),x=a;for(let T of g){h[x]=T;let S=Math.max(1,this.caches.getStringWidth(T.value));if(S>1)for(let I=1;I<S;I++)h[x+I]={type:"char",value:"",fullWidth:!1,styles:T.styles};x+=S}d++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let o=r.filter(s=>s!==void 0);return o1(o).trimEnd()}).join(`
|
|
18
|
-
`),height:t.length}}};var io={Single:0,Wide:1,SpacerTail:2},oo={char:" ",width:io.Single,style:"",hyperlink:void 0};function h0(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(oo);return{width:e,height:t,cells:n}}i(h0,"createScreen");function As(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}i(As,"cellAt");function g0(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(oo),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(g0,"createScreenBuilder");function*rm(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=As(e,s,o),c=As(t,s,o);s1(a,c)||(yield{x:s,y:o,prev:a,next:c})}}i(rm,"diffEach");function y0(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]=oo},"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]??oo;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 m=0;m<a;m++)c[p*a+m]=e.cells[(p-d)*a+m]??oo;for(let p=o;p<=o+d-1;p++)u(p)}return{...e,cells:c}}i(y0,"shiftRowsRegion");function s1(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(s1,"cellsEqual");var aw="\x1B]8;";function a1(e){return e.endsWith("\x07")?e.slice(0,-1):e}i(a1,"stripOsc8Terminator");function c1(e){if(!e.startsWith(aw))return;let t=e.slice(aw.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),o=a1(r);return o.length>0?o:void 0}i(c1,"parseOsc8Url");function l1(e){if(e.value==="")return{char:"",width:io.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(aw)){let o=c1(r.code);o!==void 0&&(n=o)}else t+=r.code;return{char:e.value,width:e.fullWidth?io.Wide:io.Single,style:t,hyperlink:n}}i(l1,"styledCharToCell");function om(e){let t=e.getGrid(),n=e.width,r=e.height,o=g0(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=l1(d);p.char===oo.char&&p.width===oo.width&&p.style===oo.style&&p.hyperlink===oo.hyperlink||o.setCellAt(u,a,p)}}return o.build()}i(om,"outputToScreen");var u1=i((e,t,n)=>{if(e.yogaNode){if(t){let m=nm(e,{skipStaticElements:!0}),h=m===""?0:m.split(`
|
|
19
|
-
`).length,g="";return e.staticNode&&(g=nm(e.staticNode,{skipStaticElements:!1})),{output:m,outputHeight:h,staticOutput:g?`${g}
|
|
20
|
-
`:"",frame:void 0}}let r=new wc({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});d0(),iw(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new wc({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),iw(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=om(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:f0(),scrollRepaint:p0(),...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"),cw=u1;function or(...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(or,"csi");function w0(e=1){return e===0?"":or(e,"A")}i(w0,"cursorUp");function d1(e=1){return e===0?"":or(e,"B")}i(d1,"cursorDown");function f1(e=1){return e===0?"":or(e,"C")}i(f1,"cursorForward");function p1(e=1){return e===0?"":or(e,"D")}i(p1,"cursorBack");function S0(e){return or(e,"G")}i(S0,"cursorTo");var m1=or("G"),x0=or("H");function T0(e,t){let n="";return e<0?n+=p1(-e):e>0&&(n+=f1(e)),t<0?n+=w0(-t):t>0&&(n+=d1(t)),n}i(T0,"cursorMove");var lw=or(2,"K");function C0(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=lw,n<e-1&&(t+=w0(1));return t+=m1,t}i(C0,"eraseLines");var I0=or("r"),v0="\x1B7",b0="\x1B8";function R0(e,t){return or(e,t,"r")}i(R0,"setScrollRegion");function k0(e=1){return or(e,"S")}i(k0,"scrollUp");function E0(e=1){return or(e,"T")}i(E0,"scrollDown");var Ru=or(0,"m");function M0(e){return`\x1B]${e.join(";")}\x07`}i(M0,"osc");function h1(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(h1,"osc8Id");function ku(e,t){if(!e)return Sc;let n={id:h1(e),...t??{}},r=Object.entries(n).map(([o,s])=>`${o}=${s}`).join(":");return M0(["8",r,e])}i(ku,"link");var Sc=M0(["8","",""]);function uw(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=As(t,c,s);!l||l.width===io.SpacerTail||(l.hyperlink!==o&&(o!==void 0&&(a+=Sc),l.hyperlink!==void 0&&(a+=ku(l.hyperlink)),o=l.hyperlink),l.style!==r&&(r!==""&&(a+=Ru),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}o!==void 0&&(a+=Sc,o=void 0),r!==""&&(a+=Ru,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
|
|
22
|
-
`)}]}i(uw,"renderFullFrame");var g1=Object.freeze([]),y1=Object.freeze([]);function Ls(e,t){if(e===t)return{patches:g1,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:Ru}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}i(Ls,"transitionStyle");function Mu(e,t){let n=Ls(e,t),r="";for(let o of n.patches)o.type==="stdout"&&(r+=o.content);return{str:r,current:n.current}}i(Mu,"transitionStyleStr");function Ho(e,t){if(e===t)return{patches:y1,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:Sc}),t!==void 0&&n.push({type:"stdout",content:ku(t)}),{patches:n,current:t}}i(Ho,"transitionHyperlink");function _0(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(_0,"needsWidthCompensation");var Ps=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}},Wo={type:"carriageReturn"},Eu={type:"stdout",content:`
|
|
23
|
-
`};function _u(e,t,n){let r=t.width===io.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&&_0(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(_u,"writeCellWithStyleStr");function Os(e,t,n){e.txn(r=>{let o=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[Wo,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:s!==0?[[Wo,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:[[{type:"cursorMove",x:o,y:s}],{dx:o,dy:s}]})}i(Os,"moveCursorTo");function Au(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(m=>{let h=new Array(1+p);h[0]=Wo;for(let g=0;g<p;g++)h[1+g]=Eu;return[h,{dx:-m.x,dy:p}]})}for(let p=0;p<t.screen.width;p++){let m=As(t.screen,p,c);if(!m||m.width===io.SpacerTail||m.char===" "&&m.style===""&&m.hyperlink===void 0)continue;Os(e,p,c);let h=Ho(a,m.hyperlink);for(let x of h.patches)e.txn(()=>[[x],{dx:0,dy:0}]);a=h.current;let g=Mu(s,m.style);_u(e,m,g.str)&&(s=g.current)}let l=Ls(s,"");for(let p of l.patches)e.txn(()=>[[p],{dx:0,dy:0}]);s=l.current;let u=Ho(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?[[Wo],{dx:-p.x,dy:0}]:[[Wo,Eu],{dx:-p.x,dy:1}])}if(s!==""||a!==void 0){let c=Ls(s,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);let l=Ho(a,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}])}}i(Au,"renderFrameSlice");function dw(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++)w1(e,t,a)}i(dw,"repaintFrameRows");function w1(e,t,n){let r="",o;Os(e,0,n),e.txn(()=>[[{type:"stdout",content:Sc+Ru},{type:"eraseLine"}],{dx:0,dy:0}]);for(let s=0;s<t.screen.width;s++){let a=As(t.screen,s,n);if(!a||a.width===io.SpacerTail||a.char===" "&&a.style===""&&a.hyperlink===void 0)continue;Os(e,s,n);let c=Ho(o,a.hyperlink);for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);o=c.current;let l=Mu(r,a.style);_u(e,a,l.str)&&(r=l.current)}for(let s of Ls(r,"").patches)e.txn(()=>[[s],{dx:0,dy:0}]);for(let s of Ho(o,void 0).patches)e.txn(()=>[[s],{dx:0,dy:0}])}i(w1,"repaintFrameRow");function fw(e,t){let n="";for(let r=0;r<e.width;r++){let o=As(e,r,t);n+=o?.char??" "}return n.trimEnd()}i(fw,"readLine");function xc(e,t,n=!1){let r=new Ps({x:0,y:0},e.viewport.width);Au(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(xc,"fullResetSequence_CAUSES_FLICKER");function im(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(im,"computeViewportState");function A0(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=im(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 rm(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(A0,"shouldFullReset");function L0(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}i(L0,"shouldSkipDiff");var sm=class{static{i(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return uw(n);let o=r.inlineBottomAnchored??!1,s=P0(t,o),a=P0(n,o);if(r.altScreen===!0&&t.screen.height===0&&a.screen.height>0)return xc(a,"clear",o);let c=A0(s,a,fw);if(c.reset)return xc(a,c.reason,o);if(a.scrollRepaint&&r.altScreen===!0)return S1(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:y0(s.screen,l.top,l.bottom,l.delta)};return[u,...O0(d,a,o)]}return O0(s,a,o)}reset(){}};function pw(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}i(pw,"emitPatches");function mw(e,t,n){if(t!==""){let r=Ls(t,"");pw(e,r.patches)}if(n!==void 0){let r=Ho(n,void 0);pw(e,r.patches)}return{style:"",hyperlink:void 0}}i(mw,"resetStyleAndHyperlink");function S1(e,t,n){let r=im(e,t),o=new Ps(e.cursor,t.viewport.width);r.shrinking&&$0(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&&dw(o,t,c.top,c.bottom);let l=N0(o,e,t,{...r,skipRows:c});return l.needsFullReset?xc(t,"offscreen"):(mw(o,l.currentStyle,l.currentHyperlink),r.growing&&Au(o,t,e.screen.height,t.screen.height),D0(o,t),o.diff)}i(S1,"renderScrollRepaint");function $0(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($0,"applyShrink");function N0(e,t,n,r){let o="",s,a=!1;for(let c of rm(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 m=!!(p&&p.char===" "&&p.style===""&&p.hyperlink===void 0);if(!L0(d,p,m)){if(u<r.viewportY){a=!0;break}if(Os(e,l,u),p){let h=Ho(s,p.hyperlink);pw(e,h.patches),s=h.current;let g=Mu(o,p.style);_u(e,p,g.str)&&(o=g.current)}else if(d){let h=mw(e,o,s);o=h.style,s=h.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:o,currentHyperlink:s,needsFullReset:a}}i(N0,"diffPass");function P0(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(P0,"clampRestingCursor");function D0(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]=Wo;for(let a=0;a<r;a++)s[1+a]=Eu;return[s,{dx:-n.x,dy:r}]}let o=t.cursor.y-n.y;return o!==0||n.x!==t.cursor.x?[[Wo,{type:"cursorMove",x:t.cursor.x,y:o}],{dx:t.cursor.x-n.x,dy:o}]:[[],{dx:0,dy:0}]}):Os(e,t.cursor.x,t.cursor.y)}i(D0,"restoreCursor");function O0(e,t,n=!1){let r=im(e,t),o=new Ps(e.cursor,t.viewport.width);r.shrinking&&$0(o,e,t);let s=N0(o,e,t,r);return s.needsFullReset?xc(t,"offscreen",n):(mw(o,s.currentStyle,s.currentHyperlink),r.growing&&Au(o,t,e.screen.height,t.screen.height,n),D0(o,t),o.diff)}i(O0,"renderIncremental");var x1="\x1B[?25l",T1="\x1B[?25h",C1=`\x1B[2J${x0}`,I1="\x1B[?2026h",v1="\x1B[?2026l";function b1(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return x1;case"cursorShow":return T1;case"cursorMove":return T0(e.x,e.y);case"cursorTo":return S0(e.col);case"eraseLine":return lw;case"clear":return C0(e.count);case"clearTerminal":return C1;case"hyperlink":return ku(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,r=Math.abs(e.delta),o=e.delta>0?k0(r):E0(r);return v0+R0(t,n)+o+I0+b0}}}i(b1,"patchToBytes");function am(e,t,n=!1){let r="",o=!1;for(let s of t)s.type==="clearTerminal"&&(o=!0),r+=b1(s);if(r.length!==0){if(n&&o){e.write(I1+r+v1);return}e.write(r)}}i(am,"applyDiff");function B0(e,t,n={}){if(t===void 0)return!1;let r=e.cellLogUpdate.render(e.prevFrame,t,n);return am(e.stdout,r,n.synchronized??!1),e.prevFrame=t,!0}i(B0,"applyCellFrame");function Lu(e,t){return{screen:h0(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}i(Lu,"emptyFrame");import R1 from"is-in-ci";var jo="\x1B[?2026h",so="\x1B[?2026l";function Uo(e){return"isTTY"in e&&e.isTTY===!0&&!R1}i(Uo,"shouldSynchronize");var k1="\x1B[?1049h",E1="\x1B[?1049l";var M1="\x1B[2J",_1="\x1B[?1000h\x1B[?1002h\x1B[?1006h",A1="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function cm(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return k1+(n?M1:"")+"\x1B[H"+(t?_1:"")}i(cm,"buildAlternateScreenEnterSequence");function Tc(e={}){return(e.mouseTracking!==!1?A1:"")+E1}i(Tc,"buildAlternateScreenExitSequence");var L1=new WeakMap,F0=L1;import{EventEmitter as Q1}from"node:events";import Z1 from"node:process";import $s,{useState as yw,useRef as Cc,useCallback as Wt,useMemo as Ic,useEffect as rR}from"react";import eD from"cli-cursor";var P1=i(e=>e>=48&&e<=63,"isCsiParameterByte"),O1=i(e=>e>=32&&e<=47,"isCsiIntermediateByte"),W0=i(e=>e>=64&&e<=126,"isCsiFinalByte");function $1(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(!(P1(s)||O1(s))&&!(s===91&&o===r))return W0(s)?{sequence:e.slice(t,o+1),nextIndex:o+1}:void 0}return"pending"}i($1,"parseCsiSequence");function N1(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let o=e.codePointAt(r-1);if(!(o===void 0||!W0(o)))return{sequence:e.slice(t,r),nextIndex:r}}i(N1,"parseSs3Sequence");function H0(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return $1(e,t,n);if(r==="O")return N1(e,t,n)}i(H0,"parseControlSequence");function D1(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(D1,"parseEscapedCodePoint");function B1(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=H0(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=H0(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=D1(e,o);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}i(B1,"parseKeypresses");function lm(){let e="";return{push(t){let n=B1(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(lm,"createInputParser");import{createContext as F1}from"react";var j0=F1({exit(){}});j0.displayName="InternalAppContext";var U0=j0;import{EventEmitter as H1}from"node:events";import{createContext as W1}from"react";var j1={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},G0=W1({stdin:j1,internal_eventEmitter:new H1,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});G0.displayName="InternalStdinContext";var V0=G0;import{createContext as U1}from"react";var G1={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},K0=U1({stdout:G1,write(){}});K0.displayName="InternalStdoutContext";var z0=K0;import{createContext as V1}from"react";var K1={isTTY:!1,write(){return!0},on(){},off(){}},X0=V1({stderr:K1,write(){}});X0.displayName="InternalStderrContext";var Y0=X0;import{createContext as z1}from"react";var q0=z1({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});q0.displayName="InternalFocusContext";var J0=q0;import{createContext as X1}from"react";var Q0=X1({setCursorPosition(){}});Q0.displayName="InternalCursorContext";var Z0=Q0;import q1,{PureComponent as J1}from"react";import*as um from"node:fs";import{cwd as nR}from"node:process";import Xt from"react";import eR from"stack-utils";import Y1 from"code-excerpt";var hw=i(e=>e?.replace(`file://${nR()}/`,""),"cleanupPath"),tR=new eR({cwd:nR(),internals:eR.nodeInternals()});function gw({error:e}){let t=e.stack?e.stack.split(`
|
|
24
|
-
`).slice(1):void 0,n=t?tR.parseLine(t[0]):void 0,r=hw(n?.file),o,s=0;if(r&&n?.line&&um.existsSync(r)){let a=um.readFileSync(r,"utf8");if(o=Y1(a,n.line),o)for(let{line:c}of o)s=Math.max(s,String(c).length)}return Xt.createElement(Tr,{flexDirection:"column",padding:1},Xt.createElement(Tr,null,Xt.createElement(Wn,{backgroundColor:"red",color:"white"}," ","ERROR"," "),Xt.createElement(Wn,null," ",e.message)),n&&r&&Xt.createElement(Tr,{marginTop:1},Xt.createElement(Wn,{dimColor:!0},r,":",n.line,":",n.column)),n&&o&&Xt.createElement(Tr,{marginTop:1,flexDirection:"column"},o.map(({line:a,value:c})=>Xt.createElement(Tr,{key:a},Xt.createElement(Tr,{width:s+1},Xt.createElement(Wn,{dimColor:a!==n.line,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0,"aria-label":a===n.line?`Line ${a}, error`:`Line ${a}`},String(a).padStart(s," "),":")),Xt.createElement(Wn,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&Xt.createElement(Tr,{marginTop:1,flexDirection:"column"},e.stack.split(`
|
|
25
|
-
`).slice(1).map(a=>{let c=tR.parseLine(a);return c?Xt.createElement(Tr,{key:a},Xt.createElement(Wn,{dimColor:!0},"- "),Xt.createElement(Wn,{dimColor:!0,bold:!0},c.function),Xt.createElement(Wn,{dimColor:!0,color:"gray","aria-label":`at ${hw(c.file)??""} line ${c.line} column ${c.column}`}," ","(",hw(c.file)??"",":",c.line,":",c.column,")")):Xt.createElement(Tr,{key:a},Xt.createElement(Wn,{dimColor:!0},"- "),Xt.createElement(Wn,{dimColor:!0,bold:!0},a,"\\t"," "))})))}i(gw,"ErrorOverview");var Pu=class extends J1{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?q1.createElement(gw,{error:this.state.error}):this.props.children}};var tD=" ",nD="\x1B[Z",rD="\x1B";function oR({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:o,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,d]=yw(!0),[p,m]=yw(void 0),[,h]=yw([]),g=Cc(0),x=Cc(0),T=Cc(new Q1);T.current.setMaxListeners(1/0);let S=Cc(void 0),I=Cc(lm()),v=Cc(void 0),$=Wt(()=>{v.current&&(clearImmediate(v.current),v.current=void 0)},[]),_=t.isTTY,N=Wt(()=>{S.current&&(t.removeListener("readable",S.current),S.current=void 0)},[t]),B=Wt(()=>{t.setRawMode(!1),N(),t.unref(),x.current=0,I.current.reset(),$()},[t,N,$]),k=Wt(de=>{_&&x.current>0&&B(),c(de)},[_,B,c]),D=Wt(de=>{if(de===""&&a){k();return}de===rD&&m(ke=>ke&&void 0)},[a,k]),U=Wt(de=>{D(de),T.current.emit("input",de)},[D]),j=Wt(()=>{$(),v.current=setImmediate(()=>{v.current=void 0;let de=I.current.flushPendingEscape();de&&U(de)})},[$,U]),W=Wt(()=>{$();let de;for(;(de=t.read())!==null;){let ke=I.current.push(de);for(let Ae of ke)U(Ae)}I.current.hasPendingEscape()&&j()},[t,U,$,j]),P=Wt(de=>{if(!_)throw t===Z1.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"),de){x.current===0&&(t.ref(),t.setRawMode(!0),S.current=W,t.addListener("readable",W)),x.current++;return}x.current!==0&&--x.current===0&&B()},[_,t,W,B]),b=Wt((de,ke)=>{let Ae=de.findIndex(it=>it.id===ke);for(let it=Ae+1;it<de.length;it++){let mt=de[it];if(mt?.isActive)return mt.id}},[]),fe=Wt((de,ke)=>{let Ae=de.findIndex(it=>it.id===ke);for(let it=Ae-1;it>=0;it--){let mt=de[it];if(mt?.isActive)return mt.id}},[]),C=Wt(()=>{h(de=>(m(ke=>{let Ae=de.find(mt=>mt.isActive)?.id;return b(de,ke)??Ae}),de))},[b]),ne=Wt(()=>{h(de=>(m(ke=>{let Ae=de.findLast(mt=>mt.isActive)?.id;return fe(de,ke)??Ae}),de))},[fe]);rR(()=>{let de=i(Ae=>{!u||g.current===0||(Ae===tD&&C(),Ae===nD&&ne())},"handleTabNavigation");T.current.on("input",de);let ke=T.current;return()=>{ke.off("input",de)}},[u,C,ne]);let se=Wt(()=>{d(!0)},[]),he=Wt(()=>{d(!1)},[]),Ee=Wt(de=>{h(ke=>(ke.some(it=>it?.id===de)&&m(de),ke))},[]),$e=Wt((de,{autoFocus:ke})=>{h(Ae=>(g.current=Ae.length+1,[...Ae,{id:de,isActive:!0}])),ke&&m(Ae=>Ae??de)},[]),Q=Wt(de=>{m(ke=>ke===de?void 0:ke),h(ke=>{let Ae=ke.filter(it=>it.id!==de);return g.current=Ae.length,Ae})},[]),Y=Wt(de=>{h(ke=>ke.map(Ae=>Ae.id!==de?Ae:{id:de,isActive:!0}))},[]),pe=Wt(de=>{m(ke=>ke===de?void 0:ke),h(ke=>ke.map(Ae=>Ae.id!==de?Ae:{id:de,isActive:!1}))},[]);rR(()=>()=>{eD.show(n),_&&x.current>0&&B()},[n,_,B]);let ft=Ic(()=>({exit:k}),[k]),Ue=Ic(()=>({stdin:t,setRawMode:P,isRawModeSupported:_,internal_exitOnCtrlC:a,internal_eventEmitter:T.current}),[t,P,_,a]),Ge=Ic(()=>({stdout:n,write:o}),[n,o]),Ve=Ic(()=>({stderr:r,write:s}),[r,s]),pt=Ic(()=>({setCursorPosition:l}),[l]),Rt=Ic(()=>({activeId:p,add:$e,remove:Q,activate:Y,deactivate:pe,enableFocus:se,disableFocus:he,focusNext:C,focusPrevious:ne,focus:Ee}),[p,$e,Q,Y,pe,se,he,C,ne,Ee]);return $s.createElement(U0.Provider,{value:ft},$s.createElement(V0.Provider,{value:Ue},$s.createElement(z0.Provider,{value:Ge},$s.createElement(Y0.Provider,{value:Ve},$s.createElement(J0.Provider,{value:Rt},$s.createElement(Z0.Provider,{value:pt},$s.createElement(Pu,{onError:k},e)))))))}i(oR,"App");oR.displayName="InternalApp";var iR=oR;var oD={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function sR(e){let t=0;for(let n of e)t|=oD[n];return t}i(sR,"resolveFlags");var Go={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var ww=i((e,t)=>(t<0?jn.cursorUp(-t):t>0?jn.cursorDown(t):"")+(e<0?jn.cursorBackward(-e):e>0?jn.cursorForward(e):""),"cursorMoveSeq"),Sw=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"),dm=i(()=>{},"noop"),hD=27,gD=91,yD=63,wD=117,SD=48,xD=57,TD=i(e=>e>=SD&&e<=xD,"isDigitByte"),cR=i((e,t)=>{if(e[t]!==hD||e[t+1]!==gD||e[t+2]!==yD)return;let n=t+3,r=n;for(;n<e.length&&TD(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===wD)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),CD=i(e=>{for(let t=0;t<e.length;t++)if(cR(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),ID=i(e=>{let t=[],n=0;for(;n<e.length;){let r=cR(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),xw=i(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),vD=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;terminalExitGuard;altScreenActive=!1;shellMode;mouseTrackingActive=!1;shellTransitionPhase=void 0;cursorHidden=!1;constructor(t){aD(this),this.options=t,this.rawStdoutWrite=t.stdout.write.bind(t.stdout),this.rawStderrWrite=t.stderr.write.bind(t.stderr),this.rootNode=Yp("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??Ns.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=sD(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 sm({isTTY:!!t.stdout.isTTY}),this.prevFrame=Lu(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?dD:uD;this.container=Fo.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=cD(this.unmount,{alwaysLast:!1}),zp()&&Fo.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),Vo||(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:mD()?.columns??80,"getTerminalWidth");resized=i(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){this.returnCursorToRest();let n=this.altScreenActive?this.lastOutputHeight>0?jn.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();n.length>0&&this.writeStdout(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=Lu(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(xw(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(){}registerTerminalExitGuard(t){return this.terminalExitGuard=t,()=>{this.terminalExitGuard===t&&(this.terminalExitGuard=void 0)}}installExternalStreamWriteGuard(){if(this.options.debug||Vo)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=Lu(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);this.withInternalStreamWrite(()=>am(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,fD.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}=cw(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t}),!Vo&&!this.options.debug&&!this.isScreenReaderEnabled&&!this.cursorHidden&&(this.writeStdout(jn.cursorHide),this.cursorHidden=!0);let c=s&&s!==`
|
|
28
|
-
`;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.writeStdout(this.fullStaticOutput+r);return}if(Vo){c&&this.writeStdout(s),this.lastOutput=r,this.lastOutputToRender=r+`
|
|
29
|
-
`,this.lastOutputHeight=o;return}if(this.isScreenReaderEnabled){let T=Uo(this.options.stdout);if(T&&this.writeStdout(jo),c){let v=this.lastOutputHeight>0?jn.eraseLines(this.lastOutputHeight):"";this.writeStdout(v+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){T&&this.writeStdout(so);return}let S=this.getTerminalWidth(),I=pD(r,S,{trim:!1,hard:!0});if(c)this.writeStdout(I);else{let v=this.lastOutputHeight>0?jn.eraseLines(this.lastOutputHeight):"";this.writeStdout(v+I)}this.lastOutput=r,this.lastOutputToRender=I,this.lastOutputHeight=I===""?0:I.split(`
|
|
30
|
-
`).length,T&&this.writeStdout(so);return}c&&(this.fullStaticOutput+=s);let u=!this.altScreenActive&&!!(a&&a.inputCursor)?[]:null,d=i(T=>{T&&(u?u.push(T):this.writeStdout(T))},"emit"),p=u?{write:d}:null;d(this.computeReturnToRestSeq());let m=this.altScreenActive,g=this.options.stdout.isTTY&&o>=this.options.stdout.rows&&m?r:r+`
|
|
31
|
-
`;if(this.lastOutputHeight>=this.options.stdout.rows&&m){if(Ns.env.KODAX_FULLSCREEN_CELLDIFF!=="0"&&this.altScreenActive&&this.fullStaticOutput===""){let I=Uo(this.options.stdout);I&&this.writeStdout(jo),this.applyCellFrame(a),I&&this.writeStdout(so),this.lastOutput=r,this.lastOutputToRender=g,this.lastOutputHeight=o;return}let T=Uo(this.options.stdout);T&&this.writeStdout(jo);let S=this.fullStaticOutput+g;if(this.altScreenActive){let I=this.lastOutputHeight>0?jn.eraseLines(this.lastOutputHeight):"";this.writeStdout(I+S)}else this.writeStdout(jn.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?S:g,this.lastOutputHeight=o,this.invalidateCellFrame(),T&&this.writeStdout(so);return}let x=!u&&Uo(this.options.stdout);try{if(c?(x&&d(jo),d(this.eraseInlineLiveBlock()+s),this.invalidateCellFrame(),this.applyCellFrame(a,p),x&&d(so)):!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(jo),d(this.eraseInlineLiveBlock()),this.invalidateCellFrame(),this.applyCellFrame(a,p),x&&d(so)):this.applyCellFrame(a,p),a?.inputCursor){let T=Sw(a,!this.altScreenActive),S=T(a.cursor),I=T(a.inputCursor),v=ww(I.x-S.x,I.y-S.y);d(v),this.displayCursor=I}}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=Uo(this.options.stdout),s={altScreen:this.altScreenActive,decstbmSafe:o,synchronized:n?!1:o,inlineBottomAnchored:!this.altScreenActive},a=this.withInternalStreamWrite(()=>B0(r,t,s));return this.prevFrame=r.prevFrame,a},"applyCellFrame");invalidateCellFrame=i(()=>{this.cellLogUpdate.reset(),this.prevFrame=Lu(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");eraseInlineLiveBlock=i(()=>this.lastOutputHeight>0?jn.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}=cw(this.rootNode,this.isScreenReaderEnabled,c);if(this.applyCellFrame(d,s),d?.inputCursor){let p=Sw(d,!this.altScreenActive),m=p(d.cursor),h=p(d.inputCursor),g=ww(h.x-m.x,h.y-m.y);o(g),this.displayCursor=h}this.lastOutput=l,this.lastOutputToRender=l,this.lastOutputHeight=u}finally{this.flushCursorTxn(r)}},"commitInlineScrollback");flushCursorTxn(t){let n=t.join("");if(!n)return;let r=Uo(this.options.stdout);this.writeStdout(r?jo+n+so:n)}render(t){let n=aR.createElement(hc.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},aR.createElement(iR,{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?Fo.updateContainer(n,this.container,null,dm):(Fo.updateContainerSync(n,this.container,null,dm),Fo.flushSyncWork())}computeReturnToRestSeq(){if(this.displayCursor&&this.prevFrame){let t=Sw(this.prevFrame,!this.altScreenActive)(this.prevFrame.cursor),n=ww(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(Vo){this.writeStdout(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStdout(t),this.invalidateCellFrame();return}let n=Uo(this.options.stdout);n&&this.writeStdout(jo),this.returnCursorToRest();let r=this.lastOutputHeight>0?jn.eraseLines(this.lastOutputHeight):"";this.writeStdout(r+t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(so)}writeToStderr(t){if(this.isUnmounted)return;if(this.options.debug){this.writeStderr(t),this.writeStdout(this.fullStaticOutput+this.lastOutput);return}if(Vo){this.writeStderr(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStderr(t),this.invalidateCellFrame();return}let n=Uo(this.options.stdout);n&&this.writeStdout(jo),this.returnCursorToRest();let r=this.lastOutputHeight>0?jn.eraseLines(this.lastOutputHeight):"";r.length>0&&this.writeStdout(r),this.writeStderr(t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(so)}restoreTrackedTerminalMode(){if(!this.altScreenActive)return;let t=Tc({mouseTracking:this.mouseTrackingActive});try{typeof this.options.stdout.fd=="number"?iD(this.options.stdout.fd,t):this.rawStdoutWrite(t)}finally{this.altScreenActive=!1,this.mouseTrackingActive=!1,this.shellTransitionPhase=void 0}}restoreManagedTerminal(){let t=[],n=this.terminalExitGuard;this.terminalExitGuard=void 0;try{n?.()}catch(r){t.push(r)}try{this.restoreTrackedTerminalMode()}catch(r){t.push(r)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Terminal restoration failed")}fenceRendererAfterUnmountFailure(){this.isUnmounted=!0,this.hasPendingThrottledRender=!1,typeof this.throttledOnRender?.cancel=="function"&&this.throttledOnRender.cancel()}unmount(t){try{this.unmountUnsafe(t)}catch(n){this.fenceRendererAfterUnmountFailure();try{this.restoreManagedTerminal()}catch(r){throw new AggregateError([n,r],"Renderer unmount and terminal restoration both failed")}throw n}this.restoreManagedTerminal()}unmountUnsafe(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(Ns.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{}Vo&&this.writeStdout(this.lastOutput+`
|
|
32
|
-
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?Fo.updateContainer(null,this.container,null,dm):(Fo.updateContainerSync(null,this.container,null,dm),Fo.flushSyncWork()),F0.delete(this.options.stdout);let{exitResult:s}=this,a=i(()=>{xw(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!xw(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()},Ns.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!Vo&&!this.options.debug){this.returnCursorToRest();let t=this.altScreenActive?this.lastOutputHeight>0?jn.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=lD((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=Ns.env.TERM??"",s=Ns.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in Ns.env||o==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!Vo&&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=ID(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);CD(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[>${sR(t)}u`),this.kittyProtocolEnabled=!0}},lR=vD;var Ou=class{static{i(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new lR(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");registerTerminalExitGuard=i(t=>this.engineInstance.registerTerminalExitGuard?.(t)??(()=>{}),"registerTerminalExitGuard");commitInlineScrollback=i(t=>{this.engineInstance.commitInlineScrollback?.(t)},"commitInlineScrollback")};var _i=null;function dR(){if(_i===-1)return null;if(_i!==null)return _i;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return _i=-1,null;let t=e==="1"||e==="true"?MD(ED(),`kodax-render-trace-${process.pid}.log`):e;try{return _i=RD(t,"a"),uR(_i,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
|
|
33
|
-
`),_i}catch{return _i=-1,null}}i(dR,"resolveTraceFd");function _D(e){let t=dR();if(t!==null)try{uR(t,e)}catch{}}i(_D,"traceLine");var fm=new WeakMap,AD={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},LD={isTTY:!1,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},PD={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function OD(e={}){return e instanceof bD?{stdout:e}:e}i(OD,"getOptions");function $D(e,t,n){let r=fm.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(),fm.set(e,r)),r}i($D,"getInstance");function Ds(e){return fm.get(e)}i(Ds,"getRendererInstance");function Tw(e,t){let n={stdout:AD,stdin:PD,stderr:LD,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...OD(t)};if(dR()!==null){let s=n.stdout,a=s.write.bind(s),c=0,l=0;s.write=((m,...h)=>(c+=1,l+=typeof m=="string"?Buffer.byteLength(m,"utf8"):m?.length??0,a(m,...h)));let u=0,d=0,p=n.onRender;n.onRender=m=>{let h=kD.now(),g=u===0?0:h-u,x=s,T=x.columns??0,S=x.rows??0;return _D(`frame=${d} renderTime=${m.renderTime.toFixed(2)}ms interval=${g.toFixed(2)}ms writes=${c} bytes=${l} viewport=${T}x${S}
|
|
34
|
-
`),c=0,l=0,u=h,d+=1,p?.(m)}}let o=$D(n.stdout,()=>new Ou(n),n.concurrent??!1);return o.render(e),{rerender:o.render,unmount(){o.unmount()},waitUntilExit:o.waitUntilExit,cleanup:i(()=>{fm.delete(n.stdout)},"cleanup"),clear:o.clear}}i(Tw,"render");var fR=Tr,pR=Wn,mR=Yy;import{Buffer as DD}from"node:buffer";var BD=/^(?:\x1b)([a-zA-Z0-9])$/,FD=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,gR={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"},yR=[...Object.values(gR),"backspace"],HD=i(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),WD=i(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),wR=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,jD=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,UD={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},GD={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"},hR={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"},SR=i(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),Cw=i(e=>SR(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function xR(e){return e===3?"release":e===2?"repeat":"press"}i(xR,"resolveEventType");function TR(e){return{ctrl:!!(e&Go.ctrl),shift:!!(e&Go.shift),meta:!!(e&Go.meta),option:!!(e&Go.alt),super:!!(e&Go.super),hyper:!!(e&Go.hyper),capsLock:!!(e&Go.capsLock),numLock:!!(e&Go.numLock)}}i(TR,"parseKittyModifiers");function VD(e){let t=wR.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(!SR(n))return null;let a;s&&(a=s.split(":").map(u=>Cw(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):hR[n]?(c=hR[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=Cw(n).toLowerCase(),l=!0),l&&!a&&(a=Cw(n)),{name:c,...TR(r),eventType:xR(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}i(VD,"parseKittyKeypress");function KD(e){let t=jD.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==="~"?GD[n]:UD[s];return a?{name:a,...TR(r),eventType:xR(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}i(KD,"parseKittySpecialKey");var Iw="\x1B[200~",zD="\x1B[201~";function XD(e){if(!e.startsWith(Iw))return null;let t=e.indexOf(zD,Iw.length);return t===-1?null:e.slice(Iw.length,t)}i(XD,"extractBracketedPaste");function vw(e=""){let t=e,n;if(DD.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=XD(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=VD(t);if(r)return r;let o=KD(t);if(o)return o;if(wR.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=BD.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=FD.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=gR[c]??"",s.shift=HD(c)||s.shift,s.ctrl=WD(c)||s.ctrl}return s}i(vw,"parseKeypress");var IR=new WeakSet,JD=50;function mm(e){return{columns:e?.columns??80,rows:e?.rows??24}}i(mm,"resolveTerminalSize");var Ai=YD(null),bw={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")};var RR={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function QD(e){for(let t of e)if(t.rawMode)return!0;return!1}i(QD,"hasRawModeSubscribers");function ZD({stdin:e,setRawMode:t,isRawModeSupported:n,preserveRawModeOnDetach:r}){let o=new Set,s,a=!1,c=!1,l=i(m=>{for(let h of o)h.listener(m)},"handleData"),u=i(()=>{if(c){try{t(!1)}catch{}c=!1}},"disableRawModeIfOwned"),d=i(()=>{let m=s;m?.off?.("data",l),m&&c&&r?.()===!0?(IR.add(m),c=!1):u(),a&&(m?.unref?.(),a=!1),s=void 0},"detachInput"),p=i(()=>{if(s&&s!==e&&d(),!e||o.size===0){d();return}if(s!==e){let h=IR.delete(e)&&e.isRaw===!0;e.hasRef?.()!==!0&&typeof e.ref=="function"&&(e.ref(),a=!0),e.on?.("data",l),e.resume?.(),s=e,c=h}if(!(n&&QD(o))){u();return}if(e.isRaw===!1&&!c)try{t(!0),c=!0}catch{c=!1}},"syncInputOwnership");return{subscribe(m,h={}){let g={listener:m,rawMode:h.rawMode!==!1};return o.add(g),p(),()=>{o.delete(g),p()}},dispose(){o.clear(),d()}}}i(ZD,"createTerminalInputController");var eB=i(({children:e,runtime:t})=>{let[n,r]=qD(()=>t.terminalSize);vc(()=>{if(r(mm(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=i(()=>{r(mm(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let o=bR(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=CR(()=>ZD({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,preserveRawModeOnDetach:t.preserveRawModeOnUnmount}),[t.stdin,t.isRawModeSupported,t.preserveRawModeOnUnmount,t.setRawMode]);vc(()=>()=>{s.dispose()},[s]);let a=CR(()=>({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 vR(Ai.Provider,{value:a,children:e})},"TuiRuntimeProvider");function tB(e){let t=e?.stdout??bw,n=e?.stdin??RR,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:mm(t),isTTY:t?.isTTY===!0,writeRaw:i(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),preserveRawModeOnUnmount:e?.preserveRawModeOnUnmount??(()=>!1),subscribeInput:i(()=>()=>{},"subscribeInput"),attachExit(s){o=s}}}i(tB,"createRuntimeValue");function bc(e,t){let n=tB(t),r=Tw(vR(eB,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}i(bc,"render");var A=fR,M=pR,Rc=mR;function nB(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&&yR.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(nB,"createCompatKeypress");function kc(e,t={}){let{isActive:n=!0}=t,r=pm(e),o=pm(null),s=pm(null);vc(()=>{r.current=e},[e]),vc(()=>{if(!n){o.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return o.current=lm(),()=>{o.current?.reset(),o.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=bR(c=>{let{input:l,key:u}=nB(vw(c));r.current(l,u)},[]);Nu(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)},JD))},{isActive:n,rawMode:!0})}i(kc,"useInput");function ao(){return{stdout:Bs(Ai)?.stdout??bw}}i(ao,"useStdout");function $u(){let e=Bs(Ai),t=e?.stdin??RR,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}i($u,"useStdin");function co(){return{exit:Bs(Ai)?.exit??(()=>{})}}i(co,"useApp");function Ec(){return Bs(Ai)?.stdout??bw}i(Ec,"useTerminalOutput");function Mc(){let e=Ec();return Bs(Ai)?.terminalSize??mm(e)}i(Mc,"useTerminalSize");function _c(){let e=Ec();return Bs(Ai)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}i(_c,"useTerminalWrite");function Nu(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,o=Bs(Ai),{stdin:s,setRawMode:a,isRawModeSupported:c}=$u(),l=pm(e);vc(()=>{l.current=e},[e]),vc(()=>{if(!n||!s)return;if(o)return o.subscribeInput(m=>{l.current(m)},{rawMode:r});let u=s,d=u.isRaw;r&&c&&d===!1&&a(!0);let p=i(m=>{l.current(m)},"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(Nu,"useTerminalInput");import{jsx as rB}from"react/jsx-runtime";import{writeSync as oB}from"node:fs";import{useInsertionEffect as iB,useMemo as sB}from"react";import{onExit as aB}from"signal-exit";function cB(e,t,n){if(!("fd"in e)||typeof e.fd!="number"){t(n);return}try{oB(e.fd,n)}catch{t(n)}}i(cB,"writeExitSequence");var Rw=i(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let o=Ec(),{rows:s}=Mc(),a=_c(),c=sB(()=>n&&o.isTTY===!0,[n,o]);return iB(()=>{if(!c)return;let l=Ds(o);l?.setShellMode?.("virtual",t);let u=!1,d=i(()=>{u||(u=!0,l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),cB(o,a,Tc({mouseTracking:t})),l?.setAltScreenActive?.(!1))},"restoreTerminal"),p=l?.registerTerminalExitGuard?.(d)??(()=>{}),m=aB(d,{alwaysLast:!0});return l?.beginShellTransition?.("enter-alt-screen"),a(cm({mouseTracking:t,clearOnEnter:r})),l?.setAltScreenActive?.(!0,t),()=>{m();try{d()}finally{p()}}},[r,c,t,o,a]),rB(A,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as Li,jsxs as AR}from"react/jsx-runtime";import{jsx as uB}from"react/jsx-runtime";import dB,{useEffect as hm,useImperativeHandle as fB,useMemo as pB,useRef as gm,useCallback as Bu,useState as mB}from"react";function lB(e,t,n){return Math.max(t,Math.min(e,n))}i(lB,"clamp");function Du(e){let t=Math.max(0,Math.floor(e.overscan??80)),n=Math.max(1,Math.floor(e.quantum??40)),r=Math.max(0,Math.floor(e.viewportHeight)),o=Math.max(0,Math.floor(e.contentHeight)),s=Math.max(0,o-r),a=lB(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),m=a-u;return{blockTop:u,blockHeight:p,inBlockOffset:m,bin:c}}i(Du,"computeOverscanWindow");function kR(e,t,n){let r=Du({...n,globalScrollTop:e}),o=Du({...n,globalScrollTop:t});return r.bin===o.bin}i(kR,"staysWithinOverscanBlock");function ER(e){let t=e??void 0;for(;t?.parentNode;)t=t.parentNode;return t&&typeof t.onRender=="function"?(t.onRender(),!0):!1}i(ER,"scheduleRenderFromNode");function MR(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:ym(t,t.scrollTop)}}i(MR,"normalizeScrollSnapshot");function _R(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(_R,"areSnapshotsEqual");function hB(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(hB,"areWindowsEqual");function ym(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(ym,"clampScrollTop");function kw(e){let t=Math.max(0,e.viewportHeight),n=ym(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=Du({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(kw,"resolveScrollWindow");function gB(e){let t=ym(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}i(gB,"resolveNativeScrollTop");var Ew=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:m,renderWindow:h,overscanRows:g})=>{let x=gm(null),T=gm(new Set),S=gm(MR({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l,overscanRows:g})),[I,v]=mB(()=>kw(S.current)),$=gm(null),_=Bu(()=>{for(let ne of T.current)ne()},[]),N=Bu((ne,se=!0)=>{let he=S.current,Ee=MR(ne),$e=kw(Ee);return S.current=Ee,v(Q=>hB(Q,$e)?Q:$e),se&&!_R(he,Ee)&&_(),{previous:he,snapshot:Ee,window:$e,changed:!_R(he,Ee)}},[_]),B=Bu(ne=>{let se=S.current,he=Math.max(0,Math.floor(se.overscanRows??0)),Ee=x.current;if(he<=0||!Ee||se.viewportHeight<=0)return!1;let $e=Math.max(0,se.scrollHeight-se.viewportHeight),Q=$.current??ym(se,se.scrollTop),Y=Math.max(0,Math.min(Math.floor(Q+ne),$e)),pe=Y-Q;if(Y===Q)return!0;let ft=Math.max(0,se.scrollHeight-se.viewportHeight-Q),Ue=Math.max(0,se.scrollHeight-se.viewportHeight-Y),Ge={viewportHeight:se.viewportHeight,contentHeight:se.scrollHeight,overscan:he};if(!kR(ft,Ue,Ge))return!1;let Ve=Du({...Ge,globalScrollTop:Ue});return Ee.scrollTop=Ue,Ee.attributes&&(Ee.attributes.inWindowScrollTop=Ve.inBlockOffset,Ee.attributes.pendingScrollDelta=pe),ER(Ee)?($.current=Y,se.sticky&&(S.current={...S.current,sticky:!1},p?.(!1)),_(),!0):!1},[_,p]),k=Bu(ne=>{let se=x.current;se&&S.current.overscanRows&&(se.scrollTop=ne.viewportTop)},[]);hm(()=>{let ne=S.current,se={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:ne.clampMin,clampMax:ne.clampMax,sticky:l,overscanRows:g},he=N(se);he.previous.sticky!==l&&p?.(l),he.window.scrollTop!==s&&d?.(he.window.scrollTop)},[N,p,d,g,a,s,l,c]);let D=Bu(()=>{let ne=x.current;if(!ne)return;$.current=null;let se=typeof ne.scrollHeight=="number"?Math.max(0,Math.floor(ne.scrollHeight)):void 0,he=typeof ne.scrollViewportHeight=="number"?Math.max(0,Math.floor(ne.scrollViewportHeight)):void 0,Ee=typeof ne.scrollViewportTop=="number"?Math.max(0,Math.floor(ne.scrollViewportTop)):void 0;if(se===void 0||he===void 0||Ee===void 0)return;let $e=Math.max(0,se-he-Ee),Q=N({...S.current,scrollTop:$e,scrollHeight:se,viewportHeight:he});Q.changed&&Q.window.scrollTop!==Q.previous.scrollTop&&d?.(Q.window.scrollTop)},[N,d]);hm(()=>{D()},[D]);let U=pB(()=>({scrollTo(ne){$.current=null;let se=N({...S.current,scrollTop:ne,pendingDelta:0,sticky:!1});se.previous.sticky!==!1&&p?.(!1),k(se.window),d?.(se.window.scrollTop)},scrollBy(ne){if(B(ne))return;let se=$.current??S.current.scrollTop;$.current=null;let he=N({...S.current,scrollTop:se+ne,pendingDelta:S.current.pendingDelta+Math.floor(ne),sticky:!1});he.previous.sticky!==!1&&p?.(!1),k(he.window),d?.(he.window.scrollTop)},scrollToElement(ne,se=0){$.current=null;let he=N({...S.current,scrollTop:ne-se,pendingDelta:0,sticky:!1});he.previous.sticky!==!1&&p?.(!1),k(he.window),d?.(he.window.scrollTop)},scrollToBottom(){$.current=null;let ne=N({...S.current,scrollTop:0,pendingDelta:0,sticky:!0});k(ne.window),d?.(ne.window.scrollTop),ne.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return $.current??S.current.scrollTop},getPendingDelta(){return S.current.pendingDelta},getScrollHeight(){return x.current?.scrollHeight??S.current.scrollHeight},getViewportHeight(){return x.current?.scrollViewportHeight??I.viewportHeight},getViewportTop(){return x.current?.scrollViewportTop??I.viewportTop},isSticky(){return S.current.sticky},subscribe(ne){return T.current.add(ne),()=>{T.current.delete(ne)}},setClampBounds(ne,se){$.current=null;let he=N({...S.current,clampMin:ne,clampMax:se});k(he.window),he.window.scrollTop!==he.previous.scrollTop&&d?.(he.window.scrollTop)}}),[N,d,p,B,k]);fB(u,()=>U,[U]),hm(()=>{m?.(I)},[m,I]),hm(()=>{S.current.pendingDelta!==0&&(S.current={...S.current,pendingDelta:0})},[I]);let j=$.current!==null,W=j?{...S.current,scrollTop:$.current}:S.current,P=j?kw(W):I,b=h?h(P):e,fe=Math.max(0,c+o),C=gB(W);return dB.createElement("ink-box",{ref:x,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:fe,paddingTop:o,overflowX:"visible",overflowY:"scroll"},scrollTop:C,scrollHeight:S.current.scrollHeight,scrollViewportHeight:S.current.viewportHeight,scrollViewportTop:P.viewportTop,pendingScrollDelta:S.current.pendingDelta,virtualScrollWindowed:!!h,...S.current.overscanRows?{inWindowScrollTop:P.inWindowScrollTop}:{},...S.current.clampMin!==void 0?{scrollClampMin:S.current.clampMin}:{},...S.current.clampMax!==void 0?{scrollClampMax:S.current.clampMax}:{},...l?{stickyScroll:!0}:{}},uB(A,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:b}))},"ScrollBox");var yB=80;function Fu(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}i(Fu,"resolveFullscreenChromeSlotText");function wm(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:yB)-2);return Math.max(1,Mn(e.split(`
|
|
36
|
-
`),n,0,0).visualLines.length)}i(wm,"measureFullscreenChromeSlotRows");var Mw=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:m=!0,scrollRef:h,onScrollTopChange:g,onStickyChange:x,onWindowChange:T,overscanRows:S})=>{let I=i((U,j)=>j?Li(A,{paddingX:1,children:Li(M,{dimColor:U?.tone!=="accent",children:j})}):null,"renderChromeSlot"),v=Fu(a),$=Fu(c),_=wm(v,l),N=I(a,v),B=s?null:I(c,$),k=Math.max(0,e?t:0),D=Math.max(0,p-_-k);return AR(A,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?Li(A,{flexDirection:"column",flexShrink:0,children:e}):null,AR(A,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[Li(Ew,{width:l,flexGrow:1,flexShrink:1,paddingTop:_,scrollTop:u,scrollHeight:d,viewportHeight:D,stickyScroll:m,scrollRef:h,onScrollTopChange:g,onStickyChange:x,onWindowChange:T,renderWindow:r,overscanRows:S,children:n}),N?Li(A,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:N}):null,B?Li(A,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:B}):null,s?Li(A,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),Li(A,{flexDirection:"column",flexShrink:0,children:o})]})},"FullscreenLayout");import SB from"string-width";function xB(){return Mc().columns}i(xB,"useTerminalWidth");var xm=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=Sm(()=>ue(u),[u]),m=xB(),h=d??m,g=SB(r)+1,x=Sm(()=>{let _=Math.max(20,h-g);return Mn(e,_,t,n)},[e,h,t,n,g]),T=Sm(()=>{if(!x)return null;let[_,N]=Gp(x,[t,n]);return{row:_,col:N}},[x,t,n]),S=s&&a,I=c&&e.some(_=>_.length>0),v=x,$=T;return Cr(A,{flexDirection:"column",borderStyle:"round",borderColor:p.colors.dim,borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,width:d??"100%",children:[I?Un(A,{children:Un(M,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,v.visualLines.length===0||v.visualLines.length===1&&v.visualLines[0]===""?Cr(A,{children:[Cr(M,{color:p.colors.primary,children:[r," "]}),S?Cr(wB,{children:[Un(M,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:" "}),Un(M,{dimColor:!0,children:o})]}):Un(M,{dimColor:!0,children:o})]}):v.visualLines.map((_,N)=>{let B=N===$.row,k=N===0?r:" ".repeat(g-1);if(B&&S){let{before:D,current:U,after:j}=jb(_,$.col),W=U||" ";return Cr(A,{children:[Cr(M,{color:p.colors.primary,children:[k," "]}),Un(M,{color:p.colors.text,children:D}),Un(M,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:W}),Un(M,{color:p.colors.text,children:j})]},N)}return Cr(A,{children:[Cr(M,{color:p.colors.dim,children:[k," "]}),Un(M,{color:p.colors.text,children:_})]},N)})]})},"TextInput"),LR=i(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:o=!0,theme:s="dark"})=>{let a=Sm(()=>ue(s),[s]);if(!e)return Cr(A,{children:[Cr(M,{color:a.colors.primary,children:[n," "]}),r&&Un(M,{dimColor:!0,children:r}),o&&Un(M,{backgroundColor:a.colors.primary,color:"#000000",children:" "})]});let c=En(e),l=c.slice(0,t).join(""),u=c[t]??" ",d=c.slice(t+1).join("");return Cr(A,{children:[Cr(M,{color:a.colors.primary,children:[n," "]}),Un(M,{color:a.colors.text,children:l}),Un(M,{backgroundColor:a.colors.primary,color:"#000000",children:u}),Un(M,{color:a.colors.text,children:d})]})},"SingleLineTextInput");var _w={"[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"}},TB=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,CB=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function IB(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}i(IB,"parseMouseButton");function vB(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}i(vB,"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(CB);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:IB(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(TB);if(s){let[,l,u,d]=s,p=d||"~",h=_w[o];if(h)return Object.assign(n,h),n;let g="["+l+p+"]",x=_w[g];if(x&&x.name){if(n.name=x.name,u){let T=parseInt(u,10)-1,S=vB(T);Object.assign(n,S)}return n}}let c=_w[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 Aw(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(Aw,"isFunctionKey");function PR(e){return e.ctrl||e.meta||Aw(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}i(PR,"isPrintable");function OR(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(OR,"getKeyDisplayName");import bB,{createContext as RB,useContext as kB,useEffect as $R,useCallback as EB,useRef as Lw}from"react";var MB=50;function Tm(){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(Tm,"createKeypressManager");var NR=RB(null);function Wu({children:e,enabled:t=!0}){let{stdout:n}=ao(),r=Lw(Tm()),o=Lw(null),s=Lw(null),a=EB(c=>{t&&r.current.dispatch(c)},[t]);return $R(()=>{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]),Nu(c=>{t&&(s.current&&clearTimeout(s.current),o.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{o.current?.feed("",!0)},MB)))},{isActive:t,rawMode:!0}),bB.createElement(NR.Provider,{value:r.current},e)}i(Wu,"KeypressProvider");function Cm(){let e=kB(NR);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}i(Cm,"useKeypressManager");function ir(e,t,n=[]){let r=Cm(),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?kn.High:kn.Normal:u??kn.Normal}else a=typeof e=="boolean"?e?kn.High:kn.Normal:e,s=t,c=!0;$R(()=>c?r.register(a,s):void 0,[r,a,c,...o?[]:n])}i(ir,"useKeypress");function Ir(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(Ir,"createKeyMatcher");var Pw={isEnter:Ir({name:"return"}),isEscape:Ir({name:"escape"}),isCtrlC:Ir({name:"c",ctrl:!0}),isCtrlD:Ir({name:"d",ctrl:!0}),isUp:Ir({name:"up"}),isDown:Ir({name:"down"}),isLeft:Ir({name:"left"}),isRight:Ir({name:"right"}),isBackspace:Ir({name:"backspace"}),isDelete:Ir({name:"delete"}),isTab:Ir({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 $B}from"react/jsx-runtime";import{useState as NB,useEffect as FR,useCallback as Pi,useMemo as HR,createContext as DB,useContext as WR}from"react";function _B(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=AB(t,a);return o+=c,{matched:!0,score:o,highlights:a}}i(_B,"fuzzyMatch");function AB(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(AB,"calculateWordBoundaryBonus");function LB(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}i(LB,"prefixMatch");function PB(e,t){if(LB(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{..._B(e,t),isPrefix:!1}}i(PB,"combinedMatch");function DR(e,t,n=0){return e?t.map(r=>{let o=PB(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(DR,"sortCandidatesCombined");var OB={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},Ow=class{static{i(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...OB,...t},this.completers=[new jy(this.options.gitRoot),new $b,new Nb,new Bp(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 jy)?.setGitRoot(this.options.gitRoot),r){let o=this.completers.findIndex(s=>s instanceof Bp);o!==-1&&(this.completers[o]=new Bp(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=Uy(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){ut({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 DR(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=Uy(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){ut({source:"repl:autocomplete",level:"error",message:"Listener failed during autocomplete state update.",detail:r})}}};function BR(e){return new Ow(e)}i(BR,"createAutocompleteProvider");var $w=DB(null);function Im({children:e,cwd:t,gitRoot:n}){let r=ju({cwd:t,gitRoot:n,enabled:!0});return $B($w.Provider,{value:r,children:e})}i(Im,"AutocompleteContextProvider");function Oi(){return WR($w)}i(Oi,"useAutocompleteContext");function BB(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(BB,"completionToSuggestion");function ju(e={}){let t=WR($w);return t&&!e.cwd&&!e.gitRoot?t:FB(e)}i(ju,"useAutocomplete");function FB(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,o=HR(()=>BR({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:50}),[]);FR(()=>{o.updateOptions({cwd:t,gitRoot:n})},[o,t,n]);let[s,a]=NB({visible:!1,selectedIndex:0,completions:[],loading:!1});FR(()=>o.subscribe(S=>{a(S)}),[o]);let c=HR(()=>s.completions.map((T,S)=>BB(T,S)),[s.completions]),l=Pi((T,S)=>{if(!r){o.cancel();return}o.handleInput(T,S)},[o,r]),u=Pi(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),d=Pi(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),p=Pi(()=>{s.visible&&o.selectPrevious()},[o,s.visible]),m=Pi(()=>{s.visible&&o.selectNext()},[o,s.visible]),h=Pi(()=>{s.visible&&o.cancel()},[o,s.visible]),g=Pi(()=>{o.cancel()},[o]),x=Pi(()=>o,[o]);return{state:s,suggestions:c,handleInput:l,handleTab:u,handleEnter:d,handleUp:p,handleDown:m,handleEscape:h,cancel:g,getProvider:x}}i(FB,"useAutocompleteImpl");import{useCallback as Uu,useRef as jR}from"react";var vr=[];function vm(e={}){let{maxSize:t=1e3,onSave:n}=e,r=jR(-1),o=jR(""),s=Uu((d,p)=>{if(!d.trim())return;if(vr[vr.length-1]?.text!==d){let h={text:d,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};vr.push(h),vr.length>t&&vr.splice(0,vr.length-t),n?.(h)}r.current=-1,o.current=""},[t,n]),a=Uu(()=>vr.length===0?null:r.current===-1?(r.current=vr.length-1,vr[r.current]??null):r.current>0?(r.current--,vr[r.current]??null):null,[]),c=Uu(()=>r.current===-1?null:r.current<vr.length-1?(r.current++,vr[r.current]??null):(r.current=-1,{text:o.current,timestamp:Date.now()}),[]),l=Uu(()=>{r.current=-1,o.current=""},[]),u=Uu(d=>{r.current===-1&&(o.current=d)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}i(vm,"useInputHistory");function Gn(e,t,n){return En(e).slice(t,n).join("")}i(Gn,"sliceByCodePoints");var Lc=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 Dr(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=Gn(t,0,this._cursor.col);return{row:this._cursor.row,col:Dr(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=En(t)[this._cursor.col];return r?Nr(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=En(n),o=0;for(let s=0;s<r.length;s++){let a=Nr(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=Gn(n,0,this._cursor.col),o=Gn(n,this._cursor.col);this._lines[this._cursor.row]=r+t+o,this._cursor.col+=Hn(t),this._rememberedCol=this._cursor.col,this._updateText()}newline(){this._saveHistory(),this._insertNewline()}_insertNewline(){let t=this._lines[this._cursor.row],n=Gn(t,0,this._cursor.col),r=Gn(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=Gn(t,0,n),o=Gn(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=Hn(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<Hn(t)){this._saveHistory();let n=Gn(t,0,this._cursor.col),r=Gn(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=Hn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col)}_moveRight(){let t=this._lines[this._cursor.row];this._cursor.col<Hn(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=Hn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col}_clampColumn(){let t=this._lines[this._cursor.row],n=Hn(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,Hn(this._lines[this._cursor.row]))),this._rememberedCol=this._cursor.col}killLineRight(){let t=this._lines[this._cursor.row];this._cursor.col<Hn(t)&&(this._saveHistory(),this._lines[this._cursor.row]=Gn(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]=Gn(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=En(t);for(;n>0&&/\s/.test(r[n]??"");)n--;for(;n>0&&!/\s/.test(r[n-1]??"");)n--;let o=Gn(t,0,n),s=Gn(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:Hn(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+=Gn(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=Hn(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as HB,useCallback as nn,useRef as Nw,useEffect as WB}from"react";function bm(e={}){let{initialValue:t="",onTextChange:n}=e,r=Nw(null),o=Nw(null),s=Nw(null),[a,c]=HB({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new Lc,t&&r.current.setText(t)),o.current===null&&(o.current=Rb());let l=r.current,u=o.current,d=nn(W=>{c(P=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:W?.isPasting??P.isPasting,editingMode:W?.editingMode??P.editingMode})),n?.(l.text)},[l,n]),p=nn(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{c(W=>({...W,isPasting:!1,editingMode:W.text?"typing":"idle"})),s.current=null},120)},[]),m=nn(W=>{l.setText(W),d({isPasting:!1,editingMode:W?"typing":"idle"})},[l,d]),h=nn((W,P,b)=>{l.replaceRange(W,P,b),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),g=nn((W,P)=>{let b=P?.paste??!1;if(b&&vb(W)){let fe=W.replace(/\r\n/g,`
|
|
47
|
-
`).replace(/\r/g,`
|
|
48
|
-
`),{placeholder:C}=u.registerText(fe);l.insert(C,{paste:!0}),d({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(W,{paste:!1}),d({isPasting:b,editingMode:b?"pasting":"typing"}),b&&p()},[l,u,p,d]),x=nn(()=>{l.newline(),d({isPasting:!1,editingMode:"typing"})},[l,d]),T=nn(()=>{let W=l.getAbsoluteOffset(),P=Np(l.text,W);P?l.replaceRange(P.start,P.end,""):l.backspace(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),S=nn(()=>{let W=l.getAbsoluteOffset(),P=Dp(l.text,W);P?l.replaceRange(P.start,P.end,""):l.delete(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),I=nn(W=>{l.move(W),d()},[l,d]),v=nn(()=>{l.clear(),d({isPasting:!1,editingMode:"idle"})},[l,d]),$=nn(()=>{let W=l.undo();return W&&d(),W},[l,d]),_=nn(()=>{let W=l.redo();return W&&d(),W},[l,d]),N=nn(()=>{l.moveToEnd(),d()},[l,d]),B=nn(W=>{l.moveToAbsoluteOffset(W),d()},[l,d]),k=nn(()=>{l.killLineRight(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),D=nn(()=>{l.killLineLeft(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),U=nn(()=>{l.deleteWordLeft(),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]),j=nn(()=>{s.current&&(clearTimeout(s.current),s.current=null),d({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,d]);return WB(()=>()=>{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:j,setText:m,replaceRange:h,insert:g,newline:x,backspace:T,delete:S,move:I,moveToEnd:N,moveToOffset:B,killLineRight:k,killLineLeft:D,deleteWordLeft:U,clear:v,undo:$,redo:_}}i(bm,"useTextBuffer");import{jsx as Fs,jsxs as Mm}from"react/jsx-runtime";import{useState as XR}from"react";import{useCallback as Pc,useEffect as Hw,useRef as km}from"react";function UR(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(UR,"buildAutocompleteReplacement");import{readFile as zB}from"node:fs/promises";var XB=/\.(png|jpe?g|gif|webp|bmp)$/i;async function Dw(e){if(e.length===0)return process.platform==="darwin"?GR():{kind:"text",text:""};let t=Rm(e);return t.length>0?YB(t,e):{kind:"text",text:e}}i(Dw,"handleBracketedPaste");async function Bw(){return GR()}i(Bw,"triggerExplicitClipboardImage");async function GR(){let e;try{e=await ep()}catch(t){return{kind:"error",message:`Failed to read clipboard image: ${Fw(t)}`}}return e?VR(e):{kind:"noop"}}i(GR,"readClipboardAsImagesOutcome");async function YB(e,t){let n=[],r=[];for(let o of e){let s;try{s=await zB(o)}catch(c){r.push(`Failed to read ${o}: ${Fw(c)}`);continue}let a=await VR(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(YB,"readImagePathsAsOutcome");async function VR(e){try{let t=await Zf(e);return{kind:"images",blocks:[await tp(t)]}}catch(t){return t instanceof Qf?{kind:"error",message:t.message}:{kind:"error",message:`Failed to process pasted image: ${Fw(t)}`}}}i(VR,"decodeBufferToOutcome");function Rm(e){return e.split(/ (?=\/|[A-Za-z]:\\)/).filter(n=>XB.test(n.trim()))}i(Rm,"extractImagePaths");function Fw(e){return e instanceof Error?e.message:String(e)}i(Fw,"describeError");function Em(e,t){ut({source:"repl:prompt-input",level:"warn",message:e,...t!==void 0?{detail:t}:{}})}i(Em,"reportPromptInputDiagnostic");var JB=500;function KR(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}i(KR,"shouldUseHistoryNavigation");function QB(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<JB?"clear-input":"arm-clear":"pass-through"}i(QB,"resolvePromptEscapeBehavior");function ZB(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(ZB,"resolvePromptEnterBehavior");function eF(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(eF,"resolvePromptEditingCommand");function zR({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=km(0),{add:m,navigateUp:h,navigateDown:g,reset:x,saveTempInput:T}=vm(),{buffer:S,text:I,cursor:v,lines:$,isPasting:_,editingMode:N,pasteStore:B,resetTransientState:k,setText:D,replaceRange:U,clear:j,move:W,moveToOffset:P,insert:b,backspace:fe,newline:C,delete:ne,undo:se,redo:he,killLineRight:Ee,killLineLeft:$e,deleteWordLeft:Q}=bm({initialValue:r,onTextChange:c}),Y=km(0);Hw(()=>{if(_)return;if(I.length<=1e4){Y.current=0;return}if(I.length===Y.current)return;let Te=B.peekNextId(),{truncatedText:je,placeholderContent:Nt}=bb(I,Te);Nt&&(B.registerTruncatedText(Nt),Y.current=je.length,D(je))},[I,_,B,D]);let pe=Oi(),ft=ju({cwd:o,gitRoot:s,enabled:a}),{state:Ue,suggestions:Ge,handleInput:Ve,handleTab:pt,handleEnter:Rt,handleUp:de,handleDown:ke,handleEscape:Ae}=pe??ft;Hw(()=>{n||(p.current=0,k(),Ue.visible&&Ae())},[Ue.visible,n,Ae,k]);let it=km(I);Hw(()=>{a&&I!==it.current&&(it.current=I,Ve(I,S.getAbsoluteOffset()))},[a,S,Ve,I]);let mt=Pc(Te=>{if(!Te?.text)return;let je=UR(I,S.getAbsoluteOffset(),Te),Nt=I.slice(0,je.start)+je.replacement+I.slice(je.end);return U(je.start,je.end,je.replacement),Nt},[S,U,I]),oe=Pc(Te=>{let je=Te??I;if(!je.trim())return;let Nt=B.expand(je),be=new Set,ct=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let H of je.matchAll(ct)){let V=Number.parseInt(H[2]??"0",10);Number.isFinite(V)&&V>0&&be.add(V)}let z=[];for(let H of be){let V=B.get(H);V&&z.push(V)}m(je,{pastedContents:z}),e({displayText:je,fullText:Nt,pastedContents:z}),j()},[m,j,e,B,I]),Qe=Pc(Te=>{if(Te){if(Te.pastedContents&&Te.pastedContents.length>0){for(let je of Te.pastedContents)B.adopt(je);u?.({text:Te.text,pastedContents:[...Te.pastedContents]})}D(Te.text)}},[u,B,D]),pn=Pc(async Te=>{try{let je=await Dw(Te);if(je.kind==="images"){let Nt=je.blocks.map(be=>`@${be.path}`).join(" ");b(`${Nt} `,{paste:!1})}else je.kind==="error"&&(Em(`Paste image handling failed: ${je.message}`),b(Te,{paste:!1}),l?.("Image paste failed; inserted as plain text."))}catch(je){Em("Paste image handling failed.",je)}},[b,l]),kt=km(!1),qn=Pc(async()=>{if(!kt.current){kt.current=!0;try{let Te=await Bw();if(Te.kind==="images"){let je=Te.blocks.map(Nt=>`@${Nt.path}`).join(" ");b(`${je} `,{paste:!1})}else Te.kind==="error"&&Em(`Clipboard image handling failed: ${Te.message}`)}catch(Te){Em("Clipboard image handling failed.",Te)}finally{kt.current=!1}}},[b]),on=Pc(Te=>{if(!n)return!1;if(Te.name==="v"&&(Te.ctrl||Te.meta))return qn(),!0;if(Te.name==="paste"&&Te.isPasted&&Rm(Te.sequence).length>0)return pn(Te.sequence),!0;let je=Ue.visible&&Ge.length>0;if(Te.name==="tab"&&je){let be=pt();return be&&mt(be),!0}if(Te.ctrl&&Te.name==="c")return I.length>0?(j(),x()):t?.(),!0;if(Te.name==="escape")switch(QB({isAutocompleteVisible:je,hasText:I.length>0,timeSinceLastEscapeMs:Date.now()-p.current})){case"cancel-autocomplete":return Ae(),p.current=0,!0;case"clear-input":return p.current=0,j(),x(),!0;case"arm-clear":return p.current=Date.now(),!0;default:return!1}if(Te.name==="up"){if(je)return de(),!0;if(Te.ctrl)return W("up"),!0;if(I.length===0&&d){let be=d();if(typeof be=="string"&&be.length>0)return D(be),!0}if(KR(v.row,$.length,"up")){T(I);let be=h();Qe(be)}else W("up");return!0}if(Te.name==="down"){if(je)return ke(),!0;if(Te.ctrl)return W("down"),!0;if(KR(v.row,$.length,"down")){let be=g();Qe(be)}else W("down");return!0}if(Te.name==="left"){let be=S.getAbsoluteOffset(),ct=Np(S.text,be);return ct?P(ct.start):W("left"),!0}if(Te.name==="right"){let be=S.getAbsoluteOffset(),ct=Dp(S.text,be);return ct?P(ct.end):W("right"),!0}if(Te.name==="home")return W("home"),!0;if(Te.name==="end")return W("end"),!0;let Nt=eF(Te);if(Nt)switch(Nt){case"move-home":return W("home"),!0;case"move-end":return W("end"),!0;case"undo":return se(),!0;case"redo":return he(),!0;case"kill-line-right":return Ee(),!0;case"kill-line-left":return $e(),!0;case"delete-word-left":return Q(),!0;default:break}if(Te.name==="backspace")return fe(),!0;if(Te.name==="delete")return ne(),!0;if(Te.name==="return"||Te.name==="newline")switch(ZB({keyName:Te.name,ctrl:Te.ctrl,shift:Te.shift,isAutocompleteVisible:je,isLineContinuation:!!$[v.row]?.endsWith("\\"),isPasting:_})){case"accept-completion-and-submit":{let ct=Rt();if(ct){let z=mt(ct);oe(z)}else oe();return!0}case"newline":return C(),!0;case"line-continuation":return fe(),C(),!0;default:return oe(),!0}return Te.insertable&&!Te.ctrl&&!Te.meta?(b(Te.sequence,Te.isPasted?{paste:!0}:void 0),!0):!1},[mt,m,Ue.visible,fe,S,j,v.row,ne,n,ke,Ae,de,Rt,Qe,pt,pn,qn,$,$e,Ee,W,P,g,h,C,t,d,he,x,T,D,oe,Ge.length,I.length,Q,_,se]);return{text:I,cursor:v,lines:$,isPasting:_,terminalFocused:n,editingMode:N,handleKey:on}}i(zR,"usePromptInputController");var Hs=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:m}=co(),{cursor:h,lines:g,handleKey:x,isPasting:T,terminalFocused:S,editingMode:I}=zR({onSubmit:e,onExit:m,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:u,onInputChange:d,onPasteFallback:p,onHistoryRecall:t,onPopPendingInputs:n});return ir(kn.High,v=>x(v),[x]),Fs(A,{flexDirection:"column",children:Fs(xm,{lines:g,cursorRow:h.row,cursorCol:h.col,prompt:o,placeholder:r,focus:s,terminalFocused:S,isPasting:T,editingMode:I,theme:"dark"})})},"InputPrompt"),YR=i(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,o]=XR(""),[s,a]=XR(0);ir(kn.High,p=>{if(p.name==="return")return r.trim()&&(e(r),o(""),a(0)),!0;if(p.name==="backspace"&&s>0){let m=[...r].slice(0,s-1).join(""),h=[...r].slice(s).join("");return o(m+h),a(s-1),!0}if(p.name==="left"&&s>0)return a(s-1),!0;if(p.name==="right"&&s<[...r].length)return a(s+1),!0;if(p.insertable&&!p.ctrl&&!p.meta){let m=[...r].slice(0,s).join(""),h=[...r].slice(s).join("");return o(m+p.sequence+h),a(s+1),!0}return!1},[r,s,e]);let c=ue("dark");if(!r)return Mm(A,{children:[Mm(M,{color:c.colors.primary,children:[n," "]}),t&&Fs(M,{dimColor:!0,children:t}),Fs(M,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",d=[...r].slice(s+1).join("");return Mm(A,{children:[Mm(M,{color:c.colors.primary,children:[n," "]}),Fs(M,{children:l}),Fs(M,{backgroundColor:c.colors.primary,color:"#000000",children:u}),Fs(M,{children:d})]})},"SimpleInputPrompt");import{jsx as Pt,jsxs as dn}from"react/jsx-runtime";import{useState as JR,useEffect as QR}from"react";var qR=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],tF=80,_m=new Set,Gu=null;function nF(){let e=Array.from(_m);for(let t of e)t()}i(nF,"dispatchSharedSpinnerTick");function rF(e){return _m.add(e),Gu===null&&(Gu=setInterval(nF,tF)),()=>{_m.delete(e),_m.size===0&&Gu!==null&&(clearInterval(Gu),Gu=null)}}i(rF,"subscribeToSharedSpinnerClock");function Vu(e=!0){let[t,n]=JR(0);return QR(()=>{if(e)return rF(()=>{n(r=>r+1)})},[e]),t}i(Vu,"useSharedSpinnerTick");var sr=i(({color:e,theme:t})=>{let n=t??ue("dark"),o=Vu(!0)%qR.length,s=e??n.colors.accent;return Pt(M,{color:s,children:qR[o]})},"Spinner");function oF(e){return e<=0?0:Math.round(e/4)}i(oF,"estimateOutputTokens");function iF(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(iF,"formatElapsedDuration");var ZR=i(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??ue("dark");if(Vu(e!==null),e===null)return null;let o=sF(Date.now()-e,t);return Pt(M,{color:r.colors.dim,wrap:"truncate",children:o})},"SpinnerStatsTail");function sF(e,t){let n=iF(e),r=oF(t);return r>0?` (${n} \xB7 \u2193 ${r} tokens)`:` (${n})`}i(sF,"buildSpinnerStatsText");var Ww=i(({label:e,dotCount:t=3,theme:n})=>{let r=n??ue("dark"),[o,s]=JR(1);QR(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(o);return dn(A,{children:[e&&Pt(M,{color:r.colors.text,children:e}),Pt(M,{color:r.colors.accent,children:a})]})},"DotsIndicator"),jw=i(({progress:e,label:t,width:n=20,theme:r})=>{let o=r??ue("dark"),s=Math.max(0,Math.min(100,e)),a=Math.round(s/100*n),c=n-a,l="\u2588".repeat(a),u="\u2591".repeat(c);return dn(A,{flexDirection:"column",children:[t&&Pt(A,{marginBottom:1,children:Pt(M,{color:o.colors.text,children:t})}),dn(A,{children:[Pt(M,{color:o.colors.primary,children:l}),Pt(M,{dimColor:!0,children:u}),dn(M,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),ek=i(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??ue("dark"),o=e??"Thinking";return dn(A,{children:[t&&Pt(A,{marginRight:1,children:Pt(sr,{theme:r})}),dn(M,{color:r.colors.accent,children:[o,"\u2026"]})]})},"ThinkingIndicator"),tk=i(({message:e,subMessage:t,progress:n,type:r="spinner",compact:o=!1,theme:s})=>{let a=s??ue("dark"),c=e??"Loading";return o?dn(A,{children:[Pt(sr,{theme:a}),dn(M,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?dn(A,{flexDirection:"column",children:[Pt(jw,{progress:n,label:c,theme:a}),t&&Pt(A,{marginTop:1,children:Pt(M,{dimColor:!0,children:t})})]}):r==="dots"?dn(A,{flexDirection:"column",children:[Pt(Ww,{label:c,theme:a}),t&&Pt(A,{marginTop:1,children:Pt(M,{dimColor:!0,children:t})})]}):r==="simple"?dn(A,{flexDirection:"column",children:[dn(M,{color:a.colors.accent,children:[c,"\u2026"]}),t&&Pt(A,{marginTop:1,children:Pt(M,{dimColor:!0,children:t})}),n!==void 0&&Pt(A,{marginTop:1,children:dn(M,{dimColor:!0,children:[n,"%"]})})]}):dn(A,{flexDirection:"column",children:[dn(A,{children:[Pt(sr,{theme:a}),dn(M,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&dn(M,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&Pt(A,{marginTop:1,children:Pt(M,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as Ie,jsxs as et,Fragment as tS}from"react/jsx-runtime";import{useEffect as Hk,useMemo as fo,memo as ar}from"react";var aF=/^(?:File (?:edited|created|updated|written)|Content inserted)/,cF=/^ \(/,Am=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/;function Uw(e){return e.startsWith("--- ")||e.startsWith("+++ ")||e==="---"||e==="+++"}i(Uw,"isFileHeaderLine");function nk(e,t={}){let n=t.maxRows??20,r=t.showAll??!1,o=[],s=[],a=[],c="scanning",l=null,u=null,d=i(v=>{let $=Am.exec(v);$&&(l=Number($[1]),u=Number($[3]))},"applyHunk"),p=i(v=>{let $=v[0],_=v.length>1&&v[1]===" "?v.slice(2):v.slice(1);$==="-"?(a.push({kind:"remove",no:l,content:_}),l=l===null?null:l+1):$==="+"?(a.push({kind:"add",no:u,content:_}),u=u===null?null:u+1):(a.push({kind:"context",no:u,content:_}),l=l===null?null:l+1,u=u===null?null:u+1)},"pushBodyLine"),m=i(v=>{Am.test(v)?d(v):Uw(v)||(v[0]==="+"||v[0]==="-"||v[0]===" "?p(v):v.trim()!==""&&(c="trailing",s.push(v)))},"processDiffLine");for(let v of e.split(/\r?\n/))switch(c){case"scanning":{aF.test(v)?c="preamble":Am.test(v)||Uw(v)?c="diff":v.trim()!==""&&o.push(v);break}case"preamble":{if(cF.test(v)||v.trim()==="")break;Am.test(v)||Uw(v)||v[0]==="+"||v[0]==="-"||v[0]===" "?(c="diff",m(v)):(c="trailing",v.trim()!==""&&s.push(v));break}case"diff":{m(v);break}case"trailing":{v.trim()!==""&&s.push(v);break}}if(!a.some(v=>v.kind!=="context"))return null;let g=a,x=0;r||(g.length>n&&(g=g.filter(v=>v.kind!=="context")),g.length>n&&(x=g.length-n,g=g.slice(0,n)));let T=s;!r&&s.length>10&&(x+=s.length-10,T=s.slice(0,10));let S=g.reduce((v,$)=>$.no===null?v:Math.max(v,String($.no).length),0),I=[];for(let v of o)I.push({kind:"note",text:v});for(let v of g){let $=v.kind==="add"?"+":v.kind==="remove"?"-":" ",_=S===0?"":`${(v.no===null?"":String(v.no)).padStart(S)} \u2502 `;I.push({kind:v.kind,text:`${_}${$} ${v.content}`.trimEnd()})}for(let v of T)I.push({kind:"note",text:v});return{rows:I,hiddenRowCount:x}}i(nk,"buildDiffRows");import*as zu from"node:path";function Ku(e){if(NI(e)){let t=DI(e);return t?`[memory:${t}]`:"[memory]"}if(lF(e))return"[memory]"}i(Ku,"memoryBadgeFor");function lF(e){let t=zu.resolve(e),n=fi("projects");if(!t.startsWith(n+zu.sep)&&t!==n)return!1;let o=t.slice(n.length+1).split(zu.sep);return o.length>=2&&o[1]==="memory"}i(lF,"isInsideAnyMemoryDir");function at(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}i(at,"truncateValue");function rk(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}i(rk,"extractFirstMeaningfulLine");function sk(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(sk,"splitDisplayToolName");function Lm(e){let{rolePrefix:t,toolLabel:n}=sk(e);return t?`${t} ${n}`:n}i(Lm,"normalizeDisplayToolName");function Xu(e){return sk(e).toolLabel}i(Xu,"stripRolePrefix");function Pm(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}i(Pm,"asRecord");function ak(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(ak,"readString");function jt(e,...t){for(let n of t){let r=ak(e?.[n]);if(r)return r}}i(jt,"readFirstString");function lo(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(lo,"readNumber");function ck(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(ck,"readStringArray");function uF(e){if(typeof e=="string")return e.trim()||void 0;let t=Pm(e);if(t)return ak(t.preview)??void 0}i(uF,"extractPreview");function ok(e){if(e)try{return Pm(JSON.parse(e))}catch{return}}i(ok,"parsePreviewRecord");function ze(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}i(ze,"extractFieldFromPreview");function uo(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}i(uo,"extractNumberFromPreview");function lk(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(lk,"extractPathsFromPreview");function dF(e){let t=uF(e);if(typeof e=="string")return{record:ok(t),preview:t};let n=Pm(e),r=ok(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}i(dF,"resolveInputRecord");function Oc(e,t,n,r=!1){let o=jt(t,"path","target_path","targetPath")??ze(n,"path")??ze(n,"target_path")??ze(n,"targetPath"),s=ck(t?.paths)??lk(n);if(r&&s?.length){if(s.length===1){let a=Ku(s[0]);a&&e.push(a),e.push(at(s[0]))}else e.push(`${s.length} files`);return}if(o){let a=Ku(o);a&&e.push(a),e.push(at(o));return}if(s?.length)if(s.length===1){let a=Ku(s[0]);a&&e.push(a),e.push(at(s[0]))}else e.push(`${s.length} files`)}i(Oc,"pushPathSummary");function $c(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}i($c,"pushNumericSummary");function Gw(e,t,n){let r=jt(t,"baseRef","base_ref")??ze(n,"baseRef")??ze(n,"base_ref"),o=jt(t,"targetRef","target_ref")??ze(n,"targetRef")??ze(n,"target_ref");r&&o&&e.push(at(`${r}...${o}`,88))}i(Gw,"pushRangeSummary");function fF(e,t){let{record:n,preview:r}=dF(t),o=Xu(e).toLowerCase(),s=[];if(o.includes("changed_diff_bundle")){let a=ck(n?.paths)??lk(r);a?.length?(s.push(a.length===1?at(a[0]):`${a.length} files`),a.length>1&&s.push(at(a[0]))):Oc(s,n,r,!0);let c=lo(n?.limit_per_path)??lo(n?.limitPerPath)??uo(r,"limit_per_path")??uo(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),Gw(s,n,r),s}if(o.includes("changed_diff"))return Oc(s,n,r),$c(s,"offset",lo(n?.offset)??uo(r,"offset")),$c(s,"limit",lo(n?.limit)??uo(r,"limit")),Gw(s,n,r),s;if(o==="read"||o.includes("read_"))return Oc(s,n,r),$c(s,"offset",lo(n?.offset)??uo(r,"offset")),$c(s,"limit",lo(n?.limit)??uo(r,"limit")),s;if(o.includes("changed_scope"))return Oc(s,n,r,!0),Gw(s,n,r),s;if(o.includes("repo_overview"))return Oc(s,n,r),s;if(o.includes("bash")||o.includes("shell_command")){let a=jt(n,"command")??ze(r,"command");return a&&s.push(`cmd=${at(a,140)}`),s}if(o==="glob"||o.includes("glob_")){let a=jt(n,"pattern")??ze(r,"pattern"),c=jt(n,"path","root","directory","cwd")??ze(r,"path")??ze(r,"root")??ze(r,"directory")??ze(r,"cwd");if(a&&s.push(`pattern=${at(a,96)}`),c){let l=Ku(c);l&&s.push(l),s.push(at(c))}return s}if(o==="grep"||o.includes("grep_")){let a=jt(n,"pattern","query")??ze(r,"pattern")??ze(r,"query"),c=jt(n,"path","root","directory","cwd")??ze(r,"path")??ze(r,"root")??ze(r,"directory")??ze(r,"cwd");if(a&&s.push(`pattern=${at(a,96)}`),c){let l=Ku(c);l&&s.push(l),s.push(at(c))}return s}if(o==="web_fetch"){let a=jt(n,"url")??ze(r,"url"),c=jt(n,"provider_id","providerId")??ze(r,"provider_id")??ze(r,"providerId"),l=jt(n,"capability_id","capabilityId")??ze(r,"capability_id")??ze(r,"capabilityId");return a&&s.push(at(a,120)),c&&s.push(`provider=${at(c,48)}`),l&&s.push(`cap=${at(l,48)}`),s}if(o==="mcp_describe"||o==="mcp_read_resource"){let a=jt(n,"id")??ze(r,"id");return a&&s.push(at(a,120)),s}if(o==="mcp_call"){let a=jt(n,"id")??ze(r,"id"),c=Pm(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(at(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(o==="skill"){let a=jt(n,"skill","name")??ze(r,"skill");return a&&s.push(at(a,64)),s}if(o==="mcp_search"){let a=jt(n,"query")??ze(r,"query"),c=jt(n,"server")??ze(r,"server"),l=jt(n,"kind")??ze(r,"kind"),u=lo(n?.limit)??uo(r,"limit");return a&&s.push(`query=${at(a,96)}`),c&&s.push(`server=${at(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=jt(n,"query","pattern")??ze(r,"query")??ze(r,"pattern"),c=jt(n,"path","target_path","targetPath")??ze(r,"path")??ze(r,"target_path")??ze(r,"targetPath"),l=jt(n,"provider_id","providerId")??ze(r,"provider_id")??ze(r,"providerId"),u=lo(n?.limit)??uo(r,"limit");return a&&s.push(`query=${at(a,96)}`),c&&s.push(at(c,72)),l&&s.push(`provider=${at(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return Oc(s,n,r,!0),$c(s,"offset",lo(n?.offset)??uo(r,"offset")),$c(s,"limit",lo(n?.limit)??uo(r,"limit")),s}i(fF,"summarizeToolDetails");function uk(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(uk,"extractChangedDiffRange");function pF(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}i(pF,"extractDiffPreviewLine");function mF(e){let t=[],n=uk(e);if(n){let[o,s]=n.split("/");t.push(s?`Diff range: ${o} of ${s}`:`Diff range: ${n}`)}let r=pF(e);return r&&t.push(`Preview: ${at(r,220)}`),t}i(mF,"formatChangedDiffExplanation");function hF(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: ${at(r[1].trim(),220)}`),t}i(hF,"formatChangedDiffBundleExplanation");function dk(e,t){if(!t)return[];let n=Xu(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(at(s[1].trim())),r}if(n.includes("changed_diff")){let o=t.match(/^Changed diff for\s+(.+)$/im);o?.[1]&&r.push(at(o[1].trim()));let s=uk(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(at(o[1].trim())),r}if(n==="edit"||n==="write"||n==="multi_edit"||n==="insert_after_anchor"){let o=/^(?:File (?:edited|created|updated|written)|Content inserted after anchor in):\s+(.+)$/im.exec(t);if(o?.[1]){let s=o[1].trim().replace(/\s*\([^)]*\)$/,"");if(s){r.push(at(s));let a=/\(\+(\d+) lines?, -(\d+) lines?\)/.exec(t);if(a?.[1]&&a[2])r.push(`+${a[1]} -${a[2]}`);else{let c=/\((\d+) lines? written\)/.exec(t);c?.[1]?r.push(`new, ${c[1]} lines`):/no changes/.test(t)&&r.push("no changes")}}}return r}return[]}i(dk,"summarizeToolOutputDetails");function Vw(e,t){let n=Lm(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}i(Vw,"formatToolDetailSummary");function gF(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(gF,"formatDuration");function yF(e){switch(e.status){case K.Scheduled:return"scheduled";case K.Validating:return"validating";case K.AwaitingApproval:return"awaiting approval";case K.Executing:return"running";case K.Error:return"failed";case K.Cancelled:return"cancelled";default:return}}i(yF,"formatToolStatusDetail");function ik(e){switch(e.status){case K.Scheduled:return["Queued: waiting to start"];case K.Validating:return["Validating: checking inputs and policy"];case K.AwaitingApproval:return["Waiting: approval required before execution"];case K.Executing:return e.progress!==void 0?[`Progress: ${e.progress}% complete`]:e.progressLines&&e.progressLines.length>0?e.progressLines.slice(-5):e.preview?[`Running: ${e.preview}`]:["Running: waiting for tool output"];case K.Cancelled:return["Cancelled before completion"];default:return[]}}i(ik,"formatToolProgressExplanation");function Kw(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}i(Kw,"resolveToolExplanationTone");function wF(e){let t=rk(e.error),n=typeof e.output=="string"?rk(e.output):void 0,r=[];return t&&r.push(`Error: ${at(t,220)}`),e.status===K.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${at(n,220)}`),r}i(wF,"formatToolFailureExplanation");function zw(e){if(typeof e.output!="string"||!e.output.trim())return ik(e);let t=Xu(e.name).toLowerCase();return e.status===K.Error?wF(e):e.status!==K.Success?ik(e):t.includes("changed_diff_bundle")?hF(e.output):t.includes("changed_diff")?mF(e.output):[]}i(zw,"formatToolResultExplanation");function Xw(e,t){return Vw(e,fF(e,t))}i(Xw,"formatToolSummary");function Om(e){let t=typeof e.output=="string"?dk(e.name,e.output):[],n=t.length>0?Vw(e.name,t):Xw(e.name,e.input),r=yF(e),o=gF(e.startTime,e.endTime),s=e.status===K.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===K.Executing&&e.preview?e.preview:void 0,a=[r,s,o].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}i(Om,"formatToolCallInlineText");function $m(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?dk(n.name,n.output):[],o=r.length>0?Vw(n.name,r):Xw(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($m,"collapseToolCalls");function Yu(e){let t=Om(e.tool);return e.count>1?`${t} x${e.count}`:t}i(Yu,"formatCollapsedToolInlineText");function Nm(e,t,n){let r=Xw(e,t);return r!==Lm(e)?`[Tools] ${r}`:n>0?`[Tools] ${Lm(e)} (${n} chars)`:`[Tools] ${Lm(e)}`}i(Nm,"formatLiveToolLabel");function Yw(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(Yw,"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=Yw(e),l=Yw(s),u=Yw(a),d=Math.max(0,c-l-u);return`${s}
|
|
49
|
-
\u2026 +${d} lines \u2026
|
|
50
|
-
${a}`}i(Dm,"truncateUserMessageForDisplay");var fk="(?:\x1B[[0-9;]*m)*",SF=new RegExp(`^(${fk})(?:[ \r]*
|
|
51
|
-
)+`),xF=new RegExp(`(?:
|
|
52
|
-
[ \r]*)+(${fk})$`);function qw(e){return e.replace(SF,"$1").replace(xF,"$1")}i(qw,"stripOuterBlankLines");function Yt(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(Yt,"stripAnsi");var TF=new Set(["edit","write","multi_edit","insert_after_anchor"]),CF=20;function IF(e){return TF.has(Xu(e.name).trim().toLowerCase())}i(IF,"isMutationTool");function vF(e){switch(e){case"add":return"success";case"remove":return"error";case"context":return"thinking";default:return"dim"}}i(vF,"colorForDiffRow");function bF(e){if(e==="add")return"diffAdd";if(e==="remove")return"diffRemove"}i(bF,"bgForDiffRow");function RF(e,t,n,r,o){let s=nk(n,{maxRows:CF,showAll:o});return s?(s.rows.forEach((a,c)=>{He(e,`${t}-diff-${c}`,a.text,It(r,4),{color:vF(a.kind),bg:bF(a.kind),indent:4})}),s.hiddenRowCount>0&&He(e,`${t}-diff-more`,`... (${s.hiddenRowCount} more lines, Ctrl+O then Ctrl+E to expand)`,It(r,4),{color:"dim",indent:4}),!0):!1}i(RF,"pushDiffRows");var pk=400,kF="... (thinking truncated; press Ctrl+O to inspect full reasoning)",mk=2e5,EF="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",wk=1e5,hk=120,MF=" \u2026 (Ctrl+O to expand)";function Sk(){return process.env.KODAX_THINKING_COLLAPSE!=="0"}i(Sk,"isThinkingCollapseEnabled");function _F(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>hk;return{summary:o?`${n.slice(0,hk).trimEnd()}\u2026`:n,hasMore:r||o}}i(_F,"buildCollapsedThinkingLine");function AF(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(AF,"normalizeManagedLiveActivityLabel");function qu(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(qu,"formatTimestamp");function xk(e){switch(e){case K.Scheduled:return"\u25CB";case K.Validating:return"\u25D0";case K.AwaitingApproval:return"\u23F8";case K.Executing:return"\u25CF";case K.Success:return"\u2713";case K.Error:return"\u2717";case K.Cancelled:return"\u2298";default:return"[tool]"}}i(xk,"getToolStatusIcon");function Tk(e){switch(e){case K.Scheduled:case K.Validating:return"dim";case K.AwaitingApproval:return"accent";case K.Executing:return"primary";case K.Success:return"success";case K.Error:return"error";case K.Cancelled:return"dim";default:return"text"}}i(Tk,"getToolStatusColor");function LF(e,t){let n=Math.max(1,t),r=e.split(`
|
|
53
|
-
`),o=Mn(r.length>0?r:[""],n,0,0);return o.visualLines.length>0?o.visualLines:[""]}i(LF,"wrapText");function Jw(e,t,n,r=!1){if(n||r)return e.length>mk?`${e.slice(0,mk)}
|
|
54
|
-
|
|
55
|
-
${EF}`:e;let o=e.split(/\r?\n/),s=o.length>t,a=s?o.slice(0,t).join(`
|
|
56
|
-
`):e,c=a.length>pk,l=c?a.slice(0,pk):a;return!s&&!c?e:`${l}
|
|
57
|
-
|
|
58
|
-
${kF}`}i(Jw,"buildThinkingPreview");function PF(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user"&&e[t]?.isSessionUiOnly!==!0)return t;return 0}i(PF,"findActiveRoundStartIndex");function He(e,t,n,r,o){let s=Yt(n),a=LF(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(He,"pushWrappedRows");function Nc(e,t){e.push({key:t,text:" "})}i(Nc,"pushBlankRow");function It(e,t=0){return Math.max(20,e-t)}i(It,"getBodyWidth");function OF(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(OF,"buildToolInputPreview");function $F(e,t,n,r,o,s=!1,a=!1){He(e,`${t}-tool-${n.id}-main`,`${xk(n.status)} ${Yu({tool:n,count:r})}`,It(o,2),{color:Tk(n.status),indent:2,bold:n.status===K.Executing}),zw(n).forEach((u,d)=>{let p=Kw(u);He(e,`${t}-tool-${n.id}-explanation-${d}`,u,It(o,4),{color:p,indent:4})});let l=n.status===K.Success&&typeof n.output=="string"&&n.output.trim().length>0&&IF(n)&&RF(e,`${t}-tool-${n.id}`,n.output,o,a);if(s){let u=OF(n),d=a?u:u.slice(0,6);d.forEach((p,m)=>{He(e,`${t}-tool-${n.id}-input-${m}`,p,It(o,4),{color:"dim",indent:4})}),!a&&u.length>d.length&&He(e,`${t}-tool-${n.id}-input-more`,`... (${u.length-d.length} more lines)`,It(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((m,h)=>{He(e,`${t}-tool-${n.id}-output-${h}`,m,It(o,4),{color:"dim",indent:4})});let p=u.length;!a&&p>d.length&&He(e,`${t}-tool-${n.id}-output-more`,`... (${p-d.length} more lines)`,It(o,4),{color:"dim",indent:4})}}i($F,"buildToolRows");function NF(e,t,n,r){let o=n.status===K.Executing,s=o?"":`${xk(n.status)} `;He(e,`${t}-tool-${n.id}-main`,`${s}${Yu({tool:n,count:1})}`,It(r,2),{color:Tk(n.status),indent:2,bold:o,spinner:o}),zw(n).forEach((c,l)=>{let u=Kw(c);He(e,`${t}-tool-${n.id}-explanation-${l}`,c,It(r,4),{color:u,indent:4})})}i(NF,"buildLiveToolRows");function Ck(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:m="",iterationHistory:h=[],currentIteration:g=1,isCompacting:x=!1,managedAgentMode:T,managedPhase:S,managedHarnessProfile:I,managedWorkerTitle:v,managedRound:$,managedMaxRounds:_,lastLiveActivityLabel:N,liveStatusLines:B=[],currentTodoActiveForm:k,showFullThinking:D=!1,showDetailedTools:U=!1,showAllContent:j=!1,showLiveProgressRows:W=!0}=e,P=[];for(let b of t)switch(b.type){case"user":He(P,`${b.id}-header`,`You [${qu(b.timestamp)}]`,n,{color:"primary",bold:!0,itemId:b.id}),He(P,`${b.id}-body`,Dm(b.text),It(n,2),{color:"text",indent:2,itemId:b.id}),P.push({key:`${b.id}-blank`,text:" ",itemId:b.id});break;case"assistant":{let fe=qw(j?b.text:b.compactText??b.text);He(P,`${b.id}-header`,`Assistant [${qu(b.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:b.isStreaming,itemId:b.id}),He(P,`${b.id}-body`,fe,It(n,2),{color:"text",indent:2,itemId:b.id}),P.push({key:`${b.id}-blank`,text:" ",itemId:b.id});break}case"system":He(P,`${b.id}-header`,`System [${qu(b.timestamp)}]`,n,{color:"dim",bold:!0,itemId:b.id}),He(P,`${b.id}-body`,b.text,It(n,2),{color:"dim",indent:2,itemId:b.id}),P.push({key:`${b.id}-blank`,text:" ",itemId:b.id});break;case"tool_group":He(P,`${b.id}-header`,`Tools [${qu(b.timestamp)}]`,n,{color:"accent",bold:!0,itemId:b.id}),$m(b.tools).forEach(fe=>$F(P,b.id,fe.tool,fe.count,n,U,j)),P.push({key:`${b.id}-blank`,text:" ",itemId:b.id});break;case"thinking":{He(P,`${b.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:b.id});let fe=Sk()&&!D&&!j?_F(b.compactText??b.text):void 0;if(fe?.hasMore){He(P,`${b.id}-body`,`${fe.summary}${MF}`,It(n,2),{color:"thinking",indent:2,italic:!0,itemId:b.id}),P.push({key:`${b.id}-blank`,text:" ",itemId:b.id});break}let C=j?Jw(b.text,o,D,j):b.compactText??Jw(b.text,o,D,j);He(P,`${b.id}-body`,C,It(n,2),{color:"thinking",indent:2,italic:!0,itemId:b.id}),P.push({key:`${b.id}-blank`,text:" ",itemId:b.id});break}case"error":He(P,`${b.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:b.id}),He(P,`${b.id}-body`,b.text,It(n,2),{color:"error",indent:2,itemId:b.id}),P.push({key:`${b.id}-blank`,text:" ",itemId:b.id});break;case"info":He(P,`${b.id}-body`,`${b.icon??"\u2139"} ${qw(j?b.text:b.compactText??b.text)}`,n,{color:"info",itemId:b.id}),P.push({key:`${b.id}-blank`,text:" ",itemId:b.id});break;case"event":He(P,`${b.id}-body`,`${b.icon??">"} ${j?b.text:b.compactText??b.text}`,n,{color:"text",itemId:b.id}),P.push({key:`${b.id}-blank`,text:" ",itemId:b.id});break;case"hint":He(P,`${b.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:b.id}),He(P,`${b.id}-body`,b.text,It(n,2),{color:"dim",indent:2,itemId:b.id}),P.push({key:`${b.id}-blank`,text:" ",itemId:b.id});break;case"sidecar":{let fe=b.delivery==="budget-exhausted"?"\u26A1 Sidecar Verifier \u2014 budget exhausted":b.verdict==="blocked"?"\u26A1 Sidecar Verifier \u2014 blocked":"\u26A1 Sidecar Verifier \u2014 revise";He(P,`${b.id}-header`,`${fe} [${qu(b.timestamp)}]`,n,{color:"warning",bold:!0,itemId:b.id}),He(P,`${b.id}-body`,b.text,It(n,2),{color:"dim",indent:2,itemId:b.id}),P.push({key:`${b.id}-blank`,text:" ",itemId:b.id});break}default:break}if(W&&h.length>0&&(h.forEach(b=>{if(He(P,`iteration-${b.iteration}-header`,`\u2500\u2500 Round ${b.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),b.thinkingSummary){let fe=b.thinkingLength>60?` (${b.thinkingLength} chars total)`:"";He(P,`iteration-${b.iteration}-thinking`,`\u{1F4AD} ${b.thinkingSummary}${fe}`,It(n,1),{color:"thinking",indent:1,italic:!0})}if(b.response){let fe=b.response.slice(0,200);He(P,`iteration-${b.iteration}-response`,fe,It(n,1),{color:"text",indent:1}),b.response.length>200&&He(P,`iteration-${b.iteration}-response-more`,`... (${b.response.length} chars total)`,It(n,1),{color:"dim",indent:1})}b.toolsUsed.length>0&&He(P,`iteration-${b.iteration}-tools`,`* tools: ${b.toolsUsed.join(", ")}`,It(n,1),{color:"accent",indent:1}),Nc(P,`iteration-${b.iteration}-blank`)}),He(P,"iteration-current-header",`\u2500\u2500 Round ${g} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),Nc(P,"iteration-current-blank")),r&&c){let b=Jw(c,o,D,j);He(P,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),He(P,"thinking-stream-body",b,It(n,2),{color:"thinking",indent:2,italic:!0}),Nc(P,"thinking-stream-blank")}if(r){let b="Thinking",fe="",C=AF(N,v),ne=v??"Scout",se=S==="routing"?`[${T?T.toUpperCase():"AMA"} Routing] `:S==="preflight"?`[${T?T.toUpperCase():"AMA"} ${ne}] `:S==="verifying"?`[${T?T.toUpperCase():"AMA"} Verifying] `:I?`[${T?T.toUpperCase():"AMA"} ${v??"Worker"}] `:"",he=d.filter(pe=>pe.status===K.Executing).length,Ee=d.filter(pe=>pe.status===K.Success).length,$e=d.filter(pe=>pe.status===K.Error).length,Q=d.filter(pe=>pe.status===K.Cancelled).length,Y=d.length>0&&(he>0||!l);if(x)b="Compacting";else if(S==="verifying")fe=se,b="checking agent output";else if(Y){let pe=[];if(he>0&&pe.push(`${he} running`),Ee>0&&pe.push(`${Ee} done`),$e>0&&pe.push(`${$e} error`),Q>0&&pe.push(`${Q} cancelled`),pe.length===0&&pe.push(`${d.length} tools`),He(P,"loading-tools-header",`${se}[Tools] ${pe.join(", ")}`,n,{color:"primary",bold:!0,spinner:he>0}),d.forEach(ft=>{NF(P,"loading-tools",ft,n)}),Nc(P,"loading-tools-blank"),he>0&&!l&&!W)return P}else if(k)fe=se||"[Plan] ",b=k;else if(u)fe=se||"[Tool] ",b=C?.startsWith("[Tools]")?C:Nm(u,m,p);else if(s){fe=se||"[Thinking] ";let pe=$&&_&&$>1?` round ${$}/${_}`:"";b=a>0?`${a} chars${pe}`:C?`${C}${pe}`:`processing${pe}`}else C&&(b=C);W&&He(P,"loading-indicator",`${fe}${b}...`,n,{color:"accent",spinner:!0})}if(W&&B.length>0&&(He(P,"live-status-header","Live status",n,{color:"dim",bold:!0}),B.forEach((b,fe)=>{He(P,`live-status-${fe}`,b,It(n,2),{color:"dim",indent:2})}),Nc(P,"live-status-blank")),l){let b=l.lastIndexOf(`
|
|
59
|
-
`),fe=b>=0?l.slice(0,b+1):"";fe.length>0&&(He(P,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),He(P,"streaming-body",fe,It(n,2),{color:"text",indent:2}),Nc(P,"streaming-blank"))}return P}i(Ck,"buildTranscriptRows");function DF(e,t,n=1e3,r=!1,o=!1,s=!1){return Dc(e,t,n,r,void 0,o,s)}i(DF,"buildStaticTranscriptSections");var gk=new WeakMap,yk=new Set(["thinking","tool_group"]);function BF(){return process.env.KODAX_TRANSCRIPT_TIGHT!=="0"}i(BF,"isTightRunSpacingEnabled");function FF(e,t){return BF()?t.map((n,r)=>{let o=e[r],s=e[r+1];if(!o||!s||!yk.has(o.type)||!yk.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(FF,"suppressTightRunBlanks");function Dc(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}|${Sk()?1:0}|${a?1:0}`,p=gk.get(l);if(p!==void 0&&p.sig===d)return p.section;let m={key:l.id,rows:Ck({items:[l],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:u,showFullThinking:a})};return gk.set(l,{sig:d,section:m}),m});return FF(e,c)}i(Dc,"buildHistoryItemTranscriptSections");function HF(e,t){return{key:e,rows:Ck(t)}}i(HF,"buildDynamicTranscriptSection");function Bm(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=PF(t),u=t.slice(0,l),d=t.slice(l);return{staticSections:DF(u,n,r,o,s,a),activeItems:d}}i(Bm,"buildTranscriptStaticPortion");function Fm(e){let{activeItems:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:o=!1,showAllContent:s=!1,showFullThinking:a=!1,expandedItemKeys:c,...l}=e,u=Dc(t,n,r,o,c,s,a),d=HF("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(Fm,"buildTranscriptDynamicPortion");function Hm(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:Ws(t.sections),previewSections:t.previewSections,previewRows:Ws(t.previewSections)}}i(Hm,"composeTranscriptRenderModel");function Ik(e,t,n){let r=Hm(e,t);return n?{...r,staticSections:[n,...r.staticSections]}:r}i(Ik,"buildInlinePromptRenderModel");function vk(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(m=>m.rows),u=s.slice(0,a).filter(m=>m.spinner!==!0);return{committedSections:[...l,...u].map((m,h)=>({key:`il-${h}`,rows:[{...m,key:`il-${h}`}]})),liveRows:c}}i(vk,"splitInlineLedgerModel");function WF(e){return e.replace(/^(You|Assistant|Tools|System) \[\d{1,2}:\d{2}[^\]]*\]$/u,"$1")}i(WF,"stripHeaderTimestamp");function bk(e){let t=5381;for(let n of e.rows){let r=WF(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(bk,"identifyInlineCommitSection");function Wm(e){let t=Bm({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=Fm({...r,activeItems:t.activeItems});return Hm(t,o)}i(Wm,"buildTranscriptRenderModel");function Ws(e){return e.flatMap(t=>t.rows)}i(Ws,"flattenTranscriptSections");function Rk(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(Rk,"identifyTranscriptSection");function Qw(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:Ws(t),previewSections:[...e.previewSections],previewRows:Ws(e.previewSections)}}i(Qw,"materializeTranscriptRenderModel");function kk(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?Zw(e,a,c):e}i(kk,"resolveVisibleTranscriptRows");var Ek=200,jF=50,Mk=30;function _k(e,t,n=Ek,r=jF){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(_k,"computeTranscriptCapStart");function Ak(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"&&e[o]?.isSessionUiOnly!==!0&&(n++,n>t)){r=o+1;break}return e.slice(r)}i(Ak,"sliceHistoryToRecentRounds");function Lk(e,t){if(t<=0||e.length===0)return[];let n=0;for(let r=e.length-1;r>=0;r-=1)if(e[r]?.isSessionUiOnly!==!0&&(n+=1,n>t))return e.slice(r+1);return e}i(Lk,"sliceHistoryToRecentCanonicalItems");function Pk(e,t=Ek){let n=e.reduce((r,o)=>r+(o.isSessionUiOnly===!0?1:0),0);return t+n}i(Pk,"transcriptRenderCapForHistory");function Zw(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(Zw,"getVisibleTranscriptRows");function Ok(e,t,n){if(!t||!n||n<=0)return 0;let r=Ws(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(Ok,"resolveScrollOffsetForTranscriptItem");function $k(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($k,"resolveTranscriptColor");var jm="__transcript_hidden_divider__";function Nk(e,t){let n=e===1?"message":"messages";return{id:jm,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(Nk,"buildTranscriptHiddenDivider");function eS(e){return e.id===jm}i(eS,"isTranscriptHiddenDivider");var Dk=new _s(500);function UF(e){let t=En(e),n=[],r=[],o=0,s=0;for(let a of t)n.push(o),r.push(s),o+=a.length,s+=Up(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}i(UF,"buildTranscriptTextMetrics");function Ju(e){let t=Dk.get(e);if(t)return t;let n=UF(e);return Dk.set(e,n),n}i(Ju,"getTranscriptTextMetrics");function $i(e){return Ju(e).length}i($i,"getTranscriptTextLength");function Bk(e){return Ju(e).displayWidth}i(Bk,"getTranscriptTextDisplayWidth");function Um(e,t){let n=Ju(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}i(Um,"charAtTranscriptText");function Bc(e,t,n){let r=Ju(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(Bc,"sliceTranscriptText");function Fk(e,t){let n=Ju(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(Fk,"resolveTranscriptTextIndexAtVisualColumn");function Gm(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Gm,"formatTimestamp");function GF(e,t){let n=e.split(`
|
|
60
|
-
`),r=n.slice(0,t),o=n.length>t;return{lines:r,hasMore:o}}i(GF,"truncateLines");function VF(e){switch(e){case K.Scheduled:return"\u25CB";case K.Validating:return"\u25D0";case K.AwaitingApproval:return"\u23F8";case K.Executing:return"\u25CF";case K.Success:return"\u2713";case K.Error:return"\u2717";case K.Cancelled:return"\u2298";default:return"?"}}i(VF,"getToolStatusIcon");function KF(e,t){switch(e){case K.Scheduled:case K.Validating:return t.colors.dim;case K.AwaitingApproval:return t.colors.accent;case K.Executing:return t.colors.primary;case K.Success:return t.colors.success;case K.Error:return t.colors.error;case K.Cancelled:return t.colors.dim;default:return t.colors.text}}i(KF,"getToolStatusColor");var zF=ar(({item:e,theme:t})=>{let n=fo(()=>Dm(e.text),[e.text]);return et(A,{flexDirection:"column",marginBottom:1,children:[et(A,{children:[Ie(M,{color:t.colors.primary,bold:!0,children:"You"}),et(M,{dimColor:!0,children:[" [",Gm(e.timestamp),"]"]})]}),Ie(A,{marginLeft:2,children:Ie(M,{color:t.colors.text,children:n})})]})}),XF=ar(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:o,hasMore:s}=GF(r,n);return et(A,{flexDirection:"column",marginBottom:1,children:[et(A,{children:[Ie(M,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&et(tS,{children:[Ie(M,{children:" "}),Ie(sr,{color:t.colors.accent})]}),et(M,{dimColor:!0,children:[" [",Gm(e.timestamp),"]"]})]}),et(A,{marginLeft:2,flexDirection:"column",children:[o.map((a,c)=>Ie(M,{color:t.colors.text,children:a||" "},c)),s&&et(M,{dimColor:!0,children:["... (",r.split(`
|
|
61
|
-
`).length-n," more lines)"]})]})]})}),YF=ar(({item:e,theme:t})=>et(A,{flexDirection:"column",marginBottom:1,children:[et(A,{children:[Ie(M,{color:t.colors.dim,bold:!0,children:"System"}),et(M,{dimColor:!0,children:[" [",Gm(e.timestamp),"]"]})]}),Ie(A,{marginLeft:2,children:Ie(M,{dimColor:!0,children:e.text})})]})),qF=ar(({tool:e,count:t=1,theme:n})=>{let r=VF(e.status),o=KF(e.status,n);return et(A,{flexDirection:"column",marginLeft:2,children:[et(A,{children:[et(M,{color:o,children:[r," "]}),Ie(M,{color:n.colors.text,bold:!0,children:Yu({tool:e,count:t})})]}),e.error&&Ie(A,{marginLeft:2,children:Ie(M,{color:n.colors.error,children:e.error})})]})}),JF=ar(({item:e,theme:t})=>{let n=$m(e.tools);return et(A,{flexDirection:"column",marginBottom:1,children:[et(A,{children:[Ie(M,{color:t.colors.accent,bold:!0,children:"Tools"}),et(M,{dimColor:!0,children:[" [",Gm(e.timestamp),"]"]})]}),n.map(r=>Ie(qF,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),QF=ar(({item:e,theme:t})=>et(A,{flexDirection:"column",marginBottom:1,children:[Ie(A,{children:Ie(M,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),Ie(A,{marginLeft:2,children:Ie(M,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),ZF=ar(({item:e,theme:t})=>et(A,{flexDirection:"column",marginBottom:1,children:[Ie(A,{children:et(M,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),Ie(A,{marginLeft:2,children:Ie(M,{color:t.colors.error,children:e.text})})]})),eH=ar(({item:e,theme:t})=>Ie(A,{flexDirection:"column",marginBottom:1,children:et(M,{color:t.colors.text,children:[Ie(M,{color:t.colors.accent,bold:!0,children:e.icon??">"}),Ie(M,{children:" "}),e.compactText??e.text]})})),tH=ar(({item:e,theme:t})=>Ie(A,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:et(M,{color:t.colors.info,children:[et(M,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),nH=ar(({item:e,theme:t})=>et(A,{flexDirection:"column",marginBottom:1,children:[Ie(A,{children:et(M,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),Ie(A,{marginLeft:2,children:Ie(M,{dimColor:!0,children:e.text})})]})),Wk=ar(({item:e,theme:t,maxLines:n=1e3})=>{let r=fo(()=>ue("dark"),[]),o=t??r;switch(e.type){case"user":return Ie(zF,{item:e,theme:o});case"assistant":return Ie(XF,{item:e,theme:o,maxLines:n});case"system":return Ie(YF,{item:e,theme:o});case"tool_group":return Ie(JF,{item:e,theme:o});case"thinking":return Ie(QF,{item:e,theme:o});case"error":return Ie(ZF,{item:e,theme:o});case"event":return Ie(eH,{item:e,theme:o});case"info":return Ie(tH,{item:e,theme:o});case"hint":return Ie(nH,{item:e,theme:o});default:return Ie(A,{children:Ie(M,{dimColor:!0,children:"Unknown item type"})})}});function rH(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.bg!==r.bg||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(rH,"areTranscriptRowPropsEqual");var jk=ar(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:o})=>{let s=$k(t,e.color),a=e.bg==="diffAdd"?t.colors.diffAddBackground:e.bg==="diffRemove"?t.colors.diffRemoveBackground:void 0,c=e.text===" "?"":e.text,l=c||" ",u=o&&c?Bc(c,o.start,o.end):"",d=o&&c?Bc(c,0,o.start):c,p=o&&c?Bc(c,o.end):"",m=r&&!o,h=!m&&e.color==="dim",x={color:m?t.colors.accent:s,bold:e.bold||m,italic:e.italic,dimColor:h},T=Ie(M,{...x,children:o&&c?et(tS,{children:[d?Ie(M,{...x,children:d}):null,Ie(M,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:u}),p?Ie(M,{...x,children:p}):null]}):l});return et(A,{marginLeft:e.indent??0,children:[e.spinner&&n&&et(tS,{children:[Ie(sr,{color:t.colors.accent,theme:t}),Ie(M,{children:" "})]}),a?Ie(A,{width:"100%",backgroundColor:a,children:T}):T]})},rH),nS=ar(({section:e,theme:t,animateSpinners:n=!0})=>Ie(A,{flexDirection:"column",children:e.rows.map(r=>Ie(jk,{row:r,theme:t,animateSpinners:n},r.key))})),Ni=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:m=1,isCompacting:h=!1,agentMode:g,managedPhase:x,managedHarnessProfile:T,managedWorkerTitle:S,managedRound:I,managedMaxRounds:v,managedGlobalWorkBudget:$,managedBudgetUsage:_,managedBudgetApprovalRequired:N,lastLiveActivityLabel:B,liveStatusLines:k,viewportRows:D,viewportWidth:U,scrollOffset:j=0,animateSpinners:W=!0,windowed:P=!1,showFullThinking:b=!1,showDetailedTools:fe=!1,showAllContent:C=!1,showLiveProgressRows:ne=!0,selectedItemId:se,expandedItemKeys:he,onMetricsChange:Ee,onVisibleRowsChange:$e,rendererWindow:Q,selectedTextRanges:Y,transcriptModel:pe,visibleRowsOverride:ft})=>{let Ue=fo(()=>ue("dark"),[]),{stdout:Ge}=ao(),Ve=U??Ge?.columns??80,pt=fo(()=>pe??Wm({items:e,viewportWidth:Ve,isLoading:t,maxLines:n,isThinking:r,thinkingCharCount:o,thinkingContent:s,streamingResponse:a,currentTool:c,activeToolCalls:l,toolInputCharCount:u,toolInputContent:d,iterationHistory:p,currentIteration:m,isCompacting:h,managedAgentMode:g,managedPhase:x,managedHarnessProfile:T,managedWorkerTitle:S,managedRound:I,managedMaxRounds:v,managedGlobalWorkBudget:$,managedBudgetUsage:_,managedBudgetApprovalRequired:N,lastLiveActivityLabel:B,liveStatusLines:k,windowed:P,showFullThinking:b,showDetailedTools:fe,showAllContent:C,showLiveProgressRows:ne,expandedItemKeys:he}),[pe,e,Ve,t,n,r,o,s,a,c,l,u,d,p,m,h,g,x,T,S,I,v,$,_,N,B,k,P,b,fe,C,ne,he]),Rt=pt.staticSections,de=pt.rows,ke=pt.previewRows,Ae=fo(()=>[...de,...ke],[ke,de]),mt=!(Ae.length>0)&&e.length===0&&!t,oe=fo(()=>P||Q||ft?Ae:de,[Ae,Q,de,ft,P]),Qe=fo(()=>ft||kk(oe,{viewportTop:Q?Math.max(0,Q.viewportTop):void 0,viewportHeight:Q?Math.max(0,Q.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:D,scrollOffset:j,windowed:P}),[Q,j,D,ft,P,oe]),pn=fo(()=>ft||P||Q?Qe:Ae,[Ae,Q,Qe,ft,P]),kt=fo(()=>Ae,[Ae]),qn=Q?Math.max(0,Q.viewportHeight):D;return Hk(()=>{Ee?.({scrollHeight:Ae.length,viewportHeight:Q?Math.max(0,Q.viewportHeight):qn??Ae.length})},[Ae.length,qn,Ee,Q]),Hk(()=>{$e?.({rows:pn,allRows:kt})},[kt,$e,pn]),mt?Ie(A,{paddingY:1,children:Ie(M,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):et(A,{flexDirection:"column",children:[!P&&Rt.length>0&&Ie(Rc,{items:Rt,children:i(on=>Ie(nS,{section:on,theme:Ue,animateSpinners:W},on.key),"children")}),pn.map(on=>Ie(jk,{row:on,theme:Ue,animateSpinners:W,selectedItem:se?on.key.startsWith(`${se}-`):!1,selectionRange:Y?.get(on.key)},on.key))]})},"MessageList");var Uk=i(({role:e,content:t})=>{let n=fo(()=>ue("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return et(A,{flexDirection:"column",marginBottom:1,children:[Ie(M,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),Ie(M,{children:t})]})},"SimpleMessageDisplay");import{jsx as oS,jsxs as Xm}from"react/jsx-runtime";import xH,{useMemo as iS}from"react";function Qu(e,t,n){let r=_y({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(Qu,"formatCompactionPolicy");function Gk(e,t,n=0,r){let o=LI(e,n);return _y({triggerPercent:t,triggerTokens:r},e,o).triggerTokens}i(Gk,"resolveCompactionThresholdTokens");var oH="\u{1F504}",iH="\u2588",sH="\u2592",aH="\u2192",cH=" \xB7 ";function lH(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(lH,"formatReasoningModeShort");function uH(e){if(e)return e==="none"?"off":e}i(uH,"formatEffortShort");function dH(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(dH,"getReasoningColor");function Vk(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(Vk,"formatTokenCount");function fH(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${iH.repeat(t)}${sH.repeat(n)}`}i(fH,"createMiniProgressBar");function pH(e,t,n,r,o){if(t===0)return"green";let s=Gk(t,n,r,o);return e>=s?"red":e>=s*(2/3)?"yellow":"green"}i(pH,"getContextColor");function mH(e){switch(e.toLowerCase()){case"plan":return"blue";case"accept-edits":return"green";case"auto":case"auto-in-project":return"warning";case"full-access":return"red";default:return"magenta"}}i(mH,"getPermissionModeColor");function hH(e){let t=xp(e);return e==="auto"||e==="auto-in-project"?`${t}[LLM]`:t}i(hH,"buildPermissionModeText");function gH(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(gH,"formatToolAction");function Vm(e,t){return t&&t>0?`${e} (${t} chars)`:e}i(Vm,"formatThinkingStatus");function Km(e,t,n){let r=gH(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}i(Km,"formatToolStatus");function rS({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 m=e&&e>0?`${e} tool${e===1?"":"s"} running`:void 0;if(o)return"Compacting";if(c==="routing")return m?`Routing - ${m}`:t?`Routing - ${Km(t,s,a)}`:n?Vm("Routing",r):"Routing";if(c==="preflight"){let h=u??"Scout";return m?`${h} - ${m}`:t?`${h} - ${Km(t,s,a)}`:n?Vm(h,r):h}if(c==="verifying")return"Verifying";if(l){let h=u??"Worker";if(d===!0&&!m&&!t&&!n){let g=p??0,x=g>1?`waiting for ${g} children`:g===1?"waiting for 1 child":"idle - resuming";return`${h} - ${x}`}return m?`${h} - ${m}`:t?`${h} - ${Km(t,s,a)}`:n?Vm(h,r):h}if(m)return m;if(t)return Km(t,s,a);if(n)return Vm("Thinking",r)}i(rS,"buildBusyStatusText");function yH({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(yH,"resolveIterationSegments");function wH(e){if(e.length!==0)return`${oH} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(cH)}`}i(wH,"formatLabeledIterationStatus");function SH(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:m=u?"auto":"off",effort:h,reasoningEffortLabel:g,isCompacting:x,toolInputCharCount:T,toolInputContent:S,currentIteration:I,maxIter:v,contextUsage:$,learning:_,showBusyStatus:N=!0,managedPhase:B,managedHarnessProfile:k,managedWorkerTitle:D,managedRound:U,managedMaxRounds:j,managedGlobalWorkBudget:W,managedBudgetUsage:P,managedIdleWaiting:b,managedIdleWaitingPendingCount:fe}=e,C=[{id:"agent-mode",text:`KodaX - ${r.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:hH(n),color:mH(n)}],ne=g??uH(h)??lH(m);C.push({id:"reasoning-mode",text:ne,color:dH(ne)});let se=yH({agentMode:r,managedPhase:B,managedHarnessProfile:k,managedRound:U,managedMaxRounds:j,managedGlobalWorkBudget:W,managedBudgetUsage:P,currentIteration:I,maxIter:v}),he=wH(se);if(he){let $e=Math.max(...se.map(Y=>Y.current/Y.max)),Q="green";$e>=.8?Q="red":$e>=.5&&(Q="yellow"),C.push({id:"iteration-status",text:he,color:Q})}C.push({id:"session-id",text:t,color:"dim"});let Ee=N?rS({activeToolCount:l,currentTool:c,isThinkingActive:d,thinkingCharCount:p,isCompacting:x,toolInputCharCount:T,toolInputContent:S,managedPhase:B,managedHarnessProfile:k,managedWorkerTitle:D,managedIdleWaiting:b,managedIdleWaitingPendingCount:fe}):void 0;if(Ee&&C.push({id:"busy-status",text:Ee,color:"dim"}),C.push({id:"provider-model",text:`${o}/${s}`,color:"secondary"}),$&&$.contextWindow!==0){let $e=Math.round($.currentTokens/$.contextWindow*100),Q=Vk($.currentTokens),Y=Vk($.contextWindow),pe=fH($e);C.push({id:"context-usage",text:`${Q}/${Y} ${pe} ${$e}%`,color:pH($.currentTokens,$.contextWindow,$.triggerPercent,$.reservedResponseTokens,$.triggerTokens)})}if(_&&(_.ready>0||_.newlyActive>0||_.attention>0)){let $e=[..._.ready>0?[`${_.ready}R`]:[],..._.newlyActive>0?[`${_.newlyActive}N`]:[],..._.attention>0?[`${_.attention}!`]:[]];C.push({id:"learning",text:`Learn:${$e.join("/")}`,color:_.attention>0||_.ready>0?"yellow":"cyan",tone:_.attention>0||_.ready>0?"warning":"accent"})}return a&&C.push({id:"token-usage",text:`${a.input}${aH}${a.output} (${a.total})`,color:"dim"}),C}i(SH,"buildStatusBarSegments");function zm(e){let t=SH(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}i(zm,"buildStatusBarViewModel");function TH(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(TH,"resolveViewModelSegmentColor");var js=i(({viewModel:e,...t})=>{let n=iS(()=>ue("dark"),[]),r=iS(()=>e??zm(t),[t,e]);return oS(A,{paddingX:1,children:r.segments.map((o,s)=>Xm(xH.Fragment,{children:[oS(M,{color:TH(o,n),bold:o.bold,children:o.text}),s<r.segments.length-1?oS(M,{dimColor:!0,children:" | "}):null]},o.id))})},"StatusBar"),Kk=i(({permissionMode:e,provider:t,model:n})=>{let r=iS(()=>ue("dark"),[]);return Xm(A,{children:[Xm(M,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),Xm(M,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as Di,jsxs as Jm}from"react/jsx-runtime";import{useState as sS,useCallback as Ym,useMemo as zk}from"react";function qm(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(qm,"generateId");function CH(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(CH,"messageToHistoryItem");var Xk=i(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:o="ama"})=>{let{stdout:s}=ao(),a=zk(()=>ue("dark"),[]),[c,l]=sS({messages:[],isLoading:!1,sessionId:qm()}),[u,d]=sS(null),[p,m]=sS(),h=Ym(async S=>{if(!S.trim())return;let I={id:qm(),role:"user",content:S,timestamp:Date.now()};l(v=>({...v,messages:[...v.messages,I],isLoading:!0}));try{await n(S)}catch(v){let $={id:qm(),role:"system",content:`Error: ${v instanceof Error?v.message:"Unknown error"}`,timestamp:Date.now()};l(_=>({..._,messages:[..._.messages,$],isLoading:!1}))}finally{l(v=>({...v,isLoading:!1}))}},[n]),g=Ym((S,I)=>{let v={id:qm(),role:S,content:I,timestamp:Date.now()};l($=>({...$,messages:[...$.messages,v]}))},[]),x=Ym((S,I)=>{d({input:S,output:I,total:S+I})},[]),T=Ym(S=>{m(S)},[]);return Jm(A,{flexDirection:"column",children:[Di(A,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:Di(Ni,{items:c.messages.map(CH),isLoading:c.isLoading})}),Di(A,{flexShrink:0,children:Di(Hs,{onSubmit:i(S=>h(S.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),Di(A,{flexShrink:0,children:Di(js,{sessionId:c.sessionId,permissionMode:r,agentMode:o,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),Yk=i(({model:e,provider:t,onInput:n})=>{let r=zk(()=>ue("dark"),[]);return Jm(A,{flexDirection:"column",children:[Jm(A,{marginBottom:1,children:[Di(M,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),Jm(M,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),Di(Hs,{onSubmit:i(o=>n(o.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as IH}from"react/jsx-runtime";var Qm=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:m=!0,scrollRef:h,onScrollTopChange:g,onStickyChange:x,onWindowChange:T,overscanRows:S})=>IH(Mw,{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:m,scrollRef:h,onScrollTopChange:g,onStickyChange:x,onWindowChange:T,overscanRows:S}),"FullscreenTranscriptLayout");import{jsx as qk}from"react/jsx-runtime";function Fc({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(Fc,"buildMessageActionsText");var Zm=i(({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:o=!1,matchNavigation:s=!1,dismissAction:a})=>{let c=ue("dark"),l=Fc({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:r,selectionNavigation:o,matchNavigation:s,dismissAction:a});return l?qk(A,{paddingX:1,children:qk(M,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as Jk}from"react/jsx-runtime";function aS({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(aS,"buildMessageSelectorText");var Qk=i(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let o=ue("dark"),s=aS({itemSummary:e,itemKind:t,position:n,detailState:r});return s?Jk(A,{paddingX:1,children:Jk(M,{color:o.colors.dim,children:s})}):null},"MessageSelector");import{jsx as Hc,jsxs as vH}from"react/jsx-runtime";import{useMemo as Zk}from"react";function eh(e,t){return Math.max(1,Mn(e.length>0?e.split(`
|
|
62
|
-
`):[""],Math.max(1,t),0,0).visualLines.length)}i(eh,"countWrappedRows");var th=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,m=d?.toolInput??!1,h=d?.copyOnSelect??!1,g=t?.toggleDetail??!1,x=t?.navigationCapabilities?.selection??!1,T=n?.statusText,S=n?.matches?.length??0,I=n?.surface,v=o.viewportWidth??80,$=Math.max(1,v-2),_=n?.query?.trim()?"close-search":a||p||m||g||x?"clear":void 0,N=aS({itemSummary:a,itemKind:l,position:c,detailState:u}),B=Zk(()=>Fc({copyMessage:p,copyToolInput:m,copyOnSelect:h,toggleDetail:g,selectionNavigation:x,matchNavigation:!!T&&S>0,dismissAction:_}),[p,m,x,g,_,S,T,h]),k=Zk(()=>{if(!s)return 0;let U=0;return e?.hintText&&(U+=eh(e.hintText,$)),N&&(U+=eh(N,$)),B&&(U+=eh(B,$)),T&&(U+=eh(T,$)),I&&(U+=1),U},[B,e?.hintText,$,s,T,I,N]),D=typeof o.viewportRows=="number"?Math.max(1,o.viewportRows-k):o.viewportRows;return vH(A,{flexDirection:"column",flexGrow:o.windowed?0:1,children:[s&&e?.hintText?Hc(A,{paddingX:1,children:Hc(M,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||m||h||g||x||S>0)?Hc(Zm,{copyMessage:p,copyToolInput:m,copyOnSelect:h,toggleDetail:g,selectionNavigation:x,matchNavigation:!!T&&S>0,dismissAction:_}):null,s&&T?Hc(A,{paddingX:1,children:Hc(M,{dimColor:!0,children:T})}):null,s?I:null,Hc(Ni,{...o,viewportRows:D})]})},"TranscriptViewport");import{jsx as eE}from"react/jsx-runtime";var nh=i(e=>eE(A,{flexDirection:"column",children:eE(Hs,{...e})}),"PromptComposer");import{jsx as Us,jsxs as rh}from"react/jsx-runtime";import tE from"react";var nE=" \xB7 ",Zu=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ue("dark");return t.length===0?null:Us(A,{flexGrow:1,children:t.map((r,o)=>rh(tE.Fragment,{children:[Us(M,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?Us(M,{dimColor:!0,children:nE}):null]},r.id))})},"PromptFooterLeftSide"),ed=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=ue("dark");return t.length===0?null:Us(A,{justifyContent:"flex-end",children:t.map((r,o)=>rh(tE.Fragment,{children:[Us(M,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?Us(M,{dimColor:!0,children:nE}):null]},r.id))})},"PromptFooterRightSide"),td=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:m,inlineDialogs:h})=>rh(A,{flexDirection:"column",children:[e||t?rh(A,{paddingX:1,children:[Us(A,{flexGrow:1,children:e}),t]}):null,n,r,o,s,a,c,l,u,h,d,p,m]}),"PromptFooter");import{jsx as cS,jsxs as rE}from"react/jsx-runtime";var oh=i(({sections:e,title:t="Help"})=>{let n=ue("dark"),r=e.filter(o=>o.items.length>0);return r.length===0?null:rE(A,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[cS(M,{color:n.colors.accent,bold:!0,children:t}),r.map(o=>rE(A,{flexDirection:"column",children:[cS(M,{color:n.colors.primary,bold:!0,children:o.title}),cS(M,{dimColor:!0,children:o.items.map(s=>s.label).join(" | ")})]},o.id))]})},"PromptHelpMenu");import{jsx as oE}from"react/jsx-runtime";import{createContext as aE,useContext as cE,useReducer as bH,useCallback as fn,useMemo as RH}from"react";var iE=150;function rd(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(rd,"generateId");function nd(e){let t=e.timestamp;return{...e,id:rd(),timestamp:t!==void 0&&Number.isFinite(t)&&t>=0?t:Date.now()}}i(nd,"createHistoryItem");function lS(e){if(e.length<=iE)return e;let t=0,n=e.length-iE;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(lS,"trimCanonicalHistoryToRounds");function sE(e){if(!e.some(u=>u.isSessionUiOnly))return lS(e);let t=e.filter(u=>!u.isSessionUiOnly),n=lS(t),r=n[0],s=n.length<t.length&&r!==void 0?e.indexOf(r):0,a=e.filter((u,d)=>u.isSessionUiOnly===!0&&d>=s),c=lS(a),l=new Set([...n,...c]);return e.filter(u=>l.has(u))}i(sE,"trimHistoryToRounds");function uS(e,t){return e.filter(n=>n.type==="user"&&typeof n.id=="string"&&!t.has(n.id))}i(uS,"selectUncommittedLedgerUserItems");function ih(e){return{...e,id:rd(),startTime:Date.now()}}i(ih,"createToolCall");function kH(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:sE([...e.history,t.payload])};case"BULK_ADD_HISTORY_ITEMS":return{...e,history:sE([...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{...Sp,sessionId:e.sessionId};default:return e}}i(kH,"uiReducer");var lE=aE(null),uE=aE(null);function od({children:e,initialState:t}){let[n,r]=bH(kH,{...Sp,...t}),o=fn(N=>{r({type:"SET_STREAMING_STATE",payload:N})},[]),s=fn(N=>{r({type:"APPEND_TO_RESPONSE",payload:N})},[]),a=fn(()=>{r({type:"CLEAR_RESPONSE"})},[]),c=fn(N=>{let B=nd(N);r({type:"ADD_HISTORY_ITEM",payload:B})},[]),l=fn(N=>{N.length!==0&&r({type:"BULK_ADD_HISTORY_ITEMS",payload:N.map(nd)})},[]),u=fn((N,B)=>{r({type:"UPDATE_HISTORY_ITEM",payload:{id:N,updates:B}})},[]),d=fn(()=>{r({type:"CLEAR_HISTORY"})},[]),p=fn(N=>{let B=ih(N);return r({type:"ADD_TOOL_CALL",payload:B}),B.id},[]),m=fn((N,B)=>{r({type:"UPDATE_TOOL_CALL",payload:{id:N,updates:B}})},[]),h=fn(()=>{r({type:"CLEAR_TOOL_CALLS"})},[]),g=fn(N=>{r({type:"SET_SESSION_ID",payload:N})},[]),x=fn(N=>{r({type:"SET_MODE",payload:N})},[]),T=fn(N=>{r({type:"SET_PROVIDER",payload:N})},[]),S=fn(N=>{r({type:"SET_MODEL",payload:N})},[]),I=fn(N=>{r({type:"SET_TOKEN_USAGE",payload:N})},[]),v=fn(N=>{r({type:"SET_ERROR",payload:N})},[]),$=fn(N=>{r({type:"SET_LOADING",payload:N})},[]),_=RH(()=>({setStreamingState:o,appendToResponse:s,clearResponse:a,addHistoryItem:c,addHistoryItems:l,updateHistoryItem:u,clearHistory:d,addToolCall:p,updateToolCall:m,clearToolCalls:h,setSessionId:g,setMode:x,setProvider:T,setModel:S,setTokenUsage:I,setError:v,setLoading:$}),[o,s,a,c,l,u,d,p,m,h,g,x,T,S,I,v,$]);return oE(lE.Provider,{value:n,children:oE(uE.Provider,{value:_,children:e})})}i(od,"UIStateProvider");function Wc(){let e=cE(lE);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}i(Wc,"useUIState");function jc(){let e=cE(uE);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}i(jc,"useUIActions");function dS(){let e=Wc(),t=jc();return{state:e,actions:t}}i(dS,"useUI");function fS(){return ue()}i(fS,"useTheme");import{jsxs as Bi,jsx as sh,Fragment as EH}from"react/jsx-runtime";import{useMemo as MH}from"react";var _H=80,AH=7,LH={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function PH(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(PH,"getVisibleRange");function OH({suggestion:e,isSelected:t,width:n}){let r=fS(),o=e.icon||e.type&&LH[e.type]||"",s=o?Dr(o)+1:0,a=Dr(e.displayText||e.text),c=e.description?Dr(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,d=Math.max(0,u),p=mc(e.displayText||e.text,l),m=e.description?mc(e.description,d):"";return Bi(A,{children:[o&&Bi(M,{color:t?r.colors.accent:r.colors.dim,children:[o," "]}),sh(M,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),m&&Bi(EH,{children:[sh(M,{children:" "}),sh(M,{color:r.colors.dim,children:mc(e.description||"",d)})]}),t&&Bi(M,{color:r.colors.accent,children:[" ","\u25C0"]})]})}i(OH,"SuggestionItem");function id({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=AH,width:o=_H,showCount:s=!1}){let a=fS();if(!n||e.length===0)return null;let{start:c,end:l}=MH(()=>PH(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return Bi(A,{flexDirection:"column",marginLeft:2,children:[c>0&&Bi(M,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((d,p)=>{let h=c+p===t;return sh(OH,{suggestion:d,isSelected:h,width:o},d.id)}),l<e.length&&Bi(M,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&Bi(M,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}i(id,"SuggestionsDisplay");import{jsx as Uc,jsxs as $H}from"react/jsx-runtime";var ah=i(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let o=Oi(),s=ue("dark");if(n)return null;if(!o)return e?Uc(A,{height:8}):null;let{state:a,suggestions:c}=o;return a.visible&&c.length>0?r==="overlay"?$H(A,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[Uc(M,{color:s.colors.accent,bold:!0,children:"Suggestions"}),Uc(id,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):Uc(A,{height:8,children:Uc(id,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?Uc(A,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as Fr,jsx as br,Fragment as pS}from"react/jsx-runtime";import NH,{useEffect as DH,useState as BH}from"react";var Gc=15,dE=Math.max(1,Gc-2),ch=i(({confirm:e,request:t})=>e?Fr(A,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[Fr(M,{color:"yellow",bold:!0,children:[te("dialog.confirm")," ",e.prompt]}),e.planContent?br(FH,{content:e.planContent}):null,e.instruction?br(M,{dimColor:!0,children:e.instruction}):null]}):t?Fr(A,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?Fr(pS,{children:[Fr(M,{color:"cyan",bold:!0,children:[te("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 Fr(pS,{children:[c>0?br(M,{dimColor:!0,children:te("select.more_above",{count:c})}):null,n.slice(a,a+r).map((u,d)=>{let p=a+d,m=p===o,h=t.selectedIndices?.includes(p)??!1,g=m?"\u276F ":" ",x=h?" \u2713":"",T=u.description?` - ${u.description}`:"";return br(M,{color:m?"cyan":void 0,dimColor:!m,children:`${g}${u.label}${T}${x}`},`${u.value}-${p}`)}),l>0?br(M,{dimColor:!0,children:te("select.more_below",{count:l})}):null]})})(),br(M,{dimColor:!0,children:t.multiSelect?te("select.multiselect_hint"):te("select.navigate_hint")})]}):Fr(pS,{children:[Fr(M,{color:"cyan",bold:!0,children:[te("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0?br(M,{dimColor:!0,children:`${te("input.default")} ${t.defaultValue}`}):null,br(M,{dimColor:!0,children:`${te("input.value")} ${t.buffer||te("input.type_response")}`}),br(M,{dimColor:!0,children:te("select.confirm_hint")})]}),t.error?br(M,{color:"red",children:t.error}):null]}):null,"DialogSurface"),FH=i(({content:e})=>{let t=NH.useMemo(()=>e.split(`
|
|
63
|
-
`),[e]),n=t.length,r=n>Gc,[o,s]=BH(0);DH(()=>{s(u=>{let d=Math.max(0,n-Gc);return u>d?d:u})},[n]),kc((u,d)=>{if(!r)return;let p=Math.max(0,n-Gc);d.upArrow?s(m=>Math.max(0,m-1)):d.downArrow?s(m=>Math.min(p,m+1)):d.pageUp?s(m=>Math.max(0,m-dE)):d.pageDown&&s(m=>Math.min(p,m+dE))},{isActive:!0});let a=t.slice(o,o+Gc),c=o,l=Math.max(0,n-o-Gc);return Fr(A,{flexDirection:"column",marginTop:1,children:[r&&c>0?Fr(M,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((u,d)=>br(M,{children:u},`plan-line-${o+d}`)),r&&l>0?Fr(M,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,r?br(M,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as sd,jsx as HH}from"react/jsx-runtime";function fE(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}i(fE,"normalizePendingPreview");function pE(e){if(e.length===0)return;let t=fE(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(pE,"formatPendingInputsSummary");function mS(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:fE(n)}))}i(mS,"formatPendingInputsLines");function mE(e){let t=mS(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(mE,"formatPendingInputsBudgetText");var lh=i(({pendingInputs:e})=>{let t=mS(e);if(t.length===0)return null;let n=ue("dark");return sd(A,{flexDirection:"column",children:[t.map(r=>sd(A,{children:[sd(M,{color:n.colors.hint,children:["\u23F3"," "]}),sd(M,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),HH(A,{children:sd(M,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as hE}from"react/jsx-runtime";function WH(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}i(WH,"resolveNotificationColor");var ad=i(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=ue("dark");return t.length===0?null:hE(A,{flexDirection:"column",paddingX:1,children:t.map(r=>hE(M,{color:WH(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as gE}from"react/jsx-runtime";var uh=i(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=ue("dark");return gE(A,{flexDirection:"column",paddingX:1,children:t.map((r,o)=>gE(M,{color:n.colors.dim,children:r},`${r}-${o}`))})},"StatusNoticesSurface");import{jsxs as yE,jsx as jH}from"react/jsx-runtime";var cd=i(({text:e})=>{let t=e?.trim();if(!t)return null;let n=ue("dark");return yE(A,{paddingX:1,children:[yE(M,{color:n.colors.hint,children:["\u22EF"," "]}),jH(M,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as Gs,jsxs as UH}from"react/jsx-runtime";function wE({text:e,accent:t=!1,selected:n=!1}){let r=ue("dark");return Gs(A,{marginRight:1,children:Gs(M,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}i(wE,"Pill");var ld=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:UH(A,{flexDirection:"row",paddingX:1,children:[r?Gs(A,{marginRight:1,children:Gs(sr,{})}):null,o.map(s=>Gs(wE,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?Gs(wE,{text:t}):null,n?Gs(M,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import{jsx as dd,jsxs as YH}from"react/jsx-runtime";import GH from"string-width";var hS=9,gS=3,SE=160,VH={shouldRender:!1,activeCount:0,rows:[]};function xE(e,t=hS){let n=GH(e);return n>=t?e:`${e}${" ".repeat(t-n)}`}i(xE,"padChildActivitySymbol");function yS(e){let t=e.replace(/\s+/gu," ").trim();return t.length<=SE?t:`${t.slice(0,SE-3)}...`}i(yS,"truncateChildActivityDetail");function ud(e){return!!(e?.liveOnly===!0&&(e.workflowCorrelation||e.childAgentId))}i(ud,"shouldRouteToChildActivity");function TE(e,t){return!!(e?.liveOnly===!0&&e.workflowCorrelation?.workflowRunId&&t&&e.workflowCorrelation.workflowRunId===t)}i(TE,"shouldRouteWorkflowLiveOnlyNotice");function CE(e){return!e.isTranscriptMode&&e.childActivityVisible&&(e.isLoading||e.hasWorkflowLiveSurface)}i(CE,"shouldShowChildActivitySurface");function wS(e){let t=e.childAgentId??e.workflowCorrelation?.childAgentId??"child",n=e.workflowCorrelation?.workflowRunId;return n?`${n}:${t}`:t}i(wS,"childActivityId");function IE(e){return e.childAgentName??e.childAgentId??e.workflowCorrelation?.childAgentId??"child"}i(IE,"childActivityLabel");function vE(e){return e.workflowCorrelation?"workflow":"normal"}i(vE,"childActivitySource");function bE(e,t){let n=t?.path??t?.pattern??t?.command??t?.preview,r=typeof n=="string"&&n.trim().length>0?` ${n}`:"";return yS(`${e}${r}`)}i(bE,"toolActivityDetail");function RE(e,t){return e==="tool"&&["thinking","assistant","stream"].includes(t)}i(RE,"suppressesChurnOverToolAction");function KH(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(KH,"formatChildActivityElapsed");function zH(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(zH,"kindLabel");function XH(e,t){let n=e.label.trim()||"child",r=e.startedAt!==void 0?` \xB7 ${KH(t-e.startedAt)}`:"",o=e.detail.trim(),s=o.length>0?`: ${o}`:"";return`${n}${r} - ${zH(e.kind)}${s}`}i(XH,"rowText");function kE(e,t=gS,n=Date.now()){let r=e.filter(u=>u.status==="running");if(r.length===0)return VH;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:XH(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(kE,"buildChildActivityViewModel");var EE=hS;function qH(e){let t=ue("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;default:return t.colors.dim}}i(qH,"resolveSymbolColor");var JH=i(({row:e})=>{let t=qH(e.symbolColor);return YH(A,{flexDirection:"row",children:[dd(A,{width:EE,flexShrink:0,children:dd(M,{color:t,bold:e.isActive,wrap:"truncate",children:xE(e.symbol,EE)})}),dd(M,{color:e.kind==="summary"?ue("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"ChildActivityRowView");function dh(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}i(dh,"measureChildActivitySurfaceRows");var fh=i(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:dd(A,{flexDirection:"column",flexGrow:1,children:e.rows.map(t=>dd(JH,{row:t},`${t.kind}-${t.id}`))}),"ChildActivitySurface");import ME,{createContext as LE,useContext as PE,useReducer as QH,useCallback as tt,useRef as _E,useEffect as AE}from"react";function ZH(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}i(ZH,"isPendingPromptForAgent");function fd(e){return rr().getSnapshot().filter(t=>ZH(t,e))}i(fd,"getPendingPrompts");function SS(e){return fd(e).map(t=>t.content)}i(SS,"getPendingPromptContents");var xS={state:$r.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 ph(e={}){let t=i(()=>e.getPendingInputAgentId?.(),"getPendingInputAgentId"),n={...xS,pendingInputs:SS(t())},r=new Set,o="",s="",a=0,c=null,l=!1,u=80,d=i(()=>{for(let T of r)T(n)},"notify"),p=i(()=>{let T=SS(t());if(T.length===n.pendingInputs.length){let S=!0;for(let I=0;I<T.length;I++)if(T[I]!==n.pendingInputs[I]){S=!1;break}if(S)return}n={...n,pendingInputs:T},d()},"syncReactStateFromQueue"),m=rr().subscribe(()=>{p()}),h=i(()=>rr().dequeue({agentId:t(),maxPriority:"user",mode:"prompt"}).map(S=>S.content),"drainOurSlice"),g=i(()=>{if(c&&(clearTimeout(c),c=null),o||s||a>0){let S=n.thinkingContent+s,I=s?S.length:n.thinkingCharCount+a;n={...n,currentResponse:n.currentResponse+o,thinkingContent:S,thinkingCharCount:I,...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(T=>{g(),n={...n,state:T},d()},"setState"),startStreaming:i(()=>{l=!1,o="",s="",a=0,c&&(clearTimeout(c),c=null),n={...n,state:$r.Responding,currentResponse:"",abortController:new AbortController,error:void 0,roundStartedAt:Date.now()},d()},"startStreaming"),stopStreaming:i(()=>{g(),n={...n,state:$r.Idle,abortController:void 0,roundStartedAt:null},d()},"stopStreaming"),appendResponse:i(T=>{l||(o+=T,x())},"appendResponse"),clearResponse:i(()=>{g(),n={...n,currentResponse:""},d()},"clearResponse"),setError:i(T=>{g(),n={...n,error:T,state:T?$r.Idle:n.state},d()},"setError"),abort:i(T=>{l=!0,g(),n.abortController?.abort(),o="",s="",a=0,c&&(clearTimeout(c),c=null),T?.preservePendingInputs||h(),n={...n,state:$r.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),h(),n={...xS,pendingInputs:SS(t())},l=!1,d()},"reset"),isStreaming:i(()=>n.state===$r.Responding||n.state===$r.WaitingForConfirmation,"isStreaming"),subscribe:i(T=>(r.add(T),()=>{r.delete(T)}),"subscribe"),startThinking:i(()=>{g(),n={...n,isThinking:!0,thinkingCharCount:0,thinkingContent:""},d()},"startThinking"),appendThinkingChars:i(T=>{l||(a+=T,x())},"appendThinkingChars"),appendThinkingContent:i(T=>{l||(s+=T,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(T=>{g(),n={...n,currentTool:T,toolInputCharCount:0,toolInputContent:""},d()},"setCurrentTool"),appendToolInputChars:i(T=>{n={...n,toolInputCharCount:n.toolInputCharCount+T},d()},"appendToolInputChars"),appendToolInputContent:i(T=>{n.toolInputContent.length<240&&(n={...n,toolInputContent:(n.toolInputContent+T).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(T=>{g(),n.thinkingContent||n.currentResponse?n={...n,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:T}:n={...n,currentIteration:T},d()},"startNewIteration"),clearIterationHistory:i(()=>{g(),n={...n,iterationHistory:[],currentIteration:1,maxIter:xS.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},d()},"clearIterationHistory"),setMaxIter:i(T=>{g(),n={...n,maxIter:T},d()},"setMaxIter"),startCompacting:i(()=>{g(),n={...n,isCompacting:!0},d()},"startCompacting"),stopCompacting:i(()=>{g(),n={...n,isCompacting:!1},d()},"stopCompacting"),addPendingInput:i((T,S)=>{let I=T.trim();I&&(fd(t()).length>=5||(g(),rr().enqueue({agentId:t(),priority:"user",mode:"prompt",delivery:S?.delivery,content:I})))},"addPendingInput"),removeLastPendingInput:i(()=>{let T=fd(t()),S=T[T.length-1];S&&(g(),rr().dequeue({agentId:t(),maxPriority:"user",mode:"prompt",id:S.id}))},"removeLastPendingInput"),capturePendingInputCancellation:i(()=>{let T=t(),S=fd(T).map(I=>I.id);return()=>{for(let I of S)rr().dequeue({agentId:T,maxPriority:"user",mode:"prompt",id:I})}},"capturePendingInputCancellation"),peekPendingInputDelivery:i(()=>fd(t())[0]?.delivery,"peekPendingInputDelivery"),shiftPendingInput:i(()=>(g(),rr().dequeue({agentId:t(),maxPriority:"user",mode:"prompt",limit:1})[0]?.content),"shiftPendingInput"),clearPendingInputs:i(()=>{g(),h()},"clearPendingInputs"),consumePendingInputs:i(()=>(g(),h()),"consumePendingInputs"),dispose:i(()=>{m()},"dispose")}}i(ph,"createStreamingManager");var OE=LE(null),$E=LE(null);function md({children:e,onStateChange:t,getPendingInputAgentId:n}){let r=_E(n);r.current=n;let o=_E(void 0);o.current||(o.current=ph({getPendingInputAgentId:i(()=>r.current?.(),"getPendingInputAgentId")}));let s=o.current,[,a]=QH(Y=>Y+1,0);AE(()=>s.subscribe(pe=>{a(),t?.(pe)}),[s,t]),AE(()=>()=>{s.dispose()},[s]);let c=tt(()=>{s.startStreaming()},[]),l=tt(()=>{s.stopStreaming()},[]),u=tt(Y=>{s.appendResponse(Y)},[]),d=tt(()=>{s.clearResponse()},[]),p=tt(Y=>{s.setError(Y)},[]),m=tt(Y=>{s.abort(Y)},[]),h=tt(()=>{s.reset()},[]),g=tt(()=>{s.startThinking()},[]),x=tt(Y=>{s.appendThinkingChars(Y)},[]),T=tt(Y=>{s.appendThinkingContent(Y)},[]),S=tt(()=>{s.stopThinking()},[]),I=tt(()=>{s.clearThinkingContent()},[]),v=tt(Y=>{s.setCurrentTool(Y)},[]),$=tt(Y=>{s.appendToolInputChars(Y)},[]),_=tt(Y=>{s.appendToolInputContent(Y)},[]),N=tt(()=>{s.clearToolInputContent()},[]),B=tt(()=>s.getSignal(),[]),k=tt(()=>s.getFullResponse(),[]),D=tt(()=>s.getThinkingContent(),[]),U=tt(Y=>{s.startNewIteration(Y)},[]),j=tt(()=>{s.clearIterationHistory()},[]),W=tt(Y=>{s.setMaxIter(Y)},[]),P=tt(()=>{s.startCompacting()},[]),b=tt(()=>{s.stopCompacting()},[]),fe=tt((Y,pe)=>{s.addPendingInput(Y,pe)},[]),C=tt(()=>{s.removeLastPendingInput()},[]),ne=tt(()=>s.shiftPendingInput(),[]),se=tt(()=>s.peekPendingInputDelivery(),[]),he=tt(()=>{s.clearPendingInputs()},[]),Ee=tt(()=>s.consumePendingInputs(),[]),$e=tt(()=>s.capturePendingInputCancellation(),[]),Q={startStreaming:c,stopStreaming:l,appendResponse:u,clearResponse:d,setError:p,abort:m,reset:h,startThinking:g,appendThinkingChars:x,appendThinkingContent:T,stopThinking:S,clearThinkingContent:I,setCurrentTool:v,appendToolInputChars:$,appendToolInputContent:_,clearToolInputContent:N,getSignal:B,getFullResponse:k,getThinkingContent:D,startNewIteration:U,clearIterationHistory:j,setMaxIter:W,startCompacting:P,stopCompacting:b,addPendingInput:fe,removeLastPendingInput:C,peekPendingInputDelivery:se,shiftPendingInput:ne,clearPendingInputs:he,consumePendingInputs:Ee,capturePendingInputCancellation:$e};return ME.createElement(OE.Provider,{value:s.getState()},ME.createElement($E.Provider,{value:Q},e))}i(md,"StreamingProvider");function Vc(){let e=PE(OE);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}i(Vc,"useStreamingState");function Kc(){let e=PE($E);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}i(Kc,"useStreamingActions");function TS(){let e=Vc(),t=Kc(),n=e.state===$r.Responding||e.state===$r.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}i(TS,"useStreaming");import{useCallback as eW,useRef as tW}from"react";var nW=500;function NE(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:o=!0}=e,s=tW(0),{exit:a}=co(),c=eW(l=>{if(!o)return!1;if(l.name==="escape"){let u=Date.now(),d=u-s.current<nW;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 ir(c,{isActive:o}),{lastEscTime:s.current}}i(NE,"useKeypress");function DE(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(DE,"createKeyMatcher");import{useCallback as BE,useSyncExternalStore as rW}from"react";function oW(e,t){return e.agentId===t&&e.priority==="user"&&e.mode==="prompt"}i(oW,"isQueuedPromptForAgent");var CS=null,mh=new Map;function iW(e){let t=rr().getSnapshot();t!==CS&&(CS=t,mh.clear());let n=mh.get(e);if(n!==void 0)return n;let r=Object.freeze(t.filter(o=>oW(o,e)));return mh.set(e,r),r}i(iW,"getQueueSliceSnapshot");function IS(e){let t=BE(r=>rr().subscribe(r),[]),n=BE(()=>iW(e),[e]);return rW(t,n,n)}i(IS,"useQueuedPrompts");function FE(e){return IS(e).map(n=>n.content)}i(FE,"useQueuedPromptContents");function HE(){CS=null,mh.clear()}i(HE,"_resetQueuedPromptsCacheForTests");var zc="Runtime state: run active until this approval is resolved.";function hh(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(hh,"resolveReplRuntimePermissionDecision");function Xc(e){let t=e.classifierModelEnv??e.classifierModel;return{...t!==void 0?{classifierModel:t}:{},...e.reviewPolicy!==void 0?{reviewPolicy:e.reviewPolicy}:{}}}i(Xc,"toReplRuntimeAutoModeSettings");async function Yc(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??Vs(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}i(Yc,"createInteractiveContext");function Vs(){return GI()}i(Vs,"generateSessionId");function Hr(e){e.lastAccessed=new Date().toISOString()}i(Hr,"touchContext");async function qc(e){let t;return{getGuardrail:i(()=>{if(t)return t;let r=wv({getToolProjection:i(o=>(du(o)??Oy(o))?.toClassifierInput,"getToolProjection"),getToolSideEffect:i(o=>(du(o)??Oy(o))?.sideEffect,"getToolSideEffect"),resolveProvider:i(o=>{try{return ps(o)}catch{return}},"resolveProvider"),defaultProvider:e.getCurrentProviderName(),defaultModel:e.getCurrentModel()??"",getDefaultProvider:e.getCurrentProviderName,getDefaultModel:i(()=>e.getCurrentModel()??"","getDefaultModel"),admitWorkspaceSandboxCall:e.admitWorkspaceSandboxCall,log:e.log,sharedState:e.sharedState,projectRoot:e.projectRoot,executionCwd:e.executionCwd,trustProcessEnvironmentPathExpansion:e.trustProcessEnvironmentPathExpansion!==!1,extraCollectors:e.extraCollectors,extraAbsoluteDenyChecks:[ib],userSettings:e.autoModeSettings.classifierModel,envVar:e.autoModeSettings.classifierModelEnv,administratorPolicy:e.administratorPolicy,reviewPolicy:e.autoModeSettings.reviewPolicy,modelGuidance:e.modelGuidance});return t={...r,async beforeTool(o,s){let a=await r.beforeTool(o,s);return a.action==="escalate"?{action:"block",reason:`[auto_review_denied] ${a.reason}`}:a}},t},"getGuardrail"),resetTurn:i(()=>t?.resetTurn(),"resetTurn")}}i(qc,"bootstrapAutoMode");import{exec as sW}from"child_process";import{promisify as aW}from"util";var cW=aW(sW),lW={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function WE(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(WE,"splitTopLevelCommaList");function uW(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:WE(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=lW[o[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=o[2]?WE(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(uW,"parseAllowedTools");function dW(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}i(dW,"wildcardToRegExp");function jE(e,t){return dW(e).test(t)}i(jE,"matchesPattern");function UE(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=>jE(a,o)))}i(UE,"isToolAllowed");function fW(e,t){return e.matcher?jE(e.matcher,t):!0}i(fW,"hookMatches");function pW(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(pW,"resolveModelOverride");function mW(e,t){if(!t)return e;let n=t.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`/(?:skill:)?${n}(?![\\w/-])`,"i"),`the active Skill "${t.name}"`).trim()||`Execute the active Skill "${t.name}".`}i(mW,"buildModelUserInput");async function hW(e,t,n,r,o,s,a){let c=typeof n.displayName=="string"?n.displayName:"frontmatter invocation",l={command:t.command,_reason:`Frontmatter hook ${e} for ${c}`,_frontmatterHook:!0,_hookEvent:e,_hookMatcher:t.matcher};if(!UE(s,"bash",l))return{allow:!1,message:`Hook ${e} for ${c} is blocked by allowed-tools policy.`};let u=await o.beforeToolExecute?.("bash",l);if(u!==!0)return{allow:!1,message:typeof u=="string"?u:`Hook ${e} for ${c} was blocked by the current permission policy.`};try{let{stdout:d,stderr:p}=await cW(t.command,{cwd:a,env:{...process.env,KODAX_HOOK_EVENT:e,KODAX_HOOK_PAYLOAD:JSON.stringify(n)},maxBuffer:1048576,windowsHide:!0}),m=[d.trim(),p.trim()].filter(Boolean).join(`
|
|
65
|
-
`);m&&o.onToolResult?.({id:`frontmatter-hook:${e}`,name:"bash",content:m}),p.trim()&&await r(`[Hook ${e} stderr] ${p.trim()}`);let h=d.trim();if(!h)return{};try{let g=JSON.parse(h);return{allow:typeof g.allow=="boolean"?g.allow:typeof g.continue=="boolean"?g.continue:void 0,message:typeof g.message=="string"?g.message:void 0,additionalContext:typeof g.additionalContext=="string"?g.additionalContext:typeof g.additional_context=="string"?g.additional_context:void 0}}catch{return e==="PreToolUse"?{allow:!1,message:`Hook ${e} for ${c} returned invalid JSON.`}:{message:h,additionalContext:h}}}catch(d){let p=d instanceof Error?d.message:String(d);return await r(`[Hook ${e} failed] ${p}`),e==="PreToolUse"?{allow:!1,message:`Hook ${e} for ${c} failed.`}:{}}}i(hW,"executeHookCommand");async function Jc(e,t,n,r,o,s,a,c){let l=e?.[t];if(!l||l.length===0)return{};let u={};for(let d of l){if(!fW(d,n))continue;let p=await hW(t,d,r,o,s,a,c);if(p.message&&await o(`[Hook ${t}] ${p.message}`),p.additionalContext&&(u.additionalContext=u.additionalContext?`${u.additionalContext}
|
|
66
|
-
${p.additionalContext}`:p.additionalContext),p.allow===!1){u.allow=!1;break}}return u}i(Jc,"runHooks");async function Ks(e,t,n,r){let o=e.events??{},s=uW(t.allowedTools),a=t.source==="skill"&&t.skillInvocation!==void 0,c=a?t.skillInvocation:void 0,l=e.context?.executionCwd??e.context?.gitRoot??process.cwd(),u=pW(e.provider,t.model),d=!1,p=i(async _=>{if(r(_),!(d||!t.hooks?.Notification?.length)){d=!0;try{await Jc(t.hooks,"Notification",_,{displayName:t.displayName,source:t.source,path:t.path,message:_},async N=>{r(N)},o,s,l)}finally{d=!1}}},"emitWithNotifications");t.model&&!u&&await p(`[Info] Model preference '${t.model}' is not supported by provider '${e.provider}', using the current model.`),s.invalidEntries.length>0&&await p(`[Warning] ${t.displayName} has invalid allowed-tools entries: ${s.invalidEntries.join(", ")}`),s.configured&&s.rules.length===0&&await p(`[Warning] ${t.displayName} has no valid allowed-tools entries, so all tool execution will be blocked.`);let m=await Jc(t.hooks,"SessionStart",t.displayName,{displayName:t.displayName,source:t.source,path:t.path},p,o,s,l);if(m.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped before execution.`,finalize:i(async()=>{},"finalize")};let h=await Jc(t.hooks,"UserPromptSubmit",n,{displayName:t.displayName,source:t.source,prompt:n,path:t.path},p,o,s,l);if(h.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped by a UserPromptSubmit hook.`,finalize:i(async()=>{},"finalize")};let g=[t.agent?`Preferred agent: ${t.agent}`:void 0,m.additionalContext,h.additionalContext].filter(_=>typeof _=="string"&&_.trim().length>0),x=mW(n,c),T=[e.context?.promptOverlay,...g,c?void 0:t.prompt].filter(_=>typeof _=="string"&&_.trim().length>0),S=[g.length>0?g.join(`
|
|
67
|
-
|
|
68
|
-
`):void 0,c?void 0:t.prompt,`User request: ${x}`].filter(_=>typeof _=="string"&&_.trim().length>0),I={...o,beforeToolExecute:i(async(_,N,B)=>UE(s,_,N)?(await Jc(t.hooks,"PreToolUse",_,{tool:_,input:N,displayName:t.displayName,source:t.source,path:t.path},p,o,s,l)).allow===!1?(await p(`[Blocked] PreToolUse hook blocked '${_}' for ${t.displayName}`),!1):o.beforeToolExecute?await o.beforeToolExecute(_,N,B):!0:(await p(`[Blocked] Tool '${_}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:i((_,N)=>{o.onToolResult?.(_,N),Jc(t.hooks,"PostToolUse",_.name,{..._,displayName:t.displayName,source:t.source,path:t.path},p,o,s,l)},"onToolResult")},v=!1,$=i(async _=>{v||(v=!0,await Jc(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:_?.message},p,o,s,l))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:S.join(`
|
|
69
|
-
|
|
70
|
-
`),options:{...e,modelOverride:u,context:{...e.context,...t.workflowIntent?{workflowIntent:t.workflowIntent}:{},rawUserInput:n,...T.length>0?{promptOverlay:T.join(`
|
|
71
|
-
|
|
72
|
-
`)}:{},skillInvocation:t.source==="skill"?t.skillInvocation&&{...t.skillInvocation,runtimePolicy:{enforceAtRuntime:!0}}:e.context?.skillInvocation},events:a?o:I},finalize:$}}i(Ks,"prepareInvocationExecution");var zs=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:qe(n.messages,n.lineage??r?.lineage)})}async load(t){return structuredClone(this.sessions.get(t)??null)}async getLineage(t){return structuredClone(this.sessions.get(t)?.lineage??null)}async loadFullLineage(t){return this.getLineage(t)}async setActiveEntry(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=Ka(o.lineage,n,r);if(!s)return null;let a={...structuredClone(o),messages:Bt(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=za(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=Po(o.lineage,n);if(!s)return null;let a=r?.sessionId??await Ja(),c={messages:Bt(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??Ya(r.lineage);if(!o)return null;let s=qa(r.lineage,o);if(!s)return null;let a={...r,messages:Bt(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?pi(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 GE(){return new zs}i(GE,"createMemorySessionStorage");async function hd(e,t={}){let n=e.trim();if(!n)return"[Shell: No command provided]";let r;if(!t.execute)r="[Blocked] "+JSON.stringify({code:"runtime_execution_unavailable",denialSource:"runtime_capability",retryable:!1,remediation:"Connect the current Session execution owner to manual Shell."});else try{let o=await t.execute(n),s=o.interrupted?"cancelled":o.success?"executed":"failed",a=o.success?t.maxOutputLength??8e3:t.maxErrorLength??4e3,c=o.lastText.length>a?`${o.lastText.slice(0,a)}
|
|
73
|
-
...[output truncated]`:o.lastText;r=`[Shell command ${s}: ${n}]
|
|
74
|
-
|
|
75
|
-
${c||"(no output)"}`}catch(o){r=`[Shell command failed: ${n}]
|
|
76
|
-
|
|
77
|
-
${o instanceof Error?o.message:String(o)}`}return t.onOutput?t.onOutput(r):process.stdout.write(`
|
|
78
|
-
${r}
|
|
79
|
-
`),r}i(hd,"executeShellCommand");async function vS(e,t={}){return e.startsWith("!")?hd(e.slice(1),t):e}i(vS,"processSpecialSyntax");function VE(e){return e.trim().startsWith("!")}i(VE,"isShellCommand");function KE(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}i(KE,"isShellCommandSuccess");function gd(e){return/^\[Shell command (?:executed|failed|cancelled):/.test(e)||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}i(gd,"isShellCommandHandled");var zE=150,XE=50;function qE(e){if(e.length===0)return[];let t=[];for(let s=0;s<e.length;s+=1)e[s]?.type==="user"&&t.push(s);let n=[...e];if(t.length>XE){let s=t[t.length-XE]??0;n=e.slice(s)}if(n.length<=zE)return[...n];let r=n.slice(-zE),o=r.findIndex(s=>s.type==="user");return o>0?r.slice(o):r}i(qE,"trimHistoryWindow");function po(e){return qE(e)}i(po,"trimPersistedUiHistorySnapshot");function Fi(e){if(e)return po(e)}i(Fi,"normalizePersistedUiHistory");function gW(e){let t=e.timestamp===void 0?{}:{timestamp:e.timestamp},n=e.presentationOnly===!0?{isSessionUiOnly:!0}:{};switch(e.type){case"assistant":return{type:"assistant",text:e.text,...t,...n,...e.compactText?{compactText:e.compactText}:{}};case"thinking":return{type:"thinking",text:e.text,...t,...n,...e.compactText?{compactText:e.compactText}:{}};case"event":return{type:"event",text:e.text,...t,...n,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"info":return{type:"info",text:e.text,...t,...n,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"user":return{type:"user",text:e.text,...t,...n};case"system":return{type:"system",text:e.text,...t,...n};case"error":return{type:"error",text:e.text,...t,...n};case"hint":return{type:"hint",text:e.text,...t,...n};case"sidecar":{let r=e.icon;if(r==="budget-exhausted")return{type:"sidecar",text:e.text,delivery:"budget-exhausted",...t,...n};let o=r==="blocked"?"blocked":"revise";return{type:"sidecar",text:e.text,verdict:o,...t,...n}}}}i(gW,"toCreatableTextHistoryItem");function yW(e){if(e.type!=="tool_group")return gW(e);let t=e.tools.map(kp);return t.length>0?{type:"tool_group",tools:t,...e.timestamp===void 0?{}:{timestamp:e.timestamp}}:void 0}i(yW,"persistedUiHistoryItemToCreatableHistoryItem");function bS(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(bS,"dedupeToolGroups");function wW(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(`
|
|
80
|
-
`)===t.tools.map(o=>o.id).join(`
|
|
81
|
-
`);if(e.type==="tool_group"||t.type==="tool_group")return!1;let n=e.text.trim(),r=t.text.trim();return n===r||YE(n,r)||YE(r,n)}i(wW,"matchesTimestampSource");function YE(e,t){if(!e.endsWith(t))return!1;let n=e.slice(0,-t.length);return/^\[[^\]\r\n]+\]\s+$/.test(n)}i(YE,"hasDisplayPrefix");function SW(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")&&wW(c,s)){n.set(o,a),r=a-1;break}}}return n}i(SW,"alignCanonicalTextItems");function xW(e,t){if(e.type==="tool_group"||t.type==="tool_group")return e;let n=t.timestamp??e.timestamp,r=n===void 0?{}:{timestamp:n};switch(e.type){case"assistant":case"thinking":return{...e,...r,...t.type===e.type&&t.compactText?{compactText:t.compactText}:{}};case"event":case"info":return{...e,...r,...t.type===e.type&&t.icon?{icon:t.icon}:{},...t.type===e.type&&t.compactText?{compactText:t.compactText}:{}};case"sidecar":return t.type==="sidecar"?{...e,...r,verdict:t.verdict,delivery:t.delivery}:e;default:return{...e,...r}}}i(xW,"overlayCanonicalTextItem");function TW(e,t,n,r){if(e.type!=="event"||e.icon!=="tool")return!1;let o=e.text.trimStart();if(!o.startsWith("\u2699")||n===void 0&&r===void 0)return!1;let s=o.slice(1).trimStart(),a=n===void 0?0:n+1,c=r??t.length;return t.slice(a,c).some(l=>l.type==="tool_group"&&l.tools.some(u=>s===u.name||s.startsWith(`${u.name}(`)||s.startsWith(`${u.name} `)))}i(TW,"isLegacyToolSummary");function CW(e){let t=new Map;for(let n of e)if(n.type==="tool_group")for(let r of n.tools)t.has(r.id)||t.set(r.id,{tool:r,timestamp:n.timestamp});return t}i(CW,"collectPersistedTools");function IW(e){let t=new Set;for(let n of e)if(n.type==="tool_group")for(let r of n.tools)t.add(r.id);return t}i(IW,"collectCanonicalToolIds");function vW(e,t,n){let r=new Map,o=new Set,s=SW(e,t);for(let[a,c]of s)a<n?o.add(c):r.set(a-n,c);return{anchors:r,outOfWindowPersistedIndices:o}}i(vW,"alignCanonicalWindow");function bW(e,t,n,r){return t.map((o,s)=>{if(o.type!=="tool_group"){let l=n.get(s),u=l===void 0?void 0:e[l];return u?xW(o,u):o}let a=o.tools.map(l=>r.get(l.id)?.tool??l),c=a.map(l=>r.get(l.id)?.timestamp).find(l=>l!==void 0)??o.timestamp;return{...o,tools:a,...c===void 0?{}:{timestamp:c}}})}i(bW,"buildCanonicalItems");function RW(e){let t=new Map;for(let[n,r]of e)t.set(r,n);return t}i(RW,"invertAnchors");function kW(e,t){let n=new Array(e),r;for(let o=e-1;o>=0;o-=1){let s=t.get(o);s===void 0?n[o]=r:r=s}return n}i(kW,"nextDerivedAnchors");function EW(e,t,n){if(e.type==="tool_group"){let o=e.tools.filter(s=>!t.has(s.id));return o.length>0?{...e,tools:o,isSessionUiOnly:!0}:void 0}return(e.type==="assistant"||e.type==="thinking"||e.type==="user"&&!e.text.trimStart().startsWith("/"))&&!n&&e.isSessionUiOnly!==!0?void 0:{...e,isSessionUiOnly:!0}}i(EW,"markUiOnlyItem");function MW(e,t,n,r,o,s){let a=RW(t),c=kW(e.length,a),l=Math.max(-1,...a.keys()),u=new Map,d;for(let p=0;p<e.length;p+=1){let m=a.get(p);if(m!==void 0){d=m;continue}let h=e[p];if(!h||n.has(p))continue;let g=c[p];if(TW(h,r,d,g))continue;let x=EW(h,o,s);if(!x)continue;let T=t.size===0||p>l?r.length:d===void 0?g??0:d+1,S=u.get(T)??[];S.push(x),u.set(T,S)}return u}i(MW,"collectUiOnlyInsertions");function _W(e,t){let n=[];for(let r=0;r<=e.length;r+=1){n.push(...t.get(r)??[]);let o=e[r];o&&n.push(o)}return n}i(_W,"mergeAtCanonicalBoundaries");function AW(e,t,n,r,o){let s=vW(e,n,r),a=bW(e,t,s.anchors,CW(e)),c=MW(e,s.anchors,s.outOfWindowPersistedIndices,a,IW(n),o);return _W(a,c)}i(AW,"enrichCanonicalUiHistory");function yd(e){let t=Fi(e.uiHistory),n=!!t?.length,r=Ep(e.messages).filter(l=>!n||l.type!=="task_completed").map(Ti),o=qE(r);if(!t||t.length===0)return bS(o);let s=bS(t.map(yW).filter(l=>!!l)),a=o[0],c=a===void 0?r.length:r.indexOf(a);return bS(AW(s,o,r,c,e.messages.length===0))}i(yd,"restoreHistoryItemsFromSession");var LW=new Set(["user","assistant","system"]),PW=new Set(["user","assistant","system","thinking","error","event","info","hint","sidecar"]),OW=new Set(["success","error","cancelled","awaiting_approval"]);function nt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(nt,"isRecord");function Ko(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(Ko);if(!nt(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(Ko)}i(Ko,"isKodaXJsonValue");function QE(e){return nt(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||Ko(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}i(QE,"isKodaXExtensionSessionRecord");function ZE(e){return nt(e)?Object.values(e).every(t=>nt(t)?Object.values(t).every(Ko):!1):!1}i(ZE,"isKodaXExtensionSessionState");function $W(e){if(!nt(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"&&nt(e.input);case"tool_result":return typeof e.tool_use_id=="string"&&(typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(NW))&&(e.is_error===void 0||typeof e.is_error=="boolean")&&(e.metadata===void 0||nt(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($W,"isKodaXContentBlock");function NW(e){return nt(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(NW,"isKodaXToolResultContentItem");function RS(e){return!nt(e)||typeof e.role!="string"||!LW.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every($W)}i(RS,"isKodaXMessage");function eM(e){return nt(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(eM,"isSessionErrorMetadata");function DW(e){return nt(e)&&Object.values(e).every(Ko)}i(DW,"isKodaXSessionUiToolInput");function BW(e){return nt(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.status=="string"&&OW.has(e.status)&&(e.input===void 0||DW(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(BW,"isKodaXSessionUiToolCall");function JE(e){return e===void 0||typeof e=="number"&&Number.isFinite(e)&&e>=0}i(JE,"isOptionalHistoryTimestamp");function gh(e){return!nt(e)||typeof e.type!="string"?!1:e.type==="tool_group"?JE(e.timestamp)&&Array.isArray(e.tools)&&e.tools.length>0&&e.tools.every(BW):PW.has(e.type)&&typeof e.text=="string"&&JE(e.timestamp)&&(e.presentationOnly===void 0||e.presentationOnly===!0)&&(e.icon===void 0||typeof e.icon=="string")&&(e.compactText===void 0||typeof e.compactText=="string")}i(gh,"isKodaXSessionUiHistoryItem");var FW=1e3;function Xs(e,t){let n=Number.isInteger(e)&&e>=0?e:0;if(!Array.isArray(t))return n;let r=t.reduce((o,s)=>gh(s)&&s.type!=="tool_group"&&s.presentationOnly===!0?o+1:o,0);return n+r}i(Xs,"countResumableSessionItems");async function Qc(e,t){return(await e.list(t,{limit:FW})).find(r=>r.msgCount>0)}i(Qc,"findMostRecentResumableSession");function wd(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(wd,"createRetryHistoryItem");function tM(e,t,n,r){e(wd(t,n,r))}i(tM,"emitRetryHistoryItem");function Sd(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(Sd,"createRecoveryHistoryItem");function nM(e,t){e(Sd(t))}i(nM,"emitRecoveryHistoryItem");import{createHash as MS}from"node:crypto";var HW=16,WW=4*1024,rM=512,jW=8,oM="kodax-conversation-entry-chain-v1\0",UW="kodax-conversation-history-v2\0";function xh(){return`sha256:${MS("sha256").update(oM).digest("hex")}`}i(xh,"emptyConversationEntryChain");function Zc(e,t){let n=e;for(let r of t){let o=JSON.stringify(r);n=`sha256:${MS("sha256").update(oM).update(n).update(`${Buffer.byteLength(o,"utf8")}:`).update(o).digest("hex")}`}return n}i(Zc,"extendConversationEntryChain");function qs(e){return Zc(xh(),e)}i(qs,"createConversationEntryChain");function Js(e,t=qs(e.entries)){return`sha256:${MS("sha256").update(UW).update(t).update(JSON.stringify({sourceRevision:e.sourceRevision,status:e.status,issues:e.issues})).digest("hex")}`}i(Js,"createSessionConversationHistoryRevision");function iM(e){return e.type==="message"||e.type==="compaction"||e.type==="branch_summary"}i(iM,"isThreadEntry");function Cd(e){return e._source==="managed-run-context"||e._source==="managed-runtime-context"}i(Cd,"isManagedContextMessage");function Qs(e){return e.type!=="message"?!1:!Cd(e.message)}i(Qs,"isOrdinaryConversationMessageEntry");function yh(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(yh,"threadPath");function _S(e,t,n,r){let o=jI(e.entries,t.lookup,r),s=[];for(let a=0;a<e.entries.length;a+=1){a>0&&a%256===0&&r?.();let c=e.entries[a];if(!Qs(c))continue;let l=o.get(c.id);if(l===void 0){s.push(c);continue}let u={...c,message:l.message,logicalId:l.logicalId,sourceEntryId:l.sourceEntryId};n&&t.restoredEntries.set(c.id,u),s.push(u)}return s}i(_S,"ordinaryPathMessages");function wh(e){return Th(e).length>0}i(wh,"hasExplicitProvenance");function Th(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(Th,"explicitProvenanceKeys");function kS(e,t){let n=new Set([e.id,e.logicalId,e.sourceEntryId]);return Th(t).every(r=>n.has(r))}i(kS,"provenanceMatches");function GW(e,t,n){let r=-1;for(let s=0;s<t.length;s+=1)if(s>0&&s%256===0&&n?.(),wh(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(Hi(e[l].message));let c=[];for(let l=0;l<t.length;l+=1)l>0&&l%256===0&&n?.(),c.push(Hi(t[l].message));return AS(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||!kS(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],m=t[d];u=wh(m)?kS(p,m):Ys(p.message,m.message)}if(u)return!0}return!1}i(GW,"retainedSuffixMatches");function VW(e,t,n,r,o,s){let a=[],c=new Map,l=new Map;for(let g=0;g<e.length;g+=1){g>0&&g%256===0&&s?.();let x=e[g];iM(x)&&(l.set(x.id,a.length),a.push(x),c.set(x.id,x))}let u=new Set;for(let g=0;g<a.length;g+=1){g>0&&g%256===0&&s?.();let x=a[g].parentId;x!==null&&u.add(x)}let d=[];for(let g=0;g<a.length;g+=1){g>0&&g%256===0&&s?.();let x=a[g];u.has(x.id)||d.push({leaf:x,path:yh(x.id,c,s)})}let p=[];for(let g=0;g<d.length;g+=1)g>0&&g%256===0&&s?.(),d[g].path.complete||p.push(d[g]);if(p.length>0)return r.push({code:"lineage_path_incomplete",message:`A candidate predecessor path for compaction ${t.id} is incomplete.`,entryIds:[t.id,...p.map(g=>g.leaf.id)]}),[];let m=[];for(let g=0;g<d.length;g+=1){g>0&&g%256===0&&s?.();let x=d[g];sM(x.path,a.length,l,s)||m.push(x)}if(m.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,...m.map(g=>g.leaf.id)]}),[];if(t.firstKeptEntryId===void 0)return d;if(n.firstPhysicalMessageEntryId!==t.firstKeptEntryId)return r.push({code:"compaction_boundary_invalid",message:`Compaction ${t.id} does not identify its first retained message.`,entryIds:[t.id,t.firstKeptEntryId]}),[];let h=[];for(let g=0;g<d.length;g+=1){g>0&&g%256===0&&s?.();let x=d[g],T=_S(x.path,o,!1,s);GW(T,n.messages,s)&&h.push(x)}return h.length===0&&d.length>0&&r.push({code:"compaction_boundary_invalid",message:`Compaction ${t.id} retained suffix conflicts with every predecessor branch.`,entryIds:[t.id,...n.messages.map(g=>g.id)]}),h}i(VW,"compactionPredecessorCandidates");function KW(e,t,n,r,o,s){let a=VW(e,t,n,r,o,s),c=[...new Map(a.map(l=>[l.leaf.id,l.leaf])).values()];if(c.length===1)return c[0];r.push({code:c.length===0?"compaction_predecessor_missing":"compaction_predecessor_ambiguous",message:c.length===0?`No topology-proven predecessor was retained for compaction ${t.id}.`:`Compaction ${t.id} has multiple possible predecessor branches.`,entryIds:[t.id,...c.map(l=>l.id)]})}i(KW,"resolveCompactionPredecessor");function zW(e,t,n){if(t.firstPhysicalMessageEntryId!==e.firstKeptEntryId)return[];let r=t.messages,o=-1;for(let c=0;c<r.length;c+=1)if(c>0&&c%256===0&&n?.(),!wh(r[c])){o=c;break}let s=o<0?r.length:o;if(s===0)return[];for(let c=s;c<r.length;c+=1)if(c>s&&c%256===0&&n?.(),wh(r[c]))return[];let a=[];for(let c=0;c<s;c+=1)c>0&&c%256===0&&n?.(),a.push(r[c]);return a}i(zW,"leadingExplicitRetainedCopies");function sM(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(sM,"isAppendOrderedPriorPath");function XW(e,t,n,r,o,s,a,c){let l=zW(e,t,c),u=l.at(-1),d=u===void 0?void 0:Th(u)[0];if(u===void 0||d===void 0)return[];let p=[],m=s.get(d)??[];for(let g=0;g<m.length;g+=1){c?.();let x=m[g];if((o.get(x.id)??Number.MAX_SAFE_INTEGER)>=n)continue;let T=yh(x.id,r,c),S=_S(T,a,!1,c);if(!T.complete||!sM(T,n,o,c))continue;let I=Math.max(0,S.length-l.length),v=[];for(let _=I;_<S.length;_+=1)_>I&&_%256===0&&c?.(),v.push(S[_]);let $=v.length===l.length;for(let _=0;$&&_<v.length;_+=1){_>0&&_%256===0&&c?.();let N=v[_],B=l[_];$=kS(N,B)&&Ys(N.message,B.message)}$&&p.push(x)}let h=new Map;for(let g=0;g<p.length;g+=1){g>0&&g%256===0&&c?.();let x=p[g];h.set(x.id,x)}return[...h.values()]}i(XW,"explicitCompactionPredecessorCandidates");function YW(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(Qs(o))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(YW,"indexMessagesByIdentity");function qW(e,t,n){let r=e;for(let o=0;o<jW;o+=1){let s=r.sourceEntryId;if(s===void 0||s===r.id)return e;if(t.has(s))return r===e?e:{...e,sourceEntryId:s};let a=n.byId(s);if(a?.type!=="message"||Cd(a.message)||Td(a)!==Td(e)||!Ys(a.message,e.message))return e;r=a}return e}i(qW,"withPredecessorSource");function JW(e,t,n,r){let o=[],s=new Map,a=new Map,c=[];for(let g=0;g<e.entries.length;g+=1){g>0&&g%256===0&&r?.();let x=e.entries[g];a.set(x.id,g),iM(x)&&(o.push(x),s.set(x.id,x),Qs(x)&&c.push(x.id))}if(e.activeEntryId===null&&c.length>0)return t.push({code:"active_entry_missing",message:"Conversation lineage contains messages but has no active entry.",entryIds:c}),{epochs:[]};let l=YW(o,r),u=new Map,d=0;for(let g=0;g<e.entries.length;g+=1){g>0&&g%256===0&&r?.();let x=e.entries[g];x.type==="compaction"&&x.parentId===null&&(u.set(x.id,d),d=g)}let p=[],m=new Set,h=e.activeEntryId===null?{entries:[],complete:!0}:yh(e.activeEntryId,s,r);for(;h.entries.length>0;){let g=h.entries[0];if(m.has(g.id)){h={entries:[],complete:!1};break}m.add(g.id);let x=h.entries.find(U=>U.type==="message")?.id,T=_S(h,n,!0,r),S=g.type==="compaction"&&g.reason!=="rewind",I=a.get(g.id)??0,v=u.get(g.id)??0,$=[];for(let U=v;S&&U<I;U+=1)U>v&&U%256===0&&r?.(),$.push(e.entries[U]);let _=new Set($.map(U=>U.id)),N=S?T.map(U=>qW(U,_,n.lookup)):T,B={root:g,messages:N,...x!==void 0?{firstPhysicalMessageEntryId:x}:{}};if(p.push(B),g.type!=="compaction"||g.reason==="rewind")break;let k=[],D=KW($,g,B,k,n,r);if(D===void 0){let U=XW(g,B,I,s,a,l,n,r);U.length===1?[D]=U:(t.push(...k),U.length>1&&t.push({code:"compaction_predecessor_ambiguous",message:`Compaction ${g.id} provenance identifies multiple predecessor copies.`,entryIds:[g.id,...U.map(j=>j.id)]}))}if(D===void 0){if(h.complete)return{epochs:p.reverse(),truncatedAt:g.id};break}h=yh(D.id,s,r)}return h.complete||t.push({code:"lineage_path_incomplete",message:"Conversation lineage contains a missing parent or parent cycle.",entryIds:h.entries.map(g=>g.id)}),{epochs:p.reverse()}}i(JW,"conversationEpochs");function Hi(e){return JSON.stringify([e.role,e.content,e._synthetic===!0,e._source,e._taskResult,e._taskResults])}i(Hi,"messageFingerprint");function AS(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(AS,"prefixSuffixOverlapLengths");function Ys(e,t){return e===t||Hi(e)===Hi(t)}i(Ys,"messagesEqual");function Td(e){return e.logicalId??e.id}i(Td,"logicalIdentity");function aM(e,t){return Sh(e,t).groups}i(aM,"explicitPriorGroups");function Sh(e,t){let n=Th(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(Sh,"explicitPriorGroupResolution");function xd(e,t,n){for(let r of[e.id,Td(e),e.sourceEntryId])r!==void 0&&!n.has(r)&&n.set(r,t)}i(xd,"registerEntryIdentities");function ES(e,t){return e.sourceEntryId!==void 0&&e.sourceEntryId!==e.id&&t?.has(e.sourceEntryId)!==!0?[e.sourceEntryId,e.id]:[e.id]}i(ES,"physicalAuditEntryIds");function QW(e,t,n){let r=new Set(e.auditEntryIds),o=[];for(let s of e.auditEntryIds){let a=t.get(s);for(;a?.sourceEntryId!==void 0;){let c=t.get(a.sourceEntryId);if(!c||r.has(c.id))break;let l=n.get(c.id);if(l!==void 0&&l!==e||!Ys(a.message,c.message)||a.logicalId!==void 0&&a.logicalId!==a.id&&Td(a)!==Td(c))break;r.add(c.id),o.push(c.id),a=c}}return[...o.reverse(),...e.auditEntryIds]}i(QW,"expandPhysicalProvenance");function ZW(e,t,n,r){let o=e.map(l=>QW(l,t,n)),s=new Map;for(let l of o)for(let u of l)s.set(u,(s.get(u)??0)+1);let a=new Set,c=o.map((l,u)=>{let d=new Set(e[u].auditEntryIds);return l.filter(p=>d.has(p)||s.get(p)===1?!0:(a.add(p),!1))});for(let l of a)r.push({code:"logical_identity_conflict",message:`Physical provenance ${l} is claimed by multiple conversation records.`,entryIds:[l]});return c}i(ZW,"resolvePhysicalProvenance");function ej(e,t,n,r,o,s){let a=new Map,{messages:c}=t,l=e.firstKeptEntryId;if(l===void 0||n.length===0||c.length===0)return a;if(t.firstPhysicalMessageEntryId!==l)return o.push({code:"compaction_boundary_invalid",message:`Compaction ${e.id} does not identify the first retained message.`,entryIds:[e.id,l]}),a;let u=AS(n.slice(-c.length).map(v=>Hi(v.source.message)),c.map(v=>Hi(v.message)),s),d=!1,p=c.flatMap((v,$)=>{let _=Sh(v,r);return _.keys.length===0?[]:[{index:$,resolution:_}]}),m=p[0],h=m===void 0?u:u.filter(v=>v<=m.index),g;if(m!==void 0){let{index:v,resolution:$}=m,_=$.groups.length===1?$.groups[0].index:-1,N=n.length+v-_;g=$.unresolvedKeys.length===0&&$.groups.length===1&&_>=0&&u.includes(N)&&N>v?N:void 0,g===void 0&&u.some(B=>B>v)&&(d=!0)}for(let v of p.slice(1)){if(g===void 0||g<=v.index)continue;let{resolution:$}=v,_=$.groups.length===1?$.groups[0].index:-1;($.unresolvedKeys.length>0||$.groups.length!==1||_<0||n.length+v.index-_!==g)&&(d=!0,g=void 0)}let T=[...h,...g===void 0?[]:[g]].map(v=>n.length-v),S=aM(c[0],r);if(T.length===0&&S.length===1&&!Ys(S[0].source.message,c[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,...c.map(v=>v.id)]}),T.length!==1)return o.push({code:"compaction_boundary_invalid",message:`Compaction ${e.id} has no unique retained suffix.`,entryIds:[e.id,...c.map(v=>v.id)]}),a;let I=T[0];for(let v=I;v<n.length;v+=1)a.set(c[v-I].id,n[v]);return a}i(ej,"provenLegacyOverlap");function tj(e,t,n,r){let[o=0]=AS(t.slice(-e.length).map(s=>Hi(s.source.message)),e.map(s=>Hi(s.message)),r);return e.slice(0,o).filter(s=>aM(s,n).length===0)}i(tj,"longestUnprovenOverlap");function nj(e,t,n,r,o){let s=t.get(e.id);if(s!==void 0){let d=Sh(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:ES(e,r)};n.push(p),xd(e,p,r);return}else{s.auditEntryIds.push(e.id),xd(e,s,r);return}}let a=Sh(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&&Ys(l.source.message,e.message)){l.auditEntryIds.push(e.id),xd(e,l,r);return}c.length>0&&(a.unresolvedKeys.length>0||c.length!==1||l===void 0||!Ys(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:ES(e,r)};n.push(u),xd(e,u,r)}i(nj,"appendConversationMessage");function rj(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(rj,"historyStatus");function cM(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<HW&&!r.entryIds.includes(o)&&r.evidenceBytes+Buffer.byteLength(o,"utf8")<=WW&&(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<=rM?r.message:`${r.message.slice(0,rM-1)}\u2026`,occurrenceCount:r.occurrenceCount,entryCount:r.entryCount,entryIds:r.entryIds}))}i(cM,"summarizeConversationIssues");function Zs(e,t,n){return lM(e,t,n).history}i(Zs,"buildSessionConversationHistory");function lM(e,t,n){let r=[];n?.();let o={lookup:WI(e.entries,n),restoredEntries:new Map},{epochs:s,truncatedAt:a}=JW(e,r,o,n),c=a!==void 0&&s.some(S=>S.messages.length>0),l=r.length;c&&r.push({code:"compaction_history_truncated",message:`Conversation history before compaction ${a} cannot be proven and is omitted.`,entryIds:[a]});let u=!c&&r.some(S=>S.code==="active_entry_missing"||S.code==="compaction_boundary_invalid"||S.code==="compaction_predecessor_ambiguous"||S.code==="compaction_predecessor_missing"||S.code==="lineage_path_incomplete"),d=e.entries.filter(Qs),p=new Set(d.map(S=>S.id));if(u){let S=new Map;for(let I of d){let v=I.sourceEntryId;v===void 0||p.has(v)||S.set(v,(S.get(v)??0)+1)}for(let[I,v]of S)v>1&&p.add(I)}let m=u?d.map((S,I)=>({index:I,source:S,auditEntryIds:ES(S,p)})):[],h=new Map;if(u)for(let S of m)xd(S.source,S,h);for(let S of s){if(u)break;let I=S.root,v=I.type==="compaction"&&I.reason!=="rewind"?ej(I,S,m,h,r,n):new Map;if(I.type==="compaction"&&I.firstKeptEntryId===void 0){let $=tj(S.messages,m,h,n);$.length>0&&r.push({code:"legacy_overlap_ambiguous",message:`Legacy compaction ${I.id} overlaps earlier history without durable provenance.`,entryIds:$.map(_=>_.id)})}for(let $=0;$<S.messages.length;$+=1){$%256===0&&n?.();let _=S.messages[$];nj(_,v,m,h,r)}}let g=new Map(d.map(S=>[S.id,S])),x=u?m.map(S=>S.auditEntryIds):ZW(m,g,h,r),T=m.map((S,I)=>({boundaryId:S.source.id,auditEntryIds:x[I],message:S.source.message}));return{history:{sourceRevision:t,status:rj(c?r.slice(l):r),entries:T,issues:cM(r)},restoredEntries:o.restoredEntries}}i(lM,"buildConversationHistoryWithRestorations");function uM(e,t,n,r){r?.();let o={...e,activeEntryId:t},s=Va(o,t,r);if(s.at(-1)?.id!==t)return null;let a=Po(o,t,r);if(a===null)return null;let c=Va(a,a.activeEntryId,r);if(c.length!==s.length)return null;let l=new Map(s.map((k,D)=>(D>0&&D%256===0&&r?.(),[k.id,c[D].id]))),u={...a,entries:a.entries.map((k,D)=>{D>0&&D%256===0&&r?.();let U=s[D];return k.type==="compaction"&&U?.type==="compaction"&&U.firstKeptEntryId!==void 0?{...k,firstKeptEntryId:l.get(U.firstKeptEntryId)}:k})},d=s[0];if(d?.type!=="compaction"||d.reason==="rewind")return u;let{history:p,restoredEntries:m}=lM(o,n,r);if(p.status!=="resolved"||d.firstKeptEntryId===void 0)return null;let h=[],g=new Set,x=-1,T=!1;for(let k=0;k<s.length;k+=1){k>0&&k%256===0&&r?.();let D=s[k];D.id===d.firstKeptEntryId&&(T=!0),Qs(D)&&(T&&x<0&&(x=h.length),h.push(D),g.add(D.id))}if(x<0)return null;let S=new Map;for(let k=0;k<p.entries.length;k+=1){k>0&&k%256===0&&r?.();let D=p.entries[k].auditEntryIds;for(let U=0;U<D.length;U+=1){U>0&&U%256===0&&r?.();let j=D[U];S.set(j,k)}}let I=-1;for(let k=x;k<h.length;k+=1){k>x&&k%256===0&&r?.();let D=h[k],U=S.get(D.id);if(U===void 0)return null;let j=!1,W=p.entries[U].auditEntryIds;for(let P=0;P<W.length;P+=1)if(P>0&&P%256===0&&r?.(),!g.has(W[P])){j=!0;break}if(!j)break;if(I>=0&&U!==I+1)return null;I=U}if(I<0)return null;let v=new Map;for(let k=0;k<e.entries.length;k+=1){k>0&&k%256===0&&r?.();let D=e.entries[k];v.set(D.id,D)}let $=null,_=[];for(let k=0;k<=I;k+=1){k>0&&k%256===0&&r?.();let D=p.entries[k],U;for(let b=0;b<D.auditEntryIds.length;b+=1){b>0&&b%256===0&&r?.();let fe=D.auditEntryIds[b];if(g.has(fe)){U=fe;break}}let j=U??D.boundaryId,W=j===void 0?void 0:m.get(j)??v.get(j);if(W?.type!=="message")return null;let P={...W,parentId:$};_.push(P),$=P.id}let N=_.at(-1);if(N===void 0)return null;let B=Po({version:2,activeEntryId:N.id,entries:_},void 0,r);return B===null?null:{version:2,activeEntryId:u.activeEntryId,entries:[...B.entries,...u.entries]}}i(uM,"forkSessionConversationLineage");function dM(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?.();let a=e[s];Cd(a)||o.push({auditEntryIds:[],message:a})}return{sourceRevision:t,status:"partial",entries:o,issues:cM([r])}}i(dM,"buildLineageUnavailableConversationHistory");import{createHash as NS,randomUUID as IM}from"node:crypto";import cr from"node:fs/promises";import qt from"node:path";import{createHash as PS}from"node:crypto";var fM={main:0,islands:1,legacy_archive:2},el=64*1024;function LS(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(LS,"isRecord");function pM(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(pM,"normalizeRelativePath");function oj(e,t){return PS("sha256").update("kodax-session-source-file-v1\0").update(`${e}:${Buffer.byteLength(t,"utf8")}:${t}`).digest("hex")}i(oj,"initialFileChain");function ij(e,t){return PS("sha256").update("kodax-session-source-chunk-v1\0").update(e,"hex").update(t).digest("hex")}i(ij,"extendChunkChain");function mM(e,t){let n=e,r=0,o=0;for(;t.length-o>=el;)n=ij(n,t.subarray(o,o+el)),r+=1,o+=el;return{chain:n,count:r,tail:t.subarray(o)}}i(mM,"consumeCompleteChunks");function hM(e,t){return fM[e.kind]-fM[t.kind]||e.relativePath.localeCompare(t.relativePath)}i(hM,"compareFileStates");function gM(e){let t=e.map(n=>{let r=pM(n.relativePath),o=mM(oj(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(hM);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(gM,"createSessionSourceRevisionState");function Wi(e){let t=PS("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(Wi,"createSessionSourceRevision");function yM(e,t,n){if(n.length===0)return e;if(n[0]!==10)return;let r=pM(t),o=e.files.findIndex(l=>l.kind==="main"&&l.relativePath===r);if(o<0)return;let s=e.files[o],a=mM(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(yM,"extendSessionMainSourceRevisionState");function wM(e){if(!LS(e)||e.version!==1||!Array.isArray(e.files)||!e.files.some(r=>LS(r)&&r.kind==="main"))return!1;let t,n=new Set;for(let r of e.files){if(!LS(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>=el||s.toString("base64")!==r.tail||Number(r.chunkCount)!==Math.floor(Number(r.byteLength)/el)||s.length!==Number(r.byteLength)%el)return!1;let a=r;if(t!==void 0&&hM(t,a)>=0)return!1;n.add(o),t=a}return!0}i(wM,"isSessionSourceRevisionState");import Ch from"node:fs/promises";import Id from"node:path";var zo=".conversation-cache.",SM=`${zo}json`,ji=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 Ih(e){let t=e.lastIndexOf(zo);if(t<=0)return;let n=e.slice(t+zo.length);if(!(n!=="json"&&!(n.startsWith("json.")&&n.endsWith(".tmp"))&&!n.endsWith(".data")&&!n.endsWith(".index")))return e.slice(0,t)}i(Ih,"cacheArtifactSessionId");async function Vn(e){let t=Id.dirname(e),n=Id.basename(e,Id.extname(e)),r;try{r=await Ch.readdir(t)}catch(o){if(o.code==="ENOENT")return;throw o}await Promise.all(r.filter(o=>Ih(o)===n).map(o=>Ch.rm(Id.join(t,o),{force:!0})))}i(Vn,"removeConversationPageCache");async function vh(e){let t;try{t=await Ch.readdir(e,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;throw new ji(e,n)}try{await Promise.all(t.filter(n=>!n.isDirectory()&&Ih(n.name)!==void 0).map(n=>Ch.rm(Id.join(e,n.name),{force:!0})))}catch(n){throw new ji(e,n)}}i(vh,"removeConversationPageCachesInDirectory");var vM=9,mo=24,sj=1024*1024,aj=1024*1024,cj=1024*1024,lj=4*1024*1024,DS=128*1024,uj=7,vt=class extends Error{static{i(this,"ConversationPageCacheStaleError")}constructor(t){super(t),this.name="ConversationPageCacheStaleError"}},Xo=class extends Error{static{i(this,"ConversationPageCacheCapacityError")}constructor(){super("Conversation page capacity exceeded"),this.name="ConversationPageCacheCapacityError"}};function vd(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(vd,"isRecord");function OS(e){if(e?.aborted)throw new vt("Conversation page read cancelled")}i(OS,"throwIfAborted");function BS(e){return e.slice(0,-qt.extname(e).length)+SM}i(BS,"cacheManifestPath");function xM(e,t,n){return`${e.slice(0,-qt.extname(e).length)}${zo}${t}.${n}`}i(xM,"cacheGenerationPath");function TM(e,t,n){let r=qt.basename(e,qt.extname(e));return qt.basename(t)===t&&t.startsWith(`${r}${zo}`)&&t.endsWith(`.${n}`)}i(TM,"isSafeCacheFileName");function dj(e){if(!vd(e))return!1;let t=new Set(["active_entry_missing","compaction_boundary_invalid","compaction_history_truncated","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(dj,"isConversationIssue");function fj(e){return vd(e)&&(e.surface===void 0||typeof e.surface=="string")&&(e.profileId===void 0||typeof e.profileId=="string")}i(fj,"isConversationPageCacheAdmission");function bM(e){let t=NS("sha256").update("kodax-conversation-identity-filter-v1\0").update(e,"utf8").digest();return Array.from({length:uj},(n,r)=>t.readUInt32LE(r*4)%(DS*8))}i(bM,"identityPositions");function RM(e,t){return bM(t).every(n=>(e[n>>>3]&1<<(n&7))!==0)}i(RM,"identityFilterContains");function kM(e,t){for(let n of bM(t))e[n>>>3]=e[n>>>3]|1<<(n&7)}i(kM,"addIdentityToFilter");function EM(e){return[e.id,e.logicalId,e.sourceEntryId].filter(t=>t!==void 0)}i(EM,"lineageEntryIdentities");function bh(e){let t=Buffer.alloc(DS);for(let n of e.entries)for(let r of EM(n))kM(t,r);return t.toString("base64")}i(bh,"createConversationPageIdentityFilter");function FS(e,t){let n=Buffer.from(e,"base64");for(let r of t)for(let o of EM(r))kM(n,o);return n.toString("base64")}i(FS,"extendConversationPageIdentityFilter");function MM(e){if(typeof e!="string")return!1;let t=Buffer.from(e,"base64");return t.length===DS&&t.toString("base64")===e}i(MM,"isIdentityFilter");function _M(e,t){return MM(e)?RM(Buffer.from(e,"base64"),t):!0}i(_M,"conversationPageIdentityFilterContains");function pj(e,t){if(!(!vd(e)||e.version!==vM)&&!(typeof e.sessionId!="string"||typeof e.generation!="string"||typeof e.sourceRevision!="string"||!wM(e.sourceRevisionState)||Wi(e.sourceRevisionState)!==e.sourceRevision||!MM(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(dj)||!Number.isSafeInteger(e.entryCount)||Number(e.entryCount)<0||!Number.isSafeInteger(e.lineageEntryCount)||Number(e.lineageEntryCount)<0||e.activeEntryId!==null&&typeof e.activeEntryId!="string"||!fj(e.admission)||!Number.isSafeInteger(e.chunkBytes)||Number(e.chunkBytes)<=0||Number(e.chunkBytes)>lj||typeof e.dataFile!="string"||!Number.isSafeInteger(e.dataBytes)||Number(e.dataBytes)<0||typeof e.indexFile!="string"||!Number.isSafeInteger(e.indexBytes)||Number(e.indexBytes)<0||!TM(t,e.dataFile,"data")||!TM(t,e.indexFile,"index")||e.dataFile!==`${e.sessionId}${zo}${e.generation}.data`||e.indexFile!==`${e.sessionId}${zo}${e.generation}.index`||e.sessionId!==qt.basename(t,qt.extname(t))||Number(e.indexBytes)!==Number(e.entryCount)*mo))return e}i(pj,"parseManifest");function AM(e){return{...e?.surface!==void 0?{surface:e.surface}:{},...e?.profileId!==void 0?{profileId:e.profileId}:{}}}i(AM,"cacheAdmission");async function nl(e){let t;try{t=await cr.open(BS(e),"r");let n=(await t.stat()).size;if(n>aj)return;let r=JSON.parse((await tl(t,0,n)).toString("utf8"));return pj(r,e)}catch(n){if(n.code==="ENOENT"||n instanceof SyntaxError)return;throw n}finally{await t?.close()}}i(nl,"readConversationPageCacheManifest");function Rh(e,t){let n=qt.dirname(e);return{dataPath:qt.join(n,t.dataFile),indexPath:qt.join(n,t.indexFile)}}i(Rh,"cachePaths");async function ea(e,t){let n=Rh(e,t),[r,o]=await Promise.all([cr.stat(n.dataPath),cr.stat(n.indexPath)]);if(r.size!==t.dataBytes||o.size!==t.indexBytes)throw new vt("Conversation page cache changed")}i(ea,"assertCacheFilesStable");async function tl(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 vt("Conversation page cache ended unexpectedly");o+=s.bytesRead}return r}i(tl,"readFully");function LM(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 vt("Conversation page index offset is invalid");return{entryOffset:Number(n),entryLength:e.readUInt32LE(t+8),descriptorOffset:Number(r),descriptorLength:e.readUInt32LE(t+20)}}i(LM,"decodeIndexRecord");function PM(e,t,n){let r=e.entryOffset+e.entryLength,o=e.descriptorOffset+e.descriptorLength,s=Math.ceil(e.entryLength/n),a=Math.min(cj,e.entryLength+s*70+256);if(!Number.isSafeInteger(r)||!Number.isSafeInteger(o)||r>t||o>t||e.descriptorOffset<r||e.descriptorLength>a)throw new vt("Conversation page index is out of bounds")}i(PM,"assertIndexRecordBounds");function OM(e){let t=Buffer.allocUnsafe(mo);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(OM,"encodeIndexRecord");function mj(e){if(!vd(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 vt("Conversation page descriptor is invalid");return{chunkDigests:e.chunkDigests,...typeof e.boundaryId=="string"?{boundaryId:e.boundaryId}:{}}}i(mj,"parseDescriptor");async function $M(e,t){let n=await tl(e,t.descriptorOffset,t.descriptorLength);try{return mj(JSON.parse(n.toString("utf8")))}catch(r){throw r instanceof vt?r:new vt("Conversation page descriptor is corrupt")}}i($M,"readDescriptor");function NM(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(NS("sha256").update(e.subarray(r,Math.min(e.length,r+t))).digest("hex"));return n}i(NM,"entryChunkDigests");function hj(e,t,n){let r=NM(e,n);if(r.length!==t.chunkDigests.length||r.some((o,s)=>o!==t.chunkDigests[s]))throw new vt("Conversation page cache entry is corrupt")}i(hj,"assertEntryIntegrity");function DM(e){if(e instanceof vt||e instanceof Xo)return e;let t=new Set(["EACCES","EBADF","EBUSY","EIO","EISDIR","EMFILE","ENFILE","ENOENT","ENOTDIR","EPERM","ESTALE"]);return e instanceof SyntaxError||vd(e)&&typeof e.code=="string"&&t.has(e.code)?new vt("Conversation page cache changed or is unavailable"):e instanceof Error?e:new Error(String(e))}i(DM,"normalizeConversationPageCacheReadError");async function HS(e,t,n){let r=await cr.open(e,n);try{let o=await cr.open(t,n);return{data:r,index:o}}catch(o){throw await r.close(),o}}i(HS,"openCachePair");async function BM(e,t,n){try{return await gj(e,t,n)}catch(r){throw DM(r)}}i(BM,"readConversationPageCache");async function gj(e,t,n){OS(n.signal);let r=await nl(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 vt("Conversation history changed; request a fresh page");await ea(e,r);let o=Math.min(n.end??r.entryCount,r.entryCount),s=Math.max(0,o-n.limit),a=Rh(e,r),{data:c,index:l}=await HS(a.dataPath,a.indexPath,"r");try{let u=await tl(l,s*mo,(o-s)*mo),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 Xo;for(let h=o-s-1;h>=0;h-=1){OS(n.signal);let g=s+h,x=LM(u,h*mo);PM(x,r.dataBytes,r.chunkBytes);let T=await $M(c,x),S=x.entryLength<=n.maxInlineEntryBytes?await tl(c,x.entryOffset,x.entryLength):void 0;S!==void 0&&hj(S,T,r.chunkBytes);let I={index:g,...T.boundaryId!==void 0?{boundaryId:T.boundaryId}:{},byteLength:x.entryLength,oversized:x.entryLength>n.maxInlineEntryBytes,...S!==void 0?{entry:JSON.parse(S.toString("utf8"))}:{}},v=Buffer.byteLength(JSON.stringify(I),"utf8");if(p+v>n.maxPageBytes){if(d.length===0)throw new Xo;break}d.unshift(I),p+=v}let m=d[0]?.index??o;return await ea(e,r),{revision:r.revision,sourceRevision:r.sourceRevision,status:r.status,issues:structuredClone(r.issues),entries:d,hasMore:m>0,...m>0?{nextEnd:m}:{}}}finally{await Promise.all([c.close(),l.close()])}}i(gj,"readConversationPageCacheInternal");async function FM(e,t,n){try{return await yj(e,t,n)}catch(r){throw DM(r)}}i(FM,"readConversationPageCacheChunk");async function yj(e,t,n){OS(n.signal);let r=await nl(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 vt("Conversation history changed; request a fresh page");if(n.offset<0||n.offset%r.chunkBytes!==0)throw new vt("Conversation entry cursor is invalid");await ea(e,r);let o=Rh(e,r),{data:s,index:a}=await HS(o.dataPath,o.indexPath,"r");try{let c=await tl(a,n.entryIndex*mo,mo),l=LM(c,0);PM(l,r.dataBytes,r.chunkBytes);let u=await $M(s,l);if(n.offset>l.entryLength)throw new vt("Conversation entry cursor is invalid");let d=Math.min(l.entryLength,n.offset+r.chunkBytes),p=await tl(s,l.entryOffset+n.offset,d-n.offset);if(NS("sha256").update(p).digest("hex")!==u.chunkDigests[n.offset/r.chunkBytes])throw new vt("Conversation page cache entry is corrupt");return await ea(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(yj,"readConversationPageCacheChunkInternal");async function $S(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($S,"writeFully");function HM(e,t,n){return Buffer.from(JSON.stringify({...e.boundaryId!==void 0?{boundaryId:e.boundaryId}:{},chunkDigests:NM(t,n)}),"utf8")}i(HM,"createDescriptor");async function wj(e,t,n,r){let{data:o,index:s}=await HS(e,t,"wx"),a=0,c=0,l=[],u=[],d=0,p=i(async()=>{d!==0&&(await Promise.all([$S(o,Buffer.concat(l)),$S(s,Buffer.concat(u))]),l=[],u=[],d=0)},"flush");try{for(let m of n){let h=Buffer.from(JSON.stringify(m),"utf8"),g=HM(m,h,r);l.push(h,g),u.push(OM({entryOffset:a,entryLength:h.length,descriptorOffset:a+h.length,descriptorLength:g.length})),a+=h.length+g.length,c+=mo,d+=h.length+g.length+mo,d>=sj&&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(wj,"writeCacheEntries");async function WS(e,t){let n=BS(e),r=`${n}.${process.pid}.${IM()}.tmp`;await cr.writeFile(r,JSON.stringify(t),{encoding:"utf8",flag:"wx"});try{await cr.rename(r,n)}finally{await cr.rm(r,{force:!0})}}i(WS,"replaceManifest");async function Sj(e,t){let n=qt.dirname(e),r=qt.basename(e,qt.extname(e)),s=`${`${r}${zo}`}${t}.`,a=await cr.readdir(n);await Promise.all(a.filter(c=>Ih(c)===r&&!c.startsWith(s)&&c!==qt.basename(BS(e))).map(c=>cr.rm(qt.join(n,c),{force:!0})))}i(Sj,"removeGenerationFiles");async function jS(e,t,n,r,o,s,a){if(Wi(n)!==r.sourceRevision)throw new vt("Conversation source revision state is inconsistent");let c=IM(),l=xM(e,c,"data"),u=xM(e,c,"index");try{let d=await wj(l,u,r.entries,a),p=qs(r.entries);await WS(e,{version:vM,sessionId:qt.basename(e,qt.extname(e)),generation:c,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:bh(o),boundaryRevision:t,revision:Js(r,p),entryChain:p,status:r.status,issues:r.issues,entryCount:r.entries.length,lineageEntryCount:o.entries.length,activeEntryId:o.activeEntryId,admission:AM(s),chunkBytes:a,dataFile:qt.basename(l),dataBytes:d.dataBytes,indexFile:qt.basename(u),indexBytes:d.indexBytes})}catch(d){throw await Promise.all([cr.rm(l,{force:!0}),cr.rm(u,{force:!0})]),d}try{await Sj(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(jS,"writeConversationPageCache");async function WM(e,t,n,r,o,s){if(Wi(n)!==r.sourceRevision)return!1;let a=await nl(e);if(a===void 0||a.entryCount!==r.entries.length)return!1;await ea(e,a);let c=qs(r.entries);if(c!==a.entryChain||r.status!==a.status||JSON.stringify(r.issues)!==JSON.stringify(a.issues))return!1;let l=Js(r,c);return await WS(e,{...a,sourceRevision:r.sourceRevision,sourceRevisionState:n,identityFilter:bh(o),boundaryRevision:t,revision:l,entryChain:c,status:r.status,issues:r.issues,lineageEntryCount:o.entries.length,activeEntryId:o.activeEntryId,admission:AM(s)}),await ea(e,a),!0}i(WM,"refreshConversationPageCache");async function CM(e,t){if(t.length===0)return;let n=await cr.open(e,"a");try{await $S(n,Buffer.concat(t)),await n.sync()}finally{await n.close()}}i(CM,"appendBuffers");async function jM(e,t,n,r,o,s,a){let c=Wi(r),l=Rh(e,t);await ea(e,t);let u=[],d=[],p=t.dataBytes;for(let g of o){let x=Buffer.from(JSON.stringify(g),"utf8"),T=HM(g,x,t.chunkBytes);u.push(x,T),d.push(OM({entryOffset:p,entryLength:x.length,descriptorOffset:p+x.length,descriptorLength:T.length})),p+=x.length+T.length}await CM(l.dataPath,u),await CM(l.indexPath,d);let m=Zc(t.entryChain,o),h={sourceRevision:c,status:t.status,issues:t.issues,entries:[]};await WS(e,{...t,sourceRevision:c,sourceRevisionState:r,identityFilter:FS(t.identityFilter,s),boundaryRevision:n,revision:Js(h,m),entryChain:m,entryCount:t.entryCount+o.length,lineageEntryCount:t.lineageEntryCount+s.length,activeEntryId:a,dataBytes:p,indexBytes:t.indexBytes+o.length*mo})}i(jM,"appendConversationPageCache");function UM(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"&&Cd(l.message)){if(l.parentId!==a)return;a=l.id;continue}if(!Qs(l)||l.parentId!==a||l.logicalId!==void 0&&l.logicalId!==l.id||l.sourceEntryId!==void 0||RM(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(UM,"canAppendConversationPageCache");import _e from"fs/promises";import lt from"fs";import G from"path";import{createHash as Ki,randomUUID as ll}from"node:crypto";import{performance as Wr}from"node:perf_hooks";import{isDeepStrictEqual as s2}from"node:util";import h_ from"chalk";import{randomUUID as xj}from"node:crypto";import bd from"node:fs/promises";import kh from"node:path";function GM(e){let t=kh.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}i(GM,"comparableRoot");async function US(e){let t;try{t=await bd.readFile(e,"utf8")}catch(r){if(r.code==="ENOENT")return;throw r}let n=JSON.parse(t);if(n===null||typeof n!="object"||typeof n.canonicalRoot!="string")throw new Error(`Invalid project identity manifest at ${e}`);return GM(n.canonicalRoot)}i(US,"existingCanonicalRoot");async function VM(e){return await US(kh.join(e,"project.json"))!==void 0}i(VM,"projectManifestExists");async function Eh(e,t){if(t.canonicalRoot===null)return;await bd.mkdir(e,{recursive:!0});let n=kh.join(e,"project.json"),r=GM(t.canonicalRoot),o=await US(n);if(o!==void 0){if(o!==r)throw new Error(`Conflicting project identity at ${n}`);return}let s=kh.join(e,`.project.${process.pid}.${xj()}.tmp`),a=await bd.open(s,"wx");try{await a.writeFile(JSON.stringify({canonicalRoot:t.canonicalRoot,displayName:t.displayName,lastUsed:new Date().toISOString()})+`
|
|
82
|
-
`,"utf8"),await a.sync()}finally{await a.close()}try{await bd.link(s,n)}catch(c){if(c.code!=="EEXIST")throw c;if(await US(n)!==r)throw new Error(`Conflicting project identity at ${n}`)}finally{await bd.rm(s,{force:!0})}}i(Eh,"publishProjectManifest");import Ot from"fs/promises";import KS from"fs";import rt from"path";var zM=3,Tj=300*1e3,Cj=65536,GS=i(e=>rt.join(e,".layout.json"),"layoutMarkerPath"),zS=i(e=>rt.join(e,".migration-lock"),"lockDirPath"),XM=i(e=>rt.join(zS(e),"owner.json"),"ownerPath"),VS=i(e=>rt.join(e,".migration-journal.jsonl"),"journalPath"),Mh=i(e=>rt.join(rt.dirname(e),"sessions-archive"),"sessionsArchiveDir");function _h(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}i(_h,"isSessionFile");function YM(e){return e.endsWith(".archive.jsonl")||e.endsWith(".islands.jsonl")?e.slice(0,-14):null}i(YM,"sidecarId");async function Ij(e){let t;try{t=await Ot.open(e,"r");let n=[],r=0,o=0;for(;;){let c=Buffer.allocUnsafe(Cj),{bytesRead:l}=await t.read(c,0,c.length,o);if(l===0)break;let u=c.subarray(0,l),d=u.indexOf(10),p=d>=0?u.subarray(0,d):u;if(n.push(p),r+=p.length,d>=0)break;o+=l}let s=Buffer.concat(n,r).toString("utf8").trim();if(!s)return null;let a=JSON.parse(s);if(a&&typeof a=="object"&&a._type==="meta"){let c=a;return{gitRoot:typeof c.gitRoot=="string"?c.gitRoot:void 0,runtimeInfo:c.runtimeInfo}}return null}catch{return null}finally{await t?.close()}}i(Ij,"readMeta");async function qM(e,t){let n=await Ij(e);if(!n)return xr({});let r=n.runtimeInfo!==null&&typeof n.runtimeInfo=="object"?n.runtimeInfo:void 0,o=n.runtimeInfo,s=typeof r?.workspaceRoot=="string"?r.workspaceRoot:n.gitRoot,a=s??(typeof r?.canonicalRepoRoot=="string"?r.canonicalRepoRoot:void 0);if(a&&KS.existsSync(a)){let c=rt.resolve(a),l=t.get(c);l===void 0&&(l=yb({cwd:a,timeoutMs:750}),t.set(c,l)),o={...r,canonicalRepoRoot:await l,...s!==void 0?{workspaceRoot:s}:{}}}return xr({gitRoot:n.gitRoot,runtimeInfo:o})}i(qM,"destIdentityFor");async function vj(e){let t=[],n=i(async(r,o)=>{let s=[];try{s=await Ot.readdir(r,{withFileTypes:!0})}catch{return}for(let a of s)!a.isFile()||a.name.startsWith(".")||(_h(a.name)||o&&YM(a.name)!==null)&&t.push(rt.join(r,a.name))},"pushDir");return await n(e,!0),await n(Mh(e),!0),t}i(vj,"collectMigrationSources");function bj(e,t){return rt.join(e,t)}i(bj,"targetDirectory");async function Rj(e){let t=await vj(e),n=t.filter(a=>_h(rt.basename(a))),r=new Set(n.map(a=>`${rt.dirname(a)}\0${rt.basename(a,".jsonl")}`)),o=[],s=new Map;for(let a of n){let c=rt.basename(a,".jsonl"),l=(await qM(a,s)).key,u=bj(e,l);o.push({from:a,to:rt.join(u,`${c}.jsonl`),reason:`session\u2192${l}`});for(let d of[".archive.jsonl",".islands.jsonl"]){let p=rt.join(rt.dirname(a),`${c}${d}`);KS.existsSync(p)&&o.push({from:p,to:rt.join(u,`${c}.islands.jsonl`),reason:"sidecar\u2192islands"})}}for(let a of t){let c=YM(rt.basename(a));c===null||r.has(`${rt.dirname(a)}\0${c}`)||o.push({from:a,to:rt.join(e,Hy,"orphan-islands",`${c}.islands.jsonl`),reason:"orphan-sidecar\u2192_unknown"})}return o}i(Rj,"planMigration");async function kj(e){try{let t=JSON.parse(await Ot.readFile(GS(e),"utf8"));return t!==null&&typeof t=="object"&&t.version===zM}catch{return!1}}i(kj,"isMigrated");async function KM(e){await vh(e),await vh(Mh(e))}i(KM,"removeLegacyConversationCaches");async function Ej(e){try{let t=JSON.parse(await Ot.readFile(XM(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>Tj}catch{return!0}}i(Ej,"lockIsStale");async function Mj(e){let t=zS(e);for(let n=0;n<2;n+=1)try{return await Ot.mkdir(t),await Ot.writeFile(XM(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 Ej(e)){await Ot.rm(t,{recursive:!0,force:!0}).catch(()=>{});continue}return!1}return!1}i(Mj,"acquireLock");async function _j(e){await Ot.rm(zS(e),{recursive:!0,force:!0}).catch(()=>{})}i(_j,"releaseLock");async function Aj(e){try{if((await Ot.readdir(rt.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(Aj,"assertNoActiveSessionWriters");async function Lj(e){let t=new Set;try{let n=await Ot.readFile(VS(e),"utf8");for(let r of n.split(`
|
|
83
|
-
`))if(r.trim())try{let o=JSON.parse(r);o.done&&typeof o.from=="string"&&t.add(o.from)}catch{}}catch{}return t}i(Lj,"readJournalDone");async function Pj(e,t){if(rt.resolve(e.from)===rt.resolve(e.to))return!1;if(await Ot.mkdir(rt.dirname(e.to),{recursive:!0}),KS.existsSync(e.to)){let n=rt.dirname(e.from);return n===t||n===Mh(t)?(await Ot.unlink(e.from).catch(()=>{}),!0):!1}try{await Ot.rename(e.from,e.to)}catch(n){let r=n.code;if(r==="EXDEV")await Ot.copyFile(e.from,e.to),await Ot.unlink(e.from).catch(()=>{});else if(r!=="ENOENT")throw n}return!0}i(Pj,"executeMove");async function Oj(e){let t=[],n=i(async r=>{try{for(let o of await Ot.readdir(r,{withFileTypes:!0}))o.isFile()&&_h(o.name)&&t.push(rt.join(r,o.name))}catch(o){if(o.code!=="ENOENT")throw o}},"append");return await n(e),await n(rt.join(e,"archived")),t}i(Oj,"readBucketMainFiles");async function $j(e,t){let n=new Map,r=new Set(t.flatMap(o=>o.reason.startsWith("session\u2192")?[rt.dirname(o.to)]:[]));for(let o of r){let s=rt.basename(o);if(s===Hy)continue;let a=await Oj(o),c;for(let l of a){let u=await qM(l,n);if(u.canonicalRoot===null||u.key!==s||c!==void 0&&c.canonicalRoot!==u.canonicalRoot)throw new Error(`Cannot certify mixed project identities in ${o}`);c??=u}c!==void 0&&await Eh(o,c)}}i($j,"publishBucketManifests");async function Nj(e){await Ot.mkdir(e,{recursive:!0});let t=`${GS(e)}.${process.pid}.tmp`,n=JSON.stringify({version:zM,migratedAt:new Date().toISOString(),from:"flat-v1"});await Ot.writeFile(t,n+`
|
|
84
|
-
`,"utf8"),await Ot.rename(t,GS(e))}i(Nj,"writeMarker");async function Dj(e){let t=Mh(e);try{(await Ot.readdir(t)).length===0&&await Ot.rmdir(t).catch(()=>{})}catch{}}i(Dj,"retireSessionsArchive");async function Bj(e){if(!await Mj(e))return{moved:0,planned:0};try{await Aj(e),await KM(e);let t=await Rj(e),n=await Lj(e),r=await Ot.open(VS(e),"a"),o=0;try{for(let s of t){if(_h(rt.basename(s.from)))try{await Vn(s.to)}catch(c){throw new ji(rt.dirname(s.to),c)}if(n.has(s.from))continue;let a=await Pj(s,e);await r.write(JSON.stringify({from:s.from,to:s.to,done:!0})+`
|
|
85
|
-
`),a&&(o+=1)}}finally{await r.close()}return await Dj(e),await KM(e),await $j(e,t),await Nj(e),await Ot.rm(VS(e),{force:!0}).catch(()=>{}),{moved:o,planned:t.length}}finally{await _j(e)}}i(Bj,"runMigration");async function ta(e){try{if(await kj(e))return;await Bj(e)}catch(t){if(t instanceof ji)throw t}}i(ta,"ensureLayoutMigrated");import{createHash as Fj}from"node:crypto";var QM="@kodax/sdk",qS="session.identity-repair.confirmed.v1",ZM="identity-repair:";function Ui(e){return Object.assign(new Error(e),{code:"conflict"})}i(Ui,"repairConflict");function lr(e){if(Array.isArray(e))return`[${e.map(lr).join(",")}]`;if(e!==null&&typeof e=="object"){let t=e;return`{${Object.keys(t).sort().filter(n=>t[n]!==void 0).map(n=>`${JSON.stringify(n)}:${lr(t[n])}`).join(",")}}`}return JSON.stringify(e)??"null"}i(lr,"stableJson");function Rd(e){return`sha256:${Fj("sha256").update(lr(e)).digest("hex")}`}i(Rd,"digest");function YS(e,t){return`${ZM}${Rd([e,t]).slice(7)}`}i(YS,"recordId");function Yo(e,t=256){return typeof e=="string"&&e.trim().length>0&&e.length<=t}i(Yo,"nonempty");function XS(e){return typeof e=="string"&&/^sha256:[a-f0-9]{64}$/.test(e)}i(XS,"hash");function JM(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(JM,"object");function na(e){return e.type===qS||typeof e.id=="string"&&e.id.startsWith(ZM)}i(na,"isConfirmedIdentityRepairRecord");function kd(e){let t=e.data;if(e.extensionId!==QM||e.type!==qS||!Number.isFinite(e.ts)||e.ts<0||!JM(t)||t.schemaVersion!==1||!Yo(t.sessionId)||!Yo(t.sourceEntryId)||!Yo(t.targetEntryId)||t.sourceEntryId===t.targetEntryId||!Yo(t.expectedSourceRevision,1024)||!Yo(t.confirmationReference,1024)||!XS(t.sourceDigest)||!XS(t.targetDigest)||e.id!==YS(t.sessionId,t.sourceEntryId)||e.dedupeKey!==void 0&&e.dedupeKey!==e.id)return;let n=t.deliveryWitness;if(!(n!==void 0&&(!JM(n)||!Yo(n.runId)||!Yo(n.inputId)||!Yo(n.eventId)||!Number.isSafeInteger(n.seq)||Number(n.seq)<0||!XS(n.eventDigest))))return t}i(kd,"parseConfirmedIdentityRepairRecord");function Ah(e,t){let n=e.entries.filter(o=>o.id===t),r=n[0];if(n.length!==1||r?.type!=="message"||r.message.role!=="user"||r.message._synthetic===!0||r.message._source!==void 0||Array.isArray(r.message.content)&&r.message.content.some(o=>o.type!=="text"&&o.type!=="image"))throw Ui("Identity repair requires one ordinary physical user query per endpoint.");return r}i(Ah,"queryEntry");function e_(e,t,n){let r=i((s,a)=>s.boundaryId===a||s.auditEntryIds.includes(a),"owns"),o=e.entries.flatMap((s,a)=>r(s,n)?[a]:[]);if(o.length!==1||e.entries.some((s,a)=>a!==o[0]&&r(s,t)))throw Ui("Identity repair target is not unique or source belongs to another visible query.");return o[0]}i(e_,"targetGroup");function t_(e,t,n,r){let o=r.filter(d=>d.id===YS(e,t.sourceEntryId)),s=o[0];if(s!==void 0){let d=kd(s);if(!d||d.sessionId!==e||d.targetEntryId!==t.targetEntryId||d.confirmationReference!==t.confirmationReference||lr(d.deliveryWitness)!==lr(t.deliveryWitness)||o.some(p=>lr(p)!==lr(s))||r_(s,n,e,Zs(n,t.expectedSourceRevision))===void 0)throw Ui("Confirmed identity repair conflicts with its existing immutable record.");return s}let a=Ah(n,t.sourceEntryId),c=Ah(n,t.targetEntryId);e_(Zs(n,t.expectedSourceRevision),t.sourceEntryId,t.targetEntryId);let l=YS(e,t.sourceEntryId),u={id:l,dedupeKey:l,extensionId:QM,type:qS,ts:Date.now(),data:{schemaVersion:1,sessionId:e,sourceEntryId:t.sourceEntryId,targetEntryId:t.targetEntryId,expectedSourceRevision:t.expectedSourceRevision,confirmationReference:t.confirmationReference,sourceDigest:Rd(a),targetDigest:Rd(c),...t.deliveryWitness===void 0?{}:{deliveryWitness:{...t.deliveryWitness}}}};if(!kd(u))throw Ui("Invalid confirmed identity repair input.");return u}i(t_,"buildConfirmedIdentityRepairRecord");function n_(e,t,n){if(!Yo(e))throw Ui("Identity repair merge requires a session identity.");let r=new Map;for(let s of(t??[]).filter(na)){let a=r.get(s.id);if(a&&lr(a)!==lr(s))throw Ui("Conflicting persisted identity repair records.");r.set(s.id,s)}if(n===void 0)return[...t??[]];let o=new Map;for(let s of n){let a=r.get(s.id)??o.get(s.id);if(a&&(na(a)||na(s))&&lr(a)!==lr(s))throw Ui("Confirmed identity repair records are immutable.");if(na(s)&&!a&&!kd(s))throw Ui("Invalid confirmed identity repair record.");o.set(s.id,s)}return[...n,...[...r.values()].filter(s=>!o.has(s.id))]}i(n_,"mergeConfirmedIdentityRepairRecords");function r_(e,t,n,r){let o=kd(e);if(!(!o||o.sessionId!==n))try{return Rd(Ah(t,o.sourceEntryId))!==o.sourceDigest||Rd(Ah(t,o.targetEntryId))!==o.targetDigest?void 0:{sourceId:o.sourceEntryId,targetIndex:e_(r,o.sourceEntryId,o.targetEntryId)}}catch{return}}i(r_,"validateAppliedRecord");function Lh(e,t,n,r){let o=r?.filter(d=>{if(!na(d))return!1;let p=kd(d);return p===void 0||p.sessionId===n})??[];if(o.length===0)return e;let s=new Map,a=new Set;for(let d of o){let p=s.get(d.id);p!==void 0&&p!==lr(d)&&a.add(d.id),s.set(d.id,lr(d))}let c=new Map,l=new Set,u=0;for(let d of o){let p=a.has(d.id)?void 0:r_(d,t,n,e);if(!p){u+=1,l.size<16&&l.add(typeof d.id=="string"?d.id.slice(0,256):"invalid-record");continue}let m=c.get(p.targetIndex)??new Set(e.entries[p.targetIndex].auditEntryIds);m.add(p.sourceId),c.set(p.targetIndex,m)}return{...e,entries:e.entries.map((d,p)=>c.has(p)?{...d,auditEntryIds:[...c.get(p)]}:d),...u===0?{}:{status:e.status==="ambiguous"?"ambiguous":"partial",issues:[...e.issues,{code:"identity_repair_invalid",occurrenceCount:u,entryCount:u,entryIds:[...l],message:"Confirmed identity repair records could not be verified; their aliases were not applied."}]}}}i(Lh,"applyConfirmedIdentityRepairs");import{createHash as ex,randomUUID as tx}from"node:crypto";import xt from"node:fs/promises";import Rr from"node:path";var ol=7,Hj=".resume-index",Wj="complete.json",jj="publish.lock",c_=".resume",o_=32,Uj=2e3,$h=10,QS=3e4,il=40,Ph=new Map,rl=new Map;async function JS(e,t){let n=[];for(let r=0;r<e.length;r+=o_){let o=e.slice(r,r+o_);n.push(...await Promise.all(o.map((s,a)=>t(s,r+a))))}return n}i(JS,"mapBatches");function ra(e){return Rr.join(e,Hj)}i(ra,"indexDir");function Nh(e){return Rr.join(ra(e),Wj)}i(Nh,"manifestPath");function Dh(e){return`${ex("sha256").update(e,"utf8").digest("hex")}${c_}`}i(Dh,"markerName");function l_(e,t){return Rr.join(ra(e),Dh(t))}i(l_,"markerPath");function i_(e){try{let t=JSON.parse(e);return!sl(t)||typeof t.pid!="number"||!Number.isInteger(t.pid)||t.pid<=0||typeof t.token!="string"||t.token.length===0?void 0:{pid:t.pid,token:t.token}}catch{return}}i(i_,"parseIndexPublishLockOwner");async function s_(e){for(let t=0;t<il;t+=1)try{return await xt.rmdir(e),!0}catch(n){let r=n.code;if(r==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(r??""))return!1;t+1<il&&await new Promise(o=>setTimeout(o,$h))}return!1}i(s_,"removeEmptyIndexLockDirectory");async function Gj(e){let t=`${e}.reclaim`;for(let n=0;n<2;n+=1)try{return await xt.mkdir(t),async()=>{await s_(t)||process.emitWarning(`Unable to release resume-index reclaim guard ${t}`,{code:"KODAX_RESUME_INDEX"})}}catch(r){if(r.code!=="EEXIST")throw r;if(n>0)return;try{let o=await xt.stat(t);if(Date.now()-o.mtimeMs<QS)return}catch(o){if(o.code==="ENOENT")continue;throw o}if(!await s_(t))return}}i(Gj,"acquireIndexLockReclaimGuard");function a_(e){try{return process.kill(e,0),!1}catch(t){return t.code==="ESRCH"}}i(a_,"processIsDefinitelyDead");async function Oh(e){try{let[t,n]=await Promise.all([xt.readFile(e,"utf8"),xt.stat(e)]);return{content:t,mtimeMs:n.mtimeMs}}catch(t){if(t.code==="ENOENT")return;throw t}}i(Oh,"readIndexPublishLock");async function ZS(e,t){for(let n=0;n<il;n+=1){let r=await Oh(e);if(r===void 0)return!0;if(r.content!==t)return!1;try{return await xt.rm(e),!0}catch(o){let s=o.code;if(s==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(s??""))return!1;n+1<il&&await new Promise(a=>setTimeout(a,$h))}}return!1}i(ZS,"removeObservedIndexPublishLock");async function Vj(e){let t=await Oh(e);if(t===void 0)return!0;if(rl.get(e)===t.content){let o=await ZS(e,t.content);return o&&rl.delete(e),o}let n=i_(t.content);if(n!==void 0){if(!a_(n.pid))return!1}else if(Date.now()-t.mtimeMs<QS)return!1;let r=await Gj(e);if(r===void 0)return!1;try{let o=await Oh(e);if(o===void 0)return!0;let s=i_(o.content);return rl.get(e)===o.content||(s!==void 0?a_(s.pid):Date.now()-o.mtimeMs>=QS)?ZS(e,o.content):!1}finally{await r()}}i(Vj,"reclaimAbandonedIndexPublishLock");async function Kj(e){let t;for(let r=0;r<il;r+=1)try{await xt.rm(e,{force:!0});return}catch(o){t=o;let s=o.code;if(!["EPERM","EACCES","EBUSY"].includes(s??""))break;r+1<il&&await new Promise(a=>setTimeout(a,$h))}let n=t instanceof Error?t.message:String(t);process.emitWarning(`Unable to remove resume-index lock temp file ${e}: ${n}`,{code:"KODAX_RESUME_INDEX"})}i(Kj,"removeIndexPublishLockTemp");async function zj(e,t){await xt.mkdir(Rr.dirname(e),{recursive:!0});let n=`${e}.${process.pid}.${tx()}.tmp`;await xt.writeFile(n,t,{encoding:"utf8",flag:"wx"});let r=Date.now()+Uj;try{for(;;)try{await xt.link(n,e);return}catch(o){let s=o.code;if(!["EEXIST","EPERM","EACCES","EBUSY"].includes(s??""))throw o;if(await Oh(e)!==void 0&&await Vj(e))continue;if(Date.now()>=r)throw new Error(`Resume index publish lock timed out: ${e}`,{cause:o});await new Promise(c=>setTimeout(c,$h))}}finally{await Kj(n)}}i(zj,"acquireIndexPublishLock");async function Xj(e,t){if(!await ZS(e,t))throw rl.set(e,t),new Error(`Resume index publish lock ownership changed: ${e}`);rl.get(e)===t&&rl.delete(e)}i(Xj,"releaseIndexPublishLock");async function Yj(e,t){let n=Rr.join(ra(e),jj),r=Ph.get(n)??Promise.resolve(),o,s=new Promise(c=>{o=c});Ph.set(n,s),await r.catch(()=>{});let a=JSON.stringify({pid:process.pid,token:tx()});try{await zj(n,a);try{return await t()}finally{await Xj(n,a)}}finally{o(),Ph.get(n)===s&&Ph.delete(n)}}i(Yj,"withIndexPublishLock");function Bh(e){let t=Rr.dirname(e);return Rr.basename(t)==="archived"?Rr.dirname(t):t}i(Bh,"resumeIndexProjectDir");function sl(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(sl,"isRecord");function qj(e){if(!(!sl(e)||typeof e.id!="string"||e.id.length===0||Rr.basename(e.id)!==e.id||typeof e.title!="string"||typeof e.msgCount!="number"||!Number.isInteger(e.msgCount)||e.msgCount<=0||e.createdAt!==void 0&&typeof e.createdAt!="string"||e.surface!==void 0&&typeof e.surface!="string"))return{id:e.id,title:e.title,msgCount:e.msgCount,...e.createdAt!==void 0?{createdAt:e.createdAt}:{},...e.surface!==void 0?{surface:e.surface}:{}}}i(qj,"parseEntry");function u_(e){if(!sl(e))return;let t=Array.isArray(e.markerNames)&&e.markerNames.every(o=>typeof o=="string")?[...e.markerNames].sort():void 0,n=Array.isArray(e.sessionNames)&&e.sessionNames.every(o=>typeof o=="string")?[...e.sessionNames].sort():void 0,r=Array.isArray(e.excludedSources)?e.excludedSources.flatMap(o=>!sl(o)||typeof o.name!="string"||typeof o.sourceSize!="number"||!Number.isInteger(o.sourceSize)||o.sourceSize<0||typeof o.sourceMtimeMs!="number"||!Number.isFinite(o.sourceMtimeMs)||typeof o.sourceCtimeMs!="number"||!Number.isFinite(o.sourceCtimeMs)||typeof o.sourceDev!="number"||!Number.isInteger(o.sourceDev)||typeof o.sourceIno!="number"||!Number.isInteger(o.sourceIno)?[]:[{name:o.name,sourceSize:o.sourceSize,sourceMtimeMs:o.sourceMtimeMs,sourceCtimeMs:o.sourceCtimeMs,sourceDev:o.sourceDev,sourceIno:o.sourceIno}]):void 0;if(!(e.version!==ol||t===void 0||typeof e.markerCount!="number"||!Number.isInteger(e.markerCount)||e.markerCount<0||typeof e.markerDigest!="string"||n===void 0||typeof e.sessionFileCount!="number"||!Number.isInteger(e.sessionFileCount)||e.sessionFileCount<0||typeof e.sessionFileDigest!="string"||r===void 0||typeof e.excludedSourceCount!="number"||!Number.isInteger(e.excludedSourceCount)||e.excludedSourceCount<0||typeof e.excludedSourceDigest!="string"||t.length!==e.markerCount||al(t)!==e.markerDigest||n.length!==e.sessionFileCount||al(n)!==e.sessionFileDigest||r.length!==e.excludedSourceCount||nx(r)!==e.excludedSourceDigest))return{version:ol,markerNames:t,markerCount:e.markerCount,markerDigest:e.markerDigest,sessionNames:n,sessionFileCount:e.sessionFileCount,sessionFileDigest:e.sessionFileDigest,excludedSources:r,excludedSourceCount:e.excludedSourceCount,excludedSourceDigest:e.excludedSourceDigest}}i(u_,"parseManifest");function Jj(e,t){if(!sl(e)||e.version!==ol||e.state!=="pending"&&e.state!=="ready")return;let n=qj(e.entry);if(!n||Dh(n.id)!==t)return;let r=sl(e.source)&&typeof e.source.size=="number"&&Number.isInteger(e.source.size)&&e.source.size>=0&&typeof e.source.mtimeMs=="number"&&Number.isFinite(e.source.mtimeMs)&&typeof e.source.ctimeMs=="number"&&Number.isFinite(e.source.ctimeMs)&&typeof e.source.dev=="number"&&Number.isInteger(e.source.dev)&&typeof e.source.ino=="number"&&Number.isInteger(e.source.ino)?{size:e.source.size,mtimeMs:e.source.mtimeMs,ctimeMs:e.source.ctimeMs,dev:e.source.dev,ino:e.source.ino}:void 0;if(!(e.state==="ready"&&r===void 0))return{version:ol,state:e.state,entry:n,...r!==void 0?{source:r}:{}}}i(Jj,"parseMarker");function al(e){let t=ex("sha256");for(let n of[...e].sort())t.update(n),t.update(`
|
|
86
|
-
`);return t.digest("hex")}i(al,"digestMarkerNames");function nx(e){let t=ex("sha256");for(let n of[...e].sort((r,o)=>r.name.localeCompare(o.name)))t.update(JSON.stringify([n.name,n.sourceSize,n.sourceMtimeMs,n.sourceCtimeMs,n.sourceDev,n.sourceIno])),t.update(`
|
|
87
|
-
`);return t.digest("hex")}i(nx,"digestScannedFiles");async function Qj(e){try{return(await xt.readdir(ra(e),{withFileTypes:!0})).filter(t=>t.isFile()&&t.name.endsWith(c_)).map(t=>t.name).sort()}catch(t){if(t.code==="ENOENT")return[];throw t}}i(Qj,"readMarkerNames");async function Zj(e){try{return(await xt.readdir(e,{withFileTypes:!0})).filter(t=>t.isFile()&&t.name.endsWith(".jsonl")&&!t.name.endsWith(".archive.jsonl")&&!t.name.endsWith(".islands.jsonl")&&!t.name.startsWith("archived-")&&!t.name.startsWith(".")).map(t=>t.name).sort()}catch(t){if(t.code==="ENOENT")return[];throw t}}i(Zj,"readCanonicalSessionNames");async function d_(e,t){let n;try{n=await xt.readFile(Rr.join(ra(e),t),"utf8")}catch(r){if(r.code!=="ENOENT")throw r;return}try{return Jj(JSON.parse(n),t)}catch{return}}i(d_,"readMarker");async function f_(e,t){let n=`${e}.${process.pid}.${tx()}.tmp`;await xt.writeFile(n,t,"utf8");try{await xt.rename(n,e)}catch(r){if(!["EEXIST","EPERM"].includes(r.code??""))throw r;await xt.rm(e,{force:!0}),await xt.rename(n,e)}finally{await xt.rm(n,{force:!0})}}i(f_,"replaceDerivedFile");async function e2(e){await xt.rm(Nh(e),{force:!0})}i(e2,"invalidateManifest");async function p_(e,t,n,r,o){let s=ra(e),a=l_(e,t.id);if(await xt.mkdir(s,{recursive:!0}),!r)try{return await xt.access(a),!1}catch(u){if(u.code!=="ENOENT")throw u}let c=r?await d_(e,Dh(t.id)):void 0,l={version:ol,state:n,entry:{...c?.entry,...t},...o!==void 0?{source:o}:{}};return await f_(a,JSON.stringify(l)),!0}i(p_,"writeMarker");async function rx(e,t){try{let n=await xt.stat(Rr.join(e,`${t}.jsonl`));return n.isFile()?{size:n.size,mtimeMs:n.mtimeMs,ctimeMs:n.ctimeMs,dev:n.dev,ino:n.ino}:void 0}catch(n){if(n.code==="ENOENT")return;throw n}}i(rx,"canonicalSource");async function t2(e,t){let n=Rr.basename(t,".jsonl");if(`${n}.jsonl`!==t)return;let r=await rx(e,n);return r===void 0?void 0:{name:t,sourceSize:r.size,sourceMtimeMs:r.mtimeMs,sourceCtimeMs:r.ctimeMs,sourceDev:r.dev,sourceIno:r.ino}}i(t2,"currentScannedFile");async function n2(e,t){if(t.state!=="ready"||t.source===void 0)return!1;let n=await rx(e,t.entry.id);return n!==void 0&&n.size===t.source.size&&n.mtimeMs===t.source.mtimeMs&&n.ctimeMs===t.source.ctimeMs&&n.dev===t.source.dev&&n.ino===t.source.ino}i(n2,"markerMatchesCanonical");async function r2(e,t,n,r){await xt.mkdir(ra(e),{recursive:!0});let o=[...t].sort(),s=[...n].sort(),a=[...r].sort((l,u)=>l.name.localeCompare(u.name)),c={version:ol,markerNames:o,markerCount:o.length,markerDigest:al(o),sessionNames:s,sessionFileCount:s.length,sessionFileDigest:al(s),excludedSources:a,excludedSourceCount:a.length,excludedSourceDigest:nx(a)};await f_(Nh(e),JSON.stringify(c))}i(r2,"writeManifest");async function m_(e){let t;try{t=await xt.readFile(Nh(e),"utf8")}catch(d){if(d.code!=="ENOENT")throw d;return}let n;try{n=u_(JSON.parse(t))}catch{return}if(!n)return;let r=await Qj(e),o=await Zj(e);if(r.length!==n.markerCount||al(r)!==n.markerDigest||o.length!==n.sessionFileCount||al(o)!==n.sessionFileDigest)return;let s=await JS(r,d=>d_(e,d));if(s.some(d=>d===void 0||d.state!=="ready")||(await JS(s,async d=>d===void 0?!1:n2(e,d))).some(d=>!d))return;let c=new Set(s.flatMap(d=>d?.state==="ready"?[`${d.entry.id}.jsonl`]:[])),l=o.filter(d=>!c.has(d));if(l.length!==n.excludedSourceCount)return;let u=await JS(l,d=>t2(e,d));if(!(u.some(d=>d===void 0)||nx(u.flatMap(d=>d===void 0?[]:[d]))!==n.excludedSourceDigest))return s.flatMap(d=>d?.state==="ready"?[d.entry]:[])}i(m_,"readResumeIndex");async function Fh(e,t){try{await p_(e,t,"pending",!1)}catch(n){try{await e2(e)}catch(r){throw new AggregateError([n,r],`Unable to prepare or invalidate the resume index for ${t.id}`)}throw n}}i(Fh,"prepareResumeIndexEntry");async function o2(e,t){try{return await xt.rm(l_(e,t)),!0}catch(n){if(n.code==="ENOENT")return!1;throw n}}i(o2,"removeResumeIndexEntry");async function Ed(e,t,n){await Yj(e,async()=>{let r=await rx(e,t.id);if(n){if(r===void 0)return;await p_(e,t,"ready",!0,r)}else await o2(e,t.id);await i2(e,t.id,n,r)})}i(Ed,"commitResumeIndexEntry");async function i2(e,t,n,r){let o;try{o=await xt.readFile(Nh(e),"utf8")}catch(p){if(p.code==="ENOENT")return;throw p}let s;try{s=u_(JSON.parse(o))}catch{return}if(!s)return;let a=Dh(t),c=`${t}.jsonl`;if(n&&s.markerNames.includes(a))return;let l=new Set(s.markerNames),u=new Set(s.sessionNames),d=s.excludedSources.filter(p=>p.name!==c);r===void 0?u.delete(c):u.add(c),n?l.add(a):(l.delete(a),r!==void 0&&d.push({name:c,sourceSize:r.size,sourceMtimeMs:r.mtimeMs,sourceCtimeMs:r.ctimeMs,sourceDev:r.dev,sourceIno:r.ino})),await r2(e,[...l],[...u],d)}i(i2,"refreshCompleteManifestAfterCommit");var a2=[10,25,50,100],Kh=6e4,c2=Kh+5e3,l2=15e3,cx=".location-topology",u2=".location-topology.lock",zh=".location-index",d2=64*1024,g_=256*1024,N_=256,ox=0,lx=class extends Error{static{i(this,"ActorSnapshotSaveCancelledError")}attemptId;code="actor_snapshot_save_cancelled";constructor(t){super(`Actor snapshot save ${t} was cancelled before canonical commit.`),this.attemptId=t,this.name="ActorSnapshotSaveCancelledError"}};function Hh(){let e,t;return{promise:new Promise((r,o)=>{e=r,t=o}),resolve:e,reject:t}}i(Hh,"deferredValue");function Kn(e){return Math.max(0,Wr.now()-e)}i(Kn,"elapsedMs");function f2(e){return JSON.parse(JSON.stringify(e))}i(f2,"jsonPersistedValue");var ux=class{static{i(this,"ActorSaveLifecycleState")}attempt;queueObserver;canonicalObserver;attemptId;startedAt=Wr.now();dequeued=Hh();eligible=Hh();canonical=Hh();completion=Hh();timings={};cancelled;phaseValue="queued";activeStage="storageQueue";activeStageStartedAt=this.startedAt;failedStage;fileLockStartedAt=this.startedAt;committedAt;canonicalOutcome="pending";completionOutcome="pending";constructor(t,n){this.attemptId=`${t}:${n}:${ll()}`,this.cancelled=new lx(this.attemptId),this.attempt=this.createAttempt(),this.queueObserver={onDequeued:i(()=>this.onDequeued(),"onDequeued"),beforeFileLock:i(()=>this.beforeFileLock(),"beforeFileLock"),onFileLockAcquired:i(()=>this.onFileLockAcquired(),"onFileLockAcquired"),onFileLockSettled:i(()=>this.onFileLockSettled(),"onFileLockSettled")},this.canonicalObserver={beforeCommit:i(()=>this.beforeCommit(),"beforeCommit"),afterCommit:i(()=>this.afterCommit(),"afterCommit"),beginTiming:i(r=>this.beginTiming(r),"beginTiming"),recordTiming:i((r,o)=>this.recordTiming(r,o),"recordTiming")},this.dequeued.promise.catch(()=>{}),this.eligible.promise.catch(()=>{}),this.canonical.promise.catch(()=>{}),this.completion.promise.catch(()=>{})}settleCompletion(t){t.then(()=>{this.completionOutcome="succeeded",this.recordCompletionTimings(),this.completion.resolve(void 0)},n=>{this.completionOutcome="failed",this.activeStage!==void 0&&this.timings[this.activeStage]===void 0&&this.recordTiming(this.activeStage,Kn(this.activeStageStartedAt)),this.phaseValue==="committed"?this.failedStage??=this.activeStage??"postCommit":this.rejectBeforeCommit(n),this.recordCompletionTimings(),this.completion.reject(n)})}createAttempt(){return{dequeued:this.dequeued.promise,eligible:this.eligible.promise,canonical:this.canonical.promise,completion:this.completion.promise,phase:i(()=>this.phaseValue,"phase"),cancelBeforeCommit:i(()=>this.cancelBeforeCommit(),"cancelBeforeCommit"),diagnostics:i(()=>this.diagnostics(),"diagnostics")}}markCommitNotObserved(t){this.phaseValue==="commit_inflight"&&(this.phaseValue="not_committed",this.canonicalOutcome="not_committed",this.rejectBeforeCommit(t))}markCommitObservedByReadback(){this.phaseValue==="commit_inflight"&&(this.failedStage??="rename",this.afterCommit("committed_by_readback"))}cancelBeforeCommit(){return this.phaseValue!=="queued"&&this.phaseValue!=="precommit"?!1:(this.failedStage??=this.activeStage,this.phaseValue="not_committed",this.canonicalOutcome="not_committed",this.rejectBeforeCommit(this.cancelled),!0)}onDequeued(){this.recordTiming("storageQueue",Kn(this.startedAt)),this.dequeued.resolve(void 0)}beforeFileLock(){if(this.phaseValue==="not_committed")throw this.cancelled;this.beginTiming("fileLock"),this.fileLockStartedAt=Wr.now()}onFileLockAcquired(){if(this.recordTiming("fileLock",Kn(this.fileLockStartedAt)),this.phaseValue==="not_committed")throw this.cancelled;this.phaseValue="precommit",this.eligible.resolve(void 0)}onFileLockSettled(){this.timings.fileLock===void 0&&this.recordTiming("fileLock",Kn(this.fileLockStartedAt))}beforeCommit(){if(this.phaseValue!=="precommit")throw this.cancelled;this.phaseValue="commit_inflight",this.canonicalOutcome="ambiguous"}afterCommit(t="committed"){this.phaseValue!=="committed"&&(this.phaseValue="committed",this.canonicalOutcome=t,this.beginTiming("postCommit"),this.committedAt=Wr.now(),this.canonical.resolve(void 0))}recordCompletionTimings(){this.committedAt!==void 0&&this.recordTiming("postCommit",Kn(this.committedAt)),this.recordTiming("total",Kn(this.startedAt)),this.activeStage=void 0}rejectBeforeCommit(t){this.failedStage??=this.activeStage,this.phaseValue!=="commit_inflight"&&(this.phaseValue="not_committed",this.canonicalOutcome="not_committed"),this.dequeued.reject(t),this.eligible.reject(t),this.canonical.reject(t)}beginTiming(t){this.activeStage=t,this.activeStageStartedAt=Wr.now()}recordTiming(t,n){this.timings[t]=n}diagnostics(){return{attemptId:this.attemptId,phase:this.phaseValue,...this.activeStage!==void 0?{activeStage:this.activeStage}:{},...this.activeStage!==void 0?{activeStageElapsedMs:Kn(this.activeStageStartedAt)}:{},...this.failedStage!==void 0?{failedStage:this.failedStage}:{},canonicalOutcome:this.canonicalOutcome,completionOutcome:this.completionOutcome,timingsMs:{...this.timings}}}};function p2(e,t){return new ux(e,t)}i(p2,"createActorSaveLifecycle");function D_(e){let t=e??l2;if(!Number.isSafeInteger(t)||t<=0)throw new Error("Session read timeoutMs must be a positive safe integer");return t}i(D_,"normalizeSessionReadTimeout");function ur(e){if(e?.aborted)throw new xe("read_cancelled","Session history read cancelled")}i(ur,"throwIfSessionReadAborted");function Jh(e,t){ur(e.signal);let n=D_(e.timeoutMs);if(!(Date.now()-t<n))throw new xe("read_timeout",`Session history read timed out after ${n}ms`)}i(Jh,"assertSessionReadBudget");async function cl(e,t){let n=D_(t.timeoutMs),r,o;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new xe("read_timeout",`Session history read timed out after ${n}ms`)),n),t.signal!==void 0&&(o=i(()=>a(new xe("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(cl,"raceSessionRead");async function Wh(e,t){for(let n=0;;n+=1)try{await _e.rename(e,t);return}catch(r){let o=a2[n];if(o===void 0||!m2(r))throw r;await new Promise(s=>setTimeout(s,o))}}i(Wh,"replaceSessionFile");function m2(e){if(!(e instanceof Error)||!("code"in e))return!1;let t=e.code;return t==="EPERM"||t==="EBUSY"||t==="EACCES"}i(m2,"isTransientRenameError");function h2(e){return!nt(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(h2,"isPersistedMetaUpdateLine");function B_(e){if(!Array.isArray(e))return;let t=e.filter(gh).map(n=>n.type==="tool_group"?{...n,tools:n.tools.map(r=>({...r}))}:{...n});return t.length>0?t:void 0}i(B_,"normalizeKodaXSessionUiHistory");var xe=class extends Error{static{i(this,"SessionReadError")}code;constructor(t,n){super(n),this.code=t,this.name="SessionReadError"}};function y_(e,t){let n=Va(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(y_,"completeLineageBoundaryPath");function ul(e,t){let n=Ki("sha256").update(t,"utf8").digest("hex");return G.join(e,".write-locks",`${n}.lock`)}i(ul,"sessionWriteLockPath");function ia(e){return G.join(e,u2)}i(ia,"sessionLocationTopologyLockPath");function F_(e,t){let n=Ki("sha256").update(t,"utf8").digest("hex");return G.join(e,zh,`${n}.json`)}i(F_,"sessionLocationHintPath");function H_(e,t){return`${ul(e,t)}.queue`}i(H_,"sessionWriteQueuePath");function hx(e){return G.join(e,".write-locks")}i(hx,"sessionGlobalWriteBoundaryPath");function w_(e){let t=hx(e);try{let n=Ki("sha256"),r=lt.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=sa(lt.statSync(G.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(`
|
|
88
|
-
`)}return n.digest("hex")}catch(n){return n.code==="ENOENT"?Ki("sha256").digest("hex"):void 0}}i(w_,"sessionWriterTopologyDigestSync");function Jo(e,t){let n=[ul(e,t),ia(e),G.join(e,".migration-lock"),G.join(e,".migration-journal.jsonl")].find(r=>lt.existsSync(r));if(n!==void 0)throw new xe("data_changed",`Session data changed during the read boundary: ${G.basename(n)}`)}i(Jo,"assertStableSessionReadBoundary");async function W_(e,t){let n=ul(e,t);lt.existsSync(n)&&await BI(n),Jo(e,t)}i(W_,"prepareStableSessionReadBoundary");function g2(e){let t=[G.join(e,".migration-lock"),G.join(e,".migration-journal.jsonl")].find(n=>lt.existsSync(n));if(t!==void 0)throw new xe("data_changed",`Session layout migration is active: ${G.basename(t)}`)}i(g2,"assertSessionMigrationInactive");function S_(e){try{return lt.statSync(e).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}i(S_,"inspectSessionCandidate");async function ix(e){try{return(await _e.stat(e)).isFile()?"present":"missing"}catch(t){let n=t.code;return n==="ENOENT"||n==="ENOTDIR"?"missing":"unverifiable"}}i(ix,"inspectSessionCandidateAsync");function Xh(e,t){return new xe("data_changed",`Session candidate could not be verified for ${e}: ${G.basename(t)}`)}i(Xh,"inaccessibleSessionCandidate");async function x_(e,t){let n=[],r=G.join(e,`${t}.jsonl`),o=S_(r);if(o==="present"&&n.push(r),o==="unverifiable")throw Xh(t,r);let s=[];try{s=await _e.readdir(e,{withFileTypes:!0})}catch(a){if(a.code!=="ENOENT")throw Xh(t,e)}for(let a of s){if(!a.isDirectory()||a.name.startsWith("."))continue;let c=G.join(e,a.name);for(let l of[G.join(c,`${t}.jsonl`),G.join(c,"archived",`${t}.jsonl`)]){let u=S_(l);if(u==="present"&&n.push(l),u==="unverifiable")throw Xh(t,l)}}return n.sort()}i(x_,"findStableSessionCandidates");async function y2(e,t){let n;try{n=await _e.open(t,"r")}catch(r){if(r.code==="ENOENT")return null;throw r}try{let r=await n.stat({bigint:!0}),o=await n.readFile(),s=await n.stat({bigint:!0}),a=sa(r),c=sa(s);if(!jr(a,c)||BigInt(o.length)!==c.size)throw new xe("data_changed",`Session file changed while reading: ${G.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 xe("data_changed",`Session file changed while reading: ${G.basename(t)}`):r}finally{await n.close()}}i(y2,"readStableBundleFile");function sa(e){return{dev:e.dev,ino:e.ino,size:e.size,mtimeNs:e.mtimeNs,ctimeNs:e.ctimeNs}}i(sa,"stableFileIdentity");function T_(e){return{dev:e.dev.toString(),ino:e.ino.toString(),size:e.size.toString(),mtimeNs:e.mtimeNs.toString(),ctimeNs:e.ctimeNs.toString()}}i(T_,"persistStableFileIdentity");function C_(e){if(!(!nt(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(C_,"parsePersistedStableFileIdentity");function jr(e,t){return e.dev===t.dev&&e.ino===t.ino&&e.size===t.size&&e.mtimeNs===t.mtimeNs&&e.ctimeNs===t.ctimeNs}i(jr,"sameStableFileIdentity");function dx(e,t){return e===null||t===null?e===t:jr(e,t)}i(dx,"sameOptionalStableFileIdentity");function Gi(e,t){return jr(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&dx(e.writerIdentity,t.writerIdentity)&&dx(e.activeWriterIdentity,t.activeWriterIdentity)}i(Gi,"sameSessionTopologyIdentity");function w2(e,t){return jr(e.root,t.root)&&e.epoch===t.epoch&&e.writerScope===t.writerScope&&dx(e.writerIdentity,t.writerIdentity)}i(w2,"sameSessionTopologyWithoutActiveWriter");function S2(e,t){return e===null||t===null?e===t:Gi(e,t)}i(S2,"sameOptionalSessionTopologyIdentity");function x2(e,t,n){if(G.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=G.resolve(e),l=G.resolve(e,...o);return l.startsWith(`${c}${G.sep}`)?l:void 0}i(x2,"resolvePersistedSessionLocationPath");async function T2(e,t){let n;try{n=await _e.open(F_(e,t),"r");let r=(await n.stat()).size;if(r>d2)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(!nt(a)||a.version!==1||a.id!==t||!Array.isArray(a.filePaths)||a.filePaths.length===0||a.filePaths.length>16||!nt(a.topology)||a.topology.epoch!==null&&typeof a.topology.epoch!="string")return;let c=C_(a.topology.root),l=a.topology.writerIdentity===null?null:C_(a.topology.writerIdentity);if(c===void 0||l===void 0)return;let u=a.filePaths.flatMap(d=>{if(typeof d!="string")return[];let p=x2(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(T2,"readSessionLocationHint");async function jh(e,t,n="session"){let r=await dr(e);if(r===null)return null;let o=await dr(n==="session"?H_(e,t):hx(e)),s=n==="session"?await dr(ul(e,t)):null;try{return{root:r,epoch:(await _e.readFile(G.join(e,cx),"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(jh,"statSessionTopologyIdentity");async function dr(e){try{return sa(await _e.stat(e,{bigint:!0}))}catch(t){if(t.code==="ENOENT")return null;throw t}}i(dr,"statStableFileIdentity");function j_(e,t){return gM(t.map(n=>({kind:n.kind,relativePath:G.relative(e,n.path).replace(/\\/g,"/"),bytes:n.bytes})))}i(j_,"createStableBundleSourceRevisionState");function gx(e,t){let n=Ki("sha256");n.update("kodax-session-bundle-boundary-v1\0");for(let r of t){if(r===null)continue;let o=G.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(gx,"createStableBundleBoundaryRevision");async function fx(e,t,n,r,o=!1,s){ur(r),o||Jo(e,t);let a=G.dirname(n),c=[{kind:"main",filePath:n},{kind:"islands",filePath:G.join(a,`${t}.islands.jsonl`)},{kind:"legacy_archive",filePath:G.join(a,`${t}.archive.jsonl`)}],l=[];for(let p of c)if(ur(r),p.kind==="main"&&s!==void 0){let m=await dr(p.filePath);if(m===null||m.size!==BigInt(s.length))throw new xe("data_changed","Session main file changed after append");l.push({identity:m,file:{kind:"main",path:p.filePath,bytes:s,modifiedAt:new Date(Number(m.mtimeNs/1000000n)).toISOString()}})}else l.push(await y2(p.kind,p.filePath));if(l[0]===null)throw new xe("data_changed","Session main file moved during the read boundary");o||Jo(e,t);for(let p=0;p<c.length;p+=1){ur(r);let m=await dr(c[p].filePath),h=l[p];if(h===null&&m!==null||h!==null&&(m===null||!jr(h.identity,m)))throw new xe("data_changed",`Session file changed during the read boundary: ${G.basename(c[p].filePath)}`)}o||Jo(e,t);let u=l.flatMap(p=>p===null?[]:[p.file]),d=j_(e,u);return{candidates:[n],files:u,sourceRevision:Wi(d),sourceRevisionState:d,boundaryRevision:gx(e,l)}}i(fx,"readStableSessionBundleAtPath");async function oa(e,t,n,r=!1){return(await _d(e,t,n,r)).revision}i(oa,"readStableSessionBundleBoundaryAtPath");async function _d(e,t,n,r=!1){r||Jo(e,t);let o=G.dirname(n),s=[{kind:"main",filePath:n},{kind:"islands",filePath:G.join(o,`${t}.islands.jsonl`)},{kind:"legacy_archive",filePath:G.join(o,`${t}.archive.jsonl`)}],a=[];for(let c of s){let l=await dr(c.filePath);a.push(l===null?null:{identity:l,file:{kind:c.kind,path:c.filePath,bytes:Buffer.alloc(0),modifiedAt:""}})}if(a[0]===null)throw new xe("data_changed","Session main file moved during the read boundary");r||Jo(e,t);for(let c=0;c<s.length;c+=1){let l=await dr(s[c].filePath),u=a[c];if(u===null&&l!==null||u!==null&&(l===null||!jr(u.identity,l)))throw new xe("data_changed",`Session file changed during the read boundary: ${G.basename(s[c].filePath)}`)}return r||Jo(e,t),{revision:gx(e,a),identities:a.map(c=>c?.identity??null)}}i(_d,"readStableSessionBundleBoundarySnapshotAtPath");function C2(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&&jr(a,c)})}i(C2,"isExpectedAppendBoundaryTransition");async function U_(e,t,n){let r=G.resolve(e);ur(n),await W_(r,t);let o=await x_(r,t);if(o.length!==1){let c=j_(r,[]);return{candidates:o,files:[],sourceRevision:Wi(c),sourceRevisionState:c,boundaryRevision:gx(r,[])}}let s=await fx(r,t,o[0],n);ur(n);let a=await x_(r,t);if(a.length!==o.length||a.some((c,l)=>c!==o[l]))throw new xe("data_changed","Session location changed during the read boundary");return s}i(U_,"readStableSessionBundleFiles");function $t(e,t,n){ut({source:"repl:session-storage",level:e,message:t,...n!==void 0?{detail:n}:{}})}i($t,"reportStorageDiagnostic");function I_(e,t){t!==0&&$t("warn",`Skipped ${t} malformed session record(s) from ${G.basename(e)}.`)}i(I_,"warnMalformedSessionData");function qo(e){$t("info",e)}i(qo,"writeStorageNotice");function sx(e){return{_type:"extension_record",...e}}i(sx,"toExtensionRecordLine");function v_(e){return{_type:"lineage_entry",entry:e}}i(v_,"toLineageEntryLine");function b_(e){return{_type:"artifact_ledger_entry",entry:e}}i(b_,"toArtifactLedgerLine");function I2(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(I2,"activeMessageContribution");function v2(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=I2(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(v2,"activeMessageCountAfterAppend");function R_(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(R_,"hasTailIdCollision");function px(e){return[e.kind,e.sourceTool??"",e.action??"",e.target].join("::")}i(px,"artifactLedgerDedupKey");function b2(e,t){if(t.size+e.length>N_)return!0;let n=new Set;for(let r of e){let o=px(r);if(t.has(o)||n.has(o))return!0;n.add(o)}return!1}i(b2,"hasArtifactTailConflict");function Uh(e){return Ki("sha256").update("kodax-conversation-identity-filter-authority-v1\0").update(e,"utf8").digest("hex")}i(Uh,"conversationIdentityFilterHash");function R2(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||_M(r,a.id)||s.has(a.id))return!1;s.add(a.id),o=a.id}return n===o}i(R2,"isLinearPreparedMessageTail");function k2(e){return nt(e)&&e._type==="extension_record"&&QE(e)}i(k2,"isPersistedExtensionRecordLine");function E2(e){return nt(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(E2,"hasEntryBase");function G_(e){if(!E2(e))return!1;let t=e;switch(t.type){case"message":return RS(t.message);case"compaction":return typeof t.summary=="string"&&(t.firstKeptEntryId===void 0||typeof t.firstKeptEntryId=="string")&&(t.tokensBefore===void 0||typeof t.tokensBefore=="number");case"branch_summary":return typeof t.summary=="string"&&(t.fromId===void 0||typeof t.fromId=="string")&&(t.details===void 0||Ko(t.details));case"label":return typeof t.targetId=="string"&&(t.label===void 0||typeof t.label=="string");case"archive_marker":return typeof t.archiveBatchId=="string"&&typeof t.archivedEntryCount=="number"&&typeof t.summary=="string";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||Ko(t.payload));case"goal":return typeof t.event=="string";case"memory_outcome_digest":return nt(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(G_,"isKodaXSessionEntry");function M2(e){return nt(e)&&e._type==="lineage_entry"&&G_(e.entry)}i(M2,"isPersistedLineageEntryLine");function _2(e){return nt(e)&&e._type==="archived_entry"&&typeof e.archiveBatchId=="string"&&G_(e.entry)}i(_2,"isPersistedArchivedEntryLine");function k_(e){return typeof e=="string"||e===null?e:void 0}i(k_,"archivedEntryAnchor");function Vi(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(Vi,"isCompactedPlaceholder");function A2(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||Vi(o))&&n.set(r.id,r)}return[...n.values()]}i(A2,"mergeConcurrentLineageEntries");function Ad(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(Ad,"addOrderingEdge");function L2(e,t,n){let r=new Set,o;for(let s of n)!t.has(s)||r.has(s)||(Ad(e,t,o,s),o=s,r.add(s))}i(L2,"addSequenceEdges");function E_(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(E_,"pushMin");function P2(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(P2,"popMin");function M_(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(M_,"orderingIndegrees");function __(e,t,n,r){for(;e.length>0;){let o=P2(e),s=t[o];if(!n.has(s)&&r(s))return o}}i(__,"popEligibleIndex");function O2(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(O2,"findParentCycleNode");function A_(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(A_,"releaseOrderingTargets");function $2(e,t,n,r){let o=new Map(e.map((m,h)=>[m,h])),s=M_(e,t),a=M_(e,n),c=[],l=[],u=new Set,d=[],p=i(m=>{s.get(m)===0&&E_(l,o.get(m)),s.get(m)===0&&a.get(m)===0&&E_(c,o.get(m))},"queueIfReady");for(let m of e)p(m);for(;d.length<e.length;){let m=__(c,e,u,g=>s.get(g)===0&&a.get(g)===0);if(m??=__(l,e,u,g=>s.get(g)===0),m===void 0){let g=O2(e,u,r);if(!g)break;s.set(g,0),p(g);continue}let h=e[m];u.add(h),d.push(h),A_(h,t,s,u,p),A_(h,n,a,u,p)}return d}i($2,"stablePriorityTopologicalOrder");function Md(e,t){let n=new Map,r=new Map,o=[];for(let p of e){let m=r.get(p.entry.id);m||o.push(p.entry.id),(!m||N2(p,m))&&r.set(p.entry.id,p)}for(let[p,m]of r)n.set(p,m.entry);for(let p of t){let m=n.get(p.id);m||o.push(p.id),(!m||!Vi(p))&&n.set(p.id,p)}let s=new Set(n.keys()),a=new Map;L2(a,s,t.map(p=>p.id));let c=new Set(t.filter(p=>!Vi(p)).map(p=>p.id)),l=new Map;for(let p of e){let m=`${p.streamId}:${p.archiveBatchId}`;if(!(r.get(p.entry.id)===p&&!c.has(p.entry.id))){l.delete(m);continue}Ad(a,s,l.get(m),p.entry.id),l.set(m,p.entry.id),Ad(a,s,p.previousEntryId,p.entry.id),Ad(a,s,p.entry.id,p.nextEntryId)}let u=new Map,d=new Map;for(let p of n.values())Ad(u,s,p.parentId,p.id),p.parentId&&s.has(p.parentId)&&p.parentId!==p.id&&d.set(p.id,p.parentId);return $2(o,u,a,d).map(p=>n.get(p))}i(Md,"mergeFullLineageEntries");function N2(e,t){let n=!Vi(e.entry),r=!Vi(t.entry);return n!==r?n:e.streamId!==t.streamId?e.streamId<t.streamId:!0}i(N2,"shouldPreferArchivedRecord");function D2(e,t){let n=e.lineage,r=t.lineage,o=n&&r?{...n,entries:A2(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(D2,"mergeConcurrentAppendData");function B2(e,t,n){let r=n.map(d=>d.entry),o=F2(e,t)?W2(t,e):e,s=new Set(Va(o).map(d=>d.id)),a=new Map(r.map(d=>[d.id,d])),c=new Map;for(let d of r)Vi(d)||c.set(d.id,d);for(let d of t?.entries??[])Vi(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=Vi(d)?c.get(d.id):void 0,m=p?.type==="message"&&d.type==="message"?{...d,message:p.message}:d;l.push(m),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(B2,"reconcileCompactionLineage");function F2(e,t){if(t===void 0)return!1;let n=new Set(e.entries.map(r=>r.id));return t.entries.some(r=>H2(r)&&!n.has(r.id))}i(F2,"persistedTopologySupersedesIncoming");function H2(e){return e.type==="compaction"||e.type==="rewind_marker"}i(H2,"isTopologyEntry");function W2(e,t){let n=[...e.entries],r=new Set(n.map(o=>o.id));for(let o of t.entries)!r.has(o.id)&&j2(o)&&(n.push(o),r.add(o.id));return{...e,entries:n}}i(W2,"mergeContextSilentLineageEntries");function j2(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(j2,"isContextSilentLineageEntry");function U2(e){return nt(e)&&typeof e.id=="string"&&typeof e.kind=="string"&&typeof e.target=="string"&&typeof e.timestamp=="string"&&(e.sourceTool===void 0||typeof e.sourceTool=="string")&&(e.action===void 0||typeof e.action=="string")&&(e.displayTarget===void 0||typeof e.displayTarget=="string")&&(e.summary===void 0||typeof e.summary=="string")&&(e.sessionEntryId===void 0||typeof e.sessionEntryId=="string")&&(e.metadata===void 0||Ko(e.metadata))}i(U2,"isKodaXSessionArtifactLedgerEntry");function G2(e){return nt(e)&&e._type==="artifact_ledger_entry"&&U2(e.entry)}i(G2,"isPersistedArtifactLedgerLine");function Yh(e){return nt(e)&&(e.canonicalRepoRoot===void 0||typeof e.canonicalRepoRoot=="string")&&(e.workspaceRoot===void 0||typeof e.workspaceRoot=="string")&&(e.executionCwd===void 0||typeof e.executionCwd=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.workspaceKind===void 0||e.workspaceKind==="detected"||e.workspaceKind==="managed")&&(e.sandboxWorktreeRoots===void 0||Array.isArray(e.sandboxWorktreeRoots)&&e.sandboxWorktreeRoots.every(t=>typeof t=="string"))}i(Yh,"isKodaXSessionRuntimeInfo");function V2(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(V2,"getLastNavigableEntryId");var K2="1970-01-01T00:00:00.000Z";function z2(e){let t=e.meta?.id??Ki("sha256").update(e.rawContent).digest("hex"),n=e.meta?.createdAt??K2,r=null,o=e.legacyMessages.map((s,a)=>{let l=`entry_${Ki("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(z2,"buildDeterministicLegacyLineage");function X2(e){return e.lineageEntries.length>0?{version:2,activeEntryId:e.meta?.activeEntryId??V2(e.lineageEntries),entries:e.lineageEntries}:e.legacyMessages.length===0?e.meta?.lineageVersion===2?{version:2,activeEntryId:e.meta.activeEntryId??null,entries:[]}:void 0:z2(e)}i(X2,"buildLineage");function L_(e){return typeof e=="string"?`t:${e}`:`j:${JSON.stringify(e)}`}i(L_,"serializeMessageContentForCompare");function Y2(e,t){return e===t?!0:e.role===t.role&&e._synthetic===!0==(t._synthetic===!0)&&L_(e.content)===L_(t.content)}i(Y2,"sameMessageByContent");function q2(e,t){if(e.lineage)return e.lineage;if(t){let n=Bt(t),r=e.messages;if(r.length<=n.length&&r.every((s,a)=>Y2(s,n[a])))return t}return qe(e.messages,t)}i(q2,"resolveSnapshotLineage");function P_(e,t){let n=X2(e),r=n?Bt(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:Yh(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:B_(e.meta?.uiHistory),...eM(e.meta?.errorMetadata)?{errorMetadata:{...e.meta.errorMetadata}}:{},extensionState:ZE(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 ax(e){let t=structuredClone(e);return t.lineage&&(t.messages=Bt(t.lineage)),t}i(ax,"cloneSessionDataForRead");function J2(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?pi(n):t.messages.length,lineageIdentityFilterHash:o}}i(J2,"createSessionMeta");function Gh(e,t,n,r,o){return{id:e,title:t,msgCount:n,...r!==void 0?{createdAt:r}:{},...o!==void 0?{surface:o}:{}}}i(Gh,"createResumeIndexEntry");async function Vh(e,t=!1,n){let r=n,o;if(r===void 0)try{let l=await dr(e);r=await _e.readFile(e,"utf-8");let u=await dr(e);if(o=l!==null&&u!==null&&jr(l,u)?u:void 0,t&&o===void 0)throw new xe("data_changed",`Session data changed while reading ${G.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(`
|
|
89
|
-
`);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&&nt(u)&&u._type==="meta"){if(t&&u.lineageVersion!==void 0&&u.lineageVersion!==2)throw new xe("version_incompatible",`Unsupported Session lineage version in ${G.basename(e)}: ${String(u.lineageVersion)}`);a.meta=u;continue}if(h2(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=B_(u.uiHistory)),u.scope!==void 0&&(a.meta.scope=u.scope),u.lineageIdentityFilterHash!==void 0&&(a.meta.lineageIdentityFilterHash=u.lineageIdentityFilterHash));continue}if(M2(u)){a.lineageEntries.push(u.entry);continue}if(G2(u)){a.artifactLedger.push(u.entry);continue}if(k2(u)){a.extensionRecords.push({id:u.id,extensionId:u.extensionId,type:u.type,ts:u.ts,data:u.data,dedupeKey:u.dedupeKey});continue}if(RS(u)){a.legacyMessages.push(u);continue}if(t)throw new xe("version_incompatible",`Unsupported Session record at ${G.basename(e)}:${l+1}`);a.malformedCount+=1}catch(u){if(u instanceof xe)throw u;if(t)throw new xe("data_corrupt",`Malformed Session record at ${G.basename(e)}:${l+1}`);a.malformedCount+=1}return a}i(Vh,"readPersistedSessionFile");var mx=65536;async function Q2(e){let t=await _e.open(e,"r");try{let n=[],r=0;for(;;){let a=Buffer.allocUnsafe(mx),{bytesRead:c}=await t.read(a,0,a.length,r);if(c===0)break;let l=a.subarray(0,c),u=l.indexOf(10);if(n.push(u<0?l:l.subarray(0,u)),u>=0)break;r+=c}if(n.length===0)throw new xe("data_corrupt","Session metadata is empty");let o;try{o=JSON.parse(Buffer.concat(n).toString("utf8").trim())}catch(a){throw new xe("data_corrupt",`Session metadata is invalid: ${a instanceof Error?a.message:String(a)}`)}if(!nt(o)||o._type!=="meta")return{};let s=Yh(o.runtimeInfo)?o.runtimeInfo:void 0;return{...s?.surface!==void 0?{surface:s.surface}:{},...s?.profileId!==void 0?{profileId:s.profileId}:{}}}finally{await t.close()}}i(Q2,"readConversationPageAdmission");async function qh(e){let t;try{t=await _e.open(e,"r");let n=Buffer.allocUnsafe(mx),{bytesRead:r}=await t.read(n,0,mx,0);if(r===0)return null;let o=n.toString("utf8",0,r),s=o.indexOf(`
|
|
90
|
-
`);if(s>=0)return o.slice(0,s).trim();let a=await _e.readFile(e,"utf-8"),c=a.indexOf(`
|
|
91
|
-
`);return(c>=0?a.slice(0,c):a).trim()}catch{return null}finally{await t?.close()}}i(qh,"readSessionFirstLine");async function O_(e){try{let t=(await _e.readFile(e,"utf-8")).trim();return t?t.split(`
|
|
92
|
-
`).length:0}catch{return 0}}i(O_,"countSessionLines");var $_=new Map;function Z2(e){let t=$_.get(e);return t===void 0&&(t=new Map,$_.set(e,t)),t}i(Z2,"processSessionLocationIndex");var kr=class{static{i(this,"FileSessionStorage")}actorSnapshotEligibilityTimeoutMs=c2;sessionsDir;configHome;sessionLocations;verifiedLocationMisses=new Map;hostCwd;emitMismatchWarnings;constructor(t){this.sessionsDir=G.resolve(t?.sessionsDir??eo),this.configHome=G.resolve(t?.configHome??Tp),this.sessionLocations=Z2(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>N_||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 nl(r.filePath);if(s===void 0)return null;let a=await _d(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||!jr(c.mainIdentity,l)||s.boundaryRevision!==a.revision||Uh(s.identityFilter)!==c.lineageIdentityFilterHash?null:(c.lineageIdentityFilter=s.identityFilter,c.bundleBoundaryRevision=a.revision,this.currentPreparedSessionAppend(t))}catch(s){if(s instanceof xe&&s.code==="data_changed")return null;throw s}}indexSessionLocations(t,n,r){let o=n&&r!==void 0,s=new Map;for(let a of t){let c=G.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(m=>lt.existsSync(m)).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{lt.mkdirSync(G.join(this.sessionsDir,zh),{recursive:!0})}catch(n){t=!1,$t("warn","Unable to prepare the durable Session location index.",n)}return{topologyBefore:t?this.readSessionTopologyIdentitySync("","global"):void 0,writerTopologyDigestBefore:t?w_(this.sessionsDir):void 0,topologyMutationBefore:!t||lt.existsSync(ia(this.sessionsDir))}}completeSessionLocationTraversal(t,n,r){let o=this.readSessionTopologyIdentitySync("","global"),s=w_(this.sessionsDir);if(!(r&&!t.topologyMutationBefore&&!lt.existsSync(ia(this.sessionsDir))&&t.topologyBefore!==void 0&&t.writerTopologyDigestBefore!==void 0&&o!==void 0&&s!==void 0&&Gi(t.topologyBefore,o)&&t.writerTopologyDigestBefore===s)){this.indexSessionLocations(n,!1);return}let c=new Map;for(let p of n){let m=G.basename(p,".jsonl"),h=c.get(m)??[];h.push(p),c.set(m,h)}let l=new Map;for(let p of c.keys()){let m=this.readSessionTopologyIdentitySync(p);if(m===void 0){this.indexSessionLocations(n,!1);return}l.set(p,m)}let u=this.readSessionTopologyIdentitySync("","global");if(!(u!==void 0&&o!==void 0&&!lt.existsSync(ia(this.sessionsDir))&&Gi(o,u))){this.indexSessionLocations(n,!1);return}for(let[p,m]of c)this.indexSessionLocations(m,!0,l.get(p))}writeQueues=new Map;serializedWrite(t,n,r){let o=this.writeQueues.get(t)??Promise.resolve(),s=i(async()=>{r?.onDequeued(),r?.beforeFileLock();try{await rp(this.sessionWriteLockPath(t),async()=>{r?.onFileLockAcquired(),g2(this.sessionsDir),await n()},Kh)}finally{r?.onFileLockSettled()}this.refreshSelfVerifiedLocationTopology(t),await this.persistSessionLocationHint(t)},"locked"),a=o.then(s,s);return this.writeQueues.set(t,a),a}refreshSelfVerifiedLocationTopology(t){let n=this.sessionLocations.get(t);if(n?.kind!=="located"||!n.globallyVerified||n.topologyIdentity?.writerScope!=="session"||n.topologyIdentity.activeWriterIdentity===null)return;let r=n.topologyIdentity,o=this.readSessionTopologyIdentitySync(t);o===void 0||o.activeWriterIdentity!==null||!w2(r,o)||this.sessionLocations.set(t,{kind:"located",filePath:n.filePath,globallyVerified:!0,topologyIdentity:o})}sessionWriteLockPath(t){return ul(this.sessionsDir,t)}async persistSessionLocationHint(t){let n=F_(this.sessionsDir,t);try{let r=this.sessionLocations.get(t);if(r===void 0){await _e.rm(n,{force:!0});return}if(r.kind!=="located"||!r.globallyVerified){await _e.rm(n,{force:!0});return}let o=[r.filePath];if((await Promise.all(o.map(ix))).some(p=>p!=="present"))return;await _e.mkdir(G.dirname(n),{recursive:!0});let a=await jh(this.sessionsDir,t);if(a===null||a.activeWriterIdentity!==null||lt.existsSync(ia(this.sessionsDir))||r.topologyIdentity===void 0||!Gi(r.topologyIdentity,a))return;let c=o.map(p=>G.relative(this.sessionsDir,p).replace(/\\/g,"/")),l={version:1,id:t,filePaths:c,topology:{root:T_(a.root),epoch:a.epoch,writerIdentity:a.writerIdentity===null?null:T_(a.writerIdentity)}},u=`${n}.${process.pid}.${ll()}.tmp`,d;try{d=await _e.open(u,"wx"),await d.writeFile(JSON.stringify(l),"utf8"),await d.sync(),await d.close(),d=void 0,await Wh(u,n)}finally{await d?.close().catch(()=>{}),await _e.rm(u,{force:!0})}this.sessionLocations.set(t,{kind:"located",filePath:o[0],globallyVerified:!0,topologyIdentity:a})}catch(r){$t("warn",`Unable to update the Session location hint for ${t}.`,r)}}async resolveSessionLocationHint(t,n){let r;try{r=await T2(this.sessionsDir,t)}catch(l){$t("warn",`Unable to read the Session location hint for ${t}.`,l);return}if(r===void 0||lt.existsSync(ia(this.sessionsDir)))return;let o=await jh(this.sessionsDir,t);if(o===null||o.activeWriterIdentity!==null||!Gi(r.topology,o))return;let s=await Promise.all(r.filePaths.map(ix)),a=s.findIndex(l=>l==="unverifiable");if(a>=0&&n)throw Xh(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 xe("data_changed",`Ambiguous Session id ${t} has multiple persisted main files`);return this.resolveAmbiguousSessionLocation(t,c)}appendState=new Map;lineageIdentityFilterHashes=new Map;projectJsonWritten=new Map;migrationPromise;ensureMigrated(){if(!this.migrationPromise){let t;t=ta(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:ll(),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?pi(n.lineage):n.messages.length),presentationOnlyHistoryCount:n.uiHistory===void 0?s?.presentationOnlyHistoryCount??0:Xs(0,n.uiHistory),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(px)):s?.artifactDedupKeys??new Set,extensionRecordIds:n.extensionRecords?new Set(n.extensionRecords.map(a=>a.id)):s?.extensionRecordIds??new Set,tag:n.tag!==void 0?n.tag:s?.tag,scope:n.scope??s?.scope,surface:n.runtimeInfo?.surface??s?.surface,projectCanonicalRoot:xr(n).canonicalRoot??s?.projectCanonicalRoot,filePath:r?.filePath??s?.filePath,mainIdentity:r?.mainIdentity})}async syncAppendStateFromFile(t,n,r,o){this.syncAppendState(t,n,{filePath:r,mainIdentity:await dr(r)??void 0},o)}legacyFlatPath(t){return G.join(this.sessionsDir,`${t}.jsonl`)}legacyFlatArchivePath(t){return G.join(this.sessionsDir,`${t}.archive.jsonl`)}projectDir(t){return G.join(this.sessionsDir,t)}resolveWriteDir(t,n){let r=this.sessionLocations.get(t);if(r?.kind==="located"){let s=G.dirname(r.filePath);if(s!==this.sessionsDir)return G.basename(s)==="archived"?G.dirname(s):s}let o=xr(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&&Gi(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&&Gi(n,r))return n;this.verifiedLocationMisses.delete(t)}assertLocationTopologyUnchanged(t,n){Jo(this.sessionsDir,t);let r=n===void 0?void 0:this.readSessionTopologyIdentitySync(t,n.writerScope);if(n===void 0||r===void 0||!Gi(n,r))throw new xe("data_changed",`Session location topology changed during the read boundary for ${t}`)}readSessionTopologyIdentitySync(t,n="session"){try{let r=sa(lt.statSync(this.sessionsDir,{bigint:!0})),o;try{o=sa(lt.statSync(n==="session"?H_(this.sessionsDir,t):hx(this.sessionsDir),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return;o=null}let s=null;if(n==="session")try{s=sa(lt.statSync(ul(this.sessionsDir,t),{bigint:!0}))}catch(a){if(a.code!=="ENOENT")return}try{return{root:r,epoch:lt.readFileSync(G.join(this.sessionsDir,cx),"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=G.join(this.sessionsDir,cx),n=`${t}.${process.pid}.${Date.now()}.${ox++}.tmp`,r;try{r=await _e.open(n,"wx"),await r.writeFile(`${ll()}
|
|
93
|
-
`,"utf8"),await r.sync(),await r.close(),r=void 0,await Wh(n,t)}finally{await r?.close().catch(()=>{}),await _e.unlink(n).catch(o=>{if(o.code!=="ENOENT")throw o})}}withSessionLocationTopologyChange(t,n){return rp(ia(this.sessionsDir),async()=>(await this.advanceSessionLocationTopology(),n?.(),t()),Kh)}writeFilePath(t,n){return G.join(this.resolveWriteDir(t,n),`${t}.jsonl`)}async resolveSessionLocation(t,n=!1){n&&await W_(this.sessionsDir,t);let r=this.sessionLocations.get(t);if(r?.kind==="located"&<.existsSync(r.filePath)&&(!n||this.isLocationGloballyVerified(t)))return r.filePath;if(r?.kind==="ambiguous"){let h=r.filePaths.filter(g=>lt.existsSync(g));if(h.length===r.filePaths.length){if(n)throw new xe("data_changed",`Ambiguous Session id ${t} has multiple persisted main files`);return this.resolveAmbiguousSessionLocation(t,h)}}let o=await this.resolveSessionLocationHint(t,n);if(o!==void 0)return o;let s=!0;try{await _e.mkdir(G.join(this.sessionsDir,zh),{recursive:!0})}catch(h){s=!1,$t("warn",`Unable to prepare the durable Session location index for ${t}.`,h)}let a=this.legacyFlatPath(t),c;try{c=await jh(this.sessionsDir,t)}catch{s=!1}let l=[];try{l=await _e.readdir(this.sessionsDir,{withFileTypes:!0})}catch(h){h.code!=="ENOENT"&&(s=!1),l=[]}let u=[a];for(let h of l)!h.isDirectory()||h.name.startsWith(".")||u.push(G.join(this.sessionsDir,h.name,`${t}.jsonl`),G.join(this.sessionsDir,h.name,"archived",`${t}.jsonl`));let d=[],p=48;for(let h=0;h<u.length;h+=p){let g=u.slice(h,h+p),x=await Promise.all(g.map(ix));for(let[T,S]of x.entries()){let I=g[T];S==="present"&&d.push(I),S==="unverifiable"&&(s=!1)}}d.sort();let m;try{m=await jh(this.sessionsDir,t)}catch{s=!1}if(s=s&&c!==void 0&&m!==void 0&&S2(c,m),n&&!s)throw new xe("data_changed",`Session location topology could not be verified for ${t}`);if(n&&Jo(this.sessionsDir,t),d.length===0)return this.sessionLocations.delete(t),s&&m!==null&&m!==void 0?this.verifiedLocationMisses.set(t,m):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&&m!==null&&m!==void 0?{topologyIdentity:m}:{}}),await this.persistSessionLocationHint(t),d[0];if(this.sessionLocations.set(t,{kind:"ambiguous",filePaths:d}),await this.persistSessionLocationHint(t),n)throw new xe("data_changed",`Ambiguous Session id ${t} has multiple persisted main files`);return this.resolveAmbiguousSessionLocation(t,d)}async resolveAmbiguousSessionLocation(t,n){if(this.hostCwd){let r=await no({cwd:this.hostCwd}),o=await No(this.hostCwd),s=this.projectDir(xr({gitRoot:o??void 0,runtimeInfo:r}).key),a=n.find(c=>{let l=G.dirname(c);return l===s||G.basename(l)==="archived"&&G.dirname(l)===s});if(a)return a}return qo(`[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 Vh(r,n.strict===!0);if(!s)return null;n.strict===!0&&this.assertLocationTopologyUnchanged(t,o),I_(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=G.dirname(s),c=[G.join(a,`${t}.islands.jsonl`),G.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 _e.readFile(d,"utf-8")}catch(g){if(g.code==="ENOENT")continue;throw g}let m=p.split(/\r?\n/),h=-1;for(let g=m.length-1;g>=0;g-=1)if((m[g]??"").trim().length>0){h=g;break}for(let g=0;g<m.length;g+=1){let x=m[g]??"";if(x.trim())try{let T=JSON.parse(x);if(_2(T)){let S=T;l.push({...T,previousEntryId:k_(S.previousEntryId),nextEntryId:k_(S.nextEntryId),streamId:u})}else{if(nt(T)&&T._type==="archive_batch")continue;if(r)throw new xe("version_incompatible",`Unsupported island sidecar record at ${G.basename(d)}:${g+1}`)}}catch(T){if(T instanceof xe)throw T;if(r)throw new xe("data_corrupt",`Malformed island sidecar record at ${G.basename(d)}:${g+1}`);$t("warn",g===h?`Ignored incomplete island sidecar tail ${G.basename(d)}:${g+1}.`:`Skipped malformed island sidecar record ${G.basename(d)}:${g+1}.`,T)}}}return l}async completeConversationLineage(t,n,r){let o=await this.readArchivedEntries(t,n);return o.length===0?r:{...r,entries:Md(o,r.entries)}}async appendIslandArchive(t,n,r,o,s,a){if(r.length===0)return;let c=a?G.dirname(a):this.resolveWriteDir(t,n);await _e.mkdir(c,{recursive:!0});let l=G.join(c,`${t}.islands.jsonl`),u=new Map(s.map((p,m)=>[p.id,m])),d=await _e.open(l,"a");try{await d.write(JSON.stringify({_type:"archive_batch",archiveBatchId:o,sessionId:t,archivedAt:new Date().toISOString(),entryCount:r.length})+`
|
|
94
|
-
`);for(let p of r){let m=u.get(p.id);await d.write(JSON.stringify({_type:"archived_entry",archiveBatchId:o,...m===void 0?{}:{previousEntryId:s[m-1]?.id??null,nextEntryId:s[m+1]?.id??null},entry:p})+`
|
|
95
|
-
`)}await d.sync()}finally{await d.close()}}async ensureProjectJson(t,n,r){if(n.canonicalRoot===null)return;let o=this.projectJsonWritten.get(t);if(o===n.canonicalRoot)return;if(o!==void 0)throw new xe("data_changed",`Refusing to change the cached project identity for ${t}`);let s=G.join(t,"project.json"),a;try{a=await VM(t)}catch(c){let l=c instanceof Error?c.message:String(c);throw new xe("data_changed",`Unable to validate ${s}: ${l}`)}if(!a){let c=i(p=>p.endsWith(".jsonl")&&!p.endsWith(".archive.jsonl")&&!p.endsWith(".islands.jsonl")&&!p.startsWith("."),"isMainSessionFile"),u=(await _e.readdir(t,{withFileTypes:!0})).some(p=>p.isFile()&&c(p.name)),d=!1;try{d=(await _e.readdir(G.join(t,"archived"),{withFileTypes:!0})).some(p=>p.isFile()&&c(p.name))}catch(p){if(p.code!=="ENOENT"){let m=p instanceof Error?p.message:String(p);throw new xe("data_changed",`Unable to inspect ${t}: ${m}`)}}if(u||d){let p=[t,G.join(t,"archived")],m=[];for(let h of p)try{for(let g of await _e.readdir(h,{withFileTypes:!0}))g.isFile()&&c(g.name)&&m.push(G.join(h,g.name))}catch(g){if(g.code!=="ENOENT")throw g}for(let h=0;h<m.length;h+=48)if((await Promise.all(m.slice(h,h+48).map(async x=>{let T=await qh(x);if(!T)return r!==void 0&&G.basename(t)===n.key&&G.resolve(x)===G.resolve(r);try{let S=JSON.parse(T);if(!nt(S)||S._type!=="meta")return!1;let I=xr({gitRoot:typeof S.gitRoot=="string"?S.gitRoot:void 0,runtimeInfo:Yh(S.runtimeInfo)?S.runtimeInfo:void 0});return I.key===n.key&&I.canonicalRoot===n.canonicalRoot}catch{return!1}}))).some(x=>!x))throw new xe("data_changed",`Refusing to claim a mixed or unverifiable project bucket at ${s}`)}}try{await Eh(t,n)}catch(c){let l=c instanceof Error?c.message:String(c);throw new xe("data_changed",`Unable to publish ${s}: ${l}`)}this.projectJsonWritten.set(t,n.canonicalRoot)}async rebuildConversationCache(t,n,r,o,s=[]){try{let a=await this.readArchivedEntries(t,n,!0),c=a.length===0?r:{...r,entries:Md(a,r.entries)},l=await fx(this.sessionsDir,t,n,void 0,!0),u=Lh(Zs(c,l.sourceRevision),c,t,s);if(await WM(n,l.boundaryRevision,l.sourceRevisionState,u,c,o))return;await jS(n,l.boundaryRevision,l.sourceRevisionState,u,c,o,g_)}catch(a){try{await Vn(n)}catch(c){$t("warn",`Unable to invalidate Conversation page cache for ${t}.`,new AggregateError([a,c]));return}$t("warn",`Unable to prepare Conversation pages for ${t}; reads will use the canonical fallback.`,a)}}async updateConversationCacheAfterAppend(t,n,r,o,s,a,c){try{let l=await nl(n),u=l?.boundaryRevision===r.revision?UM(l,o,s,a):void 0;if(l===void 0||u===void 0){l!==void 0&&await Vn(n);return}let d=yM(l.sourceRevisionState,G.relative(this.sessionsDir,n).replace(/\\/g,"/"),Buffer.from(c,"utf8"));if(d===void 0){await Vn(n);return}let p=await _d(this.sessionsDir,t,n,!0);if(!C2(r,p,Buffer.byteLength(c,"utf8"))){await Vn(n);return}await jM(n,l,p.revision,d,u,s,a)}catch(l){$t("warn",`Unable to extend Conversation page cache for ${t}; invalidating it.`,l);try{await Vn(n)}catch(u){$t("warn",`Unable to invalidate Conversation page cache for ${t}.`,new AggregateError([l,u]))}}}async writeSessionInternal(t,n,r,o,s=this.verifiedLocationTopology(t),a,c){let l=o?G.dirname(o):this.resolveWriteDir(t,n),u=o??G.join(l,`${t}.jsonl`),d=G.basename(l)==="archived"?G.dirname(l):l,p=xr(n),m=this.appendState.get(t)?.projectCanonicalRoot;if(o!==void 0&&m!==void 0&&p.canonicalRoot!==null&&m!==p.canonicalRoot)throw new xe("data_changed",`Refusing to move Session ${t} across cached project identities`);await _e.mkdir(l,{recursive:!0}),await this.ensureProjectJson(d,p,u);let h=`${u}.${process.pid}.${Date.now()}.${ox++}.tmp`,g=n.lineage??qe(n.messages),x=a===void 0?void 0:bh(a),T=x===void 0?void 0:Uh(x),S=J2(t,n,g,r,T),I=Bh(u),v=G.basename(G.dirname(u))!=="archived",$=Xs(S.activeMessageCount??0,S.uiHistory),_=v&&S.scope!=="managed-task-worker"&&$>0,N=Gh(t,S.title,$,S.createdAt,S.runtimeInfo?.surface);if(_)try{await Fh(I,N)}catch(P){$t("warn",`Unable to prepare the resume index for ${t}.`,P)}let B=this.legacyFlatPath(t),k=!lt.existsSync(u)||B!==u&<.existsSync(B),D=i(async()=>{try{c?.beginTiming("tempWrite");let P=Wr.now(),b=await _e.open(h,"w");try{try{await b.write(JSON.stringify(S)+`
|
|
96
|
-
`);for(let ne of g.entries)await b.write(JSON.stringify(v_(ne))+`
|
|
97
|
-
`);for(let ne of n.artifactLedger??[])await b.write(JSON.stringify(b_(ne))+`
|
|
98
|
-
`);for(let ne of n.extensionRecords??[])await b.write(JSON.stringify(sx(ne))+`
|
|
99
|
-
`)}finally{c?.recordTiming("tempWrite",Kn(P))}c?.beginTiming("fsync");let C=Wr.now();try{await b.sync()}finally{c?.recordTiming("fsync",Kn(C))}}finally{await b.close()}c?.beginTiming("rename"),c?.beforeCommit();let fe=Wr.now();try{await Wh(h,u)}finally{c?.recordTiming("rename",Kn(fe))}if(c?.afterCommit(),B!==u&<.existsSync(B)){await _e.unlink(B).catch(()=>{});let C=this.legacyFlatArchivePath(t);lt.existsSync(C)&&await _e.rename(C,G.join(d,`${t}.islands.jsonl`)).catch(()=>{})}}finally{lt.existsSync(h)&&await _e.unlink(h).catch(()=>{})}},"write");if(k){c?.beginTiming("topology");let P=Wr.now(),b=!1;try{await this.withSessionLocationTopologyChange(D,()=>{b=!0,c?.recordTiming("topology",Kn(P))})}finally{b||c?.recordTiming("topology",Kn(P))}}else await D();try{await Ed(I,N,_)}catch(P){$t("warn",`Unable to refresh the resume index for ${t}.`,P)}a===void 0?await Vn(u):await this.rebuildConversationCache(t,u,a,n.runtimeInfo,n.extensionRecords);let U=[u];B!==u&<.existsSync(B)&&U.push(B);let j=this.readSessionTopologyIdentitySync(t),W=s!==void 0&&j!==void 0;return this.verifiedLocationMisses.delete(t),this.sessionLocations.set(t,U.length===1?{kind:"located",filePath:u,globallyVerified:W,...W?{topologyIdentity:j}:{}}:{kind:"ambiguous",filePaths:U.sort()}),T===void 0?this.lineageIdentityFilterHashes.delete(t):this.lineageIdentityFilterHashes.set(t,T),u}async mergeAndWriteInternal(t,n,r=!1){let o=await this.readSession(t),s=o===null?this.verifiedMissingLocationTopology(t):this.verifiedLocationTopology(t),a={...n,scope:n.scope??o?.data.scope??"user",uiHistory:n.uiHistory??o?.data.uiHistory,extensionState:n.extensionState??o?.data.extensionState,artifactLedger:n.artifactLedger??o?.data.artifactLedger,actorSnapshot:o?.data.actorSnapshot??n.actorSnapshot,extensionRecords:n_(t,o?.data.extensionRecords,n.extensionRecords),runtimeInfo:n.runtimeInfo===void 0?o?.data.runtimeInfo:{...n.runtimeInfo,...!r&&o?.data.runtimeInfo?.sandboxWorktreeRoots!==void 0?{sandboxWorktreeRoots:o.data.runtimeInfo.sandboxWorktreeRoots}:{}},errorMetadata:Object.prototype.hasOwnProperty.call(n,"errorMetadata")?n.errorMetadata:o?.data.errorMetadata,tag:n.tag??o?.data.tag,lineage:q2(n,o?.data.lineage)};if(o!==null){let m=xr(o.data),h=xr(a);if(m.canonicalRoot!==null&&h.canonicalRoot!==null&&m.canonicalRoot!==h.canonicalRoot)throw new xe("data_changed",`Refusing to move Session ${t} across project identities during an in-place save`)}let c=await this.readArchivedEntries(t),l=B2(a.lineage,o?.data.lineage,c),u=UI(l);await this.appendIslandArchive(t,a,u.archivedEntries,u.archiveBatchId,l.entries,o?.filePath);let d={...a,lineage:u.slimmedLineage},p=await this.writeSessionInternal(t,d,o?.createdAt,o?.filePath,s,l);await this.syncAppendStateFromFile(t,{...a,lineage:l},p)}async appendSessionDelta(t,n){await this.ensureMigrated(),await this.serializedWrite(t,async()=>{let r=this.appendState.get(t),o=r?.filePath===void 0?null:await dr(r.filePath);if(!(r!==void 0&&(r.mainIdentity===void 0||o===null||!jr(r.mainIdentity,o)))){await this.mergeAndWriteInternal(t,n);return}let a=await this.readSession(t);await this.mergeAndWriteInternal(t,a?D2(n,a.data):n)})}async confirmIdentityAlias(t,n,r){let o=structuredClone(n);await this.ensureMigrated();let s=await this.resolveSessionLocation(t,!0);if(s===null)throw new Error(`Session ${t} was not found.`);let a;if(await this.serializedWrite(t,async()=>{if(await this.resolveSessionLocation(t)!==s)throw new xe("data_changed","Session moved before identity confirmation.");let c=await this.readFullSnapshotAtPath(t,s,void 0,!0);if(c?.lineage==null)throw new Error("Identity confirmation requires complete lineage.");if(this.assertActorFileOwner(c.data.actorSnapshot,r),c.data.actorSnapshot?.turns.some(d=>d.state==="accepted"||d.state==="running"))throw new Error("Cannot confirm historical identity while a turn is active.");let l=c.data.extensionRecords??[],u=t_(t,o,c.lineage,l);if(l.some(d=>d.id===u.id)){a=u;return}if(c.sourceRevision!==o.expectedSourceRevision)throw new xe("data_changed","Session changed before identity confirmation; reload before retrying.");await this.appendIdentityRepairRecord(s,u),a=u,this.appendState.delete(t);try{await Vn(s)}catch(d){$t("warn",`Unable to remove stale Conversation cache for ${t}.`,d)}}),a===void 0)throw new Error("Identity confirmation did not commit.");return a}async appendIdentityRepairRecord(t,n){let r=await _e.readFile(t),o=`${r.at(-1)===10?"":`
|
|
100
|
-
`}${JSON.stringify(sx(n))}
|
|
101
|
-
`,s=`${t}.${ll()}.tmp`;try{let a=await _e.open(s,"wx");try{await a.writeFile(Buffer.concat([r,Buffer.from(o)])),await a.sync()}finally{await a.close()}await Wh(s,t)}finally{await _e.rm(s,{force:!0})}}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 xe("data_changed",`Prepared Session append boundary changed for ${t}; reload before retrying`);let l=r.lineageEntries,u=r.artifactEntries??[],d=r.extensionRecords??[];if(d.some(na))throw new xe("data_changed","Identity repair records require a full projection rebuild.");if(a.lineageIdentityFilter===void 0||a.lineageIdentityFilterHash===void 0||Uh(a.lineageIdentityFilter)!==a.lineageIdentityFilterHash||a.bundleBoundaryRevision===void 0||!R2(a.activeEntryId,l,r.activeEntryId,a.lineageIdentityFilter)||R_(u,a.artifactEntryIds)||b2(u,a.artifactDedupKeys)||R_(d,a.extensionRecordIds))throw new xe("data_changed",`Prepared Session tail for ${t} is not a new linear append; use appendSessionDelta()`);let p=v2(a.activeEntryId,a.activeMessageCount,l,r.activeEntryId);if(p===void 0)throw new xe("data_changed",`Prepared Session tail for ${t} is not a linear append; use appendSessionDelta()`);let m=a.filePath===void 0?null:await dr(a.filePath);if(a.filePath===void 0||a.mainIdentity===void 0||m===null||!jr(a.mainIdentity,m))throw new xe("data_changed",`Persisted Session changed after the prepared append boundary for ${t}`);let h=await _d(this.sessionsDir,t,a.filePath,!0);if(h.revision!==a.bundleBoundaryRevision)throw new xe("data_changed",`Persisted Session bundle changed after the prepared append boundary for ${t}`);let g=[];for(let j of l)g.push(JSON.stringify(v_(j)));for(let j of u)g.push(JSON.stringify(b_(j)));for(let j of d)g.push(JSON.stringify(sx(j)));let x=FS(a.lineageIdentityFilter,l),T=Uh(x),S={_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:T};g.push(JSON.stringify(S));let I=`
|
|
102
|
-
${g.join(`
|
|
103
|
-
`)}`,v=r.scope??a.scope??"user",$=G.basename(G.dirname(a.filePath))!=="archived",_=r.uiHistory===void 0?a.presentationOnlyHistoryCount:Xs(0,r.uiHistory),N=p+_,B=$&&v!=="managed-task-worker"&&N>0,k=Bh(a.filePath),D=Gh(t,r.title,N,void 0,a.surface);if(B)try{await Fh(k,D)}catch(j){$t("warn",`Unable to prepare the resume index for ${t}.`,j)}await _e.appendFile(a.filePath,I,"utf-8"),s=!0;try{await Ed(k,D,B)}catch(j){$t("warn",`Unable to refresh the resume index for ${t}.`,j)}await this.updateConversationCacheAfterAppend(t,a.filePath,h,a.activeEntryId,l,r.activeEntryId,I);for(let j of u)a.artifactEntryIds.add(j.id);for(let j of u)a.artifactDedupKeys.add(px(j));for(let j of d)a.extensionRecordIds.add(j.id);let U=await _d(this.sessionsDir,t,a.filePath,!0);this.appendState.set(t,{...a,appendRevision:ll(),lineageCount:a.lineageCount+l.length,artifactCount:a.artifactCount+u.length,extensionCount:a.extensionCount+d.length,activeEntryId:r.activeEntryId,activeMessageCount:p,presentationOnlyHistoryCount:_,scope:v,lineageIdentityFilter:x,lineageIdentityFilterHash:T,bundleBoundaryRevision:U.revision,mainIdentity:await dr(a.filePath)??void 0}),this.lineageIdentityFilterHashes.set(t,T),o=this.currentPreparedSessionAppend(t)??void 0})}catch(a){if(!s)throw a;return this.appendState.delete(t),$t("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 _e.mkdir(G.join(this.sessionsDir,zh),{recursive:!0});let r=this.writeFilePath(t,n);if(lt.existsSync(r)||lt.existsSync(this.legacyFlatPath(t)))throw Object.assign(new Error(`Session already exists: ${t}`),{code:"conflict"});await this.writeSessionInternal(t,n,void 0,r,void 0,n.lineage??qe(n.messages));let 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??qe(o.data.messages),a=n(s);a!==s&&await this.mergeAndWriteInternal(t,{...o.data,lineage:a})}),r}async mutateRuntimeInfo(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.runtimeInfo===void 0?void 0:structuredClone(o.data.runtimeInfo),a=n(s);await this.mergeAndWriteInternal(t,{...o.data,runtimeInfo:a},!0)}),r}beginActorSnapshotSave(t,n,r){let o=p2(t,n.revision),s=this.serializedWrite(t,async()=>{o.canonicalObserver.beginTiming("readCas");let a=Wr.now(),c;try{let m=await this.readSession(t);if(!m)throw new Error(`Session not found: ${t}`);let h=m.data.actorSnapshot?.revision??0;if(h!==r)throw new VI(r,h,t);c=m}finally{o.canonicalObserver.recordTiming("readCas",Kn(a))}let l={...c.data,actorSnapshot:structuredClone(n)};o.canonicalObserver.beginTiming("lineage");let u=Wr.now(),d;try{d=l.lineage===void 0?void 0:await this.completeConversationLineage(t,c.filePath,l.lineage)}finally{o.canonicalObserver.recordTiming("lineage",Kn(u))}let p;try{p=await this.writeSessionInternal(t,l,c.createdAt,c.filePath,void 0,d,o.canonicalObserver)}catch(m){let h=m;if(o.attempt.phase()==="commit_inflight")try{let g=await this.readSession(t),x=g?.data.actorSnapshot,T=g?.data.actorSnapshot?.revision??0;s2(x,f2(n))?o.markCommitObservedByReadback():T===r?o.markCommitNotObserved(m):h=new AggregateError([m,new Error(`Actor snapshot readback observed revision ${T}; expected prior ${r} or exact target ${n.revision}.`)],"Actor snapshot replacement result is ambiguous.")}catch(g){h=new AggregateError([m,g],"Actor snapshot replacement failed and canonical readback was unavailable.")}throw h}await this.syncAppendStateFromFile(t,l,p)},o.queueObserver);return o.settleCompletion(s),o.attempt}async saveActorSnapshot(t,n,r){await this.beginActorSnapshotSave(t,n,r).completion}async peek(t){let n=await this.readSession(t,{migrate:!1});return n?ax(n.data):null}async read(t,n={}){ur(n.signal);let r=await cl(this.readSession(t,{migrate:!1,strict:!0}),n);return r?ax(r.data):null}async readConversationPageCache(t,n,r={}){ur(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 oa(this.sessionsDir,t,s),l=await BM(s,c,{...n,signal:r.signal}),u=await oa(this.sessionsDir,t,s);if(this.assertLocationTopologyUnchanged(t,a),c!==u)throw new vt("Conversation history changed during paging");if(l===null&&n.expectedRevision!==void 0)throw new vt("Conversation history changed; request a fresh page");return l}catch(c){if(c instanceof vt){if(n.expectedRevision===void 0)return null;throw new xe("data_changed",c.message)}throw c}})();return cl(o,r)}async readConversationPageBoundary(t,n={}){ur(n.signal);let r=(async()=>{let o=await this.resolveSessionLocation(t,!0);if(o===null)return null;let s=this.verifiedLocationTopology(t),a=await oa(this.sessionsDir,t,o),c=await Q2(o),l=await oa(this.sessionsDir,t,o);if(this.assertLocationTopologyUnchanged(t,s),a!==l)throw new xe("data_changed","Session changed while validating a Conversation page boundary");return{boundaryRevision:l,admission:c}})();return cl(r,n)}async prepareConversationPageCache(t,n,r,o,s,a,c={}){ur(c.signal);let l=await this.resolveSessionLocation(t,!0);if(l===null)throw new xe("data_changed","Session moved before page preparation");await cl(this.serializedWrite(t,async()=>{if(ur(c.signal),await oa(this.sessionsDir,t,l,!0)!==s)throw new xe("data_changed","Session changed before page preparation");await jS(l,s,a,n,r,o,g_)}),c)}async readConversationPageCacheChunk(t,n,r={}){ur(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 oa(this.sessionsDir,t,s),l=await FM(s,c,{...n,signal:r.signal}),u=await oa(this.sessionsDir,t,s);if(this.assertLocationTopologyUnchanged(t,a),c!==u||l===null)throw new vt("Conversation history changed; request a fresh page");return l}catch(c){throw c instanceof vt?new xe("data_changed",c.message):c}})();return cl(o,r)}async readFullSnapshot(t,n={}){ur(n.signal);let r=(async()=>{let o=await this.resolveSessionLocation(t,!0);return o===null?null:this.readFullSnapshotAtPath(t,o,n.signal,!1)})();return cl(r,n)}async readFullSnapshotAtPath(t,n,r,o){let s=this.verifiedLocationTopology(t),a=await fx(this.sessionsDir,t,n,r,o),c=a.files.find(x=>x.kind==="main");if(c===void 0)throw new xe("data_changed","Session main file moved during the read boundary");let l=await Vh(c.path,!0,c.bytes.toString("utf8"));if(l===null)return null;let u=P_(l,c.path),d=G.dirname(c.path),p=new Map([[G.join(d,`${t}.islands.jsonl`),null],[G.join(d,`${t}.archive.jsonl`),null]]);for(let x of a.files)x.kind!=="main"&&p.set(x.path,x.bytes.toString("utf8"));let m=await this.readArchivedEntries(t,c.path,!0,p),h=Md(m,u.data.lineage?.entries??[]),g=u.data.lineage===void 0?h.length===0?null:{version:2,activeEntryId:null,entries:h}:{...u.data.lineage,entries:h};return o||this.assertLocationTopologyUnchanged(t,s),{data:ax(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 No(this.hostCwd),a=await no({cwd:this.hostCwd}),c=Fn(r);(a.canonicalRepoRoot&&c?.canonicalRepoRoot&&!Fy(a,c)||s&&r.gitRoot&&s!==r.gitRoot&&!Fy(a,{canonicalRepoRoot:r.gitRoot}))&&(qo(h_.yellow(`
|
|
104
|
-
[Warning] Session project mismatch:`)),a.workspaceRoot&&qo(` Current workspace: ${a.workspaceRoot}`),c?.workspaceRoot&&qo(` Session workspace: ${c.workspaceRoot}`),a.canonicalRepoRoot&&qo(` Current repo: ${a.canonicalRepoRoot}`),c?.canonicalRepoRoot?qo(` Session repo: ${c.canonicalRepoRoot}`):r.gitRoot&&qo(` Session repo: ${r.gitRoot}`),qo(` Continuing anyway...
|
|
105
|
-
`))}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(h=>h.state==="accepted"||h.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=$I(c.data.messages);if(u===c.data.messages){this.syncAppendState(t,c.data,{filePath:c.filePath,mainIdentity:c.mainIdentity});return}let d={...c.data,messages:u,errorMetadata:{...c.data.errorMetadata,consecutiveErrors:0},lineage:qe(u,c.data.lineage)},p=await this.completeConversationLineage(t,c.filePath,d.lineage),m=await this.writeSessionInternal(t,d,c.createdAt,c.filePath,void 0,p);await this.syncAppendStateFromFile(t,d,m),s=d,a=!0}),a&&qo(h_.cyan("[Session Recovery] Attempted cleanup of incomplete tool calls from previous session")),s}return I_(o,0),r}async has(t){try{return await this.ensureMigrated(),await this.resolveSessionLocation(t)!==null}catch(n){return $t("warn",`Unable to locate Session ${t}.`,n),!1}}async isArchived(t){await this.ensureMigrated();let n=await this.resolveSessionLocation(t);return n!==null&&G.basename(G.dirname(n))==="archived"}async getLineage(t){return(await this.readSession(t))?.data.lineage??null}async loadFullLineage(t){return await this.ensureMigrated(),rp(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:Md(r,n.data.lineage.entries)}},Kh)}async setActiveEntry(t,n,r){let o=null;return await My({configHome:this.configHome,sessionId:t},async s=>this.serializedWrite(t,async()=>{let a=await this.readSession(t);if(!a?.data.lineage)return;let c=Ka(a.data.lineage,n,r);if(!c)return;await s(Ay(c));let l={...a.data,messages:Bt(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 My({configHome:this.configHome,sessionId:t},async s=>this.serializedWrite(t,async()=>{let a=await this.readSession(t);if(!a?.data.lineage)return;let c=r?.historyBoundary,l=c===void 0?void 0:await this.readFullSnapshotAtPath(t,a.filePath,void 0,!0);if(l!==void 0&&l?.sourceRevision!==c?.sourceRevision)throw new xe("data_changed",`Conversation history boundary is stale for ${t}`);let u=l?.lineage??a.data.lineage;if(u===null)return;let d=n??Ya(u);if(!d)return;let p=l===void 0?void 0:y_(u,d);if(l!==void 0&&p===void 0)return;let h=qa(p===void 0?u:{version:2,activeEntryId:d,entries:p},d);if(!h)return;let g=h.entries.at(-1);if(g?.type!=="rewind_marker")return;let x=u.entries.findIndex(j=>j.id===d);if(x<0)return;let{fromId:T,...S}=g,I={...S,...u.activeEntryId!==null?{fromId:u.activeEntryId}:{},truncatedCount:u.entries.length-x-1},v={...h,entries:[...h.entries.slice(0,-1),I]};await s(Ay(v));let $=await this.readArchivedEntries(t,a.filePath),_=l?.lineage?.entries??($.length===0?a.data.lineage.entries:Md($,a.data.lineage.entries)),N=new Set(v.entries.map(j=>j.id)),B=a.data.lineage.entries.filter(j=>!N.has(j.id)),k={...a.data,messages:Bt(v),lineage:v};await this.appendIslandArchive(t,k,B,I.id,[..._,I],a.filePath);let D=await this.completeConversationLineage(t,a.filePath,v),U=await this.writeSessionInternal(t,k,a.createdAt,a.filePath,void 0,D);await this.syncAppendStateFromFile(t,k,U),o=k})),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=za(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 xe("data_changed",`Conversation history boundary is stale for ${t}`);if(a!==void 0&&c===null)return;let l=c?.lineage??s.data.lineage;if(l===null||c!==void 0&&(n===void 0||y_(l,n)===void 0))return;let u=Date.now(),d=c===void 0?Po(l,n):c===null?null:uM(l,n,c.sourceRevision,()=>Jh({},u));if(!d)return;let p=r?.sessionId??await Ja(),m={messages:Bt(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(h=>({...h})):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,m,void 0,void 0,void 0,d),o={sessionId:p,data:m}}),o}async list(t,n){await this.ensureMigrated(),await _e.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 No(this.hostCwd):null),a=o?await no({cwd:s??this.hostCwd??process.cwd()}):void 0,c=o?void 0:this.beginSessionLocationTraversal(),l=await _e.readdir(this.sessionsDir,{withFileTypes:!0}),u=[],d=new Map,p=[],h=(a===void 0?void 0:xr({gitRoot:s??void 0,runtimeInfo:a}))?.key,g=i(k=>k.endsWith(".archive.jsonl")||k.endsWith(".islands.jsonl"),"isSidecar"),x=h!==void 0?[h]:l.filter(k=>k.isDirectory()&&!k.name.startsWith(".")).map(k=>k.name),T=!o,S=i(async k=>{try{return{files:await _e.readdir(k),complete:!0}}catch(D){return{files:[],complete:D.code==="ENOENT"}}},"readDirectory"),I=48;for(let k=0;k<x.length;k+=I){let D=await Promise.all(x.slice(k,k+I).map(async U=>{let j=this.projectDir(U),[W,P,b]=await Promise.all([S(j),S(G.join(j,"archived")),m_(j).catch(fe=>{$t("warn",`Unable to read the resume index in ${U}.`,fe)})]);return{projectDir:j,active:W,archived:P,resumeEntries:b}}));for(let U of D){let j=new Map(U.resumeEntries?.map(W=>[W.id,W])??[]);(!U.active.complete||!U.archived.complete)&&(T=!1);for(let W of U.active.files){if(!W.endsWith(".jsonl")||g(W))continue;let P=G.join(U.projectDir,W);p.push(P),u.push({path:P,archived:!1});let b=j.get(G.basename(W,".jsonl"));b!==void 0&&d.set(P,b)}for(let W of U.archived.files){if(!W.endsWith(".jsonl")||g(W))continue;let P=G.join(U.projectDir,"archived",W);p.push(P),n?.includeArchived&&u.push({path:P,archived:!0})}}}for(let k of l)if(k.isFile()&&k.name.endsWith(".jsonl")&&!g(k.name)&&!k.name.startsWith("archived-")&&!k.name.startsWith(".")){let D=G.join(this.sessionsDir,k.name);p.push(D),u.push({path:D,archived:!1})}c===void 0?this.indexSessionLocations(p,!1):this.completeSessionLocationTraversal(c,p,T);let v=[],$=i(async(k,D)=>{try{let U=await qh(k);if(!U)return null;let j=JSON.parse(U);if(nt(j)&&j._type==="meta"){let P=typeof j.gitRoot=="string"?j.gitRoot:"",b=Yh(j.runtimeInfo)?j.runtimeInfo:void 0,fe=j.scope==="managed-task-worker"?"managed-task-worker":"user";if(a!==void 0&&h!==void 0&&!Ap({gitRoot:P||void 0,runtimeInfo:b},[a.canonicalRepoRoot,a.workspaceRoot,a.executionCwd,s].filter($e=>typeof $e=="string"&&$e.length>0))||fe!=="user")return null;let C=typeof j.extensionRecordCount=="number"&&j.extensionRecordCount>0?j.extensionRecordCount:0,ne=typeof j.activeMessageCount=="number"&&j.activeMessageCount>=0?j.activeMessageCount:Math.max(0,await O_(k)-1-C),se=D?void 0:d.get(k),he=se?.msgCount??Xs(ne,j.uiHistory);if(!D&&se===void 0&&he===0){let Ee=await Vh(k),$e=Ee?.meta?.activeMessageCount;he=Xs(typeof $e=="number"?$e:0,Ee?.meta?.uiHistory)}return{id:G.basename(k,".jsonl"),title:se?.title??(typeof j.title=="string"?j.title:""),msgCount:he,...typeof j.tag=="string"?{tag:j.tag}:{},createdAt:typeof j.createdAt=="string"?j.createdAt:void 0,runtimeInfo:b?{...b}:P?{canonicalRepoRoot:P}:void 0,...D?{archived:!0}:{}}}let W=await O_(k);return{id:G.basename(k,".jsonl"),title:"",msgCount:W,...D?{archived:!0}:{}}}catch{return null}},"parseSessionFile"),_=48,N=new Set;for(let k=0;k<u.length;k+=_){let D=await Promise.all(u.slice(k,k+_).map(U=>$(U.path,U.archived)));for(let U of D)U&&!N.has(U.id)&&(N.add(U.id),v.push(U))}let B=n?.limit??10;return v.sort((k,D)=>{let U=k.createdAt?Date.parse(k.createdAt):Number.NaN,j=D.createdAt?Date.parse(D.createdAt):Number.NaN;return Number.isFinite(U)&&Number.isFinite(j)&&U!==j?j-U:Number.isFinite(j)&&!Number.isFinite(U)?1:Number.isFinite(U)&&!Number.isFinite(j)?-1:D.id.localeCompare(k.id)}).slice(0,B).map(({id:k,title:D,msgCount:U,tag:j,runtimeInfo:W,createdAt:P,archived:b})=>({id:k,title:D,msgCount:U,...j!==void 0?{tag:j}:{},...W?{runtimeInfo:W}:{},...P!==void 0?{createdAt:P}:{},...b?{archived:!0}:{}}))}async archive(t){return this.archiveWithActorOwner(t)}async archiveOwned(t,n){return this.archiveWithActorOwner(t,n)}sessionConversationCacheMainPaths(t,n){let r=G.dirname(n),o=G.basename(r)==="archived"?G.join(G.dirname(r),`${t}.jsonl`):G.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=G.resolve(o);r.has(s)||(r.add(s),await Vn(o))}}async removeResumeMembership(t,n){try{await Ed(Bh(n),Gh(t,"",0),!1)}catch(r){$t("warn",`Unable to remove ${t} from the resume index.`,r)}}async archiveWithActorOwner(t,n){await this.ensureMigrated();let r=!1;return await this.serializedWrite(t,async()=>{let o=await this.readSession(t);if(!o)return;this.assertActorFileOwner(o.data.actorSnapshot,n);let s=G.dirname(o.filePath);if(G.basename(s)==="archived"){for(let d of this.sessionConversationCacheMainPaths(t,o.filePath).slice(1))await Vn(d);await this.removeResumeMembership(t,o.filePath),r=!0;return}let a=this.verifiedLocationTopology(t),c=G.join(s,"archived");await this.removeSessionConversationCaches(t,o.filePath),await this.withSessionLocationTopologyChange(()=>this.movePair(t,s,c)),await this.removeResumeMembership(t,o.filePath);let l=this.readSessionTopologyIdentitySync(t),u=a!==void 0&&l!==void 0;this.sessionLocations.set(t,{kind:"located",filePath:G.join(c,`${t}.jsonl`),globallyVerified:u,...u?{topologyIdentity:l}:{}}),await this.rebuildConversationCache(t,G.join(c,`${t}.jsonl`),o.data.lineage??qe(o.data.messages),o.data.runtimeInfo,o.data.extensionRecords),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=G.dirname(o.filePath);if(G.basename(s)!=="archived"){for(let g of this.sessionConversationCacheMainPaths(t,o.filePath).slice(1))await Vn(g);r=!0;return}let a=this.verifiedLocationTopology(t),c=G.dirname(s),l=o.data.lineage?pi(o.data.lineage):o.data.messages.length,u=Xs(l,o.data.uiHistory),d=o.data.scope!=="managed-task-worker"&&u>0,p=Gh(t,o.data.title,u,o.createdAt,o.data.runtimeInfo?.surface);if(d)try{await Fh(c,p)}catch(g){$t("warn",`Unable to prepare the resume index for ${t}.`,g)}await this.removeSessionConversationCaches(t,o.filePath),await this.withSessionLocationTopologyChange(()=>this.movePair(t,s,c));try{await Ed(c,p,d)}catch(g){$t("warn",`Unable to refresh the resume index for ${t}.`,g)}let m=this.readSessionTopologyIdentitySync(t),h=a!==void 0&&m!==void 0;this.sessionLocations.set(t,{kind:"located",filePath:G.join(c,`${t}.jsonl`),globallyVerified:h,...h?{topologyIdentity:m}:{}}),await this.rebuildConversationCache(t,G.join(c,`${t}.jsonl`),o.data.lineage??qe(o.data.messages),o.data.runtimeInfo,o.data.extensionRecords),r=!0}),r}async movePair(t,n,r){let o=[`${t}.jsonl`,`${t}.islands.jsonl`,`${t}.archive.jsonl`];for(let c of o)if(lt.existsSync(G.join(r,c)))throw new Error(`Refusing to overwrite existing Session archive file: ${c}`);await _e.mkdir(r,{recursive:!0});let s=o.filter(c=>lt.existsSync(G.join(n,c))),a=[];try{for(let c of s){let l=G.join(n,c);await _e.rename(l,G.join(r,c)),a.push(c)}}catch(c){let l=[];for(let u of a.reverse())try{await _e.rename(G.join(r,u),G.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()}.${ox++}.deleting.tmp`;try{await _e.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 _e.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 _e.unlink(o.tombstone)}catch(s){$t("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 Ly(t?.schemaVersion===2?t.owner?.runtimeId:void 0,t?.revision??0,!1);return}if(t?.schemaVersion===2&&t.owner)throw new Ly(t.owner.runtimeId,t.revision,!1);if(t?.turns.some(r=>r.state==="accepted"||r.state==="running"))throw new KI(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)),await this.removeResumeMembership(t,o),this.sessionLocations.delete(t)})}async deleteAll(t){let n=t??(this.hostCwd?await No(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=G.basename(a);if(!c.endsWith(".jsonl")||c.endsWith(".archive.jsonl")||c.endsWith(".islands.jsonl"))return;let l=c.slice(0,-6);try{await this.serializedWrite(l,async()=>{if((await _e.stat(a)).mtimeMs>=o)return;let d=await Vh(a),p=d?.meta?.actorSnapshot;!d?.meta||p!==void 0&&(p.schemaVersion===2&&p.owner!==void 0||p.turns.some(m=>m.state==="accepted"||m.state==="running"))||(await this.removeSessionConversationCaches(l,a),n+=await this.withSessionLocationTopologyChange(()=>this.removeFileSetAtomically(l,[a.replace(/\.jsonl$/,".archive.jsonl"),a.replace(/\.jsonl$/,".islands.jsonl"),a])),this.sessionLocations.delete(l))})}catch(u){r.push(u)}},"unlinkSessionIfOld");try{await _e.mkdir(this.sessionsDir,{recursive:!0});let a=await _e.readdir(this.sessionsDir,{withFileTypes:!0});for(let c of a){let l=G.join(this.sessionsDir,c.name);if(c.isFile()){await s(l);continue}if(!c.isDirectory()||c.name.startsWith("."))continue;let u=[];try{u=await _e.readdir(l,{withFileTypes:!0})}catch{continue}for(let d of u){let p=G.join(l,d.name);if(d.isFile())await s(p);else if(d.isDirectory()&&d.name==="archived"){let m=[];try{m=await _e.readdir(p)}catch{continue}for(let h of m)await s(G.join(p,h))}}}}catch(a){r.push(a)}if(r.length>0)throw new AggregateError(r,"One or more Session retention cleanups failed.");return n}};import{jsx as Ld,jsxs as dl}from"react/jsx-runtime";import{useMemo as eU,useRef as tU,useState as yx}from"react";var nU=40;function rU(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(rU,"filterSessionPickerItems");function oU(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(oU,"buildSessionPickerPage");function iU(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(iU,"formatTimestamp");function sU({sessions:e,onSelect:t,onSelectionError:n,onCancel:r,pageSize:o=8}){let{exit:s}=co(),[a,c]=yx(""),[l,u]=yx(0),[d,p]=yx(!1),m=tU(!1),h=eU(()=>rU(e,a),[e,a]),g=oU(h,l,o),x=h[g.selectedIndex];return kc((T,S)=>{if(!m.current){if(S.escape||S.ctrl&&T==="c"){r(),s();return}if(S.return){let I=h[g.selectedIndex];I&&(m.current=!0,p(!0),(async()=>{await new Promise(v=>setTimeout(v,nU));try{await t(I)}catch(v){n(v)}finally{s()}})());return}if(S.upArrow)u(I=>Math.max(0,I-1));else if(S.downArrow)u(I=>Math.min(Math.max(0,h.length-1),I+1));else if(S.pageUp)u(I=>Math.max(0,I-o));else if(S.pageDown)u(I=>Math.min(Math.max(0,h.length-1),I+o));else if(S.home)u(0);else if(S.end)u(Math.max(0,h.length-1));else if(S.tab){let I=h[g.selectedIndex];I&&(c(I.title),u(0))}else S.backspace||S.delete?(c(I=>I.slice(0,-1)),u(0)):T&&!S.ctrl&&!S.meta&&!S.super&&(c(I=>I+T),u(0))}}),dl(A,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,children:[Ld(M,{bold:!0,color:"cyan",children:"Resume a session"}),dl(M,{children:["Search: ",Ld(M,{color:"yellow",children:a||"type to filter"})]}),Ld(M,{dimColor:!0,children:d?"Loading selected session...":"\u2191/\u2193 select \xB7 PgUp/PgDn page \xB7 Tab complete \xB7 Enter resume \xB7 Esc cancel"}),dl(A,{flexDirection:"column",marginTop:1,children:[g.items.length===0?Ld(M,{color:"yellow",children:"No matching sessions."}):null,g.items.map((T,S)=>{let v=g.pageStart+S===g.selectedIndex,$=T.title.trim()||"Untitled session",_=T.surface?` \xB7 ${T.surface}`:"";return dl(M,{color:v?"cyan":void 0,bold:v,children:[v?"\u276F":" "," ",$," \xB7 ",T.msgCount," msgs",_," \xB7 ",iU(T.createdAt)," \xB7 ",T.id.slice(0,8)]},T.id)})]}),dl(M,{dimColor:!0,children:[h.length," matches \xB7 Page ",g.pageIndex+1,"/",g.pageCount]}),dl(M,{dimColor:!0,children:["Selected ID: ",x?.id??"none"]})]})}i(sU,"SessionPicker");async function V_(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=!1,a,c=Es()==="ink",l=Math.max(4,Math.min(12,(process.stdout.rows??24)-8)),u=bc(Ld(sU,{sessions:e,pageSize:l,onSelect:i(async d=>{n=d,await t.prepareSelection?.(d),s=!0},"onSelect"),onSelectionError:i(d=>{o=!0,a=d},"onSelectionError"),onCancel:i(()=>{r=!0},"onCancel")}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1,patchConsole:!1,preserveRawModeOnUnmount:i(()=>c&&s,"preserveRawModeOnUnmount")});try{await u.waitUntilExit()}finally{u.unmount(),u.cleanup()}if(o)throw a;if(!n&&!r)throw new Error("Session picker exited unexpectedly before selection or cancellation.");return n}i(V_,"runSessionPicker");import _n from"chalk";var aU=100,cU=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,z_=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,X_=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,Y_=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function fl(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(fl,"readString");function Tn(e,t,n){n&&e.push({label:t,value:n})}i(Tn,"pushField");function lU(e){return e.replace(/\s+/g," ").trim()}i(lU,"normalizeWhitespace");function uU(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(uU,"truncateMiddle");function dU(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(dU,"maskSensitiveSegments");function K_(e){return uU(dU(lU(e)),aU)}i(K_,"summarizeCommand");function fU(e){return pu(e)?te("intent.read"):z_.test(e)?te("intent.delete"):X_.test(e)?te("intent.deps"):gi(e)||Y_.test(e)?te("intent.modify"):te("intent.execute")}i(fU,"classifyShellIntent");function pU(e){let t=[];return z_.test(e)?t.push(te("risk.destructive")):X_.test(e)?t.push(te("risk.deps")):gi(e)||Y_.test(e)?t.push(te("risk.modify")):pu(e)||t.push(te("risk.unknown")),cU.test(e)&&t.push(te("risk.network")),t}i(pU,"classifyShellRisks");function mU(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}i(mU,"readSignals");function hU(e){if(e){if(e.some(t=>t.kind==="protected_path"))return te("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return te("scope.outside")}}i(hU,"scopeFromSignals");function gU(e){if(e._outsideProject===!0)return te("scope.outside");if(e._alwaysConfirm===!0)return te("scope.protected")}i(gU,"scopeFromMarkers");function yU(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(te("risk.destructive")):r&&t.push(te("risk.modify")),e.some(o=>o.kind==="network")&&t.push(te("risk.network")),e.some(o=>o.kind==="package_install")&&t.push(te("risk.deps")),t}i(yU,"risksFromSignals");var wU={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function SU(e){return te(wU[e])}i(SU,"localizeFieldLabel");function pl(e,t){return{title:e,fields:t,details:t.map(n=>`${SU(n.label)}: ${n.value}`)}}i(pl,"buildDisplayFromFields");function Qh(e,t){if(e==="confirm"){let l=fl(t._message);if(l)return pl(l,[])}if(e==="exit_plan_mode"){let l=fl(t.plan),u="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:u,fields:[],details:l.split(`
|
|
106
|
-
`)}:pl(u,[])}let n=[],r=fl(t.path),o=fl(t.command),s=fl(t._reason)??fl(t.justification),a=mU(t._classifierSignals),c=hU(a)??gU(t);switch(Tn(n,"Reason",s),e){case"bash":case"shell_command":{if(o){Tn(n,"Intent",fU(o)),Tn(n,"Scope",c);let l=yU(a),u=l.length>0?l:pU(o);u.length>0&&Tn(n,"Risk",u.join("; ")),Tn(n,"Summary",K_(o))}else Tn(n,"Scope",c);return pl(e==="bash"?te("tool.bash.title"):te("tool.shell.title"),n)}case"write":return Tn(n,"Intent",te("intent.write_file")),Tn(n,"Target",r),Tn(n,"Scope",c),pl(te("tool.write.title"),n);case"edit":return Tn(n,"Intent",te("intent.edit_file")),Tn(n,"Target",r),Tn(n,"Scope",c),pl(te("tool.edit.title"),n);default:return Tn(n,"Intent",te("intent.use_tool",{tool:e})),Tn(n,"Target",r),Tn(n,"Scope",c),o&&Tn(n,"Summary",K_(o)),pl(te("tool.generic.title",{tool:e}),n)}}i(Qh,"buildToolConfirmationDisplay");function q_(e,t){let n=Qh(e,t);return n.details.length>0?`${n.title}
|
|
107
|
-
${n.details.join(`
|
|
108
|
-
`)}`:n.title}i(q_,"buildToolConfirmationPrompt");var J_=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Q_=["\x1B[36m","\x1B[35m","\x1B[34m"],Od=null,ml=!1;function Pd(){let e=0,t=0,n=!1,r="Thinking...",o=i(()=>{if(n)return;let c=Q_[t%Q_.length],l="\x1B[0m",u=J_[e%J_.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 Od=a,a}i(Pd,"startWaitingDots");function Zh(e=!0){let t=null,n=0,r=!1;return{onSessionStart:i(s=>{console.log(e?_n.cyan(`[KodaX] Provider: ${s.provider} | Session: ${s.sessionId}`):_n.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=Pd()),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(_n.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:i(s=>{t||(ml||(process.stdout.write(`
|
|
109
|
-
`),ml=!0),t=Pd()),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())&&(ml||(process.stdout.write(`
|
|
110
|
-
`),ml=!0,r=!1),t=Pd(),t.updateText(`Receiving ${s}... (${l} chars)`))},"onToolInputDelta"),onToolResult:i(s=>{t&&(t.stop(),t=null),console.log(_n.green(`[Result] ${s.content.slice(0,300)}${s.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:i(s=>{t&&(t.stop(),t=null),console.log(_n.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}
|
|
111
|
-
Suggested fix: ${s.suggestedFix}`:s.content;process.stdout.write(_n.yellow(`
|
|
112
|
-
${a}
|
|
113
|
-
`)+_n.dim(`${c}
|
|
114
|
-
`))},"onSidecarMessage"),onStreamEnd:i(()=>{Od&&!Od.isStopped()&&Od.stop(),Od=null,ml=!1,r&&(console.log(),r=!1),(!t||t.isStopped())&&(t=Pd(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:i((s,a)=>{t&&!t.isStopped()&&t.stop(),ml=!1,r=!1,console.log(_n.magenta(`
|
|
115
|
-
[Assistant]`)),t=Pd()},"onIterationStart"),onCompactStart:i(()=>{console.log(_n.dim(`
|
|
116
|
-
[KodaX] Compacting context...`))},"onCompactStart"),onCompact:i(s=>{console.log(_n.dim(`[KodaX] Compaction finished (${s} tokens).`))},"onCompact"),onCompactEnd:i(()=>{},"onCompactEnd"),onRetry:i((s,a,c)=>{console.log(_n.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(_n.yellow(`[KodaX] ${a} (${s.errorClass}, ${s.stage})`))},"onProviderRecovery"),onComplete:i(()=>{t&&(t.stop(),t=null),console.log(_n.green(`
|
|
117
|
-
[KodaX] Done!`))},"onComplete"),onError:i(s=>{t&&(t.stop(),t=null),console.log(_n.red(`
|
|
118
|
-
[Error] ${s.message}`))},"onError"),onScoutSuspiciousCompletion:i(s=>{console.log(_n.yellow(`
|
|
119
|
-
[Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:i(async(s,a)=>!0,"beforeToolExecute")}}i(Zh,"createCliEvents");function rn(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(rn,"activityMetaFields");function aa(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(aa,"liveMetaFields");function dt(e,t){e.write(`${JSON.stringify(t)}
|
|
120
|
-
`)}i(dt,"writeJsonLine");function xU(e,t){return{type:"error",name:e.name,message:e.message,stack:e.stack,...rn(t)}}i(xU,"serializeError");function Z_(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:i(r=>{dt(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId,...aa(r)})},"onSessionStart"),onTurnStarted:i(r=>{dt(t,{type:"turn.started",...r})},"onTurnStarted"),onTurnCompleted:i(r=>{dt(t,{type:"turn.completed",...r})},"onTurnCompleted"),onTurnFailed:i(r=>{dt(t,{type:"turn.failed",...r})},"onTurnFailed"),onIterationStart:i((r,o,s)=>{dt(t,{type:"iteration.start",iter:r,maxIter:o,...rn(s)})},"onIterationStart"),onIterationEnd:i(r=>{dt(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}:{},...aa(r)})},"onIterationEnd"),onTextDelta:i((r,o)=>{dt(t,{type:"text.delta",text:r,...rn(o)})},"onTextDelta"),onThinkingDelta:i((r,o)=>{dt(t,{type:"thinking.delta",text:r,...rn(o)})},"onThinkingDelta"),onThinkingEnd:i((r,o)=>{dt(t,{type:"thinking.end",thinking:r,...rn(o)})},"onThinkingEnd"),onToolUseStart:i((r,o)=>{dt(t,{type:"tool.start",id:r.id,name:r.name,input:r.input,...rn(o)})},"onToolUseStart"),onToolInputDelta:i((r,o,s)=>{dt(t,{type:"tool.input.delta",toolName:r,partialJson:o,toolId:s?.toolId,...rn(s)})},"onToolInputDelta"),onToolResult:i((r,o)=>{dt(t,{type:"tool.result",id:r.id,name:r.name,content:r.content,...rn(o)})},"onToolResult"),onStreamEnd:i(r=>{dt(t,{type:"stream.end",...rn(r)})},"onStreamEnd"),onCompactStart:i(r=>{dt(t,{type:"compact.start",...rn(r)})},"onCompactStart"),onCompact:i((r,o)=>{dt(t,{type:"compact.finish",estimatedTokens:r,...rn(o)})},"onCompact"),onCompactStats:i(r=>{dt(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter,...aa(r)})},"onCompactStats"),onCompactEnd:i(r=>{dt(t,{type:"compact.end",...rn(r)})},"onCompactEnd"),onRetry:i((r,o,s,a)=>{dt(t,{type:"retry",reason:r,attempt:o,maxAttempts:s,...rn(a)})},"onRetry"),onProviderRecovery:i((r,o)=>{dt(t,{type:"provider.recovery",stage:r.stage,reasonCode:r.errorClass,attempt:r.attempt,maxAttempts:r.maxAttempts,delayMs:r.delayMs,nextAt:Date.now()+r.delayMs,recoveryAction:r.recoveryAction,fallbackUsed:r.fallbackUsed,...rn(o)})},"onProviderRecovery"),onProviderRateLimit:i((r,o,s,a)=>{dt(t,{type:"provider.rate_limit",attempt:r,maxRetries:o,delayMs:s,...rn(a)})},"onProviderRateLimit"),onRepoIntelligenceTrace:i(r=>{dt(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace,...aa(r)})},"onRepoIntelligenceTrace"),onSidecarMessage:i(r=>{dt(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}:{},...aa(r)})},"onSidecarMessage"),onToolProgress:i((r,o)=>{dt(t,{type:"tool.progress",id:r.id,message:r.message,...rn(o)})},"onToolProgress"),onToolSandboxObservation:i((r,o)=>{dt(t,{type:"tool.sandbox",id:r.id,observation:r.observation,...rn(o)})},"onToolSandboxObservation"),onManagedTaskStatus:i(r=>{dt(t,{type:"managed_task.status",agentMode:r.agentMode,harnessProfile:r.harnessProfile,phase:r.phase,activeWorkerId:r.activeWorkerId,activeWorkerTitle:r.activeWorkerTitle,childFanoutClass:r.childFanoutClass,childFanoutCount:r.childFanoutCount,currentRound:r.currentRound,maxRounds:r.maxRounds,note:r.note,detailNote:r.detailNote,globalWorkBudget:r.globalWorkBudget,budgetUsage:r.budgetUsage,budgetApprovalRequired:r.budgetApprovalRequired,...aa(r)})},"onManagedTaskStatus"),onScoutSuspiciousCompletion:i(r=>{dt(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview,...aa(r)})},"onScoutSuspiciousCompletion"),onComplete:i(r=>{dt(t,{type:"complete",...rn(r)})},"onComplete"),onError:i((r,o)=>{dt(n,xU(r,o))},"onError")}}i(Z_,"createJsonEvents");import{jsx as Cn,jsxs as zn}from"react/jsx-runtime";import{useMemo as $d}from"react";function eA(e){switch(e){case K.Scheduled:return"\u25CB";case K.Validating:return"\u25D0";case K.AwaitingApproval:return"\u23F8";case K.Executing:return"\u25CF";case K.Success:return"\u2713";case K.Error:return"\u2717";case K.Cancelled:return"\u2298";default:return"?"}}i(eA,"getStatusIcon");function tA(e,t){switch(e){case K.Scheduled:case K.Validating:return t.colors.dim;case K.AwaitingApproval:return t.colors.accent;case K.Executing:return t.colors.primary;case K.Success:return t.colors.success??t.colors.primary;case K.Error:return t.colors.error;case K.Cancelled:return t.colors.dim;default:return t.colors.text}}i(tA,"getStatusColor");function TU(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(TU,"formatDuration");function CU(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}i(CU,"formatInputSummary");var nA=i(({status:e,theme:t})=>{let n=t??$d(()=>ue("dark"),[]),r=eA(e),o=tA(e,n);return Cn(M,{color:o,children:r})},"ToolStatusBadge"),wx=i(({progress:e,width:t=20,theme:n})=>{let r=n??$d(()=>ue("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 zn(A,{children:[Cn(M,{color:r.colors.primary,children:c}),Cn(M,{dimColor:!0,children:l}),zn(M,{children:[" ",o,"%"]})]})},"ToolProgressBar"),Sx=i(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??$d(()=>ue("dark"),[]),o=eA(e.status),s=tA(e.status,r),a=CU(e.input),c=TU(e.startTime,e.endTime);return t?zn(A,{children:[zn(M,{color:s,children:[o," "]}),Cn(M,{color:r.colors.text,children:e.name})]}):zn(A,{flexDirection:"column",marginLeft:2,children:[zn(A,{children:[zn(M,{color:s,children:[o," "]}),Cn(M,{color:r.colors.text,bold:!0,children:e.name}),a&&zn(M,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===K.Executing&&Cn(A,{marginLeft:2,children:Cn(wx,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===K.Executing&&Cn(A,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>Cn(M,{dimColor:!0,children:l},u))}),e.error&&Cn(A,{marginLeft:2,children:Cn(M,{color:r.colors.error,children:e.error})}),c&&e.status!==K.Executing&&Cn(A,{marginLeft:2,children:zn(M,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),rA=i(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let o=r??$d(()=>ue("dark"),[]);if(e.length===0)return null;let s=$d(()=>{let c={[K.Scheduled]:0,[K.Validating]:0,[K.AwaitingApproval]:0,[K.Executing]:0,[K.Success]:0,[K.Error]:0,[K.Cancelled]:0};for(let l of e)c[l.status]++;return c},[e]),a=n??"Tools";if(t){let c=s[K.Success],l=s[K.Error],u=s[K.Executing]+s[K.Scheduled]+s[K.Validating];return Cn(A,{flexDirection:"column",marginBottom:1,children:zn(A,{children:[Cn(M,{color:o.colors.accent,bold:!0,children:a}),zn(M,{dimColor:!0,children:[" ","(",e.length," tools",c>0&&`, ${c} succeeded`,l>0&&`, ${l} failed`,u>0&&`, ${u} running`,")"]})]})})}return zn(A,{flexDirection:"column",marginBottom:1,children:[zn(A,{children:[Cn(M,{color:o.colors.accent,bold:!0,children:a}),zn(M,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>Cn(Sx,{tool:c,theme:o},c.id))]})},"ToolGroup");import{jsxs as oA,jsx as IU}from"react/jsx-runtime";var iA=i(({pendingInputs:e})=>{let t=pE(e);if(!t)return null;let n=ue("dark");return oA(A,{children:[oA(M,{color:n.colors.hint,children:["\u23F3"," "]}),IU(M,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as sA from"child_process";var Nd;function vU(){if(process.platform!=="win32")return null;if(Nd!==void 0)return Nd;try{Nd=sA.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{Nd=null}return Nd}i(vU,"detectWindowsCodePage");function Dd(){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(Dd,"supportsTrueColor");function xx(){if(Dd())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}i(xx,"supports256Colors");function ho(){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:vU()==="65001":!0}i(ho,"supportsUnicode");function Tx(){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(Tx,"supportsEmoji");function Cx(){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(Cx,"getTerminalWidth");function Ix(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}i(Ix,"isScreenReader");function bU(){return process.stdout?.isTTY??!1}i(bU,"isTTY");function aA(){return{trueColor:Dd(),colors256:xx(),unicode:ho(),emoji:Tx(),tty:bU(),columns:Cx(),screenReader:Ix()}}i(aA,"detectTerminalCapabilities");var hl=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 cA(e){let t=new hl;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(cA,"withCapture");function lA(e){let t=new hl;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(lA,"withCaptureSync");import{jsx as me,jsxs as Xn,Fragment as cK}from"react/jsx-runtime";import ZP,{useState as Ye,useCallback as q,useRef as we,useEffect as Xe,useMemo as Se}from"react";import{jsx as go,Fragment as RU,jsxs as eg}from"react/jsx-runtime";var vx=" | ",uA=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=ue("dark"),p=r.trim(),m=a?.trim(),h=l?.trim(),g=u?.trim(),x=e?p?`Search /${p}`:"Search":"Transcript",T=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`,S=c>0?c===1?"1 new update":`${c} new updates`:void 0,I=e&&s>0?`${Math.max(0,o)}/${s}`:void 0,v=e&&m||h,$=!!(v||g);return eg(A,{flexDirection:"column",children:[eg(A,{paddingX:1,children:[go(M,{color:d.colors.dim,children:x}),go(M,{dimColor:!0,children:vx}),go(M,{color:d.colors.dim,children:T}),I||S?go(A,{flexGrow:1}):null,I?eg(RU,{children:[go(M,{dimColor:!0,children:I}),S?go(M,{dimColor:!0,children:vx}):null]}):null,S?go(M,{color:d.colors.accent,bold:!0,children:S}):null]}),$?eg(A,{paddingX:1,children:[v?go(M,{color:d.colors.dim,children:v}):null,v&&g?go(M,{dimColor:!0,children:vx}):null,g?go(M,{color:d.colors.accent,bold:!0,children:g}):null]}):null]})},"TranscriptModeFooter");import{jsx as kU,jsxs as EU}from"react/jsx-runtime";var dA=i(({banner:e,...t})=>EU(A,{flexDirection:"column",children:[e,kU(Ni,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as MU,jsxs as _U}from"react/jsx-runtime";var fA=i(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...o})=>_U(A,{flexDirection:"column",children:[e,MU(th,{...o,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as AU,jsx as LU}from"react/jsx-runtime";var pA=i(({text:e,tone:t="success"})=>{let n=e?.trim();if(!n)return null;let r=ue("dark"),o=t==="warning"?r.colors.warning:r.colors.accent,s=t==="warning"?"!":"\u2713";return LU(A,{paddingX:1,backgroundColor:r.colors.inputBackground,children:AU(M,{color:o,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as zi,Fragment as PU,jsxs as bx}from"react/jsx-runtime";var OU=" \u23BF ";function $U(e){let t=ue("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;case"red":return t.colors.error;default:return t.colors.dim}}i($U,"resolveSymbolColor");var NU=i(({row:e})=>{let t=$U(e.symbolColor),n=e.kind!=="item";return bx(A,{flexDirection:"row",children:[zi(M,{color:t,bold:e.isActive,children:e.symbol}),zi(M,{children:" "}),zi(M,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?bx(PU,{children:[zi(M,{children:" "}),zi(M,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),mA=i(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=ue("dark").colors.dim;return bx(A,{flexDirection:"row",children:[zi(M,{color:t,children:OU}),zi(A,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>zi(NU,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");import{jsx as Bd,jsxs as DU}from"react/jsx-runtime";var hA=Sb;function BU(e){let t=ue("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;case"red":return t.colors.error;default:return t.colors.dim}}i(BU,"resolveSymbolColor");var FU=i(({row:e})=>{let t=BU(e.symbolColor);return DU(A,{flexDirection:"row",children:[Bd(A,{width:hA,flexShrink:0,children:Bd(M,{color:t,bold:e.isActive,wrap:"truncate",children:xb(e.symbol,hA)})}),Bd(M,{color:e.kind==="hint"?ue("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"WorkflowRunRow");function gA(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}i(gA,"measureWorkflowRunSurfaceRows");var yA=i(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:Bd(A,{flexDirection:"column",flexGrow:1,children:e.rows.map((t,n)=>Bd(FU,{row:t},`${t.kind}-${t.id??n}`))}),"WorkflowRunSurface");var wA=6;var HU=1;function SA(e){return te("todo.progress",{completed:e.completedCount,total:e.totalCount})}i(SA,"formatTodoPlanProgressText");function xA(e){if(!e.shouldRender||e.rows.length===0)return[];let t=[te("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(xA,"formatTodoPlanViewModelForTranscript");var TA="\u2610",WU="\u25CF",CA="\u2713",jU="\u2717",UU="\u2298",GU="\u2612";function VU(e){switch(e){case"in_progress":return{symbol:WU,color:"cyan"};case"completed":return{symbol:CA,color:"green"};case"failed":return{symbol:jU,color:"red"};case"skipped":return{symbol:UU,color:"gray"};case"cancelled":return{symbol:GU,color:"gray"};default:return{symbol:TA,color:"dim"}}}i(VU,"symbolForStatus");function KU(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(KU,"pickAnchorIndex");function zU(e){let{symbol:t,color:n}=VU(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(zU,"buildItemRow");function XU(e){return{kind:"summary_done",symbol:CA,symbolColor:"green",text:te("todo.summary.done",{count:e}),isActive:!1,summaryCount:e}}i(XU,"buildDoneSummary");function Rx(e){return{kind:"summary_pending",symbol:TA,symbolColor:"dim",text:te("todo.summary.more",{count:e}),isActive:!1,summaryCount:e}}i(Rx,"buildPendingSummary");function YU(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}i(YU,"pickFailedToPromote");function qU(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(qU,"decideWindow");function IA(e,t){let n=e.length,r=e.reduce((h,g)=>g.status==="completed"?h+1:h,0),o=i((h,g)=>({shouldRender:g,rows:h,completedCount:r,totalCount:n}),"baseVm");if(n<HU)return o([],!1);t.now,t.lastAllCompletedAt;let s=KU(e),a=qU(e,s),c=new Set(a.visibleIdx),l=YU(e,c),u=[...a.visibleIdx],d=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let h=-1;for(let g=u.length-1;g>=0;g--){let x=u[g];if(x!==s&&e[x].status==="pending"){h=g;break}}if(h>=0){let g=u[h];u[h]=l,p+=1,u.sort((S,I)=>S-I);let x=u[0],T=0;for(let S=0;S<x;S++)e[S].status==="completed"&&T++;d=T}}let m=[];d>0&&m.push(XU(d));for(let h of u)m.push(zU(e[h]));if(p>0&&m.push(Rx(p)),m.length>wA)for(;m.length>wA;){let h=!1;for(let g=m.length-1;g>=0;g--){let x=m[g];if(x.kind==="item"&&!x.isActive){m.splice(g,1);let T=m[m.length-1];if(T&&T.kind==="summary_pending"){let S=(T.summaryCount??0)+1;m[m.length-1]=Rx(S)}else m.push(Rx(1));h=!0;break}}if(!h)break}return o(m,!0)}i(IA,"buildTodoPlanViewModel");function vA(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(vA,"buildFooterHeaderViewModel");function tg(e,t,n,r){if(r?.contextKind==="child")return null;let o=n?.preCompactionMessages?qe([...n.preCompactionMessages],e):e;return n?.anchor?sp(o,t,n.anchor,n.postCompactAttachments??[]):qe(t,o)}i(tg,"prepareRootCompactionLineage");function bA(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(bA,"withSessionHistoryReadBarrier");function RA(){let e=Promise.resolve();return t=>{let n=e.then(t);return e=n.then(()=>{},()=>{}),n}}i(RA,"createConfirmationDialogQueue");import{existsSync as JU}from"node:fs";import kx from"node:path";function rg(e){let t=new Map,n=QU(e),r=n!==void 0&&JU(n)?n:void 0,o=gv({userConfigDir:e.userConfigDir??Lo(),...e.projectRoot===void 0?{}:{projectRoot:e.projectRoot},trustProjectPolicy:n!==void 0,adminRules:e.execPolicy?.adminRules}),s={kind:"tool",name:"auto-mode",async beforeTool(d,p){if(d.name!=="bash")return e.getAutoGuardrail().beforeTool?.(d,p)??{action:"block",reason:"Auto reviewer has no beforeTool hook."};for(t.set(d.id,{call:d,context:p});t.size>64;){let m=t.keys().next().value;if(m===void 0)break;t.delete(m)}return{action:"allow"}}},a={...e.shellSandbox?.processTreeContainment===void 0?{}:{processTreeContainment:e.shellSandbox.processTreeContainment},async prepare(d){if(e.shellSandbox===void 0)throw new Error("Standalone REPL has no OS sandbox provider.");let p=await e.shellSandbox.prepare({...d,...r===void 0?{}:{trustedProjectExecPolicyPath:r}});return p===void 0?void 0:tG(p,d.toolCallId,d.toolInput,t)}},c=i(()=>{let d=e.getPermissionMode();return d==="auto-in-project"?"auto":d},"resolveShellPermissionMode"),l=i(async d=>{let p=d.permissionMode??(d.reason==="direct-host"?"full-access":c()),m=await o,h=m.errors[0];if(h!==void 0)return hv(h,p);let g=yv(d.command,m.rules,{hostExecutable:d.executable,permissionMode:p});return g.decision==="allow"?!0:g.decision==="prompt"?d.reason==="direct-host"?Ny(g,p):e.requestUserPermission(d,"exec_policy_prompt"):g.decision==="forbidden"?Ny(g,p):d.reason==="direct-host"?!0:p==="accept-edits"?e.requestUserPermission(d,"mode_boundary"):p==="plan"?e.resolvePlanHostExecution?.(d)??"[Blocked] Plan mode cannot escalate this command to unsandboxed host execution.":eG(d,e.getAutoGuardrail(),t)},"authorizeShellHostExecution"),u=ZU(e.trustedTextMutationHost,n);return{autoGuardrail:s,shellSandbox:a,resolveShellPermissionMode:c,authorizeShellHostExecution:l,...u===void 0?{}:{trustedTextMutationHost:u}}}i(rg,"createStandaloneShellPermissionBoundary");function QU(e){let t=e.projectRoot;return t!==void 0&&e.execPolicy?.trustedProjectRoots?.some(n=>kA(n,t))?kx.join(t,".kodax","exec-policy.jsonc"):void 0}i(QU,"trustedProjectPolicyPath");function ZU(e,t){if(e===void 0||t===void 0)return e;let n=i(r=>{if(kA(r,t))throw new zI({code:"text_mutation_policy_denied",path:r,message:`Trusted project Exec Policy is immutable for this standalone Run: ${r}`})},"assertAllowed");return{async snapshot(r){n(r.path);let o=await e.snapshot(r);return n(o.canonicalPath),o},async commit(r){return n(r.path),e.commit(r)}}}i(ZU,"protectTrustedProjectPolicy");function kA(e,t){let n=kx.resolve(e),r=kx.resolve(t);return process.platform==="win32"?n.toLowerCase()===r.toLowerCase():n===r}i(kA,"sameHostPath");async function eG(e,t,n){let r=e.toolCallId,o=r===void 0?void 0:n.get(r);r!==void 0&&n.delete(r);let s=r===void 0?void 0:{id:r,name:"bash",input:{...e.toolInput}};if(o===void 0||s===void 0||!nG(o.call,s))return"[Denied] Auto[LLM] host review did not match the exact sandboxed call.";let a=await t.reviewHostBoundary(o.call,o.context);return a.action==="allow"?!0:`[Denied] ${"reason"in a?a.reason??"Auto[LLM] denied host execution.":"Auto[LLM] denied host execution."}`}i(eG,"reviewAutoHostBoundary");function tG(e,t,n,r){return{...e,async cleanup(o){try{return await e.cleanup(o)}finally{if(o?.execution==="started_or_unknown"&&t!==void 0){let s=r.get(t);s!==void 0&&EA(s.call.input,n)&&r.delete(t)}}}}}i(tG,"cleanupCompletedAutoReview");function nG(e,t){return e.id===t.id&&e.name===t.name&&EA(e.input,t.input)}i(nG,"sameToolCall");function EA(e,t){try{return ng(e)===ng(t)}catch{return!1}}i(EA,"sameToolInput");function ng(e,t=new Set){if(e===null)return"null";if(typeof e!="object"){if(!["string","number","boolean"].includes(typeof e)||typeof e=="number"&&!Number.isFinite(e))throw new Error("unsafe value");return JSON.stringify(e)}if(t.has(e))throw new Error("cyclic value");t.add(e);try{if(Array.isArray(e)){let o=Reflect.ownKeys(e);if(o.length!==e.length+1||o.some(s=>s!=="length"&&(typeof s!="string"||!/^\d+$/u.test(s))))throw new Error("unsafe array");return`[${e.map(s=>ng(s,t)).join(",")}]`}let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw new Error("non-plain object");let r=Reflect.ownKeys(e);if(r.some(o=>typeof o=="symbol"))throw new Error("symbol property");return`{${r.sort().map(o=>{let s=Object.getOwnPropertyDescriptor(e,o);if(s?.enumerable!==!0||!("value"in s))throw new Error("unsafe property");return`${JSON.stringify(o)}:${ng(s.value,t)}`}).join(",")}}`}finally{t.delete(e)}}i(ng,"stableJson");function rG(e){return Bv(e.provider,e.model,"off",{longRunning:!0})}i(rG,"evaluateSessionTransitionPolicy");function oG(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(oG,"formatSessionTransitionGuardMessage");function Xi(e,t,n){let r=rG(e);if(!r||r.status==="allow")return!0;let[o,...s]=oG(t,r);return n(r.status,o,s),r.status!=="block"}i(Xi,"enforceSessionTransitionGuard");function iG(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(iG,"summarizeEntry");function MA(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} ${iG(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,d)=>{MA(u,l,d===e.children.length-1,r)})}i(MA,"formatNode");function og(e){let t=[];return e.forEach((n,r)=>{MA(n,"",r===e.length-1,t)}),t}i(og,"formatSessionTree");function _A(e,t){return e!==null&&e.attempt===t.attempt&&e.maxAttempts===t.maxAttempts&&e.waitMs===t.delayMs}i(_A,"isDuplicateLegacyRateLimit");function AA(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(AA,"truncateToolPreview");function LA(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(LA,"truncateToolOutputPreview");function Ex(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}i(Ex,"stripToolRolePrefix");function Mx(e){return Ex(e).toLowerCase()}i(Mx,"normalizeToolNameForMatch");function _x(e){return e===`[${te("managed.completed")}]`||e===`[${te("managed.completed.blocked")}]`||e===`[${te("managed.completed.continuation")}]`}i(_x,"isCompletionTranscriptItem");function ig(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(ig,"formatManagedLiveActivityLabel");function Qo(e,t){return ig(`[Tools] ${Om(e)}`,t)??`[Tools] ${Om(e)}`}i(Qo,"formatManagedLiveToolLabel");function sg(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(sg,"areManagedLiveItemsEquivalent");function PA(e){return e==="Task completed"?te("managed.completed"):e==="Task needs continuation"?te("managed.completed.continuation"):e==="Task ended: blocked"?te("managed.completed.blocked"):e==="Task ended: needs_continuation"?te("managed.completed.continuation"):e.startsWith("Task ended:")?te("managed.completed.blocked"):e}i(PA,"localizeManagedCompletionSummary");function OA(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(OA,"mergeLiveThinkingContent");function gl(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(gl,"formatManagedTaskBreadcrumb");var $A=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function NA(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&&!$A)return r;let p=d?`[${PA(s)}]`:void 0,m=p??s,h=p??a;return r.push({item:{id:c,type:"event",timestamp:l,text:h,icon:o.kind==="warning"?"!":d?"\u2713":">",...m!==h?{compactText:m}:{}},persistToHistory:u}),r},[]);if(e.phase==="completed"&&!$A)return[];let t=gl(e),n=gl(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(NA,"buildManagedLiveEventDrafts");function sG(e,t,n){return e.role!=="evaluator"?!1:e.signal==="COMPLETE"?!t:n}i(sG,"shouldFilterSidecarEvidenceEntry");function DA(e,t){let n=e.managedTask;if(!n)return[];let r=t?.verifierLog??process.env.KODAX_VERIFIER_LOG==="1",o=t?.sidecarMessageDelivered===!0,s=i(p=>{if(!e.interrupted&&!n.verdict.signalReason?.includes("Orchestration cancelled"))return!1;let m=p.signalReason?.trim()??"",h=p.summary?.trim()??"",g=p.output?.trim()??"",x=m.includes("Orchestration cancelled"),T=h.includes("Orchestration cancelled"),S=!g||h==="No textual output produced.";return p.status!=="completed"&&(x||T||S)||(x||T)&&S},"isInterruptedCancellation"),a=new Map(n.roleAssignments.map((p,m)=>[p.id,m])),c=n.verdict.decidedByAssignmentId,l=Math.max(0,...n.evidence.entries.filter(p=>p.assignmentId===c).map(p=>p.round??1)),u=[...n.evidence.entries].sort((p,m)=>{let h=(p.round??1)-(m.round??1);return h!==0?h:(a.get(p.assignmentId)??0)-(a.get(m.assignmentId)??0)}).filter(p=>!s(p)).filter(p=>!sG(p,r,o)).filter(p=>e.interrupted||!(p.assignmentId===c&&(p.round??1)===l)).map(p=>{let m=p.output?.trim()??"",h=p.summary?.trim()??"",g=m?dc(m):"",x=h?dc(h):"",T=p.role==="scout"?x?`Scout completed: ${x}`:"Scout completed.":x;return{entry:p,text:x||g||T}}).filter(({text:p})=>!!p).map(({entry:p,text:m})=>{let h=p.role==="scout"?" Preflight":(p.round??1)>1?` Round ${p.round}`:"";return`[${p.role==="evaluator"?`\u26A1 Sidecar Verifier${h}`:`${p.title??p.assignmentId}${h}`}]
|
|
121
|
-
${m}`}),d=n.verdict.disposition==="complete"?te("managed.completed"):n.verdict.disposition==="needs_continuation"?te("managed.completed.continuation"):n.verdict.disposition==="blocked"?te("managed.completed.blocked"):void 0;return[...u,...d?[`[${d}]`]:[]]}i(DA,"buildManagedTaskTranscriptItems");function BA(e){let r=e.slice(0,400).match(new RegExp("\\*\\*([^*\\n]{1,80}?)\\*\\*"))?.[1]?.trim();return r?{header:r}:{}}i(BA,"extractBoldHeader");var Ax=[" \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 _t from"chalk";var ag=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 ")}},yo=i(()=>ag.getInstance(),"getShortcutsRegistry");import{useEffect as aG,useCallback as cG,useRef as lG}from"react";function Zo(e,t,n={}){let{context:r,isActive:o=!0}=n,s=yo(),a=lG(t);a.current=t,aG(()=>(s.setHandler(e,u=>a.current(u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=cG(u=>{if(!o)return!1;let p=s.getAllShortcuts().find(x=>x.definition.id===e);if(!p)return!1;let m=r??p.definition.context,h=m==="global"?"input":m,g=s.findMatchingShortcut(u,h);return g&&g.definition.id===e?a.current(u)===!0:!1},[s,e,o,r]),l=uG(e,s);ir(c,{isActive:o,priority:l})}i(Zo,"useShortcut");function uG(e,t){let r=t.getAllShortcuts().find(o=>o.definition.id===e);return r?r.definition.priority:0}i(uG,"getShortcutPriority");import dG,{createContext as fG,useContext as pG,useState as FA,useCallback as Lx}from"react";var HA=fG(null);function Px({children:e,initialContext:t="input"}){let[n,r]=FA(!1),[o,s]=FA(t);yo().registerAll(ic);let c=Lx(()=>{r(p=>!p)},[]),l=Lx(()=>{let m=yo().getAllShortcuts(),h={global:[],mode:[],navigation:[],editing:[]};for(let g of m){let x=g.definition.category;h[x]||(h[x]=[]),h[x].push(g)}return h},[]),u=Lx(()=>yo().getShortcutsByContext(o),[o]),d={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:o,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return dG.createElement(HA.Provider,{value:d},e)}i(Px,"ShortcutsProvider");function Ox(){let e=pG(HA);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}i(Ox,"useShortcutsContext");import mG from"chalk";var WA={off:0,minimal:1,low:2,medium:3,high:4,xhigh:5,max:6,auto:7};function hG(e,t){let n=e.indexOf(t);if(n!==-1)return n;let r=WA[t];if(r===void 0)return-1;let o=-1,s=-1;for(let a=0;a<e.length;a++){let c=WA[e[a]];c===void 0||c>r||c>s&&(s=c,o=a)}return o}i(hG,"nearestCycleIndex");function $x({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:m,onOpenTranscriptSearch:h,canOpenTranscriptSearch:g=!0,isInteractiveDialogActive:x=!1,onSetAgentMode:T,onSetPermissionMode:S,isInputEmpty:I,onSavePermissionMode:v}){let $=i(_=>_?.name?.toLowerCase()==="c"&&_.ctrl===!0,"isCtrlCInterrupt");return Zo("interrupt",_=>$(_)&&n?(r(),o(),s(),a(void 0),c(!1),console.log(mG.yellow(`
|
|
122
|
-
[Interrupted]`)),!0):!1,{isActive:n}),Zo("showHelp",()=>x?!1:I?(l(),!0):!1,{isActive:I}),Zo("toggleThinking",()=>{if(x)return!1;let _=Fv(e.provider,e.model);if(_.length===0)return!1;let N=e.permissionMode==="plan"&&!e.effortOverride&&e.planModeEffort!==void 0?e.planModeEffort:e.effortOverride?e.effort:void 0,k=hG(_,N===void 0||N==="auto"?"auto":N==="none"?"off":N),D=_[(k+1)%_.length]??_[0],U=D==="auto"?void 0:D==="off"?"none":D,j=D!=="auto",W=D!=="off",P=D==="off"?"off":"auto";return t(b=>({...b,effort:U,effortOverride:j,thinking:W,reasoningMode:P})),Ts({effort:U,thinking:W,reasoningMode:P}),p?.(P),d?.(W),u(!1),!0}),Zo("toggleTranscriptMode",()=>x?!1:(m?.(),u(!1),!0)),Zo("openTranscriptSearch",()=>x||!g?!1:(h?.(),u(!1),!0)),Zo("togglePermissionMode",()=>{if(x)return!1;let _=["plan","accept-edits","auto","full-access"],N=e.permissionMode==="auto-in-project"?"auto":e.permissionMode,k=(_.indexOf(N)+1)%_.length,D=_[k];return t(U=>({...U,permissionMode:D})),S?.(D),v?.(D),u(!1),!0}),Zo("toggleAgentMode",()=>{if(x)return!1;let _=cb(e.agentMode);return t(N=>({...N,agentMode:_})),Ts({agentMode:_}),T?.(_),u(!1),!0}),null}i($x,"GlobalShortcuts");import{appendFileSync as gG,mkdirSync as yG,writeFileSync as wG}from"node:fs";import{join as UA}from"node:path";import jA from"node:v8";var Bx=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),Fx=Bx>=1,Hx=Lo(),GA=UA(Hx,"memory-diag.log"),Nx=0,Dx=!1;function VA(){if(!Dx)try{yG(Hx,{recursive:!0}),Dx=!0}catch{Dx=!0}}i(VA,"ensureLogDir");function SG(e){VA();try{gG(GA,e+`
|
|
123
|
-
`)}catch{}}i(SG,"writeLog");function Ut(e){return`${(e/1024/1024).toFixed(2)}MB`}i(Ut,"formatMB");function xG(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}i(xG,"tryGC");function Ht(e){return e?e.length*2:0}i(Ht,"strBytes");function ca(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+=ca(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+=ca(o,t+1);return n}return 16}i(ca,"estimateJsonBytes");function KA(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+=KA(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+=ca(t.input));for(let[o,s]of Object.entries(t))r.has(o)||(n+=o.length*2+ca(s));return n}i(KA,"estimateBlockBytes");function Wx(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+=KA(n);return t}return 200}i(Wx,"estimateMessageBytes");function Fd(e){let t=128;switch(t+=Ht(e.id)+Ht(e.parentId??void 0)+Ht(e.timestamp),e.type){case"message":return t+Wx(e.message);case"compaction":return t+=Ht(e.summary),t+=Ht(e.firstKeptEntryId),t+=Ht(e.reason),t+=Ht(e.artifactLedgerId),e.details!==void 0&&(t+=ca(e.details)),e.memorySeed!==void 0&&(t+=ca(e.memorySeed)),t;case"branch_summary":return t+=Ht(e.summary),t+=Ht(e.fromId),e.details!==void 0&&(t+=ca(e.details)),t;case"label":return t+=Ht(e.targetId),t+=Ht(e.label),t;case"archive_marker":return t+=Ht(e.archiveBatchId),t+=Ht(e.summary),t+=8,t;case"rewind_marker":return t+=Ht(e.targetId),t+=Ht(e.fromId),t+=Ht(e.summary),t+=8,t;default:return t}}i(Fd,"estimateEntryBytes");function TG(e){let t={},n=[];for(let o=0;o<e.length;o++){let s=e[o],a=Wx(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(TG,"buildMessageBreakdown");function cg(){return Fx}i(cg,"memDiagEnabled");function lg(e,t){if(!Fx)return;e==="turn-start"&&Nx++;let n=process.memoryUsage(),r=new Date().toISOString(),o=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${Nx} phase=${e} @${r} \u2550\u2550\u2550`,` V8 heap: used=${Ut(n.heapUsed)} total=${Ut(n.heapTotal)} rss=${Ut(n.rss)} ext=${Ut(n.external)}`," \u2500\u2500 Data breakdown \u2500\u2500",` context.messages: ${t.messageCount} msgs, ${Ut(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: ${Ut(t.lineageNonMessageBytes)} (sidecar payloads)`,` lineage orphan messages: ${t.lineageOrphanMessageCount} msgs, ${Ut(t.lineageOrphanMessageBytes)} (in lineage but not in context.messages \u2014 branches/pruned)`,` UI history: ${t.historyItemCount} items, ${Ut(t.historyTextBytes)}`,` foreground turn: ${t.foregroundItemCount} items, ${Ut(t.foregroundTextBytes)}`,` streaming response: ${Ut(t.streamingResponseBytes)}`,` streaming thinking: ${Ut(t.streamingThinkingBytes)}`,` persisted UI history: ${t.persistedUiHistoryCount} items, ${Ut(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} ${Ut(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=jA.getHeapSpaceStatistics();for(let u of c)u.space_used_size>1024*1024&&s.push(` ${u.space_name.padEnd(25)} used=${Ut(u.space_used_size)} allocated=${Ut(u.space_size)}`);if(s.push(" \u2500\u2500 Summary \u2500\u2500"),s.push(` tracked data total: ${Ut(a)}`),s.push(` V8 heap used: ${Ut(n.heapUsed)}`),s.push(` unaccounted (overhead): ${Ut(n.heapUsed-a)}`),s.push(" (React/Ink tree, provider SDK buffers, module metadata,"),s.push(' tokenizer caches, source maps \u2014 see "Blind spots" note)'),xG()){let u=process.memoryUsage();s.push(` after forced GC: heap=${Ut(u.heapUsed)} (freed ${Ut(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(Bx>=2)try{let u=UA(Hx,`heap-turn${Nx}-${e}.heapsnapshot`);jA.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}SG(s.join(`
|
|
124
|
-
`))}i(lg,"memDiagSnapshot");function ug(e,t,n){let r=TG(e),o=new Set(e),s=0,a=0,c=0,l=0,u=0,d=0,p=0,m=0,h=0,g=t?.entries??[];for(let I of g)switch(I.type){case"message":h++,o.has(I.message)||(c++,a+=Wx(I.message));break;case"compaction":l++,s+=Fd(I);break;case"branch_summary":u++,s+=Fd(I);break;case"label":d++,s+=Fd(I);break;case"archive_marker":p++,s+=Fd(I);break;case"rewind_marker":m++,s+=Fd(I);break}let x=0;for(let I of n.historyItems)x+=Ht(I.text);let T=0;for(let I of n.foregroundItems)T+=Ht(I.text);let S=0;for(let I of n.persistedUiHistory)S+=Ht(I.text);return{messageCount:e.length,messageBytes:r.totalBytes,biggestMessages:r.biggest,lineageEntryCount:g.length,lineageMessageEntryCount:h,lineageCompactionCount:l,lineageBranchSummaryCount:u,lineageLabelCount:d,lineageArchiveMarkerCount:p,lineageRewindMarkerCount:m,lineageNonMessageBytes:s,lineageOrphanMessageBytes:a,lineageOrphanMessageCount:c,historyItemCount:n.historyItems.length,historyTextBytes:x,foregroundItemCount:n.foregroundItems.length,foregroundTextBytes:T,streamingResponseBytes:Ht(n.streamingResponse),streamingThinkingBytes:Ht(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:S}}i(ug,"buildMemDiagBreakdown");function zA(){if(Fx){VA();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${Bx} 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(`
|
|
125
|
-
`);wG(GA,t+`
|
|
126
|
-
`)}catch{}}}i(zA,"memDiagReset");import CG from"node:fs";import Ux from"node:path";var IG={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},vG=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function bG(e){return IG[Ux.extname(e).toLowerCase()]}i(bG,"resolveImageMediaType");var jx="[Image unavailable]";function RG(e){return""}i(RG,"buildImageAnchor");function yl(e,t){let n=[],r=[],o=new Set,s=new Map,a=new Set,c=[],l=0;for(let d of e.matchAll(vG)){let p=d.index??l;c.push(e.slice(l,p));let m=d[1]??d[2]??d[3];if(!m){c.push(d[0]),l=p+d[0].length;continue}let h=bG(m);if(!h){c.push(d[0]),l=p+d[0].length;continue}let g=Ux.resolve(t,m);try{if(!CG.statSync(g).isFile()){a.has(g)||(r.push(`[Image input skipped] ${m} is not a file.`),a.add(g)),c.push(jx),l=p+d[0].length;continue}}catch{a.has(g)||(r.push(`[Image input missing] ${m} was not found from ${t}.`),a.add(g)),c.push(jx),l=p+d[0].length;continue}if(!o.has(g)){o.add(g);let x=RG(n.length+1);s.set(g,x),n.push({kind:"image",path:g,mediaType:h,source:"user-inline",description:`Attached image ${Ux.basename(g)}`})}c.push(s.get(g)??jx),l=p+d[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:ev(u,n),inputArtifacts:n,warnings:r}}i(yl,"preparePromptInputArtifacts");function XA(e){let t=kG(e.stage),n=EG(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}i(XA,"createRepoIntelTraceHistoryItem");function kG(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(kG,"stageDisplayName");function EG(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(`${MG(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?_G(e.summary):t.join(" \xB7 ")}i(EG,"buildRepoIntelDetailLine");function MG(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(MG,"formatTokens");function _G(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}i(_G,"stripSummaryStagePrefix");function YA(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(YA,"buildManagedRunContext");var AG=["global","mode","navigation","editing"],LG={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},PG={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},OG={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 $G(e){let t=yo(),n=t.getAllShortcuts().find(o=>o.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let r=ic.find(o=>o.id===e);if(r?.defaultBindings?.length)return t.formatBindings(r.defaultBindings)}i($G,"resolveShortcutBindingLabel");function NG(e){return`${$G(e.id)??e.id} ${e.name}`}i(NG,"buildMenuItemLabel");function DG(e){return yo().getAllShortcuts().find(r=>r.definition.id===e)?.definition??ic.find(r=>r.id===e)}i(DG,"resolveShortcutDefinition");function dg(){return[...AG.map(t=>{let n=LG[t].map(r=>DG(r)).filter(r=>!!r).map(r=>({id:r.id,label:NG(r)}));return{id:t,title:PG[t],items:n}}).filter(t=>t.items.length>0),OG]}i(dg,"buildHelpMenuSections");var Gx=2,qA=1,JA=4;function bt(e,t){let n=Mn(e.length>0?e.split(`
|
|
127
|
-
`):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}i(bt,"wrapLineCount");function BG(e,t,n=">"){let r=n.length+1,o=Math.max(20,t-r),s=Mn(e.length>0?e.split(`
|
|
128
|
-
`):[""],o,0,0);return Math.max(1,s.visualLines.length)+2}i(BG,"calculateInputPromptRows");function QA(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:m,suggestionsReserved:h,suggestionsMode:g="inline",showHelp:x,statusBarText:T,confirmPrompt:S,confirmInstruction:I,uiRequest:v,dialogMode:$="inline",historySearch:_,maxVisibleSelectOptions:N=5,reviewHint:B,todoSurfaceRows:k=0,workflowSurfaceRows:D=0,childActivitySurfaceRows:U=0,activityBarVisible:j=!1}=e,W=Math.max(0,Math.floor(k)),P=Math.max(0,Math.floor(D)),b=Math.max(0,Math.floor(U)),fe=a?bt(a,Math.max(1,n-2)):0,C=c?bt(c,Math.max(1,n-2)):0,ne=j?1:C,se=l?bt(l,Math.max(1,n-2)):0,he=u?bt(u,Math.max(1,n-2)):0,Ee=d?bt(d,Math.max(1,n-2)):0,$e=p?bt(p,Math.max(1,n-2)):0,Q=m?bt(m,Math.max(1,n-2)):0,Y=BG(o,n,s),pe=h?8:0,ft=x?qA+JA+dg().reduce((Qe,pn)=>Qe+bt(pn.title,Math.max(1,n-Gx))+bt(pn.items.map(kt=>kt.label).join(" | "),Math.max(1,n-Gx)),0):0,Ue=bt(T,Math.max(1,n-2)),Ge=0;if(S&&I){let Qe=Math.max(1,n-4);Ge=3+bt(`[Confirm] ${S}`,Qe)+bt(I,Qe)}let Ve=0,pt=0;if(v){let Qe=Math.max(1,n-4);v.kind==="select"?(pt=Math.min(N,v.options.length),Ve=3+bt(`[Select] ${v.title}`,Qe)+v.options.slice(0,pt).reduce((pn,kt,qn)=>pn+bt(`${qn+1}. ${kt.label}${kt.description?` - ${kt.description}`:""}`,Qe),0)+(v.options.length>pt?2:0)+bt(`Choice: ${v.buffer||"(type a number)"}`,Qe)+1+(v.error?bt(v.error,Qe):0)):Ve=3+bt(`[Input] ${v.prompt}`,Qe)+(v.defaultValue!==void 0?bt(`Default: ${v.defaultValue}`,Qe):0)+bt(`Value: ${v.buffer||"(type your response)"}`,Qe)+1+(v.error?bt(v.error,Qe):0)}let Rt=0;if(_){let Qe=Math.max(1,n-4);Rt=3+bt(`Query: ${_.query||"(type to search)"}`,Qe)+(_.matchCount===0?bt("No matches yet",Qe):bt(`${Math.max(1,_.matchCount)} matches`,Qe)+bt(_.selectedExcerpt||"",Qe))+1}let de=B?bt(B,Math.max(1,n-2)):0,ke=fe+ne+P+W+b+se+he+Ee+Y+ft+$e+de+(g==="inline"?pe:0)+($==="inline"?Ge+Ve+Rt:0),Ae=(g==="overlay"?pe:0)+($==="overlay"?Ge+Ve+Rt:0),it=ke+Q+Ue,mt=Math.max(1,t-it);return{messageRows:mt,reservedBottomRows:it,headerRows:fe,activityRows:ne,pendingInputRows:se,stashNoticeRows:he,notificationRows:Ee,workStripRows:Q,inputRows:Y,suggestionsRows:pe,helpRows:ft,statusNoticeRows:$e,statusRows:Ue,confirmRows:Ge,uiRequestRows:Ve,historySearchRows:Rt,footerRows:ke,overlayRows:Ae,visibleSelectOptions:pt,reviewHintRows:de,todoSurfaceRows:W,workflowSurfaceRows:P,childActivitySurfaceRows:b,slots:[{name:"transcript",rows:mt},{name:"footer",rows:ke},{name:"overlay",rows:Ae},{name:"status",rows:Ue},{name:"task-bar",rows:Q}]}}i(QA,"calculateViewportBudget");function ZA(e,t={}){let n=Ms(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(ZA,"createTranscriptDisplayState");function eL(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(eL,"enterTranscriptMode");function tL(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(tL,"exitTranscriptMode");function nL(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}i(nL,"setTranscriptPendingLiveUpdates");function rL(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}i(rL,"setTranscriptScrollAnchor");function oL(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(oL,"jumpTranscriptToLatest");function iL(e,t){return{...e,stickyPromptVisible:t}}i(iL,"setTranscriptStickyPromptVisible");function wl(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}i(wl,"setTranscriptSelectedItem");function sL(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(sL,"openTranscriptSearch");function aL(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}i(aL,"closeTranscriptSearch");function cL(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}i(cL,"setTranscriptSearchMatchIndex");function lL(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}i(lL,"shouldWindowTranscript");function uL(e){return e.surface==="transcript"}i(uL,"shouldPauseLiveTranscript");function Vx(e){return e.supportsSelection}i(Vx,"ownsTranscriptSelectionPath");function fg(e,t,n){if(!(!Vx(e)||!n))return t.includes(n)?n:void 0}i(fg,"resolveTranscriptSelectedItemId");function dL(e){return e.supportsSelection&&e.supportsCopyOnSelect}i(dL,"supportsPassiveTranscriptCopyOnSelect");function fL(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(fL,"buildTranscriptBrowseHint");var pL="Slash commands cannot be queued mid-task. Press Esc twice or Ctrl+C to abort the current task, then run the command.",mL="slash-guard";function Kx(e){return e.trimStart().startsWith("/")}i(Kx,"isSlashCommandText");var FG=`
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
`;async function hL(e){let{initialPrompt:t,runRound:n,shiftPendingPrompt:r,peekPendingPromptDelivery:o,onRoundComplete:s,onBeforeQueuedRound:a,shouldContinue:c=i(()=>!0,"shouldContinue"),shouldDrainQueuedPrompts:l=i(()=>!0,"shouldDrainQueuedPrompts")}=e,u=t,d=await n(u);for(;;){if(await s?.(d),!c(d)||!l())return d;let p=[],m;for(;;){let h=o?.();if(p.length>0&&(m==="host"||h==="host"))break;let g=r();if(g===void 0)break;let x=typeof g=="string"?g.trim():"";x.length>0&&(p.push(x),m=h)}if(p.length===0)return d;u=p.length===1?p[0]:p.join(FG),await a?.(u),d=await n(u)}}i(hL,"runQueuedPromptSequence");function yL(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}i(yL,"hasTranscriptInputActivity");function HG(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}i(HG,"shouldHandleManagedTranscriptMouse");function gL(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}i(gL,"shouldHandleManagedTranscriptWheel");function wL(e){if(HG({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"?gL({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?gL({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(wL,"resolveTranscriptPointerAction");function SL(e){return e.isTranscriptMode&&e.hasTextSelection}i(SL,"shouldDeferInterruptToTranscriptSelectionCopy");function xL(e){return e.hasActiveWorkflow?e.ctrl&&e.keyName==="c"?!SL({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection}):e.keyName!=="escape"||e.isTranscriptMode||e.isAwaitingUserInteraction?!1:e.isDoubleEscape&&e.isInputEmpty&&e.pendingInputCount===0:!1}i(xL,"shouldStopWorkflowFromInterruptKey");function TL(e){return e.ctrl&&e.keyName==="c"?SL({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(TL,"resolveStreamingInterruptAction");function CL(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(CL,"resolveTranscriptKeyboardAction");function IL(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(IL,"executeTranscriptKeyboardAction");function Yi(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(Yi,"stripAnsi");function WG(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
|
|
133
|
-
`)}i(WG,"serializeToolGroup");function jG(e){switch(e.type){case"thinking":return null;case"user":return`user: ${Yi(e.text)}`;case"assistant":return`assistant: ${Yi(e.text)}`;case"system":return`system: ${Yi(e.text)}`;case"info":return`info: ${Yi(e.text)}`;case"error":return`error: ${Yi(e.text)}`;case"event":return`event: ${Yi(e.text)}`;case"hint":return`hint: ${Yi(e.text)}`;case"sidecar":return`sidecar: ${Yi(e.text)}`;case"tool_group":return WG(e);default:return e}}i(jG,"serializeOne");function UG(e){let t=[];for(let n of e){let r=jG(n);r!==null&&r!==""&&t.push(r)}return t.join(`
|
|
134
|
-
|
|
135
|
-
`)}i(UG,"serializeTranscriptForScrollback");function vL(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:o}=e,s=UG(t);r(),s.length>0&&n(`${s}
|
|
136
|
-
`),o()}i(vL,"dumpTranscriptToNativeScrollback");var Sl={committed:[],width:0,hasBanner:!1};function bL(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(bL,"planInlineScrollback");import{jsx as JL}from"react/jsx-runtime";import NV from"yoga-layout";import{LegacyRoot as DV}from"react-reconciler/constants.js";import gV from"react-reconciler";import{DefaultEventPriority as yV,NoEventPriority as jL}from"react-reconciler/constants.js";import*as qi from"scheduler";import BL from"yoga-layout";import{createContext as wV}from"react";import oV from"yoga-layout";import GG from"widest-line";var RL=new Map,VG=i(e=>{if(e.length===0)return{width:0,height:0};let t=RL.get(e);if(t)return t;let n=GG(e),r=e.split(`
|
|
137
|
-
`).length,o={width:n,height:r};return RL.set(e,o),o},"measureText"),zx=VG;import KG from"wrap-ansi";import zG from"cli-truncate";var kL={},XG=i((e,t,n)=>{let r=e+String(t)+String(n),o=kL[r];if(o)return o;let s=e;if(n==="wrap"&&(s=KG(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=zG(e,t,{position:a})}return kL[r]=s,s},"wrapText"),pg=XG;var YG=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),qG=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),JG=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),_L=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),QG=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),AL=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),EL=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!YG(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!qG(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!JG(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),ML=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"),ZG=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!_L(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!QG(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),eV=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"),tV=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"),Xx=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(AL(t))return!0;return!1},"hasAnsiControlCharacters"),xl=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"),LL=i(e=>{if(!Xx(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 xl(t,e,n,r);if(a==="["){let u=EL(e,r+2);if(u===void 0)return xl(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=eV(a);if(c!==void 0){let u=ML(e,r+2,c.allowBellTerminator);if(u===void 0)return xl(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=ZG(e,r+1);if(l===void 0){if(_L(a))return xl(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=EL(e,r+1);if(a===void 0)return xl(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=tV(o);if(s!==void 0){let a=ML(e,r+1,s.allowBellTerminator);if(a===void 0)return xl(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(AL(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 nV=/^[\d:;]*$/,rV=i(e=>{if(!Xx(e))return e;let t="";for(let n of LL(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&nV.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),PL=rV;var OL=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=OL(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return PL(t)},"squashTextNodes"),Hd=OL;var mg=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:oV.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(iV.bind(null,t)),t},"createNode"),hg=i((e,t)=>{t.parentNode&&Wd(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")&&gg(e)},"appendChildNode"),Yx=i((e,t,n)=>{t.parentNode&&Wd(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")&&gg(e)},"insertBeforeNode"),Wd=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")&&gg(e)},"removeChildNode"),qx=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),Jx=i((e,t)=>{e.style=t},"setStyle"),$L=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return jd(t,e),t},"createTextNode"),iV=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Hd(e),r=zx(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=pg(n,t,o);return zx(s)},"measureTextNode"),NL=i(e=>{if(e?.parentNode)return e.yogaNode??NL(e.parentNode)},"findClosestYogaNode"),gg=i(e=>{NL(e)?.markDirty()},"markNodeAsDirty"),jd=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,gg(e)},"setTextNodeValue");import De from"yoga-layout";var sV=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?De.POSITION_TYPE_ABSOLUTE:De.POSITION_TYPE_RELATIVE)},"applyPositionStyles"),aV=i((e,t)=>{"margin"in t&&e.setMargin(De.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(De.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(De.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(De.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(De.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(De.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(De.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),cV=i((e,t)=>{"padding"in t&&e.setPadding(De.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(De.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(De.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(De.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(De.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(De.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(De.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),lV=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(De.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(De.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(De.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(De.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(De.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(De.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(De.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(De.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(De.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(De.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(De.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(De.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(De.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(De.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(De.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(De.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(De.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(De.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(De.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(De.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(De.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),uV=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"),dV=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?De.DISPLAY_FLEX:De.DISPLAY_NONE)},"applyDisplayStyles"),fV=i((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(De.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(De.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(De.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(De.EDGE_RIGHT,n)}},"applyBorderStyles"),pV=i((e,t)=>{"gap"in t&&e.setGap(De.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(De.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(De.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),mV=i((e,t={})=>{sV(e,t),aV(e,t),cV(e,t),lV(e,t),uV(e,t),dV(e,t),fV(e,t),pV(e,t)},"styles"),Qx=mV;import hV from"node:process";var DL=i(()=>hV.env.DEV==="true","isDev");if(DL())try{await import("./devtools-XR5F2C6T.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
138
|
-
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
139
|
-
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
140
|
-
|
|
141
|
-
To install use this command:
|
|
142
|
-
|
|
143
|
-
$ npm install --save-dev react-devtools-core
|
|
144
|
-
`.trim()+`
|
|
145
|
-
`);else throw e}var FL=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"),HL=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),yg=jL,Zx,WL={name:void 0,version:void 0},Tl=gV({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=mg(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){Jx(s,c),s.yogaNode&&Qx(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){Zx=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}qx(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 $L(e)},resetTextContent(){},hideTextInstance(e){jd(e,"")},unhideTextInstance(e,t){jd(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(BL.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(BL.DISPLAY_FLEX)},appendInitialChild:hg,appendChild:hg,insertBefore:Yx,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:qi.unstable_scheduleCallback,cancelCallback:qi.unstable_cancelCallback,shouldYield:qi.unstable_shouldYield,now:qi.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:hg,insertInContainerBefore:Yx,removeChildFromContainer(e,t){Wd(e,t),HL(t.yogaNode)},commitUpdate(e,t,n,r){Zx&&e.internal_static&&(Zx.isStaticDirty=!0);let o=FL(n,r),s=FL(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){Jx(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}qx(e,a,c)}s&&e.yogaNode&&Qx(e.yogaNode,s)}},commitTextUpdate(e,t,n){jd(e,n)},removeChild(e,t){Wd(e,t),HL(t.yogaNode)},setCurrentUpdatePriority(e){yg=e},getCurrentUpdatePriority:i(()=>yg,"getCurrentUpdatePriority"),resolveUpdatePriority(){return yg!==jL?yg:yV},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:wV(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:WL.name,rendererVersion:WL.version});import kV from"widest-line";import EV from"indent-string";import Ji from"yoga-layout";import wg from"yoga-layout";var SV=i(e=>e.getComputedWidth()-e.getComputedPadding(wg.EDGE_LEFT)-e.getComputedPadding(wg.EDGE_RIGHT)-e.getComputedBorder(wg.EDGE_LEFT)-e.getComputedBorder(wg.EDGE_RIGHT),"getMaxWidth"),UL=SV;import vV from"cli-boxes";import Sg from"chalk";import ei from"chalk";var xV=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,TV=/^ansi256\(\s?(\d+)\s?\)$/,CV=i(e=>e in ei,"isNamedColor"),IV=i((e,t,n)=>{if(!t)return e;if(CV(t)){if(n==="foreground")return ei[t](e);let r=`bg${t[0].toUpperCase()+t.slice(1)}`;return ei[r](e)}if(t.startsWith("#"))return n==="foreground"?ei.hex(t)(e):ei.bgHex(t)(e);if(t.startsWith("ansi256")){let r=TV.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?ei.ansi256(o)(e):ei.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=xV.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?ei.rgb(o,s,a)(e):ei.bgRgb(o,s,a)(e)}return e},"colorize"),la=IV;var bV=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?vV[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,m=n.style.borderBottomDimColor??n.style.borderDimColor,h=n.style.borderLeftDimColor??n.style.borderDimColor,g=n.style.borderRightDimColor??n.style.borderDimColor,x=n.style.borderTop!==!1,T=n.style.borderBottom!==!1,S=n.style.borderLeft!==!1,I=n.style.borderRight!==!1,v=o-(S?1:0)-(I?1:0),$=x?la((S?a.topLeft:"")+a.top.repeat(v)+(I?a.topRight:""),c,"foreground"):void 0;x&&p&&($=Sg.dim($));let _=s;x&&(_-=1),T&&(_-=1);let N=(la(a.left,u,"foreground")+`
|
|
146
|
-
`).repeat(_);h&&(N=Sg.dim(N));let B=(la(a.right,d,"foreground")+`
|
|
147
|
-
`).repeat(_);g&&(B=Sg.dim(B));let k=T?la((S?a.bottomLeft:"")+a.bottom.repeat(v)+(I?a.bottomRight:""),l,"foreground"):void 0;T&&m&&(k=Sg.dim(k));let D=x?1:0;$&&r.write(e,t,$,{transformers:[]}),S&&r.write(e,t+D,N,{transformers:[]}),I&&r.write(e+o-1,t+D,B,{transformers:[]}),k&&r.write(e,t+s-1,k,{transformers:[]})}},"renderBorder"),GL=bV;var RV=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 m=la(" ".repeat(d),n.style.backgroundColor,"background");for(let h=0;h<p;h++)r.write(e+a,t+l+h,m,{transformers:[]})},"renderBackground"),VL=RV;var MV=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
|
|
148
|
-
`.repeat(o)+EV(t,r)}return t},"applyPaddingToText"),xg=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===Ji.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=Hd(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
|
|
149
|
-
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>xg(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"),eT=null,tT=null;function KL(){eT=null,tT=null}i(KL,"resetScrollHint");function zL(){return eT}i(zL,"getScrollHint");function XL(){return tT}i(XL,"getScrollRepaint");var YL=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()===Ji.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 h=Hd(e);if(h.length>0){let g=kV(h),x=UL(c);if(g>x){let T=e.style.textWrap??"wrap";h=pg(h,x,T)}h=MV(e,h),t.write(l,u,h,{transformers:d})}return}let p=!1,m=0;if(e.nodeName==="ink-box"){VL(l,u,e,t),GL(l,u,e,t);let h=e.style.overflowX??e.style.overflow,g=e.style.overflowY??e.style.overflow,x=h==="hidden"||h==="scroll",T=g==="hidden"||g==="scroll";if(g==="scroll"){let S=c.getComputedBorder(Ji.EDGE_TOP),I=c.getComputedBorder(Ji.EDGE_BOTTOM),v=Math.max(0,c.getComputedHeight()-S-I),$=e.attributes?.virtualScrollWindowed===!0,_=e.childNodes[0],N=Math.max(0,Math.floor($?e.attributes?.scrollHeight??0:_?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),B=typeof e.scrollHeight=="number"?e.scrollHeight:N,k=tm({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:N,viewportHeight:v,previousScrollHeight:B,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:$,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+S});e.scrollHeight=k.scrollHeight,e.scrollViewportHeight=v,e.scrollViewportTop=k.viewportTop,e.appliedScrollTop=k.appliedScrollTop,k.scrollHint&&(eT=k.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&(tT={top:k.scrollHint.top,bottom:k.scrollHint.bottom})),e.attributes&&e.attributes.pendingScrollDelta&&(e.attributes.pendingScrollDelta=0),e.scrollTop=k.scrollTop,m=k.scrollOffsetY}if(x||T){let S=x?l+c.getComputedBorder(Ji.EDGE_LEFT):void 0,I=x?l+c.getComputedWidth()-c.getComputedBorder(Ji.EDGE_RIGHT):void 0,v=T?u+c.getComputedBorder(Ji.EDGE_TOP):void 0,$=T?u+c.getComputedHeight()-c.getComputedBorder(Ji.EDGE_BOTTOM):void 0;t.clip({x1:S,x2:I,y1:v,y2:$}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let h of e.childNodes)YL(h,t,{offsetX:l,offsetY:u-m,transformers:d,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),nT=YL;import _V from"slice-ansi";import AV from"string-width";import{styledCharsFromTokens as LV,styledCharsToString as PV,tokenize as OV}from"@alcalzone/ansi-tokenize";var rT=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=LV(OV(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=AV(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(`
|
|
150
|
-
`))r=Math.max(r,this.getStringWidth(o));n=r,this.blockWidths.set(t,n)}return n}},Cl=class{static{i(this,"Output")}width;height;operations=[];caches=new rT;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(`
|
|
151
|
-
`),u=n.at(-1);if(u){let p=typeof u?.x1=="number"&&typeof u?.x2=="number",m=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let h=this.caches.getWidestLine(o);if(a+h<u.x1||a>u.x2)continue}if(m){let h=l.length;if(c+h<u.y1||c>u.y2)continue}if(p&&(l=l.map(h=>{let g=a<u.x1?u.x1-a:0,x=this.caches.getStringWidth(h),T=a+x>u.x2?u.x2-a:x;return _V(h,g,T)}),a<u.x1&&(a=u.x1)),m){let h=c<u.y1?u.y1-c:0,g=l.length,x=c+g>u.y2?u.y2-c:g;l=l.slice(h,x),c<u.y1&&(c=u.y1)}}let d=0;for(let[p,m]of l.entries()){let h=t[c+d];if(!h)continue;for(let T of s)m=T(m,p);let g=this.caches.getStyledChars(m),x=a;for(let T of g){h[x]=T;let S=Math.max(1,this.caches.getStringWidth(T.value));if(S>1)for(let I=1;I<S;I++)h[x+I]={type:"char",value:"",fullWidth:!1,styles:T.styles};x+=S}d++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let o=r.filter(s=>s!==void 0);return PV(o).trimEnd()}).join(`
|
|
152
|
-
`),height:t.length}}};var $V=i((e,t,n)=>{if(e.yogaNode){if(t){let p=xg(e,{skipStaticElements:!0}),m=p===""?0:p.split(`
|
|
153
|
-
`).length,h="";return e.staticNode&&(h=xg(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:m,staticOutput:h?`${h}
|
|
154
|
-
`:"",frame:void 0}}let r=new Cl({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});KL(),nT(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new Cl({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),nT(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=om(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:zL(),scrollRepaint:XL()};return{output:s,outputHeight:a,staticOutput:o?`${o.get().output}
|
|
155
|
-
`:"",frame:d}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),oT=$V;var BV=i((e,t)=>{let n=t?.columns??80,r=mg("ink-root"),o="";r.onComputeLayout=()=>{r.yogaNode.setWidth(n),r.yogaNode.calculateLayout(void 0,void 0,NV.DIRECTION_LTR)},r.onImmediateRender=()=>{let{staticOutput:l}=oT(r,!1);l&&l!==`
|
|
156
|
-
`&&(o+=l)};let s,a=Tl.createContainer(r,DV,null,!1,null,"render-to-string",l=>{s??=l},()=>{},()=>{},()=>{}),c=!1;try{Tl.updateContainerSync(e,a,null,()=>{}),Tl.flushSyncWork();let{output:l}=oT(r,!1);if(Tl.updateContainerSync(null,a,null,()=>{}),Tl.flushSyncWork(),c=!0,r.yogaNode.free(),s!==void 0)throw s instanceof Error?s:new Error(String(s));let u=o.endsWith(`
|
|
157
|
-
`)?o.slice(0,-1):o;return u&&l?u+`
|
|
158
|
-
`+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),qL=BV;var FV="\x1B[0m";function QL(e,t){if(e.length===0)return"";let n=JL(A,{flexDirection:"column",children:e.map(s=>JL(nS,{section:s,theme:t.theme,animateSpinners:!1},s.key))}),r=qL(n,{columns:t.width});return(r.endsWith(`
|
|
159
|
-
`)?r.slice(0,-1):r)+FV+`
|
|
160
|
-
`}i(QL,"renderFinalizedSectionsToScrollbackText");function ZL(e){return e.enabled&&!e.useRendererViewportShell&&!e.isTranscriptMode&&e.hasCommitHandle}i(ZL,"isInlineLedgerActive");function eP(e){if(!e.active)return{kind:"reset"};if(!e.hasCommitHandle)return{kind:"skip"};let t=!e.wasActive,n=t?Sl:e.prior,{plan:r,nextState:o}=bL({bannerSection:e.bannerSection??null,finalizedSections:e.finalizedSections,width:e.width},e.identify??Rk,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(eP,"computeInlineLedgerStep");function tP(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:Sl,wasActive:!1,owns:!0}:{state:Sl,wasActive:!1,owns:n}}i(tP,"resolveInlineLedgerState");function nP(e,t){return t?{...e,staticSections:[]}:e}i(nP,"gateInlinePromptModel");function HV(e){switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[t.name];return typeof t.output=="string"&&n.push(Yt(t.output)),t.error&&n.push(Yt(t.error)),n.join(`
|
|
161
|
-
`)}).join(`
|
|
162
|
-
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return Yt(e.text);default:return""}}i(HV,"buildSearchText");function WV(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(WV,"buildExcerpt");function rP(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:HV(t)}))}i(rP,"createTranscriptSearchIndex");function oP(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:WV(o,t.trim())}]:[]}):[]}i(oP,"searchTranscriptIndex");function iT(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(iT,"stepTranscriptSearchMatch");function iP(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(iP,"buildTranscriptSearchSummary");function sP(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(sP,"resolveTranscriptSearchMatchIndex");function aP(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:jV(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(aP,"buildTranscriptSelectionSummary");function jV(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}i(jV,"summarizeToolGroup");function cP(e){return e.map(t=>t.id)}i(cP,"getSelectableTranscriptItemIds");function lP(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(lP,"moveTranscriptSelection");function sT(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: ${Yt(t.output)}`),t.error&&n.push(`Error: ${Yt(t.error)}`),n.join(`
|
|
163
|
-
`)}).join(`
|
|
164
|
-
|
|
165
|
-
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return Yt(e.text);default:return}}i(sT,"buildTranscriptCopyText");function uP(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(`
|
|
166
|
-
`)}).filter(n=>!!n);return t.length>0?t.join(`
|
|
167
|
-
|
|
168
|
-
`):void 0}i(uP,"buildTranscriptToolInputCopyText");import{useCallback as Ud,useRef as UV,useState as dP}from"react";function fP(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:o,isTranscriptMode:s,historySearchQuery:a}=e,c=fL(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(fP,"buildTranscriptChromeModel");function pP(e){return Math.max(1,e-2)}i(pP,"resolveTranscriptPageSize");function mP(e){return Math.max(3,Math.floor(e/4))}i(mP,"resolveTranscriptWheelStep");function GV(e,t){return Math.max(0,e+t)}i(GV,"incrementTranscriptScrollOffset");function hP(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}i(hP,"clampTranscriptScrollOffset");function gP(){let e=UV(null),[t,n]=dP(0),[r,o]=dP(!0),s=Ud(d=>{n(Math.max(0,d))},[]),a=Ud(d=>{o(d)},[]),c=Ud(d=>{if(e.current){e.current.scrollTo(d);return}n(Math.max(0,d)),o(d===0)},[]),l=Ud(d=>{if(e.current){e.current.scrollBy(d);return}n(p=>GV(p,d)),o(!1)},[]),u=Ud(()=>{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(gP,"useTranscriptViewportScrollController");function yP(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??Dc(t,r,o,u,l)).find(g=>g.key===a);if(!p||p.rows.length===0)return!1;let m=new Set(c.map(g=>g.key)),h=Math.max(0,s??0);return h>0&&p.rows.length<=h?p.rows.every(g=>m.has(g.key)):m.has(p.rows[0]?.key??"")}i(yP,"isTranscriptItemVisible");function wP(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:o,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,u=n?.sections??Dc(t,r,o,l,c);return Ok(u,a,s)}i(wP,"resolveTranscriptSelectionOffset");function SP(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??Dc(t,o,s,u,l),m=n?.rows??Ws(p),g=Zw(m,a,c)[0]?.key,x=g?p.find(T=>T.rows.some(S=>S.key===g)):void 0;if(x?.key)return x.key}return t[t.length-1]?.id}i(SP,"resolveTranscriptSearchAnchorItemId");function xP(e){let t=Fu(e.stickyHeader),n=wm(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}i(xP,"resolveTranscriptOwnedWindowGeometry");function VV(e){return e.text===" "?"":Yt(e.text)}i(VV,"normalizeTranscriptRowText");function aT(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}i(aT,"buildTranscriptRowIndexByKey");function KV(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}i(KV,"resolveTranscriptTextStartColumn");function TP(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??aT(t.allRows??e),o=e.map((s,a)=>{let c=VV(s),l=KV(s,t),u=$i(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+Bk(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(TP,"buildTranscriptScreenBuffer");function zV(e,t){let n=Math.max(1,Math.floor(t));return Fk(e.text,n-e.textStartColumn)}i(zV,"clampTextColumn");function cT(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:zV(e,t)}}}i(cT,"toHit");function lT(e,t,n){let r=e.rows.find(o=>o.screenRow===t);return r?cT(r,n):void 0}i(lT,"hitTestTranscriptScreen");function uT(e,t,n){if(e.rows.length!==0)return t<=e.topRow?cT(e.rows[0],n):t>=e.bottomRow?cT(e.rows[e.rows.length-1],n):lT(e,t,n)}i(uT,"clampTranscriptScreenHit");function CP(e){return e.text===" "?"":Yt(e.text)}i(CP,"normalizeTranscriptRowText");function IP(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(IP,"comparePoints");function vP(e,t,n,r={}){if(e.length===0)return;let[o,s]=IP(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=IP(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:$i(CP(u))}:s,m=new Map,h=[],g=0;for(let x=d.modelRowIndex;x<=p.modelRowIndex;x+=1){let T=e[x];if(!T)continue;let S=CP(T),I=$i(S),v=x===d.modelRowIndex?d.column:0,$=x===p.modelRowIndex?p.column:I,_=Math.max(0,Math.min(v,I)),N=Math.max(_,Math.min($,I)),B=Bc(S,_,N);N>_&&(m.set(T.key,{start:_,end:N}),g+=N-_),h.push(B)}if(m.size!==0)return{anchor:t,focus:n,rowRanges:m,rowCount:h.length,charCount:g,text:h.join(`
|
|
169
|
-
`)}}i(vP,"buildTranscriptScreenSelection");function bP(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(bP,"buildTranscriptScreenSelectionSummary");function RP(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}i(RP,"resolveTranscriptDragEdgeScrollDirection");var XV="Other...";function Tg(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}i(Tg,"toSelectOptions");function dT(e,t){return t.kind==="input"||t.allowCustomInput===!1||e.some(n=>n.value===Bn)?e:[...e,{label:t.customInputLabel??XV,value:Bn}]}i(dT,"appendCustomInputOption");function fT(e){return e.question}i(fT,"getAskUserDialogTitle");function kP(e){return!!e.activity}i(kP,"shouldRenderPromptActivityInFooter");function YV(e){switch(e){case"confirm":return te("waiting.confirm");case"select":return te("waiting.select");case"input":return te("waiting.input")}}i(YV,"formatPromptWaitingText");function EP(e){return e.waitingReason==="confirm"?te("placeholder.confirm"):e.waitingReason==="select"?te("placeholder.select"):e.waitingReason==="input"?te("placeholder.input"):e.isLoading?e.canQueueFollowUps?te("placeholder.queue"):te("placeholder.busy"):te("placeholder.idle")}i(EP,"buildPromptPlaceholderText");function MP(e){return e.isTranscriptMode?void 0:e.waitingReason?{kind:"waiting",text:YV(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:rS({activeToolCount:e.streamingState.activeToolCalls.filter(n=>n.status===K.Executing).length,currentTool:e.streamingState.currentTool,isThinkingActive:e.streamingState.isThinking,thinkingCharCount:e.streamingState.thinkingCharCount,isCompacting:e.streamingState.isCompacting,toolInputCharCount:e.streamingState.toolInputCharCount,toolInputContent:e.streamingState.toolInputContent,managedPhase:e.managedState?.phase,managedHarnessProfile:e.managedState?.harnessProfile,managedWorkerTitle:e.managedState?.workerTitle})??"Thinking",showSpinner:!0}:void 0}i(MP,"buildPromptActivityViewModel");function _P(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(_P,"resolveEffectiveCompactionInfo");function AP(e){return{sessionId:e.sessionId,permissionMode:e.permissionMode,agentMode:e.agentMode,provider:e.provider,model:e.model,currentTool:e.streamingState.currentTool,activeToolCount:e.streamingState.activeToolCalls.filter(t=>t.status===K.Executing).length,thinking:e.thinking,reasoningMode:e.reasoningMode,effort:e.effort,reasoningEffortLabel:e.reasoningEffortLabel,reasoningCapability:e.reasoningCapability,isThinkingActive:e.streamingState.isThinking,thinkingCharCount:e.streamingState.thinkingCharCount,toolInputCharCount:e.isTranscriptMode?e.streamingState.toolInputCharCount:0,toolInputContent:e.isTranscriptMode?e.streamingState.toolInputContent:"",currentIteration:e.streamingState.currentIteration,maxIter:e.maxIter,contextUsage:e.contextUsage,learning:e.learning,isCompacting:e.streamingState.isCompacting,showBusyStatus:!1,managedPhase:e.isLoading?e.managedState?.phase:void 0,managedHarnessProfile:e.isLoading?e.managedState?.harnessProfile:void 0,managedWorkerTitle:e.isLoading?e.managedState?.workerTitle:void 0,managedRound:e.isLoading?e.managedState?.round:void 0,managedMaxRounds:e.isLoading?e.managedState?.maxRounds:void 0,managedGlobalWorkBudget:e.isLoading?e.managedState?.globalWorkBudget:void 0,managedBudgetUsage:e.isLoading?e.managedState?.budgetUsage:void 0,managedBudgetApprovalRequired:e.isLoading?e.managedState?.budgetApprovalRequired:void 0,managedIdleWaiting:e.isLoading?e.managedState?.idleWaiting:void 0,managedIdleWaitingPendingCount:e.isLoading?e.managedState?.idleWaitingPendingCount:void 0}}i(AP,"buildSurfaceStatusBarProps");function LP(e){let t=Vx(e.state),n=t?fg(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&&dL(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}i(LP,"buildTranscriptSelectionRuntimeState");function PP(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(PP,"buildTranscriptSelectionViewModel");function OP(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}i(OP,"buildTranscriptSearchViewModel");function qV(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}i(qV,"clampTranscriptSearchSelectedIndex");function JV(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(JV,"buildTranscriptSearchDetailText");function $P(e){let t=qV(e.matches.length,e.selectedIndex),n=iP(e.matches,t),r=JV({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:OP({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}i($P,"buildTranscriptSearchChrome");function QV(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}i(QV,"buildDefaultTranscriptSecondaryText");function NP(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(NP,"buildFooterNotifications");function DP(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(DP,"buildBaseFooterNotices");function BP(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}i(BP,"buildStashNoticeText");function FP(e){return[...e]}i(FP,"buildPromptFooterNotices");function ZV(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?QV(e.showAllActive):n.join(" | ")}i(ZV,"buildTranscriptFooterSecondaryText");function eK(e){let t=[];return e&&t.push(e),t}i(eK,"buildTranscriptFooterBudgetNotices");function HP(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,o=bP(e.textSelection),s=e.textSelection?Fc({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?Fc({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=ZV({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:o,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:o,actionSummary:s,secondaryText:a,budgetNotices:eK(a)}}i(HP,"buildTranscriptFooterViewModel");import{jsx as Gie,jsxs as Vie}from"react/jsx-runtime";function WP(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(WP,"formatAmaWorkStripText");function jP(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}i(jP,"stripLiveActivityPrefix");function UP(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?jP(Nm(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?jP(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(UP,"buildBackgroundTaskViewModel");function GP(e,t){if(!(!t||!e||e.agentMode!=="ama"))return WP(e.childFanoutClass,e.childFanoutCount)}i(GP,"buildAmaWorkStripFromStatus");function pT(e){let t=GP(e.status,e.isLoading);return{workStripText:t,backgroundTask:UP({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(pT,"buildAmaSummaryViewModel");function mT(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}i(mT,"captureTranscriptSnapshot");function VP(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(VP,"countPendingTranscriptUpdates");function KP(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}i(KP,"resolveTranscriptSurfaceItems");function zP(e){let t=[];for(let n of e)switch(n.type){case"user":case"system":case"error":case"tool_group":case"event":case"info":case"sidecar":t.push({...n});break;case"assistant":case"thinking":{let{compactText:r,...o}=n;t.push(o);break}default:break}return t}i(zP,"buildPromptSurfaceItems");function XP(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}i(XP,"resolveFullscreenShellMode");function tK(e,t){return e.enabled&&XP(e,t)==="virtual"}i(tK,"shouldUseRendererViewportShell");function YP(e,t){let n=XP(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(YP,"resolveTranscriptInteractionPolicy");function qP(e,t,n){return tK(e,t)?t==="transcript"||n:!1}i(qP,"shouldOwnTranscriptViewport");var nK=500,rK=1,oK=/[\p{L}\p{N}_/.\-+~\\]/u;function iK(e){return e.text===" "?"":e.text}i(iK,"normalizeTranscriptRowText");function JP(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(JP,"comparePoints");function hT(e){return e===""||/\s/.test(e)?0:oK.test(e)?1:2}i(hT,"charClass");function QP(e){let t=e.timeoutMs??nK,n=e.distance??rK,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(QP,"resolveTranscriptMultiClickState");function Cg(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let o=iK(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:$i(o)}};let s=$i(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=hT(Um(o,a)),l=a,u=a+1;for(;l>0&&hT(Um(o,l-1))===c;)l-=1;for(;u<s&&hT(Um(o,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}i(Cg,"resolveTranscriptSelectionSpanAt");function gT(e,t){return JP(t.end,e.start)<0?{anchor:e.end,focus:t.start}:JP(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}i(gT,"extendTranscriptSelectionSpan");function Il(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(Il,"buildHostSessionPayload");var lK=500;function Qi(e){ut({source:"repl:session-persistence",level:"error",message:"Failed to persist interactive Session state in the background.",detail:e})}i(Qi,"reportBackgroundSessionPersistenceError");function uK(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(uK,"learningCenterActions");function dK(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(dK,"buildLearningCenterOptions");async function fK(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(fK,"applyLearningCenterAction");function pK(e){return typeof e.appendSessionDelta=="function"}i(pK,"hasAppendSessionDelta");function Ig(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(Ig,"applyRuntimeSessionSnapshot");function eO(e){let t=e;return typeof t.prepareSessionAppend=="function"&&typeof t.appendPreparedSessionTail=="function"&&typeof t.appendSessionDelta=="function"}i(eO,"hasPreparedSessionAppend");function mK(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(mK,"createPreparedSessionTail");async function hK(e,t,n,r){let o=eO(e)?await e.prepareSessionAppend(t):null,s=o===null?void 0:mK(n,o,r);if(eO(e)&&s!==void 0)try{await e.appendPreparedSessionTail(t,s);return}catch(a){if(!(a instanceof xe)||a.code!=="data_changed")throw a;await e.appendSessionDelta(t,n);return}if(pK(e)){await e.appendSessionDelta(t,n);return}await e.save(t,n)}i(hK,"persistHostSessionPayload");async function gK(e,t,n){let{lineage:r,...o}=n;return await e.save(t,o),await e.getLineage?.(t)??void 0}i(gK,"persistRuntimeOwnedHostSession");function yK(e,t){return e&&t.interrupted===!0&&t.messages.length===0}i(yK,"isTranscriptlessRuntimeResult");var wK=12,SK="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 yT(e,t){if($o(e))return[t.getGuardrail()]}i(yT,"buildAutoModeGuardrails");function xK(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}i(xK,"resolveInitialReasoningMode");function wT(e){return Yt(e.map(t=>typeof t=="string"?t:String(t)).join(" "))}i(wT,"formatCapturedConsoleOutput");function ST(e){let t=e.map(Yt).join(`
|
|
170
|
-
`).trimEnd();return t.trim().length>0?t:void 0}i(ST,"joinCapturedConsoleOutput");function TK(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(TK,"buildManagedTranscriptCompactText");function tO(e){let t=TK(e);return{type:"event",icon:_x(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}i(tO,"toManagedTranscriptEventItem");function ti(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(ti,"toCreatableHistoryItem");function CK(e){return e.map(t=>({...ti(t),isSessionUiOnly:!0}))}i(CK,"buildFailedManagedForegroundPersistenceItems");function IK(e,t){return e>0||t>0}i(IK,"shouldPersistSessionSnapshot");function vK(e,t){return!!e||t>0}i(vK,"shouldCommitFailedManagedForeground");function bK(e){let t;return async()=>{if(t===void 0){e.finalizeOrphanedTools(),e.flushText();let n=e.readItems();if(n.length===0)return!1;e.markUserItemsCommitted(n),t=e.stage(CK(n)),e.clear()}return await e.persist(t),t=void 0,!0}}i(bK,"createFailedManagedForegroundCommitter");async function RK(e){try{await e.commit()}finally{e.cleanup()}}i(RK,"commitFailedManagedForegroundBeforeCleanup");function TT(e){return hb(e)?"":dc(e).trim()}i(TT,"sanitizeInterruptedAssistantText");function kK(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i(kK,"escapeRegExpLiteral");function EK(e,t){let n=t?.trim();return n?e.replace(new RegExp(`^\\[${kK(n)}\\]\\s*`),""):e}i(EK,"stripManagedWorkerPrefix");function nO(e,t){let n=dc(e);return EK(n,t).trim().length>0}i(nO,"hasSubstantiveManagedAssistantText");function MK(e,t){return e?t||e.trim().length>0:!1}i(MK,"shouldAppendManagedAssistantTextDelta");function _K(e,t,n){if(n==="append")return[...e];let r=new Set(t.filter(o=>o!==void 0));return r.size===0?[...e]:e.filter(o=>!r.has(o.id))}i(_K,"discardReplacedOutputSegmentItems");function AK(e,t,n){let r=qf(e,{type:"segment.started",...t}).state;return r!==e&&n(r),r}i(AK,"applyDistinctOutputSegmentStart");function LK(e){e.stopThinking(),e.clearToolInputContent(),e.clearCurrentTool(),e.resetLiveToolCalls(),e.clearLiveActivityLabel()}i(LK,"applyProviderRecoveryTransientReset");function rO(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}i(rO,"isForegroundManagedStreamingStatus");function PK(e,t,n){let r=[],o=n?.infoItems??[],s=CT({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=TT(t);return a&&r.push({type:"assistant",text:`${a}
|
|
171
|
-
|
|
172
|
-
[Interrupted]`}),r}i(PK,"buildInterruptedPersistenceItems");function CT({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(CT,"buildRoundHistoryItems");var OK=20,$K="Session ended before the tool completed.";function NK(e){switch(e.status){case K.Success:return{status:"success"};case K.Error:return{status:"error"};case K.Cancelled:return{status:"cancelled"};case K.AwaitingApproval:case K.Scheduled:case K.Validating:case K.Executing:return{status:"cancelled",error:$K};default:return e.status}}i(NK,"toPersistedToolStatus");function DK(e){if(!e.id||!e.name)return;let t=NK(e),n=t.status==="success"?By(e.output):void 0,r=t.status==="error"||t.status==="cancelled"?Dy(e.error??By(e.output)??t.error??""):void 0,o=fb(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:Dy(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(DK,"toPersistedToolCall");function BK(e){let t=e.tools.slice(0,OK).map(DK).filter(r=>!!r),n=IT(e);return t.length>0?{type:"tool_group",tools:t,...n===void 0?{}:{timestamp:n}}:void 0}i(BK,"toPersistedToolGroup");function IT(e){return e.timestamp!==void 0&&Number.isFinite(e.timestamp)&&e.timestamp>=0?e.timestamp:void 0}i(IT,"persistedHistoryTimestamp");function cO(e){if(e.type==="tool_group")return BK(e);let t="text"in e&&typeof e.text=="string"?e.text.trimEnd():"";if(!t)return;if(e.type==="sidecar"){let a=e.delivery==="budget-exhausted"?"budget-exhausted":e.verdict??"revise",c=IT(e);return{type:"sidecar",text:t,icon:a,...c===void 0?{}:{timestamp:c},...e.isSessionUiOnly===!0?{presentationOnly:!0}:{}}}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=IT(e),s=e.isSessionUiOnly===!0?{presentationOnly:!0}:{};return{type:e.type,text:t,...o===void 0?{}:{timestamp:o},...s,...n?{icon:n}:{},...r?{compactText:r}:{}}}i(cO,"toPersistedUiHistoryItem");var oO=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1",FK=process.env.KODAX_SCROLL_OVERSCAN==="1"?80:void 0;function iO(e){return po(e.map(t=>cO(t)).filter(t=>!!t))}i(iO,"serializeUiHistorySnapshot");function HK(e){return e.map(t=>cO(t)).filter(t=>!!t)}i(HK,"serializeCreatableHistoryItems");function Gd(e,t){return t.length===0?po(e):po([...e,...HK(t)])}i(Gd,"appendPersistedUiHistorySnapshot");function Vd(e,t,n){console.log((e==="block"?_t.red:_t.yellow)(t)),n.forEach(r=>console.log(_t.dim(r)))}i(Vd,"logSessionTransitionGuard");var xT=i(({config:e,sessionId:t,workingDir:n,compactionInfo:r})=>{let o=ue("dark"),s=e.model??to(e.provider)??e.provider,a=Si({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?Qu(r.contextWindow,r.triggerPercent,r.triggerTokens):void 0;return Xn(A,{flexDirection:"column",marginBottom:1,children:[Ax.map((u,d)=>me(M,{color:o.colors.primary,children:u},d)),Xn(A,{children:[me(M,{color:o.colors.primary,children:" \u258E "}),me(M,{color:o.colors.primary,children:"AI Coding Agent \xB7 Minimalist & Intelligent"})]}),Xn(A,{children:[me(M,{color:o.colors.success,children:" \u258E "}),Xn(M,{bold:!0,color:o.colors.text,children:["v",Ss]}),me(M,{dimColor:!0,children:" \xB7 "}),Xn(M,{color:o.colors.success,children:[e.provider,"/",s]}),me(M,{dimColor:!0,children:` \xB7 effort:${a}`}),me(M,{dimColor:!0,children:" \xB7 "}),me(M,{color:o.colors.primary,children:e.agentMode.toUpperCase()}),me(M,{dimColor:!0,children:" / "}),me(M,{color:o.colors.accent,children:e.permissionMode})]}),r&&Xn(A,{children:[me(M,{color:o.colors.accent,children:" \u258E "}),me(M,{color:o.colors.text,children:`ctx ${c}k \xB7 compaction `}),me(M,{color:r.enabled?o.colors.success:o.colors.text,children:r.enabled?"on":"off"}),me(M,{color:o.colors.text,children:` \xB7 ${l}`})]}),Xn(A,{children:[me(M,{color:o.colors.secondary,children:" \u258E "}),me(M,{color:o.colors.text,children:"session "}),me(M,{color:o.colors.primary,children:t}),me(M,{color:o.colors.text,children:" \xB7 "}),me(M,{color:o.colors.text,children:n})]})]})},"Banner");function WK(e){let t=e.config.model??to(e.config.provider)??e.config.provider,n=Si({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?Qu(e.compactionInfo.contextWindow,e.compactionInfo.triggerPercent,e.compactionInfo.triggerTokens):void 0,s=" \u258E AI Coding Agent \xB7 Minimalist & Intelligent",a=` \u258E v${Ss} \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(m=>{let h=Mn(m.length>0?m.split(`
|
|
173
|
-
`):[""],Math.max(1,e.terminalWidth),0,0);return h.visualLines.length>0?h.visualLines:[""]},"wrapBannerLine"),p=i((m,h,g)=>{d(h).forEach((x,T)=>{u.push({key:`${m}-${T}`,text:x,...g})})},"pushLineRows");return Ax.forEach((m,h)=>{p(`banner-logo-${h}`,m,{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(WK,"buildBannerTranscriptSection");function sO(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}i(sO,"prependTranscriptSection");var jK=process.env.KODAX_INLINE_LEDGER!=="0";function aO(e,t){process.env.KODAX_INLINE_LEDGER_DEBUG==="1"&&ut({source:"repl:inline-ledger",level:"debug",message:`${e}; rebuilding on next change.`,...t!==void 0?{detail:t}:{}})}i(aO,"reportInlineLedgerFailure");var UK=i(({options:e,config:t,context:n,startupRuntimeInfo:r,storage:o,autoModeSettings:s,rendererMode:a,fullscreenPolicy:c,onExit:l,compactionInfo:u,autoModeBootstrap:d,setCurrentConfigRef:p,teamModeHandle:m})=>{let{exit:h}=co(),{stdout:g}=ao(),x=g.rows??24,{stdin:T,setRawMode:S,isRawModeSupported:I}=$u(),v=_c(),{history:$}=Wc(),_=ZP.useRef(null),N=ZP.useRef(cv()),{addHistoryItem:B,addHistoryItems:k,clearHistory:D,setSessionId:U}=jc(),j=we($),W=we(iO($));Xe(()=>{j.current=$,W.current=iO($)},[$]),Xe(()=>{zA()},[]),Xe(()=>{_b()},[]);let P=g.columns||80,b=Vc(),fe=we(b);Xe(()=>{fe.current=b},[b]);let{startStreaming:C,stopStreaming:ne,abort:se,startThinking:he,appendThinkingChars:Ee,appendThinkingContent:$e,stopThinking:Q,clearThinkingContent:Y,setCurrentTool:pe,appendToolInputChars:ft,appendToolInputContent:Ue,clearToolInputContent:Ge,clearResponse:Ve,appendResponse:pt,getSignal:Rt,getFullResponse:de,getThinkingContent:ke,startNewIteration:Ae,clearIterationHistory:it,startCompacting:mt,stopCompacting:oe,setMaxIter:Qe,addPendingInput:pn,removeLastPendingInput:kt,peekPendingInputDelivery:qn,shiftPendingInput:on,consumePendingInputs:Te,capturePendingInputCancellation:je}=Kc(),Nt=we(void 0),[be,ct]=Ye(!1),[z,H]=Ye(t),V=Se(()=>xs({provider:z.provider,model:z.model,effort:z.effort,effortOverride:z.effortOverride,permissionMode:z.permissionMode,planModeEffort:z.planModeEffort,thinking:z.thinking,reasoningMode:z.reasoningMode}),[z.provider,z.model,z.effort,z.effortOverride,z.permissionMode,z.planModeEffort,z.thinking,z.reasoningMode]),le=V.configuredEffort,ie=V.runtimeEffort,Re=Se(()=>({...z,effort:le}),[z,le]),Ce=Se(()=>_P(u,{provider:z.provider,model:z.model},ps),[u,z.provider,z.model]),[wt,Be]=Ye(!0),[Fe,Ln]=Ye(!0),[Pn,fr]=Ye(0),[Ur,ii]=Ye(!1),[Jt,Gr]=Ye(void 0),[Jd,Qd]=Ye([]),zT=we(!1),Og=q(()=>{zT.current=!0,Qd(db)},[]),[XT,Mr]=Ye(null),kl=we(!1),s$=Se(()=>vi(),[]),El=we(null),Zd=we(null),ef=we(Promise.resolve()),tf=we(null),es=we({requested:!1,uiHistoryOverride:void 0}),pa=we(null),Ml=we(!1),_l=we(null);Xe(()=>{let f=e.learning;if(!f)return;let y=!0,w,R=i(async()=>{let O=await f.getSnapshot();return y&&Gr(F=>F!==void 0&&F.revision>O.revision?F:O),O},"refresh"),E=i(O=>{ut({source:"repl:learning",level:"warn",message:"Failed to refresh the Learning Center snapshot.",detail:O instanceof Error?O.message:String(O)})},"reportRefreshFailure"),L=i(O=>{if(y){if(O.kind==="ready"||O.kind==="activated"||O.kind==="attention"){let F=O.kind==="ready"?"is ready for review":O.kind==="activated"?"became active":"requires attention";Qd(J=>[{id:O.eventId,text:`A learned ${O.carrier} ${F}: ${O.displayName} [/learn]`,tone:O.kind==="activated"?"accent":"warning"},...J.filter(Z=>Z.id!==O.eventId)].slice(0,2))}R().catch(E)}},"onEvent");return R().then(O=>{if(!y)return;let F=Rp(O);if(F&&!zT.current){let J=O.attention>0||O.ready>0?"warning":"accent";Qd(Z=>[{id:"learning-recovery",text:F,tone:J},...Z.filter(ve=>ve.id!=="learning-recovery")].slice(0,2))}w=f.subscribe(L,{afterRevision:O.revision})}).catch(E),()=>{y=!1,w?.close()}},[e.learning]);let[Al,nf]=Ye(!0),[$g,rf]=Ye(""),[Je,Vr]=Ye(()=>ZA(s$,{rendererMode:a})),[Qt,Ng]=Ye(!1),[a$,c$]=Ye(0),{scrollRef:l$,scrollOffset:_r,sticky:Dg,setScrollOffset:u$,handleScrollTopChange:d$,handleStickyChange:f$,scrollTo:of,scrollBy:sf,scrollToBottom:af}=gP(),Bg=we(null),cf=we(null),Ll=we([]),lf=we([]),ma=we(null),Ar=we(null),YT=we({time:0,row:-1,column:-1,count:0}),[uf,Fg]=Ye(void 0),[To,Hg]=Ye(void 0),[ha,qT]=Ye(void 0),[Jn,p$]=Ye(()=>new Set),[Wg,JT]=Ye(null),[mn,QT]=Ye(null),[ee,df]=Ye(null),[ZT,ga]=Ye(null),[jg,eC]=Ye(null),ya=we(null),Pl=q(f=>{ya.current=f,eC(f)},[]),Ug=q(f=>{let y=f(ya.current);ya.current=y,eC(y)},[]),Ol=q((f,y)=>{let w=ya.current;return w?.status!=="running"||!TE(f,w.runId)?!1:(Pl({...w,message:y}),!0)},[Pl]),Gg=q(f=>{if(f.status==="running"){Pl({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}Ug(y=>y?.runId===f.runId?null:y)},[Pl,Ug]),m$=q(f=>{let y=f.type==="workflow_updated"?f.message:void 0,w=wu(f.snapshot.goal,f.snapshot.workflowName,f.snapshot.displayName,f.snapshot.latestMessage,y);Gg(Tb(f.snapshot,y===void 0?{locale:w}:{locale:w,message:y}))},[Gg]),[ff,Co]=Ye([]),wa=Se(()=>{for(let f of ff)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}},[ff]),[t6,$l]=Ye([]),[Nl,h$]=Ye([]),[pf,Ft]=Ye(void 0),[ts,Dl]=Ye(void 0),Et=we(null),mf=we(null),ns=we([]),Sa=we([]),sn=we([]),hf=we(!1),Vg=we(new Set),ht=we({}),St=we({activeToolGroupTools:[]}),rs=we(Ry()),os=we({}),tC=we(0),Bl=we({itemId:void 0,kind:"thinking",pendingText:""}),Lr=we(null),g$=80,y$=20,w$=we(null),Fl=Se(()=>[...$,...Nl],[$,Nl]),Kg=Se(()=>{let f=_k(Fl,w$,Pk(Fl));return f===0?Fl:Fl.slice(f)},[Fl]),gf=Se(()=>Ak(Kg,y$),[Kg]),xa=Kg,hn=we(null),Kr=we(null),zr=we([]),gn=we([]),[is,S$]=Ye([]),Io=we([]),[zg,x$]=Ye([]),Hl=we([]),pr=q(f=>{Io.current=f,S$(f)},[]),Ta=q(f=>{Hl.current=f,x$(f)},[]),Xg=q(()=>{Ta([])},[Ta]),nC=q(f=>{if(!ud(f))return!1;let y=wS(f),w=Hl.current.filter(R=>R.id!==y);return w.length===Hl.current.length||Ta(w),!0},[Ta]),mr=q((f,y,w,R)=>{if(!ud(f))return!1;let E=wS(f),L=Hl.current.find(Pe=>Pe.id===E);if(R?.skipIfExisting&&L?.kind===y||RE(L?.kind,y))return!0;let O=R?.append&&L?.kind===y?`${L.detail}${w}`:w||L?.detail||"running",F={id:E,label:IE(f),source:vE(f),status:"running",kind:y,detail:yS(O),startedAt:L?.startedAt??Date.now()},J=Hl.current,Z=J.findIndex(Pe=>Pe.id===E),ve=Z>=0?J.map((Pe,Mt)=>Mt===Z?F:Pe):[...J,F].slice(0,wK);return Ta(ve),!0},[Ta]),rC=q(f=>{ns.current=f,$l(f)},[]),Ca=q(f=>{sn.current=f,h$(f)},[]),yf=q(f=>{let y=f([...sn.current]);Ca(y)},[Ca]),oC=q(f=>{f.length!==0&&Ca([...sn.current,...f])},[Ca]),wf=q(f=>{let y=St.current,w=y.activeToolGroupTools.some(R=>R.status===K.Executing);St.current={...f?.clearOwner?{}:{workerId:y.workerId,workerTitle:y.workerTitle},...w?{activeToolGroupItemId:y.activeToolGroupItemId,activeToolGroupTools:y.activeToolGroupTools}:{activeToolGroupTools:[]}},f?.clearOwner&&(ht.current={})},[]),Ia=q(f=>{for(let y of f)y.type==="user"&&typeof y.id=="string"&&Vg.current.add(y.id)},[]),ss=q(()=>{Bl.current={itemId:void 0,kind:"thinking",pendingText:""},Lr.current&&(clearTimeout(Lr.current),Lr.current=null);let f=uS(sn.current,Vg.current);if(f.length>0){for(let y of f)Vg.current.add(y.id);pa.current?.(f.map(y=>ti(y)))}wf({clearOwner:!0}),Ca([])},[wf,Ca]),Sf=q(f=>(tC.current+=1,`managed-foreground-${f}-${tC.current}`),[]),an=q(f=>(oC([f]),f.id),[oC]),In=q((f,y)=>{ht.current.workerId?an({id:`${y}-${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()}):B(f)},[B,an]),iC=q((f,y)=>{let w=Date.now();ht.current.workerId?an({id:`${y}-${w}-${Math.random().toString(36).slice(2,7)}`,type:"sidecar",text:f.text,...f.verdict?{verdict:f.verdict}:{},...f.delivery?{delivery:f.delivery}:{},timestamp:w}):B(f)},[B,an]),vo=q((f,y)=>{if(!f)return;let w;return yf(R=>R.map(E=>E.id!==f?E:(w=y(E),w))),w},[yf]),va=q((f,y)=>{let w=St.current;if(w.activeKind===f){if(f==="thinking"&&w.activeThinkingItemId)return w.activeThinkingItemId;if(f==="assistant"&&w.activeAssistantItemId)return w.activeAssistantItemId;if(f==="tool_group"&&w.activeToolGroupItemId)return w.activeToolGroupItemId}let R=Date.now(),E=y?.trim()?`[${y.trim()}] `:"",L=w.activeToolGroupTools.some(F=>F.status===K.Executing);if(f==="thinking"){let F=an({id:Sf("thinking"),type:"thinking",timestamp:R,text:E});return St.current={...St.current,activeKind:"thinking",activeThinkingItemId:F,currentTurnThinkingItemId:F,activeAssistantItemId:void 0,...L?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},F}if(f==="assistant"){let F=an({id:Sf("assistant"),type:"assistant",timestamp:R,text:E});return St.current={...St.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:F,...L?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},F}let O=an({id:Sf("tool_group"),type:"tool_group",timestamp:R,tools:[]});return St.current={...St.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:O,activeToolGroupTools:[]},O},[an,Sf]),yn=q(()=>{Lr.current&&(clearTimeout(Lr.current),Lr.current=null);let f=Bl.current;if(!f.pendingText||!f.itemId)return;let y=f.pendingText,w=f.itemId,R=f.kind;f.pendingText="",vo(w,E=>E.type!==R?E:{...E,text:`${E.text}${y}`})},[vo]),sC=q(()=>{Lr.current||(Lr.current=setTimeout(yn,g$))},[yn]),Yg=q((f,y)=>{if(!y)return;let w=St.current;if(f==="assistant"&&!MK(y,w.activeKind==="assistant"&&!!w.activeAssistantItemId))return;let R=w.workerTitle,E=va(f,R),L=Bl.current;L.itemId===E&&L.kind===f?L.pendingText+=y:(yn(),L.itemId=E,L.kind=f,L.pendingText=y),sC()},[va,yn,sC]),aC=q(f=>{rs.current=AK(rs.current,f,y=>{if(ht.current.workerId){yn();let E=os.current;f.mode==="replace"&&yf(O=>_K(O,[E.assistantItemId,E.thinkingItemId],f.mode));let L=St.current;St.current={...L,activeKind:L.activeKind==="tool_group"?"tool_group":void 0,activeAssistantItemId:void 0,activeThinkingItemId:void 0,currentTurnThinkingItemId:void 0},Bl.current={itemId:void 0,kind:"thinking",pendingText:""},os.current={providerRequestId:f.providerRequestId};return}Ve(),Y();let w=ky(y,"assistant"),R=ky(y,"thinking");w&&pt(w),R&&(he(),Ee(R.length),$e(R))})},[pt,Ee,$e,Ve,Y,yn,yf,he]),cC=q(f=>{let y=f.trim();if(!y)return;let w=Bl.current;w.kind==="thinking"&&w.pendingText&&(w.pendingText="",Lr.current&&(clearTimeout(Lr.current),Lr.current=null));let R=St.current.workerTitle?.trim(),E=R?`[${R}] ${y}`:y,L=St.current.currentTurnThinkingItemId;if(L){vo(L,F=>F.type==="thinking"?{...F,text:E}:F);return}let O=va("thinking",St.current.workerTitle);vo(O,F=>F.type==="thinking"?{...F,text:E}:F)},[va,vo]),Pr=q(f=>{yn();let y=St.current;if(y.activeToolGroupItemId&&y.activeToolGroupTools.some(O=>O.id===f.id)){let O=y.activeToolGroupTools.map(J=>J.id===f.id?f:J),F=O.every(J=>J.status===K.Success||J.status===K.Error||J.status===K.Cancelled);St.current={...y,...F?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:O}},vo(y.activeToolGroupItemId,J=>J.type==="tool_group"?{...J,tools:O}:J);return}let w=sn.current;for(let O=w.length-1;O>=0;O-=1){let F=w[O];if(F.type!=="tool_group"||!F.tools.some(Z=>Z.id===f.id))continue;let J=F.tools.map(Z=>Z.id===f.id?f:Z);vo(F.id,Z=>Z.type==="tool_group"?{...Z,tools:J}:Z);return}let R=va("tool_group",y.workerTitle),L=y.activeKind==="tool_group"&&y.activeToolGroupItemId===R?y.activeToolGroupTools.some(O=>O.id===f.id)?y.activeToolGroupTools.map(O=>O.id===f.id?f:O):[...y.activeToolGroupTools,f]:[f];St.current={...St.current,activeKind:"tool_group",activeToolGroupItemId:R,activeToolGroupTools:L},vo(R,O=>O.type==="tool_group"?{...O,tools:L}:O)},[va,vo,yn]),T$=q(f=>{yn();let y=St.current,w=y.activeToolGroupTools.some(L=>L.status===K.Executing),R=Io.current.filter(L=>L.status===K.Executing),E=new Set(R.map(L=>L.id));St.current={workerId:f?.workerId,workerTitle:f?.workerTitle,...w?{activeToolGroupItemId:y.activeToolGroupItemId,activeToolGroupTools:y.activeToolGroupTools}:{activeToolGroupTools:[]}},ht.current={workerId:f?.workerId,workerTitle:f?.workerTitle},zr.current=[],gn.current=gn.current.filter(L=>E.has(L.id)),pr(R),Ge(),pe(void 0),Q(),Y(),Ve(),Ft(void 0)},[yn,Ge,Ve,Y,pe,pr,Ft,Q]),C$=q(f=>{if(f.length===0)return[];let y=[],w=[...ns.current],R=[...Sa.current];for(let E of f){let L=E.item,O=w.findIndex(F=>F.id===L.id);if(O>=0){let F=w[O];sg(F,L)||(w=w.map((J,Z)=>Z===O?{...L,timestamp:F.timestamp}:J))}else w=[...w,L].slice(-12),y.push(L);if(E.persistToHistory){let F=R.findIndex(J=>J.id===L.id);if(F>=0){let J=R[F];sg(J,L)||(R=R.map((Z,ve)=>ve===F?{...L,timestamp:J.timestamp}:Z))}else R=[...R,L].slice(-48)}}return Sa.current=R,(y.length>0||w.some((E,L)=>!sg(E,ns.current[L]??E)||E.id!==ns.current[L]?.id))&&rC(w),y},[rC]),xf=q(f=>{if(gn.current.findIndex(w=>w.id===f.id)===-1){gn.current=[...gn.current,f];return}gn.current=gn.current.map(w=>w.id===f.id?f:w)},[]),si=q(f=>{let y=Io.current.filter(w=>w.status===K.Executing);if(y.length!==0){if(f){let w=Mx(f);for(let R=y.length-1;R>=0;R-=1){let E=y[R];if(Mx(E.name)===w)return E}}return y[y.length-1]}},[]),ba=q(()=>{let f=si();pe(f?Ex(f.name):void 0)},[si,pe]),lC=q(f=>(xf(f),pr([...Io.current.filter(y=>y.id!==f.id),f]),ba(),f),[pr,ba,xf]),Ra=q((f,y)=>{let w=Io.current.find(E=>E.id===f);if(!w)return null;let R=y(w);return xf(R),pr(Io.current.map(E=>E.id===f?R:E)),ba(),R},[pr,ba,xf]),uC=q((f,y,w)=>{if(f){let E=Ra(f,w);if(E)return E}let R=si(y);return R?Ra(R.id,w):null},[si,Ra]),Tf=q((f,y,w,R,E)=>{let L=f??si(E)?.id;return L?Ra(L,O=>({...O,status:y,endTime:Date.now(),error:w,output:R})):null},[si,Ra]),Wl=q((f,y)=>{let w=Date.now(),R=new Map;for(let E of Io.current){if(E.status!==K.Executing)continue;let L=y(E);R.set(E.id,{...E,status:f,endTime:w,...L})}return R.size===0?[]:(gn.current=gn.current.map(E=>R.get(E.id)??E),pr(Io.current.map(E=>R.get(E.id)??E)),ba(),[...R.values()])},[pr,ba]),ai=q(()=>{pr([])},[pr]),{showHelp:dC,toggleHelp:I$,setShowHelp:fC}=Ox(),v$=q(f=>{rf(f),nf(f.trim().length===0)},[]),Cf=Oi(),pC=Se(()=>Cf?Cf.state.visible&&Cf.suggestions.length>0:!1,[Cf]),[jl,mC]=Ye(!1),hC=we(Pn),as=q(()=>{hn.current&&(clearTimeout(hn.current),hn.current=null),Kr.current&&(clearTimeout(Kr.current),Kr.current=null)},[]);Xe(()=>{pC&&!jl&&mC(!0)},[pC,jl]),Xe(()=>{Pn!==hC.current&&(hC.current=Pn,jl&&mC(!1))},[Pn,jl]);let[Ze,ka]=Ye(null),hr=we(null),b$=we(RA()),[Ke,Qn]=Ye(null),Xr=we(null),If=we(Ke);If.current=Ke;let[vn,Ea]=Ye(""),[vf,Or]=Ye(0),qg=we(""),Ul=we(void 0),gC=Se(()=>{if(!Ce)return;let{contextWindow:f,triggerPercent:y,triggerTokens:w,reservedResponseTokens:R}=Ce;return{currentTokens:XT??n.contextTokenSnapshot?.currentTokens??ms(n.messages),contextWindow:f,triggerPercent:y,triggerTokens:w,reservedResponseTokens:R}},[n.messages,n.contextTokenSnapshot,Ce,XT]),Gl=Se(()=>{if(!Ze)return;let f=new Set(Ze.runtimeGrantSuggestions?.map(R=>R.kind)??[]);if(f.has("persistent"))return te("confirm.instruction.runtime_persistent");if(f.has("session"))return te("confirm.instruction.runtime_session");if(Ze.runtimeGrantSuggestions!==void 0)return te("confirm.instruction.basic");let y=!!Ze.input._alwaysConfirm,w=z.permissionMode==="accept-edits"&&!y;return y?te("confirm.instruction.protected"):w?te("confirm.instruction.always"):te("confirm.instruction.basic")},[Ze,z.permissionMode]),At=Je.searchMode==="history",ce=Je.surface==="transcript",Yr=!!Ze||!!Ke||At,Vt=ce?Qt?wk:1e3:12,ci=YP(c,Je.surface),yC=ci.shellMode,Jg=ci.usesAlternateScreenShell,cs=ci.usesRendererViewportShell,bf=ci.usesRendererMouseTracking,wC=ci.usesManagedMouseClicks,SC=ci.usesManagedMouseWheel,Qg=ci.usesManagedSelection,Kt=qP(c,Je.surface,lL(Je)),xC=uL(Je),Rf=jl&&!ce,TC=q(()=>mT({items:xa,managedLiveEvents:[],isLoading:be,isThinking:b.isThinking,thinkingCharCount:b.thinkingCharCount,thinkingContent:b.thinkingContent,currentResponse:b.currentResponse,currentTool:b.currentTool,activeToolCalls:is,toolInputCharCount:b.toolInputCharCount,toolInputContent:b.toolInputContent,lastLiveActivityLabel:pf,workStripText:ts,iterationHistory:b.iterationHistory,currentIteration:b.currentIteration,isCompacting:b.isCompacting}),[xa,be,b.isThinking,b.thinkingCharCount,b.thinkingContent,b.currentResponse,b.currentTool,is,b.toolInputCharCount,b.toolInputContent,pf,ts,b.iterationHistory,b.currentIteration,b.isCompacting]);Xe(()=>{if(ce){JT(f=>f??TC());return}JT(null)},[TC,ce]);let Vl=Se(()=>VP({isTranscriptMode:ce,snapshot:Wg,currentItemsLength:xa.length,currentManagedLiveEventsLength:0,isLoading:be,currentResponse:b.currentResponse,thinkingContent:b.thinkingContent,activeToolCallsLength:is.length}),[is.length,be,ce,xa.length,b.currentResponse,b.thinkingContent,Wg]),cn=ce?Wg:null,Zg=Se(()=>zP(gf),[gf]),R$=Se(()=>!!(Nl.length>0||rO(ee)),[Nl.length,ee]),kf=Nl.length>0,wn=c.streamingPreview&&R$,Ma=Se(()=>KP({surface:"transcript",snapshot:cn,promptItems:gf,transcriptItems:xa}),[cn,gf,xa]),Kl=Se(()=>{if(!ce||Qt)return Ma;let f=Lk(Ma,Mk);if(f.length===Ma.length)return Ma;let y=Ma.length-f.length;return[Nk(y,f[0]?.timestamp),...f]},[Ma,ce,Qt]),Lt=cn?.isLoading??be,Tt=c.streamingPreview?{isThinking:wn?!1:b.isThinking,thinkingCharCount:wn?0:b.thinkingCharCount,thinkingContent:wn?"":b.thinkingContent,currentResponse:wn?"":b.currentResponse,currentTool:wn?void 0:b.currentTool,activeToolCalls:wn?[]:is,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:wn?pf:void 0,iterationHistory:[],currentIteration:b.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:b.currentIteration,isCompacting:!1},Le=c.streamingPreview?{isThinking:wn?!1:cn?.isThinking??b.isThinking,thinkingCharCount:wn?0:cn?.thinkingCharCount??b.thinkingCharCount,thinkingContent:wn?"":cn?.thinkingContent??b.thinkingContent,currentResponse:wn?"":cn?.currentResponse??b.currentResponse,currentTool:wn?void 0:cn?.currentTool??b.currentTool,activeToolCalls:wn?[]:cn?.activeToolCalls??is,toolInputCharCount:wn?0:cn?.toolInputCharCount??b.toolInputCharCount,toolInputContent:wn?"":cn?.toolInputContent??b.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:cn?.lastLiveActivityLabel??pf,iterationHistory:wn?[]:cn?.iterationHistory??b.iterationHistory,currentIteration:cn?.currentIteration??b.currentIteration,isCompacting:cn?.isCompacting??b.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:cn?.currentIteration??b.currentIteration,isCompacting:!1},bo=ce?To:uf,CC=!!uf,IC=q(()=>mT({items:Zg,managedLiveEvents:[],isLoading:be,isThinking:Tt.isThinking,thinkingCharCount:Tt.thinkingCharCount,thinkingContent:Tt.thinkingContent,currentResponse:Tt.currentResponse,currentTool:Tt.currentTool,activeToolCalls:Tt.activeToolCalls,toolInputCharCount:Tt.toolInputCharCount,toolInputContent:Tt.toolInputContent,lastLiveActivityLabel:Tt.lastLiveActivityLabel,iterationHistory:Tt.iterationHistory,currentIteration:Tt.currentIteration,isCompacting:Tt.isCompacting}),[be,Zg,Tt.activeToolCalls,Tt.currentIteration,Tt.currentResponse,Tt.currentTool,Tt.isCompacting,Tt.isThinking,Tt.iterationHistory,Tt.lastLiveActivityLabel,Tt.thinkingCharCount,Tt.thinkingContent,Tt.toolInputCharCount,Tt.toolInputContent]);Xe(()=>{if(!CC){QT(null);return}QT(f=>f??IC())},[IC,CC]);let zl=mn?.items??Zg,bn=mn?.isLoading??be,We=mn?{isThinking:mn.isThinking,thinkingCharCount:mn.thinkingCharCount,thinkingContent:mn.thinkingContent,currentResponse:mn.currentResponse,currentTool:mn.currentTool,activeToolCalls:mn.activeToolCalls,toolInputCharCount:mn.toolInputCharCount,toolInputContent:mn.toolInputContent,managedLiveEvents:mn.managedLiveEvents,lastLiveActivityLabel:mn.lastLiveActivityLabel,iterationHistory:mn.iterationHistory,currentIteration:mn.currentIteration,isCompacting:mn.isCompacting}:Tt,ln=ce?Kl:zl,qr=ce?Lt:bn,st=ce?Le:We,vC=bn&&!b.currentResponse&&!b.thinkingContent&&is.length===0,k$=Vu(jg?.status==="running"),Zt=Se(()=>Ib(jg,Date.now()),[jg,k$]),bC=Zt.shouldRender?`Workflow ${Zt.workflow}${Zt.phase?` - ${Zt.phase}`:""}`:void 0,Ro=Se(()=>IA(ff,{now:Date.now(),lastAllCompletedAt:null}),[ff]),RC=x<=20?1:gS,E$=Vu(zg.length>0),ey=Se(()=>kE(zg,RC,Date.now()),[RC,zg,E$]),kC=CE({isTranscriptMode:ce,isLoading:be,hasWorkflowLiveSurface:Zt.shouldRender,childActivityVisible:ey.shouldRender}),_a=Se(()=>{if(!ce)return[];let f=[];return f.push(...Cb(Zt)),be&&Ro.shouldRender&&f.push(...xA(Ro)),f},[ce,be,Ro,Zt]),ls=Se(()=>({config:Re,sessionId:n.sessionId,workingDir:e.context?.executionCwd||e.context?.gitRoot||n.runtimeInfo?.executionCwd||n.gitRoot||process.cwd(),terminalWidth:P,compactionInfo:Ce??void 0}),[Ce,n.sessionId,Re,n.runtimeInfo?.executionCwd,e.context?.gitRoot,e.context?.executionCwd,P]),li=Se(()=>c.enabled&&Fe?WK(ls):void 0,[ls,c.enabled,Fe]),EC=we(Sl),MC=we(!1),ty=we(!1),Aa=ZL({enabled:jK,useRendererViewportShell:cs,isTranscriptMode:ce,hasCommitHandle:typeof Ds(g)?.commitInlineScrollback=="function"}),Xl=Se(()=>Bm({items:zl,viewportWidth:P,maxLines:Vt,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[zl,P,Vt]),us=Se(()=>{let f=Fm({activeItems:Xl.activeItems,viewportWidth:P,isLoading:bn,maxLines:Vt,isThinking:We.isThinking,thinkingCharCount:We.thinkingCharCount,thinkingContent:We.thinkingContent,streamingResponse:We.currentResponse,currentTool:We.currentTool,activeToolCalls:We.activeToolCalls,toolInputCharCount:We.toolInputCharCount,toolInputContent:We.toolInputContent,iterationHistory:We.iterationHistory,currentIteration:We.currentIteration,isCompacting:We.isCompacting,managedAgentMode:z.agentMode,managedPhase:bn?ee?.phase:void 0,managedHarnessProfile:bn?ee?.harnessProfile:void 0,managedWorkerTitle:bn?ee?.activeWorkerTitle:void 0,managedRound:bn?ee?.currentRound:void 0,managedMaxRounds:bn?ee?.maxRounds:void 0,managedGlobalWorkBudget:bn?ee?.globalWorkBudget:void 0,managedBudgetUsage:bn?ee?.budgetUsage:void 0,managedBudgetApprovalRequired:bn?ee?.budgetApprovalRequired:void 0,lastLiveActivityLabel:We.lastLiveActivityLabel,currentTodoActiveForm:wa,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:vC}),y=Ik(Xl,f,li);return nP(y,Aa)},[z.agentMode,Aa,bn,We.activeToolCalls,We.currentIteration,We.currentTool,We.isCompacting,We.currentResponse,We.isThinking,We.iterationHistory,We.lastLiveActivityLabel,We.thinkingCharCount,We.thinkingContent,We.toolInputCharCount,We.toolInputContent,ee?.activeWorkerTitle,ee?.budgetApprovalRequired,ee?.budgetUsage,ee?.currentRound,ee?.globalWorkBudget,ee?.harnessProfile,ee?.maxRounds,ee?.phase,vC,Xl,li,P,Vt,wa]),ny=Se(()=>Bm({items:Kl,viewportWidth:P,maxLines:Vt,showDetailedTools:Qt,showAllContent:Qt,showFullThinking:!0,windowed:!1}),[Kl,P,Vt,Qt]),Ef=Se(()=>{if(!ce||cs)return;let f=Fm({activeItems:ny.activeItems,viewportWidth:P,isLoading:Lt,maxLines:Vt,isThinking:Le.isThinking,thinkingCharCount:Le.thinkingCharCount,thinkingContent:Le.thinkingContent,streamingResponse:Le.currentResponse,currentTool:Le.currentTool,activeToolCalls:Le.activeToolCalls,toolInputCharCount:Le.toolInputCharCount,toolInputContent:Le.toolInputContent,iterationHistory:Le.iterationHistory,currentIteration:Le.currentIteration,isCompacting:Le.isCompacting,managedAgentMode:z.agentMode,managedPhase:Lt?ee?.phase:void 0,managedHarnessProfile:Lt?ee?.harnessProfile:void 0,managedWorkerTitle:Lt?ee?.activeWorkerTitle:void 0,managedRound:Lt?ee?.currentRound:void 0,managedMaxRounds:Lt?ee?.maxRounds:void 0,managedGlobalWorkBudget:Lt?ee?.globalWorkBudget:void 0,managedBudgetUsage:Lt?ee?.budgetUsage:void 0,managedBudgetApprovalRequired:Lt?ee?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Le.lastLiveActivityLabel,liveStatusLines:_a,currentTodoActiveForm:wa,showFullThinking:!0,showDetailedTools:Qt,showAllContent:Qt,showLiveProgressRows:!kf,expandedItemKeys:Jn});return sO(Qw(Hm(ny,f)),li)},[z.agentMode,Jn,kf,li,ce,ee?.activeWorkerTitle,ee?.budgetApprovalRequired,ee?.budgetUsage,ee?.currentRound,ee?.globalWorkBudget,ee?.harnessProfile,ee?.maxRounds,ee?.phase,P,Lt,Vt,ny,Le.activeToolCalls,Le.currentIteration,Le.currentResponse,Le.currentTool,Le.isCompacting,Le.isThinking,Le.iterationHistory,Le.lastLiveActivityLabel,Le.thinkingCharCount,Le.thinkingContent,Le.toolInputCharCount,Le.toolInputContent,Qt,_a,cs,wa]),Yl=Se(()=>{if(Kt)return ce?sO(Wm({items:ln,viewportWidth:P,isLoading:qr,maxLines:Vt,isThinking:st.isThinking,thinkingCharCount:st.thinkingCharCount,thinkingContent:st.thinkingContent,streamingResponse:st.currentResponse,currentTool:st.currentTool,activeToolCalls:st.activeToolCalls,toolInputCharCount:st.toolInputCharCount,toolInputContent:st.toolInputContent,iterationHistory:st.iterationHistory,currentIteration:st.currentIteration,isCompacting:st.isCompacting,managedAgentMode:z.agentMode,managedPhase:qr?ee?.phase:void 0,managedHarnessProfile:qr?ee?.harnessProfile:void 0,managedWorkerTitle:qr?ee?.activeWorkerTitle:void 0,managedRound:qr?ee?.currentRound:void 0,managedMaxRounds:qr?ee?.maxRounds:void 0,managedGlobalWorkBudget:qr?ee?.globalWorkBudget:void 0,managedBudgetUsage:qr?ee?.budgetUsage:void 0,managedBudgetApprovalRequired:qr?ee?.budgetApprovalRequired:void 0,lastLiveActivityLabel:st.lastLiveActivityLabel,liveStatusLines:_a,currentTodoActiveForm:wa,windowed:!0,showFullThinking:ce,showDetailedTools:Qt,showAllContent:Qt,showLiveProgressRows:ce&&!kf,expandedItemKeys:ce?Jn:void 0}),li):Qw(us)},[z.agentMode,qr,ln,kf,li,st.activeToolCalls,st.currentIteration,st.currentResponse,st.currentTool,st.isCompacting,st.isThinking,st.iterationHistory,st.lastLiveActivityLabel,st.thinkingCharCount,st.thinkingContent,st.toolInputCharCount,st.toolInputContent,Jn,ce,ee?.activeWorkerTitle,ee?.budgetApprovalRequired,ee?.budgetUsage,ee?.currentRound,ee?.globalWorkBudget,ee?.harnessProfile,ee?.maxRounds,ee?.phase,us,be,ce,P,Vt,Kt,_a,Qt,wa]),Jr=Se(()=>Yl??Ef,[Yl,Ef]),ql=Se(()=>pT({status:ee,isLoading:be,agentMode:z.agentMode}),[z.agentMode,be,ee]).workStripText,Jl=cn?.workStripText??ts,La=Se(()=>pT({status:ee,isLoading:be,agentMode:z.agentMode,parallelTextOverride:Jl}),[z.agentMode,Jl,be,ee]),ds=Se(()=>cP(ln).filter(f=>f!==jm),[ln]),gt=Se(()=>fg(Je,ds,Je.selectedItemId),[ds,Je]),Zn=Se(()=>ln.find(f=>f.id===gt),[ln,gt]),_C=Se(()=>({...Je,supportsSelection:Je.supportsSelection&&Kt,supportsCopyOnSelect:Je.supportsCopyOnSelect&&Kt}),[Je,Kt]),gr=Se(()=>LP({state:_C,selectableItemIds:ds,selectedItemId:gt,selectedItemType:Zn?.type,isExpanded:gt?Jn.has(gt):!1}),[Jn,ds,Zn?.type,gt,_C]),AC=gr.selectionEnabled,LC=gr.copyCapabilities.copyOnSelect,o6=gr.selectedItemIndex,PC=Se(()=>aP(Zn),[Zn]),Mf=Se(()=>rP(ln.filter(f=>!eS(f))),[ln]),en=Se(()=>oP(Mf,vn),[Mf,vn]),_f=Se(()=>$P({isHistorySearchActive:At,historySearchQuery:vn,matches:en,selectedIndex:vf,anchorItemId:Je.searchAnchorItemId,useOverlaySurface:Je.supportsOverlaySurface&&Je.supportsSearchViewport&&Kt}),[en,vn,vf,At,Je.searchAnchorItemId,Je.supportsOverlaySurface,Je.supportsSearchViewport,Kt]),ui=_f.clampedSelectedIndex,OC=_f.statusText,ry=_f.detailText,$C=_f.searchState,i6=gr.detailState==="expanded",Af=gr.selectionEnabled&&ds.length>0&&!bo,Pa=gr.copyCapabilities.message,Lf=gr.copyCapabilities.toolInput,Pf=gr.toggleDetail;Xe(()=>{if(ql){if(Kr.current&&(clearTimeout(Kr.current),Kr.current=null),ts===ql)return;if(ts){hn.current&&(clearTimeout(hn.current),hn.current=null),Dl(ql);return}hn.current&&clearTimeout(hn.current),hn.current=setTimeout(()=>{Dl(ql),hn.current=null},400);return}if(!ts){hn.current&&(clearTimeout(hn.current),hn.current=null);return}hn.current&&(clearTimeout(hn.current),hn.current=null),Kr.current&&clearTimeout(Kr.current),Kr.current=setTimeout(()=>{Dl(void 0),Kr.current=null},300)},[as,ql,ts]),Xe(()=>()=>{as()},[as]);let di=Se(()=>fP({state:Je,ownsViewport:Kt,isAwaitingUserInteraction:Yr,isHistorySearchActive:At,isTranscriptMode:ce,historySearchQuery:vn}),[vn,Yr,At,ce,Je,Kt]);Xe(()=>{Vr(f=>{let y=rL(f,_r);return y=nL(y,Vl),y=iL(y,c.enabled&&Kt?!Dg||At||Yr:ce||At||Yr),y=cL(y,ui),y})},[ui,c.enabled,_r,Yr,At,ce,Vl,Kt,Dg]),Xe(()=>{vf!==ui&&Or(ui)},[ui,vf]),Xe(()=>{if(!At){qg.current=vn;return}if(vn===qg.current)return;qg.current=vn;let f=sP(Mf,en,Je.searchAnchorItemId);Or(f)},[en,vn,At,Je.searchAnchorItemId,Mf]);let NC=ce?Le:{isThinking:We.isThinking,thinkingCharCount:We.thinkingCharCount,currentTool:We.currentTool,activeToolCalls:We.activeToolCalls,toolInputCharCount:We.toolInputCharCount,toolInputContent:We.toolInputContent,currentIteration:We.currentIteration,isCompacting:We.isCompacting},Ql=ce?Lt:bn;Xe(()=>{e.runtimeAutoModeControl?.syncSettings?.(n.sessionId,ys(z.permissionMode),s)},[s,n.sessionId,z.permissionMode,e.runtimeAutoModeControl]);let Of=Se(()=>AP({sessionId:n.sessionId,permissionMode:z.permissionMode,agentMode:z.agentMode,provider:z.provider,model:z.model??to(z.provider)??z.provider,thinking:z.thinking,reasoningMode:z.reasoningMode,effort:le,reasoningEffortLabel:Si({provider:z.provider,model:z.model,effort:le,effortOverride:z.effortOverride,thinking:z.thinking,reasoningMode:z.reasoningMode}),isTranscriptMode:ce,streamingState:NC,maxIter:b.maxIter,contextUsage:gC,learning:Jt,isLoading:Ql,managedState:{phase:ee?.phase,harnessProfile:ee?.harnessProfile,workerTitle:ee?.activeWorkerTitle,round:ee?.currentRound,maxRounds:ee?.maxRounds,globalWorkBudget:ee?.globalWorkBudget,budgetUsage:ee?.budgetUsage,budgetApprovalRequired:ee?.budgetApprovalRequired,idleWaiting:ee?.idleWaiting,idleWaitingPendingCount:ee?.idleWaitingPendingCount}}),[n.sessionId,z.permissionMode,z.agentMode,z.provider,z.model,z.thinking,z.reasoningMode,z.effortOverride,le,ce,NC,b.maxIter,gC,Jt,Ql,ee?.phase,ee?.harnessProfile,ee?.activeWorkerTitle,ee?.currentRound,ee?.maxRounds,ee?.globalWorkBudget,ee?.budgetUsage,ee?.budgetApprovalRequired,ee?.idleWaiting,ee?.idleWaitingPendingCount]),oy=Ze?"confirm":Ke?.kind,DC=Se(()=>MP({isTranscriptMode:ce,isLoading:Ql,streamingState:We,managedState:Ql?{phase:ee?.phase,harnessProfile:ee?.harnessProfile,workerTitle:ee?.activeWorkerTitle}:void 0,waitingReason:oy,workflowBuilderMessage:ZT??void 0,backgroundWorkflowMessage:bC}),[We.activeToolCalls,We.currentTool,We.isCompacting,We.isThinking,We.thinkingCharCount,We.toolInputCharCount,We.toolInputContent,ce,ee?.activeWorkerTitle,ee?.harnessProfile,ee?.phase,oy,Ql,ZT,bC]),ko=kP({activity:DC})?DC:void 0,BC=ko?.text,FC=!!ko,HC=we(!1);Xe(()=>{HC.current&&!be&&Co(f=>f.length>0?[]:f),HC.current=be},[be]);let iy=Se(()=>zm(Of),[Of]),WC=Se(()=>iy,[iy]),jC=WC.text,M$=Se(()=>mE(b.pendingInputs),[b.pendingInputs]),sy=Se(()=>vA({isHistorySearchActive:At,isTranscriptMode:ce,pendingInputCount:b.pendingInputs.length,buffering:Je.buffering,pendingLiveUpdates:Vl}),[At,ce,Vl,b.pendingInputs.length,Je.buffering]),UC=sy.leftItems,GC=sy.rightItems,VC=sy.summary,$f=Se(()=>DP({historySearchQuery:vn,pendingInputCount:b.pendingInputs.length}),[vn,b.pendingInputs.length]),Nf=Se(()=>[...NP({historySearchQuery:vn,isHistorySearchActive:At,historySearchMatchCount:en.length,pendingInputCount:b.pendingInputs.length,maxPendingInputs:5}),...Jd],[en.length,vn,At,Jd,b.pendingInputs.length]),KC=Se(()=>Nf.map(f=>f.text).join(" | "),[Nf]),Df=Se(()=>BP({inputText:$g,isTranscriptMode:ce,isHistorySearchActive:At}),[$g,At,ce]),zC=Je.supportsOverlaySurface&&Je.supportsSearchViewport&&Kt,Bf=Se(()=>PP({runtime:gr,itemSummary:PC}),[PC,gr]),ay=Se(()=>FP($f),[$f]),XC=Se(()=>HP({textSelection:bo,selectionState:Bf,isHistorySearchActive:At,historySearchDetailText:ry,historySearchHasMatches:!!OC&&en.length>0,showAllActive:Qt,baseFooterNotices:$f}),[bo,$f,ry,en.length,OC,At,Qt,Bf]),_$=XC.secondaryText,A$=XC.budgetNotices,YC=ce?A$:ay,qC=x,JC=ce?"":$g,QC=ce?void 0:M$,ZC=Jl,eI=ce?!1:dC,tI=Zt.shouldRender?gA(Zt):0,nI=be&&Ro.shouldRender?Ro.rows.length:0,rI=kC?dh(ey):0,un=Se(()=>QA({terminalRows:qC,terminalWidth:P,windowedTranscript:cs,inputText:JC,footerHeaderText:VC,activitySummary:ce?void 0:BC,activityBarVisible:ce?!1:FC,workflowSurfaceRows:ce?0:tI,childActivitySurfaceRows:ce?0:rI,todoSurfaceRows:ce?0:nI,pendingInputSummary:QC,stashNoticeSummary:Df,notificationSummary:KC,statusNoticeSummary:YC.join(" | "),workStripText:ZC,suggestionsReserved:Rf,suggestionsMode:"inline",showHelp:eI,statusBarText:jC,confirmPrompt:Ze?.prompt,confirmInstruction:Gl,dialogMode:"inline",reviewHint:c.enabled&&Kt?void 0:di.browseHintText,uiRequest:Ke?Ke.kind==="select"?{kind:"select",title:Ke.title,options:Ke.options.map(f=>({label:f.label,description:f.description})),buffer:Ke.buffer,error:Ke.error}:{kind:"input",prompt:Ke.prompt,defaultValue:Ke.defaultValue,buffer:Ke.buffer,error:Ke.error}:null}),[qC,P,JC,VC,BC,FC,ce,tI,rI,nI,QC,Df,KC,YC,ZC,Rf,zC,eI,jC,Ze,Gl,c.enabled,di.browseHintText,Kt,Ke]),cy=Se(()=>{if(!Aa)return{model:us,committedSections:[]};let{committedSections:f,liveRows:y}=vk(Xl.staticSections,us.rows,us.previewRows,un.messageRows);return{model:{...us,staticSections:[],rows:y,previewRows:[]},committedSections:f}},[Aa,us,Xl.staticSections,un.messageRows]),oI=cy.model;Xe(()=>{let f=Ds(g),y=typeof f?.commitInlineScrollback=="function",w=eP({active:Aa,hasCommitHandle:y,wasActive:MC.current,forceRebuild:ty.current,prior:EC.current,finalizedSections:cy.committedSections,bannerSection:li,width:P,identify:bk}),R=!1,E=!1;if(w.kind==="commit"){let O=w.sections.flatMap(J=>J.rows),F=QL(O.length>0?[{key:"il-delta",rows:O}]:[],{width:P,theme:ue("dark")});if(E=F.length>0,w.mode==="append"&&!F)aO("empty-append-text");else try{f?.commitInlineScrollback?.({mode:w.mode,text:F}),R=!0}catch(J){aO("commit-threw",J)}}let L=tP(w,{committed:R,hadContent:E},ty.current);EC.current=L.state,MC.current=L.wasActive,ty.current=L.owns},[Aa,cy.committedSections,li,P,g]);let L$=Se(()=>me(ah,{reserveSpace:Rf,width:P,hidden:ce,mode:"inline"}),[Rf,P,ce,zC]),Zl=Se(()=>pP(un.messageRows),[un.messageRows]),iI=Se(()=>mP(Zl),[Zl]),Oa=!xC&&c.transcriptSpinnerAnimation,eu=Jr?Jr.rows.length+Jr.previewRows.length:a$,Ff=q(f=>{Jr||c$(f.scrollHeight)},[Jr]),tu=q(f=>xP({window:f,stickyHeader:di.stickyHeader,width:P,topChromeRows:0}),[P,di.stickyHeader]),$a=q((f=Ll.current,y=lf.current,w=Bg.current?tu(Bg.current):cf.current)=>{if(!w||f.length===0){ma.current=null;return}cf.current=w,ma.current=TP(f,{allRows:y,rowIndexByKey:aT(y),topOffsetRows:w.topOffsetRows,viewportHeight:w.contentWindow.viewportHeight,animateSpinners:Oa})},[tu,Oa]),nu=q(()=>{let f=cf.current;return f?.contentWindow.viewportHeight&&f.contentWindow.viewportHeight>0?f.contentWindow.viewportHeight:un.messageRows},[un.messageRows]),P$=q(f=>{Bg.current=f;let y=tu(f);cf.current=y,$a(Ll.current,lf.current,y)},[$a,tu]),Hf=q(f=>{Ll.current=f.rows,lf.current=f.allRows,$a(f.rows,f.allRows)},[$a]),Sn=q(()=>{Ar.current=null,Fg(void 0),Hg(void 0)},[]),ly=q(()=>{Sn(),Vr(f=>wl(f,void 0))},[Sn]);Xe(()=>{$a()},[$a]),Xe(()=>{u$(f=>hP(f,eu,un.messageRows))},[eu,un.messageRows]),Xe(()=>{if(!ha)return;let f=setTimeout(()=>{qT(void 0)},2e3);return()=>{clearTimeout(f)}},[ha]);let er=q((f,y="success")=>{let w=f?.trim();w&&qT({text:w,tone:y})},[]);Xe(()=>e.subscribeTransientNotices?.(f=>{er(f.text,f.tone)}),[e.subscribeTransientNotices,er]);let O$=q(f=>{er(f,"warning")},[er]),Na=q((f,y)=>{let w=y instanceof Error?y.message:String(y);return`${f}: ${w}`},[]),Wf=q(async f=>{let y=f??bo;if(!y)return!1;let w=y.text.trimEnd();if(!w)return!1;try{return await yu(w,{terminalWrite:v}),er(`Copied ${y.rowCount} selected line${y.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(R){return er(Na("Failed to copy transcript selection",R),"warning"),!1}},[bo,Na,er,v]),Da=q(f=>{if(!f||yP({items:ln,renderModel:Jr,terminalWidth:P,transcriptMaxLines:Vt,viewportRows:nu(),itemId:f,visibleRows:Ll.current,expandedItemKeys:Jn,showDetailedTools:!1}))return;let y=wP({items:ln,renderModel:Jr,terminalWidth:P,transcriptMaxLines:Vt,viewportRows:nu(),itemId:f,expandedItemKeys:Jn,showDetailedTools:!1});of(y)},[ln,P,Vt,Jr,Jn,nu,of,Ll]),sI=q(f=>{Vr(y=>wl(y,f)),f&&Da(f)},[Da]),uy=q(f=>{f&&Da(f)},[Da]),aI=q(f=>{if(!Af)return;let y=lP(ds,gt,f);y&&sI(y)},[Af,ds,gt,sI]),cI=q(()=>{!Pf||!gt||(p$(f=>{let y=new Set(f);return y.has(gt)?y.delete(gt):y.add(gt),y}),Da(gt))},[Da,Pf,gt]),lI=q(async()=>{if(!Pa||!Zn)return;let f=sT(Zn);if(f)try{await yu(f,{terminalWrite:v}),er("Copied selected transcript entry to clipboard.","success")}catch(y){er(Na("Failed to copy transcript entry",y),"warning")}},[Na,Pa,Zn,er,v]),uI=q(async()=>{if(!Lf||!Zn)return;let f=uP(Zn);if(f)try{await yu(f,{terminalWrite:v}),er("Copied selected tool args to clipboard.","success")}catch(y){er(Na("Failed to copy tool args",y),"warning")}},[Na,Lf,Zn,er,v]),ru=q(()=>lf.current,[]),dI=q((f,y)=>{if(!c.enabled||!Kt)return;let w=ma.current;return w?lT(w,f,y):void 0},[c.enabled,Kt]),Ba=q((f,y,w)=>{let R=ru(),E=vP(R,f,y,{animateSpinners:Oa,selectFullRowOnCollapsed:w?.selectFullRowOnCollapsed});ce?Hg(E):Fg(E);let L=R[Math.max(0,Math.min(y.modelRowIndex,R.length-1))];return w?.updateSelectedItem&&L?.itemId&&Vr(O=>wl(O,L.itemId)),E},[ce,ru,Oa]),fI=q((f,y)=>{if(!f)return;Ar.current=null;let w={...f,focus:y?.focusPoint??f.focus};if(!(w.mode!=="char"||w.didDrag)){Sn();return}let E=Ba(w.anchor,w.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!E){Sn();return}return y?.copySelection!==!1&&Wf(E),E},[Sn,Wf,Ba]),dy=q(()=>{if(!ce||!ln.length||Ze||Ke)return;Sn();let f=SP({items:ln,selectedItemId:gt,renderModel:Jr,terminalWidth:P,transcriptMaxLines:Vt,viewportRows:nu(),scrollOffset:_r,expandedItemKeys:Jn,showDetailedTools:!1,preferViewportAnchor:!0});Vr(y=>sL(y,{anchorItemId:f,initialMatchIndex:0})),Ea(""),Or(0)},[Ze,ln,Jn,_r,ce,gt,Jr,P,Vt,Ke,nu,Sn]),fy=q(()=>{Vr(f=>aL(f)),Ea(""),Or(0),Sn()},[Sn]),jf=q(()=>{!At||en.length===0||Or(-1)},[en.length,At]),pI=Se(()=>{if(!Ze)return null;if(Ze.tool==="exit_plan_mode"){let f=typeof Ze.input.plan=="string"?Ze.input.plan:void 0;return{prompt:Ze.prompt.split(`
|
|
174
|
-
`,1)[0]??Ze.prompt,instruction:Gl,planContent:f}}return{prompt:Ze.prompt,instruction:Gl}},[Gl,Ze]),mI=Se(()=>Ke?Ke.kind==="select"?{kind:"select",title:Ke.title,options:Ke.options,buffer:Ke.buffer,error:Ke.error,visibleSelectOptions:un.visibleSelectOptions,focusedIndex:Ke.focusedIndex,selectedIndices:Ke.selectedIndices,multiSelect:Ke.multiSelect}:{kind:"input",prompt:Ke.prompt,defaultValue:Ke.defaultValue,buffer:Ke.buffer,error:Ke.error}:null,[Ke,un.visibleSelectOptions]),$$=Se(()=>me(ch,{confirm:pI,request:mI}),[pI,mI]),py=Se(()=>{if(ha)return me(pA,{text:ha.text,tone:ha.tone})},[ha]),my=Se(()=>{if(py)return me(A,{flexDirection:"column",width:"100%",children:py})},[py]),Uf=q(()=>{Vr(f=>oL(tL(f))),Ng(!1),af(),Ea(""),Or(0),Sn()},[Sn,af]),hI=q(()=>{ce&&Ng(f=>!f)},[ce]),N$=q(()=>{if(ce){Uf();return}Ng(!1),Vr(f=>eL(f)),Ea(""),Or(0),Sn()},[Sn,Uf,ce]);Xe(()=>{AC||!Je.selectedItemId||Vr(f=>wl(f,void 0))},[AC,Je.selectedItemId]),Xe(()=>{if(!ce||!Pa||!LC){Ul.current=void 0;return}if(To||!gt||!Zn)return;if(!Ul.current){Ul.current=gt;return}if(Ul.current===gt)return;Ul.current=gt;let f=sT(Zn);f&&yu(f,{terminalWrite:v}).catch(()=>{})},[ce,Zn,gt,Pa,LC,To,v]),Xe(()=>{if(g?.isTTY!==!0)return;let f=Ds(g);f?.setShellMode?.(yC,bf),Jg||f?.setAltScreenActive?.(!1)},[yC,g,Jg,bf]);let D$=Se(()=>bA(o,()=>ef.current),[o]),Ne=we({...e,thinking:z.thinking,reasoningMode:z.reasoningMode,effort:ie,agentMode:z.agentMode,workflowRunsBaseDir:fi("workflow-runs",Is(process.cwd()).key),context:{...e.context,gitRoot:n.gitRoot??void 0,executionCwd:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),repoIntelligenceMode:z.repoIntelligenceMode,repoIntelligenceTrace:z.repoIntelligenceTrace,toolConstructionMode:!0},session:{...e.session,id:n.sessionId,storage:D$,persistedByHost:!0},guardrails:e.runtimeRunner?void 0:yT(z.permissionMode,d)});Xe(()=>{Ne.current.effort=ie},[ie]);let ou=q(f=>{let y=f.workspaceRoot??void 0;n.runtimeInfo=f,n.gitRoot=y,Ne.current.context={...Ne.current.context,gitRoot:y,executionCwd:f.executionCwd??y??process.cwd()}},[n]),xn=we(z.permissionMode),gI=we(0);Xe(()=>{xn.current=z.permissionMode},[z.permissionMode]);let B$=Se(()=>xi(),[]),Gf=we(B$),Dt=we(z);Xe(()=>{Dt.current=z},[z]);let Vf=we(null);Vf.current===null&&(Vf.current=wp({getProvider:i(()=>ps(Dt.current.provider),"getProvider"),getModel:i(()=>Dt.current.model??"","getModel")}));let hy=q(async f=>{let y=ys(f),w=++gI.current;if(H(E=>({...E,permissionMode:y})),xn.current=y,await e.runtimeAutoModeControl?.syncSettings?.(n.sessionId,y,s),w!==gI.current)return;let R=xs({provider:Dt.current.provider,model:Dt.current.model,effort:Dt.current.effort,effortOverride:Dt.current.effortOverride,permissionMode:y,planModeEffort:Dt.current.planModeEffort,thinking:Dt.current.thinking,reasoningMode:Dt.current.reasoningMode});Ne.current={...Ne.current,effort:R.runtimeEffort,guardrails:e.runtimeRunner?void 0:yT(y,d)}},[d,s,n.sessionId,e.runtimeAutoModeControl,e.runtimeRunner]),yI=we(b.pendingInputs),yt=we(!1),wI=we(0),gy=we(null),iu=we(0),Kf=q(()=>{if(Ml.current)return;let f=mf.current?.trim(),y=j.current.length>0?j.current[j.current.length-1]:void 0,w=y&&"text"in y&&typeof y.text=="string"?y.text.trim():void 0,E=sn.current.length>0?[...sn.current.map(L=>ti(L)),...f&&f!==w?[{type:"info",text:f}]:[]]:[...sn.current.map(L=>ti(L)),...PK(ke(),de(),{toolCalls:gn.current,toolNames:zr.current,infoItems:f&&f!==w?[f]:[]})];E.length!==0&&(Ml.current=!0,Ia(sn.current),pa.current?.(E))},[de,ke,Ia]);Xe(()=>{yI.current=b.pendingInputs},[b.pendingInputs]);let SI=q(()=>{yt.current=!0,se(),ne(),Q(),Y(),Ge(),Ve(),pe(void 0),ai(),Ft(void 0),ss(),ns.current=[],Sa.current=[],Et.current=null,mf.current=null,$l([]),df(null),ga(null),as(),Dl(void 0),ct(!1),g?.isTTY===!0&&Ds(g)?.clear?.()},[se,Ve,Y,Ge,as,ai,ss,pe,$l,ct,Ft,ne,Q,g]),zf=q(f=>{if(Nt.current){let w=je();return Nt.current.request().then(()=>w()).catch(R=>{ut({source:"repl:stop",level:"error",message:R instanceof Error?R.message:String(R)})}),!0}let y=ya.current;if(!y)return!1;try{let w=ov(iv(),n.sessionId??"",y.runId,f);In({type:"info",text:w.state==="confirmed"?`Workflow ${y.runId} stop confirmed.`:`Workflow ${y.runId} stop requested; waiting for cleanup.`},"workflow-stop")}catch(w){In({type:"info",text:w instanceof Error?w.message:String(w)},"workflow-stop")}return!0},[je,n.sessionId,In]);Xe(()=>{if(!Zt.shouldRender)return;let f=i(()=>{zf("stopped by Ctrl+C")},"handleSigint");return process.on("SIGINT",f),()=>{process.off("SIGINT",f)}},[zf,Zt.shouldRender]),ir(kn.Critical,f=>{let y=f.name==="escape",w=Date.now(),R=y&&!ce&&!Yr&&Al&&b.pendingInputs.length===0&&(be||Zt.shouldRender),E=R&&(f.meta===!0||w-wI.current<lK);if(wI.current=R?w:0,xL({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ce,isAwaitingUserInteraction:Yr,isInputEmpty:Al,isDoubleEscape:E,pendingInputCount:b.pendingInputs.length,hasTranscriptTextSelection:!!To,hasActiveWorkflow:Zt.shouldRender}))return zf(f.ctrl?"stopped by Ctrl+C":"stopped by Escape");if(!be)return!1;switch(TL({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ce,isAwaitingUserInteraction:Yr,isInputEmpty:Al,isDoubleEscape:E,pendingInputCount:b.pendingInputs.length,hasTranscriptTextSelection:!!To}).kind){case"interrupt":if(Nt.current){let O=je();return Nt.current.request().then(()=>O()).catch(F=>{ut({source:"repl:stop",level:"error",message:F instanceof Error?F.message:String(F)})}),!0}return Kf(),SI(),B({type:"info",text:te("cancellationRequested")}),!0;case"pop-pending-input":return kt(),!0;default:break}return!1},[be,ce,Yr,Al,b.pendingInputs.length,kt,Kf,SI,je,B,zf,To,Zt.shouldRender]),ir(kn.Critical,f=>{let y=yL({itemsLength:ln.length,currentResponse:st.currentResponse,thinkingContent:st.thinkingContent,activeToolCallsLength:st.activeToolCalls.length}),w=wL({keyName:f.name,hasTranscript:y,historyScrollOffset:_r,reviewPageSize:Zl,reviewWheelStep:iI,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:wC,supportsMouseTracking:Je.supportsMouseTracking,usesRendererMouseTracking:bf,usesManagedMouseWheel:SC,supportsWheelHistory:Je.supportsWheelHistory});if(w.kind==="mouse-phase"){let E=f.mouse;if(!E)return!1;w.phase==="press"&&Ar.current&&fI(Ar.current);let L=dI(E.row,E.column);if(w.phase==="press"){if(!L||!y)return bo||gt?(ly(),!0):(Sn(),!1);let O=QP({previous:YT.current,time:Date.now(),row:E.row,column:E.column});YT.current=O;let F=O.count>=3?"line":O.count===2?"word":"char";if(jf(),Vr(J=>wl(J,void 0)),ce?Hg(void 0):Fg(void 0),F!=="char"){let J=Cg(ru(),L.point,F);if(J)return Ar.current={anchor:J.start,focus:J.end,didDrag:!1,mode:F,anchorSpan:J},Ba(J.start,J.end,{updateSelectedItem:!1}),!0}return Ar.current={anchor:L.point,focus:L.point,didDrag:!1,mode:"char"},!0}if(!Ar.current)return!1;if(w.phase==="drag"){let O=ma.current,F=O?RP(O,E.row):0;F!==0&&sf(F);let J=L??(O?uT(O,E.row,E.column):void 0);if(!J)return!1;let Z=Ar.current;if(Z.mode!=="char"&&Z.anchorSpan){let ve=Cg(ru(),J.point,Z.mode);if(!ve)return!1;let Pe=gT(Z.anchorSpan,ve);return Ar.current={...Z,anchor:Pe.anchor,focus:Pe.focus,didDrag:!0},Ba(Pe.anchor,Pe.focus,{updateSelectedItem:!1}),!0}return Ar.current={...Z,focus:J.point,didDrag:!0},Ba(Z.anchor,J.point,{updateSelectedItem:!1}),!0}if(w.phase==="release"){let O=Ar.current,F=O.focus,Z=(L??(ma.current?uT(ma.current,E.row,E.column):void 0))?.point??F;if(O.mode!=="char"&&O.anchorSpan){let ve=Cg(ru(),Z,O.mode);if(ve){let Pe=gT(O.anchorSpan,ve);O.anchor=Pe.anchor,Z=Pe.focus}}return fI(O,{focusPoint:Z}),!0}}if(w.kind==="scroll-by")return jf(),sf(w.delta),!0;if(w.kind==="consume")return!0;let R=CL({key:f,isTranscriptMode:ce,isHistorySearchActive:At,historySearchMatchCount:en.length,hasTextSelection:!!bo,hasFocusedItem:!!gt,canCopySelectedItem:Pa,canCopySelectedToolInput:Lf,canToggleSelectedDetail:Pf,canCycleTranscriptSelection:Af});return IL({action:R,hasTranscript:y,isTranscriptMode:ce,pageScrollDelta:Zl,disarmHistorySearchSelection:jf,scrollTranscriptBy:sf,closeHistorySearchSurface:fy,backspaceHistorySearchQuery:i(()=>{Ea(E=>E.slice(0,-1)),Or(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:i(E=>{Or(L=>iT(en.length,L,E))},"stepHistorySearchSelection"),submitHistorySearchSelection:i(()=>{let E=en[ui];E&&(uy(E.itemId),fy())},"submitHistorySearchSelection"),appendHistorySearchQuery:i(E=>{Ea(L=>L+E),Or(0)},"appendHistorySearchQuery"),openHistorySearchSurface:dy,clearTranscriptSelectionFocus:ly,exitTranscriptModeSurface:Uf,toggleTranscriptShowAll:hI,scrollTranscriptHome:i(()=>{of(Math.max(0,eu-un.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:i(()=>{af(),Sn()},"scrollTranscriptToBottom"),cycleTranscriptSelection:aI,copySelectedTranscriptText:i(()=>{Wf()},"copySelectedTranscriptText"),copySelectedTranscriptItem:i(()=>{lI()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:i(()=>{uI()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:cI,navigateSearchMatch:i(E=>{Or(L=>{let O=iT(en.length,L,E),F=en[O];return F&&uy(F.itemId),O})},"navigateSearchMatch"),dumpTranscriptToScrollback:i(()=>{vL({items:ln.filter(E=>!eS(E)),exitAltScreen:i(()=>{v(Tc({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:i(E=>{v(E)},"writeToScrollback"),enterAltScreen:i(()=>{v(cm({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[ce,ln,st.currentResponse,st.thinkingContent,st.activeToolCalls,_r,eu,Zl,iI,gt,ly,Uf,hI,Je,sf,of,af,Af,ui,Sn,Wf,en,dy,fy,jf,aI,Pa,lI,Lf,uI,Pf,cI,uy,bo,dI,Je.supportsMouseTracking,To,wC,SC,Qg,cs,bf,Ba,un.messageRows]),ir(f=>{if(!Ze)return!1;let y=f.sequence.trim().toLowerCase(),w=Ze.runtimeGrantSuggestions?.find(J=>J.kind==="session"),R=Ze.runtimeGrantSuggestions?.find(J=>J.kind==="persistent"),E=!!Ze.input._alwaysConfirm,L=Ze.runtimeGrantSuggestions!==void 0,O=R!==void 0||!L&&z.permissionMode==="accept-edits"&&!E,F=i(J=>{let Z=`${te("dialog.confirm")} ${Ze.prompt}
|
|
175
|
-
\u2192 ${te(`confirm.result.${J}`)}`;!!ht.current.workerId?an({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:Z,timestamp:Date.now()}):B({type:"info",text:Z})},"recordConfirmResult");return y==="y"||y==="yes"?(F("approved"),ka(null),hr.current?.({confirmed:!0}),hr.current=null,!0):w&&(y==="s"||y==="session")?(F("approved_session"),ka(null),hr.current?.({confirmed:!0,runtimeGrantKind:"session"}),hr.current=null,!0):O&&(y==="a"||y==="always")?(F("approved_always"),ka(null),hr.current?.(R?{confirmed:!0,runtimeGrantKind:"persistent"}:{confirmed:!0,always:!0}),hr.current=null,!0):y==="n"||y==="no"||f.name==="escape"?(F("denied"),ka(null),hr.current?.({confirmed:!1}),hr.current=null,!0):f.insertable||f.name==="return"},{isActive:!!Ze,priority:kn.Critical});let Xf=q(f=>{Qn(null),Xr.current?.(f),Xr.current=null},[]),Eo=q((f,y,w,R,E)=>y.length===0||E?.aborted?Promise.resolve(void 0):new Promise(L=>{let O=i(Z=>{E?.removeEventListener("abort",F),Xr.current===O&&(Xr.current=null),L(Z)},"settle"),F=i(()=>{Xr.current===O&&(Qn(null),O(void 0))},"onAbort");Xr.current=O,E?.addEventListener("abort",F,{once:!0});let J=R?.defaultValue===void 0?-1:y.findIndex(Z=>Z.value===R.defaultValue);Qn({kind:"select",title:f,options:y,buffer:"",focusedIndex:Math.max(0,J),selectedIndices:w===!0&&J>=0?[J]:[],multiSelect:w,minSelections:R?.minSelections,maxSelections:R?.maxSelections})}),[]),F$=q((f,y)=>Eo(f,y.map(w=>({label:w,value:w}))).then(w=>Array.isArray(w)?w[0]:w),[Eo]),H$=q(async f=>{let y=e.learning;if(!y)return;let w=f;if(!w){let O=await y.list({limit:200});if(O.items.length===0){Qd([{id:"learning-center-empty",text:"Learning Center has no learned capabilities.",tone:"accent"}]);return}let F=await Eo("Learning Center \u2014 type to search",dK(O.items));w=Array.isArray(F)?F[0]:F}if(!w)return;let R=await y.get(w),E=await Eo(`${R.displayName} \xB7 ${R.carrier} \xB7 ${R.lifecycle}`,uK(R)),L=Array.isArray(E)?E[0]:E;L&&(await fK(y,R.capabilityId,L),Gr(await y.getSnapshot()))},[e.learning,Eo]),xI=q(async f=>{let y=f.options?Tg(f.options):[],w=await Eo(fT(f),y,!1);return w===void 0?mi:Array.isArray(w)?w[0]??mi:w},[Eo]);Xe(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:y}=await import("./construction-bootstrap-RX4DMHI7.js");f||y(xI)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:y}=await import("./construction-bootstrap-RX4DMHI7.js");y(null)})()}},[xI]);let Fa=q((f,y,w)=>w?.aborted?Promise.resolve(void 0):new Promise(R=>{let E=i(O=>{w?.removeEventListener("abort",L),Xr.current===E&&(Xr.current=null),R(Array.isArray(O)?O[0]:O)},"settle"),L=i(()=>{Xr.current===E&&(Qn(null),E(void 0))},"onAbort");Xr.current=E,w?.addEventListener("abort",L,{once:!0}),Qn({kind:"input",prompt:f,defaultValue:y,buffer:""})}),[]);ir(f=>{let y=If.current;if(!y)return!1;if(f.name==="escape")return Xf(void 0),!0;if(y.kind==="select"){let w=y.options.length;if(f.name==="up"||f.sequence==="k")return Qn(R=>R&&R.kind==="select"?{...R,focusedIndex:(R.focusedIndex-1+w)%w,error:void 0}:R),!0;if(f.name==="down"||f.sequence==="j")return Qn(R=>R&&R.kind==="select"?{...R,focusedIndex:(R.focusedIndex+1)%w,error:void 0}:R),!0;if(f.sequence===" "&&y.multiSelect)return Qn(R=>{if(!R||R.kind!=="select")return R;let E=R.focusedIndex,L=R.selectedIndices.includes(E)?R.selectedIndices.filter(O=>O!==E):[...R.selectedIndices,E];return{...R,selectedIndices:L,error:void 0}}),!0;if(f.name==="return"){let R=If.current;if(!R||R.kind!=="select")return!1;if(R.multiSelect){let E=R.selectedIndices.length,{minSelections:L,maxSelections:O}=R,F=E===0&&L!==0?te("select.multiselect_empty"):L!==void 0&&E<L?te("select.multiselect_min",{min:String(L)}):O!==void 0&&E>O?te("select.multiselect_max",{max:String(O)}):void 0;if(F!==void 0)return Qn(Z=>Z&&Z.kind==="select"?{...Z,error:F}:Z),!0;let J=R.selectedIndices.slice().sort((Z,ve)=>Z-ve).map(Z=>R.options[Z]?.value).filter(Z=>typeof Z=="string"&&Z.length>0);Xf(J)}else Xf(R.options[R.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(f.sequence)){let R=Number.parseInt(f.sequence,10)-1;if(R>=0&&R<w)return y.multiSelect?Qn(E=>{if(!E||E.kind!=="select")return E;let L=E.selectedIndices.includes(R)?E.selectedIndices.filter(O=>O!==R):[...E.selectedIndices,R];return{...E,focusedIndex:R,selectedIndices:L,error:void 0}}):Qn(E=>E&&E.kind==="select"?{...E,focusedIndex:R,error:void 0}:E),!0}return!1}if(f.name==="return"){let w=If.current;if(!w||w.kind!=="input")return!1;let R=w.buffer.trim();return Xf(R===""?w.defaultValue??void 0:R),!0}return f.name==="backspace"||f.name==="delete"?(Qn(w=>w&&w.kind==="input"?{...w,buffer:w.buffer.slice(0,-1),error:void 0}:w),!0):(f.insertable||f.isPasted===!0)&&!f.ctrl&&!f.meta?(Qn(w=>w&&w.kind==="input"?{...w,buffer:w.buffer+f.sequence,error:void 0}:w),!0):!1},{isActive:!!Ke,priority:kn.Critical}),Xe(()=>{if($.length===0){if(n.uiHistory?.length){let f=po(n.uiHistory);f.length!==n.uiHistory.length&&(n.uiHistory=f),k(yd({messages:n.messages,uiHistory:f}));return}n.messages.length>0&&k(yd({messages:n.messages}))}},[n.messages,n.uiHistory,$.length,k]);let yy=we(!1);Xe(()=>{let f=!0;return yy.current=!1,op(n.gitRoot).finally(()=>{f&&(yy.current=!0)}),()=>{f=!1}},[n.gitRoot]),Xe(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&qI({executionCwd:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:z.repoIntelligenceMode})},[n.gitRoot,n.runtimeInfo?.executionCwd,z.repoIntelligenceMode]);let su=q(()=>({onOutputSegmentStart:i((f,y)=>{yt.current||ud(y)||aC(f)},"onOutputSegmentStart"),onMemoryOutcomeDigest:i((f,y)=>{if(f.sessionId!==n.sessionId){e.events?.onMemoryOutcomeDigest?.(f,y);return}n.lineage=cp(n.lineage??qe(n.messages),f,y?.jobId)},"onMemoryOutcomeDigest"),onMemoryReviewReceipt:i(f=>{if(f.sessionId!==void 0&&f.sessionId!==n.sessionId){e.events?.onMemoryReviewReceipt?.(f);return}n.lineage=lp(n.lineage??qe(n.messages),f)},"onMemoryReviewReceipt"),onMemoryNotice:i(f=>{if(f.sessionId!==void 0&&f.sessionId!==n.sessionId){e.events?.onMemoryNotice?.(f);return}let y=n.lineage??qe(n.messages),w=up(y,{...f,createdAt:new Date().toISOString()});n.lineage=w,w!==y&&B({type:"info",text:`[memory] ${f.summaries.slice(0,3).join("; ")}`}),e.events?.onMemoryNotice?.(f)},"onMemoryNotice"),onThinkingDelta:i((f,y)=>{if(yt.current||mr(y,"thinking",f,{append:!0}))return;if(y?.providerRequestId!==void 0){let E=qf(rs.current,{type:"thinking.delta",providerRequestId:y.providerRequestId,text:f});if(rs.current=E.state,!E.accepted)return}b.currentTool&&(pe(void 0),Ge());let{header:w}=BA(ke()+f),R=w?`[Thinking: ${w}]`:"[Thinking]";Ft(ig(Et.current?.activeWorkerTitle?`[${Et.current.activeWorkerTitle}] ${R}`:R,Et.current?.activeWorkerTitle)),Ee(f.length),$e(f),ht.current.workerId&&(Yg("thinking",f),os.current={...os.current,thinkingItemId:St.current.activeThinkingItemId})},"onThinkingDelta"),onThinkingEnd:i((f,y)=>{if(yt.current||mr(y,"thinking",f))return;let w=ke(),R=OA(w,f);R&&R!==w&&(Y(),he(),Ee(R.length),$e(R)),ht.current.workerId&&cC(R),Q()},"onThinkingEnd"),onTextDelta:i((f,y)=>{if(!yt.current&&!mr(y,"assistant",f,{append:!0})){if(y?.providerRequestId!==void 0){let w=qf(rs.current,{type:"assistant.delta",providerRequestId:y.providerRequestId,text:f});if(rs.current=w.state,!w.accepted)return}b.currentTool&&(pe(void 0),Ge()),Q(),Ft(void 0),pt(f),ht.current.workerId&&(Yg("assistant",f),os.current={...os.current,assistantItemId:St.current.activeAssistantItemId})}},"onTextDelta"),onToolUseStart:i((f,y)=>{if(yt.current||mr(y,"tool",bE(f.name,f.input)))return;zr.current.includes(f.name)||(zr.current=[...zr.current,f.name]);let w=Et.current?.activeWorkerTitle?`[${Et.current.activeWorkerTitle}] `:"",R={id:f.id,name:`${w}${f.name}`,status:K.Executing,startTime:Date.now(),input:f.input};lC(R),ht.current.workerId&&Pr(R),Ft(Qo(R,Et.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:i((f,y,w)=>{if(yt.current||mr(w,"tool",f,{skipIfExisting:!0}))return;ft(y.length),Ue(y);let R=uC(w?.toolId,f,E=>{let L=E.preview??"",O=AA(`${L}${y}`);return{...E,preview:O||void 0,input:E.input?O?{...E.input,preview:O}:{...E.input}:O?{preview:O}:void 0}});R&&(ht.current.workerId&&Pr(R),Ft(Qo(R,Et.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:i((f,y)=>{if(yt.current||mr(y,"tool",`${f.name} completed`))return;let w=typeof f.content=="string"?f.content:String(f.content??""),R=LA(w);if(/^\[(?:Tool Error|Error)\]/.test(w)){let L=Tf(f.id,K.Error,R,R,f.name);L&&(ht.current.workerId&&Pr(L),Ft(Qo(L,Et.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(w)){let L=Tf(f.id,K.Cancelled,void 0,R,f.name);L&&(ht.current.workerId&&Pr(L),Ft(Qo(L,Et.current?.activeWorkerTitle)));return}let E=Tf(f.id,K.Success,void 0,R||void 0,f.name);E&&(ht.current.workerId&&Pr(E),Ft(Qo(E,Et.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:i((f,y)=>{if(yt.current||mr(y,"progress",f.message))return;let w=f.message.length>100?f.message.slice(0,97)+"...":f.message,R=Ra(f.id,E=>({...E,preview:w,progressLines:[...(E.progressLines??[]).slice(-4),w]}));R&&ht.current.workerId&&Pr(R),Ft(w)},"onToolProgress"),onStreamEnd:i(f=>{if(yt.current||ud(f))return;let y=Wl(K.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),w=y[y.length-1];ht.current.workerId&&y.forEach(R=>Pr(R)),w&&Ft(Qo(w,Et.current?.activeWorkerTitle)),Q(),Ge(),pe(void 0)},"onStreamEnd"),onChildActivityEnd:i(f=>{nC(f)},"onChildActivityEnd"),hasPendingInputs:i(()=>yI.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:i(f=>{if(!yt.current)for(let y of f){let w=y.trim();w&&(ht.current.workerId?an({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:w,timestamp:Date.now()}):B({type:"user",text:w}))}},"onMidTurnUserMessages"),onSidecarMessage:i(f=>{if(yt.current)return;let y=f.suggestedFix?`${f.content}
|
|
176
|
-
Suggested fix: ${f.suggestedFix}`:f.content;if(f.delivery==="budget-exhausted")iC({type:"sidecar",text:y,delivery:"budget-exhausted"},"sidecar-message");else{let w=f.verdict==="blocked"?"blocked":"revise";iC({type:"sidecar",text:y,verdict:w},"sidecar-message")}hf.current=!0},"onSidecarMessage"),onError:i(f=>{let y=XI(f);if(y.category===uu.USER_ABORT)return;let w=si();w?.name&&Ft(Qo(w,Et.current?.activeWorkerTitle));let R=Wl(K.Error,()=>({error:f.message,output:void 0})),E=R[R.length-1];ht.current.workerId&&R.forEach(ve=>Pr(ve)),E&&Ft(Qo(E,Et.current?.activeWorkerTitle));let F=[`\u274C API Error (${["Transient","Permanent","Tool Call ID","User Abort"][y.category]||"Unknown"}): ${f.message}`];y.shouldCleanup&&F.push(" \u{1F9F9} Cleaned incomplete tool calls"),y.category===uu.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")):y.category===uu.TRANSIENT?F.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):y.category===uu.TOOL_CALL_ID&&F.push(" \u2705 Session cleaned, ready to continue");let J=F.join(`
|
|
177
|
-
`);!!ht.current.workerId?an({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:J,timestamp:Date.now()}):B({type:"error",text:J})},"onError"),onRetry:i((f,y,w,R)=>{if(yt.current)return;let E=wd(f,y,w);if(Ol(R,E.text)||mr(R,"progress",E.text))return;!!ht.current.workerId?an({...E,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):B(E)},"onRetry"),onProviderRecovery:i((f,y)=>{if(yt.current)return;let w=Sd(f);if(Ol(y,w.text)||mr(y,"progress",w.text))return;let R=!!ht.current.workerId;LK({clearResponse:Ve,clearThinkingContent:Y,stopThinking:Q,clearToolInputContent:Ge,clearCurrentTool:i(()=>pe(void 0),"clearCurrentTool"),resetLiveToolCalls:ai,clearLiveActivityLabel:i(()=>Ft(void 0),"clearLiveActivityLabel")}),R?an({...w,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):B(w)},"onProviderRecovery"),onManagedTaskStatus:i(f=>{if(yt.current)return;let y=ht.current;if(rO(f)){if(y.workerId&&y.workerId!==f.activeWorkerId)T$({workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle});else if(y.workerId!==f.activeWorkerId){let O=St.current,F=O.activeToolGroupTools.some(J=>J.status===K.Executing);St.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle,...F?{activeToolGroupItemId:O.activeToolGroupItemId,activeToolGroupTools:O.activeToolGroupTools}:{activeToolGroupTools:[]}},ht.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle}}}Et.current=f,df(f);let w=NA(f);C$(w);let R=gl(f),L=gl(f,{expanded:!0})??R;L&&(mf.current=L)},"onManagedTaskStatus"),onProviderRateLimit:i((f,y,w,R)=>{if(yt.current)return;let E=gy.current;if(gy.current=null,_A(E,{attempt:f,maxAttempts:y,delayMs:w}))return;let L=`[Rate Limit] Retrying in ${w/1e3}s (${f}/${y})...`;Ol(R,L)||mr(R,"progress",L)||In({type:"info",icon:"\u23F3",text:L},"ratelimit")},"onProviderRateLimit"),onRetryAfter:i((f,y)=>{if(yt.current)return;gy.current={attempt:f.attempt,maxAttempts:f.maxAttempts,waitMs:f.waitMs};let w=Math.round(f.waitMs/1e3),R=f.source==="exponential-backoff"?"no-header \u2192 backoff":f.source,L=`[${f.reason==="overloaded"?"Overloaded":"Rate limited"}] (${f.provider}) \u2014 retrying in ${w}s [${R}] (${f.attempt}/${f.maxAttempts})`;Ol(y,L)||mr(y,"progress",L)||In({type:"info",icon:"\u23F3",text:L},"ratelimit")},"onRetryAfter"),onReasoningEffortRejected:i(f=>{PI(f.provider,f.model,f.effort,"observed",new Date().toISOString());let w=xs({provider:f.provider,model:f.model,effort:Dt.current.effort,effortOverride:Dt.current.effortOverride,permissionMode:Dt.current.permissionMode,planModeEffort:Dt.current.planModeEffort,thinking:Dt.current.thinking,reasoningMode:Dt.current.reasoningMode}).runtimeEffort;H(R=>({...R,effort:w,effortOverride:w!==void 0})),Ts({effort:w}),Ne.current.effort=w,In({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${w?`,\u5DF2\u5207\u5230 ${w}`:""}]`},"ratelimit")},"onReasoningEffortRejected"),onRepoIntelligenceTrace:i(f=>{yt.current||In(XA(f),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:i(f=>{yt.current||Co(f)},"onTodoUpdate"),onScoutSuspiciousCompletion:i(f=>{yt.current||oO&&In({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,y)=>{if(yt.current)return;if(y&&Qe(y),Et.current?.globalWorkBudget){let Z={...Et.current,budgetUsage:Math.min(Et.current.globalWorkBudget,(Et.current.budgetUsage??0)+1)};Et.current=Z,df(Z)}let w=f>1?ke().trim():"",R=f>1?TT(de()):"",E=f>1?[...zr.current]:[],L=f>1?[...gn.current]:[],O=!!ht.current.workerId;Ae(f),O&&wf({clearOwner:!1});let F=Io.current.filter(Z=>Z.status===K.Executing),J=new Set(F.map(Z=>Z.id));if(zr.current=[],gn.current=gn.current.filter(Z=>J.has(Z.id)),pr(F),Ge(),pe(void 0),Ft(ig(Et.current?.activeWorkerTitle?`[Thinking] [${Et.current.activeWorkerTitle}]`:void 0,Et.current?.activeWorkerTitle)),he(),f>1&&!O){let Z=CT({thinking:w,response:R,toolCalls:L,toolNames:E});pa.current?pa.current(Z):k([...Z])}},"onIterationStart"),beforeToolExecute:i(async(f,y)=>{let w=xn.current,R=Za(w),E=Gf.current,L=n.gitRoot;if(w==="full-access"||$o(w))return!0;if(lv(N.current,f,y))return`[Skipped] Previously denied operation. ${uv(N.current)}`;if(w==="plan"){let O=Oo(f,y,L??n.runtimeInfo?.executionCwd??process.cwd(),n.runtimeInfo?.executionCwd??L??process.cwd());if(O!==null)return`${O} ${SK}`}if(!e.runtimeRunner&&f==="bash")return!0;if(f==="bash"){let O=y.command??"";if(wi(O,L??process.cwd(),n.runtimeInfo?.executionCwd??L??process.cwd()))return!0}if(f==="bash"){let O=y.command??"",F=av(O);if(F.level==="dangerous"){let J=await Mo(f,{...y,_dangerousCommand:!0});return J.confirmed?J.confirmed:(N.current=$y(N.current,f,y,F.reason),`[Blocked] Dangerous command requires confirmation: ${F.reason}`)}}if(L){let O=!1;if(hi.has(f)){let F=y.path;F&&Qa(F,L)&&(O=!0)}if(f==="bash"){let F=y.command;F&&yp(F,L)&&(O=!0)}if(O){let F=await Mo(f,{...y,_alwaysConfirm:!0});if(xn.current==="plan"&&(hi.has(f)||f==="undo"))return!1;if(xn.current==="plan"&&f==="bash"){let J=y.command??"";if(gi(J))return!1}return F.confirmed}}if(R.has(f)){if(w==="accept-edits"&&f==="bash"&&await yi(f,y,E,Vf.current??void 0))return!0;let O=await Mo(f,y);if(xn.current==="plan"&&(hi.has(f)||f==="undo"))return!1;if(xn.current==="plan"&&f==="bash"){let F=y.command??"";if(gi(F))return!1}if(!O.confirmed)return B({type:"info",text:te("cancelled")}),N.current=$y(N.current,f,y),!1;O.always&&w==="accept-edits"&&(cc(f,y,!1),Gf.current=xi())}return!0},"beforeToolExecute"),askUser:i(async(f,y,w)=>{let R=dT(f.options?Tg(f.options):[],f),E=await Eo(fT(f),R,f.multiSelect,{minSelections:f.minSelections,maxSelections:f.maxSelections,defaultValue:f.default},w?.signal);if(E===void 0)return mi;if(E===Bn){let L=await Fa(f.customInputPrompt??f.question,f.customInputDefault,w?.signal);return L===void 0?mi:{kind:"customInput",value:L}}if(Array.isArray(E)&&E.includes(Bn)){let L=await Fa(f.customInputPrompt??f.question,f.customInputDefault,w?.signal);return L===void 0?mi:E.map(O=>O===Bn?{kind:"customInput",value:L}:O)}return E},"askUser"),exitPlanMode:i(async f=>xn.current!=="plan"?"not-in-plan-mode":(await Mo("exit_plan_mode",{plan:f})).confirmed?(hy("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:i(async(f,y,w)=>{let R=f.questions,E={},L=0;for(;L<R.length;){let O=R[L],F=dT(Tg(O.options),O);L>0&&F.push({label:te("select.back_prev"),value:hs});let J=`[${L+1}/${R.length}] ${O.question}`,Z=await Eo(J,F,O.multiSelect,{minSelections:O.minSelections,maxSelections:O.maxSelections,defaultValue:O.default},w?.signal);if(Z===void 0)return;if(!Array.isArray(Z)&&Z===hs){L--;continue}if(!Array.isArray(Z)&&Z===Bn){let ve=await Fa(O.customInputPrompt??O.question,O.customInputDefault,w?.signal);if(ve===void 0)return;E[O.question]={kind:"customInput",value:ve},L++;continue}if(Array.isArray(Z)&&Z.includes(Bn)){let ve=await Fa(O.customInputPrompt??O.question,O.customInputDefault,w?.signal);if(ve===void 0)return;E[O.question]=Z.map(Pe=>Pe===Bn?{kind:"customInput",value:ve}:Pe),L++;continue}E[O.question]=Z,L++}return E},"askUserMulti"),askUserInput:i(async(f,y,w)=>Fa(f.question,f.default,w?.signal),"askUserInput"),onCompactStart:i(()=>{mt()},"onCompactStart"),onCompactStats:i(f=>{El.current=f.tokensBefore,Mr(f.tokensAfter)},"onCompactStats"),onCompactedMessages:i(async(f,y,w)=>{let R=tg(n.lineage,f,y,w);if(!R)return;n.messages=f,y?.artifactLedger&&y.artifactLedger.length>0&&(n.artifactLedger=gs(n.artifactLedger??[],y.artifactLedger),n.sessionSnapshotDirty=!0),n.lineage=R;let E=ms(f);if(n.contextTokenSnapshot={currentTokens:E,baselineEstimatedTokens:E,source:"estimate"},Hr(n),Mr(E),e.runtimeRunner){n.lineage===R&&(n.lineage=Xa(R));return}let L=Zd.current;if(!L)throw new Error("Ink REPL compaction persistence is not initialized.");try{await L(),n.lineage===R&&(n.lineage=Xa(R))}catch(O){throw ut({source:"repl:compaction",level:"error",message:"Failed to durably persist compacted session history.",detail:O}),O}},"onCompactedMessages"),onCompact:i(f=>{oe();let y=El.current??f;El.current=null;let w=Math.round(y/1e3);In({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${w}k tokens)`},"compact")},"onCompact"),onCompactEnd:i(()=>{El.current=null,oe()},"onCompactEnd"),onIterationEnd:i(f=>{f.scope!=="worker"&&(n.contextTokenSnapshot=f.contextTokenSnapshot),Mr(f.tokenCount)},"onIterationEnd")}),[Ee,$e,Q,pt,pe,ft,Ue,Ge,Ae,he,z,n,mt,oe,B,Y,ke,de,wf,Ft,Yg,cC,Pr,aC,lC,uC,Tf,Wl,si,ai,pr,nC,Ol,mr,In,b.currentTool]),Mo=i((f,y,w,R)=>{let E=q_(f,y),L=w?.map(J=>J.label)??[],O=w===void 0?[]:[zc,...L.map(J=>`Runtime scope: ${J}`)],F=O.length>0?`${E}
|
|
178
|
-
${O.join(`
|
|
179
|
-
`)}`:E;return b$.current(()=>R?.aborted?Promise.resolve({confirmed:!1}):(yn(),new Promise(J=>{let Z=i(Pe=>{R?.removeEventListener("abort",ve),hr.current===Z&&(hr.current=null),J(Pe)},"settle"),ve=i(()=>{hr.current===Z&&(ka(null),Z({confirmed:!1}))},"onAbort");hr.current=Z,R?.addEventListener("abort",ve,{once:!0}),ka({tool:f,input:y,prompt:F,...w!==void 0?{runtimeGrantSuggestions:w}:{}})})))},"showConfirmDialog"),W$=i(async(f,y)=>{let w=await Mo(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??[],y.signal);return hh(f,w)},"requestRuntimePermission");Xe(()=>{p(z)},[z,p]),Xe(()=>{let f=i(()=>su(),"resolve");return Ey({askUser:i((y,w)=>{let R=f().askUser;if(!R)throw new Error("askUser surface unavailable");return R(y,void 0,w)},"askUser"),askUserMulti:i(async(y,w)=>{let R=f().askUserMulti;return R?R(y,void 0,w):void 0},"askUserMulti"),askUserInput:i(async(y,w)=>{let R=f().askUserInput;return R?R(y,void 0,w):void 0},"askUserInput")}),()=>Ey(void 0)},[su]);let Qr=i(async(f,y,w=n.lineage?Bt(n.lineage,n.lineage.activeEntryId):n.messages,R)=>{e.runtimeRunner||d.resetTurn(),rs.current=Ry(),os.current={};let E={...su(),getCostReport:_,onWorkflowProcessEvent:m$,onWorkflowAgentDigest:i(({runId:ve,event:Pe})=>{let Mt=Pe.data??{},Rn=typeof Mt.summary=="string"?Mt.summary:void 0,yr=typeof Mt.name=="string"?Mt.name:void 0,Ga=ya.current,fs=Rn!==void 0||yr!==void 0?wu(Rn,yr):Ga?.runId===ve?Ga.locale??"en":"en",_o=Lp(Pe,fs,ve);_o&&(ht.current.workerId?an({id:`wf-digest-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"assistant",text:_o,timestamp:Date.now()}):nr([{type:"assistant",text:_o}]))},"onWorkflowAgentDigest")},O=lu(n.gitRoot).getSystemPromptSnippet(),F=YA(f.context,n.gitRoot,n.contextTokenSnapshot,O,n.runtimeInfo?.executionCwd);R&&R.length>0&&(F.inputArtifacts=[...R]),F.planModeBlockCheck=(ve,Pe)=>xn.current!=="plan"?null:Oo(ve,Pe,n.gitRoot??n.runtimeInfo?.executionCwd??process.cwd());let J=e.runtimeRunner?void 0:rg({getPermissionMode:i(()=>xn.current,"getPermissionMode"),getAutoGuardrail:d.getGuardrail,shellSandbox:F.shellSandbox,trustedTextMutationHost:F.trustedTextMutationHost,userConfigDir:F.configHome,projectRoot:n.gitRoot??n.runtimeInfo?.executionCwd??process.cwd(),execPolicy:e.execPolicy,resolvePlanHostExecution:i(ve=>wi(ve.command,n.gitRoot??process.cwd(),n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd())?!0:"[Blocked] Plan mode cannot escalate this command to unsandboxed host execution.","resolvePlanHostExecution"),requestUserPermission:i(async(ve,Pe)=>{let Mt={...ve.toolInput,command:ve.command},Rn=xn.current;if(Pe==="mode_boundary"&&Rn==="accept-edits"&&await yi("bash",Mt,Gf.current,Vf.current??void 0))return!0;let yr=await Mo("bash",Mt,void 0,Rt());return yr.confirmed&&yr.always&&Pe==="mode_boundary"&&xn.current==="accept-edits"&&(cc("bash",Mt,!1),Gf.current=xi()),yr.confirmed},"requestUserPermission")}),Z={...f,guardrails:J!==void 0&&$o(xn.current)?[J.autoGuardrail]:void 0,session:{...f.session,initialMessages:w,initialExtensionState:n.extensionState??{},initialExtensionRecords:n.extensionRecords??[]},context:J===void 0?F:{...F,shellSandbox:J.shellSandbox,authorizeShellHostExecution:J.authorizeShellHostExecution,...J.trustedTextMutationHost===void 0?{}:{trustedTextMutationHost:J.trustedTextMutationHost}},events:E,abortSignal:Rt()};try{return e.runtimeRunner?await e.runtimeRunner({options:Z,prompt:y,sessionId:n.sessionId,permissionMode:xn.current,autoModeSettings:s,requestPermission:W$,legacyPermissionHook:!0,onStopControl:i(ve=>{Nt.current=ve},"onStopControl"),onStopState:i((ve,Pe)=>{let Mt=ve==="rejected"?`${te("cancellationRejected")} ${Pe??""}`:ve==="confirmed"?`${te("cancellationConfirmed")} ${Pe??""}`:ve==="accepted"?te("cancellationAccepted"):te("cancellationRequested");In({type:"info",text:Mt},"runtime-stop")},"onStopState")}):Z.toolInvocation?await mp(Z,Z.toolInvocation,y):await fu(Z,y)}finally{JI()}},"runAgentRound"),tr=q(f=>{let y=qe([...f],n.lineage);return n.lineage=y,y},[n]),au=q(async f=>{let y=po(f??W.current);if(!IK(n.messages.length,y.length))return;let w=Ci(n.messages);W.current=y,n.title=w,n.uiHistory=y;let R=n.lineage??tr(n.messages);n.lineage=R;let E={...n.extensionStateDirty?{extensionState:n.extensionState??{}}:{},...n.extensionRecordsDirty?{extensionRecords:n.extensionRecords??[]}:{}},L=Il({messages:n.messages,title:w,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Ne.current.session?.tag,uiHistory:y,lineage:R,artifactLedger:n.artifactLedger,...E});if(e.runtimeRunner){let O=n.sessionId,F=await gK(o,O,L);F&&n.lineage===R&&n.sessionId===O&&(n.lineage=F)}else await hK(o,n.sessionId,L,n.sessionSnapshotDirty===!0);n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,cg()&&lg("persist",ug(n.messages,R,{historyItems:j.current,foregroundItems:sn.current,streamingResponse:fe.current.currentResponse,streamingThinking:fe.current.thinkingContent,persistedUiHistory:W.current}))},[n,e.runtimeRunner,tr,o]),wy=q(()=>{if(tf.current)return tf.current;let f=(async()=>{try{for(;es.current.requested;){es.current.requested=!1;let y=es.current.uiHistoryOverride;es.current.uiHistoryOverride=void 0,await au(y)}}finally{tf.current=null,es.current.requested&&wy().catch(Qi)}})();return tf.current=f,ef.current=f,f},[au]),Zr=q(f=>{if(f!==void 0){let y=po(f);W.current=y,es.current.uiHistoryOverride=y}return es.current.requested=!0,wy()},[wy]),j$=q(async()=>{if(_l.current)return _l.current;let f=(async()=>{yt.current=!0,se(),ne(),Q(),Y(),Ge(),Ve(),pe(void 0),ct(!1),await ef.current.catch(Qi),await Zd.current?.().catch(Qi),Be(!1),I&&T?.isRaw&&S(!1),T?.pause?.(),T?.unref?.(),h(),l()})();return _l.current=f.finally(()=>{_l.current=null}),_l.current},[se,Ve,Y,Ge,h,I,l,pe,ct,S,T,ne,Q]);Xe(()=>(Zd.current=Zr,()=>{Zd.current=null}),[Zr]);let Sy=q(f=>{if(f.length===0)return;let y=Gd(W.current,f);W.current=y,Zr(y).catch(Qi)},[Zr]),nr=q(f=>{f.length!==0&&(k([...f]),Sy(f))},[k,Sy]),Ha=q(f=>{f.length!==0&&(k([...f]),W.current=Gd(W.current,f))},[k]);Xe(()=>(pa.current=nr,()=>{pa.current=null}),[nr]);let TI=q(async f=>{yn();let y=hf.current;hf.current=!1,Ig(n,f),yK(e.runtimeRunner!==void 0,f)||(n.messages=f.messages,n.contextTokenSnapshot=f.contextTokenSnapshot,tr(f.messages));let w=f.success===!1&&!f.interrupted,R=ke().trim(),E=mb(f.messages,de(),f.managedTask?.verdict.summary,f.lastText),L=St.current.workerTitle,O=[...sn.current],F=O.length>0;Ia(O);let J=F&&O.some(Ct=>Ct.type==="assistant"&&"text"in Ct&&nO(String(Ct.text??""),L)),Z=O.filter(Ct=>Ct.type!=="assistant"||!("text"in Ct)||nO(String(Ct.text??""),L)),ve=!w&&E&&!J,Pe=[...Sa.current],Mt=DA(f,{sidecarMessageDelivered:y}),Rn=w?[]:Pe.length===0?oO?Mt:Mt.filter(Ct=>!_x(Ct)):[],yr=F?[]:CT({thinking:R,response:void 0,toolCalls:gn.current,toolNames:zr.current}),Ga=[...Z.map(Ct=>ti(Ct)),...yr,...w?[]:Pe.map(Ct=>ti(Ct)),...Rn.map(Ct=>tO(Ct)),...ve?[{type:"assistant",text:f.interrupted?`${E}
|
|
180
|
-
|
|
181
|
-
[Interrupted]`:E}]:!E&&!J&&!f.interrupted&&!w?[{type:"info",text:"[No response text was produced for this round]"}]:[]],fs=Gd(W.current,Ga);Y(),Ve();let _o=[...Z.map(Ct=>ti(Ct)),...yr,...w?[]:[...Rn.map(Ct=>tO(Ct)),...Pe.map(Ct=>ti(Ct))],...ve?[{type:"assistant",text:f.interrupted?`${E}
|
|
182
|
-
|
|
183
|
-
[Interrupted]`:E}]:!E&&!J&&!f.interrupted&&!w?[{type:"info",text:"[No response text was produced for this round]"}]:[]];k(_o),zr.current=[],gn.current=[],ai(),Ge(),pe(void 0),Ft(void 0),ss(),ns.current=[],Sa.current=[],$l([]),it(),Zr(fs).catch(Qi)},[k,it,Ge,Ve,Y,n,yn,de,ke,e.runtimeRunner,Zr,tr,ai,ss,pe,Ft,b.currentIteration]),Wa=q(async f=>{let y=f.trim();y&&(B({type:"user",text:y}),fr(w=>w+1),Hr(n))},[B,n]),ja=q(async f=>{let y=n.contextTokenSnapshot,w;try{w=await Cs(f,{workingDirectory:Ne.current.context?.executionCwd??process.cwd(),projectRoot:n.gitRoot??void 0,sessionId:n.sessionId,environment:{},executeDynamicContext:n.skillDynamicContext?.execute,disableDynamicContext:n.skillDynamicContext?.disable})}catch(E){if(!(E instanceof lc))throw E;let L=`[${E.message}]`;return B({type:"info",text:L}),gu({success:!1,lastText:L,signal:"BLOCKED",signalReason:E.message,messages:[...n.messages],sessionId:n.sessionId},y)}if(!w){let E=Kx(f)?Do(f.trim()):null;if(!E)return;let O=`[Unknown command: /${E.skillInvocation?.name??E.command}. Type /help for available commands]`;return gu({success:!0,lastText:O,messages:[...n.messages,{role:"user",content:f},{role:"assistant",content:O}],sessionId:n.sessionId},y)}let R=await Ks({...Ne.current,provider:z.provider,thinking:z.thinking,reasoningMode:z.reasoningMode},w,f,E=>B({type:"info",text:E}));if(R.mode==="manual"||!R.prompt||!R.options)return R.manualOutput&&B({type:"info",text:R.manualOutput}),await R.finalize(),gu({success:!1,lastText:"",signal:"BLOCKED",signalReason:R.manualOutput??"Queued Skill invocation was blocked.",messages:[...n.messages],sessionId:n.sessionId},y);try{let E=R.mode==="fork"?[]:n.lineage?Bt(n.lineage,n.lineage.activeEntryId):n.messages,L=await Qr(R.options,R.prompt,E);if(await R.finalize(),R.mode!=="fork")return L;let O=L.messages.find(J=>J.role==="user"),F=L.messages.slice().reverse().find(J=>J.role==="assistant");return gu({...L,messages:[...n.messages,...O?[O]:[],...F?[F]:[]]},y)}catch(E){throw await R.finalize(E instanceof Error?E:new Error(String(E))),E}},[B,n,z.provider,z.reasoningMode,z.thinking,Qr]),Ua=q(async(f,y)=>{let w=iu.current;yt.current=!1,Ml.current=!1,hf.current=!1,ii(!0);try{return await hL({initialPrompt:f,runRound:y,shiftPendingPrompt:on,peekPendingPromptDelivery:qn,onRoundComplete:i(async R=>{iu.current===w&&await TI(R)},"onRoundComplete"),onBeforeQueuedRound:i(async R=>{yt.current=!1,Ml.current=!1,await Wa(R)},"onBeforeQueuedRound"),shouldContinue:i(R=>!yt.current&&R.success!==!1,"shouldContinue"),shouldDrainQueuedPrompts:i(()=>kl.current?fe.current.pendingInputs.length===0?(kl.current=!1,!0):!1:!0,"shouldDrainQueuedPrompts")})}finally{ii(!1)}},[qn,TI,on,Wa]),CI=q(async f=>{if(n.messages.length===0)return"empty";if(!Xi(z,"Recovering into a new session",Vd))return"blocked";let w=n.sessionId,R=n.lineage??tr(n.messages);n.lineage=R;let E=n.artifactLedger?structuredClone(n.artifactLedger):void 0,L=fp({sourceSessionId:w,messages:n.messages,lineage:R,artifactLedger:E,reason:"provider session recovery"}),O=n.title||Ci(n.messages);await o.save(n.sessionId,Il({messages:n.messages,title:O,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Ne.current.session?.tag,uiHistory:W.current,lineage:R,artifactLedger:E,extensionState:n.extensionState,extensionRecords:n.extensionRecords}));let F=Vs(),J=qe(L.messages);await o.save(F,Il({messages:L.messages,title:L.title,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Ne.current.session?.tag,uiHistory:[],lineage:J,artifactLedger:E}));let Z=new Date().toISOString();n.sessionId=F,n.messages=L.messages,n.uiHistory=[],n.title=L.title,n.contextTokenSnapshot=void 0,n.lineage=J,n.artifactLedger=E,n.extensionState=void 0,n.extensionRecords=void 0,n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,n.createdAt=Z,n.lastAccessed=Z,W.current=[],Ne.current.session={...Ne.current.session,id:F},Mr(null),D(),Co([]),Wy()?.reset(),U(F),m?.writer.update({sessionId:F}),Ha([{type:"info",text:`Recovered into new session ${F}
|
|
184
|
-
Source session saved: ${w}
|
|
185
|
-
Raw provider history was not replayed.`}]),await o.save(F,Il({messages:n.messages,title:n.title,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Ne.current.session?.tag,uiHistory:W.current,lineage:n.lineage,artifactLedger:n.artifactLedger}));let ve=dp(f);try{await Wa(ve),await Ua(ve,async Pe=>{let Mt=await ja(Pe);if(Mt)return Mt;let Rn=yl(Pe,Ne.current.context?.executionCwd??process.cwd());for(let yr of Rn.warnings)B({type:"info",text:yr});return Qr(Ne.current,Rn.promptText,n.messages,Rn.inputArtifacts)})}catch(Pe){let Mt=Pe instanceof Error?Pe.message:String(Pe);return nr([{type:"error",text:`[Recover failed] ${Mt}`}]),"failed"}return"recovered"},[B,nr,Ha,D,n,z,tr,Ua,ja,Wa,o,m]),xy=q(async()=>{let f=on();if(!f||!f.trim())return;let y=f.trim();await Wa(y),await Ua(y,async w=>await ja(w)??Qr(Ne.current,w))},[Qr,Ua,ja,on,Wa]),Ty=q(f=>{let y=f[f.length-1];if(y?.role!=="assistant")return;let w=uc(y);k(w.map(Ti))},[k]),II=q(async(f,y)=>{let w=await Ks({...Ne.current,provider:z.provider,thinking:z.thinking,reasoningMode:z.reasoningMode},f,y,R=>B({type:"info",text:R}));if(w.mode==="manual"){w.manualOutput&&B({type:"info",text:w.manualOutput}),await w.finalize();return}if(!w.prompt||!w.options){await w.finalize();return}ii(!0);try{let R=w.mode==="fork"?[]:n.lineage?Bt(n.lineage,n.lineage.activeEntryId):n.messages,E=iu.current,L=await Qr(w.options,w.prompt,R);if(iu.current!==E)await w.finalize();else{let O=W.current,F=[];if(w.mode==="fork"){let J=L.messages.find(ve=>ve.role==="user");J&&n.messages.push(J);let Z=L.messages.slice().reverse().find(ve=>ve.role==="assistant");if(Z){n.messages.push({role:"assistant",content:Z.content}),tr(n.messages);for(let ve of uc(Z)){let Pe=Ti(ve);B(Pe),F.push(Pe)}}}else{n.messages=L.messages,n.contextTokenSnapshot=L.contextTokenSnapshot,tr(L.messages),Ty(L.messages);let J=L.messages[L.messages.length-1];if(J?.role==="assistant")for(let Z of uc(J))F.push(Ti(Z))}Ig(n,L),await au(Gd(O,F)),cg()&&lg("round-end",ug(n.messages,n.lineage,{historyItems:j.current,foregroundItems:sn.current,streamingResponse:fe.current.currentResponse,streamingThinking:fe.current.thinkingContent,persistedUiHistory:W.current})),await w.finalize()}}catch(R){let E=R instanceof Error?R:new Error(String(R));throw await w.finalize(E),ii(!1),E}ii(!1),await xy()},[B,Ty,n,z.provider,z.thinking,xy,au,tr,Qr]),U$=q(async f=>{for(let y of f.pastedContents)if(y.type==="text"&&!y.content&&y.contentHash)try{let w=await Mb(y.contentHash);w&&(y.content=w)}catch{}},[]),G$=q(async f=>{let{displayText:y,fullText:w,pastedContents:R}=f;if(!w.trim()||!wt||Ze||Ke)return;for(let ye of R){if(ye.type!=="text"||ye.content.length<1024)continue;let Me=kb(ye.content);Eb(Me,ye.content)}if(fC(!1),be){if(!Ur)return;if(b.pendingInputs.length>=5){In({type:"info",icon:"\u23F3",text:`Queued follow-up limit reached (${5}). Wait for the next round or press Esc to remove the latest item.`},"queue-limit");return}let ye=Kx(w),Me=ye?Do(w.trim()):null,On=Me!==null&&Me.skillInvocation===void 0&&Ob(Me.command,n.gitRoot??void 0),$n=lu(n.gitRoot),Nn;try{Nn=On?void 0:lb(w,Dn=>$n.has(Dn),yy.current)}catch(Dn){if(!(Dn instanceof lc))throw Dn;In({type:"info",icon:"\u26A0",text:Dn.message},"multiple-user-skill-references");return}if(ye&&!Nn){In({type:"info",icon:"\u26A0",text:pL},mL);return}let Ao=Nn?{delivery:"host"}:void 0;Og();let wr=b.currentTool;if(wr&&du(wr)?.interruptBehavior==="cancel"){pn(w,Ao),se({preservePendingInputs:!0}),rf(""),nf(!0),fr(X=>X+1),Hr(n);return}pn(w,Ao),rf(""),nf(!0),fr(Dn=>Dn+1),Hr(n);return}Og();let E=TT(de()),L=sn.current.map(ye=>ti(ye)),O=L.length>0;L.length>0&&(Ia(sn.current),Ha(L)),!O&&E&&Ha([{type:"assistant",text:E+`
|
|
186
|
-
|
|
187
|
-
[Interrupted]`}]),Ha([{type:"user",text:y}]),rf(""),nf(!0),fr(ye=>ye+1),cg()&&lg("turn-start",ug(n.messages,n.lineage,{historyItems:j.current,foregroundItems:sn.current,streamingResponse:fe.current.currentResponse,streamingThinking:fe.current.thinkingContent,persistedUiHistory:W.current})),ct(!0),yt.current=!1,Ml.current=!1,++iu.current,df(null),ga(null),Et.current=null,mf.current=null,Ft(void 0),ss(),ns.current=[],Sa.current=[],$l([]),as(),Dl(void 0),zr.current=[],gn.current=[],ai(),Xg(),Ve(),Ge(),pe(void 0),it(),C(),Hr(n),await new Promise(ye=>setTimeout(ye,50));let F=i(ye=>{if(ye.stage==="started"||ye.stage==="generating"||ye.stage==="validating"||ye.stage==="ready"){ga(ye.message);return}ga(null)},"handleWorkflowBuilderEvent"),J=Gg,Z=i(ye=>{if(ye.type==="event")return;let Me=Yt(ye.text).trimEnd();if(Me.trim()){if(ye.type==="error"){B({type:"error",text:Me});return}if(ye.type==="assistant"){nr([{type:"assistant",text:Me}]);return}In({type:"info",text:Me},"workflow-message")}},"handleWorkflowRunMessage"),ve=i(async(ye,Me,On)=>{if(hp({source:ye.source}).action==="none")return!1;let Nn=[],Ao=console.log;console.log=(...re)=>{Nn.push(wT(re))};let wr=!1,Dn=i(()=>{wr||(wr=!0,n.messages.push({role:"user",content:Me||ye.request}))},"commitWorkflowUserMessage"),X={...On,onWorkflowRunMessage:i(re=>{if(On.onWorkflowRunMessage?.(re),re.type!=="assistant"||re.final!==!0)return;let ge=Yt(re.text).trimEnd();ge.trim()&&(Dn(),n.messages.push({role:"assistant",content:ge}),tr(n.messages),Zr().catch(Qi),fe.current.pendingInputs.length>0&&(kl.current=!0))},"onWorkflowRunMessage")};try{let re=await Pp({request:ye.request,callbacks:X,approval:z.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:ye.displayName,processSource:ye.processSource??"command",...ye.builtin!==void 0?{builtin:ye.builtin}:{},onBuilderEvent:X.onWorkflowBuilderEvent});return re==="started"&&fe.current.pendingInputs.length>0&&(kl.current=!0),gp({outcome:re})}finally{ga(null),console.log=Ao;let re=ST(Nn.filter((ge,zt,tn)=>tn.indexOf(ge)===zt));re&&B({type:"info",text:re})}},"runWorkflowInvocation"),Pe=Do(w.trim()),Mt;try{Mt=Pe||w.trim().startsWith("!")?void 0:await Cs(w.trim(),{workingDirectory:Ne.current.context?.executionCwd??process.cwd(),projectRoot:n.gitRoot??void 0,sessionId:n.sessionId,environment:{},executeDynamicContext:n.skillDynamicContext?.execute,disableDynamicContext:n.skillDynamicContext?.disable})}catch(ye){if(!(ye instanceof lc))throw ye;B({type:"info",text:`[${ye.message}]`});return}if(Pe||Mt){let ye=!1,Me=i(X=>{Pe?.command==="workflow"&&(ye||(ye=!0,n.messages.push({role:"user",content:w.trim()})),n.messages.push({role:"assistant",content:X}),tr(n.messages),Zr().catch(Qi))},"commitSlashWorkflowFinalMessage"),On={getRuntimeStatus:e.getRuntimeStatus,validateSetupA2AConfig:e.validateSetupA2AConfig,prepareSetupSandbox:e.prepareSetupSandbox,inspectSandbox:e.inspectSandbox,learning:e.learning,getLearningSummary:e.learning?()=>e.learning.getSnapshot():void 0,openLearningCenter:H$,exit:j$,saveSession:i(async()=>{if(n.messages.length>0){let X=Ci(n.messages);n.title=X;let re=n.lineage??tr(n.messages);n.lineage=re,await o.save(n.sessionId,Il({messages:n.messages,title:X,gitRoot:n.gitRoot??"",runtimeInfo:n.runtimeInfo,tag:Ne.current.session?.tag,uiHistory:W.current,lineage:re,artifactLedger:n.artifactLedger,extensionState:n.extensionState,extensionRecords:n.extensionRecords})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1}},"saveSession"),startNewSession:i(()=>{let X=Vs(),re=new Date().toISOString();n.sessionId=X,n.title="",n.uiHistory=[],n.contextTokenSnapshot=void 0,n.lineage=void 0,n.artifactLedger=void 0,n.extensionState=void 0,n.extensionRecords=void 0,n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.sessionSnapshotDirty=!1,W.current=[],n.createdAt=re,n.lastAccessed=re,ou(r),Ne.current.session={...Ne.current.session,id:X},Mr(null),D(),Co([]),Wy()?.reset(),U(X),m?.writer.update({sessionId:X})},"startNewSession"),loadSession:i(async X=>{let re=await o.load(X);if(re){if(!Xi(z,"Resuming a saved session",Vd))return"blocked";let zt=await no({cwd:process.cwd()}),tn=Fn(re),Sr=tn??zt;return tn?.workspaceRoot&&!_p(tn)&&(Sr=zt),n.messages=re.messages,n.uiHistory=Fi(re.uiHistory),n.lineage=re.lineage,n.artifactLedger=re.artifactLedger,n.extensionState=re.extensionState?structuredClone(re.extensionState):void 0,n.extensionRecords=re.extensionRecords?.map(cu=>({...cu})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=re.title,n.sessionId=X,n.contextTokenSnapshot=void 0,ou(Sr),n.sessionSnapshotDirty=JSON.stringify(Sr)!==JSON.stringify(tn),Ne.current.session={...Ne.current.session,id:X,tag:re.tag},W.current=n.uiHistory??[],Mr(null),D(),Co([]),U(X),m?.writer.update({sessionId:X}),console.log(_t.green(`[Session loaded: ${X}]`)),"loaded"}return"missing"},"loadSession"),listSessions:i(async()=>{let X=await o.list(n.gitRoot??void 0);if(X.length===0){console.log(_t.dim(`
|
|
188
|
-
[No saved sessions]`));return}console.log(_t.bold(`
|
|
189
|
-
Recent Sessions:
|
|
190
|
-
`));for(let re of X.slice(0,10))console.log(` ${_t.cyan(re.id)} ${_t.dim(`(${re.msgCount} messages)`)} ${re.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:i(()=>{n.uiHistory=[],D(),Co([])},"clearHistory"),printHistory:i(()=>{if(n.messages.length===0){console.log(_t.dim(`
|
|
191
|
-
[No conversation history]`));return}console.log(_t.bold(`
|
|
192
|
-
Conversation History:
|
|
193
|
-
`));let X=n.messages.slice(-20);for(let re=0;re<X.length;re++){let ge=X[re],zt=_t.cyan(ge.role.padEnd(10)),tn=Mp(ge.content),Sr=tn.slice(0,60).replace(/\n/g," "),cu=tn.length>60?"...":"";console.log(` ${(re+1).toString().padStart(2)}. ${zt} ${Sr}${cu}`)}console.log()},"printHistory"),switchProvider:i((X,re)=>{let ge=xs({provider:X,model:re,effort:Dt.current.effort,effortOverride:Dt.current.effortOverride,permissionMode:Dt.current.permissionMode,planModeEffort:Dt.current.planModeEffort,thinking:Dt.current.thinking,reasoningMode:Dt.current.reasoningMode});H(zt=>({...zt,provider:X,model:re})),Ne.current.provider=X,Ne.current.model=re,Ne.current.effort=ge.runtimeEffort,ge.diagnostic&&console.log(_t.yellow(`
|
|
194
|
-
[${ge.diagnostic}]`))},"switchProvider"),setThinking:i(X=>{let re=X?"auto":"off";H(ge=>({...ge,thinking:X,reasoningMode:re})),Ne.current.thinking=X,Ne.current.reasoningMode=re},"setThinking"),setEffort:i(X=>{H(re=>({...re,effort:X,effortOverride:X!==void 0}))},"setEffort"),setReasoningMode:i(X=>{let re=X!=="off";H(ge=>({...ge,thinking:re,reasoningMode:X})),Ne.current.thinking=re,Ne.current.reasoningMode=X},"setReasoningMode"),setAgentMode:i(X=>{H(re=>({...re,agentMode:X})),Ne.current.agentMode=X},"setAgentMode"),setPermissionMode:hy,setRepoIntelligenceRuntime:i(X=>{H(re=>({...re,...X.mode!==void 0?{repoIntelligenceMode:X.mode}:{},...X.trace!==void 0?{repoIntelligenceTrace:X.trace}:{}})),X.mode!==void 0&&(process.env.KODAX_REPO_INTELLIGENCE=X.mode,Ne.current.context={...Ne.current.context,repoIntelligenceMode:X.mode}),X.trace!==void 0&&(X.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,Ne.current.context={...Ne.current.context,repoIntelligenceTrace:X.trace})},"setRepoIntelligenceRuntime"),deleteSession:i(async X=>{await o.delete?.(X)},"deleteSession"),deleteAllSessions:i(async()=>{await o.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let X=await o.getLineage?.(n.sessionId);if(!X){console.log(_t.dim(`
|
|
195
|
-
[No session tree available for this session]`));return}let re=og(ap(X));console.log(_t.bold(`
|
|
196
|
-
Session Tree:
|
|
197
|
-
`)),re.forEach(ge=>console.log(` ${ge}`)),console.log()},"printSessionTree"),switchSessionBranch:i(async X=>{if(!Xi(z,"Switching session branches",Vd))return"blocked";let ge=await o.setActiveEntry?.(n.sessionId,X,{summarizeCurrentBranch:!0});if(!ge)return"missing";n.messages=ge.messages,n.uiHistory=Fi(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 zt=Fn(ge),tn=zt??n.runtimeInfo??r;return ou(tn),n.sessionSnapshotDirty=JSON.stringify(tn)!==JSON.stringify(zt),W.current=n.uiHistory??[],Mr(null),D(),Co([]),console.log(_t.green(`
|
|
198
|
-
[Switched to tree entry: ${X}]`)),console.log(_t.dim(` Messages: ${ge.messages.length}`)),"switched"},"switchSessionBranch"),labelSessionBranch:i(async(X,re)=>{let ge=await o.setLabel?.(n.sessionId,X,re);if(!ge)return!1;n.lineage=ge.lineage;let zt=re&&re.trim()?`checkpoint label set: ${re.trim()}`:"checkpoint label cleared";return console.log(_t.green(`
|
|
199
|
-
[${zt}]`)),!0},"labelSessionBranch"),forkSession:i(async X=>{if(!Xi(z,"Forking a session branch",Vd))return"blocked";let ge=await o.fork?.(n.sessionId,X);if(!ge)return"failed";n.sessionId=ge.sessionId,n.messages=ge.data.messages,n.uiHistory=Fi(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(cu=>({...cu})),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,n.title=ge.data.title,n.contextTokenSnapshot=void 0;let zt=Fn(ge.data),tn=zt??n.runtimeInfo??r;ou(tn),n.sessionSnapshotDirty=JSON.stringify(tn)!==JSON.stringify(zt),W.current=n.uiHistory??[];let Sr=new Date().toISOString();return n.createdAt=Sr,n.lastAccessed=Sr,Ne.current.session={...Ne.current.session,id:ge.sessionId,tag:ge.data.tag},Mr(null),D(),Co([]),U(ge.sessionId),m?.writer.update({sessionId:ge.sessionId}),console.log(_t.green(`
|
|
200
|
-
[Forked session: ${ge.sessionId}]`)),console.log(_t.dim(` Messages: ${ge.data.messages.length}`)),"forked"},"forkSession"),recoverSession:CI,rewindSession:i(async X=>{if(!Xi(z,"Rewinding session",Vd))return"blocked";let ge=await o.rewind?.(n.sessionId,X);if(!ge)return"failed";n.messages=ge.messages,n.uiHistory=Fi(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 zt=Fn(ge),tn=zt??n.runtimeInfo??r;return ou(tn),n.sessionSnapshotDirty=JSON.stringify(tn)!==JSON.stringify(zt),W.current=n.uiHistory??[],Mr(null),D(),Co([]),console.log(_t.green(`
|
|
201
|
-
[Rewound session${X?` to ${X}`:" to previous turn"}]`)),console.log(_t.dim(` Messages: ${ge.messages.length}`)),"rewound"},"rewindSession"),getCostReport:i(()=>_.current?.()??null,"getCostReport"),getAutoModeStats:i(async()=>{if($o(xn.current))return e.runtimeAutoModeControl?e.runtimeAutoModeControl.getStats(n.sessionId):d.getGuardrail().getStats()},"getAutoModeStats"),createKodaXOptions:i(()=>({...Ne.current,provider:z.provider,model:z.model,effort:ie,thinking:z.thinking,reasoningMode:z.reasoningMode,agentMode:z.agentMode,guardrails:e.runtimeRunner?void 0:yT(xn.current,d),events:su()}),"createKodaXOptions"),executeToolInvocation:i(async(X,re)=>{let ge=await Qr({...Ne.current,toolInvocation:X},re);return n.messages=ge.messages,n.lineage=qe(ge.messages,n.lineage),Ig(n,ge),ge},"executeToolInvocation"),reloadAgentsFiles:i(async()=>await ZI({cwd:process.cwd(),projectRoot:n.gitRoot??void 0}),"reloadAgentsFiles"),startCompacting:i(()=>{mt()},"startCompacting"),stopCompacting:i(()=>{oe()},"stopCompacting"),onCompactStats:i(X=>{El.current=X.tokensBefore,Mr(X.tokensAfter)},"onCompactStats"),confirm:i(async X=>(await Mo("confirm",{_alwaysConfirm:!0,_message:X})).confirmed,"confirm"),onWorkflowBuilderEvent:F,onWorkflowRunMessage:i(X=>{if(Z(X),X.type!=="assistant"||X.final!==!0)return;let re=Yt(X.text).trimEnd();re.trim()&&Me(re)},"onWorkflowRunMessage"),onWorkflowRunUpdate:J,ui:{select:i(async(X,re)=>F$(X,re),"select"),confirm:i(async X=>(await Mo("confirm",{_alwaysConfirm:!0,_message:X})).confirmed,"confirm"),input:i(async(X,re)=>Fa(X,re),"input")}};e.runtimeRunner&&Pe&&await ef.current.catch(Qi);let $n=[],Nn=console.log;console.log=(...X)=>{$n.push(wT(X))};let Ao=Mt,wr;try{let X=Pe?await vs(Pe,n,On,z,w.trim()):void 0;typeof X=="object"&&X!==null&&"invocation"in X&&(Ao=X.invocation),typeof X=="object"&&X!==null&&"workflow"in X&&(wr=X.workflow)}finally{ga(null),console.log=Nn}let Dn=ST($n);if(Dn&&B({type:"info",text:Dn}),wr){try{await ve(wr,w.trim(),On)}finally{fe.current.pendingInputs.length>0&&(kl.current=!0),ct(!1),ne(),Y()}return}if(Ao){ct(!1),ne(),ct(!0),C(),he();try{await II(Ao,w.trim())}catch(X){let re=X instanceof Error?X:new Error(String(X)),ge=re.name==="AbortError"||re.message.includes("aborted")||re.message.includes("ABORTED");console.log=Nn,ge?Kf():nr([{type:"error",text:re.message}])}finally{ct(!1),ne(),Y()}return}ct(!1),ne();return}let Rn=await vS(w.trim(),{execute:i(async ye=>{let Me=await Qr({...Ne.current,toolInvocation:{name:"bash",input:{command:ye}}},`!${ye}`);return n.messages=Me.messages,n.lineage=qe(Me.messages,n.lineage),Ig(n,Me),Me},"execute"),onOutput:i(ye=>nr([{type:"info",text:ye}]),"onOutput")});if(w.trim().startsWith("!")&&gd(Rn)){ct(!1),ne();return}let yr=Ne.current.context?.executionCwd??process.cwd(),Ga=i(ye=>{ye.length!==0&&nr(ye.map(Me=>({type:"info",text:Me})))},"emitArtifactWarnings");he();let fs=[],_o=console.log;console.log=(...ye)=>{fs.push(wT(ye))};let Ct=!1,_I=i(()=>{if(yt.current)return;let ye=Wl(K.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));ye.length>0&&ht.current.workerId&&ye.forEach(Me=>Pr(Me))},"finalizeOrphanedManagedTools"),q$=bK({finalizeOrphanedTools:_I,flushText:yn,readItems:i(()=>sn.current,"readItems"),markUserItemsCommitted:Ia,stage:i(ye=>{let Me=Gd(W.current,ye);return W.current=Me,k([...ye]),Me},"stage"),persist:Zr,clear:ss}),vy=i(async()=>{Ct&&await q$()&&(Ct=!1)},"commitFailedManagedForeground");try{await Ua(Rn,async ye=>{let Me=await ja(ye);if(Me)return Me;let On=yl(ye,Ne.current.context?.executionCwd??process.cwd());return Ga(On.warnings),Qr(Ne.current,On.promptText,n.messages,On.inputArtifacts)})}catch(ye){let Me=ye instanceof Error?ye:new Error(String(ye));if(Me.name==="AbortError"||Me.message.includes("aborted")||Me.message.includes("ABORTED"))console.log=_o,Kf();else{let $n=Me.message;Me.message.includes("rate limit")||Me.message.includes("Rate limit")?$n=`[Rate Limit] ${Me.message}
|
|
202
|
-
Suggestion: Wait a moment and try again, or switch provider with /mode`:Me.message.includes("API key")||Me.message.includes("not configured")?$n=`[Configuration Error] ${Me.message}
|
|
203
|
-
Suggestion: Set the required API key environment variable`:Me.message.includes("network")||Me.message.includes("ECONNREFUSED")||Me.message.includes("ETIMEDOUT")?$n=`[Network Error] ${Me.message}
|
|
204
|
-
Suggestion: Check your internet connection`:(Me.message.includes("token")||Me.message.includes("context too long"))&&($n=`[Context Error] ${Me.message}
|
|
205
|
-
Suggestion: Use /clear to start fresh`),console.log=_o;let Nn=vK(ht.current.workerId,sn.current.length);if(Nn?(yn(),an({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:$n,timestamp:Date.now()}),Ct=!0):nr([{type:"error",text:$n}]),$p({error:Me,messageCount:n.messages.length})){let wr={type:"info",text:Su};if(Nn?an({id:`recover-hint-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,...wr,timestamp:Date.now()}):nr([wr]),await vy(),(await Mo("confirm",{_alwaysConfirm:!0,_message:Op})).confirmed)try{await CI(Rn)}catch(X){let re=X instanceof Error?X.message:String(X);nr([{type:"error",text:`[Recover failed] ${re}`}])}}await vy()}}finally{if(console.log=_o,fs.length>0){let ye=fs.filter((On,$n,Nn)=>Nn.indexOf(On)===$n),Me=ST(ye);Me&&B({type:"info",text:Me})}_I(),await RK({commit:vy,cleanup:i(()=>{ct(!1),ne(),Ve(),Xg(),Y();let ye=ms(n.messages);n.contextTokenSnapshot={currentTokens:ye,baselineEstimatedTokens:ye,source:"estimate"},Mr(ye)},"cleanup")})}},[wt,n,z,Ur,b.pendingInputs.length,o,Ze,Ke,h,l,B,D,C,ne,Ve,su,II,Rt,de,ke,an,ss,yn,Ia,Ha,nr,Ty,au,Zr,Sy,tr,Ua,ja,xy,mt,oe,ai,Xg,Wl,Pr,as,Og,Pl,Ug]),vI=Zt.shouldRender?me(A,{paddingX:1,children:me(yA,{viewModel:Zt})}):void 0,bI=be&&Ro.shouldRender?me(A,{paddingX:1,children:me(mA,{viewModel:Ro})}):void 0,RI=kC?me(A,{paddingX:1,children:me(fh,{viewModel:ey})}):void 0,V$=vI||bI||RI?Xn(A,{flexDirection:"column",children:[bI,vI,RI]}):void 0,kI=Zt.shouldRender?Zt.counterText:void 0,K$=me(td,{left:me(Zu,{items:UC}),right:me(ed,{items:GC}),queued:me(lh,{pendingInputs:b.pendingInputs}),stashNotice:me(cd,{text:Df}),notifications:me(ad,{notifications:Nf}),inlineNotices:ay.length>0?me(uh,{notices:ay}):void 0,activityBar:ko?Xn(A,{paddingX:1,flexDirection:"row",children:[Xn(A,{flexGrow:1,children:[ko?.showSpinner?me(sr,{color:ue("dark").colors.accent}):null,ko?Xn(M,{color:ko.kind==="waiting"?ue("dark").colors.warning:ue("dark").colors.accent,wrap:"truncate",children:[ko.showSpinner?" ":"",ko.text]}):null,ko?.showSpinner&&b.roundStartedAt!=null?me(ZR,{roundStartedAt:b.roundStartedAt,charCount:b.currentResponse.length,theme:ue("dark")}):null]}),kI?me(M,{dimColor:!0,wrap:"truncate",children:kI}):be&&Ro.shouldRender?me(M,{dimColor:!0,wrap:"truncate",children:SA(Ro)}):null]}):void 0,todoSurface:V$,composer:me(nh,{onSubmit:G$,onHistoryRecall:U$,onPopPendingInputs:i(()=>{let f=Te();if(f.length!==0)return f.join(`
|
|
206
|
-
---
|
|
207
|
-
`)},"onPopPendingInputs"),prompt:">",placeholder:EP({isLoading:be,canQueueFollowUps:Ur,waitingReason:oy}),focus:!Ze&&!Ke&&!At,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:v$,onPasteFallback:O$}),inlineSuggestions:L$,helpSurface:dC?me(oh,{sections:dg()}):void 0,taskBar:Jl?me(ld,{items:La.backgroundTask.items,overflowLabel:La.backgroundTask.overflowLabel,ctaHint:La.backgroundTask.ctaHint,showSpinner:be}):void 0,statusLine:me(A,{children:me(js,{...Of,viewModel:WC})}),inlineDialogs:$$}),z$=me(td,{left:me(Zu,{items:UC}),right:me(ed,{items:GC}),stashNotice:me(cd,{text:Df}),notifications:me(ad,{notifications:Nf}),composer:me(uA,{searchActive:At,selectionActive:!!(bo||gt),showAllActive:Qt,searchQuery:vn,searchCurrent:en.length>0?ui+1:0,searchCount:en.length,searchDetailText:ry,pendingLiveUpdates:Vl,secondaryText:_$}),taskBar:Jl?me(ld,{items:La.backgroundTask.items,overflowLabel:La.backgroundTask.overflowLabel,ctaHint:La.backgroundTask.ctaHint,showSpinner:Lt}):void 0,statusLine:me(A,{children:me(js,{...Of,viewModel:iy})})}),Cy=q(f=>me(dA,{banner:f?.bannerVisible?me(xT,{...ls}):void 0,items:zl,isLoading:bn,viewportRows:un.messageRows,viewportWidth:P,scrollOffset:_r,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Yl:oI,maxLines:Vt,selectedTextRanges:Qg?uf?.rowRanges:void 0,onMetricsChange:Ff,onVisibleRowsChange:Hf}),[ls,zl,bn,Ff,Hf,_r,oI,P,Vt,uf?.rowRanges,un.messageRows,Qg]),Iy=q(f=>me(fA,{banner:f?.bannerVisible?me(xT,{...ls}):void 0,items:Kl,browse:{hintText:di.browseHintText},selection:Bf,search:$C,isLoading:Lt,isThinking:Le.isThinking,thinkingCharCount:Le.thinkingCharCount,thinkingContent:Le.thinkingContent,streamingResponse:Le.currentResponse,currentTool:Le.currentTool,activeToolCalls:Le.activeToolCalls,toolInputCharCount:Le.toolInputCharCount,toolInputContent:Le.toolInputContent,iterationHistory:Le.iterationHistory,currentIteration:Le.currentIteration,isCompacting:Le.isCompacting,agentMode:z.agentMode,managedPhase:Lt?ee?.phase:void 0,managedHarnessProfile:Lt?ee?.harnessProfile:void 0,managedWorkerTitle:Lt?ee?.activeWorkerTitle:void 0,managedRound:Lt?ee?.currentRound:void 0,managedMaxRounds:Lt?ee?.maxRounds:void 0,managedGlobalWorkBudget:Lt?ee?.globalWorkBudget:void 0,managedBudgetUsage:Lt?ee?.budgetUsage:void 0,managedBudgetApprovalRequired:Lt?ee?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Le.lastLiveActivityLabel,liveStatusLines:_a,viewportRows:un.messageRows,viewportWidth:P,scrollOffset:_r,windowed:!!f?.windowed,animateSpinners:!!f?.rendererWindow&&Oa,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Yl:Ef,maxLines:Vt,showDetailedTools:Qt,showAllContent:Qt,selectedItemId:gr.selectionEnabled?gt:void 0,selectedTextRanges:To?.rowRanges,expandedItemKeys:gr.selectionEnabled?Jn:void 0,onMetricsChange:Ff,onVisibleRowsChange:Hf}),[ls,z.agentMode,Lt,Jn,c.transcriptSpinnerAnimation,Ff,Hf,_r,xC,ee?.activeWorkerTitle,ee?.budgetApprovalRequired,ee?.budgetUsage,ee?.currentRound,ee?.globalWorkBudget,ee?.harnessProfile,ee?.maxRounds,ee?.phase,Yl,Ef,di.browseHintText,gt,Bf,P,Oa,Kl,Vt,Le.activeToolCalls,Le.currentIteration,Le.currentResponse,Le.currentTool,Le.isCompacting,Le.isThinking,Le.iterationHistory,Le.lastLiveActivityLabel,Le.thinkingCharCount,Le.thinkingContent,Le.toolInputCharCount,Le.toolInputContent,_a,To?.rowRanges,$C,Qt,un.messageRows]),X$=ce?Iy({bannerVisible:!1,windowed:Kt}):Cy({bannerVisible:!1}),EI=ce?z$:K$,Y$=c.enabled&&cs,MI=Xn(A,{flexDirection:"column",width:P,flexShrink:0,flexGrow:Y$?1:0,children:[me($x,{currentConfig:z,setCurrentConfig:H,isLoading:be,abort:se,stopThinking:Q,clearThinkingContent:Y,setCurrentTool:pe,setIsLoading:ct,onToggleHelp:I$,setShowHelp:fC,onSetThinking:i(f=>{Ne.current.thinking=f},"onSetThinking"),onSetReasoningMode:i(f=>{Ne.current.reasoningMode=f,Ne.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:N$,onOpenTranscriptSearch:dy,canOpenTranscriptSearch:ce&&!Ze&&!Ke,isInteractiveDialogActive:!!(Ze||Ke),onSetAgentMode:i(f=>{Ne.current.agentMode=f},"onSetAgentMode"),onSetPermissionMode:i(f=>{hy(f)},"onSetPermissionMode"),isInputEmpty:Al,onSavePermissionMode:ab}),Fe&&(c.enabled?null:me(Rc,{items:[1],children:i(()=>me(xT,{...ls},"banner"),"children")})),cs?me(Qm,{width:P,stickyHeader:di.stickyHeader,jumpToLatest:di.jumpToLatest,transcript:!c.enabled||!Kt?ce?Iy({bannerVisible:!1}):Cy({bannerVisible:!1}):void 0,renderTranscriptWindow:c.enabled&&Kt?f=>(()=>{let w=tu(f).contentWindow;return ce?Iy({bannerVisible:!1,windowed:!0,rendererWindow:w}):Cy({bannerVisible:!1,rendererWindow:w})})():void 0,overlay:my,scrollTop:_r,scrollHeight:eu,viewportHeight:un.messageRows,stickyScroll:!ce&&!Yr&&Dg,overscanRows:FK,scrollRef:l$,onWindowChange:P$,onScrollTopChange:d$,onStickyChange:f$,footer:EI}):Xn(cK,{children:[Xn(A,{flexDirection:"column",flexGrow:1,children:[X$,my?me(A,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:my}):null]}),EI]})]});return Jg?me(Rw,{mouseTracking:ci.usesRendererMouseTracking,children:MI}):MI},"InkREPLInner"),GK=i(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return me(od,{children:me(md,{getPendingInputAgentId:i(()=>Jf(e.context.sessionId,"/root"),"getPendingInputAgentId"),children:me(Wu,{children:me(Px,{children:me(Im,{cwd:t,gitRoot:n,children:me(UK,{...e})})})})})})},"InkREPL");function VK(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}i(VK,"isRawModeSupported");async function vg(e){if(!VK())throw new Py("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 zs,n=vi(),r=bi(),o=Ri(n,r),{prepareRuntimeConfig:s}=await import("./utils-DJ4ZFJGL.js"),{loadCompactionConfig:a}=await import("./compaction-config-ZMEJU4U7.js"),{resolveProvider:c}=await import("./dist-3UCCMCYR.js"),l=s(),u=nc({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,configuredProvider:l.provider,defaultProvider:Yf}),d=rc({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,explicitModel:e.model,configuredProvider:l.provider,configuredModel:l.model}),p=xK(e,l),m=oc({explicitEffort:e.effort,environmentEffort:process.env.KODAX_EFFORT,configuredEffort:l.effort}),h=Ip(e,l,process.env.KODAX_EFFORT),g=e.agentMode??l.agentMode??"ama",x=p!=="off",T=ec(l.permissionMode,"accept-edits")??"accept-edits",S=pp(),I=l.repoIntelligenceTrace===!0,v={provider:u,model:d,effort:m,effortOverride:h,planModeEffort:l.planModeEffort,thinking:x,reasoningMode:p,agentMode:g,permissionMode:T,repoIntelligenceMode:S.mode,repoIntelligenceTrace:I},$=e.session?.id,_=[],N,B,k,D,U,j="",W=await no({cwd:process.cwd()}),P=W.workspaceRoot??void 0,b=W,fe=P,C=np({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(C){let Q=i(()=>{C.shutdown()},"teamModeCleanup");process.on("exit",Q),process.on("SIGTERM",Q)}try{let{bootstrapConstructionRuntime:Q}=await import("./construction-bootstrap-RX4DMHI7.js"),Y=await Q(P??process.cwd());if(Y.loaded>0||Y.failed>0||Y.tampered>0){let pe=Y.failed>0?`; ${Y.failed} failed`:"",ft=Y.tampered>0?`; ${Y.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";ut({source:"repl:construction",level:Y.failed>0||Y.tampered>0?"warn":"info",message:`Rehydrated ${Y.loaded} active tool(s)${pe}${ft}.`})}if(Y.markdownLoaded>0||Y.markdownFailures.length>0){ut({source:"repl:agents",level:Y.markdownFailures.length>0?"warn":"info",message:`Loaded ${Y.markdownLoaded} markdown agent(s).`});for(let pe of Y.markdownFailures)ut({source:"repl:agents",level:"warn",message:`Skipped markdown agent ${pe.path}: ${pe.reason}`})}}catch(Q){ut({source:"repl:construction",level:"warn",message:`Bootstrap failed: ${Q.message}. Self-construction disabled this session.`})}let ne;try{let Q=await a(P),Y=c(u);ne={contextWindow:Q.contextWindow??Y.getContextWindow?.()??2e5,triggerPercent:Q.triggerPercent,triggerTokens:Q.triggerTokens,enabled:Q.enabled,reservedResponseTokens:Y.getEffectiveMaxOutputTokens?.(d),userOverrideContextWindow:Q.contextWindow}}catch{}if(e.session?.id&&!e.session.resume){let Q=await t.load(e.session.id);Q&&(_=Q.messages,N=Fi(Q.uiHistory),B=Q.lineage,k=Q.artifactLedger,D=Q.extensionState,U=Q.extensionRecords,j=Q.title,$=e.session.id,b=Fn(Q)??W,fe=b.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:$,tag:Q.tag}},console.log(_t.green(`[Session loaded: ${$}]`)))}else if(e.session?.resume||e.session?.autoResume){let Q=await Qc(t,P);if(Q){let Y=await t.load(Q.id);Y&&(_=Y.messages,N=Fi(Y.uiHistory),B=Y.lineage,k=Y.artifactLedger,D=Y.extensionState,U=Y.extensionRecords,j=Y.title,$=Q.id,b=Fn(Y)??W,fe=b.workspaceRoot??void 0,e={...e,session:{...e.session??{},id:$,tag:Y.tag}},console.log(_t.green(`[Continuing session: ${Q.id}]`)))}}let se=await Yc({sessionId:$,gitRoot:fe,runtimeInfo:b,existingMessages:_,existingUiHistory:N,existingLineage:B,existingArtifactLedger:k,existingExtensionState:D,existingExtensionRecords:U});se.title=j,e={...e,context:{...e.context,gitRoot:se.gitRoot??void 0,executionCwd:se.runtimeInfo?.executionCwd??se.gitRoot??process.cwd()}},C?.writer.update({sessionId:se.sessionId});let he={current:v},Ee=ac(),$e=await qc({projectRoot:P??process.cwd(),executionCwd:b.executionCwd??P??process.cwd(),getCurrentProviderName:i(()=>he.current.provider,"getCurrentProviderName"),getCurrentModel:i(()=>he.current.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>he.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:Ee,log:i((Q,Y)=>{ut({source:"repl:auto-mode",level:Q==="warn"?"warn":"info",message:Y})},"log"),extraCollectors:[sc]});try{let Q=process.stdout,Y=process.stdin,pe=!1,{waitUntilExit:ft,cleanup:Ue}=bc(me(GK,{options:e,config:v,context:se,startupRuntimeInfo:W,storage:t,autoModeSettings:Xc(Ee),compactionInfo:ne,rendererMode:r,fullscreenPolicy:o,autoModeBootstrap:$e,setCurrentConfigRef:i(Ve=>{he.current=Ve},"setCurrentConfigRef"),teamModeHandle:C,onExit:i(()=>{pe=!0},"onExit")}),{stdout:Q,stdin:Y,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:o.enabled?o.promptShell:"main-screen"});await ft(),Ue(),C?.shutdown(),Y.isTTY===!0&&typeof Y.setRawMode=="function"&&Y.isRaw&&Y.setRawMode(!1),Y.pause?.(),Y.unref?.(),pe&&console.log(_t.dim(`
|
|
208
|
-
[Exiting KodaX...]`));let Ge=e.hardExitOnClose??process.env.VITEST!=="true";if(pe&&Ge){let Ve=process.exitCode??0,pt=!1,Rt=i(()=>{pt||(pt=!0,process.exit(Ve))},"requestProcessExit");setTimeout(Rt,0).unref?.(),Q.write("",Rt);return}}catch(Q){throw Q instanceof Error&&Q.message.includes("Raw mode")?new Py("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):Q}}i(vg,"runInkInteractiveMode");import*as CO from"readline";import ae from"chalk";import Yn from"chalk";var KK=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],zK=[{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 XK(e,t=!0){return e.map(n=>{let r=Yn.dim(`[${n.key}]`);return t?`${r} ${Yn.cyan(n.label)} ${Yn.dim(`- ${n.description}`)}`:`${r} ${n.label}`}).join(" ")}i(XK,"formatOptions");function vT(){return process.stdout.columns??80}i(vT,"getTerminalWidth");function YK(){return ho()}i(YK,"supportsUnicode");function qK(){let e=YK();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(qK,"getSymbols");async function JK(e,t){let{message:n,default:r,options:o,showDescription:s=!0,signal:a}=t,c=o??KK,l=XK(c,s);console.log(),console.log(Yn.cyan(`? ${n}`));let u=vT();if(l.length>u-4)for(let d of c){let p=Yn.dim(` [${d.key}]`);console.log(`${p} ${Yn.cyan(d.label)}`),s&&console.log(Yn.dim(` ${d.description}`))}else console.log(Yn.dim(` ${l}`));return a?.aborted?"no":new Promise(d=>{let p=r?` (${r})`:"",m=!1,h=i(T=>{m||(m=!0,a?.removeEventListener("abort",g),d(T))},"finish"),g=i(()=>h("no"),"onAbort"),x=i(T=>{let S=T.trim().toLowerCase()||r||"",I=c.find(v=>v.key===S||v.value===S||v.label.toLowerCase()===S);h(I?I.value:S===""?"no":S)},"onAnswer");a?.addEventListener("abort",g,{once:!0}),a?e.question(Yn.dim(` Choose${p}: `),{signal:a},x):e.question(Yn.dim(` Choose${p}: `),x)})}i(JK,"confirmEnhanced");async function vl(e,t,n,r){let{isOutsideProject:o=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits",runtimeGrantSuggestions:c,signal:l}=r??{},u=qK(),d,p,m={...n,...o?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},h=Qh(t,m),g=h.details.map(T=>` ${Yn.dim(T)}`);o||s?(d=`${Yn.yellow(u.warning)} Safety Warning`,g.length>0&&(d+=`
|
|
209
|
-
${g.join(`
|
|
210
|
-
`)}`),p=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]):(d=h.title,g.length>0&&(d+=`
|
|
211
|
-
${g.join(`
|
|
212
|
-
`)}`),c!==void 0&&(d+=`
|
|
213
|
-
${Yn.dim(zc)}`,d+=`
|
|
214
|
-
${c.map(T=>` ${Yn.dim(`Runtime scope: ${T.label}`)}`).join(`
|
|
215
|
-
`)}`),c!==void 0?p=[{key:"y",label:"Once",description:"Allow this operation once",value:"yes"},...c.some(T=>T.kind==="session")?[{key:"s",label:"Session",description:"Allow this Runtime-issued scope for this session",value:"session"}]:[],...c.some(T=>T.kind==="persistent")?[{key:"a",label:"Always",description:"Always allow this Runtime-issued scope",value:"always"}]:[],{key:"n",label:"No",description:"Cancel",value:"no"}]:p=a==="accept-edits"?zK:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let x=await JK(e,{message:d,default:"n",options:p,signal:l});return x==="always"?c!==void 0?{confirmed:!0,runtimeGrantKind:"persistent"}:{confirmed:!0,always:!0}:x==="session"?{confirmed:!0,runtimeGrantKind:"session"}:{confirmed:x==="yes"}}i(vl,"confirmToolExecution");import Yce from"chalk";function lO(){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(lO,"getUnicodeSymbols");function bT(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}i(bT,"getAsciiSymbols");var uO={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:ho()?lO():bT(),spinner:{frames:ho()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},QK={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:ho()?lO():bT(),spinner:{frames:ho()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},ZK={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:bT(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},ez={dark:uO,light:QK,minimal:ZK},dO=uO;function ua(){return dO}i(ua,"getCurrentTheme");function Kd(e){let t=ez[e];return t?(dO=t,!0):!1}i(Kd,"setTheme");function tz(){if(!process.stdout.isTTY){Kd("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){Kd("dark");return}Kd("dark")}i(tz,"autoSelectTheme");tz();var bg=class{static{i(this,"ReadlineUIContext")}rl;constructor(t){this.rl=t}async select(t,n){if(n.length!==0)return console.log(`
|
|
216
|
-
${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 wo from"chalk";function pO(e,t,n){return new Promise(r=>{let o=!1,s=i(l=>{o||(o=!0,n?.removeEventListener("abort",a),r(l))},"finish"),a=i(()=>s({cancelled:!0}),"onAbort");n?.addEventListener("abort",a,{once:!0});let c=i(l=>s({value:l}),"onAnswer");n?e.question(t,{signal:n},c):e.question(t,c)})}i(pO,"promptLine");function mO(e,t){if(!/^\d+$/.test(e))return;let n=Number.parseInt(e,10)-1;return n>=0&&n<t?n:void 0}i(mO,"parseIndex");function nz(e,t){let n=e.split(/[\s,]+/).filter(Boolean);if(n.length===0)return[];let r=[];for(let o of n){let s=mO(o,t);if(s===void 0||r.includes(s))return;r.push(s)}return r}i(nz,"parseIndexList");async function RT(e,t,n,r){if(r?.aborted)return{cancelled:!0};console.log();let o=n?wo.dim(` (${n})`):"";console.log(wo.cyan(`? ${t}`));let s=await pO(e,wo.dim(` \u203A Answer${o}: `),r);if("cancelled"in s)return{cancelled:!0};let a=s.value.trim();return{value:a!==""?a:n??""}}i(RT,"askTextInput");async function rz(e,t,n,r,o){let s=e[t].value;if(s===hs)return{kind:"back"};if(s===Bn){let a=await RT(n,r.customInputPrompt??r.question,r.customInputDefault,o);return"cancelled"in a?{kind:"cancelled"}:{kind:"answer",value:{kind:"customInput",value:a.value}}}return{kind:"answer",value:s}}i(rz,"resolveSingleSelection");async function fO(e,t,n,r,o){let s=n.allowCustomInput!==!1,a=(n.options??[]).map(d=>({label:d.label,...d.description!==void 0?{description:d.description}:{},value:d.value}));s&&a.push({label:n.customInputLabel??"Other\u2026",value:Bn}),r&&a.push({label:"\u2190 Back",value:hs});let c=n.multiSelect===!0,l=n.default!==void 0?a.findIndex(d=>d.value===n.default):-1,u=l>=0?` [${l+1}]`:"";for(console.log(),console.log(wo.cyan(`? ${t}`)),a.forEach((d,p)=>{let m=wo.dim(`${p+1}.`.padStart(4)),h=d.description?wo.dim(` - ${d.description}`):"";console.log(` ${m} ${d.label}${h}`)});;){if(o?.aborted)return{kind:"cancelled"};let d=await pO(e,wo.dim(` \u203A Select (1-${a.length})${u}: `),o);if("cancelled"in d)return{kind:"cancelled"};let p=d.value.trim();if(!c){let S=p===""?l>=0?l:void 0:mO(p,a.length);if(S===void 0){console.log(wo.yellow(` Please enter a number between 1 and ${a.length}.`));continue}return rz(a,S,e,n,o)}let m=p===""?l>=0?[l]:[]:nz(p,a.length);if(m===void 0){console.log(wo.yellow(` Enter numbers between 1 and ${a.length}, separated by commas.`));continue}let h=a.findIndex(S=>S.value===hs);if(h>=0&&m.includes(h))return{kind:"back"};let g=n.minSelections??1,x=n.maxSelections??a.length;if(m.length<g||m.length>x){console.log(wo.yellow(` Select between ${g} and ${x} options.`));continue}if(m.length===0)return{kind:"answer",value:[]};let T=a.findIndex(S=>S.value===Bn);if(T>=0&&m.includes(T)){let S=await RT(e,n.customInputPrompt??n.question,n.customInputDefault,o);return"cancelled"in S?{kind:"cancelled"}:{kind:"answer",value:m.map(v=>v===T?{kind:"customInput",value:S.value}:a[v].value)}}return{kind:"answer",value:m.map(S=>a[S].value)}}}i(fO,"askSelection");function hO(e){return{askUser:i(async(t,n,r)=>{let o=await fO(e,t.question,t,!1,r?.signal);return o.kind!=="answer"?mi:o.value},"askUser"),askUserMulti:i(async(t,n,r)=>{let o=t.questions.length,s={},a=0;for(;a<o;){let c=t.questions[a],l=`[${a+1}/${o}] ${c.question}`,u=await fO(e,l,c,a>0,r?.signal);if(u.kind==="cancelled")return;if(u.kind==="back"){a-=1;continue}s[c.question]=u.value,a+=1}return s},"askUserMulti"),askUserInput:i(async(t,n,r)=>{let o=await RT(e,t.question,t.default,r?.signal);return"cancelled"in o?void 0:o.value},"askUserInput")}}i(hO,"createClassicAskUserEvents");import*as gO from"child_process";import*as Xd from"path";import*as zd from"fs";import*as yO from"os";import So from"chalk";function wO(e,t){let n=ua(),r=e==="plan"?So.hex(n.colors.warning):So.hex(n.colors.success),o=t.model??to(t.provider)??t.provider,s=Si({provider:t.provider,model:t.model,effort:vp(t),effortOverride:t.effortOverride,thinking:t.thinking,reasoningMode:t.reasoningMode}),a=vT();if(a<60){let l=e==="plan"?"?":n.symbols.prompt;return r(`${l} `)}if(a<100){let l=So.hex(n.colors.dim)(`[${s}]`);return r(`kodax:${e}${l}> `)}let c=So.hex(n.colors.info)(`[effort:${s}]`);return r(`kodax:${e} (${t.provider}:${o})${c}> `)}i(wO,"getPrompt");async function SO(e,t){let n=ua(),r=[],o=await new Promise(s=>{e.question(t,s)});if(o===""||o.toLowerCase()==="/e")return kT(r.join(`
|
|
217
|
-
`));for(r.push(o);oz(r.join(`
|
|
218
|
-
`));){let s=So.hex(n.colors.dim)("... "),a=await new Promise(c=>{e.question(s,c)});r.push(a)}return r.join(`
|
|
219
|
-
`).replace(/\\\n/g,`
|
|
220
|
-
`)}i(SO,"askInput");async function kT(e){let t=Xd.join(yO.tmpdir(),"kodax"),n=Xd.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await zd.promises.mkdir(t,{recursive:!0}),await zd.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=Xd.basename(r);console.log(So.yellow(`
|
|
221
|
-
[Security] Editor path sanitized: ${a}`)),r=a}console.log(So.dim(`
|
|
222
|
-
[Opening editor: ${r}]`));let o=process.platform==="win32"&&(r.toLowerCase()==="notepad"||r.toLowerCase()==="notepad.exe");return console.log(o?So.dim(`Note: Please close Notepad manually after editing to continue.
|
|
223
|
-
`):So.dim(`Save and close the editor to continue...
|
|
224
|
-
`)),gO.spawnSync(r,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await zd.promises.readFile(n,"utf-8")).trim()}catch(r){let o=r instanceof Error?r:new Error(String(r));return console.log(So.red(`
|
|
225
|
-
[Editor Error] ${o.message}`)),e}finally{try{await zd.promises.unlink(n)}catch{}}}i(kT,"openExternalEditor");function oz(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(oz,"needsContinuation");import ot from"chalk";function xO(e){e?.workspaceRoot&&(console.log(ot.dim(` Workspace: ${ro(e)}`)),console.log(ot.dim(` Use /status workspace for runtime details.
|
|
226
|
-
`)))}i(xO,"printWorkspaceEntryNotice");function TO(e,t,n,r){let o=ua(),s=e.model??to(e.provider)??e.provider,a=Si({provider:e.provider,model:e.model,effort:vp(e),effortOverride:e.effortOverride,thinking:e.thinking,reasoningMode:e.reasoningMode}),c=`
|
|
227
|
-
\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
|
|
228
|
-
\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
|
|
229
|
-
\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
|
|
230
|
-
\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
|
|
231
|
-
\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
|
|
232
|
-
\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=>ot.hex(d)(" \u258E "),"bar"),u=ot.hex(o.colors.dim)(" \xB7 ");if(console.log(ot.hex(o.colors.primary)(`
|
|
233
|
-
`+c)),console.log(""),console.log(l(o.colors.primary)+ot.hex(o.colors.primary)("AI Coding Agent \xB7 Minimalist & Intelligent")),console.log(l(o.colors.success)+ot.bold.hex(o.colors.text)(`v${Ss}`)+u+ot.hex(o.colors.success)(`${e.provider}:${s}`)+u+ot.hex(o.colors.primary)(e.agentMode.toUpperCase())+ot.hex(o.colors.dim)(" / ")+ot.hex(o.colors.accent)(t)+ot.hex(o.colors.dim)(" \xB7 ")+ot.hex(o.colors.warning)(`effort:${a}`)),n){let d=Math.round(n.contextWindow/1e3),p=n.enabled?ot.hex(o.colors.success)("on"):ot.hex(o.colors.secondary)("off"),m=Qu(n.contextWindow,n.triggerPercent,n.triggerTokens);console.log(l(o.colors.accent)+ot.hex(o.colors.secondary)(`ctx ${d}k \xB7 compaction `)+p+ot.hex(o.colors.secondary)(` \xB7 ${m}`))}r&&console.log(l(o.colors.secondary)+ot.hex(o.colors.secondary)(`${r.length} project rule file(s) loaded \u2014 `)+ot.hex(o.colors.dim)("/reload to refresh")),console.log(""),console.log(ot.hex(o.colors.dim)(" Quick tips:")),console.log(ot.hex(o.colors.primary)(" /help ")+ot.hex(o.colors.dim)("Show all commands")),console.log(ot.hex(o.colors.primary)(" /mode ")+ot.hex(o.colors.dim)("Switch permission mode")),console.log(ot.hex(o.colors.primary)(" /clear ")+ot.hex(o.colors.dim)("Clear conversation")),console.log(ot.hex(o.colors.primary)(" @path ")+ot.hex(o.colors.dim)("Attach image to context")),console.log(ot.hex(o.colors.primary)(" !cmd ")+ot.hex(o.colors.dim)("Run read-only shell command")),console.log(ot.hex(o.colors.dim)(`
|
|
234
|
-
Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
|
|
235
|
-
`))}i(TO,"printStartupBanner");async function iz(e,t,n){if(e?.id){let r=await t.load(e.id);if(!r)return null;let o=Fn(r);return{id:e.id,data:r,kind:"load",...o?{runtimeInfo:o}:{}}}if(e?.resume||e?.autoResume){let r=await Qc(t,n);if(!r)return null;let o=await t.load(r.id);if(!o)return null;let s=Fn(o);return{id:r.id,data:o,kind:"continue",...s?{runtimeInfo:s}:{}}}return null}i(iz,"loadClassicStartupSession");async function sz(e){return(await op(e)).getSystemPromptSnippet()}i(sz,"buildClassicCliSkillsPrompt");function az(e,t){let n=lu(e);t.context={...t.context,skillsPrompt:n.getSystemPromptSnippet()}}i(az,"syncClassicCliSkillsPrompt");var MT=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t),o=qe(n.messages,n.lineage??r?.data.lineage);this.sessions.set(t,{createdAt:r?.createdAt??new Date().toISOString(),data:{...structuredClone(n),scope:n.scope??r?.data.scope??"user",uiHistory:n.uiHistory??r?.data.uiHistory,extensionState:n.extensionState??r?.data.extensionState,extensionRecords:n.extensionRecords??r?.data.extensionRecords,tag:n.tag??r?.data.tag,lineage: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=Ka(o.data.lineage,n,r);if(!s)return null;let a={...structuredClone(o.data),messages:Bt(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=za(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=Po(o.data.lineage,n);if(!s)return null;let a=r?.sessionId??await Ja(),c={messages:Bt(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??Ya(r.data.lineage);if(!o)return null;let s=qa(r.data.lineage,o);if(!s)return null;let a={...r.data,messages:Bt(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?pi(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 ET(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(ET,"applyRuntimeContext");function Yd(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(Yd,"applyRuntimeSessionSnapshot");function ni(e){return{...e.extensionStateDirty?{extensionState:e.extensionState??{}}:{},...e.extensionRecordsDirty?{extensionRecords:e.extensionRecords??[]}:{}}}i(ni,"contextExtensionSessionData");function bl(e){e.extensionStateDirty=!1,e.extensionRecordsDirty=!1}i(bl,"markExtensionSessionPersisted");async function cz(e,t,n,r){if(e.messages.length===0)return;let o=xo(e.messages);e.title=o,await t.save(e.sessionId,{messages:e.messages,title:o,gitRoot:e.gitRoot??"",runtimeInfo:e.runtimeInfo,artifactLedger:e.artifactLedger,...r?{lineage:r}:{},...ni(e),...n!==void 0?{tag:n}:{}}),bl(e)}i(cz,"saveClassicSession");function lz(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}i(lz,"resolveInitialReasoningMode");var _T={current:null};async function IO(e){let t,n=e.runtimeRunner;n&&(e={...e,runtimeRunner:i(H=>n({...H,onStopControl:i(V=>{t=V},"onStopControl"),onStopState:i((V,le)=>{V==="rejected"?process.stderr.write(`
|
|
236
|
-
[Stop rejected] ${le??""}
|
|
237
|
-
`):process.stdout.write(`
|
|
238
|
-
[Stop ${V}] ${le??""}
|
|
239
|
-
`)},"onStopState")}),"runtimeRunner")});let{beforeToolExecute:r,...o}=Zh(!1);e={...e,events:{...o,...e.events??{}}};let s=await no({cwd:process.cwd()}),a=s.workspaceRoot??await No()??void 0,c=e.storage??new MT,l=await iz(e.session,c,a),u=l?l.runtimeInfo??s:s,d=u.workspaceRoot??a;l&&(e={...e,session:{...e.session??{},id:l.id,tag:l.data.tag}});let p=np({meta:{cwd:process.cwd(),startedAt:Date.now()}}),m=Cp(),h=nc({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,configuredProvider:m.provider,defaultProvider:Yf}),g=rc({explicitProvider:e.provider,environmentProvider:process.env.KODAX_PROVIDER,explicitModel:e.model,configuredProvider:m.provider,configuredModel:m.model}),x=lz(e,m),T=oc({explicitEffort:e.effort,environmentEffort:process.env.KODAX_EFFORT,configuredEffort:m.effort}),S=Ip(e,m,process.env.KODAX_EFFORT),I=e.agentMode??m.agentMode??"ama",v=x!=="off",$=ec(m.permissionMode,"accept-edits")??"accept-edits",_=pp(),N=m.theme;N&&Kd(N);let B=ua(),k={provider:h,model:g,effort:T,effortOverride:S,planModeEffort:m.planModeEffort,thinking:v,reasoningMode:x,agentMode:I,permissionMode:$,repoIntelligenceMode:_.mode,repoIntelligenceTrace:_.trace,fallbackProviders:m.fallbackProviders},D=$,U=xi(),j=i(H=>xs({provider:H?.provider??k.provider,model:H?.model??k.model,effort:k.effort,effortOverride:k.effortOverride,permissionMode:H?.permissionMode??k.permissionMode,planModeEffort:k.planModeEffort,thinking:k.thinking,reasoningMode:k.reasoningMode}),"resolveCurrentRuntimeEffort"),W=0,P="",b=!1,fe=500,C=await Yc({sessionId:l?.id??e.session?.id,gitRoot:d,runtimeInfo:u,existingMessages:l?.data.messages,existingUiHistory:l?.data.uiHistory,existingLineage:l?.data.lineage,existingArtifactLedger:l?.data.artifactLedger,existingExtensionState:l?.data.extensionState,existingExtensionRecords:l?.data.extensionRecords});if(C.title=l?.data.title??"",l){let H=l.kind==="continue"?"Continuing session":"Session loaded";process.stdout.write(`${ae.green(`[${H}: ${l.id}]`)}
|
|
240
|
-
`)}C.skillDynamicContext=e.skillDynamicContext,p?.writer.update({sessionId:C.sessionId});let ne=i(H=>Xi(k,H,(V,le,ie)=>{console.log((V==="block"?ae.red:ae.yellow)(`
|
|
241
|
-
${le}`));for(let Re of ie)console.log(ae.dim(Re));console.log()}),"guardSessionTransition"),se=await bp(d??void 0),{resolveProvider:he}=await import("./dist-3UCCMCYR.js"),Ee=he(k.provider),$e=se.contextWindow??Ee.getEffectiveContextWindow?.(k.model)??Ee.getContextWindow?.()??2e5,{loadAgentsFiles:Q}=await import("./dist-3UCCMCYR.js"),Y=i(async()=>Q({cwd:process.cwd(),projectRoot:C.gitRoot??void 0}),"reloadAgentsFiles"),pe=await Y();if(TO(k,k.permissionMode,{contextWindow:$e,triggerPercent:se.triggerPercent,triggerTokens:se.triggerTokens,enabled:se.enabled},pe),xO(u),e.learning)try{let H=Rp(await e.learning.getSnapshot());H&&console.log(ae.yellow(`
|
|
242
|
-
${H}
|
|
243
|
-
`))}catch(H){ut({source:"repl:learning",level:"warn",message:"Failed to recover the Learning Center startup summary.",detail:H instanceof Error?H.message:String(H)})}let ft=Db(()=>C.gitRoot??process.cwd()),Ue=CO.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:i((H,V)=>{ft(H).then(le=>{V(null,le)}).catch(()=>{V(null,[[],H])})},"completer")}),Ge=i(async(H,V)=>{let le=await vl(Ue,H.toolName,{...H.input,...H.reason!==void 0?{_reason:H.reason}:{},...H.executionCwd!==void 0?{_executionCwd:H.executionCwd}:{},...H.risk!==void 0?{_runtimeRisk:H.risk}:{}},{permissionMode:D,runtimeGrantSuggestions:H.grantSuggestions??[],signal:V.signal});return hh(H,le)},"requestRuntimePermission"),Ve=ac(),pt=Xc(Ve);await e.runtimeAutoModeControl?.syncSettings?.(C.sessionId,D,pt);let Rt=await qc({projectRoot:d??process.cwd(),executionCwd:u.executionCwd??d??process.cwd(),getCurrentProviderName:i(()=>k.provider,"getCurrentProviderName"),getCurrentModel:i(()=>k.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>D,"getCurrentPermissionMode"),autoModeSettings:Ve,log:i((H,V)=>{console.log(H==="warn"?ae.yellow(V):ae.dim(V))},"log"),extraCollectors:[sc]}),de=wp({getProvider:i(()=>he(k.provider),"getProvider"),getModel:i(()=>k.model??"","getModel")}),ke=`
|
|
244
|
-
Keyboard Shortcuts:
|
|
245
|
-
Tab Auto-complete (@paths, /commands)
|
|
246
|
-
Esc+Esc Edit last message
|
|
247
|
-
Ctrl+T Cycle reasoning effort
|
|
248
|
-
Ctrl+E Open external editor
|
|
249
|
-
Ctrl+R Search command history (built-in)
|
|
250
|
-
Ctrl+C Cancel current input
|
|
251
|
-
Ctrl+D Exit REPL`,Ae=i(()=>{console.log(ae.dim(ke))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(H,V)=>{if(V&&V.name==="escape"){let le=Date.now();le-W<fe&&P&&(b=!0,console.log(ae.dim(`
|
|
252
|
-
[Opening editor with last message...]`)),Ue.pause()),W=le}});let it=await sz(d),mt=!0,oe={...e,provider:h,model:g,effort:j().runtimeEffort,agentMode:I,reasoningMode:x,thinking:v,workflowRunsBaseDir:fi("workflow-runs",Is(d??u.executionCwd??process.cwd()).key),context:{...e.context,gitRoot:d,executionCwd:u.executionCwd,repoIntelligenceMode:_.mode,repoIntelligenceTrace:_.trace,skillsPrompt:it},session:{...e.session,id:C.sessionId,storage:c,persistedByHost:!0},events:{...hO(Ue),...e.events}},Qe=i(()=>{let H=j();oe.effort=H.runtimeEffort},"refreshCurrentEffort");_T.current=null;let pn=i(async H=>{if(C.messages.length===0)return"empty";if(!ne("Recovering into a new session"))return"blocked";let V=C.sessionId,le=C.lineage??qe(C.messages);C.lineage=le;let ie=C.artifactLedger?structuredClone(C.artifactLedger):void 0,Re=C.title||xo(C.messages),Ce=fp({sourceSessionId:V,messages:C.messages,lineage:le,artifactLedger:ie,reason:"provider session recovery"});await c.save(V,{messages:C.messages,title:Re,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,lineage:le,artifactLedger:ie,uiHistory:C.uiHistory,...ni(C),...oe.session?.tag!==void 0?{tag:oe.session.tag}:{}});let wt=Vs(),Be=qe(Ce.messages);await c.save(wt,{messages:Ce.messages,title:Ce.title,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,lineage:Be,artifactLedger:ie,...oe.session?.tag!==void 0?{tag:oe.session.tag}:{}});let Fe=new Date().toISOString();C.sessionId=wt,C.messages=Ce.messages,C.title=Ce.title,C.contextTokenSnapshot=void 0,C.lineage=Be,C.artifactLedger=ie,C.extensionState=void 0,C.extensionRecords=void 0,C.extensionStateDirty=!1,C.extensionRecordsDirty=!1,C.createdAt=Fe,C.lastAccessed=Fe,oe.session={...oe.session,id:wt},p?.writer.update({sessionId:wt}),console.log(ae.green(`
|
|
253
|
-
[Recovered session: ${wt}]`)),console.log(ae.dim(` Source session saved: ${V}`)),console.log(ae.dim(" Raw provider history was not replayed."));let Ln;try{Ln=await Rg(oe,C,dp(H),C.messages,void 0,e.runtimeRunner,D,Ge,pt)}catch(fr){let Ur=fr instanceof Error?fr.message:String(fr);return console.log(ae.red(`
|
|
254
|
-
[Recover failed] ${Ur}`)),"failed"}C.messages=Ln.messages,C.contextTokenSnapshot=Ln.contextTokenSnapshot,Yd(C,Ln),C.artifactLedger=gs(C.artifactLedger??[],Ln.artifactLedger??ip(Ln.messages)),C.lineage=qe(C.messages,C.lineage);let Pn=xo(C.messages);return C.title=Pn,await c.save(C.sessionId,{messages:C.messages,title:Pn,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,lineage:C.lineage,artifactLedger:C.artifactLedger,...ni(C),...oe.session?.tag!==void 0?{tag:oe.session.tag}:{}}),bl(C),"recovered"},"recoverCurrentSession"),kt={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(()=>{mt=!1,p?.shutdown(),Ue.close()},"exit"),saveSession:i(H=>cz(C,c,oe.session?.tag,H),"saveSession"),startNewSession:i(()=>{C.sessionId=Vs(),C.title="",C.contextTokenSnapshot=void 0,C.artifactLedger=void 0,C.extensionState=void 0,C.extensionRecords=void 0,C.extensionStateDirty=!1,C.extensionRecordsDirty=!1,C.createdAt=new Date().toISOString(),C.lastAccessed=C.createdAt,ET(C,oe,s),oe.session={...oe.session,id:C.sessionId},p?.writer.update({sessionId:C.sessionId})},"startNewSession"),loadSession:i(async H=>{let V=await c.load(H);if(V){if(!ne("Resuming a saved session"))return"blocked";let le=await no({cwd:process.cwd()}),ie=Fn(V),Re=ie??le;return ie?.workspaceRoot&&!_p(ie)?(console.log(ae.yellow(`
|
|
255
|
-
[Saved workspace unavailable]`)),console.log(ae.dim(` Session workspace: ${ro(ie)}`)),console.log(ae.dim(` Falling back to current workspace: ${ro(le)}`)),Re=le):ie?.workspaceRoot&&le.workspaceRoot&&ie.workspaceRoot!==le.workspaceRoot&&(console.log(ae.cyan(`
|
|
256
|
-
[Loading sibling workspace session]`)),console.log(ae.dim(` Current workspace: ${ro(le)}`)),console.log(ae.dim(` Session workspace: ${ro(ie)}`))),C.messages=V.messages,C.title=V.title,C.sessionId=H,C.contextTokenSnapshot=void 0,C.artifactLedger=V.artifactLedger,C.extensionState=V.extensionState?structuredClone(V.extensionState):void 0,C.extensionRecords=V.extensionRecords?.map(Ce=>({...Ce})),C.extensionStateDirty=!1,C.extensionRecordsDirty=!1,C.lastAccessed=new Date().toISOString(),ET(C,oe,Re),oe.session={...oe.session,id:H,tag:V.tag},p?.writer.update({sessionId:H}),console.log(ae.green(`
|
|
257
|
-
[Loaded session: ${H}]`)),console.log(ae.dim(` Messages: ${V.messages.length}`)),C.runtimeInfo?.workspaceRoot&&console.log(ae.dim(` Workspace: ${ro(C.runtimeInfo)}`)),"loaded"}return"missing"},"loadSession"),listSessions:i(async()=>{let H=await c.list(C.gitRoot??void 0);if(H.length===0){console.log(ae.dim(`
|
|
258
|
-
[No saved sessions]`));return}console.log(ae.bold(`
|
|
259
|
-
Recent Sessions:
|
|
260
|
-
`)),C.runtimeInfo?.workspaceRoot&&(console.log(ae.dim(` Current workspace: ${ro(C.runtimeInfo)}`)),console.log());for(let V of H.slice(0,10))if(console.log(` ${ae.cyan(V.id)} ${ae.dim(`(${V.msgCount} messages)`)} ${V.title.slice(0,40)}`),V.runtimeInfo?.workspaceRoot){let ie=C.runtimeInfo?.workspaceRoot===V.runtimeInfo.workspaceRoot?" (current workspace)":"";console.log(ae.dim(` workspace: ${ro(V.runtimeInfo)}${ie}`))}console.log()},"listSessions"),clearHistory:i(()=>{},"clearHistory"),printHistory:i(()=>{if(C.messages.length===0){console.log(ae.dim(`
|
|
261
|
-
[No conversation history]`));return}console.log(ae.bold(`
|
|
262
|
-
Conversation History:
|
|
263
|
-
`));let H=C.messages.slice(-20);for(let V=0;V<H.length;V++){let le=H[V],ie=ae.cyan(le.role.padEnd(10)),Re=typeof le.content=="string"?le.content:"[Complex content]",Ce=Re.slice(0,60).replace(/\n/g," "),wt=Re.length>60?"...":"";console.log(` ${(V+1).toString().padStart(2)}. ${ie} ${Ce}${wt}`)}console.log()},"printHistory"),switchProvider:i((H,V)=>{let le=j({provider:H,model:V});k.provider=H,k.model=V,oe.provider=H,oe.model=V,oe.effort=le.runtimeEffort,le.diagnostic&&console.log(ae.yellow(`
|
|
264
|
-
[${le.diagnostic}]`))},"switchProvider"),setThinking:i(H=>{k.thinking=H,oe.thinking=H,k.reasoningMode=H?"auto":"off",oe.reasoningMode=k.reasoningMode},"setThinking"),setEffort:i(H=>{k.effort=H,k.effortOverride=H!==void 0,Qe()},"setEffort"),setReasoningMode:i(H=>{let V=H!=="off";k.reasoningMode=H,k.thinking=V,oe.reasoningMode=H,oe.thinking=V},"setReasoningMode"),setAgentMode:i(H=>{k.agentMode=H,oe.agentMode=H},"setAgentMode"),setPermissionMode:i(async H=>{let V=ys(H);await e.runtimeAutoModeControl?.syncSettings?.(C.sessionId,V,pt),k.permissionMode=V,D=V,Qe()},"setPermissionMode"),setRepoIntelligenceRuntime:i(H=>{H.mode!==void 0&&(k.repoIntelligenceMode=H.mode,process.env.KODAX_REPO_INTELLIGENCE=H.mode,oe.context={...oe.context,repoIntelligenceMode:H.mode}),H.trace!==void 0&&(k.repoIntelligenceTrace=H.trace,H.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,oe.context={...oe.context,repoIntelligenceTrace:H.trace})},"setRepoIntelligenceRuntime"),deleteSession:i(async H=>{await c.delete?.(H)},"deleteSession"),deleteAllSessions:i(async()=>{await c.deleteAll?.(C.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let H=await c.getLineage?.(C.sessionId);if(!H){console.log(ae.dim(`
|
|
265
|
-
[No session tree available for this session]`));return}let V=og(ap(H));console.log(ae.bold(`
|
|
266
|
-
Session Tree:
|
|
267
|
-
`));for(let le of V)console.log(` ${le}`);console.log()},"printSessionTree"),switchSessionBranch:i(async H=>{if(!ne("Switching session branches"))return"blocked";let V=await c.setActiveEntry?.(C.sessionId,H,{summarizeCurrentBranch:!0});return V?(C.messages=V.messages,C.title=V.title,C.contextTokenSnapshot=void 0,console.log(ae.green(`
|
|
268
|
-
[Switched to tree entry: ${H}]`)),console.log(ae.dim(` Messages: ${V.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(H,V)=>{if(!await c.setLabel?.(C.sessionId,H,V))return!1;let ie=V&&V.trim()?`checkpoint label set: ${V.trim()}`:"checkpoint label cleared";return console.log(ae.green(`
|
|
269
|
-
[${ie}]`)),!0},"labelSessionBranch"),forkSession:i(async H=>{if(!ne("Forking a session branch"))return"blocked";let V=await c.fork?.(C.sessionId,H);return V?(C.sessionId=V.sessionId,C.messages=V.data.messages,C.title=V.data.title,C.contextTokenSnapshot=void 0,C.createdAt=new Date().toISOString(),C.lastAccessed=C.createdAt,ET(C,oe,Fn(V.data)??C.runtimeInfo),oe.session={...oe.session,id:V.sessionId},console.log(ae.green(`
|
|
270
|
-
[Forked session: ${V.sessionId}]`)),console.log(ae.dim(` Messages: ${V.data.messages.length}`)),"forked"):"failed"},"forkSession"),recoverSession:pn,rewindSession:i(async H=>{if(!ne("Rewinding session"))return"blocked";let V=await c.rewind?.(C.sessionId,H);return V?(C.messages=V.messages,C.title=V.title,C.contextTokenSnapshot=void 0,C.lastAccessed=new Date().toISOString(),console.log(ae.green(`
|
|
271
|
-
[Rewound session${H?` to ${H}`:" to previous turn"}]`)),console.log(ae.dim(` Messages: ${V.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>_T.current?.()??null,"getCostReport"),getAutoModeStats:i(async()=>{if($o(D))return e.runtimeAutoModeControl?e.runtimeAutoModeControl.getStats(C.sessionId):Rt.getGuardrail().getStats()},"getAutoModeStats"),createKodaXOptions:i(()=>{let H=i((ie,Re)=>D!=="plan"?null:Oo(ie,Re,d??process.cwd()),"planModeBlockCheck"),V=e.runtimeRunner?void 0:rg({getPermissionMode:i(()=>D,"getPermissionMode"),getAutoGuardrail:Rt.getGuardrail,shellSandbox:oe.context?.shellSandbox,trustedTextMutationHost:oe.context?.trustedTextMutationHost,userConfigDir:oe.context?.configHome,projectRoot:d??process.cwd(),execPolicy:e.execPolicy,resolvePlanHostExecution:i(ie=>wi(ie.command,d??process.cwd(),u.executionCwd??d??process.cwd())?!0:"[Blocked] Plan mode cannot escalate this command to unsandboxed host execution.","resolvePlanHostExecution"),requestUserPermission:i(async(ie,Re)=>{let Ce={...ie.toolInput,command:ie.command};if(Re==="mode_boundary"&&D==="accept-edits"&&await yi("bash",Ce,U,de))return!0;let wt=await vl(Ue,"bash",Ce,{permissionMode:D});return wt.confirmed&&wt.always&&Re==="mode_boundary"&&D==="accept-edits"&&(cc("bash",Ce,!1),U=xi()),wt.confirmed},"requestUserPermission")}),le=V!==void 0&&$o(D)?[V.autoGuardrail]:void 0;return{...oe,provider:k.provider,model:k.model,effort:j().runtimeEffort,thinking:k.thinking,reasoningMode:k.reasoningMode,guardrails:le,context:{...oe.context,planModeBlockCheck:H,...V===void 0?{}:{shellSandbox:V.shellSandbox,resolveShellPermissionMode:V.resolveShellPermissionMode,authorizeShellHostExecution:V.authorizeShellHostExecution,...V.trustedTextMutationHost===void 0?{}:{trustedTextMutationHost:V.trustedTextMutationHost}}},events:{...oe.events,onMemoryOutcomeDigest:i((ie,Re)=>{if(ie.sessionId!==C.sessionId){oe.events?.onMemoryOutcomeDigest?.(ie,Re);return}C.lineage=cp(C.lineage??qe(C.messages),ie,Re?.jobId),oe.events?.onMemoryOutcomeDigest?.(ie,Re)},"onMemoryOutcomeDigest"),onMemoryReviewReceipt:i(ie=>{if(ie.sessionId!==void 0&&ie.sessionId!==C.sessionId){oe.events?.onMemoryReviewReceipt?.(ie);return}C.lineage=lp(C.lineage??qe(C.messages),ie),oe.events?.onMemoryReviewReceipt?.(ie)},"onMemoryReviewReceipt"),onMemoryNotice:i(ie=>{if(ie.sessionId!==void 0&&ie.sessionId!==C.sessionId){oe.events?.onMemoryNotice?.(ie);return}let Re=C.lineage??qe(C.messages),Ce=up(Re,{...ie,createdAt:new Date().toISOString()});C.lineage=Ce,Ce!==Re&&console.log(ae.dim(`
|
|
272
|
-
[memory] ${ie.summaries.slice(0,3).join("; ")}`)),oe.events?.onMemoryNotice?.(ie)},"onMemoryNotice"),exitPlanMode:i(async ie=>D!=="plan"?"not-in-plan-mode":(await vl(Ue,"exit_plan_mode",{plan:ie},{isProtectedPath:!1,permissionMode:D})).confirmed?(k.permissionMode="accept-edits",D="accept-edits",Qe(),!0):!1,"exitPlanMode"),beforeToolExecute:i(async(ie,Re)=>{let Ce=D,wt=Za(Ce);if(Ce==="plan"){let Be=Oo(ie,Re,d??process.cwd());if(Be)return console.log(ae.yellow(Be)),`${Be} 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(!e.runtimeRunner&&ie==="bash")return!0;if(ie==="bash"){let Be=Re.command??"";if(wi(Be,d??process.cwd(),u.executionCwd??d??process.cwd()))return!0}if(Ce==="full-access"||$o(Ce))return!0;if(d&&hi.has(ie)){let Be=Re.path;if(Be&&Qa(Be,d))return(await vl(Ue,ie,Re,{isProtectedPath:!0,permissionMode:Ce})).confirmed?!0:(console.log(ae.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(wt.has(ie)){if(Ce==="accept-edits"&&ie==="bash"&&await yi(ie,Re,U,de))return!0;let Be=await vl(Ue,ie,Re,{isOutsideProject:Re._outsideProject===!0,reason:Re._reason,permissionMode:Ce});if(!Be.confirmed)return console.log(ae.dim("[Cancelled] Operation cancelled by user")),!1;Be.always&&Ce==="accept-edits"&&(cc(ie,Re,!1),U=xi())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:i(async()=>(pe=await Y(),pe),"reloadAgentsFiles"),readline:Ue,ui:new bg(Ue)},qn=i(async(H,V)=>{let le=new AbortController,ie={...kt.createKodaXOptions?.()??oe,toolInvocation:H,abortSignal:le.signal},Re={request:i(async()=>(le.abort(new Error("Stopped by user")),process.stdout.write(`
|
|
273
|
-
[Stop accepted]
|
|
274
|
-
`),{state:"unknown"}),"request")};e.runtimeRunner||(t=Re);try{let Ce=await Rg(ie,C,V,C.messages,void 0,e.runtimeRunner,D,Ge);return C.messages=Ce.messages,C.lineage=qe(Ce.messages,C.lineage),Yd(C,Ce),e.runtimeRunner||await kt.saveSession?.(),le.signal.aborted&&process.stdout.write(`
|
|
275
|
-
[Stop confirmed]
|
|
276
|
-
`),Ce}finally{t===Re&&(t=void 0)}},"executeOwnedTool");kt.executeToolInvocation=qn;let on=i(H=>qn({name:"bash",input:{command:H}},`!${H}`),"executeManualShell"),Te=i(async H=>{C.uiHistory=[...C.uiHistory??[],H];let V=C.title||xo(C.messages);C.title=V,await c.save(C.sessionId,{messages:C.messages,title:V,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,lineage:C.lineage,artifactLedger:C.artifactLedger,uiHistory:C.uiHistory,...ni(C),...oe.session?.tag!==void 0?{tag:oe.session.tag}:{}})},"appendPersistedUiHistoryItem"),je=i(async(H,V)=>{if(!$p({error:H,messageCount:C.messages.length}))return!1;console.log(ae.dim(`
|
|
277
|
-
${Su}`));try{await Te({type:"info",text:Su})}catch(Ce){let wt=Ce instanceof Error?Ce.message:String(Ce);console.log(ae.dim(`Could not persist recovery hint: ${wt}`))}let le=wb(kt);if(!le)return console.log(),!1;if(!await le(Op))return!1;let Re;try{Re=await kt.recoverSession?.(V)}catch(Ce){let wt=Ce instanceof Error?Ce.message:String(Ce);return console.log(ae.red(`
|
|
278
|
-
[Recover failed] ${wt}`)),!1}return Re==="failed"&&console.log(ae.dim(`Recovery session was created, but the continuation request still failed.
|
|
279
|
-
`)),Re==="recovered"},"maybeRecoverAfterProviderError");Ue.on("SIGINT",async()=>{if(t){try{await t.request()}catch(H){ut({source:"repl:stop",level:"error",message:H instanceof Error?H.message:String(H)})}return}console.log(ae.dim(`
|
|
280
|
-
|
|
281
|
-
[Press /exit to quit]`)),Ue.prompt()});let Nt=i(()=>{p?.shutdown(),Ue.close()},"cleanup");process.on("exit",Nt),process.on("SIGTERM",Nt);let be=i(async(H,V)=>{if(hp({source:H.source}).action==="none")return!1;let ie=!1,Re=i(Be=>{ie||(ie=!0,C.messages.push({role:"user",content:V||H.request,timestamp:new Date().toISOString()})),C.messages.push({role:"assistant",content:Be,timestamp:new Date().toISOString()});let Fe=xo(C.messages);C.title=Fe,c.save(C.sessionId,{messages:C.messages,title:Fe,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger,...oe.session?.tag!==void 0?{tag:oe.session.tag}:{}}).catch(Ln=>{let Pn=Ln instanceof Error?Ln.message:String(Ln);console.log(ae.red(`
|
|
282
|
-
[workflow] failed to save final answer: ${Pn}
|
|
283
|
-
`))})},"commitWorkflowFinal"),Ce={...kt,onWorkflowRunMessage:i(Be=>{if(Be.type==="event")return;let Fe=Be.text.trimEnd();if(Fe.trim()){if(Be.type==="error"){console.log(ae.red(`
|
|
284
|
-
${Fe}
|
|
285
|
-
`));return}if(Be.type==="success"){console.log(ae.green(`
|
|
286
|
-
${Fe}
|
|
287
|
-
`));return}if(Be.type==="assistant"){console.log(`
|
|
288
|
-
${Fe}
|
|
289
|
-
`),Be.final===!0&&Re(Fe);return}console.log(ae.dim(`
|
|
290
|
-
${Fe}
|
|
291
|
-
`))}},"onWorkflowRunMessage")},wt=await Pp({request:H.request,callbacks:Ce,approval:k.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:H.displayName,processSource:H.processSource??"command",...H.builtin!==void 0?{builtin:H.builtin}:{}});return gp({outcome:wt})},"startWorkflowInvocation"),ct=i(async(H,V)=>{if(!H||typeof H!="object")return;if(H.workflow){await be(H.workflow,V);return}if(!H.invocation)return;let le=await Ks({...oe,provider:k.provider,thinking:k.thinking,reasoningMode:k.reasoningMode},H.invocation,V,ie=>console.log(ae.dim(`
|
|
292
|
-
${ie}`)));if(le.mode==="manual"){le.manualOutput&&console.log(ae.yellow(`
|
|
293
|
-
${le.manualOutput}
|
|
294
|
-
`)),await le.finalize();return}if(!le.prompt||!le.options){await le.finalize();return}try{let ie=le.mode==="fork"?[]:C.messages,Re=await Rg(le.options,C,le.prompt,ie,void 0,e.runtimeRunner,D,Ge,pt);if(le.mode==="fork"){let Ce=pb(Re.messages);Ce.trim()&&(console.log(`
|
|
295
|
-
${Ce}
|
|
296
|
-
`),C.messages.push({role:"assistant",content:Ce,timestamp:new Date().toISOString()}))}else C.messages=Re.messages,C.contextTokenSnapshot=Re.contextTokenSnapshot;if(Yd(C,Re),C.messages.length>0){let Ce=xo(C.messages);C.title=Ce,await c.save(C.sessionId,{messages:C.messages,title:Ce,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,...ni(C),...oe.session?.tag!==void 0?{tag:oe.session.tag}:{}}),bl(C)}await le.finalize()}catch(ie){throw await le.finalize(ie instanceof Error?ie:new Error(String(ie))),ie}},"handleCommandResult"),z=i(async H=>{try{return{invocation:await Cs(H,{workingDirectory:oe.context?.executionCwd??process.cwd(),projectRoot:C.gitRoot??void 0,sessionId:C.sessionId,environment:{},executeDynamicContext:C.skillDynamicContext?.execute,disableDynamicContext:C.skillDynamicContext?.disable}),rejected:!1}}catch(V){if(!(V instanceof lc))throw V;return console.log(ae.yellow(`
|
|
297
|
-
${V.message}
|
|
298
|
-
`)),{invocation:void 0,rejected:!0}}},"resolveInlineSkillInvocation");for(;mt;){if(b&&P){b=!1,Ue.resume();let Be=await kT(P);if(Be&&Be.trim()&&Be!==P){console.log(ae.dim(`
|
|
299
|
-
[Edited message ready to send]`));let Fe=Be.trim();Hr(C),Rt.resetTurn();let Ln=Do(Fe);if(Ln){let Jt=await vs(Ln,C,kt,k,Fe);await ct(Jt,Fe);continue}let Pn=await kg(Fe,oe.context?.executionCwd,on);if(Fe.startsWith("!")&&gd(Pn))continue;let fr=await z(Fe);if(fr.rejected)continue;if(fr.invocation){await ct({invocation:fr.invocation},Fe);continue}let Ur=yl(Pn,oe.context?.executionCwd??process.cwd());for(let Jt of Ur.warnings)console.log(ae.yellow(`
|
|
300
|
-
${Jt}`));C.messages.push({role:"user",content:Ur.messageContent}),P=Fe;let ii=C.lineage?sv({getLineage:i(()=>C.lineage,"getLineage"),setLineage:i(Jt=>{C.lineage=Jt},"setLineage"),saveSession:i(async()=>{await c.save(C.sessionId,{messages:C.messages,title:C.title??xo(C.messages),gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger,lineage:C.lineage,...ni(C),...oe.session?.tag!==void 0?{tag:oe.session.tag}:{}}),bl(C)},"saveSession"),getLatestUsage:i(()=>{},"getLatestUsage"),getTurnStartMs:i(()=>{},"getTurnStartMs"),getPermissionMode:i(()=>D,"getPermissionMode"),hasPendingUserInput:i(()=>rr().has({agentId:Jf(C.sessionId,"/root"),maxPriority:"user",mode:"prompt"}),"hasPendingUserInput"),verifyComplete:i(async()=>({ok:!0}),"verifyComplete")}):void 0;try{let Jt=await fu({...oe,provider:k.provider,thinking:k.thinking,reasoningMode:k.reasoningMode,session:{...oe.session,initialMessages:C.lineage?Bt(C.lineage,C.lineage.activeEntryId):C.messages,initialExtensionState:C.extensionState??{},initialExtensionRecords:C.extensionRecords??[]},context:{...oe.context,taskSurface:"repl",planModeBlockCheck:i((Gr,Jd)=>D!=="plan"?null:Oo(Gr,Jd,d??process.cwd()),"planModeBlockCheck"),...Ur.inputArtifacts.length>0?{inputArtifacts:Ur.inputArtifacts}:{},...ii?{goalRuntime:ii}:{}}},Pn);if(C.messages=Jt.messages,C.contextTokenSnapshot=Jt.contextTokenSnapshot,Yd(C,Jt),C.artifactLedger=gs(C.artifactLedger??[],Jt.artifactLedger??ip(Jt.messages)),C.messages.length>0){let Gr=xo(C.messages);C.title=Gr,await c.save(C.sessionId,{messages:C.messages,title:Gr,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger,...ni(C),...oe.session?.tag!==void 0?{tag:oe.session.tag}:{}}),bl(C)}}catch(Jt){let Gr=Jt instanceof Error?Jt:new Error(String(Jt));if(C.messages.pop(),console.log(ae.red(`
|
|
301
|
-
[Error] ${Gr.message}`)),await je(Gr,Pn))continue}continue}else Be===P&&console.log(ae.dim(`
|
|
302
|
-
[No changes made, continuing...]`))}let H=wO(k.permissionMode,k),V=await SO(Ue,H);if(!mt)break;let le=V.trim();if(!le)continue;Hr(C),Rt.resetTurn();let ie=Do(le);if(ie){let Be=await vs(ie,C,kt,k,le);await ct(Be,le);continue}let Re=await kg(le,oe.context?.executionCwd,on);if(le.startsWith("!")&&gd(Re))continue;let Ce=await z(le);if(Ce.rejected)continue;if(Ce.invocation){await ct({invocation:Ce.invocation},le);continue}let wt=yl(Re,oe.context?.executionCwd??process.cwd());for(let Be of wt.warnings)console.log(ae.yellow(`
|
|
303
|
-
${Be}`));C.messages.push({role:"user",content:wt.messageContent}),P=le;try{let Be=await Rg(oe,C,Re,C.messages,wt.inputArtifacts,e.runtimeRunner,D,Ge,pt);if(C.messages=Be.messages,C.contextTokenSnapshot=Be.contextTokenSnapshot,Yd(C,Be),C.artifactLedger=gs(C.artifactLedger??[],Be.artifactLedger??ip(Be.messages)),C.messages.length>0){let Fe=xo(C.messages);C.title=Fe,await c.save(C.sessionId,{messages:C.messages,title:Fe,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger,...ni(C),...oe.session?.tag!==void 0?{tag:oe.session.tag}:{}}),bl(C)}}catch(Be){let Fe=Be instanceof Error?Be:new Error(String(Be));C.messages.pop(),Fe.message.includes("rate limit")||Fe.message.includes("Rate limit")?(console.log(ae.yellow(`
|
|
304
|
-
[Rate Limit] ${Fe.message}`)),console.log(ae.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
|
|
305
|
-
`))):Fe.message.includes("API key")||Fe.message.includes("not configured")?(console.log(ae.red(`
|
|
306
|
-
[Configuration Error] ${Fe.message}`)),console.log(ae.dim(`Suggestion: Set the required API key environment variable
|
|
307
|
-
`))):Fe.message.includes("network")||Fe.message.includes("ECONNREFUSED")||Fe.message.includes("ETIMEDOUT")?(console.log(ae.red(`
|
|
308
|
-
[Network Error] ${Fe.message}`)),console.log(ae.dim(`Suggestion: Check your internet connection and try again
|
|
309
|
-
`))):Fe.message.includes("token")||Fe.message.includes("context too long")?(console.log(ae.yellow(`
|
|
310
|
-
[Context Error] ${Fe.message}`)),console.log(ae.dim(`Suggestion: Use /clear to start a fresh conversation
|
|
311
|
-
`))):(console.log(ae.red(`
|
|
312
|
-
[Error] ${Fe.message}`)),console.log(ae.dim(`Your message was not sent. Please try again.
|
|
313
|
-
`))),await je(Fe,Re)}}}i(IO,"runInteractiveMode");async function kg(e,t=process.cwd(),n){let r=e.match(/@[\w./-]+/g);if(r)for(let o of r){let s=o.slice(1)}if(e.startsWith("!")){let o=e.slice(1).trim();return hd(o,{cwd:t,execute:n})}return e}i(kg,"processSpecialSyntax");function uz(e){let t=e.snapshot;if(e.type==="workflow_started")return ae.dim(`
|
|
314
|
-
\u25B6 workflow ${t.workflowName} started (${t.runId})`);if(e.type==="workflow_finished"){let n=t.status==="completed"?ae.green("\u2713"):t.status==="failed"?ae.red("\u2717"):ae.yellow("\u2022"),r=t.resultSummary?` \u2014 ${t.resultSummary.split(`
|
|
315
|
-
`)[0]}`:"";return`${n} workflow ${t.workflowName} ${t.status}${r}`}if(e.type==="workflow_updated"&&e.message)return ae.dim(` ${e.message}`)}i(uz,"renderInlineWorkflowProcessLine");async function Rg(e,t,n,r=t.messages,o,s,a="accept-edits",c,l){let u={...e.events??{},getCostReport:_T,onWorkflowProcessEvent:i(p=>{let m=uz(p);m&&console.log(m)},"onWorkflowProcessEvent"),onWorkflowAgentDigest:i(({runId:p,event:m})=>{let h=m.data??{},g=typeof h.summary=="string"?h.summary:void 0,x=typeof h.name=="string"?h.name:void 0,T=wu(g,x),S=Lp(m,T,p);S&&console.log(`
|
|
316
|
-
${S}
|
|
317
|
-
`)},"onWorkflowAgentDigest"),onCompactedMessages:i(async(p,m,h)=>{let g=tg(t.lineage,p,m,h);if(!g){await e.events?.onCompactedMessages?.(p,m,h);return}if(t.messages=p,t.lineage=g,m?.artifactLedger?.length&&(t.artifactLedger=gs(t.artifactLedger??[],m.artifactLedger)),s)t.lineage=Xa(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:xo(p),gitRoot:t.gitRoot??"",runtimeInfo:t.runtimeInfo,lineage:g,artifactLedger:t.artifactLedger,...ni(t),...e.session?.tag!==void 0?{tag:e.session.tag}:{}}),t.lineage=Xa(g)}catch(T){throw ut({source:"repl:compaction",level:"error",message:"Failed to durably persist compacted session history.",detail:T}),T}}await e.events?.onCompactedMessages?.(p,m,h)},"onCompactedMessages")};az(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}):d.toolInvocation?mp(d,d.toolInvocation,n):fu(d,n)}i(Rg,"runAgentRound");function xo(e){return Ci(e)}i(xo,"extractTitle");import Eg from"node:fs";import dz from"node:path";function vO(){let e=Ag();return Lg(e).map(n=>Mg(n))}i(vO,"listCustomProviders");function bO(e){if(typeof e!="string"||e.length===0)return;let t=Lg(Ag()).find(n=>n.name===e);return t?Mg(t):void 0}i(bO,"getCustomProviderConfig");function RO(e){AI(e);let t=Mg(e),n=_g(),r=mu(n,()=>{let o=Ag(),s=Lg(o),a=s.findIndex(l=>l.name===t.name),c=a>=0?s.map((l,u)=>u===a?t:l):[...s,t];return EO({...o,customProviders:c}),c});return by(r),Mg(t)}i(RO,"upsertCustomProvider");function kO(e){if(typeof e!="string"||e.length===0)return!1;let t=_g(),n=mu(t,()=>{let r=Ag(),o=Lg(r),s=o.filter(a=>a.name!==e);if(s.length!==o.length)return EO({...r,customProviders:s}),s});return n?(by(n),!0):!1}i(kO,"removeCustomProvider");function _g(){return fi("config.json")}i(_g,"configFilePath");function Ag(){let e=_g();if(!Eg.existsSync(e))return{};try{let t=JSON.parse(Eg.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(Ag,"readWholeConfig");function EO(e){let t=_g();Eg.mkdirSync(dz.dirname(t),{recursive:!0}),Eg.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(EO,"writeWholeConfig");function Lg(e){let t=e.customProviders;return Array.isArray(t)?t:[]}i(Lg,"extractCustomProviders");function Mg(e){return structuredClone(e)}i(Mg,"cloneCustomProvider");function MO(){return structuredClone(ws(Lo()).document.servers)}i(MO,"listMcpServers");function _O(e){if(typeof e!="string"||e.length===0)return;let t=ws(Lo()).document.servers[e];return t===void 0?void 0:structuredClone(t)}i(_O,"getMcpServerConfig");function AO(e,t){AT(e,t);let n=Lo(),r=ws(n),o=structuredClone(t);return hu({domain:"mcp",configHome:n,...r.source==="user"?{expectedRevision:r.revision}:{},document:{version:1,servers:{...r.document.servers,[e]:o}},validate:tc}),structuredClone(o)}i(AO,"upsertMcpServer");function LO(e){if(typeof e!="string"||e.length===0)return!1;let t=Lo(),n=ws(t);if(!(e in n.document.servers))return!1;let r=structuredClone(n.document.servers);return delete r[e],hu({domain:"mcp",configHome:t,...n.source==="user"?{expectedRevision:n.revision}:{},document:{version:1,servers:r},validate:tc}),!0}i(LO,"removeMcpServer");function AT(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("MCP server name must be a non-empty string");tc({version:1,servers:{[e]:t}})}i(AT,"validateMcpServerConfig");import da from"node:fs/promises";import An from"node:path";var fz=8;function PO(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(PO,"isRecord");function OO(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")&&!e.startsWith("archived-")}i(OO,"isSessionFile");async function pz(e){let t=[],n=[];try{n=await da.readdir(e,{withFileTypes:!0})}catch{return t}for(let r of n){if(r.isFile()){OO(r.name)&&t.push(An.join(e,r.name));continue}if(!r.isDirectory()||r.name.startsWith("."))continue;let o=An.join(e,r.name),s=[];try{s=await da.readdir(o)}catch{continue}for(let a of s)OO(a)&&t.push(An.join(o,a))}return t}i(pz,"collectSessionFiles");function mz(e,t){let r=An.relative(e,t).split(An.sep);return r.length>1?r[0]:void 0}i(mz,"getProjectKey");async function hz(e,t){let n=An.relative(e,t),r=An.basename(t,".jsonl");try{let s=(await da.readFile(t,"utf8")).split(/\r?\n/,1)[0];if(!s)return null;let a=JSON.parse(s);if(!PO(a)||a._type!=="meta")return null;let c=PO(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,m=typeof a.activeEntryId=="string"||a.activeEntryId===null;return{id:typeof a.id=="string"?a.id:r,filePath:t,relativePath:n,projectKey:mz(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||m||p>0)}}catch{return null}}i(hz,"parseCandidate");function gz(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(gz,"sameProject");function yz(e,t){if(t.isRunner||t.scope!=="user"||!gz(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>=fz?{canonical:t,score:n,reasons:r}:null}i(yz,"scoreCandidate");function wz(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(wz,"formatArchiveBatch");async function Sz(e){let t=e,n=1;for(;;){try{await da.access(t)}catch{return t}let r=An.extname(e);t=`${e.slice(0,e.length-r.length)}.${n}${r}`,n+=1}}i(Sz,"uniqueTargetPath");async function $O(e={}){let t=e.sessionsDir??eo;e.apply&&(await da.mkdir(t,{recursive:!0}),await ta(t));let n=await pz(t),r=[],o=[];for(let d of n){let p=await hz(t,d);if(!p){An.basename(d).startsWith("runner-")&&o.push({runnerId:An.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(h=>yz(d,h)).filter(h=>h!==null).sort((h,g)=>g.score-h.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(h=>`${h.canonical.id}:${h.score}`).join(", ")});continue}let m=p[0];c.push({runnerId:d.id,runnerPath:d.filePath,canonicalId:m.canonical.id,canonicalPath:m.canonical.filePath,score:m.score,reasons:m.reasons})}let l=[],u=An.join(t,".dedupe-archive",wz(e.now??new Date));if(e.apply)for(let d of c){let p=An.relative(t,d.runnerPath),m;try{m=await Sz(An.join(u,p)),await da.mkdir(An.dirname(m),{recursive:!0}),await da.rename(d.runnerPath,m),l.push({runnerId:d.runnerId,from:d.runnerPath,to:m})}catch(h){o.push({runnerId:d.runnerId,path:d.runnerPath,reason:"move-failed",detail:`target=${m??An.join(u,p)}; ${h instanceof Error?h.message:String(h)}`})}}return{scanned:n.length,runnerCandidates:s.length,matches:c,moved:l,skipped:o,...e.apply?{archiveDir:u}:{}}}i($O,"dedupeSessions");function xz(e){return e?.storage?e.storage:e?.sessionsDir!==void 0?new kr({sessionsDir:e.sessionsDir}):new kr}i(xz,"resolveStorage");async function Rl(e,t){let n={compacted:!1,tokensBefore:0,tokensAfter:0,messages:[]};try{let r=xz(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=t?.model??(a===o.runtimeInfo?.provider?o.runtimeInfo.model:void 0),l=ps(a);if(!l)return{...n,messages:s,reason:`provider not found: ${a}`};let u=t?.contextWindow??l.getEffectiveContextWindow?.(c)??l.getContextWindow?.()??2e5,d=ms(s),p=await bp(),m=FI({...p,...t?.reasoning!==void 0?{reasoning:t.reasoning}:{},contextWindow:u,triggerPercent:t?.triggerPercent??p.triggerPercent,triggerTokens:t?.triggerTokens??p.triggerTokens}),h=await HI(s,m,l,u,t?.customInstructions,void 0,d,tv,nv,c,!0,l.getEffectiveMaxOutputTokens(c));if(!h.compacted)return{compacted:!1,tokensBefore:h.tokensBefore,tokensAfter:h.tokensAfter,messages:s,reason:"no compaction needed"};let g={summary:h.summary??"",tokensBefore:h.tokensBefore,tokensAfter:h.tokensAfter,...h.anchor,reason:"manual"},x=await rv({compacted:h.messages,artifactLedger:h.artifactLedger??o.artifactLedger??[],tokensBefore:h.tokensBefore,tokensAfter:h.tokensAfter,capacity:{contextWindow:u,reservedResponseTokens:l.getEffectiveMaxOutputTokens(c)}}),T=qe(s,o.lineage),S=sp(T,x.compacted,g,x.postCompactAttachmentsForLineage),I=Bt(S),v=ms(I),$=[...S.entries].reverse().find(D=>D.type==="compaction"),_=$?{...S,entries:S.entries.map(D=>D.id===$.id&&D.type==="compaction"?{...D,tokensAfter:v}:D)}:S,N={...o,messages:I,lineage:_,artifactLedger:h.artifactLedger??o.artifactLedger},B=performance.now();await r.save(e,N);let k=performance.now()-B;return{compacted:!0,tokensBefore:h.tokensBefore,tokensAfter:v,messages:I,report:h.report?{...h.report,commitMs:k}:void 0}}catch(r){if(t?.propagateErrors===!0)throw r;return{...n,reason:r instanceof Error?r.message:String(r)}}}i(Rl,"compactSession");import fa from"node:fs";import oi from"node:fs/promises";import Gt from"node:path";import{createHash as Tz,randomUUID as Cz}from"node:crypto";async function Iz(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 oi.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(Gt.join(e,a.name));continue}if(!a.isDirectory()||a.name.startsWith("."))continue;let c=Gt.join(e,a.name);try{for(let l of await oi.readdir(c))o(l)&&n.push(Gt.join(c,l))}catch(l){l.code!=="ENOENT"&&(r=!1)}if(t){let l=Gt.join(c,"archived");try{for(let u of await oi.readdir(l))o(u)&&n.push(Gt.join(l,u))}catch(u){u.code!=="ENOENT"&&(r=!1)}}}return{paths:n,complete:r}}i(Iz,"collectSessionFilePaths");function vz(e,t,n){return n?.trim()?Ap({...t===void 0?{}:{gitRoot:t},...e===void 0?{}:{runtimeInfo:{...e.gitRoot===void 0?{}:{canonicalRepoRoot:e.gitRoot},...e.workspaceRoot===void 0?{}:{workspaceRoot:e.workspaceRoot}}}},[n]):!0}i(vz,"sessionMatchesProjectRoot");async function bz(e){let t=[],n=[e];for(;n.length>0;){let r=n.pop(),o;try{o=await oi.readdir(r,{withFileTypes:!0})}catch{continue}for(let s of o){let a=Gt.join(r,s.name);s.isDirectory()&&!s.isSymbolicLink()?n.push(a):s.isFile()&&s.name.endsWith(".jsonl")&&t.push(a)}}return t}i(bz,"collectJsonlFiles");async function Rz(e,t){let n;try{n=new Set(await oi.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(Gt.join(t,c))}},"collectNames");for(let s of await bz(e)){let a;try{a=await oi.readFile(s,"utf-8")}catch{continue}o(a)}for(let s of[...r].filter(a=>Gt.basename(a).includes("-bash-recovery-manifest-")))try{o(await oi.readFile(s,"utf-8"))}catch{}return r}i(Rz,"collectToolOutputReferences");function kz(e){let t=YI();setTimeout(()=>{QI(t,()=>Rz(e,t))},3e4).unref()}i(kz,"scheduleToolOutputRetention");async function Ez(e){let t=await qh(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 Mz(e,t){if(typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0)return t.activeMessageCount;let n=(await oi.readFile(e,"utf-8")).trim(),r=typeof t.extensionRecordCount=="number"&&t.extensionRecordCount>0?t.extensionRecordCount:0;return Math.max(0,n.split(`
|
|
318
|
-
`).length-1-r)}i(Mz,"readActiveMessageCount");async function _z(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"?WO(n.runtimeInfo):void 0,l=typeof n.gitRoot=="string"?n.gitRoot:void 0,u=c??(l?{gitRoot:l}:void 0);if(!vz(u,l,t.gitRoot)||t.surface!==void 0&&u?.surface!==t.surface)return;let d=Gt.basename(e,".jsonl"),p=Gt.basename(Gt.dirname(e))==="archived";return{id:d,title:typeof n.title=="string"?n.title:"",msgCount:await Mz(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(_z,"readSessionListCandidate");function Er(e,t){return e!==void 0||t!==void 0?new kr({...e===void 0?{}:{sessionsDir:e},...t===void 0?{}:{configHome:t}}):new kr}i(Er,"getStorage");function FO(e){return e??eo}i(FO,"resolveSessionsDir");function DT(e){return Buffer.from(e,"utf8").toString("base64url")}i(DT,"encodeSessionCursor");function Az(e){if(!(!e||e.length>1024))try{let t=Buffer.from(e,"base64url").toString("utf8");return t&&DT(t)===e?t:void 0}catch{return}}i(Az,"decodeSessionCursor");async function BT(e){return HO(e,void 0)}i(BT,"listSessions");async function HO(e,t){try{let n=FO(t);await ta(n);let r=e?.projectRoot,o=Er(t);await oi.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:Az(e.cursor);if(e?.cursor!==void 0&&p===void 0)return[];if(s==="user"&&l===void 0&&!a&&u===void 0&&d===void 0&&p===void 0)return(await o.list(r,{limit:c})).map(Lz);let m=o.beginSessionLocationTraversal(),h=await Iz(n,!0),g=h.paths;o.completeSessionLocationTraversal(m,g.filter(N=>!Gt.basename(N).startsWith("archived-")),h.complete);let x=a?g:g.filter(N=>Gt.basename(Gt.dirname(N))!=="archived"&&!Gt.basename(N).startsWith("archived-")),T=[],S=new Set,I={scope:s,...l!==void 0?{before:l}:{},...u!==void 0?{tag:u}:{},...d!==void 0?{surface:d}:{},...r!==void 0?{gitRoot:r}:{}},v=48;for(let N=0;N<x.length;N+=v){let B=await Promise.all(x.slice(N,N+v).map(async k=>{try{return await _z(k,I)}catch(D){ut({source:"session.public-api",level:"warn",message:"Unreadable session record was skipped.",detail:{filePath:k,error:D}});return}}));for(let k of B)k&&!S.has(k.id)&&(S.add(k.id),T.push(k))}T.sort((N,B)=>{let k=N._createdAtMs,D=B._createdAtMs;return Number.isFinite(k)&&Number.isFinite(D)&&k!==D?D-k:Number.isFinite(D)&&!Number.isFinite(k)?1:Number.isFinite(k)&&!Number.isFinite(D)?-1:B.id.localeCompare(N.id)});let $=p===void 0?-1:T.findIndex(N=>N.id===p);if(p!==void 0&&$<0)return[];let _=$+1;return T.slice(_,_+c).map(({id:N,title:B,msgCount:k,tag:D,createdAt:U,runtimeInfo:j,projectKey:W,archived:P})=>({id:N,cursor:DT(N),title:B,msgCount:k,...D!==void 0?{tag:D}:{},...U!==void 0?{createdAt:U}:{},...j!==void 0?{runtimeInfo:j}:{},...W!==void 0?{projectKey:W}:{},...P?{archived:!0}:{}}))}catch{return[]}}i(HO,"listSessionsImpl");function WO(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(WO,"extractRuntimeInfoSummary");function Lz(e){let t=e.runtimeInfo?WO(e.runtimeInfo):void 0,n=Is(t?.gitRoot??t?.workspaceRoot).key;return{id:e.id,cursor:DT(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(Lz,"toSessionSummary");function Pg(e){return typeof e=="object"&&e!==null}i(Pg,"isRecord");function jO(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(jO,"collectActiveIds");function NO(e,t){return t==="branch_summary"?{role:"user",content:`The following is a summary of a branch that this conversation came back from:
|
|
319
|
-
|
|
320
|
-
<summary>
|
|
321
|
-
${e}
|
|
322
|
-
</summary>`}:{role:"system",content:`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
|
|
323
|
-
|
|
324
|
-
${e}`}}i(NO,"summaryMessage");function DO(e){return{role:"system",content:`[Rewind] ${e}`}}i(DO,"rewindMarkerMessage");function Pz(e){return{role:"system",content:e.content,_source:"client_notice",timestamp:e.timestamp,...e.turnId!==void 0?{turnId:e.turnId}:{}}}i(Pz,"clientNoticeMessage");function LT(e,t){let n=e[t];return typeof n=="string"?n:void 0}i(LT,"messageStringField");function Oz(e){if(e.role==="user")return"user";if(e.role==="assistant")return"assistant";if(e.role==="system")return"system"}i(Oz,"messageSource");function BO(e){return Pg(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(BO,"isTaskResultMetadata");function $z(e){if(BO(e._taskResult))return[e._taskResult];if(Array.isArray(e._taskResults))return e._taskResults.filter(BO);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($z,"taskResultsFromMessage");function Nz(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(Nz,"taskResultPayload");function Dz(e){if(!Pg(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(Dz,"legacyRewindDetails");function Bz(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(Bz,"transcriptEntryActive");function Zi(e){return{entryId:e.id,parentId:e.parentId,logicalId:e.logicalId??e.id,...e.sourceEntryId!==void 0?{sourceEntryId:e.sourceEntryId}:{}}}i(Zi,"transcriptEntryIdentity");function UO(e,t,n){let r=Bz(e,t,n);switch(e.type){case"message":{let o=$z(e.message);if(o.length>0){let s=o[0];return{...Zi(e),timestamp:e.timestamp,type:"task_result",source:s.source,turnId:LT(e.message,"turnId"),message:e.message,active:r,payload:Nz(o),taskResults:o}}return e.message._source==="client_notice"?{...Zi(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:LT(e.message,"turnId"),message:e.message,active:r,payload:{content:e.message.content,entersModelContext:!1}}:{...Zi(e),timestamp:e.timestamp,type:"message",source:Oz(e.message),turnId:LT(e.message,"turnId"),message:e.message,active:r}}case"compaction":if(e.reason==="rewind"){let o=Dz(e.details),s=r||(e.parentId===null?n===null:t.has(e.parentId));return{...Zi(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:DO(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{...Zi(e),timestamp:e.timestamp,type:"compaction",source:"system",message:NO(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{...Zi(e),timestamp:e.timestamp,type:"rewind_marker",source:"system",message:DO(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{...Zi(e),timestamp:e.timestamp,type:"branch_summary",source:"system",message:NO(e.summary,"branch_summary"),active:r,summary:e.summary,payload:{summary:e.summary,fromId:e.fromId,details:e.details}};case"client_notice":return{...Zi(e),timestamp:e.timestamp,type:"client_notice",source:"client",turnId:e.turnId,message:Pz(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(UO,"toTranscriptEntry");function Fz(e){let t=jO(e);return e.entries.map(n=>UO(n,t,e.activeEntryId)).filter(n=>n!==null)}i(Fz,"buildTranscriptEntries");async function GO(e){return Hz(e,void 0)}i(GO,"loadSession");async function Hz(e,t){return PT(e,Er(t))}i(Hz,"loadSessionImpl");async function PT(e,t){try{return await t.load(e)}catch{return null}}i(PT,"loadSessionWithStorage");async function VO(e){return Kz(e,void 0)}i(VO,"loadFullTranscript");async function KO(e,t={}){return qO(e,void 0,t)}i(KO,"readFullTranscript");async function zO(e,t={}){return OT(e,Er(),t)}i(zO,"readConversationHistory");function FT(e,t){return e.transcript.lineage===void 0?dM(e.transcript.activeMessages,e.sourceRevision,t):Lh(Zs(e.transcript.lineage,e.sourceRevision,t),e.transcript.lineage,e.sessionId??"",e.data.extensionRecords??[])}i(FT,"conversationHistoryFromCapture");async function XO(e,t={}){return ri(e,Er(),t)}i(XO,"readSessionCapture");async function YO(e,t={}){if(t.signal?.aborted)throw new xe("read_cancelled","Session bundle export cancelled");let n=Gt.resolve(t.sessionsDir??eo),r=Gz(t.timeoutMs),o=(async()=>{let s=await U_(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:Tz("sha256").update(l.bytes).digest("hex"),modifiedAt:l.modifiedAt,content:l.bytes.toString("utf8"),contentBase64:l.bytes.toString("base64")})),c=a.flatMap(Wz);return{sessionId:e,status:Uz(c),files:a,diagnostics:c}})();return Vz(o,t,r)}i(YO,"exportSessionBundle");function Wz(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&&Pg(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}jz(a,e.kind)||t.push({code:"unsupported_record",file:e.path,line:o+1,message:"Unknown record was preserved verbatim."})}return t}i(Wz,"inspectSessionBundleFile");function jz(e,t){return Pg(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(jz,"isRecognizedBundleRecord");function Uz(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(Uz,"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 Vz(e,t,n){let r,o;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new xe("read_timeout",`Session bundle export timed out after ${n}ms`)),n),t.signal!==void 0&&(o=i(()=>a(new xe("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(Vz,"raceBundleExport");async function Kz(e,t){try{return await qO(e,t,{})}catch{return null}}i(Kz,"loadFullTranscriptImpl");async function qO(e,t,n){return(await ri(e,Er(t),n))?.transcript??null}i(qO,"readFullTranscriptImpl");async function ri(e,t,n){let r=await t.readFullSnapshot(e,n);if(r===null)return null;let o=zz(r);return{sessionId:e,data:r.data,transcript:o,sourceRevision:r.sourceRevision,sourceRevisionState:r.sourceRevisionState,boundaryRevision:r.boundaryRevision}}i(ri,"readSessionCaptureWithStorage");async function OT(e,t,n){let r=Date.now(),o=await ri(e,t,n);if(o===null)return null;let s=FT(o,()=>Jh(n,r));return await new Promise(a=>setImmediate(a)),Jh(n,r),s}i(OT,"readConversationHistoryWithStorage");function zz(e){if(e.lineage===null)return{...e.data,activeMessages:e.data.messages,transcriptEntries:[]};let t=Fz(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(zz,"fullTranscriptFromSnapshot");function Xz(e){let t=e?.trim();return t&&t.length>0?t:"client"}i(Xz,"normalizeClientNoticeSource");function Yz(e,t){let n=`notice_${Cz().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(Yz,"createClientNoticeEntry");async function JO(e,t){return qz(e,t,void 0)}i(JO,"appendClientNotice");async function qz(e,t,n){return $T(e,t,Er(n))}i(qz,"appendClientNoticeImpl");async function $T(e,t,n){try{let r=await n.load(e);if(!r)return null;let o=r.lineage??qe(r.messages),s=Yz(o,t),a={...o,entries:[...o.entries,s]},c={...r,lineage:a,messages:r.messages};await n.appendSessionDelta(e,c);let l=jO(a);return UO(s,l,a.activeEntryId)}catch{return null}}i($T,"appendClientNoticeWithStorage");async function HT(e,t){return QO(e,t,void 0)}i(HT,"forkSession");async function QO(e,t,n){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let r=t?.historyBoundary;return await Er(n).fork(e,r?.boundaryId??t?.selector,{sessionId:t?.sessionId,title:t?.title,...r!==void 0?{historyBoundary:{sourceRevision:r.sourceRevision}}:{}})}catch{return null}}i(QO,"forkSessionImpl");async function WT(e,t){return ZO(e,t,void 0)}i(WT,"rewindSession");async function ZO(e,t,n,r){try{if(t?.selector!==void 0&&t.historyBoundary!==void 0)return null;let o=t?.historyBoundary;return await Er(n,r).rewind(e,o?.boundaryId??t?.selector,o===void 0?void 0:{historyBoundary:{sourceRevision:o.sourceRevision}})}catch{return null}}i(ZO,"rewindSessionImpl");async function jT(e,t){return e$(e,t,void 0)}i(jT,"setActiveEntry");async function e$(e,t,n,r){try{return await Er(n,r).setActiveEntry(e,t)}catch{return null}}i(e$,"setActiveEntryImpl");async function qd(){try{return OI({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(qd,"listRunningSessions");async function UT(e){return t$(e,void 0)}i(UT,"deleteSession");async function t$(e,t){try{let r=(await qd()).find(o=>o.sessionId===e);return r?{error:{code:"session_running",runningProcess:{pid:r.pid,startedAt:r.startedAt}}}:(await Er(t).delete(e),{ok:!0})}catch(n){return ut({source:"session.public-api",level:"error",message:"Session deletion failed.",detail:{sessionId:e,error:n}}),{error:{code:"delete_failed"}}}}i(t$,"deleteSessionImpl");async function GT(e){return n$(e,void 0)}i(GT,"archiveSession");async function n$(e,t){try{return await Er(t).archive(e)}catch(n){return ut({source:"session.public-api",level:"error",message:"Session archive failed.",detail:{sessionId:e,error:n}}),!1}}i(n$,"archiveSessionImpl");async function VT(e){return r$(e,void 0)}i(VT,"unarchiveSession");async function r$(e,t){try{return await Er(t).unarchive(e)}catch(n){return ut({source:"session.public-api",level:"error",message:"Session unarchive failed.",detail:{sessionId:e,error:n}}),!1}}i(r$,"unarchiveSessionImpl");function KT(e){return o$(e,void 0)}i(KT,"watchSessions");function o$(e,t){let n=FO(t);return ta(n).catch(()=>{}),process.platform==="win32"?Zz(e,n):Jz(e,n)}i(o$,"watchSessionsImpl");function NT(e){let t=Gt.basename(e);return!t.endsWith(".jsonl")||t.endsWith(".archive.jsonl")||t.endsWith(".islands.jsonl")||t.startsWith(".")?null:t.slice(0,-6)}i(NT,"sessionIdFromFilename");function Jz(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(!fa.existsSync(t)){setTimeout(a,1e3);return}let c=i((l,u)=>{if(!u)return;let d=typeof u=="string"?u:u.toString(),p=NT(d);if(!p)return;let m=l==="rename"?Qz(t,d):"change";s(m,p)},"onEvent");try{n=fa.watch(t,{recursive:!0},c)}catch{n=fa.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(Jz,"watchSessionsPosix");function Qz(e,t){try{return fa.statSync(Gt.join(e,t)),"add"}catch{return"remove"}}i(Qz,"detectRenameKind");function Zz(e,t){let n=!1,r=new Set;function o(c,l){try{for(let u of fa.readdirSync(l)){let d=NT(u);d&&c.add(d)}}catch{}}i(o,"addIds");function s(){let c=new Set;try{if(!fa.existsSync(t))return c;for(let l of fa.readdirSync(t,{withFileTypes:!0}))if(l.isFile()){let u=NT(l.name);u&&c.add(u)}else if(l.isDirectory()&&!l.name.startsWith(".")){let u=Gt.join(t,l.name);o(c,u),o(c,Gt.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(Zz,"watchSessionsWindows");function i$(e){let t=e?.sessionsDir,n=e?.configHome;kz(t??eo);let r=t!==void 0||n!==void 0?new kr({...t===void 0?{}:{sessionsDir:t},...n===void 0?{}:{configHome:n}}):new kr;return t===void 0&&n===void 0?{listSessions:BT,loadSession:i(o=>PT(o,r),"loadSession"),loadFullTranscript:i(async o=>{try{return(await ri(o,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:i(async(o,s)=>(await ri(o,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:i((o,s)=>OT(o,r,s??{}),"readConversationHistory"),readSessionCapture:i((o,s)=>ri(o,r,s??{}),"readSessionCapture"),appendClientNotice:i((o,s)=>$T(o,s,r),"appendClientNotice"),forkSession:HT,rewindSession:WT,setActiveEntry:jT,deleteSession:UT,archiveSession:GT,unarchiveSession:VT,listRunningSessions:qd,watchSessions:KT,compactSession:i((o,s)=>Rl(o,{...s,storage:r}),"compactSession"),storage:r}:{listSessions:i(o=>HO(o,t),"listSessions"),loadSession:i(o=>PT(o,r),"loadSession"),loadFullTranscript:i(async o=>{try{return(await ri(o,r,{}))?.transcript??null}catch{return null}},"loadFullTranscript"),readFullTranscript:i(async(o,s)=>(await ri(o,r,s??{}))?.transcript??null,"readFullTranscript"),readConversationHistory:i((o,s)=>OT(o,r,s??{}),"readConversationHistory"),readSessionCapture:i((o,s)=>ri(o,r,s??{}),"readSessionCapture"),appendClientNotice:i((o,s)=>$T(o,s,r),"appendClientNotice"),forkSession:i((o,s)=>QO(o,s,t),"forkSession"),rewindSession:i((o,s)=>ZO(o,s,t,n),"rewindSession"),setActiveEntry:i((o,s)=>e$(o,s,t,n),"setActiveEntry"),deleteSession:i(o=>t$(o,t),"deleteSession"),archiveSession:i(o=>n$(o,t),"archiveSession"),unarchiveSession:i(o=>r$(o,t),"unarchiveSession"),listRunningSessions:qd,watchSessions:i(o=>o$(o,t),"watchSessions"),compactSession:i((o,s)=>Rl(o,{...s,storage:r}),"compactSession"),storage:r}}i(i$,"createSessionManager");var e6={};J$(e6,{App:()=>Xk,AutocompleteContextProvider:()=>Im,BUILTIN_COMMANDS:()=>Lb,BackgroundTaskBar:()=>ld,CANONICAL_PERMISSION_MODES:()=>xv,CONFIG_TEMPLATES:()=>Cv,ChildActivitySurface:()=>fh,ConsoleCapturer:()=>hl,ConversationPageCacheCapacityError:()=>Xo,CoreConfigWriteConflictError:()=>vv,DEFAULT_UI_STATE:()=>Sp,DialogSurface:()=>ch,DotsIndicator:()=>Ww,FILE_MODIFICATION_TOOLS:()=>hi,FileSessionStorage:()=>kr,FullscreenTranscriptLayout:()=>Qm,HistoryItemRenderer:()=>Wk,InputPrompt:()=>Hs,IntegrationConfigConflictError:()=>Rv,IntegrationConfigController:()=>Lv,KODAX_CONFIG_ENV_BINDINGS:()=>Xv,KODAX_CONFIG_FILE:()=>Pv,KODAX_DIR:()=>Tp,KODAX_EXAMPLE_CONFIG_FILE:()=>Uv,KODAX_INTEGRATION_EXAMPLE_FILES:()=>Gv,KODAX_SESSIONS_DIR:()=>eo,KODAX_VERSION:()=>Ss,KeyMatchers:()=>Pw,KeypressHandlerPriority:()=>kn,KeypressParser:()=>Ac,KeypressProvider:()=>Wu,LRUCache:()=>_s,LoadingIndicator:()=>tk,MemorySessionStorage:()=>zs,MessageActions:()=>Zm,MessageList:()=>Ni,MessageSelector:()=>Qk,NotificationsSurface:()=>ad,PERMISSION_MODES:()=>Sv,PREVIEW_MAX_LENGTH:()=>Ov,PendingInputsIndicator:()=>iA,ProgressIndicator:()=>jw,PromptComposer:()=>nh,PromptFooter:()=>td,PromptFooterLeftSide:()=>Zu,PromptFooterRightSide:()=>ed,PromptHelpMenu:()=>oh,PromptSuggestionsSurface:()=>ah,ProviderSetupConfigConflictError:()=>qv,ProviderSetupInvalidConfigError:()=>Jv,QueuedCommandsSurface:()=>lh,RUNTIME_PERMISSION_PENDING_NOTICE:()=>zc,SessionReadError:()=>xe,SimpleApp:()=>Yk,SimpleInputPrompt:()=>YR,SimpleMessageDisplay:()=>Uk,SimpleStatusBar:()=>Kk,SingleLineTextInput:()=>LR,Spinner:()=>sr,StashNotice:()=>cd,StatusBar:()=>js,StatusNoticesSurface:()=>uh,StreamingProvider:()=>md,StreamingState:()=>$r,SuggestionsDisplay:()=>id,TOOL_STATUS_ICONS:()=>Q$,TextBuffer:()=>Lc,TextInput:()=>xm,ThinkingIndicator:()=>ek,ToolCallDisplay:()=>Sx,ToolCallStatus:()=>K,ToolGroup:()=>rA,ToolProgressBar:()=>wx,ToolStatusBadge:()=>nA,TranscriptViewport:()=>th,UIStateProvider:()=>od,_resetQueuedPromptsCacheForTests:()=>HE,appendClientNotice:()=>JO,archiveSession:()=>GT,bootstrapAutoMode:()=>qc,calculateVisualCursorFromLayout:()=>Gp,calculateVisualLayout:()=>Mn,canonicalizePermissionMode:()=>ys,collectBashWriteTargets:()=>pv,compactSession:()=>Rl,computeConfirmTools:()=>Za,conversationHistoryFromCapture:()=>FT,coreConfigWriteLockPath:()=>bv,createCliEvents:()=>Zh,createConversationEntryChain:()=>qs,createHistoryItem:()=>nd,createInteractiveContext:()=>Yc,createJsonEvents:()=>Z_,createKeyMatcher:()=>DE,createKeypressManager:()=>Tm,createMemorySessionStorage:()=>GE,createRecoveryHistoryItem:()=>Sd,createRetryHistoryItem:()=>wd,createSessionConversationHistoryRevision:()=>Js,createSessionManager:()=>i$,createStreamingManager:()=>ph,createToolCall:()=>ih,createUserSkillInvocation:()=>ub,darkTheme:()=>Vp,dedupeSessions:()=>$O,deleteSession:()=>UT,detectTerminalCapabilities:()=>aA,detectTerminalHostProfile:()=>vi,detectTerminalRenderHost:()=>Ii,emitRecoveryHistoryItem:()=>nM,emitRetryHistoryItem:()=>tM,emptyConversationEntryChain:()=>xh,ensureExampleConfigFile:()=>Kv,ensureExampleConfigFiles:()=>Vv,executeCommand:()=>vs,executeShellCommand:()=>hd,exportSessionBundle:()=>YO,extendConversationEntryChain:()=>Zc,extractHistorySeedsFromMessage:()=>uc,extractHistorySeedsFromMessages:()=>Ep,extractTextContent:()=>Mp,extractTitle:()=>Ci,findMostRecentResumableSession:()=>Qc,forkSession:()=>HT,formatMessagePreview:()=>gb,generateId:()=>rd,generateSavePattern:()=>dv,getBashOutsideProjectWriteRisk:()=>mv,getCharAtCodePoint:()=>Wb,getCodePointLength:()=>Hn,getCommandRegistry:()=>Pb,getConfigTemplate:()=>Iv,getCustomProviderConfig:()=>bO,getGitRoot:()=>No,getKeyDisplayName:()=>OR,getMcpServerConfig:()=>_O,getPlanModeBlockReason:()=>Oo,getProviderList:()=>Hv,getProviderModel:()=>to,getProviderSetupCatalog:()=>Qv,getTerminalHostCapabilities:()=>Ms,getTerminalWidth:()=>Cx,getTheme:()=>ue,getThemeNames:()=>sN,getVersion:()=>Dv,getVisualWidth:()=>Dr,getVisualWidthCached:()=>Up,hasCursorUpViewportYankRisk:()=>Rs,hasMainScreenRenderScrollRisk:()=>xu,hydrateProcessEnvFromShell:()=>$v,initializeSetupConfiguration:()=>nb,inspectConfigEnvironmentSource:()=>zv,inspectProviderSetupReadiness:()=>Zv,isAlwaysConfirmPath:()=>Qa,isBashReadCommand:()=>pu,isBashReadCommandAutoAllowed:()=>wi,isBashWriteCommand:()=>gi,isClassicReplForced:()=>Cu,isCommandOnProtectedPath:()=>yp,isFunctionKey:()=>Aw,isOwnedRendererPreferred:()=>Tu,isPathInsideProject:()=>fv,isPermissionMode:()=>Tv,isPrintable:()=>PR,isProviderConfigured:()=>Wv,isRemoteConptyHost:()=>fc,isScreenReader:()=>Ix,isShellCommand:()=>VE,isShellCommandSuccess:()=>KE,isTmuxControlMode:()=>pc,isToolCallAllowed:()=>yi,isVsCodeTerminalHostEnv:()=>bs,isWideChar:()=>Nr,listCustomProviders:()=>vO,listMcpServers:()=>MO,listRegisteredCommands:()=>Ab,listRunningSessions:()=>qd,listSessions:()=>BT,loadAutoModeSettings:()=>ac,loadConfig:()=>jv,loadFullTranscript:()=>VO,loadSession:()=>GO,measureChildActivitySurfaceRows:()=>dh,migrateLegacyIntegrationConfig:()=>Av,minimalTheme:()=>Ky,normalizePermissionMode:()=>ec,parseCommand:()=>Do,parseExtensionsIntegrationDocument:()=>kv,parseKeypress:()=>Hu,parseMcpIntegrationDocument:()=>tc,permissionModeDisplayName:()=>xp,persistProviderSetupChoice:()=>eb,planLegacyIntegrationMigration:()=>_v,prepareInvocationExecution:()=>Ks,prepareRuntimeConfig:()=>Cp,processSpecialSyntax:()=>kg,providerSetupRestartInstructions:()=>tb,rateLimitedCall:()=>Yv,readConversationHistory:()=>zO,readExtensionsIntegration:()=>Mv,readFullTranscript:()=>KO,readMcpIntegration:()=>ws,readSessionCapture:()=>XO,registerConfiguredCustomProviders:()=>Nv,removeCustomProvider:()=>kO,removeMcpServer:()=>LO,renderSetupGuide:()=>rb,replBashPathSignalCollector:()=>sc,resetTmuxControlModeProbeForTesting:()=>Hp,resolveAutoModeSettings:()=>sb,resolveConfiguredTuiRendererMode:()=>ks,resolveEffectiveTuiRendererMode:()=>bi,resolveFullscreenPolicy:()=>Ri,resolveIntegrationConfigPath:()=>Ev,resolveInteractiveSurfacePreference:()=>Es,resolveRuntimeEffortSelection:()=>oc,resolveRuntimeModelSelection:()=>rc,resolveRuntimeProviderSelection:()=>nc,resolveUserSkillInvocation:()=>Cs,restoreHistoryItemsFromSession:()=>yd,rewindSession:()=>WT,runInkInteractiveMode:()=>vg,runInteractiveMode:()=>IO,runProviderSetupWizard:()=>ob,runSessionPicker:()=>V_,saveConfig:()=>Ts,seedToHistoryItem:()=>Ti,setActiveEntry:()=>jT,splitByCodePoints:()=>En,supports256Colors:()=>xx,supportsEmoji:()=>Tx,supportsTrueColor:()=>Dd,supportsUnicode:()=>ho,themes:()=>zy,toReplRuntimeAutoModeSettings:()=>Xc,toolCallSeedToHistoryToolCall:()=>kp,touchContext:()=>Hr,trimPersistedUiHistorySnapshot:()=>po,truncateByVisualWidth:()=>mc,unarchiveSession:()=>VT,upsertCustomProvider:()=>RO,upsertMcpServer:()=>AO,useAutocomplete:()=>ju,useAutocompleteContext:()=>Oi,useInputHistory:()=>vm,useKeypress:()=>NE,useKeypressManager:()=>Cm,useQueuedPromptContents:()=>FE,useQueuedPrompts:()=>IS,useStreaming:()=>TS,useStreamingActions:()=>Kc,useStreamingState:()=>Vc,useTextBuffer:()=>bm,useUI:()=>dS,useUIActions:()=>jc,useUIState:()=>Wc,validateMcpServerConfig:()=>AT,visualWidthCache:()=>Wp,watchSessions:()=>KT,withCapture:()=>cA,withCaptureSync:()=>lA,withCoreConfigWriteLock:()=>mu,writeIntegrationDocument:()=>hu});export{bs as a,Rs as b,fc as c,xu as d,pc as e,Hp as f,Ii as g,vi as h,ks as i,bi as j,Es as k,Ri as l,Ms as m,Tu as n,Cu as o,_s as p,Hn as q,Nr as r,Dr as s,Wb as t,En as u,mc as v,Wp as w,Up as x,Mn as y,Gp as z,Vp as A,Ky as B,zy as C,ue as D,sN as E,xm as F,LR as G,Hu as H,Ac as I,Aw as J,PR as K,OR as L,Tm as M,Wu as N,Cm as O,Pw as P,Im as Q,Oi as R,ju as S,vm as T,Lc as U,bm as V,Hs as W,YR as X,sr as Y,Ww as Z,jw as _,ek as $,tk as aa,Wk as ba,Ni as ca,Uk as da,js as ea,Kk as fa,Xk as ga,Yk as ha,Qm as ia,Zm as ja,Qk as ka,th as la,nh as ma,Zu as na,ed as oa,td as pa,oh as qa,rd as ra,nd as sa,ih as ta,od as ua,Wc as va,jc as wa,dS as xa,id as ya,ah as za,ch as Aa,lh as Ba,ad as Ca,uh as Da,cd as Ea,ld as Fa,dh as Ga,fh as Ha,ph as Ia,md as Ja,Vc as Ka,Kc as La,TS as Ma,NE as Na,DE as Oa,IS as Pa,FE as Qa,HE as Ra,zc as Sa,Xc as Ta,Yc as Ua,Hr as Va,qc as Wa,Ks as Xa,zs as Ya,GE as Za,hd as _a,VE as $a,KE as ab,po as bb,yd as cb,Qc as db,wd as eb,tM as fb,Sd as gb,nM as hb,xh as ib,Zc as jb,qs as kb,Js as lb,Xo as mb,xe as nb,kr as ob,vg as pb,V_ as qb,Zh as rb,Z_ as sb,nA as tb,wx as ub,Sx as vb,rA as wb,iA as xb,Dd as yb,xx as zb,ho as Ab,Tx as Bb,Cx as Cb,Ix as Db,aA as Eb,hl as Fb,cA as Gb,lA as Hb,IO as Ib,kg as Jb,vO as Kb,bO as Lb,RO as Mb,kO as Nb,MO as Ob,_O as Pb,AO as Qb,LO as Rb,AT as Sb,$O as Tb,Rl as Ub,BT as Vb,GO as Wb,VO as Xb,KO as Yb,zO as Zb,FT as _b,XO as $b,YO as ac,JO as bc,HT as cc,WT as dc,jT as ec,qd as fc,UT as gc,GT as hc,VT as ic,KT as jc,i$ as kc,e6 as lc};
|