@kodax-ai/kodax 0.7.60 → 0.7.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/README.md +2 -0
  3. package/README_CN.md +2 -0
  4. package/dist/chunks/{agent-L5FC3YOY.js → agent-E74WVAFR.js} +1 -1
  5. package/dist/chunks/argument-completer-BBFYCVTM.js +2 -0
  6. package/dist/chunks/{chunk-5TRQBMPR.js → chunk-2OEKUAV4.js} +1 -1
  7. package/dist/chunks/{chunk-ZPD7IUKW.js → chunk-4NSOBQCU.js} +1 -1
  8. package/dist/chunks/{chunk-QFCF3GNT.js → chunk-7COB3EKF.js} +171 -156
  9. package/dist/chunks/chunk-CGGX3FXE.js +19 -0
  10. package/dist/chunks/{chunk-6DWXUZMO.js → chunk-D7CC6YZC.js} +198 -198
  11. package/dist/chunks/{chunk-SGNM3UP6.js → chunk-KIVYMSRH.js} +1 -1
  12. package/dist/chunks/chunk-NJW2LQOP.js +722 -0
  13. package/dist/chunks/{chunk-IJN6ZJVI.js → chunk-PJXKBM3Y.js} +4 -4
  14. package/dist/chunks/{chunk-2RLIKZOZ.js → chunk-QCBKLNN5.js} +2 -2
  15. package/dist/chunks/{chunk-XULI4U7I.js → chunk-XHOPSZVL.js} +1 -1
  16. package/dist/chunks/{compaction-config-E4LN3M53.js → compaction-config-GESEZQVA.js} +1 -1
  17. package/dist/chunks/{construction-bootstrap-GIFDM4L5.js → construction-bootstrap-OSXHEIBB.js} +1 -1
  18. package/dist/chunks/{dist-7PXDYX2R.js → dist-W3OOJP66.js} +1 -1
  19. package/dist/chunks/host-FRQXOEHH.js +2 -0
  20. package/dist/chunks/{run-manager-IU5COC6X.js → run-manager-FGCG7DFF.js} +1 -1
  21. package/dist/chunks/{utils-NP42DKL3.js → utils-47QI5MSP.js} +1 -1
  22. package/dist/index.d.ts +4 -4
  23. package/dist/index.js +1 -1
  24. package/dist/kodax_cli.js +927 -909
  25. package/dist/sdk-agent.d.ts +2 -2
  26. package/dist/sdk-agent.js +1 -1
  27. package/dist/sdk-coding.d.ts +6 -4
  28. package/dist/sdk-coding.js +1 -1
  29. package/dist/sdk-mcp.js +1 -1
  30. package/dist/sdk-repl.d.ts +6 -6
  31. package/dist/sdk-repl.js +1 -1
  32. package/dist/sdk-session.d.ts +3 -3
  33. package/dist/sdk-session.js +1 -1
  34. package/dist/sdk-skills.js +1 -1
  35. package/dist/types-chunks/{bash-prefix-extractor.d-Ds1THKeH.d.ts → bash-prefix-extractor.d-e1LD2IRl.d.ts} +7 -0
  36. package/dist/types-chunks/{run-manager.d-DLK3ed-T.d.ts → run-manager.d-DHPlNYkK.d.ts} +16 -2
  37. package/dist/types-chunks/{sdk-session-CtwN7iBO.d.ts → sdk-session-DINrM1pF.d.ts} +2 -2
  38. package/dist/types-chunks/{storage.d-DlZS0g8w.d.ts → storage.d-xiw7Vgx0.d.ts} +1 -1
  39. package/dist/types-chunks/{utils.d-Boz9k2HB.d.ts → utils.d-Dy19-1XR.d.ts} +2 -2
  40. package/package.json +1 -1
  41. package/dist/chunks/argument-completer-BQDAYT7W.js +0 -2
  42. package/dist/chunks/chunk-4K5BDO7S.js +0 -721
  43. package/dist/chunks/chunk-U6BNMGSK.js +0 -17
  44. package/dist/chunks/host-FLG7FJZT.js +0 -2
@@ -1,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{$ as uc,A as _S,B as ms,Ba as sm,C as Au,Ca as Bu,D as LS,Da as ZS,E as ac,Ea as ew,F as Qp,G as $S,H as Zp,I as ni,J as em,K as cc,L as tm,M as nm,N as OS,O as DS,P as hs,Q as NS,R as ri,T as gs,U as _u,V as BS,W as lc,X as Sr,Y as rm,Z as Ur,_ as ys,a as yr,aa as Lu,b as B,ba as HS,ca as WS,d as fn,da as FS,e as qp,ea as jS,fa as US,g as pn,ga as GS,h as nc,ha as Pu,i as ku,ia as $u,j as Jo,ja as dc,k as rc,ka as Ou,la as Du,m as oc,ma as Nu,n as go,na as VS,o as MS,oa as KS,p as yo,pa as zS,q as ic,qa as om,ra as YS,s as sc,sa as XS,t as AS,ta as qS,ua as JS,wa as xs,x as ti,xa as Ss,y as Eu,ya as im,z as Mu,za as QS}from"./chunk-6DWXUZMO.js";import{a as PS}from"./chunk-SGNM3UP6.js";import{e as tw,f as nw,g as rw}from"./chunk-6OZ5KWG3.js";import{E as Jp,F as fs,G as Ru,H as ps,I as ei,a as te,c as Qo,j as ds,k as Wn,p as RS,u as ES,v as xr,w as Zo}from"./chunk-5TRQBMPR.js";import{Ea as bu,Fa as vu,I as TS,J as CS,L as Xp,M as IS,N as bS,Z as vS,c as Kp,ta as kS,u as wS,v as tc,wa as Iu}from"./chunk-XULI4U7I.js";import{z as gS}from"./chunk-2RLIKZOZ.js";import{a as ec,b as eS,ea as yS,fa as xS,p as hS}from"./chunk-ZPD7IUKW.js";import{Aa as fS,Ba as Tu,Ca as pS,Pa as mS,Y as wu,e as Su,fd as Cu,id as SS,ja as dS}from"./chunk-QFCF3GNT.js";import{Ja as Xo,ha as du,ta as Qx,va as Vp,wa as Zx}from"./chunk-S4GVQO3W.js";import{$c as os,Bd as gu,Ca as nS,Cd as us,Md as uS,Pd as yu,Qc as aS,Qd as xu,Ra as zp,Rc as pu,Ta as Yp,ed as cS,gb as rS,hd as Dt,jd as Nt,k as rs,lb as fu,ld as is,md as ss,nb as oS,nd as mu,pd as as,qd as cs,rd as ls,sd as hu,td as qo,ud as lS,va as tS,wa as gr,xb as iS,yb as sS}from"./chunk-4K5BDO7S.js";import{B as Hn}from"./chunk-ZL5CEANW.js";import{a as o}from"./chunk-V4WSBIXB.js";import{spawnSync as dE}from"node:child_process";function Hu(e){return e==="1"||e?.toLowerCase()==="true"}o(Hu,"isTruthyEnv");function ow(e){return e==="0"||e?.toLowerCase()==="false"}o(ow,"isFalseyEnv");function ws(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}o(ws,"isVsCodeTerminalHostEnv");function Ts(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}o(Ts,"hasCursorUpViewportYankRisk");function fE(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}o(fE,"isSshSession");function fc(e={}){let t=e.env??process.env;return Hu(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&fE(t)}o(fc,"isRemoteConptyHost");function Cs(e={}){let t=e.env??process.env;return Ts(e)||ws(t)}o(Cs,"hasMainScreenRenderScrollRisk");function pE(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}o(pE,"isTmuxControlModeEnvHeuristic");var Gr;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(pE(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(Gr!==void 0||(Gr=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return Gr;try{let i=dE("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});i.status===0&&(Gr=i.stdout.trim()==="1")}catch{Gr=!1}return Gr}o(pc,"isTmuxControlMode");function am(){Gr=void 0}o(am,"resetTmuxControlModeProbeForTesting");function oi(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":ws(t)?"xtermjs_host":fc(e)?"remote_conpty_host":Ts(e)?"degraded_vt":"native_vt"}o(oi,"detectTerminalRenderHost");var ii=oi;function Is(e={}){let t=e.env??process.env;if(Hu(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}o(Is,"resolveConfiguredTuiRendererMode");function si(e={}){let t=Is(e);if(t==="legacy"||t==="owned")return t;let n=oi(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}o(si,"resolveEffectiveTuiRendererMode");function Wu(e={}){let t=e.env??process.env;if(Hu(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=Is({env:t});if(n==="legacy"||n==="owned")return"ink";let r=oi(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}o(Wu,"resolveInteractiveSurfacePreference");var mE={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},iw={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function ai(e,t="owned",n={}){let r=n.env??process.env;return ow(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?iw:mE:hE(e,t)}o(ai,"resolveFullscreenPolicy");function hE(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 iw;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}o(hE,"buildFullscreenPolicy");function bs(e,t={}){let n=t.rendererMode??"owned",r=ai(e,n,{env:t.env}),i=e!=="unsupported_control_host"&&e!=="tmux_control_mode";return{profile:e,ownsViewportByDefault:r.enabled&&r.promptShell==="virtual",supportsMouseTracking:r.mouseWheel||r.mouseClicks,bufferingMode:r.streamingPreview?"live":"buffered-fallback",supportsFullscreenLayout:r.enabled,supportsOverlaySurface:r.enabled,supportsSelection:i,supportsCopyOnSelect:!1,supportsWheelHistory:r.mouseWheel,supportsViewportChrome:r.enabled,supportsSearchViewport:r.enabled,supportsStickyPrompt:r.enabled}}o(bs,"getTerminalHostCapabilities");function Fu(e={}){return si(e)==="owned"}o(Fu,"isOwnedRendererPreferred");function ju(e={}){let t=e.env??process.env;return Hu(t.KODAX_FORCE_CLASSIC_REPL)&&!ow(t.KODAX_FORCE_CLASSIC_REPL)}o(ju,"isClassicReplForced");var vs=class{static{o(this,"LRUCache")}capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,n)}has(t){return this.cache.has(t)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}},cm=1,lm=2,gE=1e3,sw;function Uu(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return sw??=new Intl.Segmenter("en",{granularity:"grapheme"}),sw}o(Uu,"getGraphemeSegmenter");function En(e){if(!e)return 0;let t=Uu();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}o(En,"getCodePointLength");function wr(e){if(!e)return!1;let t=e.codePointAt(0);return t===void 0?!1:t>=19968&&t<=40959||t>=13312&&t<=19903||t>=63744&&t<=64255||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=12288&&t<=12351||t>=65280&&t<=65519||t>=128512&&t<=128591||t>=127744&&t<=128511||t>=128640&&t<=128767||t>=127456&&t<=127487||t>=9728&&t<=9983||t>=9984&&t<=10175||t>=129280&&t<=129535||t>=129536&&t<=129647||t>=129648&&t<=129791}o(wr,"isWideChar");function Tr(e){if(!e)return 0;let t=0,n=Uu();if(n)for(let r of n.segment(e))t+=wr(r.segment)?lm:cm;else for(let r of e)t+=wr(r)?lm:cm;return t}o(Tr,"getVisualWidth");function yE(e,t){if(!e||t<0)return"";let n=Uu();if(n){let i=0;for(let s of n.segment(e)){if(i===t)return s.segment;i++}return""}let r=[...e];return t>=r.length?"":r[t]}o(yE,"getCharAtCodePoint");function mn(e){if(!e)return[];let t=Uu();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}o(mn,"splitByCodePoints");function xE(e,t,n){return mn(e).slice(t,n).join("")}o(xE,"sliceByCodePoints");function aw(e,t){let n=Math.max(0,t),r=mn(e),i=0,s=0;for(;i<r.length;){let a=wr(r[i])?lm:cm;if(s+a>n)break;s+=a,i++}return{before:r.slice(0,i).join(""),current:r[i]??"",after:r.slice(i+1).join("")}}o(aw,"splitAtVisualColumn");function mc(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=mn(e);for(let d of l){let f=wr(d)?2:1;if(c+f>s)break;a+=d,c+=f}return n&&a.length<e.length&&(a+=r),a}o(mc,"truncateByVisualWidth");var um=new vs(gE);function dm(e){let t=um.get(e);if(t!==void 0)return t;let n=Tr(e);return um.set(e,n),n}o(dm,"getVisualWidthCached");function hn(e,t,n,r){let i=[],s=[],a=[];for(let c=0;c<e.length;c++){let l=e[c]||"";if(s[c]=[],l.length===0){i.push("");let p=i.length-1;s[c].push([p,0]),a.push([c,0]);continue}let d=0,f=mn(l);for(;d<f.length;){let p="",m=0,g=d,S=-1;for(let w=d;w<f.length;w++){let I=f[w],T=wr(I)?2:1;if(m+T>t){S>=0&&w-d>0?(p=f.slice(d,S).join(""),m=f.slice(d,S).reduce((v,A)=>v+(wr(A)?2:1),0),g=S):p.length===0&&T>t&&(p=I,m=T,g=w+1);break}p+=I,m+=T,g=w+1,I===" "&&(S=w+1)}if(p.length>0||i.length===0){let w=d,I=i.length;i.push(p),s[c].push([I,w]),a.push([c,w])}d=g}}return{visualLines:i,logicalToVisualMap:s,visualToLogicalMap:a}}o(hn,"calculateVisualLayout");function fm(e,t){let{logicalToVisualMap:n,visualLines:r}=e;if(r.length===0)return[0,0];let[i,s]=t,a=n[i];if(!a||a.length===0)return[0,0];let c;for(let[g,S]of a)if(S<=s)c=[g,S];else break;let[l,d]=c??a[0],f=r[l]??"",p=Math.max(0,s-d),m=Tr(xE(f,0,p));return[l,m]}o(fm,"calculateVisualCursorFromLayout");var pm={name:"dark",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A"},symbols:{prompt:">",success:"\u2713",error:"\u2717",warning:"!",spinner:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]}},cw={name:"minimal",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A"},symbols:{prompt:"$",success:"+",error:"-",warning:"?",spinner:["-","\\","|","/"]}};var lw={dark:pm,minimal:cw};function ne(e="dark"){return lw[e]??pm}o(ne,"getTheme");function bH(){return Object.keys(lw)}o(bH,"getThemeNames");import{jsx as xn,jsxs as jn,Fragment as E_}from"react/jsx-runtime";import{useMemo as Cd}from"react";import{jsx as FT}from"react/jsx-runtime";import{createContext as r_,useContext as fi,useEffect as Os,useMemo as WT,useState as o_,useCallback as jT,useRef as pd}from"react";import{Stream as PA}from"node:stream";import{openSync as $A,writeSync as ET}from"node:fs";import{performance as OA}from"node:perf_hooks";import{tmpdir as DA}from"node:os";import{join as NA}from"node:path";import mm,{forwardRef as TE,useContext as CE}from"react";import{createContext as SE}from"react";var ks=SE({isScreenReaderEnabled:!1});import{createContext as wE}from"react";var Gu=wE(void 0);var uw=TE(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":i,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=CE(ks),d=n?mm.createElement("ink-text",null,n):void 0;if(l&&r)return null;let f=mm.createElement("ink-box",{ref:c,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,...a,backgroundColor:t,overflowX:a.overflowX??a.overflow??"visible",overflowY:a.overflowY??a.overflow??"visible"},internal_accessibility:{role:i,state:s}},l&&d?d:e);return t?mm.createElement(Gu.Provider,{value:t},f):f});uw.displayName="Box";var Fn=uw;import kE,{useContext as dw}from"react";import Rs from"chalk";import xo from"chalk";var IE=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,bE=/^ansi256\(\s?(\d+)\s?\)$/;function vE(e){return e in xo}o(vE,"isNamedColor");function nr(e,t,n){if(!t)return e;if(vE(t)){let r=xo;if(n==="foreground")return r[t]?.(e)??e;let i=`bg${t[0].toUpperCase()+t.slice(1)}`;return r[i]?.(e)??e}if(t.startsWith("#"))return n==="foreground"?xo.hex(t)(e):xo.bgHex(t)(e);if(t.startsWith("ansi256")){let r=bE.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?xo.ansi256(i)(e):xo.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=IE.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?xo.rgb(i,s,a)(e):xo.bgRgb(i,s,a)(e)}return e}o(nr,"colorize");function gn({color:e,backgroundColor:t,dimColor:n=!1,bold:r=!1,italic:i=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:l="wrap",children:d,"aria-label":f,"aria-hidden":p=!1,internal_cursorAnchor:m=!1}){let{isScreenReaderEnabled:g}=dw(ks),S=dw(Gu),w=g&&f?f:d;if(w==null)return null;let I=o(T=>{let v=T;n&&(v=Rs.dim(v)),e&&(v=nr(v,e,"foreground"));let A=t??S;return A&&(v=nr(v,A,"background")),r&&(v=Rs.bold(v)),i&&(v=Rs.italic(v)),s&&(v=Rs.underline(v)),a&&(v=Rs.strikethrough(v)),c&&(v=Rs.inverse(v)),v},"transform");return g&&p?null:kE.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:I,...m?{internal_cursorAnchor:!0}:{}},g&&f?f:d)}o(gn,"Text");import RE,{useLayoutEffect as EE,useMemo as fw,useState as ME}from"react";function hm({items:e,children:t,style:n}){let[r,i]=ME(0),s=fw(()=>e.slice(r),[e,r]);EE(()=>{i(e.length)},[e.length]);let a=s.map((l,d)=>t(l,r+d)),c=fw(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return RE.createElement("ink-box",{internal_static:!0,style:c},a)}o(hm,"Static");import ui from"node:process";import vT from"react";import{throttle as mA}from"es-toolkit/compat";import yn from"ansi-escapes";import Jr from"is-in-ci";import hA from"auto-bind";import{onExit as gA}from"signal-exit";import yA from"patch-console";import{LegacyRoot as xA,ConcurrentRoot as SA}from"react-reconciler/constants.js";import wA from"yoga-layout";import TA from"wrap-ansi";import CA from"terminal-size";import AE from"node:process";var Vu=o(()=>AE.env.DEV==="true","isDev");import rM from"react-reconciler";import{DefaultEventPriority as oM,NoEventPriority as Ew}from"react-reconciler/constants.js";import*as So from"scheduler";import bw from"yoga-layout";import{createContext as iM}from"react";import VE from"yoga-layout";import _E from"widest-line";var pw=new Map,LE=o(e=>{if(e.length===0)return{width:0,height:0};let t=pw.get(e);if(t)return t;let n=_E(e),r=e.split(`
2
+ import{$ as uc,A as _S,B as ms,Ba as sm,C as Au,Ca as Bu,D as LS,Da as ZS,E as ac,Ea as ew,F as Qp,G as $S,H as Zp,I as ni,J as em,K as cc,L as tm,M as nm,N as OS,O as DS,P as hs,Q as NS,R as ri,T as gs,U as _u,V as BS,W as lc,X as Sr,Y as rm,Z as Ur,_ as ys,a as yr,aa as Lu,b as B,ba as HS,ca as WS,d as fn,da as FS,e as qp,ea as jS,fa as US,g as pn,ga as GS,h as nc,ha as Pu,i as ku,ia as $u,j as Jo,ja as dc,k as rc,ka as Ou,la as Du,m as oc,ma as Nu,n as go,na as VS,o as MS,oa as KS,p as yo,pa as zS,q as ic,qa as om,ra as YS,s as sc,sa as XS,t as AS,ta as qS,ua as JS,wa as xs,x as ti,xa as Ss,y as Eu,ya as im,z as Mu,za as QS}from"./chunk-D7CC6YZC.js";import{a as PS}from"./chunk-KIVYMSRH.js";import{e as tw,f as nw,g as rw}from"./chunk-6OZ5KWG3.js";import{E as Jp,F as fs,G as Ru,H as ps,I as ei,a as te,c as Qo,j as ds,k as Wn,p as RS,u as ES,v as xr,w as Zo}from"./chunk-2OEKUAV4.js";import{Ea as bu,Fa as vu,I as TS,J as CS,L as Xp,M as IS,N as bS,Z as vS,c as Kp,ta as kS,u as wS,v as tc,wa as Iu}from"./chunk-XHOPSZVL.js";import{z as gS}from"./chunk-QCBKLNN5.js";import{a as ec,b as eS,ea as yS,fa as xS,p as hS}from"./chunk-4NSOBQCU.js";import{Aa as fS,Ba as Tu,Ca as pS,Pa as mS,Y as wu,e as Su,fd as Cu,id as SS,ja as dS}from"./chunk-7COB3EKF.js";import{Ja as Xo,ha as du,ta as Qx,va as Vp,wa as Zx}from"./chunk-S4GVQO3W.js";import{$c as os,Bd as gu,Ca as nS,Cd as us,Md as uS,Pd as yu,Qc as aS,Qd as xu,Ra as zp,Rc as pu,Ta as Yp,ed as cS,gb as rS,hd as Dt,jd as Nt,k as rs,lb as fu,ld as is,md as ss,nb as oS,nd as mu,pd as as,qd as cs,rd as ls,sd as hu,td as qo,ud as lS,va as tS,wa as gr,xb as iS,yb as sS}from"./chunk-NJW2LQOP.js";import{B as Hn}from"./chunk-ZL5CEANW.js";import{a as o}from"./chunk-V4WSBIXB.js";import{spawnSync as dE}from"node:child_process";function Hu(e){return e==="1"||e?.toLowerCase()==="true"}o(Hu,"isTruthyEnv");function ow(e){return e==="0"||e?.toLowerCase()==="false"}o(ow,"isFalseyEnv");function ws(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}o(ws,"isVsCodeTerminalHostEnv");function Ts(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}o(Ts,"hasCursorUpViewportYankRisk");function fE(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}o(fE,"isSshSession");function fc(e={}){let t=e.env??process.env;return Hu(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&fE(t)}o(fc,"isRemoteConptyHost");function Cs(e={}){let t=e.env??process.env;return Ts(e)||ws(t)}o(Cs,"hasMainScreenRenderScrollRisk");function pE(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}o(pE,"isTmuxControlModeEnvHeuristic");var Gr;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(pE(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(Gr!==void 0||(Gr=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return Gr;try{let i=dE("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});i.status===0&&(Gr=i.stdout.trim()==="1")}catch{Gr=!1}return Gr}o(pc,"isTmuxControlMode");function am(){Gr=void 0}o(am,"resetTmuxControlModeProbeForTesting");function oi(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":ws(t)?"xtermjs_host":fc(e)?"remote_conpty_host":Ts(e)?"degraded_vt":"native_vt"}o(oi,"detectTerminalRenderHost");var ii=oi;function Is(e={}){let t=e.env??process.env;if(Hu(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}o(Is,"resolveConfiguredTuiRendererMode");function si(e={}){let t=Is(e);if(t==="legacy"||t==="owned")return t;let n=oi(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}o(si,"resolveEffectiveTuiRendererMode");function Wu(e={}){let t=e.env??process.env;if(Hu(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=Is({env:t});if(n==="legacy"||n==="owned")return"ink";let r=oi(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}o(Wu,"resolveInteractiveSurfacePreference");var mE={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},iw={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function ai(e,t="owned",n={}){let r=n.env??process.env;return ow(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?iw:mE:hE(e,t)}o(ai,"resolveFullscreenPolicy");function hE(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 iw;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}o(hE,"buildFullscreenPolicy");function bs(e,t={}){let n=t.rendererMode??"owned",r=ai(e,n,{env:t.env}),i=e!=="unsupported_control_host"&&e!=="tmux_control_mode";return{profile:e,ownsViewportByDefault:r.enabled&&r.promptShell==="virtual",supportsMouseTracking:r.mouseWheel||r.mouseClicks,bufferingMode:r.streamingPreview?"live":"buffered-fallback",supportsFullscreenLayout:r.enabled,supportsOverlaySurface:r.enabled,supportsSelection:i,supportsCopyOnSelect:!1,supportsWheelHistory:r.mouseWheel,supportsViewportChrome:r.enabled,supportsSearchViewport:r.enabled,supportsStickyPrompt:r.enabled}}o(bs,"getTerminalHostCapabilities");function Fu(e={}){return si(e)==="owned"}o(Fu,"isOwnedRendererPreferred");function ju(e={}){let t=e.env??process.env;return Hu(t.KODAX_FORCE_CLASSIC_REPL)&&!ow(t.KODAX_FORCE_CLASSIC_REPL)}o(ju,"isClassicReplForced");var vs=class{static{o(this,"LRUCache")}capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,n)}has(t){return this.cache.has(t)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}},cm=1,lm=2,gE=1e3,sw;function Uu(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return sw??=new Intl.Segmenter("en",{granularity:"grapheme"}),sw}o(Uu,"getGraphemeSegmenter");function En(e){if(!e)return 0;let t=Uu();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}o(En,"getCodePointLength");function wr(e){if(!e)return!1;let t=e.codePointAt(0);return t===void 0?!1:t>=19968&&t<=40959||t>=13312&&t<=19903||t>=63744&&t<=64255||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=12288&&t<=12351||t>=65280&&t<=65519||t>=128512&&t<=128591||t>=127744&&t<=128511||t>=128640&&t<=128767||t>=127456&&t<=127487||t>=9728&&t<=9983||t>=9984&&t<=10175||t>=129280&&t<=129535||t>=129536&&t<=129647||t>=129648&&t<=129791}o(wr,"isWideChar");function Tr(e){if(!e)return 0;let t=0,n=Uu();if(n)for(let r of n.segment(e))t+=wr(r.segment)?lm:cm;else for(let r of e)t+=wr(r)?lm:cm;return t}o(Tr,"getVisualWidth");function yE(e,t){if(!e||t<0)return"";let n=Uu();if(n){let i=0;for(let s of n.segment(e)){if(i===t)return s.segment;i++}return""}let r=[...e];return t>=r.length?"":r[t]}o(yE,"getCharAtCodePoint");function mn(e){if(!e)return[];let t=Uu();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}o(mn,"splitByCodePoints");function xE(e,t,n){return mn(e).slice(t,n).join("")}o(xE,"sliceByCodePoints");function aw(e,t){let n=Math.max(0,t),r=mn(e),i=0,s=0;for(;i<r.length;){let a=wr(r[i])?lm:cm;if(s+a>n)break;s+=a,i++}return{before:r.slice(0,i).join(""),current:r[i]??"",after:r.slice(i+1).join("")}}o(aw,"splitAtVisualColumn");function mc(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=mn(e);for(let d of l){let f=wr(d)?2:1;if(c+f>s)break;a+=d,c+=f}return n&&a.length<e.length&&(a+=r),a}o(mc,"truncateByVisualWidth");var um=new vs(gE);function dm(e){let t=um.get(e);if(t!==void 0)return t;let n=Tr(e);return um.set(e,n),n}o(dm,"getVisualWidthCached");function hn(e,t,n,r){let i=[],s=[],a=[];for(let c=0;c<e.length;c++){let l=e[c]||"";if(s[c]=[],l.length===0){i.push("");let p=i.length-1;s[c].push([p,0]),a.push([c,0]);continue}let d=0,f=mn(l);for(;d<f.length;){let p="",m=0,g=d,S=-1;for(let w=d;w<f.length;w++){let I=f[w],T=wr(I)?2:1;if(m+T>t){S>=0&&w-d>0?(p=f.slice(d,S).join(""),m=f.slice(d,S).reduce((v,A)=>v+(wr(A)?2:1),0),g=S):p.length===0&&T>t&&(p=I,m=T,g=w+1);break}p+=I,m+=T,g=w+1,I===" "&&(S=w+1)}if(p.length>0||i.length===0){let w=d,I=i.length;i.push(p),s[c].push([I,w]),a.push([c,w])}d=g}}return{visualLines:i,logicalToVisualMap:s,visualToLogicalMap:a}}o(hn,"calculateVisualLayout");function fm(e,t){let{logicalToVisualMap:n,visualLines:r}=e;if(r.length===0)return[0,0];let[i,s]=t,a=n[i];if(!a||a.length===0)return[0,0];let c;for(let[g,S]of a)if(S<=s)c=[g,S];else break;let[l,d]=c??a[0],f=r[l]??"",p=Math.max(0,s-d),m=Tr(xE(f,0,p));return[l,m]}o(fm,"calculateVisualCursorFromLayout");var pm={name:"dark",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A"},symbols:{prompt:">",success:"\u2713",error:"\u2717",warning:"!",spinner:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]}},cw={name:"minimal",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A"},symbols:{prompt:"$",success:"+",error:"-",warning:"?",spinner:["-","\\","|","/"]}};var lw={dark:pm,minimal:cw};function ne(e="dark"){return lw[e]??pm}o(ne,"getTheme");function bH(){return Object.keys(lw)}o(bH,"getThemeNames");import{jsx as xn,jsxs as jn,Fragment as E_}from"react/jsx-runtime";import{useMemo as Cd}from"react";import{jsx as FT}from"react/jsx-runtime";import{createContext as r_,useContext as fi,useEffect as Os,useMemo as WT,useState as o_,useCallback as jT,useRef as pd}from"react";import{Stream as PA}from"node:stream";import{openSync as $A,writeSync as ET}from"node:fs";import{performance as OA}from"node:perf_hooks";import{tmpdir as DA}from"node:os";import{join as NA}from"node:path";import mm,{forwardRef as TE,useContext as CE}from"react";import{createContext as SE}from"react";var ks=SE({isScreenReaderEnabled:!1});import{createContext as wE}from"react";var Gu=wE(void 0);var uw=TE(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":i,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=CE(ks),d=n?mm.createElement("ink-text",null,n):void 0;if(l&&r)return null;let f=mm.createElement("ink-box",{ref:c,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,...a,backgroundColor:t,overflowX:a.overflowX??a.overflow??"visible",overflowY:a.overflowY??a.overflow??"visible"},internal_accessibility:{role:i,state:s}},l&&d?d:e);return t?mm.createElement(Gu.Provider,{value:t},f):f});uw.displayName="Box";var Fn=uw;import kE,{useContext as dw}from"react";import Rs from"chalk";import xo from"chalk";var IE=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,bE=/^ansi256\(\s?(\d+)\s?\)$/;function vE(e){return e in xo}o(vE,"isNamedColor");function nr(e,t,n){if(!t)return e;if(vE(t)){let r=xo;if(n==="foreground")return r[t]?.(e)??e;let i=`bg${t[0].toUpperCase()+t.slice(1)}`;return r[i]?.(e)??e}if(t.startsWith("#"))return n==="foreground"?xo.hex(t)(e):xo.bgHex(t)(e);if(t.startsWith("ansi256")){let r=bE.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?xo.ansi256(i)(e):xo.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=IE.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?xo.rgb(i,s,a)(e):xo.bgRgb(i,s,a)(e)}return e}o(nr,"colorize");function gn({color:e,backgroundColor:t,dimColor:n=!1,bold:r=!1,italic:i=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:l="wrap",children:d,"aria-label":f,"aria-hidden":p=!1,internal_cursorAnchor:m=!1}){let{isScreenReaderEnabled:g}=dw(ks),S=dw(Gu),w=g&&f?f:d;if(w==null)return null;let I=o(T=>{let v=T;n&&(v=Rs.dim(v)),e&&(v=nr(v,e,"foreground"));let A=t??S;return A&&(v=nr(v,A,"background")),r&&(v=Rs.bold(v)),i&&(v=Rs.italic(v)),s&&(v=Rs.underline(v)),a&&(v=Rs.strikethrough(v)),c&&(v=Rs.inverse(v)),v},"transform");return g&&p?null:kE.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:I,...m?{internal_cursorAnchor:!0}:{}},g&&f?f:d)}o(gn,"Text");import RE,{useLayoutEffect as EE,useMemo as fw,useState as ME}from"react";function hm({items:e,children:t,style:n}){let[r,i]=ME(0),s=fw(()=>e.slice(r),[e,r]);EE(()=>{i(e.length)},[e.length]);let a=s.map((l,d)=>t(l,r+d)),c=fw(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return RE.createElement("ink-box",{internal_static:!0,style:c},a)}o(hm,"Static");import ui from"node:process";import vT from"react";import{throttle as mA}from"es-toolkit/compat";import yn from"ansi-escapes";import Jr from"is-in-ci";import hA from"auto-bind";import{onExit as gA}from"signal-exit";import yA from"patch-console";import{LegacyRoot as xA,ConcurrentRoot as SA}from"react-reconciler/constants.js";import wA from"yoga-layout";import TA from"wrap-ansi";import CA from"terminal-size";import AE from"node:process";var Vu=o(()=>AE.env.DEV==="true","isDev");import rM from"react-reconciler";import{DefaultEventPriority as oM,NoEventPriority as Ew}from"react-reconciler/constants.js";import*as So from"scheduler";import bw from"yoga-layout";import{createContext as iM}from"react";import VE from"yoga-layout";import _E from"widest-line";var pw=new Map,LE=o(e=>{if(e.length===0)return{width:0,height:0};let t=pw.get(e);if(t)return t;let n=_E(e),r=e.split(`
3
3
  `).length,i={width:n,height:r};return pw.set(e,i),i},"measureText"),gm=LE;import PE from"wrap-ansi";import $E from"cli-truncate";var mw={},OE=o((e,t,n)=>{let r=e+String(t)+String(n),i=mw[r];if(i)return i;let s=e;if(n==="wrap"&&(s=PE(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=$E(e,t,{position:a})}return mw[r]=s,s},"wrapText"),Ku=OE;var DE=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),NE=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),BE=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),yw=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),HE=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),xw=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),hw=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!DE(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!NE(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!BE(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),gw=o((e,t,n)=>{for(let r=t;r<e.length;r++){let i=e[r];if(n&&i==="\x07"||i==="\x9C")return r+1;if(i==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),WE=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!yw(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!HE(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),FE=o(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),jE=o(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),ym=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(xw(t))return!0;return!1},"hasAnsiControlCharacters"),Es=o((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),Sw=o(e=>{if(!ym(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let i=e[r];if(i===void 0)break;if(i==="\x1B"){let a=e[r+1];if(a===void 0)return Es(t,e,n,r);if(a==="["){let d=hw(e,r+2);if(d===void 0)return Es(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,d.endIndex),parameterString:d.parameterString,intermediateString:d.intermediateString,finalCharacter:d.finalCharacter}),r=d.endIndex,n=r;continue}let c=FE(a);if(c!==void 0){let d=gw(e,r+2,c.allowBellTerminator);if(d===void 0)return Es(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,d)}),r=d,n=r;continue}let l=WE(e,r+1);if(l===void 0){if(yw(a))return Es(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(i==="\x9B"){let a=hw(e,r+1);if(a===void 0)return Es(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=jE(i);if(s!==void 0){let a=gw(e,r+1,s.allowBellTerminator);if(a===void 0)return Es(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(i==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:i}),r++,n=r;continue}if(xw(i)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:i}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var UE=/^[\d:;]*$/,GE=o(e=>{if(!ym(e))return e;let t="";for(let n of Sw(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&UE.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),ww=GE;var Tw=o(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let i="";r.nodeName==="#text"?i=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(i=Tw(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return ww(t)},"squashTextNodes"),hc=Tw;var zu=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:VE.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(KE.bind(null,t)),t},"createNode"),Yu=o((e,t)=>{t.parentNode&&gc(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")&&Xu(e)},"appendChildNode"),xm=o((e,t,n)=>{t.parentNode&&gc(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")&&Xu(e)},"insertBeforeNode"),gc=o((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Xu(e)},"removeChildNode"),Sm=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),wm=o((e,t)=>{e.style=t},"setStyle"),Cw=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return yc(t,e),t},"createTextNode"),KE=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:hc(e),r=gm(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=Ku(n,t,i);return gm(s)},"measureTextNode"),Iw=o(e=>{if(e?.parentNode)return e.yogaNode??Iw(e.parentNode)},"findClosestYogaNode"),Xu=o(e=>{Iw(e)?.markDirty()},"markNodeAsDirty"),yc=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Xu(e)},"setTextNodeValue");import Ce from"yoga-layout";var YE=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?Ce.POSITION_TYPE_ABSOLUTE:Ce.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(Ce.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(Ce.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(Ce.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(Ce.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),XE=o((e,t)=>{"margin"in t&&e.setMargin(Ce.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(Ce.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(Ce.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(Ce.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(Ce.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(Ce.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(Ce.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),qE=o((e,t)=>{"padding"in t&&e.setPadding(Ce.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(Ce.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(Ce.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(Ce.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(Ce.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(Ce.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(Ce.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),JE=o((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(Ce.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(Ce.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(Ce.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(Ce.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(Ce.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(Ce.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(Ce.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(Ce.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(Ce.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(Ce.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(Ce.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(Ce.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(Ce.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(Ce.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(Ce.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(Ce.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(Ce.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(Ce.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(Ce.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(Ce.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(Ce.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),QE=o((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),ZE=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Ce.DISPLAY_FLEX:Ce.DISPLAY_NONE)},"applyDisplayStyles"),eM=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(Ce.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(Ce.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(Ce.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(Ce.EDGE_RIGHT,n)}},"applyBorderStyles"),tM=o((e,t)=>{"gap"in t&&e.setGap(Ce.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(Ce.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(Ce.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),nM=o((e,t={})=>{YE(e,t),XE(e,t),qE(e,t),JE(e,t),QE(e,t),ZE(e,t),eM(e,t),tM(e,t)},"styles"),Tm=nM;if(Vu())try{await import("./devtools-YINBSZC7.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
4
4
  The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
5
5
  but this failed as it was not installed. Debugging with React Devtools requires it.
@@ -138,7 +138,7 @@ $ npm install --save-dev react-devtools-core
138
138
  `):[""],Math.max(1,e.terminalWidth),0,0);return g.visualLines.length>0?g.visualLines:[""]},"wrapBannerLine"),p=o((m,g,S)=>{f(g).forEach((w,I)=>{d.push({key:`${m}-${I}`,text:w,...S})})},"pushLineRows");return ig.forEach((m,g)=>{p(`banner-logo-${g}`,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"}),d.push({key:"banner-blank",text:" "}),{key:"banner",rows:d}}o(QD,"buildBannerTranscriptSection");function jv(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}o(jv,"prependTranscriptSection");var ZD=process.env.KODAX_INLINE_LEDGER!=="0";function Uv(e,t){if(process.env.KODAX_INLINE_LEDGER_DEBUG!=="1")return;let n=t instanceof Error?t.message:t!==void 0?String(t):"";process.stderr.write(`[inline-ledger] ${e}${n?`: ${n}`:""} \u2014 rebuilding on next change
139
139
  `)}o(Uv,"reportInlineLedgerFailure");var eN=o(({options:e,config:t,context:n,storage:r,rendererMode:i,fullscreenPolicy:s,onExit:a,compactionInfo:c,autoModeBootstrap:l,setAutoModeAskUser:d,setAutoModeEngineChange:f,setCurrentConfigRef:p,teamModeHandle:m})=>{let{exit:g}=Io(),{stdout:S}=br(),w=S.rows??24,{stdin:I,setRawMode:T,isRawModeSupported:v}=kc(),A=Hs(),{history:D}=jc(),N=$v.useRef(null),O=$v.useRef(CS()),{addHistoryItem:G,addHistoryItems:Y,clearHistory:re,setSessionId:me}=Uc(),ue=pe(D),y=pe(Fv(D));Ne(()=>{ue.current=D,y.current=Fv(D)},[D]),Ne(()=>{EI()},[]),Ne(()=>{JS()},[]);let P=S.columns||80,C=zc(),ce=pe(C);Ne(()=>{ce.current=C},[C]);let{startStreaming:Me,stopStreaming:oe,abort:X,startThinking:de,appendThinkingChars:ke,appendThinkingContent:De,stopThinking:W,clearThinkingContent:le,setCurrentTool:q,appendToolInputChars:Be,appendToolInputContent:pt,clearToolInputContent:ge,clearResponse:Pe,appendResponse:Ct,getSignal:It,getFullResponse:Q,getThinkingContent:F,startNewIteration:we,clearIterationHistory:Ke,startCompacting:ze,stopCompacting:on,setMaxIter:qe,addPendingInput:_t,removeLastPendingInput:qt,shiftPendingInput:dn,consumePendingInputs:M}=Yc(),[L,V]=He(!1),[_,xe]=He(t),Ae=fe(()=>Zo({provider:_.provider,model:_.model,effort:_.effort,effortOverride:_.effortOverride,permissionMode:_.permissionMode,planModeEffort:_.planModeEffort,thinking:_.thinking,reasoningMode:_.reasoningMode}),[_.provider,_.model,_.effort,_.effortOverride,_.permissionMode,_.planModeEffort,_.thinking,_.reasoningMode]),he=Ae.configuredEffort,Ie=Ae.runtimeEffort,Lt=fe(()=>({..._,effort:he}),[_,he]),yt=fe(()=>dv(c,{provider:_.provider,model:_.model},Xo),[c,_.provider,_.model]),[Ln,io]=He(!0),[xt,so]=He(!0),[ki,pl]=He(0),[np,ya]=He(!1),[py,zn]=He(null),xa=pe(!1),bR=fe(()=>ii(),[]),Sa=pe(null),ml=pe(null),my=pe(Promise.resolve()),hl=pe(null),Bo=pe({requested:!1,uiHistoryOverride:void 0}),Ri=pe(null),wa=pe(!1),Ta=pe(null),[Ca,gl]=He(!0),[rp,yl]=He(""),[Fe,cr]=He(()=>$I(bR,{rendererMode:i})),[Pt,op]=He(!1),[vR,kR]=He(0),{scrollRef:RR,scrollOffset:Yn,sticky:ip,setScrollOffset:ER,handleScrollTopChange:MR,handleStickyChange:AR,scrollTo:xl,scrollBy:Sl,scrollToBottom:wl}=Jb(),sp=pe(null),Tl=pe(null),Ia=pe([]),Cl=pe([]),Ei=pe(null),Xn=pe(null),hy=pe({time:0,row:-1,column:-1,count:0}),[Il,ap]=He(void 0),[$r,cp]=He(void 0),[Mi,gy]=He(void 0),[In,_R]=He(()=>new Set),[lp,yy]=He(null),[Jt,xy]=He(null),[z,bl]=He(null),[Sy,Ai]=He(null),[up,wy]=He(null),ba=pe(null),va=K(u=>{ba.current=u,wy(u)},[]),ka=K(u=>{let h=u(ba.current);ba.current=h,wy(h)},[]),Ra=K((u,h)=>{let x=ba.current;return x?.status!=="running"||!C0(u,x.runId)?!1:(va({...x,message:h}),!0)},[va]),dp=K(u=>{if(u.status==="running"){va({runId:u.runId,workflow:u.workflow,status:u.status,...u.phase!==void 0?{phase:u.phase}:{},...u.phaseIndex!==void 0?{phaseIndex:u.phaseIndex}:{},...u.phaseTotal!==void 0?{phaseTotal:u.phaseTotal}:{},...u.startedAt!==void 0?{startedAt:u.startedAt}:{},...u.elapsedMs!==void 0?{elapsedMs:u.elapsedMs}:{},activeAgents:u.activeAgents,totalSpawned:u.totalSpawned,...u.plannedAgents!==void 0?{plannedAgents:u.plannedAgents}:{},...u.agentCap!==void 0?{agentCap:u.agentCap}:{},...u.tokenBudgetSpent!==void 0?{tokenBudgetSpent:u.tokenBudgetSpent}:{},...u.tokenBudgetTotal!==void 0?{tokenBudgetTotal:u.tokenBudgetTotal}:{},completedAgents:u.completedAgents,failedAgents:u.failedAgents,stoppedAgents:u.stoppedAgents,...u.message!==void 0?{message:u.message}:{},...u.locale!==void 0?{locale:u.locale}:{}});return}ka(h=>h?.runId===u.runId?null:h)},[va,ka]),LR=K(u=>{let h=u.type==="workflow_updated"?u.message:void 0,x=uc(u.snapshot.goal,u.snapshot.workflowName,u.snapshot.displayName,u.snapshot.latestMessage,h);dp(jS(u.snapshot,h===void 0?{locale:x}:{locale:x,message:h}))},[dp]),[vl,Or]=He([]),_i=fe(()=>{for(let u of vl)if(u.status==="in_progress"){if(u.activeForm&&u.activeForm.length>0)return u.activeForm;if(u.subject&&u.subject.length>0)return u.subject}},[vl]),[uH,Ea]=He([]),[Ma,PR]=He([]),[kl,St]=He(void 0),[Ho,Aa]=He(void 0),lt=pe(null),Rl=pe(null),Wo=pe([]),Li=pe([]),sn=pe([]),fp=pe(new Set),et=pe({}),mt=pe({activeToolGroupTools:[]}),Ty=pe(0),El=pe({itemId:void 0,kind:"thinking",pendingText:""}),qn=pe(null),$R=80,OR=20,DR=pe(null),Ml=fe(()=>[...D,...Ma],[D,Ma]),pp=fe(()=>{let u=WC(Ml,DR);return u===0?Ml:Ml.slice(u)},[Ml]),Al=fe(()=>FC(pp,OR),[pp]),Pi=pp,Qt=pe(null),lr=pe(null),ur=pe([]),Zt=pe([]),[Fo,NR]=He([]),Dr=pe([]),[mp,BR]=He([]),_a=pe([]),Pn=K(u=>{Dr.current=u,NR(u)},[]),$i=K(u=>{_a.current=u,BR(u)},[]),hp=K(()=>{$i([])},[$i]),Cy=K(u=>{if(!lf(u))return!1;let h=Uh(u),x=_a.current.filter(k=>k.id!==h);return x.length===_a.current.length||$i(x),!0},[$i]),$n=K((u,h,x,k)=>{if(!lf(u))return!1;let R=Uh(u),$=_a.current.find(Ue=>Ue.id===R);if(k?.skipIfExisting&&$?.kind===h||R0($?.kind,h))return!0;let j=k?.append&&$?.kind===h?`${$.detail}${x}`:x||$?.detail||"running",H={id:R,label:b0(u),source:v0(u),status:"running",kind:h,detail:jh(j),startedAt:$?.startedAt??Date.now()},ee=_a.current,se=ee.findIndex(Ue=>Ue.id===R),je=se>=0?ee.map((Ue,Vt)=>Vt===se?H:Ue):[...ee,H].slice(0,ND);return $i(je),!0},[$i]),Iy=K(u=>{Wo.current=u,Ea(u)},[]),Oi=K(u=>{sn.current=u,PR(u)},[]),by=K(u=>{let h=u([...sn.current]);Oi(h)},[Oi]),vy=K(u=>{u.length!==0&&Oi([...sn.current,...u])},[Oi]),_l=K(u=>{let h=mt.current,x=h.activeToolGroupTools.some(k=>k.status===B.Executing);mt.current={...u?.clearOwner?{}:{workerId:h.workerId,workerTitle:h.workerTitle},...x?{activeToolGroupItemId:h.activeToolGroupItemId,activeToolGroupTools:h.activeToolGroupTools}:{activeToolGroupTools:[]}},u?.clearOwner&&(et.current={})},[]),Ll=K(u=>{for(let h of u)h.type==="user"&&typeof h.id=="string"&&fp.current.add(h.id)},[]),La=K(()=>{El.current={itemId:void 0,kind:"thinking",pendingText:""},qn.current&&(clearTimeout(qn.current),qn.current=null);let u=_h(sn.current,fp.current);if(u.length>0){for(let h of u)fp.current.add(h.id);Ri.current?.(u.map(h=>Oo(h)))}_l({clearOwner:!0}),Oi([])},[_l,Oi]),Pl=K(u=>(Ty.current+=1,`managed-foreground-${u}-${Ty.current}`),[]),Ft=K(u=>(vy([u]),u.id),[vy]),bn=K((u,h)=>{et.current.workerId?Ft({id:`${h}-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:u.type,text:u.text,...u.icon?{icon:u.icon}:{},...u.tightSpacing?{tightSpacing:!0}:{},timestamp:Date.now()}):G(u)},[G,Ft]),ky=K((u,h)=>{let x=Date.now();et.current.workerId?Ft({id:`${h}-${x}-${Math.random().toString(36).slice(2,7)}`,type:"sidecar",text:u.text,...u.verdict?{verdict:u.verdict}:{},...u.delivery?{delivery:u.delivery}:{},timestamp:x}):G(u)},[G,Ft]),Nr=K((u,h)=>{if(!u)return;let x;return by(k=>k.map(R=>R.id!==u?R:(x=h(R),x))),x},[by]),Di=K((u,h)=>{let x=mt.current;if(x.activeKind===u){if(u==="thinking"&&x.activeThinkingItemId)return x.activeThinkingItemId;if(u==="assistant"&&x.activeAssistantItemId)return x.activeAssistantItemId;if(u==="tool_group"&&x.activeToolGroupItemId)return x.activeToolGroupItemId}let k=Date.now(),R=h?.trim()?`[${h.trim()}] `:"",$=x.activeToolGroupTools.some(H=>H.status===B.Executing);if(u==="thinking"){let H=Ft({id:Pl("thinking"),type:"thinking",timestamp:k,text:R});return mt.current={...mt.current,activeKind:"thinking",activeThinkingItemId:H,currentTurnThinkingItemId:H,activeAssistantItemId:void 0,...$?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},H}if(u==="assistant"){let H=Ft({id:Pl("assistant"),type:"assistant",timestamp:k,text:R});return mt.current={...mt.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:H,...$?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},H}let j=Ft({id:Pl("tool_group"),type:"tool_group",timestamp:k,tools:[]});return mt.current={...mt.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:j,activeToolGroupTools:[]},j},[Ft,Pl]),Jn=K(()=>{qn.current&&(clearTimeout(qn.current),qn.current=null);let u=El.current;if(!u.pendingText||!u.itemId)return;let h=u.pendingText,x=u.itemId,k=u.kind;u.pendingText="",Nr(x,R=>R.type!==k?R:{...R,text:`${R.text}${h}`})},[Nr]),Ry=K(()=>{qn.current||(qn.current=setTimeout(Jn,$R))},[Jn]),$l=K((u,h)=>{if(!h)return;let x=mt.current;if(u==="assistant"&&!UD(h,x.activeKind==="assistant"&&!!x.activeAssistantItemId))return;let k=x.workerTitle,R=Di(u,k),$=El.current;$.itemId===R&&$.kind===u?$.pendingText+=h:(Jn(),$.itemId=R,$.kind=u,$.pendingText=h),Ry()},[Di,Jn,Ry]),Ey=K(u=>{let h=u.trim();if(!h)return;let x=El.current;x.kind==="thinking"&&x.pendingText&&(x.pendingText="",qn.current&&(clearTimeout(qn.current),qn.current=null));let k=mt.current.workerTitle?.trim(),R=k?`[${k}] ${h}`:h,$=mt.current.currentTurnThinkingItemId;if($){Nr($,H=>H.type==="thinking"?{...H,text:R}:H);return}let j=Di("thinking",mt.current.workerTitle);Nr(j,H=>H.type==="thinking"?{...H,text:R}:H)},[Di,Nr]),Qn=K(u=>{Jn();let h=mt.current;if(h.activeToolGroupItemId&&h.activeToolGroupTools.some(j=>j.id===u.id)){let j=h.activeToolGroupTools.map(ee=>ee.id===u.id?u:ee),H=j.every(ee=>ee.status===B.Success||ee.status===B.Error||ee.status===B.Cancelled);mt.current={...h,...H?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:j}},Nr(h.activeToolGroupItemId,ee=>ee.type==="tool_group"?{...ee,tools:j}:ee);return}let x=sn.current;for(let j=x.length-1;j>=0;j-=1){let H=x[j];if(H.type!=="tool_group"||!H.tools.some(se=>se.id===u.id))continue;let ee=H.tools.map(se=>se.id===u.id?u:se);Nr(H.id,se=>se.type==="tool_group"?{...se,tools:ee}:se);return}let k=Di("tool_group",h.workerTitle),$=h.activeKind==="tool_group"&&h.activeToolGroupItemId===k?h.activeToolGroupTools.some(j=>j.id===u.id)?h.activeToolGroupTools.map(j=>j.id===u.id?u:j):[...h.activeToolGroupTools,u]:[u];mt.current={...mt.current,activeKind:"tool_group",activeToolGroupItemId:k,activeToolGroupTools:$},Nr(k,j=>j.type==="tool_group"?{...j,tools:$}:j)},[Di,Nr,Jn]),HR=K(u=>{Jn();let h=mt.current,x=h.activeToolGroupTools.some($=>$.status===B.Executing),k=Dr.current.filter($=>$.status===B.Executing),R=new Set(k.map($=>$.id));mt.current={workerId:u?.workerId,workerTitle:u?.workerTitle,...x?{activeToolGroupItemId:h.activeToolGroupItemId,activeToolGroupTools:h.activeToolGroupTools}:{activeToolGroupTools:[]}},et.current={workerId:u?.workerId,workerTitle:u?.workerTitle},ur.current=[],Zt.current=Zt.current.filter($=>R.has($.id)),Pn(k),ge(),q(void 0),W(),le(),Pe(),St(void 0)},[Jn,ge,Pe,le,q,Pn,St,W]),WR=K(u=>{if(u.length===0)return[];let h=[],x=[...Wo.current],k=[...Li.current];for(let R of u){let $=R.item,j=x.findIndex(H=>H.id===$.id);if(j>=0){let H=x[j];Tf(H,$)||(x=x.map((ee,se)=>se===j?{...$,timestamp:H.timestamp}:ee))}else x=[...x,$].slice(-12),h.push($);if(R.persistToHistory){let H=k.findIndex(ee=>ee.id===$.id);if(H>=0){let ee=k[H];Tf(ee,$)||(k=k.map((se,je)=>je===H?{...$,timestamp:ee.timestamp}:se))}else k=[...k,$].slice(-48)}}return Li.current=k,(h.length>0||x.some((R,$)=>!Tf(R,Wo.current[$]??R)||R.id!==Wo.current[$]?.id))&&Iy(x),h},[Iy]),Ol=K(u=>{if(Zt.current.findIndex(x=>x.id===u.id)===-1){Zt.current=[...Zt.current,u];return}Zt.current=Zt.current.map(x=>x.id===u.id?u:x)},[]),ao=K(u=>{let h=Dr.current.filter(x=>x.status===B.Executing);if(h.length!==0){if(u){let x=ng(u);for(let k=h.length-1;k>=0;k-=1){let R=h[k];if(ng(R.name)===x)return R}}return h[h.length-1]}},[]),Ni=K(()=>{let u=ao();q(u?tg(u.name):void 0)},[ao,q]),My=K(u=>(Ol(u),Pn([...Dr.current.filter(h=>h.id!==u.id),u]),Ni(),u),[Pn,Ni,Ol]),Bi=K((u,h)=>{let x=Dr.current.find(R=>R.id===u);if(!x)return null;let k=h(x);return Ol(k),Pn(Dr.current.map(R=>R.id===u?k:R)),Ni(),k},[Pn,Ni,Ol]),Ay=K((u,h,x)=>{if(u){let R=Bi(u,x);if(R)return R}let k=ao(h);return k?Bi(k.id,x):null},[ao,Bi]),Dl=K((u,h,x,k,R)=>{let $=u??ao(R)?.id;return $?Bi($,j=>({...j,status:h,endTime:Date.now(),error:x,output:k})):null},[ao,Bi]),Pa=K((u,h)=>{let x=Date.now(),k=new Map;for(let R of Dr.current){if(R.status!==B.Executing)continue;let $=h(R);k.set(R.id,{...R,status:u,endTime:x,...$})}return k.size===0?[]:(Zt.current=Zt.current.map(R=>k.get(R.id)??R),Pn(Dr.current.map(R=>k.get(R.id)??R)),Ni(),[...k.values()])},[Pn,Ni]),co=K(()=>{Pn([])},[Pn]),{showHelp:_y,toggleHelp:FR,setShowHelp:Ly}=cg(),jR=K(u=>{yl(u),gl(u.trim().length===0)},[]),Nl=pi(),Py=fe(()=>Nl?Nl.state.visible&&Nl.suggestions.length>0:!1,[Nl]),[$a,$y]=He(!1),Oy=pe(ki),jo=K(()=>{Qt.current&&(clearTimeout(Qt.current),Qt.current=null),lr.current&&(clearTimeout(lr.current),lr.current=null)},[]);Ne(()=>{Py&&!$a&&$y(!0)},[Py,$a]),Ne(()=>{ki!==Oy.current&&(Oy.current=ki,$a&&$y(!1))},[ki,$a]);let[rt,Bl]=He(null),Uo=pe(null),[$e,Zn]=He(null),Hl=pe(null),Wl=pe($e);Wl.current=$e;let[an,Hi]=He(""),[Fl,er]=He(0),gp=pe(""),Oa=pe(void 0),Dy=fe(()=>{if(!yt)return;let{contextWindow:u,triggerPercent:h}=yt;return{currentTokens:py??n.contextTokenSnapshot?.currentTokens??rs(n.messages),contextWindow:u,triggerPercent:h}},[n.messages,n.contextTokenSnapshot,yt,py]),Da=fe(()=>{if(!rt)return;let u=!!rt.input._alwaysConfirm,h=_.permissionMode==="accept-edits"&&!u;return u?te("confirm.instruction.protected"):h?te("confirm.instruction.always"):te("confirm.instruction.basic")},[rt,_.permissionMode]),ut=Fe.searchMode==="history",Z=Fe.surface==="transcript",dr=!!rt||!!$e||ut,Rt=Z?Pt?AC:1e3:12,lo=Av(s,Fe.surface),Ny=lo.shellMode,yp=lo.usesAlternateScreenShell,Go=lo.usesRendererViewportShell,jl=lo.usesRendererMouseTracking,By=lo.usesManagedMouseClicks,Hy=lo.usesManagedMouseWheel,xp=lo.usesManagedSelection,Et=_v(s,Fe.surface,GI(Fe)),Wy=VI(Fe),Ul=$a&&!Z,Fy=K(()=>Hg({items:Pi,managedLiveEvents:[],isLoading:L,isThinking:C.isThinking,thinkingCharCount:C.thinkingCharCount,thinkingContent:C.thinkingContent,currentResponse:C.currentResponse,currentTool:C.currentTool,activeToolCalls:Fo,toolInputCharCount:C.toolInputCharCount,toolInputContent:C.toolInputContent,lastLiveActivityLabel:kl,workStripText:Ho,iterationHistory:C.iterationHistory,currentIteration:C.currentIteration,isCompacting:C.isCompacting}),[Pi,L,C.isThinking,C.thinkingCharCount,C.thinkingContent,C.currentResponse,C.currentTool,Fo,C.toolInputCharCount,C.toolInputContent,kl,Ho,C.iterationHistory,C.currentIteration,C.isCompacting]);Ne(()=>{if(Z){yy(u=>u??Fy());return}yy(null)},[Fy,Z]);let Na=fe(()=>kv({isTranscriptMode:Z,snapshot:lp,currentItemsLength:Pi.length,currentManagedLiveEventsLength:0,isLoading:L,currentResponse:C.currentResponse,thinkingContent:C.thinkingContent,activeToolCallsLength:Fo.length}),[Fo.length,L,Z,Pi.length,C.currentResponse,C.thinkingContent,lp]),jt=Z?lp:null,Sp=fe(()=>Ev(Al),[Al]),UR=fe(()=>!!(Ma.length>0||Hv(z)),[Ma.length,z]),Gl=Ma.length>0,en=s.streamingPreview&&UR,Wi=fe(()=>Rv({surface:"transcript",snapshot:jt,promptItems:Al,transcriptItems:Pi}),[jt,Al,Pi]),Ba=fe(()=>{if(!Z||Pt||Wi.length<=hh)return Wi;let u=Wi.slice(-hh),h=Wi.length-u.length;return[GC(h,u[0]?.timestamp),...u]},[Wi,Z,Pt]),dt=jt?.isLoading??L,it=s.streamingPreview?{isThinking:en?!1:C.isThinking,thinkingCharCount:en?0:C.thinkingCharCount,thinkingContent:en?"":C.thinkingContent,currentResponse:en?"":C.currentResponse,currentTool:en?void 0:C.currentTool,activeToolCalls:en?[]:Fo,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:en?kl:void 0,iterationHistory:[],currentIteration:C.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:C.currentIteration,isCompacting:!1},Te=s.streamingPreview?{isThinking:en?!1:jt?.isThinking??C.isThinking,thinkingCharCount:en?0:jt?.thinkingCharCount??C.thinkingCharCount,thinkingContent:en?"":jt?.thinkingContent??C.thinkingContent,currentResponse:en?"":jt?.currentResponse??C.currentResponse,currentTool:en?void 0:jt?.currentTool??C.currentTool,activeToolCalls:en?[]:jt?.activeToolCalls??Fo,toolInputCharCount:en?0:jt?.toolInputCharCount??C.toolInputCharCount,toolInputContent:en?"":jt?.toolInputContent??C.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:jt?.lastLiveActivityLabel??kl,iterationHistory:en?[]:jt?.iterationHistory??C.iterationHistory,currentIteration:jt?.currentIteration??C.currentIteration,isCompacting:jt?.isCompacting??C.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:jt?.currentIteration??C.currentIteration,isCompacting:!1},Br=Z?$r:Il,jy=!!Il,Uy=K(()=>Hg({items:Sp,managedLiveEvents:[],isLoading:L,isThinking:it.isThinking,thinkingCharCount:it.thinkingCharCount,thinkingContent:it.thinkingContent,currentResponse:it.currentResponse,currentTool:it.currentTool,activeToolCalls:it.activeToolCalls,toolInputCharCount:it.toolInputCharCount,toolInputContent:it.toolInputContent,lastLiveActivityLabel:it.lastLiveActivityLabel,iterationHistory:it.iterationHistory,currentIteration:it.currentIteration,isCompacting:it.isCompacting}),[L,Sp,it.activeToolCalls,it.currentIteration,it.currentResponse,it.currentTool,it.isCompacting,it.isThinking,it.iterationHistory,it.lastLiveActivityLabel,it.thinkingCharCount,it.thinkingContent,it.toolInputCharCount,it.toolInputContent]);Ne(()=>{if(!jy){xy(null);return}xy(u=>u??Uy())},[Uy,jy]);let Ha=Jt?.items??Sp,cn=Jt?.isLoading??L,_e=Jt?{isThinking:Jt.isThinking,thinkingCharCount:Jt.thinkingCharCount,thinkingContent:Jt.thinkingContent,currentResponse:Jt.currentResponse,currentTool:Jt.currentTool,activeToolCalls:Jt.activeToolCalls,toolInputCharCount:Jt.toolInputCharCount,toolInputContent:Jt.toolInputContent,managedLiveEvents:Jt.managedLiveEvents,lastLiveActivityLabel:Jt.lastLiveActivityLabel,iterationHistory:Jt.iterationHistory,currentIteration:Jt.currentIteration,isCompacting:Jt.isCompacting}:it,Ut=Z?Ba:Ha,fr=Z?dt:cn,Ye=Z?Te:_e,Gy=cn&&!C.currentResponse&&!C.thinkingContent&&Fo.length===0,GR=Oc(up?.status==="running"),$t=fe(()=>GS(up,Date.now()),[up,GR]),Vy=$t.shouldRender?`Workflow ${$t.workflow}${$t.phase?` - ${$t.phase}`:""}`:void 0,pr=fe(()=>tI(vl,{now:Date.now(),lastAllCompletedAt:null}),[vl]),Ky=w<=20?1:Fh,VR=Oc(mp.length>0),wp=fe(()=>E0(mp,Ky,Date.now()),[Ky,mp,VR]),zy=I0({isTranscriptMode:Z,isLoading:L,hasWorkflowLiveSurface:$t.shouldRender,childActivityVisible:wp.shouldRender}),Fi=fe(()=>{if(!Z)return[];let u=[];return u.push(...US($t)),L&&pr.shouldRender&&u.push(...Q0(pr)),u},[Z,L,pr,$t]),Vo=fe(()=>({config:Lt,sessionId:n.sessionId,workingDir:e.context?.gitRoot||process.cwd(),terminalWidth:P,compactionInfo:yt??void 0}),[yt,n.sessionId,Lt,e.context?.gitRoot,P]),uo=fe(()=>s.enabled&&xt?QD(Vo):void 0,[Vo,s.enabled,xt]),Yy=pe(sa),Xy=pe(!1),Tp=pe(!1),ji=$b({enabled:ZD,useRendererViewportShell:Go,isTranscriptMode:Z,hasCommitHandle:typeof di(S)?.commitInlineScrollback=="function"}),Wa=fe(()=>Od({items:Ha,viewportWidth:P,maxLines:Rt,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[Ha,P,Rt]),Ko=fe(()=>{let u=Dd({activeItems:Wa.activeItems,viewportWidth:P,isLoading:cn,maxLines:Rt,isThinking:_e.isThinking,thinkingCharCount:_e.thinkingCharCount,thinkingContent:_e.thinkingContent,streamingResponse:_e.currentResponse,currentTool:_e.currentTool,activeToolCalls:_e.activeToolCalls,toolInputCharCount:_e.toolInputCharCount,toolInputContent:_e.toolInputContent,iterationHistory:_e.iterationHistory,currentIteration:_e.currentIteration,isCompacting:_e.isCompacting,managedAgentMode:_.agentMode,managedPhase:cn?z?.phase:void 0,managedHarnessProfile:cn?z?.harnessProfile:void 0,managedWorkerTitle:cn?z?.activeWorkerTitle:void 0,managedRound:cn?z?.currentRound:void 0,managedMaxRounds:cn?z?.maxRounds:void 0,managedGlobalWorkBudget:cn?z?.globalWorkBudget:void 0,managedBudgetUsage:cn?z?.budgetUsage:void 0,managedBudgetApprovalRequired:cn?z?.budgetApprovalRequired:void 0,lastLiveActivityLabel:_e.lastLiveActivityLabel,currentTodoActiveForm:_i,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:Gy}),h=OC(Wa,u,uo);return Nb(h,ji)},[_.agentMode,ji,cn,_e.activeToolCalls,_e.currentIteration,_e.currentTool,_e.isCompacting,_e.currentResponse,_e.isThinking,_e.iterationHistory,_e.lastLiveActivityLabel,_e.thinkingCharCount,_e.thinkingContent,_e.toolInputCharCount,_e.toolInputContent,z?.activeWorkerTitle,z?.budgetApprovalRequired,z?.budgetUsage,z?.currentRound,z?.globalWorkBudget,z?.harnessProfile,z?.maxRounds,z?.phase,Gy,Wa,uo,P,Rt,_i]),Cp=fe(()=>Od({items:Ba,viewportWidth:P,maxLines:Rt,showDetailedTools:Pt,showAllContent:Pt,showFullThinking:!0,windowed:!1}),[Ba,P,Rt,Pt]),Vl=fe(()=>{if(!Z||Go)return;let u=Dd({activeItems:Cp.activeItems,viewportWidth:P,isLoading:dt,maxLines:Rt,isThinking:Te.isThinking,thinkingCharCount:Te.thinkingCharCount,thinkingContent:Te.thinkingContent,streamingResponse:Te.currentResponse,currentTool:Te.currentTool,activeToolCalls:Te.activeToolCalls,toolInputCharCount:Te.toolInputCharCount,toolInputContent:Te.toolInputContent,iterationHistory:Te.iterationHistory,currentIteration:Te.currentIteration,isCompacting:Te.isCompacting,managedAgentMode:_.agentMode,managedPhase:dt?z?.phase:void 0,managedHarnessProfile:dt?z?.harnessProfile:void 0,managedWorkerTitle:dt?z?.activeWorkerTitle:void 0,managedRound:dt?z?.currentRound:void 0,managedMaxRounds:dt?z?.maxRounds:void 0,managedGlobalWorkBudget:dt?z?.globalWorkBudget:void 0,managedBudgetUsage:dt?z?.budgetUsage:void 0,managedBudgetApprovalRequired:dt?z?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Te.lastLiveActivityLabel,liveStatusLines:Fi,currentTodoActiveForm:_i,showFullThinking:!0,showDetailedTools:Pt,showAllContent:Pt,showLiveProgressRows:!Gl,expandedItemKeys:In});return jv(mh(Nd(Cp,u)),uo)},[_.agentMode,In,Gl,uo,Z,z?.activeWorkerTitle,z?.budgetApprovalRequired,z?.budgetUsage,z?.currentRound,z?.globalWorkBudget,z?.harnessProfile,z?.maxRounds,z?.phase,P,dt,Rt,Cp,Te.activeToolCalls,Te.currentIteration,Te.currentResponse,Te.currentTool,Te.isCompacting,Te.isThinking,Te.iterationHistory,Te.lastLiveActivityLabel,Te.thinkingCharCount,Te.thinkingContent,Te.toolInputCharCount,Te.toolInputContent,Pt,Fi,Go,_i]),Fa=fe(()=>{if(Et)return Z?jv(Bd({items:Ut,viewportWidth:P,isLoading:fr,maxLines:Rt,isThinking:Ye.isThinking,thinkingCharCount:Ye.thinkingCharCount,thinkingContent:Ye.thinkingContent,streamingResponse:Ye.currentResponse,currentTool:Ye.currentTool,activeToolCalls:Ye.activeToolCalls,toolInputCharCount:Ye.toolInputCharCount,toolInputContent:Ye.toolInputContent,iterationHistory:Ye.iterationHistory,currentIteration:Ye.currentIteration,isCompacting:Ye.isCompacting,managedAgentMode:_.agentMode,managedPhase:fr?z?.phase:void 0,managedHarnessProfile:fr?z?.harnessProfile:void 0,managedWorkerTitle:fr?z?.activeWorkerTitle:void 0,managedRound:fr?z?.currentRound:void 0,managedMaxRounds:fr?z?.maxRounds:void 0,managedGlobalWorkBudget:fr?z?.globalWorkBudget:void 0,managedBudgetUsage:fr?z?.budgetUsage:void 0,managedBudgetApprovalRequired:fr?z?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ye.lastLiveActivityLabel,liveStatusLines:Fi,currentTodoActiveForm:_i,windowed:!0,showFullThinking:Z,showDetailedTools:Pt,showAllContent:Pt,showLiveProgressRows:Z&&!Gl,expandedItemKeys:Z?In:void 0}),uo):mh(Ko)},[_.agentMode,fr,Ut,Gl,uo,Ye.activeToolCalls,Ye.currentIteration,Ye.currentResponse,Ye.currentTool,Ye.isCompacting,Ye.isThinking,Ye.iterationHistory,Ye.lastLiveActivityLabel,Ye.thinkingCharCount,Ye.thinkingContent,Ye.toolInputCharCount,Ye.toolInputContent,In,Z,z?.activeWorkerTitle,z?.budgetApprovalRequired,z?.budgetUsage,z?.currentRound,z?.globalWorkBudget,z?.harnessProfile,z?.maxRounds,z?.phase,Ko,L,Z,P,Rt,Et,Fi,Pt,_i]),mr=fe(()=>Fa??Vl,[Fa,Vl]),ja=fe(()=>Bg({status:z,isLoading:L,agentMode:_.agentMode}),[_.agentMode,L,z]).workStripText,Ua=jt?.workStripText??Ho,Ui=fe(()=>Bg({status:z,isLoading:L,agentMode:_.agentMode,parallelTextOverride:Ua}),[_.agentMode,Ua,L,z]),zo=fe(()=>Ub(Ut).filter(u=>u!==Hd),[Ut]),tt=fe(()=>Mf(Fe,zo,Fe.selectedItemId),[zo,Fe]),vn=fe(()=>Ut.find(u=>u.id===tt),[Ut,tt]),qy=fe(()=>({...Fe,supportsSelection:Fe.supportsSelection&&Et,supportsCopyOnSelect:Fe.supportsCopyOnSelect&&Et}),[Fe,Et]),On=fe(()=>pv({state:qy,selectableItemIds:zo,selectedItemId:tt,selectedItemType:vn?.type,isExpanded:tt?In.has(tt):!1}),[In,zo,vn?.type,tt,qy]),Jy=On.selectionEnabled,Qy=On.copyCapabilities.copyOnSelect,pH=On.selectedItemIndex,Zy=fe(()=>jb(vn),[vn]),Kl=fe(()=>Bb(Ut.filter(u=>!yh(u))),[Ut]),Ot=fe(()=>Hb(Kl,an),[Kl,an]),zl=fe(()=>gv({isHistorySearchActive:ut,historySearchQuery:an,matches:Ot,selectedIndex:Fl,anchorItemId:Fe.searchAnchorItemId,useOverlaySurface:Fe.supportsOverlaySurface&&Fe.supportsSearchViewport&&Et}),[Ot,an,Fl,ut,Fe.searchAnchorItemId,Fe.supportsOverlaySurface,Fe.supportsSearchViewport,Et]),fo=zl.clampedSelectedIndex,ex=zl.statusText,Ip=zl.detailText,tx=zl.searchState,mH=On.detailState==="expanded",Yl=On.selectionEnabled&&zo.length>0&&!Br,Gi=On.copyCapabilities.message,Xl=On.copyCapabilities.toolInput,ql=On.toggleDetail;Ne(()=>{if(ja){if(lr.current&&(clearTimeout(lr.current),lr.current=null),Ho===ja)return;if(Ho){Qt.current&&(clearTimeout(Qt.current),Qt.current=null),Aa(ja);return}Qt.current&&clearTimeout(Qt.current),Qt.current=setTimeout(()=>{Aa(ja),Qt.current=null},400);return}if(!Ho){Qt.current&&(clearTimeout(Qt.current),Qt.current=null);return}Qt.current&&(clearTimeout(Qt.current),Qt.current=null),lr.current&&clearTimeout(lr.current),lr.current=setTimeout(()=>{Aa(void 0),lr.current=null},300)},[jo,ja,Ho]),Ne(()=>()=>{jo()},[jo]);let po=fe(()=>zb({state:Fe,ownsViewport:Et,isAwaitingUserInteraction:dr,isHistorySearchActive:ut,isTranscriptMode:Z,historySearchQuery:an}),[an,dr,ut,Z,Fe,Et]);Ne(()=>{cr(u=>{let h=BI(u,Yn);return h=NI(h,Na),h=WI(h,s.enabled&&Et?!ip||ut||dr:Z||ut||dr),h=UI(h,fo),h})},[fo,s.enabled,Yn,dr,ut,Z,Na,Et,ip]),Ne(()=>{Fl!==fo&&er(fo)},[fo,Fl]),Ne(()=>{if(!ut){gp.current=an;return}if(an===gp.current)return;gp.current=an;let u=Fb(Kl,Ot,Fe.searchAnchorItemId);er(u)},[Ot,an,ut,Fe.searchAnchorItemId,Kl]);let nx=Z?Te:{isThinking:_e.isThinking,thinkingCharCount:_e.thinkingCharCount,currentTool:_e.currentTool,activeToolCalls:_e.activeToolCalls,toolInputCharCount:_e.toolInputCharCount,toolInputContent:_e.toolInputContent,currentIteration:_e.currentIteration,isCompacting:_e.isCompacting},Ga=Z?dt:cn,[bp,vp]=He(()=>pn(_.permissionMode)?l.getGuardrail().getEngine():void 0),Jl=fe(()=>fv({sessionId:n.sessionId,permissionMode:_.permissionMode,agentMode:_.agentMode,provider:_.provider,model:_.model??Wn(_.provider)??_.provider,thinking:_.thinking,reasoningMode:_.reasoningMode,effort:he,reasoningEffortLabel:xr({provider:_.provider,model:_.model,effort:he,effortOverride:_.effortOverride,thinking:_.thinking,reasoningMode:_.reasoningMode}),isTranscriptMode:Z,streamingState:nx,maxIter:C.maxIter,contextUsage:Dy,isLoading:Ga,managedState:{phase:z?.phase,harnessProfile:z?.harnessProfile,workerTitle:z?.activeWorkerTitle,round:z?.currentRound,maxRounds:z?.maxRounds,globalWorkBudget:z?.globalWorkBudget,budgetUsage:z?.budgetUsage,budgetApprovalRequired:z?.budgetApprovalRequired,idleWaiting:z?.idleWaiting,idleWaitingPendingCount:z?.idleWaitingPendingCount},autoModeEngine:bp}),[n.sessionId,_.permissionMode,_.agentMode,_.provider,_.model,_.thinking,_.reasoningMode,_.effortOverride,he,Z,nx,C.maxIter,Dy,Ga,z?.phase,z?.harnessProfile,z?.activeWorkerTitle,z?.currentRound,z?.maxRounds,z?.globalWorkBudget,z?.budgetUsage,z?.budgetApprovalRequired,z?.idleWaiting,z?.idleWaitingPendingCount,bp]),kp=rt?"confirm":$e?.kind,rx=fe(()=>uv({isTranscriptMode:Z,isLoading:Ga,streamingState:_e,managedState:Ga?{phase:z?.phase,harnessProfile:z?.harnessProfile,workerTitle:z?.activeWorkerTitle}:void 0,waitingReason:kp,workflowBuilderMessage:Sy??void 0,backgroundWorkflowMessage:Vy}),[_e.activeToolCalls,_e.currentTool,_e.isCompacting,_e.isThinking,_e.thinkingCharCount,_e.toolInputCharCount,_e.toolInputContent,Z,z?.activeWorkerTitle,z?.harnessProfile,z?.phase,kp,Ga,Sy,Vy]),Hr=cv({activity:rx})?rx:void 0,ox=Hr?.text,ix=!!Hr,sx=pe(!1);Ne(()=>{sx.current&&!L&&Or(u=>u.length>0?[]:u),sx.current=L},[L]);let Rp=fe(()=>Gd(Jl),[Jl]),ax=fe(()=>Rp,[Rp]),cx=ax.text,KR=fe(()=>h0(C.pendingInputs),[C.pendingInputs]),Ep=fe(()=>nI({isHistorySearchActive:ut,isTranscriptMode:Z,pendingInputCount:C.pendingInputs.length,buffering:Fe.buffering,pendingLiveUpdates:Na}),[ut,Z,Na,C.pendingInputs.length,Fe.buffering]),lx=Ep.leftItems,ux=Ep.rightItems,dx=Ep.summary,Ql=fe(()=>xv({historySearchQuery:an,pendingInputCount:C.pendingInputs.length}),[an,C.pendingInputs.length]),Zl=fe(()=>yv({historySearchQuery:an,isHistorySearchActive:ut,historySearchMatchCount:Ot.length,pendingInputCount:C.pendingInputs.length,maxPendingInputs:5}),[Ot.length,an,ut,C.pendingInputs.length]),fx=fe(()=>Zl.map(u=>u.text).join(" | "),[Zl]),eu=fe(()=>Sv({inputText:rp,isTranscriptMode:Z,isHistorySearchActive:ut}),[rp,ut,Z]),px=Fe.supportsOverlaySurface&&Fe.supportsSearchViewport&&Et,tu=fe(()=>mv({runtime:On,itemSummary:Zy}),[Zy,On]),Mp=fe(()=>wv(Ql),[Ql]),mx=fe(()=>Tv({textSelection:Br,selectionState:tu,isHistorySearchActive:ut,historySearchDetailText:Ip,historySearchHasMatches:!!ex&&Ot.length>0,showAllActive:Pt,baseFooterNotices:Ql}),[Br,Ql,Ip,Ot.length,ex,ut,Pt,tu]),zR=mx.secondaryText,YR=mx.budgetNotices,hx=Z?YR:Mp,gx=w,yx=Z?"":rp,xx=Z?void 0:KR,Sx=Ua,wx=Z?!1:_y,Tx=$t.shouldRender?q0($t):0,Cx=L&&pr.shouldRender?pr.rows.length:0,Ix=zy?Gh(wp):0,Gt=fe(()=>PI({terminalRows:gx,terminalWidth:P,windowedTranscript:Go,inputText:yx,footerHeaderText:dx,activitySummary:Z?void 0:ox,activityBarVisible:Z?!1:ix,workflowSurfaceRows:Z?0:Tx,childActivitySurfaceRows:Z?0:Ix,todoSurfaceRows:Z?0:Cx,pendingInputSummary:xx,stashNoticeSummary:eu,notificationSummary:fx,statusNoticeSummary:hx.join(" | "),workStripText:Sx,suggestionsReserved:Ul,suggestionsMode:"inline",showHelp:wx,statusBarText:cx,confirmPrompt:rt?.prompt,confirmInstruction:Da,dialogMode:"inline",reviewHint:s.enabled&&Et?void 0:po.browseHintText,uiRequest:$e?$e.kind==="select"?{kind:"select",title:$e.title,options:$e.options.map(u=>({label:u.label,description:u.description})),buffer:$e.buffer,error:$e.error}:{kind:"input",prompt:$e.prompt,defaultValue:$e.defaultValue,buffer:$e.buffer,error:$e.error}:null}),[gx,P,yx,dx,ox,ix,Z,Tx,Ix,Cx,xx,eu,fx,hx,Sx,Ul,px,wx,cx,rt,Da,s.enabled,po.browseHintText,Et,$e]),Ap=fe(()=>{if(!ji)return{model:Ko,committedSections:[]};let{committedSections:u,liveRows:h}=DC(Wa.staticSections,Ko.rows,Ko.previewRows,Gt.messageRows);return{model:{...Ko,staticSections:[],rows:h,previewRows:[]},committedSections:u}},[ji,Ko,Wa.staticSections,Gt.messageRows]),bx=Ap.model;Ne(()=>{let u=di(S),h=typeof u?.commitInlineScrollback=="function",x=Ob({active:ji,hasCommitHandle:h,wasActive:Xy.current,forceRebuild:Tp.current,prior:Yy.current,finalizedSections:Ap.committedSections,bannerSection:uo,width:P,identify:NC}),k=!1,R=!1;if(x.kind==="commit"){let j=x.sections.flatMap(ee=>ee.rows),H=Pb(j.length>0?[{key:"il-delta",rows:j}]:[],{width:P,theme:ne("dark")});if(R=H.length>0,x.mode==="append"&&!H)Uv("empty-append-text");else try{u?.commitInlineScrollback?.({mode:x.mode,text:H}),k=!0}catch(ee){Uv("commit-threw",ee)}}let $=Db(x,{committed:k,hadContent:R},Tp.current);Yy.current=$.state,Xy.current=$.wasActive,Tp.current=$.owns},[ji,Ap.committedSections,uo,P,S]);let XR=fe(()=>ae($h,{reserveSpace:Ul,width:P,hidden:Z,mode:"inline"}),[Ul,P,Z,px]),Va=fe(()=>Yb(Gt.messageRows),[Gt.messageRows]),vx=fe(()=>Xb(Va),[Va]),Vi=!Wy&&s.transcriptSpinnerAnimation,Ka=mr?mr.rows.length+mr.previewRows.length:vR,nu=K(u=>{mr||kR(u.scrollHeight)},[mr]),za=K(u=>tv({window:u,stickyHeader:po.stickyHeader,width:P,topChromeRows:0}),[P,po.stickyHeader]),Ki=K((u=Ia.current,h=Cl.current,x=sp.current?za(sp.current):Tl.current)=>{if(!x||u.length===0){Ei.current=null;return}Tl.current=x,Ei.current=nv(u,{allRows:h,rowIndexByKey:Pg(h),topOffsetRows:x.topOffsetRows,viewportHeight:x.contentWindow.viewportHeight,animateSpinners:Vi})},[za,Vi]),Ya=K(()=>{let u=Tl.current;return u?.contentWindow.viewportHeight&&u.contentWindow.viewportHeight>0?u.contentWindow.viewportHeight:Gt.messageRows},[Gt.messageRows]),qR=K(u=>{sp.current=u;let h=za(u);Tl.current=h,Ki(Ia.current,Cl.current,h)},[Ki,za]),ru=K(u=>{Ia.current=u.rows,Cl.current=u.allRows,Ki(u.rows,u.allRows)},[Ki]),tn=K(()=>{Xn.current=null,ap(void 0),cp(void 0)},[]),_p=K(()=>{tn(),cr(u=>ia(u,void 0))},[tn]);Ne(()=>{Ki()},[Ki]),Ne(()=>{ER(u=>qb(u,Ka,Gt.messageRows))},[Ka,Gt.messageRows]),Ne(()=>{if(!Mi)return;let u=setTimeout(()=>{gy(void 0)},2e3);return()=>{clearTimeout(u)}},[Mi]);let Wr=K((u,h="success")=>{let x=u?.trim();x&&gy({text:x,tone:h})},[]),zi=K((u,h)=>{let x=h instanceof Error?h.message:String(h);return`${u}: ${x}`},[]),ou=K(async u=>{let h=u??Br;if(!h)return!1;let x=h.text.trimEnd();if(!x)return!1;try{return await ac(x,{terminalWrite:A}),Wr(`Copied ${h.rowCount} selected line${h.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(k){return Wr(zi("Failed to copy transcript selection",k),"warning"),!1}},[Br,zi,Wr,A]),Yi=K(u=>{if(!u||Qb({items:Ut,renderModel:mr,terminalWidth:P,transcriptMaxLines:Rt,viewportRows:Ya(),itemId:u,visibleRows:Ia.current,expandedItemKeys:In,showDetailedTools:!1}))return;let h=Zb({items:Ut,renderModel:mr,terminalWidth:P,transcriptMaxLines:Rt,viewportRows:Ya(),itemId:u,expandedItemKeys:In,showDetailedTools:!1});xl(h)},[Ut,P,Rt,mr,In,Ya,xl,Ia]),kx=K(u=>{cr(h=>ia(h,u)),u&&Yi(u)},[Yi]),Lp=K(u=>{u&&Yi(u)},[Yi]),Rx=K(u=>{if(!Yl)return;let h=Gb(zo,tt,u);h&&kx(h)},[Yl,zo,tt,kx]),Ex=K(()=>{!ql||!tt||(_R(u=>{let h=new Set(u);return h.has(tt)?h.delete(tt):h.add(tt),h}),Yi(tt))},[Yi,ql,tt]),Mx=K(async()=>{if(!Gi||!vn)return;let u=Lg(vn);if(u)try{await ac(u,{terminalWrite:A}),Wr("Copied selected transcript entry to clipboard.","success")}catch(h){Wr(zi("Failed to copy transcript entry",h),"warning")}},[zi,Gi,vn,Wr,A]),Ax=K(async()=>{if(!Xl||!vn)return;let u=Vb(vn);if(u)try{await ac(u,{terminalWrite:A}),Wr("Copied selected tool args to clipboard.","success")}catch(h){Wr(zi("Failed to copy tool args",h),"warning")}},[zi,Xl,vn,Wr,A]),Xa=K(()=>Cl.current,[]),_x=K((u,h)=>{if(!s.enabled||!Et)return;let x=Ei.current;return x?Og(x,u,h):void 0},[s.enabled,Et]),Xi=K((u,h,x)=>{let k=Xa(),R=iv(k,u,h,{animateSpinners:Vi,selectFullRowOnCollapsed:x?.selectFullRowOnCollapsed});Z?cp(R):ap(R);let $=k[Math.max(0,Math.min(h.modelRowIndex,k.length-1))];return x?.updateSelectedItem&&$?.itemId&&cr(j=>ia(j,$.itemId)),R},[Z,Xa,Vi]),Lx=K((u,h)=>{if(!u)return;Xn.current=null;let x={...u,focus:h?.focusPoint??u.focus};if(!(x.mode!=="char"||x.didDrag)){tn();return}let R=Xi(x.anchor,x.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!R){tn();return}return h?.copySelection!==!1&&ou(R),R},[tn,ou,Xi]),Pp=K(()=>{if(!Z||!Ut.length||rt||$e)return;tn();let u=ev({items:Ut,selectedItemId:tt,renderModel:mr,terminalWidth:P,transcriptMaxLines:Rt,viewportRows:Ya(),scrollOffset:Yn,expandedItemKeys:In,showDetailedTools:!1,preferViewportAnchor:!0});cr(h=>FI(h,{anchorItemId:u,initialMatchIndex:0})),Hi(""),er(0)},[rt,Ut,In,Yn,Z,tt,mr,P,Rt,$e,Ya,tn]),$p=K(()=>{cr(u=>jI(u)),Hi(""),er(0),tn()},[tn]),iu=K(()=>{!ut||Ot.length===0||er(-1)},[Ot.length,ut]),Px=fe(()=>{if(!rt)return null;if(rt.tool==="exit_plan_mode"){let u=typeof rt.input.plan=="string"?rt.input.plan:void 0;return{prompt:rt.prompt.split(`
140
140
  `,1)[0]??rt.prompt,instruction:Da,planContent:u}}return{prompt:rt.prompt,instruction:Da}},[Da,rt]),$x=fe(()=>$e?$e.kind==="select"?{kind:"select",title:$e.title,options:$e.options,buffer:$e.buffer,error:$e.error,visibleSelectOptions:Gt.visibleSelectOptions,focusedIndex:$e.focusedIndex,selectedIndices:$e.selectedIndices,multiSelect:$e.multiSelect}:{kind:"input",prompt:$e.prompt,defaultValue:$e.defaultValue,buffer:$e.buffer,error:$e.error}:null,[$e,Gt.visibleSelectOptions]),JR=fe(()=>ae(Dh,{confirm:Px,request:$x}),[Px,$x]),Op=fe(()=>{if(Mi)return ae(z0,{text:Mi.text,tone:Mi.tone})},[Mi]),Dp=fe(()=>{if(Op)return ae(E,{flexDirection:"column",width:"100%",children:Op})},[Op]),su=K(()=>{cr(u=>HI(DI(u))),op(!1),wl(),Hi(""),er(0),tn()},[tn,wl]),Ox=K(()=>{Z&&op(u=>!u)},[Z]),QR=K(()=>{if(Z){su();return}op(!1),cr(u=>OI(u)),Hi(""),er(0),tn()},[tn,su,Z]);Ne(()=>{Jy||!Fe.selectedItemId||cr(u=>ia(u,void 0))},[Jy,Fe.selectedItemId]),Ne(()=>{if(!Z||!Gi||!Qy){Oa.current=void 0;return}if($r||!tt||!vn)return;if(!Oa.current){Oa.current=tt;return}if(Oa.current===tt)return;Oa.current=tt;let u=Lg(vn);u&&ac(u,{terminalWrite:A}).catch(()=>{})},[Z,vn,tt,Gi,Qy,$r,A]),Ne(()=>{if(S?.isTTY!==!0)return;let u=di(S);u?.setShellMode?.(Ny,jl),yp||u?.setAltScreenActive?.(!1)},[Ny,S,yp,jl]);let Le=pe({...e,thinking:_.thinking,reasoningMode:_.reasoningMode,effort:Ie,agentMode:_.agentMode,workflowRunsBaseDir:gr("workflow-runs",Ur(process.cwd()).key),context:{...e.context,repoIntelligenceMode:_.repoIntelligenceMode,repoIntelligenceTrace:_.repoIntelligenceTrace,toolConstructionMode:!0},session:{...e.session,id:n.sessionId,persistedByHost:!0},guardrails:jg(_.permissionMode,l)});Ne(()=>{Le.current.effort=Ie},[Ie]);let Dn=pe(_.permissionMode);Ne(()=>{Dn.current=_.permissionMode},[_.permissionMode]);let ZR=fe(()=>ms(),[]),Dx=pe(ZR),ht=pe(_);Ne(()=>{ht.current=_},[_]);let Np=pe(null);Np.current===null&&(Np.current=Iu({getProvider:o(()=>Xo(ht.current.provider),"getProvider"),getModel:o(()=>ht.current.model??"","getModel")}));let Nx=pe(ku());Ne(()=>{_.permissionMode==="auto-in-project"&&Nx.current()},[]);let Bp=K(u=>{xe(x=>({...x,permissionMode:u})),Dn.current=u;let h=Zo({provider:ht.current.provider,model:ht.current.model,effort:ht.current.effort,effortOverride:ht.current.effortOverride,permissionMode:u,planModeEffort:ht.current.planModeEffort,thinking:ht.current.thinking,reasoningMode:ht.current.reasoningMode});Le.current={...Le.current,effort:h.runtimeEffort,guardrails:jg(u,l)},vp(pn(u)?l.getGuardrail().getEngine():void 0),u==="auto-in-project"&&Nx.current()},[l]),Bx=pe(C.pendingInputs),ot=pe(!1),Hx=pe(0),Hp=pe(null),qa=pe(0),au=K(()=>{if(wa.current)return;let u=Rl.current?.trim(),h=ue.current.length>0?ue.current[ue.current.length-1]:void 0,x=h&&"text"in h&&typeof h.text=="string"?h.text.trim():void 0,R=sn.current.length>0?[...sn.current.map($=>Oo($)),...u&&u!==x?[{type:"info",text:u}]:[]]:[...sn.current.map($=>Oo($)),...GD(F(),Q(),{toolCalls:Zt.current,toolNames:ur.current,infoItems:u&&u!==x?[u]:[]})];R.length!==0&&(wa.current=!0,Ll(sn.current),Ri.current?.(R))},[Q,F,Ll]);Ne(()=>{Bx.current=C.pendingInputs},[C.pendingInputs]);let Wx=K(()=>{ot.current=!0,X(),oe(),W(),le(),ge(),Pe(),q(void 0),co(),St(void 0),La(),Wo.current=[],Li.current=[],lt.current=null,Rl.current=null,Ea([]),bl(null),Ai(null),jo(),Aa(void 0),V(!1),S?.isTTY===!0&&di(S)?.clear?.()},[X,Pe,le,ge,jo,co,La,q,Ea,V,St,oe,W,S]),cu=K(u=>{let h=gS(),x=h.list().filter(R=>R.status==="running"||R.status==="paused");if(x.length===0)return!1;for(let R of x)h.stop(R.runId,u);ka(R=>!R||R.status!=="running"||!x.some($=>$.runId===R.runId)?R:{...R,status:"stopped",activeAgents:[],message:"Workflow stopped by user."});let k=x[0];return x.length===1&&k?bn({type:"info",text:`Stopped workflow ${k.workflow} (${k.runId}).`},"workflow-stop"):bn({type:"info",text:`Stopped ${x.length} active workflows.`},"workflow-stop"),!0},[bn,ka]);Ne(()=>{if(!$t.shouldRender)return;let u=o(()=>{cu("stopped by Ctrl+C")},"handleSigint");return process.on("SIGINT",u),()=>{process.off("SIGINT",u)}},[cu,$t.shouldRender]),An(fn.Critical,u=>{let h=u.name==="escape",x=Date.now(),k=h&&!Z&&!dr&&Ca&&C.pendingInputs.length===0&&(L||$t.shouldRender),R=k&&(u.meta===!0||x-Hx.current<OD);if(Hx.current=k?x:0,nb({keyName:u.name,ctrl:!!u.ctrl,isTranscriptMode:Z,isAwaitingUserInteraction:dr,isInputEmpty:Ca,isDoubleEscape:R,pendingInputCount:C.pendingInputs.length,hasTranscriptTextSelection:!!$r,hasActiveWorkflow:$t.shouldRender}))return cu(u.ctrl?"stopped by Ctrl+C":"stopped by Escape");if(!L)return!1;switch(rb({keyName:u.name,ctrl:!!u.ctrl,isTranscriptMode:Z,isAwaitingUserInteraction:dr,isInputEmpty:Ca,isDoubleEscape:R,pendingInputCount:C.pendingInputs.length,hasTranscriptTextSelection:!!$r}).kind){case"interrupt":return au(),Wx(),!0;case"pop-pending-input":return qt(),!0;default:break}return!1},[L,Z,dr,Ca,C.pendingInputs.length,qt,au,Wx,cu,$r,$t.shouldRender]),An(fn.Critical,u=>{let h=ZI({itemsLength:Ut.length,currentResponse:Ye.currentResponse,thinkingContent:Ye.thinkingContent,activeToolCallsLength:Ye.activeToolCalls.length}),x=eb({keyName:u.name,hasTranscript:h,historyScrollOffset:Yn,reviewPageSize:Va,reviewWheelStep:vx,hasMouse:!!u.mouse,mouseButton:u.mouse?.button,mouseAction:u.mouse?.action,usesManagedMouseClicks:By,supportsMouseTracking:Fe.supportsMouseTracking,usesRendererMouseTracking:jl,usesManagedMouseWheel:Hy,supportsWheelHistory:Fe.supportsWheelHistory});if(x.kind==="mouse-phase"){let R=u.mouse;if(!R)return!1;x.phase==="press"&&Xn.current&&Lx(Xn.current);let $=_x(R.row,R.column);if(x.phase==="press"){if(!$||!h)return Br||tt?(_p(),!0):(tn(),!1);let j=Pv({previous:hy.current,time:Date.now(),row:R.row,column:R.column});hy.current=j;let H=j.count>=3?"line":j.count===2?"word":"char";if(iu(),cr(ee=>ia(ee,void 0)),Z?cp(void 0):ap(void 0),H!=="char"){let ee=Hf(Xa(),$.point,H);if(ee)return Xn.current={anchor:ee.start,focus:ee.end,didDrag:!1,mode:H,anchorSpan:ee},Xi(ee.start,ee.end,{updateSelectedItem:!1}),!0}return Xn.current={anchor:$.point,focus:$.point,didDrag:!1,mode:"char"},!0}if(!Xn.current)return!1;if(x.phase==="drag"){let j=Ei.current,H=j?av(j,R.row):0;H!==0&&Sl(H);let ee=$??(j?Dg(j,R.row,R.column):void 0);if(!ee)return!1;let se=Xn.current;if(se.mode!=="char"&&se.anchorSpan){let je=Hf(Xa(),ee.point,se.mode);if(!je)return!1;let Ue=Fg(se.anchorSpan,je);return Xn.current={...se,anchor:Ue.anchor,focus:Ue.focus,didDrag:!0},Xi(Ue.anchor,Ue.focus,{updateSelectedItem:!1}),!0}return Xn.current={...se,focus:ee.point,didDrag:!0},Xi(se.anchor,ee.point,{updateSelectedItem:!1}),!0}if(x.phase==="release"){let j=Xn.current,H=j.focus,se=($??(Ei.current?Dg(Ei.current,R.row,R.column):void 0))?.point??H;if(j.mode!=="char"&&j.anchorSpan){let je=Hf(Xa(),se,j.mode);if(je){let Ue=Fg(j.anchorSpan,je);j.anchor=Ue.anchor,se=Ue.focus}}return Lx(j,{focusPoint:se}),!0}}if(x.kind==="scroll-by")return iu(),Sl(x.delta),!0;if(x.kind==="consume")return!0;let k=ob({key:u,isTranscriptMode:Z,isHistorySearchActive:ut,historySearchMatchCount:Ot.length,hasTextSelection:!!Br,hasFocusedItem:!!tt,canCopySelectedItem:Gi,canCopySelectedToolInput:Xl,canToggleSelectedDetail:ql,canCycleTranscriptSelection:Yl});return ib({action:k,hasTranscript:h,isTranscriptMode:Z,pageScrollDelta:Va,disarmHistorySearchSelection:iu,scrollTranscriptBy:Sl,closeHistorySearchSurface:$p,backspaceHistorySearchQuery:o(()=>{Hi(R=>R.slice(0,-1)),er(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:o(R=>{er($=>_g(Ot.length,$,R))},"stepHistorySearchSelection"),submitHistorySearchSelection:o(()=>{let R=Ot[fo];R&&(Lp(R.itemId),$p())},"submitHistorySearchSelection"),appendHistorySearchQuery:o(R=>{Hi($=>$+R),er(0)},"appendHistorySearchQuery"),openHistorySearchSurface:Pp,clearTranscriptSelectionFocus:_p,exitTranscriptModeSurface:su,toggleTranscriptShowAll:Ox,scrollTranscriptHome:o(()=>{xl(Math.max(0,Ka-Gt.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:o(()=>{wl(),tn()},"scrollTranscriptToBottom"),cycleTranscriptSelection:Rx,copySelectedTranscriptText:o(()=>{ou()},"copySelectedTranscriptText"),copySelectedTranscriptItem:o(()=>{Mx()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:o(()=>{Ax()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:Ex,navigateSearchMatch:o(R=>{er($=>{let j=_g(Ot.length,$,R),H=Ot[j];return H&&Lp(H.itemId),j})},"navigateSearchMatch"),dumpTranscriptToScrollback:o(()=>{sb({items:Ut.filter(R=>!yh(R)),exitAltScreen:o(()=>{A(xd({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:o(R=>{A(R)},"writeToScrollback"),enterAltScreen:o(()=>{A(yd({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[Z,Ut,Ye.currentResponse,Ye.thinkingContent,Ye.activeToolCalls,Yn,Ka,Va,vx,tt,_p,su,Ox,Fe,Sl,xl,wl,Yl,fo,tn,ou,Ot,Pp,$p,iu,Rx,Gi,Mx,Xl,Ax,ql,Ex,Lp,Br,_x,Fe.supportsMouseTracking,$r,By,Hy,xp,Go,jl,Xi,Gt.messageRows]),An(u=>{if(!rt)return!1;let h=u.sequence.trim().toLowerCase(),x=!!rt.input._alwaysConfirm,k=_.permissionMode==="accept-edits"&&!x,R=o($=>{let j=`${te("dialog.confirm")} ${rt.prompt}
141
- \u2192 ${te(`confirm.result.${$}`)}`;!!et.current.workerId?Ft({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:j,timestamp:Date.now()}):G({type:"info",text:j})},"recordConfirmResult");return h==="y"||h==="yes"?(R("approved"),Bl(null),Uo.current?.({confirmed:!0}),Uo.current=null,!0):k&&(h==="a"||h==="always")?(R("approved_always"),Bl(null),Uo.current?.({confirmed:!0,always:!0}),Uo.current=null,!0):h==="n"||h==="no"||u.name==="escape"?(R("denied"),Bl(null),Uo.current?.({confirmed:!1}),Uo.current=null,!0):u.insertable||u.name==="return"},{isActive:!!rt,priority:fn.Critical});let lu=K(u=>{Zn(null),Hl.current?.(u),Hl.current=null},[]),qi=K((u,h,x,k)=>h.length===0?Promise.resolve(void 0):new Promise(R=>{Hl.current=R,Zn({kind:"select",title:u,options:h,buffer:"",focusedIndex:0,selectedIndices:[],multiSelect:x,minSelections:k?.minSelections,maxSelections:k?.maxSelections})}),[]),eE=K((u,h)=>qi(u,h.map(x=>({label:x,value:x}))).then(x=>Array.isArray(x)?x[0]:x),[qi]),Fx=K(async u=>{let h=u.options?Bf(u.options):[],x=await qi(Ng(u),h,!1);return x===void 0?Su:Array.isArray(x)?x[0]??Su:x},[qi]);Ne(()=>{let u=!1;return(async()=>{let{bindAskUserForConstruction:h}=await import("./construction-bootstrap-GIFDM4L5.js");u||h(Fx)})(),()=>{u=!0,(async()=>{let{bindAskUserForConstruction:h}=await import("./construction-bootstrap-GIFDM4L5.js");h(null)})()}},[Fx]);let jx=K((u,h)=>new Promise(x=>{Hl.current=k=>x(Array.isArray(k)?k[0]:k),Zn({kind:"input",prompt:u,defaultValue:h,buffer:""})}),[]);An(u=>{let h=Wl.current;if(!h)return!1;if(u.name==="escape")return lu(void 0),!0;if(h.kind==="select"){let x=h.options.length;if(u.name==="up"||u.sequence==="k")return Zn(k=>k&&k.kind==="select"?{...k,focusedIndex:(k.focusedIndex-1+x)%x,error:void 0}:k),!0;if(u.name==="down"||u.sequence==="j")return Zn(k=>k&&k.kind==="select"?{...k,focusedIndex:(k.focusedIndex+1)%x,error:void 0}:k),!0;if(u.sequence===" "&&h.multiSelect)return Zn(k=>{if(!k||k.kind!=="select")return k;let R=k.focusedIndex,$=k.selectedIndices.includes(R)?k.selectedIndices.filter(j=>j!==R):[...k.selectedIndices,R];return{...k,selectedIndices:$,error:void 0}}),!0;if(u.name==="return"){let k=Wl.current;if(!k||k.kind!=="select")return!1;if(k.multiSelect){let R=k.selectedIndices.length,{minSelections:$,maxSelections:j}=k,H=R===0&&$!==0?te("select.multiselect_empty"):$!==void 0&&R<$?te("select.multiselect_min",{min:String($)}):j!==void 0&&R>j?te("select.multiselect_max",{max:String(j)}):void 0;if(H!==void 0)return Zn(se=>se&&se.kind==="select"?{...se,error:H}:se),!0;let ee=k.selectedIndices.slice().sort((se,je)=>se-je).map(se=>k.options[se]?.value).filter(se=>typeof se=="string"&&se.length>0);lu(ee)}else lu(k.options[k.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(u.sequence)){let k=Number.parseInt(u.sequence,10)-1;if(k>=0&&k<x)return h.multiSelect?Zn(R=>{if(!R||R.kind!=="select")return R;let $=R.selectedIndices.includes(k)?R.selectedIndices.filter(j=>j!==k):[...R.selectedIndices,k];return{...R,focusedIndex:k,selectedIndices:$,error:void 0}}):Zn(R=>R&&R.kind==="select"?{...R,focusedIndex:k,error:void 0}:R),!0}return!1}if(u.name==="return"){let x=Wl.current;if(!x||x.kind!=="input")return!1;let k=x.buffer.trim();return lu(k===""?x.defaultValue??void 0:k),!0}return u.name==="backspace"||u.name==="delete"?(Zn(x=>x&&x.kind==="input"?{...x,buffer:x.buffer.slice(0,-1),error:void 0}:x),!0):(u.insertable||u.isPasted===!0)&&!u.ctrl&&!u.meta?(Zn(x=>x&&x.kind==="input"?{...x,buffer:x.buffer+u.sequence,error:void 0}:x),!0):!1},{isActive:!!$e,priority:fn.Critical}),Ne(()=>{if(n.messages.length>0&&D.length===0){if(n.uiHistory?.length){let u=Qr(n.uiHistory);u.length!==n.uiHistory.length&&(n.uiHistory=u),Y(mf({messages:n.messages,uiHistory:u}));return}Y(mf({messages:n.messages}))}},[n.messages,n.uiHistory,D.length,Y]),Ne(()=>{pu(n.gitRoot)},[n.gitRoot]),Ne(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&dS({executionCwd:n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:_.repoIntelligenceMode})},[n.gitRoot,_.repoIntelligenceMode]);let Ja=K(()=>({onThinkingDelta:o((u,h)=>{if(ot.current||$n(h,"thinking",u,{append:!0}))return;C.currentTool&&(q(void 0),ge());let{header:x}=gI(F()+u),k=x?`[Thinking: ${x}]`:"[Thinking]";St(wf(lt.current?.activeWorkerTitle?`[${lt.current.activeWorkerTitle}] ${k}`:k,lt.current?.activeWorkerTitle)),ke(u.length),De(u),et.current.workerId&&$l("thinking",u)},"onThinkingDelta"),onThinkingEnd:o((u,h)=>{if(ot.current||$n(h,"thinking",u))return;let x=F(),k=pI(x,u);k&&k!==x&&(le(),de(),ke(k.length),De(k)),et.current.workerId&&Ey(k),W()},"onThinkingEnd"),onTextDelta:o((u,h)=>{ot.current||$n(h,"assistant",u,{append:!0})||(C.currentTool&&(q(void 0),ge()),W(),St(void 0),Ct(u),et.current.workerId&&$l("assistant",u))},"onTextDelta"),onToolUseStart:o((u,h)=>{if(ot.current||$n(h,"tool",k0(u.name,u.input)))return;ur.current.includes(u.name)||(ur.current=[...ur.current,u.name]);let x=lt.current?.activeWorkerTitle?`[${lt.current.activeWorkerTitle}] `:"",k={id:u.id,name:`${x}${u.name}`,status:B.Executing,startTime:Date.now(),input:u.input};My(k),et.current.workerId&&Qn(k),St(Zr(k,lt.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:o((u,h,x)=>{if(ot.current||$n(x,"tool",u,{skipIfExisting:!0}))return;Be(h.length),pt(h);let k=Ay(x?.toolId,u,R=>{let $=R.preview??"",j=uI(`${$}${h}`);return{...R,preview:j||void 0,input:R.input?j?{...R.input,preview:j}:{...R.input}:j?{preview:j}:void 0}});k&&(et.current.workerId&&Qn(k),St(Zr(k,lt.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:o((u,h)=>{if(ot.current||$n(h,"tool",`${u.name} completed`))return;let x=typeof u.content=="string"?u.content:String(u.content??""),k=dI(x);if(/^\[(?:Tool Error|Error)\]/.test(x)){let $=Dl(u.id,B.Error,k,k,u.name);$&&(et.current.workerId&&Qn($),St(Zr($,lt.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(x)){let $=Dl(u.id,B.Cancelled,void 0,k,u.name);$&&(et.current.workerId&&Qn($),St(Zr($,lt.current?.activeWorkerTitle)));return}let R=Dl(u.id,B.Success,void 0,k||void 0,u.name);R&&(et.current.workerId&&Qn(R),St(Zr(R,lt.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:o((u,h)=>{if(ot.current||$n(h,"progress",u.message))return;let x=u.message.length>100?u.message.slice(0,97)+"...":u.message,k=Bi(u.id,R=>({...R,preview:x,progressLines:[...(R.progressLines??[]).slice(-4),x]}));k&&et.current.workerId&&Qn(k),St(x)},"onToolProgress"),onStreamEnd:o(u=>{if(ot.current||lf(u))return;let h=Pa(B.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),x=h[h.length-1];et.current.workerId&&h.forEach(k=>Qn(k)),x&&St(Zr(x,lt.current?.activeWorkerTitle)),W(),ge(),q(void 0)},"onStreamEnd"),onChildActivityEnd:o(u=>{Cy(u)},"onChildActivityEnd"),hasPendingInputs:o(()=>Bx.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:o(u=>{if(!ot.current)for(let h of u){let x=h.trim();x&&(et.current.workerId?Ft({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:x,timestamp:Date.now()}):G({type:"user",text:x}))}},"onMidTurnUserMessages"),onSidecarMessage:o(u=>{if(ot.current)return;let h=u.suggestedFix?`${u.content}
141
+ \u2192 ${te(`confirm.result.${$}`)}`;!!et.current.workerId?Ft({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:j,timestamp:Date.now()}):G({type:"info",text:j})},"recordConfirmResult");return h==="y"||h==="yes"?(R("approved"),Bl(null),Uo.current?.({confirmed:!0}),Uo.current=null,!0):k&&(h==="a"||h==="always")?(R("approved_always"),Bl(null),Uo.current?.({confirmed:!0,always:!0}),Uo.current=null,!0):h==="n"||h==="no"||u.name==="escape"?(R("denied"),Bl(null),Uo.current?.({confirmed:!1}),Uo.current=null,!0):u.insertable||u.name==="return"},{isActive:!!rt,priority:fn.Critical});let lu=K(u=>{Zn(null),Hl.current?.(u),Hl.current=null},[]),qi=K((u,h,x,k)=>h.length===0?Promise.resolve(void 0):new Promise(R=>{Hl.current=R,Zn({kind:"select",title:u,options:h,buffer:"",focusedIndex:0,selectedIndices:[],multiSelect:x,minSelections:k?.minSelections,maxSelections:k?.maxSelections})}),[]),eE=K((u,h)=>qi(u,h.map(x=>({label:x,value:x}))).then(x=>Array.isArray(x)?x[0]:x),[qi]),Fx=K(async u=>{let h=u.options?Bf(u.options):[],x=await qi(Ng(u),h,!1);return x===void 0?Su:Array.isArray(x)?x[0]??Su:x},[qi]);Ne(()=>{let u=!1;return(async()=>{let{bindAskUserForConstruction:h}=await import("./construction-bootstrap-OSXHEIBB.js");u||h(Fx)})(),()=>{u=!0,(async()=>{let{bindAskUserForConstruction:h}=await import("./construction-bootstrap-OSXHEIBB.js");h(null)})()}},[Fx]);let jx=K((u,h)=>new Promise(x=>{Hl.current=k=>x(Array.isArray(k)?k[0]:k),Zn({kind:"input",prompt:u,defaultValue:h,buffer:""})}),[]);An(u=>{let h=Wl.current;if(!h)return!1;if(u.name==="escape")return lu(void 0),!0;if(h.kind==="select"){let x=h.options.length;if(u.name==="up"||u.sequence==="k")return Zn(k=>k&&k.kind==="select"?{...k,focusedIndex:(k.focusedIndex-1+x)%x,error:void 0}:k),!0;if(u.name==="down"||u.sequence==="j")return Zn(k=>k&&k.kind==="select"?{...k,focusedIndex:(k.focusedIndex+1)%x,error:void 0}:k),!0;if(u.sequence===" "&&h.multiSelect)return Zn(k=>{if(!k||k.kind!=="select")return k;let R=k.focusedIndex,$=k.selectedIndices.includes(R)?k.selectedIndices.filter(j=>j!==R):[...k.selectedIndices,R];return{...k,selectedIndices:$,error:void 0}}),!0;if(u.name==="return"){let k=Wl.current;if(!k||k.kind!=="select")return!1;if(k.multiSelect){let R=k.selectedIndices.length,{minSelections:$,maxSelections:j}=k,H=R===0&&$!==0?te("select.multiselect_empty"):$!==void 0&&R<$?te("select.multiselect_min",{min:String($)}):j!==void 0&&R>j?te("select.multiselect_max",{max:String(j)}):void 0;if(H!==void 0)return Zn(se=>se&&se.kind==="select"?{...se,error:H}:se),!0;let ee=k.selectedIndices.slice().sort((se,je)=>se-je).map(se=>k.options[se]?.value).filter(se=>typeof se=="string"&&se.length>0);lu(ee)}else lu(k.options[k.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(u.sequence)){let k=Number.parseInt(u.sequence,10)-1;if(k>=0&&k<x)return h.multiSelect?Zn(R=>{if(!R||R.kind!=="select")return R;let $=R.selectedIndices.includes(k)?R.selectedIndices.filter(j=>j!==k):[...R.selectedIndices,k];return{...R,focusedIndex:k,selectedIndices:$,error:void 0}}):Zn(R=>R&&R.kind==="select"?{...R,focusedIndex:k,error:void 0}:R),!0}return!1}if(u.name==="return"){let x=Wl.current;if(!x||x.kind!=="input")return!1;let k=x.buffer.trim();return lu(k===""?x.defaultValue??void 0:k),!0}return u.name==="backspace"||u.name==="delete"?(Zn(x=>x&&x.kind==="input"?{...x,buffer:x.buffer.slice(0,-1),error:void 0}:x),!0):(u.insertable||u.isPasted===!0)&&!u.ctrl&&!u.meta?(Zn(x=>x&&x.kind==="input"?{...x,buffer:x.buffer+u.sequence,error:void 0}:x),!0):!1},{isActive:!!$e,priority:fn.Critical}),Ne(()=>{if(n.messages.length>0&&D.length===0){if(n.uiHistory?.length){let u=Qr(n.uiHistory);u.length!==n.uiHistory.length&&(n.uiHistory=u),Y(mf({messages:n.messages,uiHistory:u}));return}Y(mf({messages:n.messages}))}},[n.messages,n.uiHistory,D.length,Y]),Ne(()=>{pu(n.gitRoot)},[n.gitRoot]),Ne(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&dS({executionCwd:n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:_.repoIntelligenceMode})},[n.gitRoot,_.repoIntelligenceMode]);let Ja=K(()=>({onThinkingDelta:o((u,h)=>{if(ot.current||$n(h,"thinking",u,{append:!0}))return;C.currentTool&&(q(void 0),ge());let{header:x}=gI(F()+u),k=x?`[Thinking: ${x}]`:"[Thinking]";St(wf(lt.current?.activeWorkerTitle?`[${lt.current.activeWorkerTitle}] ${k}`:k,lt.current?.activeWorkerTitle)),ke(u.length),De(u),et.current.workerId&&$l("thinking",u)},"onThinkingDelta"),onThinkingEnd:o((u,h)=>{if(ot.current||$n(h,"thinking",u))return;let x=F(),k=pI(x,u);k&&k!==x&&(le(),de(),ke(k.length),De(k)),et.current.workerId&&Ey(k),W()},"onThinkingEnd"),onTextDelta:o((u,h)=>{ot.current||$n(h,"assistant",u,{append:!0})||(C.currentTool&&(q(void 0),ge()),W(),St(void 0),Ct(u),et.current.workerId&&$l("assistant",u))},"onTextDelta"),onToolUseStart:o((u,h)=>{if(ot.current||$n(h,"tool",k0(u.name,u.input)))return;ur.current.includes(u.name)||(ur.current=[...ur.current,u.name]);let x=lt.current?.activeWorkerTitle?`[${lt.current.activeWorkerTitle}] `:"",k={id:u.id,name:`${x}${u.name}`,status:B.Executing,startTime:Date.now(),input:u.input};My(k),et.current.workerId&&Qn(k),St(Zr(k,lt.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:o((u,h,x)=>{if(ot.current||$n(x,"tool",u,{skipIfExisting:!0}))return;Be(h.length),pt(h);let k=Ay(x?.toolId,u,R=>{let $=R.preview??"",j=uI(`${$}${h}`);return{...R,preview:j||void 0,input:R.input?j?{...R.input,preview:j}:{...R.input}:j?{preview:j}:void 0}});k&&(et.current.workerId&&Qn(k),St(Zr(k,lt.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:o((u,h)=>{if(ot.current||$n(h,"tool",`${u.name} completed`))return;let x=typeof u.content=="string"?u.content:String(u.content??""),k=dI(x);if(/^\[(?:Tool Error|Error)\]/.test(x)){let $=Dl(u.id,B.Error,k,k,u.name);$&&(et.current.workerId&&Qn($),St(Zr($,lt.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(x)){let $=Dl(u.id,B.Cancelled,void 0,k,u.name);$&&(et.current.workerId&&Qn($),St(Zr($,lt.current?.activeWorkerTitle)));return}let R=Dl(u.id,B.Success,void 0,k||void 0,u.name);R&&(et.current.workerId&&Qn(R),St(Zr(R,lt.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:o((u,h)=>{if(ot.current||$n(h,"progress",u.message))return;let x=u.message.length>100?u.message.slice(0,97)+"...":u.message,k=Bi(u.id,R=>({...R,preview:x,progressLines:[...(R.progressLines??[]).slice(-4),x]}));k&&et.current.workerId&&Qn(k),St(x)},"onToolProgress"),onStreamEnd:o(u=>{if(ot.current||lf(u))return;let h=Pa(B.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),x=h[h.length-1];et.current.workerId&&h.forEach(k=>Qn(k)),x&&St(Zr(x,lt.current?.activeWorkerTitle)),W(),ge(),q(void 0)},"onStreamEnd"),onChildActivityEnd:o(u=>{Cy(u)},"onChildActivityEnd"),hasPendingInputs:o(()=>Bx.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:o(u=>{if(!ot.current)for(let h of u){let x=h.trim();x&&(et.current.workerId?Ft({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:x,timestamp:Date.now()}):G({type:"user",text:x}))}},"onMidTurnUserMessages"),onSidecarMessage:o(u=>{if(ot.current)return;let h=u.suggestedFix?`${u.content}
142
142
  Suggested fix: ${u.suggestedFix}`:u.content;if(u.delivery==="budget-exhausted")ky({type:"sidecar",text:h,delivery:"budget-exhausted"},"sidecar-message");else{let x=u.verdict==="blocked"?"blocked":"revise";ky({type:"sidecar",text:h,verdict:x},"sidecar-message")}},"onSidecarMessage"),onError:o(u=>{let h=ao();h?.name&&St(Zr(h,lt.current?.activeWorkerTitle));let x=Pa(B.Error,()=>({error:u.message,output:void 0})),k=x[x.length-1];et.current.workerId&&x.forEach(je=>Qn(je)),k&&St(Zr(k,lt.current?.activeWorkerTitle));let R=eS(u),$=["Transient","Permanent","Tool Call ID","User Abort"];if(R.category===ec.USER_ABORT)return;let H=[`\u274C API Error (${$[R.category]||"Unknown"}): ${u.message}`];R.shouldCleanup&&H.push(" \u{1F9F9} Cleaned incomplete tool calls"),R.category===ec.PERMANENT?(H.push(" \u{1F4A1} This error requires manual intervention. Please check:"),u.message.includes("auth")||u.message.includes("401")?(H.push(" - Your API key is valid"),H.push(" - Run /config to check provider settings")):u.message.includes("400")?(H.push(" - The request parameters are correct"),H.push(" - Try restarting the conversation")):H.push(" - The error details above")):R.category===ec.TRANSIENT?H.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):R.category===ec.TOOL_CALL_ID&&H.push(" \u2705 Session cleaned, ready to continue");let ee=H.join(`
143
143
  `);!!et.current.workerId?Ft({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:ee,timestamp:Date.now()}):G({type:"error",text:ee})},"onError"),onRetry:o((u,h,x,k)=>{if(ot.current)return;let R=hf(u,h,x);if(Ra(k,R.text)||$n(k,"progress",R.text))return;!!et.current.workerId?Ft({...R,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):G(R)},"onRetry"),onProviderRecovery:o((u,h)=>{if(ot.current)return;let x=gf(u);if(Ra(h,x.text)||$n(h,"progress",x.text))return;let k=!!et.current.workerId,R=Q().trim();R&&(k?$l("assistant",R):G({type:"assistant",text:R})),Pe(),le(),W(),ge(),q(void 0),co(),St(void 0),k?Ft({...x,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()}):G(x)},"onProviderRecovery"),onManagedTaskStatus:o(u=>{if(ot.current)return;let h=et.current;if(Hv(u)){if(h.workerId&&h.workerId!==u.activeWorkerId)HR({workerId:u.activeWorkerId,workerTitle:u.activeWorkerTitle});else if(h.workerId!==u.activeWorkerId){let j=mt.current,H=j.activeToolGroupTools.some(ee=>ee.status===B.Executing);mt.current={workerId:u.activeWorkerId,workerTitle:u.activeWorkerTitle,...H?{activeToolGroupItemId:j.activeToolGroupItemId,activeToolGroupTools:j.activeToolGroupTools}:{activeToolGroupTools:[]}},et.current={workerId:u.activeWorkerId,workerTitle:u.activeWorkerTitle}}}lt.current=u,bl(u);let x=hI(u);WR(x);let k=ta(u),$=ta(u,{expanded:!0})??k;$&&(Rl.current=$)},"onManagedTaskStatus"),onProviderRateLimit:o((u,h,x,k)=>{if(ot.current)return;let R=Hp.current;if(Hp.current=null,oI(R,{attempt:u,maxAttempts:h,delayMs:x}))return;let $=`[Rate Limit] Retrying in ${x/1e3}s (${u}/${h})...`;Ra(k,$)||$n(k,"progress",$)||bn({type:"info",icon:"\u23F3",text:$},"ratelimit")},"onProviderRateLimit"),onRetryAfter:o((u,h)=>{if(ot.current)return;Hp.current={attempt:u.attempt,maxAttempts:u.maxAttempts,waitMs:u.waitMs};let x=Math.round(u.waitMs/1e3),k=u.source==="exponential-backoff"?"no-header \u2192 backoff":u.source,$=`[${u.reason==="overloaded"?"Overloaded":"Rate limited"}] (${u.provider}) \u2014 retrying in ${x}s [${k}] (${u.attempt}/${u.maxAttempts})`;Ra(h,$)||$n(h,"progress",$)||bn({type:"info",icon:"\u23F3",text:$},"ratelimit")},"onRetryAfter"),onReasoningEffortRejected:o(u=>{nS(u.provider,u.model,u.effort,"observed",new Date().toISOString());let x=Zo({provider:u.provider,model:u.model,effort:ht.current.effort,effortOverride:ht.current.effortOverride,permissionMode:ht.current.permissionMode,planModeEffort:ht.current.planModeEffort,thinking:ht.current.thinking,reasoningMode:ht.current.reasoningMode}).runtimeEffort;xe(k=>({...k,effort:x,effortOverride:x!==void 0})),fs({effort:x}),Le.current.effort=x,bn({type:"info",icon:"\u26A0",text:`[${u.provider}/${u.model} \u4E0D\u652F\u6301 effort "${u.effort}",\u5DF2\u8BB0\u5F55;\u540E\u7EED\u4E0D\u518D\u63D0\u4F9B\u8BE5\u6863${x?`,\u5DF2\u5207\u5230 ${x}`:""}]`},"ratelimit")},"onReasoningEffortRejected"),onRepoIntelligenceTrace:o(u=>{ot.current||bn(MI(u),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:o(u=>{ot.current||Or(u)},"onTodoUpdate"),onScoutSuspiciousCompletion:o(u=>{ot.current||Wv&&bn({type:"info",icon:"\u26A0",text:`[Scout] Completion marked uncertain \u2014 signals: ${u.signals.join(", ")}. Verify the result before continuing.`},"scout-uncertain")},"onScoutSuspiciousCompletion"),onIterationStart:o((u,h)=>{if(ot.current)return;if(h&&qe(h),lt.current?.globalWorkBudget){let se={...lt.current,budgetUsage:Math.min(lt.current.globalWorkBudget,(lt.current.budgetUsage??0)+1)};lt.current=se,bl(se)}let x=u>1?F().trim():"",k=u>1?Kg(Q()):"",R=u>1?[...ur.current]:[],$=u>1?[...Zt.current]:[],j=!!et.current.workerId;we(u),j&&_l({clearOwner:!1});let H=Dr.current.filter(se=>se.status===B.Executing),ee=new Set(H.map(se=>se.id));if(ur.current=[],Zt.current=Zt.current.filter(se=>ee.has(se.id)),Pn(H),ge(),q(void 0),St(wf(lt.current?.activeWorkerTitle?`[Thinking] [${lt.current.activeWorkerTitle}]`:void 0,lt.current?.activeWorkerTitle)),de(),u>1&&!j){let se=zg({thinking:x,response:k,toolCalls:$,toolNames:R});Ri.current?Ri.current(se):Y([...se])}},"onIterationStart"),beforeToolExecute:o(async(u,h)=>{let x=Dn.current,k=rc(x),R=Dx.current,$=n.gitRoot;if(IS(O.current,u,h))return`[Skipped] Previously denied operation. ${bS(O.current)}`;if(x==="plan"&&(Jo.has(u)||u==="undo"))return`[Blocked] Tool '${u}' is not allowed in plan mode (read-only). ${Dv}`;if(x==="plan"&&u==="bash"){let j=h.command??"";if(yo(j))return`[Blocked] Bash write operation not allowed in plan mode: ${j.slice(0,50)}... ${Dv}`}if(u==="bash"){let j=h.command??"";if(go(j))return!0}if(pn(x)&&bp==="llm")return!0;if(u==="bash"){let j=h.command??"",H=TS(j);if(H.level==="dangerous"){let ee=await mo(u,{...h,_dangerousCommand:!0});return ee.confirmed?ee.confirmed:(O.current=Xp(O.current,u,h,H.reason),`[Blocked] Dangerous command requires confirmation: ${H.reason}`)}}if($){let j=!1;if(Jo.has(u)){let H=h.path;H&&sc(H,$)&&(j=!0)}if(u==="bash"){let H=h.command;H&&AS(H,$)&&(j=!0)}if(j){let H=await mo(u,{...h,_alwaysConfirm:!0});if(Dn.current==="plan"&&(Jo.has(u)||u==="undo"))return!1;if(Dn.current==="plan"&&u==="bash"){let ee=h.command??"";if(yo(ee))return!1}return H.confirmed}}if(k.has(u)){if(x==="accept-edits"&&u==="bash"&&await ic(u,h,R,Np.current??void 0))return!0;let j=await mo(u,h);if(Dn.current==="plan"&&(Jo.has(u)||u==="undo"))return!1;if(Dn.current==="plan"&&u==="bash"){let H=h.command??"";if(yo(H))return!1}if(!j.confirmed)return G({type:"info",text:te("cancelled")}),O.current=Xp(O.current,u,h),!1;j.always&&x==="accept-edits"&&(Au(u,h,!1),Dx.current=ms())}return!0},"beforeToolExecute"),askUser:o(async u=>{let h=u.options?Bf(u.options):[],x=await qi(Ng(u),h,u.multiSelect,{minSelections:u.minSelections,maxSelections:u.maxSelections});return x===void 0?Su:x},"askUser"),exitPlanMode:o(async u=>Dn.current!=="plan"?"not-in-plan-mode":(await mo("exit_plan_mode",{plan:u})).confirmed?(Bp("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:o(async u=>{let h=u.questions,x={},k=0;for(;k<h.length;){let R=h[k],$=Bf(R.options);k>0&&$.push({label:te("select.back_prev"),value:zp});let j=`[${k+1}/${h.length}] ${R.question}`,H=await qi(j,$,R.multiSelect,{minSelections:R.minSelections,maxSelections:R.maxSelections});if(H===void 0)return;if(!Array.isArray(H)&&H===zp){k--;continue}x[R.question]=H,k++}return x},"askUserMulti"),askUserInput:o(async u=>jx(u.question,u.default),"askUserInput"),onCompactStart:o(()=>{ze()},"onCompactStart"),onCompactStats:o(u=>{Sa.current=u.tokensBefore,zn(u.tokensAfter)},"onCompactStats"),onCompactedMessages:o((u,h)=>{n.messages=u,h?.artifactLedger&&h.artifactLedger.length>0&&(n.artifactLedger=us(n.artifactLedger??[],h.artifactLedger)),n.lineage=h?.anchor?mu(n.lineage,u,h.anchor,h.postCompactAttachments??[]):Dt(u,n.lineage);let x=rs(u);n.contextTokenSnapshot={currentTokens:x,baselineEstimatedTokens:x,source:"estimate"},Er(n),zn(x),ml.current?.().catch(()=>{})},"onCompactedMessages"),onCompact:o(u=>{on();let h=Sa.current??u;Sa.current=null;let x=Math.round(h/1e3);bn({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${x}k tokens)`},"compact")},"onCompact"),onCompactEnd:o(()=>{Sa.current=null,on()},"onCompactEnd"),onIterationEnd:o(u=>{u.scope!=="worker"&&(n.contextTokenSnapshot=u.contextTokenSnapshot),zn(u.tokenCount)},"onIterationEnd")}),[ke,De,W,Ct,q,Be,pt,ge,we,de,_,n,ze,on,G,le,F,Q,_l,St,$l,Ey,Qn,My,Ay,Dl,Pa,ao,co,Pn,Cy,Ra,$n,bn,C.currentTool]),mo=o((u,h)=>{let x=lI(u,h);return Jn(),new Promise(k=>{Uo.current=k,Bl({tool:u,input:h,prompt:x})})},"showConfirmDialog");Ne(()=>(d(async(u,h,x)=>(await mo(u.name,{...u.input,_reason:`[auto-mode] ${h}`,...x&&x.length>0?{_classifierSignals:x}:{}})).confirmed?"allow":"block"),f(u=>{vp(u)}),()=>{d(null),f(null)}),[]),Ne(()=>{p(_)},[_,p]),Ne(()=>{let u=o(()=>Ja(),"resolve");return Yp({askUser:o(h=>{let x=u().askUser;if(!x)throw new Error("askUser surface unavailable");return x(h)},"askUser"),askUserMulti:o(async h=>{let x=u().askUserMulti;return x?x(h):void 0},"askUserMulti"),askUserInput:o(async h=>{let x=u().askUserInput;return x?x(h):void 0},"askUserInput")}),()=>Yp(void 0)},[Ja]);let Ji=o(async(u,h,x=n.lineage?Nt(n.lineage,n.lineage.activeEntryId):n.messages,k)=>{let R={...Ja(),getCostReport:N,onWorkflowProcessEvent:LR,onWorkflowAgentDigest:o(({runId:ee,event:se})=>{let je=se.data??{},Ue=typeof je.summary=="string"?je.summary:void 0,Vt=typeof je.name=="string"?je.name:void 0,Yo=ba.current,Za=Ue!==void 0||Vt!==void 0?uc(Ue,Vt):Yo?.runId===ee?Yo.locale??"en":"en",jr=Lu(se,Za,ee);jr&&(et.current.workerId?Ft({id:`wf-digest-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"assistant",text:jr,timestamp:Date.now()}):Nn([{type:"assistant",text:jr}]))},"onWorkflowAgentDigest")},j=aS(n.gitRoot).getSystemPromptSnippet(),H=AI(u.context,n.gitRoot,n.contextTokenSnapshot,j);k&&k.length>0&&(H.inputArtifacts=[...k]),H.planModeBlockCheck=(ee,se)=>Dn.current!=="plan"?null:ti(ee,se,n.gitRoot??process.cwd());try{return await tc({...u,session:{...u.session,initialMessages:x,initialExtensionState:n.extensionState??{},initialExtensionRecords:n.extensionRecords??[]},context:H,events:R,abortSignal:It()},h)}finally{mS()}},"runAgentRound"),kn=K(u=>{let h=Dt([...u],n.lineage);return n.lineage=h,h},[n]),Qa=K(async u=>{if(n.messages.length===0)return;let h=ri(n.messages),x=Qr(u??y.current);y.current=x,n.title=h,n.uiHistory=x;let k=n.lineage??kn(n.messages);n.lineage=k;let R={...n.extensionStateDirty?{extensionState:n.extensionState??{}}:{},...n.extensionRecordsDirty?{extensionRecords:n.extensionRecords??[]}:{}},$=ua({messages:n.messages,title:h,gitRoot:n.gitRoot??"",tag:Le.current.session?.tag,uiHistory:x,lineage:k,artifactLedger:n.artifactLedger,...R});DD(r)?await r.appendSessionDelta(n.sessionId,$):await r.save(n.sessionId,$),n.extensionStateDirty=!1,n.extensionRecordsDirty=!1,vf()&&kf("persist",Rf(n.messages,k,{historyItems:ue.current,foregroundItems:sn.current,streamingResponse:ce.current.currentResponse,streamingThinking:ce.current.thinkingContent,persistedUiHistory:y.current}))},[n,kn,r]),Wp=K(()=>{if(hl.current)return hl.current;let u=(async()=>{try{for(;Bo.current.requested;){Bo.current.requested=!1;let h=Bo.current.uiHistoryOverride;Bo.current.uiHistoryOverride=void 0,await Qa(h)}}finally{hl.current=null,Bo.current.requested&&Wp()}})();return hl.current=u,my.current=u,u},[Qa]),Fr=K(u=>{if(u!==void 0){let h=Qr(u);y.current=h,Bo.current.uiHistoryOverride=h}return Bo.current.requested=!0,Wp()},[Wp]),tE=K(async()=>{if(Ta.current)return Ta.current;let u=(async()=>{ot.current=!0,X(),oe(),W(),le(),ge(),Pe(),q(void 0),V(!1),await my.current.catch(()=>{}),await ml.current?.().catch(()=>{}),io(!1),v&&I?.isRaw&&T(!1),I?.pause?.(),I?.unref?.(),g(),a()})();return Ta.current=u.finally(()=>{Ta.current=null}),Ta.current},[X,Pe,le,ge,g,v,a,q,V,T,I,oe,W]);Ne(()=>(ml.current=Fr,()=>{ml.current=null}),[Fr]);let uu=K(u=>{if(u.length===0)return;let h=Wf(y.current,u);y.current=h,Fr(h)},[Fr]),Nn=K(u=>{u.length!==0&&(Y([...u]),uu(u))},[Y,uu]),Qi=K(u=>{u.length!==0&&(Y([...u]),y.current=Wf(y.current,u))},[Y]);Ne(()=>(Ri.current=Nn,()=>{Ri.current=null}),[Nn]);let Ux=K(async u=>{Jn(),n.messages=u.messages,n.contextTokenSnapshot=u.contextTokenSnapshot,Ov(n,u),kn(u.messages);let h=u.success===!1&&!u.interrupted,x=F().trim(),k=DS(u.messages,Q(),u.managedTask?.verdict.summary,u.lastText),R=mt.current.workerTitle,$=[...sn.current],j=$.length>0;Ll($);let H=j&&$.some(st=>st.type==="assistant"&&"text"in st&&Bv(String(st.text??""),R)),ee=$.filter(st=>st.type!=="assistant"||!("text"in st)||Bv(String(st.text??""),R)),se=!h&&k&&!H,je=[...Li.current],Ue=h?[]:je.length===0?Wv?og(u):og(u).filter(st=>!rg(st)):[],Vt=j?[]:zg({thinking:x,response:void 0,toolCalls:Zt.current,toolNames:ur.current}),Yo=[...ee.map(st=>Oo(st)),...Vt,...h?[]:je.map(st=>Oo(st)),...Ue.map(st=>Nv(st)),...se?[{type:"assistant",text:u.interrupted?`${k}
144
144
 
@@ -168,7 +168,7 @@ Suggestion: Set the required API key environment variable`:Re.message.includes("
168
168
  Suggestion: Check your internet connection`:(Re.message.includes("token")||Re.message.includes("context too long"))&&(Bn=`[Context Error] ${Re.message}
169
169
  Suggestion: Use /clear to start fresh`),console.log=st,et.current.workerId?Ft({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:Bn,timestamp:Date.now()}):Nn([{type:"error",text:Bn}]),Ou({error:Re,messageCount:n.messages.length})){let tr={type:"info",text:dc};if(et.current.workerId?(Ft({id:`recover-hint-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,...tr,timestamp:Date.now()}),uu([tr])):Nn([tr]),(await mo("confirm",{_alwaysConfirm:!0,_message:$u})).confirmed)try{await Gx(Vt)}catch(hr){let ts=hr instanceof Error?hr.message:String(hr);Nn([{type:"error",text:`[Recover failed] ${ts}`}])}}}}finally{if(console.log=st,jr.length>0){let Re=jr.filter((Bn,tr,ho)=>ho.indexOf(Bn)===tr),Rn=Gg(Re);Rn&&G({type:"info",text:Rn})}if(!ot.current){let Re=Pa(B.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));Re.length>0&&et.current.workerId&&Re.forEach(Rn=>Qn(Rn))}V(!1),oe(),Pe(),hp(),le();let be=rs(n.messages);n.contextTokenSnapshot={currentTokens:be,baselineEstimatedTokens:be,source:"estimate"},zn(be)}},[Ln,n,_,np,C.pendingInputs.length,r,rt,$e,g,a,G,re,Me,oe,Pe,Ja,Vx,It,Q,F,Ft,Qi,Nn,jp,Qa,Fr,uu,kn,es,Fp,ze,on,co,hp,Pa,Qn,jo,va,ka]),Kx=$t.shouldRender?ae(E,{paddingX:1,children:ae(J0,{viewModel:$t})}):void 0,zx=L&&pr.shouldRender?ae(E,{paddingX:1,children:ae(Y0,{viewModel:pr})}):void 0,Yx=zy?ae(E,{paddingX:1,children:ae(Vh,{viewModel:wp})}):void 0,oE=Kx||zx||Yx?wn(E,{flexDirection:"column",children:[zx,Kx,Yx]}):void 0,Xx=$t.shouldRender?$t.counterText:void 0,iE=ae(Zd,{left:ae(Jd,{items:lx}),right:ae(Qd,{items:ux}),queued:ae(Bh,{pendingInputs:C.pendingInputs}),stashNotice:ae(af,{text:eu}),notifications:ae(sf,{notifications:Zl}),inlineNotices:Mp.length>0?ae(Hh,{notices:Mp}):void 0,activityBar:Hr?wn(E,{paddingX:1,flexDirection:"row",children:[wn(E,{flexGrow:1,children:[Hr?.showSpinner?ae(Vn,{color:ne("dark").colors.accent}):null,Hr?wn(b,{color:Hr.kind==="waiting"?ne("dark").colors.warning:ne("dark").colors.accent,wrap:"truncate",children:[Hr.showSpinner?" ":"",Hr.text]}):null,Hr?.showSpinner&&C.roundStartedAt!=null?ae(fC,{roundStartedAt:C.roundStartedAt,charCount:C.currentResponse.length,theme:ne("dark")}):null]}),Xx?ae(b,{dimColor:!0,wrap:"truncate",children:Xx}):L&&pr.shouldRender?ae(b,{dimColor:!0,wrap:"truncate",children:`${pr.completedCount}/${pr.totalCount} completed`}):null]}):void 0,todoSurface:oE,composer:ae(Eh,{onSubmit:rE,onHistoryRecall:nE,onPopPendingInputs:o(()=>{let u=M();if(u.length!==0)return u.join(`
170
170
  ---
171
- `)},"onPopPendingInputs"),prompt:">",placeholder:lv({isLoading:L,canQueueFollowUps:np,waitingReason:kp}),focus:!rt&&!$e&&!ut,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:jR}),inlineSuggestions:XR,helpSurface:_y?ae(Ah,{sections:Ef()}):void 0,taskBar:Ua?ae(cf,{items:Ui.backgroundTask.items,overflowLabel:Ui.backgroundTask.overflowLabel,ctaHint:Ui.backgroundTask.ctaHint,showSpinner:L}):void 0,statusLine:ae(E,{children:ae(zs,{...Jl,viewModel:ax})}),inlineDialogs:JR}),sE=ae(Zd,{left:ae(Jd,{items:lx}),right:ae(Qd,{items:ux}),stashNotice:ae(af,{text:eu}),notifications:ae(sf,{notifications:Zl}),composer:ae(G0,{searchActive:ut,selectionActive:!!(Br||tt),showAllActive:Pt,searchQuery:an,searchCurrent:Ot.length>0?fo+1:0,searchCount:Ot.length,searchDetailText:Ip,pendingLiveUpdates:Na,secondaryText:zR}),taskBar:Ua?ae(cf,{items:Ui.backgroundTask.items,overflowLabel:Ui.backgroundTask.overflowLabel,ctaHint:Ui.backgroundTask.ctaHint,showSpinner:dt}):void 0,statusLine:ae(E,{children:ae(zs,{...Jl,viewModel:Rp})})}),Up=K(u=>ae(V0,{banner:u?.bannerVisible?ae(Vg,{...Vo}):void 0,items:Ha,isLoading:cn,viewportRows:Gt.messageRows,viewportWidth:P,scrollOffset:Yn,windowed:!!u?.rendererWindow,rendererWindow:u?.rendererWindow,transcriptModel:u?.rendererWindow?Fa:bx,maxLines:Rt,selectedTextRanges:xp?Il?.rowRanges:void 0,onMetricsChange:nu,onVisibleRowsChange:ru}),[Vo,Ha,cn,nu,ru,Yn,bx,P,Rt,Il?.rowRanges,Gt.messageRows,xp]),Gp=K(u=>ae(K0,{banner:u?.bannerVisible?ae(Vg,{...Vo}):void 0,items:Ba,browse:{hintText:po.browseHintText},selection:tu,search:tx,isLoading:dt,isThinking:Te.isThinking,thinkingCharCount:Te.thinkingCharCount,thinkingContent:Te.thinkingContent,streamingResponse:Te.currentResponse,currentTool:Te.currentTool,activeToolCalls:Te.activeToolCalls,toolInputCharCount:Te.toolInputCharCount,toolInputContent:Te.toolInputContent,iterationHistory:Te.iterationHistory,currentIteration:Te.currentIteration,isCompacting:Te.isCompacting,agentMode:_.agentMode,managedPhase:dt?z?.phase:void 0,managedHarnessProfile:dt?z?.harnessProfile:void 0,managedWorkerTitle:dt?z?.activeWorkerTitle:void 0,managedRound:dt?z?.currentRound:void 0,managedMaxRounds:dt?z?.maxRounds:void 0,managedGlobalWorkBudget:dt?z?.globalWorkBudget:void 0,managedBudgetUsage:dt?z?.budgetUsage:void 0,managedBudgetApprovalRequired:dt?z?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Te.lastLiveActivityLabel,liveStatusLines:Fi,viewportRows:Gt.messageRows,viewportWidth:P,scrollOffset:Yn,windowed:!!u?.windowed,animateSpinners:!!u?.rendererWindow&&Vi,rendererWindow:u?.rendererWindow,transcriptModel:u?.rendererWindow?Fa:Vl,maxLines:Rt,showDetailedTools:Pt,showAllContent:Pt,selectedItemId:On.selectionEnabled?tt:void 0,selectedTextRanges:$r?.rowRanges,expandedItemKeys:On.selectionEnabled?In:void 0,onMetricsChange:nu,onVisibleRowsChange:ru}),[Vo,_.agentMode,dt,In,s.transcriptSpinnerAnimation,nu,ru,Yn,Wy,z?.activeWorkerTitle,z?.budgetApprovalRequired,z?.budgetUsage,z?.currentRound,z?.globalWorkBudget,z?.harnessProfile,z?.maxRounds,z?.phase,Fa,Vl,po.browseHintText,tt,tu,P,Vi,Ba,Rt,Te.activeToolCalls,Te.currentIteration,Te.currentResponse,Te.currentTool,Te.isCompacting,Te.isThinking,Te.iterationHistory,Te.lastLiveActivityLabel,Te.thinkingCharCount,Te.thinkingContent,Te.toolInputCharCount,Te.toolInputContent,Fi,$r?.rowRanges,tx,Pt,Gt.messageRows]),aE=Z?Gp({bannerVisible:!1,windowed:Et}):Up({bannerVisible:!1}),qx=Z?sE:iE,cE=s.enabled&&Go,Jx=wn(E,{flexDirection:"column",width:P,flexShrink:0,flexGrow:cE?1:0,children:[ae(lg,{currentConfig:_,setCurrentConfig:xe,isLoading:L,abort:X,stopThinking:W,clearThinkingContent:le,setCurrentTool:q,setIsLoading:V,onToggleHelp:FR,setShowHelp:Ly,onSetThinking:o(u=>{Le.current.thinking=u},"onSetThinking"),onSetReasoningMode:o(u=>{Le.current.reasoningMode=u,Le.current.thinking=u!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:QR,onOpenTranscriptSearch:Pp,canOpenTranscriptSearch:Z&&!rt&&!$e,isInteractiveDialogActive:!!(rt||$e),onSetAgentMode:o(u=>{Le.current.agentMode=u},"onSetAgentMode"),onSetPermissionMode:o(u=>{Bp(u)},"onSetPermissionMode"),isInputEmpty:Ca,onSavePermissionMode:_S}),xt&&(s.enabled?null:ae(Ds,{items:[1],children:o(()=>ae(Vg,{...Vo},"banner"),"children")})),Go?ae(bh,{width:P,stickyHeader:po.stickyHeader,jumpToLatest:po.jumpToLatest,transcript:!s.enabled||!Et?Z?Gp({bannerVisible:!1}):Up({bannerVisible:!1}):void 0,renderTranscriptWindow:s.enabled&&Et?u=>(()=>{let x=za(u).contentWindow;return Z?Gp({bannerVisible:!1,windowed:!0,rendererWindow:x}):Up({bannerVisible:!1,rendererWindow:x})})():void 0,overlay:Dp,scrollTop:Yn,scrollHeight:Ka,viewportHeight:Gt.messageRows,stickyScroll:!Z&&!dr&&ip,overscanRows:qD,scrollRef:RR,onWindowChange:qR,onScrollTopChange:MR,onStickyChange:AR,footer:qx}):wn($D,{children:[wn(E,{flexDirection:"column",flexGrow:1,children:[aE,Dp?ae(E,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:Dp}):null]}),qx]})]});return yp?ae(Um,{mouseTracking:lo.usesRendererMouseTracking,children:Jx}):Jx},"InkREPLInner"),tN=o(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return ae(nf,{children:ae(uf,{children:ae(bd,{children:ae(ag,{children:ae(th,{cwd:t,gitRoot:n,children:ae(eN,{...e})})})})})})},"InkREPL");function nN(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}o(nN,"isRawModeSupported");async function Yg(e){if(!nN())throw new Kp("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 Qs,n=ii(),r=si(),i=ai(n,r),{prepareRuntimeConfig:s,getGitRoot:a}=await import("./utils-NP42DKL3.js"),{loadCompactionConfig:c}=await import("./compaction-config-E4LN3M53.js"),{resolveProvider:l}=await import("./dist-7PXDYX2R.js"),d=s(),f=e.provider??d.provider??du,p=e.model??d.model,m=BD(e,d),g=HD(e,d),S=Ru(e,d),w=e.agentMode??d.agentMode??"ama",I=m!=="off",T=oc(d.permissionMode,"accept-edits")??"accept-edits",v=wu(),A=d.repoIntelligenceTrace===!0,D={provider:f,model:p,effort:g,effortOverride:S,planModeEffort:d.planModeEffort,thinking:I,reasoningMode:m,agentMode:w,permissionMode:T,repoIntelligenceMode:v.mode,repoIntelligenceTrace:A},N=e.session?.id,O=[],G,Y,re,me,ue,y="",P=await a().catch(()=>null)??void 0,C=fu({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(C){let W=o(()=>{C.shutdown()},"teamModeCleanup");process.on("exit",W),process.on("SIGTERM",W)}try{let{bootstrapConstructionRuntime:W}=await import("./construction-bootstrap-GIFDM4L5.js"),le=await W(P??process.cwd());if(le.loaded>0||le.failed>0||le.tampered>0){let q=le.failed>0?`; ${le.failed} failed (see warnings above)`:"",Be=le.tampered>0?`; ${le.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";console.log(Xe.dim(`[Constructed] Rehydrated ${le.loaded} active tool(s)${q}${Be}.`))}if(le.markdownLoaded>0||le.markdownFailures.length>0){console.log(Xe.dim(`[Agents] Loaded ${le.markdownLoaded} markdown agent(s).`));for(let q of le.markdownFailures)console.warn(Xe.yellow(`[Agents] Skipped ${q.path}: ${q.reason}`))}}catch(W){console.warn(Xe.yellow(`[Constructed] Bootstrap failed: ${W.message}. Self-construction disabled this session.`))}let ce;try{let W=await c(P),le=l(f);ce={contextWindow:W.contextWindow??le.getContextWindow?.()??2e5,triggerPercent:W.triggerPercent,enabled:W.enabled,userOverrideContextWindow:W.contextWindow}}catch{}if(e.session?.id&&!e.session.resume){let W=await t.load(e.session.id);W&&(O=W.messages,G=Mo(W.uiHistory),Y=W.lineage,re=W.artifactLedger,me=W.extensionState,ue=W.extensionRecords,y=W.title,N=e.session.id,e={...e,session:{...e.session??{},id:N,tag:W.tag}},console.log(Xe.green(`[Session loaded: ${N}]`)))}else if(e.session?.resume||e.session?.autoResume){let W=await t.list(P);if(W.length>0){let le=W[0];if(le){let q=await t.load(le.id);q&&(O=q.messages,G=Mo(q.uiHistory),Y=q.lineage,re=q.artifactLedger,me=q.extensionState,ue=q.extensionRecords,y=q.title,N=le.id,e={...e,session:{...e.session??{},tag:q.tag}},console.log(Xe.green(`[Continuing session: ${le.id}]`)))}}}let Me=await Xc({sessionId:N,gitRoot:P,existingMessages:O,existingUiHistory:G,existingLineage:Y,existingArtifactLedger:re,existingExtensionState:me,existingExtensionRecords:ue});Me.title=y,C?.writer.update({sessionId:Me.sessionId});let oe={current:null},X={current:null},de={current:D},ke=Mu(),De=await qc({askUser:o(async(W,le,q)=>{let Be=oe.current;return Be?Be(W,le,q):"block"},"askUser"),projectRoot:P??process.cwd(),getCurrentProviderName:o(()=>de.current.provider,"getCurrentProviderName"),getCurrentModel:o(()=>de.current.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>de.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:ke,log:o((W,le)=>{W==="warn"?console.warn(Xe.yellow(le)):console.log(Xe.dim(le))},"log"),onEngineChange:o(W=>{X.current?.(W)},"onEngineChange"),extraCollectors:[Eu]});try{let W=process.stdout,le=process.stdin;import("./paste-FDYM7SZX.js").then(Pe=>Pe.prunePasteTmpDir()).catch(()=>{});let q=!1,{waitUntilExit:Be,cleanup:pt}=hd(ae(tN,{options:e,config:D,context:Me,storage:t,compactionInfo:ce,rendererMode:r,fullscreenPolicy:i,autoModeBootstrap:De,setAutoModeAskUser:o(Pe=>{oe.current=Pe},"setAutoModeAskUser"),setAutoModeEngineChange:o(Pe=>{X.current=Pe},"setAutoModeEngineChange"),setCurrentConfigRef:o(Pe=>{de.current=Pe},"setCurrentConfigRef"),teamModeHandle:C,onExit:o(()=>{q=!0},"onExit")}),{stdout:W,stdin:le,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:i.enabled?i.promptShell:"main-screen"});await Be(),pt(),C?.shutdown(),le.isTTY===!0&&typeof le.setRawMode=="function"&&le.isRaw&&le.setRawMode(!1),le.pause?.(),le.unref?.(),q&&console.log(Xe.dim(`
171
+ `)},"onPopPendingInputs"),prompt:">",placeholder:lv({isLoading:L,canQueueFollowUps:np,waitingReason:kp}),focus:!rt&&!$e&&!ut,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:jR}),inlineSuggestions:XR,helpSurface:_y?ae(Ah,{sections:Ef()}):void 0,taskBar:Ua?ae(cf,{items:Ui.backgroundTask.items,overflowLabel:Ui.backgroundTask.overflowLabel,ctaHint:Ui.backgroundTask.ctaHint,showSpinner:L}):void 0,statusLine:ae(E,{children:ae(zs,{...Jl,viewModel:ax})}),inlineDialogs:JR}),sE=ae(Zd,{left:ae(Jd,{items:lx}),right:ae(Qd,{items:ux}),stashNotice:ae(af,{text:eu}),notifications:ae(sf,{notifications:Zl}),composer:ae(G0,{searchActive:ut,selectionActive:!!(Br||tt),showAllActive:Pt,searchQuery:an,searchCurrent:Ot.length>0?fo+1:0,searchCount:Ot.length,searchDetailText:Ip,pendingLiveUpdates:Na,secondaryText:zR}),taskBar:Ua?ae(cf,{items:Ui.backgroundTask.items,overflowLabel:Ui.backgroundTask.overflowLabel,ctaHint:Ui.backgroundTask.ctaHint,showSpinner:dt}):void 0,statusLine:ae(E,{children:ae(zs,{...Jl,viewModel:Rp})})}),Up=K(u=>ae(V0,{banner:u?.bannerVisible?ae(Vg,{...Vo}):void 0,items:Ha,isLoading:cn,viewportRows:Gt.messageRows,viewportWidth:P,scrollOffset:Yn,windowed:!!u?.rendererWindow,rendererWindow:u?.rendererWindow,transcriptModel:u?.rendererWindow?Fa:bx,maxLines:Rt,selectedTextRanges:xp?Il?.rowRanges:void 0,onMetricsChange:nu,onVisibleRowsChange:ru}),[Vo,Ha,cn,nu,ru,Yn,bx,P,Rt,Il?.rowRanges,Gt.messageRows,xp]),Gp=K(u=>ae(K0,{banner:u?.bannerVisible?ae(Vg,{...Vo}):void 0,items:Ba,browse:{hintText:po.browseHintText},selection:tu,search:tx,isLoading:dt,isThinking:Te.isThinking,thinkingCharCount:Te.thinkingCharCount,thinkingContent:Te.thinkingContent,streamingResponse:Te.currentResponse,currentTool:Te.currentTool,activeToolCalls:Te.activeToolCalls,toolInputCharCount:Te.toolInputCharCount,toolInputContent:Te.toolInputContent,iterationHistory:Te.iterationHistory,currentIteration:Te.currentIteration,isCompacting:Te.isCompacting,agentMode:_.agentMode,managedPhase:dt?z?.phase:void 0,managedHarnessProfile:dt?z?.harnessProfile:void 0,managedWorkerTitle:dt?z?.activeWorkerTitle:void 0,managedRound:dt?z?.currentRound:void 0,managedMaxRounds:dt?z?.maxRounds:void 0,managedGlobalWorkBudget:dt?z?.globalWorkBudget:void 0,managedBudgetUsage:dt?z?.budgetUsage:void 0,managedBudgetApprovalRequired:dt?z?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Te.lastLiveActivityLabel,liveStatusLines:Fi,viewportRows:Gt.messageRows,viewportWidth:P,scrollOffset:Yn,windowed:!!u?.windowed,animateSpinners:!!u?.rendererWindow&&Vi,rendererWindow:u?.rendererWindow,transcriptModel:u?.rendererWindow?Fa:Vl,maxLines:Rt,showDetailedTools:Pt,showAllContent:Pt,selectedItemId:On.selectionEnabled?tt:void 0,selectedTextRanges:$r?.rowRanges,expandedItemKeys:On.selectionEnabled?In:void 0,onMetricsChange:nu,onVisibleRowsChange:ru}),[Vo,_.agentMode,dt,In,s.transcriptSpinnerAnimation,nu,ru,Yn,Wy,z?.activeWorkerTitle,z?.budgetApprovalRequired,z?.budgetUsage,z?.currentRound,z?.globalWorkBudget,z?.harnessProfile,z?.maxRounds,z?.phase,Fa,Vl,po.browseHintText,tt,tu,P,Vi,Ba,Rt,Te.activeToolCalls,Te.currentIteration,Te.currentResponse,Te.currentTool,Te.isCompacting,Te.isThinking,Te.iterationHistory,Te.lastLiveActivityLabel,Te.thinkingCharCount,Te.thinkingContent,Te.toolInputCharCount,Te.toolInputContent,Fi,$r?.rowRanges,tx,Pt,Gt.messageRows]),aE=Z?Gp({bannerVisible:!1,windowed:Et}):Up({bannerVisible:!1}),qx=Z?sE:iE,cE=s.enabled&&Go,Jx=wn(E,{flexDirection:"column",width:P,flexShrink:0,flexGrow:cE?1:0,children:[ae(lg,{currentConfig:_,setCurrentConfig:xe,isLoading:L,abort:X,stopThinking:W,clearThinkingContent:le,setCurrentTool:q,setIsLoading:V,onToggleHelp:FR,setShowHelp:Ly,onSetThinking:o(u=>{Le.current.thinking=u},"onSetThinking"),onSetReasoningMode:o(u=>{Le.current.reasoningMode=u,Le.current.thinking=u!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:QR,onOpenTranscriptSearch:Pp,canOpenTranscriptSearch:Z&&!rt&&!$e,isInteractiveDialogActive:!!(rt||$e),onSetAgentMode:o(u=>{Le.current.agentMode=u},"onSetAgentMode"),onSetPermissionMode:o(u=>{Bp(u)},"onSetPermissionMode"),isInputEmpty:Ca,onSavePermissionMode:_S}),xt&&(s.enabled?null:ae(Ds,{items:[1],children:o(()=>ae(Vg,{...Vo},"banner"),"children")})),Go?ae(bh,{width:P,stickyHeader:po.stickyHeader,jumpToLatest:po.jumpToLatest,transcript:!s.enabled||!Et?Z?Gp({bannerVisible:!1}):Up({bannerVisible:!1}):void 0,renderTranscriptWindow:s.enabled&&Et?u=>(()=>{let x=za(u).contentWindow;return Z?Gp({bannerVisible:!1,windowed:!0,rendererWindow:x}):Up({bannerVisible:!1,rendererWindow:x})})():void 0,overlay:Dp,scrollTop:Yn,scrollHeight:Ka,viewportHeight:Gt.messageRows,stickyScroll:!Z&&!dr&&ip,overscanRows:qD,scrollRef:RR,onWindowChange:qR,onScrollTopChange:MR,onStickyChange:AR,footer:qx}):wn($D,{children:[wn(E,{flexDirection:"column",flexGrow:1,children:[aE,Dp?ae(E,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:Dp}):null]}),qx]})]});return yp?ae(Um,{mouseTracking:lo.usesRendererMouseTracking,children:Jx}):Jx},"InkREPLInner"),tN=o(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return ae(nf,{children:ae(uf,{children:ae(bd,{children:ae(ag,{children:ae(th,{cwd:t,gitRoot:n,children:ae(eN,{...e})})})})})})},"InkREPL");function nN(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}o(nN,"isRawModeSupported");async function Yg(e){if(!nN())throw new Kp("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 Qs,n=ii(),r=si(),i=ai(n,r),{prepareRuntimeConfig:s,getGitRoot:a}=await import("./utils-47QI5MSP.js"),{loadCompactionConfig:c}=await import("./compaction-config-GESEZQVA.js"),{resolveProvider:l}=await import("./dist-W3OOJP66.js"),d=s(),f=e.provider??d.provider??du,p=e.model??d.model,m=BD(e,d),g=HD(e,d),S=Ru(e,d),w=e.agentMode??d.agentMode??"ama",I=m!=="off",T=oc(d.permissionMode,"accept-edits")??"accept-edits",v=wu(),A=d.repoIntelligenceTrace===!0,D={provider:f,model:p,effort:g,effortOverride:S,planModeEffort:d.planModeEffort,thinking:I,reasoningMode:m,agentMode:w,permissionMode:T,repoIntelligenceMode:v.mode,repoIntelligenceTrace:A},N=e.session?.id,O=[],G,Y,re,me,ue,y="",P=await a().catch(()=>null)??void 0,C=fu({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(C){let W=o(()=>{C.shutdown()},"teamModeCleanup");process.on("exit",W),process.on("SIGTERM",W)}try{let{bootstrapConstructionRuntime:W}=await import("./construction-bootstrap-OSXHEIBB.js"),le=await W(P??process.cwd());if(le.loaded>0||le.failed>0||le.tampered>0){let q=le.failed>0?`; ${le.failed} failed (see warnings above)`:"",Be=le.tampered>0?`; ${le.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";console.log(Xe.dim(`[Constructed] Rehydrated ${le.loaded} active tool(s)${q}${Be}.`))}if(le.markdownLoaded>0||le.markdownFailures.length>0){console.log(Xe.dim(`[Agents] Loaded ${le.markdownLoaded} markdown agent(s).`));for(let q of le.markdownFailures)console.warn(Xe.yellow(`[Agents] Skipped ${q.path}: ${q.reason}`))}}catch(W){console.warn(Xe.yellow(`[Constructed] Bootstrap failed: ${W.message}. Self-construction disabled this session.`))}let ce;try{let W=await c(P),le=l(f);ce={contextWindow:W.contextWindow??le.getContextWindow?.()??2e5,triggerPercent:W.triggerPercent,enabled:W.enabled,userOverrideContextWindow:W.contextWindow}}catch{}if(e.session?.id&&!e.session.resume){let W=await t.load(e.session.id);W&&(O=W.messages,G=Mo(W.uiHistory),Y=W.lineage,re=W.artifactLedger,me=W.extensionState,ue=W.extensionRecords,y=W.title,N=e.session.id,e={...e,session:{...e.session??{},id:N,tag:W.tag}},console.log(Xe.green(`[Session loaded: ${N}]`)))}else if(e.session?.resume||e.session?.autoResume){let W=await t.list(P);if(W.length>0){let le=W[0];if(le){let q=await t.load(le.id);q&&(O=q.messages,G=Mo(q.uiHistory),Y=q.lineage,re=q.artifactLedger,me=q.extensionState,ue=q.extensionRecords,y=q.title,N=le.id,e={...e,session:{...e.session??{},tag:q.tag}},console.log(Xe.green(`[Continuing session: ${le.id}]`)))}}}let Me=await Xc({sessionId:N,gitRoot:P,existingMessages:O,existingUiHistory:G,existingLineage:Y,existingArtifactLedger:re,existingExtensionState:me,existingExtensionRecords:ue});Me.title=y,C?.writer.update({sessionId:Me.sessionId});let oe={current:null},X={current:null},de={current:D},ke=Mu(),De=await qc({askUser:o(async(W,le,q)=>{let Be=oe.current;return Be?Be(W,le,q):"block"},"askUser"),projectRoot:P??process.cwd(),getCurrentProviderName:o(()=>de.current.provider,"getCurrentProviderName"),getCurrentModel:o(()=>de.current.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>de.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:ke,log:o((W,le)=>{W==="warn"?console.warn(Xe.yellow(le)):console.log(Xe.dim(le))},"log"),onEngineChange:o(W=>{X.current?.(W)},"onEngineChange"),extraCollectors:[Eu]});try{let W=process.stdout,le=process.stdin;import("./paste-FDYM7SZX.js").then(Pe=>Pe.prunePasteTmpDir()).catch(()=>{});let q=!1,{waitUntilExit:Be,cleanup:pt}=hd(ae(tN,{options:e,config:D,context:Me,storage:t,compactionInfo:ce,rendererMode:r,fullscreenPolicy:i,autoModeBootstrap:De,setAutoModeAskUser:o(Pe=>{oe.current=Pe},"setAutoModeAskUser"),setAutoModeEngineChange:o(Pe=>{X.current=Pe},"setAutoModeEngineChange"),setCurrentConfigRef:o(Pe=>{de.current=Pe},"setCurrentConfigRef"),teamModeHandle:C,onExit:o(()=>{q=!0},"onExit")}),{stdout:W,stdin:le,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:i.enabled?i.promptShell:"main-screen"});await Be(),pt(),C?.shutdown(),le.isTTY===!0&&typeof le.setRawMode=="function"&&le.isRaw&&le.setRawMode(!1),le.pause?.(),le.unref?.(),q&&console.log(Xe.dim(`
172
172
  [Exiting KodaX...]`));let ge=e.hardExitOnClose??process.env.VITEST!=="true";if(q&&ge){let Pe=process.exitCode??0,Ct=!1,It=o(()=>{Ct||(Ct=!0,process.exit(Pe))},"requestProcessExit");setTimeout(It,0).unref?.(),W.write("",It);return}}catch(W){throw W instanceof Error&&W.message.includes("Raw mode")?new Kp("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):W}}o(Yg,"runInkInteractiveMode");import ln from"chalk";var Vv=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Kv=["\x1B[36m","\x1B[35m","\x1B[34m"],il=null,da=!1;function ol(){let e=0,t=0,n=!1,r="Thinking...",i=o(()=>{if(n)return;let c=Kv[t%Kv.length],l="\x1B[0m",d=Vv[e%Vv.length];process.stdout.write(`\r${c}${d}${l} ${r}`)},"renderFrame"),s=setInterval(()=>{e++,e%10===0&&t++,i()},80);i();let a={stop:o(()=>{n||(n=!0,clearInterval(s),process.stdout.write("\r\x1B[K"))},"stop"),isStopped:o(()=>n,"isStopped"),updateText:o(c=>{r=c},"updateText")};return il=a,a}o(ol,"startWaitingDots");function rN(e=!0){let t=null,n=0,r=!1;return{onSessionStart:o(s=>{console.log(e?ln.cyan(`[KodaX] Provider: ${s.provider} | Session: ${s.sessionId}`):ln.cyan(`[KodaX] Provider: ${s.provider}`))},"onSessionStart"),onTextDelta:o(s=>{t&&(t.stop(),t=null),n=0,process.stdout.write(s),r=!0},"onTextDelta"),onThinkingDelta:o(s=>{n+=s.length,t||(t=ol()),t.updateText(`Thinking... (${n} chars)`)},"onThinkingDelta"),onThinkingEnd:o(s=>{if(t&&(t.stop(),t=null),s){let a=s.replace(/\n/g," "),c=a.length>100?a.slice(0,100)+"...":a;console.log(ln.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:o(s=>{t||(da||(process.stdout.write(`
173
173
  `),da=!0),t=ol()),t.updateText(`Executing ${s.name}...`)},"onToolUseStart"),onToolInputDelta:o((s,a,c)=>{let l=a.length;t&&!t.isStopped()?t.updateText(`Receiving ${s}... (${l} chars)`):(!t||t.isStopped())&&(da||(process.stdout.write(`
174
174
  `),da=!0,r=!1),t=ol(),t.updateText(`Receiving ${s}... (${l} chars)`))},"onToolInputDelta"),onToolResult:o(s=>{t&&(t.stop(),t=null),console.log(ln.green(`[Result] ${s.content.slice(0,300)}${s.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:o(s=>{t&&(t.stop(),t=null),console.log(ln.dim(`[RepoIntel] ${s.summary}`))},"onRepoIntelligenceTrace"),onSidecarMessage:o(s=>{t&&(t.stop(),t=null);let a=s.delivery==="budget-exhausted"?"\u26A1 Sidecar Verifier \u2014 budget exhausted":s.verdict==="blocked"?"\u26A1 Sidecar Verifier \u2014 blocked":"\u26A1 Sidecar Verifier \u2014 revise",c=s.suggestedFix?`${s.content}
@@ -210,7 +210,7 @@ ${t}`),console.log("\u2500".repeat(t.length)),n.forEach((r,i)=>{console.log(` $
210
210
  `+c)),console.log(""),console.log(l(i.colors.primary)+Ve.hex(i.colors.primary)("AI Coding Agent \xB7 Minimalist & Intelligent")),console.log(l(i.colors.success)+Ve.bold.hex(i.colors.text)(`v${ds}`)+d+Ve.hex(i.colors.success)(`${e.provider}:${s}`)+d+Ve.hex(i.colors.primary)(e.agentMode.toUpperCase())+Ve.hex(i.colors.dim)(" / ")+Ve.hex(i.colors.accent)(t)+Ve.hex(i.colors.dim)(" \xB7 ")+Ve.hex(i.colors.warning)(`effort:${a}`)),n){let f=Math.round(n.contextWindow/1e3),p=Math.round(n.contextWindow*n.triggerPercent/100/1e3),m=n.enabled?Ve.hex(i.colors.success)("on"):Ve.hex(i.colors.secondary)("off");console.log(l(i.colors.accent)+Ve.hex(i.colors.secondary)(`ctx ${f}k \xB7 compaction `)+m+Ve.hex(i.colors.secondary)(` @ ${n.triggerPercent}% (${p}k)`))}r&&console.log(l(i.colors.secondary)+Ve.hex(i.colors.secondary)(`${r.length} project rule file(s) loaded \u2014 `)+Ve.hex(i.colors.dim)("/reload to refresh")),console.log(""),console.log(Ve.hex(i.colors.dim)(" Quick tips:")),console.log(Ve.hex(i.colors.primary)(" /help ")+Ve.hex(i.colors.dim)("Show all commands")),console.log(Ve.hex(i.colors.primary)(" /mode ")+Ve.hex(i.colors.dim)("Switch permission mode")),console.log(Ve.hex(i.colors.primary)(" /clear ")+Ve.hex(i.colors.dim)("Clear conversation")),console.log(Ve.hex(i.colors.primary)(" @path ")+Ve.hex(i.colors.dim)("Attach image to context")),console.log(Ve.hex(i.colors.primary)(" !cmd ")+Ve.hex(i.colors.dim)("Run read-only shell command")),console.log(Ve.hex(i.colors.dim)(`
211
211
  Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
212
212
  `))}o(xk,"printStartupBanner");async function ON(e){return(await pu(e)).getSystemPromptSnippet()}o(ON,"buildClassicCliSkillsPrompt");var ty=class{static{o(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t),i=Dt(n.messages,n.lineage??r?.data.lineage);this.sessions.set(t,{createdAt:r?.createdAt??new Date().toISOString(),data:{...structuredClone(n),scope:n.scope??r?.data.scope??"user",uiHistory:n.uiHistory??r?.data.uiHistory,extensionState:n.extensionState??r?.data.extensionState,extensionRecords:n.extensionRecords??r?.data.extensionRecords,tag:n.tag??r?.data.tag,lineage:i}})}async load(t){return structuredClone(this.sessions.get(t)?.data??null)}async getLineage(t){return structuredClone(this.sessions.get(t)?.data.lineage??null)}async setActiveEntry(t,n,r){let i=this.sessions.get(t);if(!i?.data.lineage)return null;let s=is(i.data.lineage,n,r);if(!s)return null;let a={...structuredClone(i.data),messages:Nt(s),lineage:s};return this.sessions.set(t,{...i,data:a}),structuredClone(a)}async setLabel(t,n,r){let i=this.sessions.get(t);if(!i?.data.lineage)return null;let s=ss(i.data.lineage,n,r);if(!s)return null;let a={...structuredClone(i.data),lineage:s};return this.sessions.set(t,{...i,data:a}),structuredClone(a)}async fork(t,n,r){let i=this.sessions.get(t);if(!i?.data.lineage)return null;let s=ls(i.data.lineage,n);if(!s)return null;let a=r?.sessionId??await os(),c={messages:Nt(s),title:r?.title??i.data.title,gitRoot:i.data.gitRoot,tag:i.data.tag,runtimeInfo:i.data.runtimeInfo?structuredClone(i.data.runtimeInfo):void 0,scope:i.data.scope??"user",extensionState:i.data.extensionState?structuredClone(i.data.extensionState):void 0,extensionRecords:i.data.extensionRecords?structuredClone(i.data.extensionRecords):void 0,lineage:s};return this.sessions.set(a,{createdAt:new Date().toISOString(),data:c}),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let r=this.sessions.get(t);if(!r?.data.lineage)return null;let i=n??as(r.data.lineage);if(!i)return null;let s=cs(r.data.lineage,i);if(!s)return null;let a={...r.data,messages:Nt(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?qo(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 Zg(e,t,n){e.runtimeInfo=n,e.gitRoot=n?.workspaceRoot??e.gitRoot,t.context={...t.context,gitRoot:e.gitRoot,executionCwd:n?.executionCwd??process.cwd()}}o(Zg,"applyRuntimeContext");function Vf(e,t){let n=t.runtimeSessionSnapshot;n&&("extensionState"in n&&(e.extensionState=n.extensionState?structuredClone(n.extensionState):{},e.extensionStateDirty=!0),"extensionRecords"in n&&(e.extensionRecords=n.extensionRecords?.map(r=>({...r}))??[],e.extensionRecordsDirty=!0))}o(Vf,"applyRuntimeSessionSnapshot");function Do(e){return{...e.extensionStateDirty?{extensionState:e.extensionState??{}}:{},...e.extensionRecordsDirty?{extensionRecords:e.extensionRecords??[]}:{}}}o(Do,"contextExtensionSessionData");function ma(e){e.extensionStateDirty=!1,e.extensionRecordsDirty=!1}o(ma,"markExtensionSessionPersisted");function DN(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}o(DN,"resolveInitialReasoningMode");function NN(e,t){return e.effort??t.effort}o(NN,"resolveInitialEffort");var ny={current:null};async function BN(e){let t=await gs({cwd:process.cwd()}),n=t.workspaceRoot??await ei()??void 0,r=e.storage??new ty;import("./paste-FDYM7SZX.js").then(M=>M.prunePasteTmpDir()).catch(()=>{});let i=fu({meta:{cwd:process.cwd(),startedAt:Date.now()}}),s=Jp(),a=e.provider??s.provider??du,c=e.model??s.model,l=DN(e,s),d=NN(e,s),f=Ru(e,s),p=e.agentMode??s.agentMode??"ama",m=l!=="off",g=oc(s.permissionMode,"accept-edits")??"accept-edits",S=ku();g==="auto-in-project"&&S();let w=wu(),I=s.theme;I&&ul(I);let T=Ii(),v={provider:a,model:c,effort:d,effortOverride:f,planModeEffort:s.planModeEffort,thinking:m,reasoningMode:l,agentMode:p,permissionMode:g,repoIntelligenceMode:w.mode,repoIntelligenceTrace:w.trace,fallbackProviders:s.fallbackProviders},A=g,D=ms(),N=o(()=>ps(v),"resolveCurrentEffort"),O=o(M=>Zo({provider:M?.provider??v.provider,model:M?.model??v.model,effort:v.effort,effortOverride:v.effortOverride,permissionMode:M?.permissionMode??v.permissionMode,planModeEffort:v.planModeEffort,thinking:v.thinking,reasoningMode:v.reasoningMode}),"resolveCurrentRuntimeEffort"),G=o(M=>{let L=O(M);return xr({provider:M?.provider??v.provider,model:M?.model??v.model,effort:L.configuredEffort,effortOverride:v.effortOverride,thinking:v.thinking,reasoningMode:v.reasoningMode})},"formatCurrentReasoningEffortLabel"),Y=0,re="",me=!1,ue=500,y=await Xc({sessionId:e.session?.id,gitRoot:n,runtimeInfo:t});y.skillDynamicContext=e.skillDynamicContext,i?.writer.update({sessionId:y.sessionId});let P=o(M=>_o(v,M,(L,V,_)=>{console.log((L==="block"?ie.red:ie.yellow)(`
213
- ${V}`));for(let xe of _)console.log(ie.dim(xe));console.log()}),"guardSessionTransition"),C=await PS(n??void 0),{resolveProvider:ce}=await import("./dist-7PXDYX2R.js"),Me=ce(v.provider),oe=C.contextWindow??Me.getEffectiveContextWindow?.(v.model)??Me.getContextWindow?.()??2e5,{loadAgentsFiles:X}=await import("./dist-7PXDYX2R.js"),de=o(async()=>X({cwd:process.cwd(),projectRoot:y.gitRoot??void 0}),"reloadAgentsFiles"),ke=await de();xk(v,v.permissionMode,{contextWindow:oe,triggerPercent:C.triggerPercent,enabled:C.enabled},ke),yk(t);let De=ew(()=>y.gitRoot??process.cwd()),W=Sk.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:o((M,L)=>{De(M).then(V=>{L(null,V)}).catch(()=>{L(null,[[],M])})},"completer")}),le=Mu(),q=await qc({askUser:o(async(M,L,V)=>(await ll(W,M.name,{...M.input,...V&&V.length>0?{_classifierSignals:V}:{}},{permissionMode:A,reason:`[auto-mode] ${L}`})).confirmed?"allow":"block","askUser"),projectRoot:n??process.cwd(),getCurrentProviderName:o(()=>v.provider,"getCurrentProviderName"),getCurrentModel:o(()=>v.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>A,"getCurrentPermissionMode"),autoModeSettings:le,log:o((M,L)=>{M==="warn"?console.warn(ie.yellow(L)):console.log(ie.dim(L))},"log"),onEngineChange:o(M=>{pn(A)&&ge?.update({autoModeEngine:M})},"onEngineChange"),extraCollectors:[Eu]}),Be=Iu({getProvider:o(()=>ce(v.provider),"getProvider"),getModel:o(()=>v.model??"","getModel")}),pt=v.model??Wn(v.provider)??v.provider,ge=null;lk()&&(ge=new Uf(ck(y.sessionId,v.permissionMode,v.provider,pt,v.reasoningMode,N(),G({model:pt}))),pn(A)&&ge.update({autoModeEngine:q.getGuardrail().getEngine()}));let Pe=`
213
+ ${V}`));for(let xe of _)console.log(ie.dim(xe));console.log()}),"guardSessionTransition"),C=await PS(n??void 0),{resolveProvider:ce}=await import("./dist-W3OOJP66.js"),Me=ce(v.provider),oe=C.contextWindow??Me.getEffectiveContextWindow?.(v.model)??Me.getContextWindow?.()??2e5,{loadAgentsFiles:X}=await import("./dist-W3OOJP66.js"),de=o(async()=>X({cwd:process.cwd(),projectRoot:y.gitRoot??void 0}),"reloadAgentsFiles"),ke=await de();xk(v,v.permissionMode,{contextWindow:oe,triggerPercent:C.triggerPercent,enabled:C.enabled},ke),yk(t);let De=ew(()=>y.gitRoot??process.cwd()),W=Sk.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:o((M,L)=>{De(M).then(V=>{L(null,V)}).catch(()=>{L(null,[[],M])})},"completer")}),le=Mu(),q=await qc({askUser:o(async(M,L,V)=>(await ll(W,M.name,{...M.input,...V&&V.length>0?{_classifierSignals:V}:{}},{permissionMode:A,reason:`[auto-mode] ${L}`})).confirmed?"allow":"block","askUser"),projectRoot:n??process.cwd(),getCurrentProviderName:o(()=>v.provider,"getCurrentProviderName"),getCurrentModel:o(()=>v.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>A,"getCurrentPermissionMode"),autoModeSettings:le,log:o((M,L)=>{M==="warn"?console.warn(ie.yellow(L)):console.log(ie.dim(L))},"log"),onEngineChange:o(M=>{pn(A)&&ge?.update({autoModeEngine:M})},"onEngineChange"),extraCollectors:[Eu]}),Be=Iu({getProvider:o(()=>ce(v.provider),"getProvider"),getModel:o(()=>v.model??"","getModel")}),pt=v.model??Wn(v.provider)??v.provider,ge=null;lk()&&(ge=new Uf(ck(y.sessionId,v.permissionMode,v.provider,pt,v.reasoningMode,N(),G({model:pt}))),pn(A)&&ge.update({autoModeEngine:q.getGuardrail().getEngine()}));let Pe=`
214
214
  Keyboard Shortcuts:
215
215
  Tab Auto-complete (@paths, /commands)
216
216
  Esc+Esc Edit last message
@@ -1,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{Ab as Te,Bb as X,Cb as Ee,Db as Ae,Fa as We,Jc as Pe,Kc as Oe}from"./chunk-QFCF3GNT.js";import{N as ge}from"./chunk-S4GVQO3W.js";import{Va as G,Zd as ve,_d as Se,ae as F,ce as z,db as ye,ie as J,je as W,ke as H,le as xe,se as Me,te as Re,ue as be}from"./chunk-4K5BDO7S.js";import{B as ke}from"./chunk-ZL5CEANW.js";import{a}from"./chunk-V4WSBIXB.js";import{basename as bn,dirname as Wn}from"node:path";import{execFile as yt}from"node:child_process";import j from"node:path";import{promisify as vt}from"node:util";var St=vt(yt),xt=1e4,De=2,Fe=new Set(["write","edit","multi_edit","insert_after_anchor"]),Mt=/^\s*(?:let me|i will|i'll|i am going to)\b[\s\S]{0,120}\b(?:start|create|implement|write|build|plan)\b|^\s*(?:我将|让我|接下来)[\s\S]{0,80}(?:开始|创建|编写|实现|制定)/i;function Rt(e){if(e?.timeoutMs!==void 0){if(!Number.isFinite(e.timeoutMs)||e.timeoutMs<=0)throw new Error("workflow wait timeoutMs must be a positive number");return Math.floor(e.timeoutMs)}}a(Rt,"normalizeWaitTimeoutMs");function Y(e){return e?.requiresMutation===!0||(e?.requiredChangedPaths?.length??0)>0}a(Y,"hasVerificationWork");function T(e){return e.replace(/\\/g,"/").replace(/^\.\//,"").trim()}a(T,"normalizeWorkspacePath");function bt(e,t){let n=t.gitRoot?j.resolve(t.gitRoot):void 0,o=j.isAbsolute(e)&&n?j.relative(n,j.resolve(e)):e;return T(o)}a(bt,"normalizeRequiredPath");function Wt(e){let t=(e.readOnly??!1)===!1?{enforcement:"warn",requiresMutation:!0,rejectPreparatoryFinalText:!0}:void 0;if(e.verification!==void 0){let n={...t??{},...e.verification,enforcement:e.verification.enforcement??"hard"},o=e.verification.requiredChangedPaths;return{verification:{...n,...o!==void 0&&o.length>0&&n.requiresMutation===void 0?{requiresMutation:!0}:{}}}}return{verification:t}}a(Wt,"resolveVerificationForInput");function Tt(e,t){if(t===!0&&e.readOnly===!1)throw new Error(`workflow manifest readOnly=true cannot spawn write-capable child "${e.name}"; set the workflow manifest readOnly=false or use child readOnly:true`);let n=e.readOnly??t??!1;return e.readOnly===n?e:{...e,readOnly:n}}a(Tt,"resolveSpawnAgentInput");function _e(e){let t=e.trim();return t.length>0&&Mt.test(t)}a(_e,"isPreparatoryOnlyText");function Et(e,t){let n=e.trim(),o=t?.trim();return o&&(n.length===0||_e(n))?o:e}a(Et,"selectWorkflowFinalText");async function B(e,t){return(await St("git",[...e],{cwd:t,timeout:xt,windowsHide:!0,maxBuffer:4194304})).stdout.toString()}a(B,"runGit");async function At(e){let t=e.gitRoot??e.executionCwd??process.cwd(),n=(await B(["rev-parse","--show-toplevel"],t)).trim(),o=await Promise.all([B(["diff","--name-only","--"],n),B(["diff","--cached","--name-only","--"],n),B(["ls-files","--others","--exclude-standard"],n)]);return[...new Set(o.flatMap(i=>i.split(/\r?\n/)).map(T).filter(i=>i.length>0))]}a(At,"listGitChangedFiles");async function Z(e,t){try{return{paths:(await t(e)).map(T).filter(o=>o.length>0)}}catch(n){return{paths:[],error:n instanceof Error?n.message:String(n)}}}a(Z,"captureChangedPaths");function Pt(){return{toolNameById:new Map,toolPathById:new Map,succeededToolCalls:[],succeededPaths:[]}}a(Pt,"createMutationRecorder");function Ot(e){if(e)for(let t of["path","file_path","target_path"]){let n=e[t];if(typeof n=="string"&&n.trim().length>0)return T(n)}}a(Ot,"readMutationPath");function Ft(e,t){return{...e??{},onToolUseStart:a((n,o)=>{if(Fe.has(n.name)){t.toolNameById.set(n.id,n.name);let i=Ot(n.input);i!==void 0&&t.toolPathById.set(n.id,i)}e?.onToolUseStart?.(n,o)},"onToolUseStart"),onToolResult:a((n,o)=>{let i=t.toolNameById.get(n.id)??n.name;if(Fe.has(i)&&!n.content.trimStart().startsWith("[Tool Error]")){t.succeededToolCalls.push(i);let r=t.toolPathById.get(n.id);r!==void 0&&t.succeededPaths.push(r)}e?.onToolResult?.(n,o)},"onToolResult")}}a(Ft,"wrapEventsForMutationRecording");function Q(e){return[...new Set(e.filter(t=>t.trim().length>0))]}a(Q,"uniqueItems");function Ie(e){let t=e.verification;if(!t)return;let n=[],o=new Set(e.before.paths.map(T)),i=Q(e.after.paths.map(T)),r=i.filter(m=>!o.has(m)),s=Q(e.mutationRecorder.succeededToolCalls),c=e.acceptToolMutationEvidence?s:[],p=e.acceptToolMutationEvidence?Q(e.mutationRecorder.succeededPaths.map(T)):[],l=r.length>0||c.length>0,h=t.enforcement??"hard",v=(t.requiredChangedPaths??[]).map(m=>bt(m,e.ctx));t.requiresMutation===!0&&(e.before.error!==void 0||e.after.error!==void 0?n.push(`workspace mutation verification could not read changed files: ${e.after.error??e.before.error}`):l||n.push(e.acceptToolMutationEvidence||s.length===0?"expected file mutations, but no new workspace changes or successful write tools were observed":"write tools ran in an isolated worktree, but no main workspace changes were present after cleanup")),e.term.limitReached===!0&&!l&&n.push("workflow child reached its iteration limit before satisfying the task");for(let m of v)!i.includes(m)&&!p.includes(m)&&n.push(`required changed path was not present in workspace changes: ${m}`);let k=t.minFinalTextChars;return k!==void 0&&!l&&e.term.finalText.trim().length<k&&n.push(`finalText was shorter than the required ${k} characters`),t.rejectPreparatoryFinalText===!0&&!l&&_e(e.term.finalText)&&n.push("finalText looks preparatory instead of terminal"),{ok:n.length===0,enforcement:h,reasons:n,changedPaths:i,mutationToolCalls:s,mutationEvidence:l}}a(Ie,"evaluateVerification");function ee(e,t){if(t.ok)return e;let o=[t.enforcement==="warn"?"[Workflow task completed without verification]":"[Workflow task verification failed]",...t.reasons.map(i=>`- ${i}`)].join(`
2
+ import{Ab as Te,Bb as X,Cb as Ee,Db as Ae,Fa as We,Jc as Pe,Kc as Oe}from"./chunk-7COB3EKF.js";import{N as ge}from"./chunk-S4GVQO3W.js";import{Va as G,Zd as ve,_d as Se,ae as F,db as ye,ee as z,ke as J,le as W,me as H,ne as xe,ue as Me,ve as Re,we as be}from"./chunk-NJW2LQOP.js";import{B as ke}from"./chunk-ZL5CEANW.js";import{a}from"./chunk-V4WSBIXB.js";import{basename as bn,dirname as Wn}from"node:path";import{execFile as yt}from"node:child_process";import j from"node:path";import{promisify as vt}from"node:util";var St=vt(yt),xt=1e4,De=2,Fe=new Set(["write","edit","multi_edit","insert_after_anchor"]),Mt=/^\s*(?:let me|i will|i'll|i am going to)\b[\s\S]{0,120}\b(?:start|create|implement|write|build|plan)\b|^\s*(?:我将|让我|接下来)[\s\S]{0,80}(?:开始|创建|编写|实现|制定)/i;function Rt(e){if(e?.timeoutMs!==void 0){if(!Number.isFinite(e.timeoutMs)||e.timeoutMs<=0)throw new Error("workflow wait timeoutMs must be a positive number");return Math.floor(e.timeoutMs)}}a(Rt,"normalizeWaitTimeoutMs");function Y(e){return e?.requiresMutation===!0||(e?.requiredChangedPaths?.length??0)>0}a(Y,"hasVerificationWork");function T(e){return e.replace(/\\/g,"/").replace(/^\.\//,"").trim()}a(T,"normalizeWorkspacePath");function bt(e,t){let n=t.gitRoot?j.resolve(t.gitRoot):void 0,o=j.isAbsolute(e)&&n?j.relative(n,j.resolve(e)):e;return T(o)}a(bt,"normalizeRequiredPath");function Wt(e){let t=(e.readOnly??!1)===!1?{enforcement:"warn",requiresMutation:!0,rejectPreparatoryFinalText:!0}:void 0;if(e.verification!==void 0){let n={...t??{},...e.verification,enforcement:e.verification.enforcement??"hard"},o=e.verification.requiredChangedPaths;return{verification:{...n,...o!==void 0&&o.length>0&&n.requiresMutation===void 0?{requiresMutation:!0}:{}}}}return{verification:t}}a(Wt,"resolveVerificationForInput");function Tt(e,t){if(t===!0&&e.readOnly===!1)throw new Error(`workflow manifest readOnly=true cannot spawn write-capable child "${e.name}"; set the workflow manifest readOnly=false or use child readOnly:true`);let n=e.readOnly??t??!1;return e.readOnly===n?e:{...e,readOnly:n}}a(Tt,"resolveSpawnAgentInput");function _e(e){let t=e.trim();return t.length>0&&Mt.test(t)}a(_e,"isPreparatoryOnlyText");function Et(e,t){let n=e.trim(),o=t?.trim();return o&&(n.length===0||_e(n))?o:e}a(Et,"selectWorkflowFinalText");async function B(e,t){return(await St("git",[...e],{cwd:t,timeout:xt,windowsHide:!0,maxBuffer:4194304})).stdout.toString()}a(B,"runGit");async function At(e){let t=e.gitRoot??e.executionCwd??process.cwd(),n=(await B(["rev-parse","--show-toplevel"],t)).trim(),o=await Promise.all([B(["diff","--name-only","--"],n),B(["diff","--cached","--name-only","--"],n),B(["ls-files","--others","--exclude-standard"],n)]);return[...new Set(o.flatMap(i=>i.split(/\r?\n/)).map(T).filter(i=>i.length>0))]}a(At,"listGitChangedFiles");async function Z(e,t){try{return{paths:(await t(e)).map(T).filter(o=>o.length>0)}}catch(n){return{paths:[],error:n instanceof Error?n.message:String(n)}}}a(Z,"captureChangedPaths");function Pt(){return{toolNameById:new Map,toolPathById:new Map,succeededToolCalls:[],succeededPaths:[]}}a(Pt,"createMutationRecorder");function Ot(e){if(e)for(let t of["path","file_path","target_path"]){let n=e[t];if(typeof n=="string"&&n.trim().length>0)return T(n)}}a(Ot,"readMutationPath");function Ft(e,t){return{...e??{},onToolUseStart:a((n,o)=>{if(Fe.has(n.name)){t.toolNameById.set(n.id,n.name);let i=Ot(n.input);i!==void 0&&t.toolPathById.set(n.id,i)}e?.onToolUseStart?.(n,o)},"onToolUseStart"),onToolResult:a((n,o)=>{let i=t.toolNameById.get(n.id)??n.name;if(Fe.has(i)&&!n.content.trimStart().startsWith("[Tool Error]")){t.succeededToolCalls.push(i);let r=t.toolPathById.get(n.id);r!==void 0&&t.succeededPaths.push(r)}e?.onToolResult?.(n,o)},"onToolResult")}}a(Ft,"wrapEventsForMutationRecording");function Q(e){return[...new Set(e.filter(t=>t.trim().length>0))]}a(Q,"uniqueItems");function Ie(e){let t=e.verification;if(!t)return;let n=[],o=new Set(e.before.paths.map(T)),i=Q(e.after.paths.map(T)),r=i.filter(m=>!o.has(m)),s=Q(e.mutationRecorder.succeededToolCalls),c=e.acceptToolMutationEvidence?s:[],p=e.acceptToolMutationEvidence?Q(e.mutationRecorder.succeededPaths.map(T)):[],l=r.length>0||c.length>0,h=t.enforcement??"hard",v=(t.requiredChangedPaths??[]).map(m=>bt(m,e.ctx));t.requiresMutation===!0&&(e.before.error!==void 0||e.after.error!==void 0?n.push(`workspace mutation verification could not read changed files: ${e.after.error??e.before.error}`):l||n.push(e.acceptToolMutationEvidence||s.length===0?"expected file mutations, but no new workspace changes or successful write tools were observed":"write tools ran in an isolated worktree, but no main workspace changes were present after cleanup")),e.term.limitReached===!0&&!l&&n.push("workflow child reached its iteration limit before satisfying the task");for(let m of v)!i.includes(m)&&!p.includes(m)&&n.push(`required changed path was not present in workspace changes: ${m}`);let k=t.minFinalTextChars;return k!==void 0&&!l&&e.term.finalText.trim().length<k&&n.push(`finalText was shorter than the required ${k} characters`),t.rejectPreparatoryFinalText===!0&&!l&&_e(e.term.finalText)&&n.push("finalText looks preparatory instead of terminal"),{ok:n.length===0,enforcement:h,reasons:n,changedPaths:i,mutationToolCalls:s,mutationEvidence:l}}a(Ie,"evaluateVerification");function ee(e,t){if(t.ok)return e;let o=[t.enforcement==="warn"?"[Workflow task completed without verification]":"[Workflow task verification failed]",...t.reasons.map(i=>`- ${i}`)].join(`
3
3
  `);return e.trim().length>0?`${e}
4
4
 
5
5
  ${o}`:o}a(ee,"appendVerificationFailure");function Ce(){return{ok:!1,enforcement:"warn",reasons:["workflow child reached its iteration limit before satisfying the task"],mutationEvidence:!1}}a(Ce,"limitReachedWarningVerification");function It(e){return e.entry.bundle.readOnly!==!0&&e.entry.repairAttempts<De&&e.term.status==="completed"&&e.verification!==void 0&&e.verification.ok!==!0&&e.verification.enforcement!=="warn"}a(It,"shouldRepairVerificationFailure");function Ct(e){let t=e.verification.reasons.map(o=>`- ${o}`).join(`
@@ -9,7 +9,7 @@ ${e.verification.changedPaths?.map(o=>`- ${o}`).join(`
9
9
  `)??""}`:"";return[e.originalPrompt,"","[Workflow verification repair]",`Repair attempt ${e.attempt}/${De}.`,"The previous attempt did not satisfy the workflow postconditions.","Do not stop at analysis, planning, or a promise to begin. Complete the required file writes in the real workspace now.","Use the available file editing tools when a file change is required, then report the exact files changed.","","Verification failures:",t,n,"","Previous terminal response:",e.previousFinalText.trim()||"(empty)"].join(`
10
10
  `)}a(Ct,"buildVerificationRepairPrompt");async function $e(e,t,n,o,i=n){if(n===void 0)return e;let r;try{return await Promise.race([e,new Promise((s,c)=>{r=setTimeout(()=>{o.childAbortControllers?.get(t)?.abort(),c(new Error(`workflow task ${t} timed out after ${i??n}ms`))},n)})])}finally{r&&clearTimeout(r)}}a($e,"waitForChildPromise");function Ne(e,t,n){return t.outputSchema!==void 0&&We(t.outputSchema),Oe(t.name,t.evidenceRefs,n),{id:e,fanoutClass:"evidence-scan",objective:t.prompt,readOnly:t.readOnly??!1,evidenceRefs:t.evidenceRefs?[...t.evidenceRefs]:[],constraints:[],...t.modelHint?{modelHint:t.modelHint}:{},...t.isolation?{isolation:t.isolation}:{},...t.subagentType?{specialistName:t.subagentType}:{},...t.outputSchema!==void 0?{outputSchema:t.outputSchema}:{},...t.effort?{effort:t.effort}:{}}}a(Ne,"buildBundle");function te(e,t){if(e.cancelledChildren.includes(t))return{status:"stopped",snapStatus:"aborted",finalText:""};let n=e.results[0],o=Et(n?.summary??"",n?.digest);return n?.status==="completed"?{status:"completed",snapStatus:"completed",finalText:o,...n.digest?{digest:n.digest}:{},...n.digestFailed?{digestFailed:!0}:{},...n.digestPending?{digestPending:!0}:{},...n.limitReached?{limitReached:!0}:{},...n.provider?{provider:n.provider}:{},...n.model?{model:n.model}:{},...n.structured!==void 0?{structured:n.structured}:{}}:{status:"failed",snapStatus:"failed",finalText:o,...n?.limitReached?{limitReached:!0}:{},...n?.provider?{provider:n.provider}:{},...n?.model?{model:n.model}:{}}}a(te,"deriveTerminal");function qe(e){let{ctx:t,childOptions:n}=e,o=e.runChild??Pe,i=e.queue??ke(),r=e.listChangedFiles??At,s=e.now??(()=>Date.now()),c=0,p=e.generateId??(()=>`wf-child-${c+=1}`),l=new Map,h=new Set,v=new Map,k=a(()=>e.onTaskSummary!==void 0||h.size>0,"hasTaskSummaryObservers"),m=a((d,g)=>{try{e.onTaskSummary?.(d,g)}catch{}for(let f of h)try{f(d,g)}catch{}},"notifyTaskSummary");return{spawn:a(async d=>{let g=Tt(d,e.defaultChildReadOnly),f=p(),S=Ne(f,g,new Set(l.keys())),O=Wt(g).verification,R=Pt(),D=g.isolation!=="worktree",u=Y(O)?Z(t,r):Promise.resolve({paths:[]}),w=t.childProgressSnapshots,x=a(async A=>{let he=new AbortController;t.childAbortControllers?.set(f,he),w&&Te(w,{childId:f,startedAt:s(),maxIterations:n.maxIterationsPerChild,parentRole:n.parentRole,readOnly:A.readOnly,specialistName:A.specialistName});let kt={...n,parentOptions:{...n.parentOptions,events:Ft(n.parentOptions.events,R)},maxParallel:1,workflowChild:!0,...e.runId!==void 0?{workflowCorrelation:{workflowRunId:e.runId,childAgentId:f,itemId:`agent:${f}`}}:{},childActivityName:g.name,workflowDigestMode:k()?"async":"blocking",...k()?{onWorkflowChildDigest:a(y=>{m(y.childId,{...y.digest?{summary:y.digest}:{},summaryKind:y.digest?"digest":"digest-failed",...y.totalTokensUsed>0?{usage:{totalTokens:y.totalTokensUsed}}:{}})},"onWorkflowChildDigest")}:{},abortSignal:he.signal,snapshotUpdater:w?y=>Ee(w,f,y):void 0},q;try{return await u,q=await o([A],t,kt),q}finally{if(t.childAbortControllers?.delete(f),w){let y=q?te(q,f):{snapStatus:"failed",finalText:""};X(w,f,{status:y.snapStatus,finalText:y.finalText,endedAt:s()})}}},"runBundle"),_=x(S);return l.set(f,{name:g.name,input:g,bundle:S,promise:_,runBundle:x,verification:O,changedPathBaseline:u,mutationRecorder:R,acceptToolMutationEvidence:D,repairAttempts:0}),G(v,f,_),{taskId:f,name:g.name}},"spawn"),wait:a(async(d,g)=>{let f=l.get(d);if(!f)throw new Error(`unknown workflow task: ${d}`);let S=Rt(g),pe=Date.now(),O=a(async x=>{if(S===void 0)return $e(x,d,void 0,t);let _=Date.now()-pe,A=S-_;if(A<=0)throw t.childAbortControllers?.get(d)?.abort(),new Error(`workflow task ${d} timed out after ${S}ms`);return $e(x,d,Math.max(1,Math.floor(A)),t,S)},"waitForAttempt"),R=await O(f.promise),D=R.totalTokensUsed,u=te(R,d),w=f.verification?Ie({verification:f.verification,term:u,before:await f.changedPathBaseline,after:Y(f.verification)?await Z(t,r):{paths:[]},mutationRecorder:f.mutationRecorder,ctx:t,acceptToolMutationEvidence:f.acceptToolMutationEvidence}):void 0;for(u.limitReached===!0&&w===void 0&&u.status==="completed"&&(w=Ce(),u={...u,status:"completed_unverified",snapStatus:"completed",finalText:ee(u.finalText,w)});It({entry:f,term:u,verification:w});){f.repairAttempts+=1;let x=Ne(d,{...f.input,prompt:Ct({originalPrompt:f.input.prompt,previousFinalText:u.finalText,verification:w,attempt:f.repairAttempts})});f.promise=f.runBundle(x),G(v,d,f.promise),R=await O(f.promise),D+=R.totalTokensUsed,u=te(R,d),w=f.verification?Ie({verification:f.verification,term:u,before:await f.changedPathBaseline,after:Y(f.verification)?await Z(t,r):{paths:[]},mutationRecorder:f.mutationRecorder,ctx:t,acceptToolMutationEvidence:f.acceptToolMutationEvidence}):void 0,u.limitReached===!0&&w===void 0&&u.status==="completed"&&(w=Ce(),u={...u,status:"completed_unverified",snapStatus:"completed",finalText:ee(u.finalText,w)})}if(w!==void 0&&!w.ok&&u.status==="completed"){let x=w.enforcement==="warn";u={...u,status:x?"completed_unverified":"failed",snapStatus:x?"completed":"failed",finalText:ee(u.finalText,w)}}return X(t.childProgressSnapshots,d,{status:u.snapStatus,finalText:u.finalText,endedAt:s()}),{taskId:d,name:f.name,status:u.status,finalText:u.finalText,...u.digest?{digest:u.digest}:{},...u.digestFailed?{digestFailed:!0}:{},...u.digestPending?{digestPending:!0}:{},...w!==void 0?{verification:w}:{},...u.limitReached?{limitReached:!0}:{},...u.provider?{provider:u.provider}:{},...u.model?{model:u.model}:{},...u.structured!==void 0?{structured:u.structured}:{},usage:{totalTokens:D}}},"wait"),output:a(async d=>{if(!l.has(d))throw new Error(`unknown workflow task: ${d}`);let g=l.get(d)?.name??d,f=t.childProgressSnapshots?.get(d);if(!f)return{taskId:d,name:g,status:"running"};let S=f.status==="aborted"?"stopped":f.status;return f.finalText!==void 0?{taskId:d,name:g,status:S,lastText:f.finalText}:{taskId:d,name:g,status:S}},"output"),send:a(async(d,g)=>{if(!l.has(d))throw new Error(`unknown workflow task: ${d}`);ye({to:d,priority:"user",mode:"prompt",content:g,registry:v,queue:i})},"send"),stop:a(async d=>{if(!l.has(d))throw new Error(`unknown workflow task: ${d}`);t.childAbortControllers?.get(d)?.abort()},"stop"),subscribeTaskSummaryUpdates:a(d=>(h.add(d),()=>{h.delete(d)}),"subscribeTaskSummaryUpdates")}}a(qe,"createCodingWorkflowBackend");import{homedir as sn}from"node:os";import{join as Ze}from"node:path";var $t=["structure, entry points, and control flow","edge cases, error handling, and failure modes","tests, validation, and existing coverage"],Nt="Deduplicate overlapping findings, keep concrete evidence (file:line), rank by relevance to the question, and explicitly note gaps left by any failed investigation.",Dt={type:"object",additionalProperties:!1,required:["finding"],properties:{finding:{type:"string",description:"Your concrete findings for this focus, with file:line evidence. If nothing relevant was found, a brief note saying so."}}};function _t(e){if(e!==null&&typeof e=="object"&&"finding"in e){let t=e.finding;if(typeof t=="string"&&t.trim().length>0)return t}}a(_t,"readStructuredFinding");function qt(e){let t=_t(e.structured);if(t)return t;let n=e.finalText?.trim();return n&&n.length>0?e.finalText:"[no finding text was returned \u2014 the investigator may have ended on a tool call without a closing summary]"}a(qt,"pickFindingText");function jt(e,t){return["Investigate the following question (READ-ONLY \u2014 do not modify any files):",e,"",`Focus your investigation on: ${t}`,"","Report concrete findings backed by evidence (cite file:line). If you find nothing relevant for this focus, say so briefly."].join(`
11
11
  `)}a(jt,"buildInvestigatorPrompt");function Bt(e){let t=Math.max(1,(e.maxAgents??8)-1);return(e.targets&&e.targets.length>0?e.targets:$t).slice(0,t).map((o,i)=>({name:`investigate-${i+1}`,prompt:jt(e.question,o)}))}a(Bt,"resolveAngles");async function Lt(e,t){try{let n=await e.runAgent({name:t.name,prompt:t.prompt,readOnly:!0,outputSchema:Dt});return n===null?{angle:t.name,status:"failed",text:"[investigation failed] agent did not complete"}:{angle:t.name,status:n.status==="completed"?"completed":"failed",text:qt(n)}}catch(n){let o=n instanceof Error?n.message:String(n);return{angle:t.name,status:"failed",text:`[investigation failed] ${o}`}}}a(Lt,"investigate");async function Ut(e,t){let n=Bt(t),o=(await e.phase("investigate",()=>e.parallel(n.map(s=>()=>Lt(e,s)),t.maxConcurrency!==void 0?{concurrency:t.maxConcurrency}:void 0))).filter(s=>s!==null),i=o.some(s=>s.status!=="completed");return{synthesis:(await e.phase("synthesize",()=>e.synthesize({inputs:o.map(s=>`### ${s.angle} (${s.status})
12
- ${s.text}`),rubric:t.rubric??Nt}))).text,findings:o,degraded:i}}a(Ut,"runParallelInvestigation");var je={meta:{name:"parallel-investigation",description:"Fan out read-only investigators over a question (split by target areas), then synthesize ranked, evidence-keeping findings.",maxAgents:8,maxConcurrency:4,readOnly:!0,phases:["investigate","synthesize"]},run:Ut};function Vt(e){return{meta:e.meta,run:a((t,n)=>e.run(t,n),"run")}}a(Vt,"erase");var Be=[Vt(je)];function Le(e){return Be.find(t=>t.meta.name===e)}a(Le,"getBuiltinWorkflow");function Qn(){return Be.map(e=>e.meta)}a(Qn,"listBuiltinWorkflows");import{mkdir as ze,readdir as Kt,readFile as I,rename as Gt,unlink as oe,writeFile as ae}from"node:fs/promises";import{basename as zt,dirname as re,join as E}from"node:path";import{pathToFileURL as Jt}from"node:url";var Je=[".workflow.json",".ts",".mjs",".js"],C="0.7.49";function He(){return"0.7.60"}a(He,"currentKodaxWorkflowVersion");function Ht(e){return e.endsWith(".workflow.json")?"capability-generated":"trusted-local"}a(Ht,"executionForPath");function Xt(e){let t=Je.find(n=>e.endsWith(n));return t?e.slice(0,-t.length):void 0}a(Xt,"stripWorkflowSuffix");function ie(e){let t=e.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^[.-]+|[.-]+$/g,"").slice(0,80);if(!t||t==="."||t==="..")throw new Error("workflow name must contain at least one safe filename character");return t}a(ie,"safeWorkflowName");function se(e){return typeof e=="object"&&e!==null}a(se,"isRecord");function Ue(e,t){let n=e[t];if(typeof n!="string"||n.length===0)throw new Error(`workflow run.json missing ${t}`);return n}a(Ue,"readRequiredString");async function Ve(e,t){if(!e)return[];let n;try{n=await Kt(e)}catch{return[]}let o=new Map;for(let i of Je)for(let r of n){if(!r.endsWith(i))continue;let s=Xt(r);if(!s||s.length===0||o.has(s))continue;let c=E(e,r);o.set(s,{name:s,path:c,source:t,execution:Ht(c)})}return[...o.values()]}a(Ve,"scanDir");async function $(e){let t=await Ve(e.personal,"personal"),n=await Ve(e.project,"project"),o=new Map;for(let i of t)o.set(i.name,i);for(let i of n)o.set(i.name,i);return[...o.values()].sort((i,r)=>i.name.localeCompare(r.name))}a($,"discoverSavedWorkflows");function Yt(e){return typeof e=="object"&&e!==null&&"meta"in e&&"run"in e&&typeof e.run=="function"}a(Yt,"isWorkflowModule");function Zt(e){let t=e.default;if(Yt(t))return t;let n=typeof t=="function"?t:e.run,o=e.workflow??e.meta;if(typeof n=="function"&&typeof o=="object"&&o!==null&&"name"in o)return{meta:o,run:n};throw new Error("invalid workflow module: expected a `{ meta, run }` default export, or `export const workflow = {...}` + a default run function")}a(Zt,"normalizeWorkflowModule");function Qt(e){let t=JSON.parse(e);if(!se(t))throw new Error("generated workflow file must be an object");if(t.format!==void 0&&t.format!=="kodax.workflow")throw new Error(`unsupported workflow capsule format: ${String(t.format)}`);if(t.format==="kodax.workflow"){let i=J(t);return{manifest:i.manifest,source:i.source,capsule:i,legacy:!1}}let n=t.source;if(typeof n!="string"||n.trim().length===0)throw new Error("generated workflow file source must be a non-empty string");let o=F(t.manifest);return{manifest:o,source:n,capsule:W({minKodaxVersion:C,manifest:o,source:n}),legacy:!0}}a(Qt,"parseGeneratedWorkflowFile");async function ce(e){let t=Qt(await I(e,"utf8"));return t.capsule??W({minKodaxVersion:C,manifest:t.manifest,source:t.source})}a(ce,"loadSavedWorkflowCapsule");async function Xe(e){if(e.endsWith(".workflow.json"))return H(await ce(e));let t=await import(Jt(e).href);return Zt(t)}a(Xe,"loadSavedWorkflow");function fe(e){if(e.mayUseWorktree===!0)return{environment:["git-repo","worktree-capable"]}}a(fe,"deriveRequirements");function L(e,t){z(t,{filename:`${e.name}.workflow.js`,requireAsyncRun:!0})}a(L,"assertGeneratedCapsuleSource");async function en(e){let t=ie(e.name),n=F(e.manifest);L(n,e.source);let o=e.requires??fe(n),i=W({minKodaxVersion:e.minKodaxVersion??C,manifest:n,source:e.source,...e.intent!==void 0?{intent:e.intent}:{},...e.inputs!==void 0?{inputs:e.inputs}:{},...o!==void 0?{requires:o}:{},...e.provenance!==void 0?{provenance:e.provenance}:{}});await ze(e.dir,{recursive:!0});let r=E(e.dir,`${t}.workflow.json`);return await ae(r,`${JSON.stringify(i,null,2)}
12
+ ${s.text}`),rubric:t.rubric??Nt}))).text,findings:o,degraded:i}}a(Ut,"runParallelInvestigation");var je={meta:{name:"parallel-investigation",description:"Fan out read-only investigators over a question (split by target areas), then synthesize ranked, evidence-keeping findings.",maxAgents:8,maxConcurrency:4,readOnly:!0,phases:["investigate","synthesize"]},run:Ut};function Vt(e){return{meta:e.meta,run:a((t,n)=>e.run(t,n),"run")}}a(Vt,"erase");var Be=[Vt(je)];function Le(e){return Be.find(t=>t.meta.name===e)}a(Le,"getBuiltinWorkflow");function Qn(){return Be.map(e=>e.meta)}a(Qn,"listBuiltinWorkflows");import{mkdir as ze,readdir as Kt,readFile as I,rename as Gt,unlink as oe,writeFile as ae}from"node:fs/promises";import{basename as zt,dirname as re,join as E}from"node:path";import{pathToFileURL as Jt}from"node:url";var Je=[".workflow.json",".ts",".mjs",".js"],C="0.7.49";function He(){return"0.7.61"}a(He,"currentKodaxWorkflowVersion");function Ht(e){return e.endsWith(".workflow.json")?"capability-generated":"trusted-local"}a(Ht,"executionForPath");function Xt(e){let t=Je.find(n=>e.endsWith(n));return t?e.slice(0,-t.length):void 0}a(Xt,"stripWorkflowSuffix");function ie(e){let t=e.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^[.-]+|[.-]+$/g,"").slice(0,80);if(!t||t==="."||t==="..")throw new Error("workflow name must contain at least one safe filename character");return t}a(ie,"safeWorkflowName");function se(e){return typeof e=="object"&&e!==null}a(se,"isRecord");function Ue(e,t){let n=e[t];if(typeof n!="string"||n.length===0)throw new Error(`workflow run.json missing ${t}`);return n}a(Ue,"readRequiredString");async function Ve(e,t){if(!e)return[];let n;try{n=await Kt(e)}catch{return[]}let o=new Map;for(let i of Je)for(let r of n){if(!r.endsWith(i))continue;let s=Xt(r);if(!s||s.length===0||o.has(s))continue;let c=E(e,r);o.set(s,{name:s,path:c,source:t,execution:Ht(c)})}return[...o.values()]}a(Ve,"scanDir");async function $(e){let t=await Ve(e.personal,"personal"),n=await Ve(e.project,"project"),o=new Map;for(let i of t)o.set(i.name,i);for(let i of n)o.set(i.name,i);return[...o.values()].sort((i,r)=>i.name.localeCompare(r.name))}a($,"discoverSavedWorkflows");function Yt(e){return typeof e=="object"&&e!==null&&"meta"in e&&"run"in e&&typeof e.run=="function"}a(Yt,"isWorkflowModule");function Zt(e){let t=e.default;if(Yt(t))return t;let n=typeof t=="function"?t:e.run,o=e.workflow??e.meta;if(typeof n=="function"&&typeof o=="object"&&o!==null&&"name"in o)return{meta:o,run:n};throw new Error("invalid workflow module: expected a `{ meta, run }` default export, or `export const workflow = {...}` + a default run function")}a(Zt,"normalizeWorkflowModule");function Qt(e){let t=JSON.parse(e);if(!se(t))throw new Error("generated workflow file must be an object");if(t.format!==void 0&&t.format!=="kodax.workflow")throw new Error(`unsupported workflow capsule format: ${String(t.format)}`);if(t.format==="kodax.workflow"){let i=J(t);return{manifest:i.manifest,source:i.source,capsule:i,legacy:!1}}let n=t.source;if(typeof n!="string"||n.trim().length===0)throw new Error("generated workflow file source must be a non-empty string");let o=F(t.manifest);return{manifest:o,source:n,capsule:W({minKodaxVersion:C,manifest:o,source:n}),legacy:!0}}a(Qt,"parseGeneratedWorkflowFile");async function ce(e){let t=Qt(await I(e,"utf8"));return t.capsule??W({minKodaxVersion:C,manifest:t.manifest,source:t.source})}a(ce,"loadSavedWorkflowCapsule");async function Xe(e){if(e.endsWith(".workflow.json"))return H(await ce(e));let t=await import(Jt(e).href);return Zt(t)}a(Xe,"loadSavedWorkflow");function fe(e){if(e.mayUseWorktree===!0)return{environment:["git-repo","worktree-capable"]}}a(fe,"deriveRequirements");function L(e,t){z(t,{filename:`${e.name}.workflow.js`,requireAsyncRun:!0})}a(L,"assertGeneratedCapsuleSource");async function en(e){let t=ie(e.name),n=F(e.manifest);L(n,e.source);let o=e.requires??fe(n),i=W({minKodaxVersion:e.minKodaxVersion??C,manifest:n,source:e.source,...e.intent!==void 0?{intent:e.intent}:{},...e.inputs!==void 0?{inputs:e.inputs}:{},...o!==void 0?{requires:o}:{},...e.provenance!==void 0?{provenance:e.provenance}:{}});await ze(e.dir,{recursive:!0});let r=E(e.dir,`${t}.workflow.json`);return await ae(r,`${JSON.stringify(i,null,2)}
13
13
  `,"utf8"),{name:t,path:r,source:"project",execution:"capability-generated"}}a(en,"saveGeneratedWorkflow");async function Ke(e,t){await ae(e,`${JSON.stringify(t,null,2)}
14
14
  `,"utf8")}a(Ke,"writeCapsuleFile");async function tn(e){try{return await I(e,"utf8"),!0}catch{return!1}}a(tn,"fileExists");async function ir(e){let t=(await $(e.dirs)).filter(c=>c.name===e.name).filter(c=>e.source===void 0||c.source===e.source);if(t.length===0)throw new Error(`saved workflow not found: ${e.name}`);if(t.length>1)throw new Error(`ambiguous saved workflow name: ${e.name}`);let n=t[0];if(!n.path.endsWith(".workflow.json"))throw new Error("only generated workflow capsules can be renamed");let o=ie(e.newName),i=E(re(n.path),`${o}.workflow.json`);if(i!==n.path&&await tn(i))throw new Error(`saved workflow already exists: ${o}`);let r=await ce(n.path);L(r.manifest,r.source);let s=W({minKodaxVersion:r.minKodaxVersion,manifest:{...r.manifest,name:o},source:r.source,...r.intent!==void 0?{intent:r.intent}:{},...r.inputs!==void 0?{inputs:r.inputs}:{},...r.requires!==void 0?{requires:r.requires}:{},...r.provenance!==void 0?{provenance:r.provenance}:{}});return await ae(i,`${JSON.stringify(s,null,2)}
15
15
  `,"utf8"),i!==n.path&&await oe(n.path),{name:o,path:i,source:n.source,execution:"capability-generated"}}a(ir,"renameSavedWorkflow");async function sr(e){let t=(await $(e.dirs)).filter(o=>o.name===e.name).filter(o=>e.source===void 0||o.source===e.source);if(t.length===0)throw new Error(`saved workflow not found: ${e.name}`);if(t.length>1)throw new Error(`ambiguous saved workflow name: ${e.name}`);let n=t[0];if(!n.path.endsWith(".workflow.json"))throw new Error("only generated workflow capsules can be deleted");return await oe(n.path),n}a(sr,"deleteSavedWorkflow");async function cr(e){let t=ie(e.name),n=(await $(e.dirs)).filter(m=>m.name===t).filter(m=>e.savedSource===void 0||m.source===e.savedSource);if(n.length===0)throw new Error(`saved workflow not found: ${t}`);if(n.length>1)throw new Error(`ambiguous saved workflow name: ${t}`);let o=n[0];if(!o.path.endsWith(".workflow.json"))throw new Error("only generated workflow capsules can be replaced");let i=F({...e.manifest,name:t});L(i,e.source);let r=e.requires??fe(i),s=W({minKodaxVersion:e.minKodaxVersion??C,manifest:i,source:e.source,...e.intent!==void 0?{intent:e.intent}:{},...e.inputs!==void 0?{inputs:e.inputs}:{},...r!==void 0?{requires:r}:{},...e.provenance!==void 0?{provenance:e.provenance}:{}}),c=await ce(o.path),p=new Date().toISOString().replace(/[:.]/g,"-"),l=E(re(o.path),".revisions",t),h=`${p}-${process.hrtime.bigint().toString(36)}`,v=E(l,`${t}-${h}.workflow.json`),k=E(re(o.path),`.${t}.${process.pid}.${Date.now().toString(36)}.tmp`);await ze(l,{recursive:!0}),await Ke(v,c);try{await Ke(k,s),await Gt(k,o.path)}catch(m){try{await oe(k)}catch{}throw m}return{name:t,path:o.path,source:o.source,execution:"capability-generated",previousPath:v}}a(cr,"replaceSavedWorkflow");function nn(e){if(!se(e))return;let t=e.request;if(typeof t=="string"&&t.trim().length>0)return t;let n=e.question;if(typeof n=="string"&&n.trim().length>0)return n}a(nn,"readOptionalOriginalRequest");function Ye(e){return rn(e)}a(Ye,"buildCapsuleFromRun");async function rn(e){let t=JSON.parse(await I(E(e.runDir,"run.json"),"utf8"));if(!se(t))throw new Error("workflow run.json must be an object");let n=Ue(t,"scriptSnapshotPath"),o=Ue(t,"manifestSnapshotPath"),i=await I(n,"utf8"),r=F(JSON.parse(await I(o,"utf8")));L(r,i);let s=typeof t.runId=="string"&&t.runId.length>0?t.runId:zt(e.runDir),c=nn(t.args),p=fe(r),l=xe(r,c!==void 0?{originalRequest:c}:{}),h={description:"Provide new workflow args matching the generated request shape.",..."args"in t?{examples:[t.args]}:{}};return W({minKodaxVersion:C,manifest:r,source:i,intent:l,inputs:h,...p!==void 0?{requires:p}:{},provenance:{fromRunId:s,createdAt:new Date().toISOString(),kodaxVersion:He()}})}a(rn,"readCapsuleFromRun");async function fr(e){let t=await Ye(e);return{capsule:t,module:H(t)}}a(fr,"loadGeneratedWorkflowFromRun");async function dr(e){let t=await Ye(e);return en({dir:e.targetDir,name:e.name,manifest:t.manifest,source:t.source,...t.intent!==void 0?{intent:t.intent}:{},...t.inputs!==void 0?{inputs:t.inputs}:{},...t.requires!==void 0?{requires:t.requires}:{},...t.provenance!==void 0?{provenance:t.provenance}:{},minKodaxVersion:t.minKodaxVersion})}a(dr,"saveGeneratedWorkflowFromRun");function b(e,t,n,o){e.push({severity:t,requirement:n,message:o})}a(b,"addRequirementIssue");function Ge(e){let t=/^v?(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/.exec(e.trim());if(t)return[Number(t[1]),Number(t[2]),Number(t[3])]}a(Ge,"parseSemver");function on(e,t){for(let n=0;n<3;n+=1){let o=e[n]-t[n];if(o!==0)return o}return 0}a(on,"compareSemver");function an(e,t,n){let o=Ge(t),i=Ge(n);if(!o){b(e,"error","kodax:min-version",`workflow minKodaxVersion is not valid semver: ${t}`);return}if(!i){b(e,"warning","kodax:min-version",`cannot verify workflow minKodaxVersion ${t}; current version is unknown`);return}on(i,o)<0&&b(e,"error","kodax:min-version",`workflow requires KodaX >= ${t}, current version is ${n}`)}a(an,"addMinVersionIssue");function ne(e,t,n,o){if(!n)return;if(!o){for(let r of n)b(e,"warning",`${t}:${r}`,`workflow requires ${t}:${r}, but no ${t} inventory was provided`);return}let i=new Set(o);for(let r of n)i.has(r)||b(e,"error",`${t}:${r}`,`missing required workflow ${t}: ${r}`)}a(ne,"addMissingItems");function ur(e,t={}){let n=J(e),o=[],i=n.requires;an(o,n.minKodaxVersion,t.kodaxVersion??He()),i?.environment?.includes("git-repo")&&t.isGitRepo===!1&&b(o,"error","environment:git-repo","workflow requires a git repository"),i?.environment?.includes("worktree-capable")&&t.worktreeCapable===!1&&b(o,"error","environment:worktree-capable","workflow may request git worktree isolation");try{z(n.source,{filename:`${n.manifest.name}.workflow.js`,requireAsyncRun:!0})}catch(r){let s=r instanceof Error?r.message:String(r);b(o,"error","workflow:source",s)}return ne(o,"tools",i?.tools,t.availableTools),ne(o,"mcp",i?.mcp,t.availableMcp),ne(o,"skills",i?.skills,t.availableSkills),{ok:!o.some(r=>r.severity==="error"),issues:o}}a(ur,"preflightWorkflowCapsule");function cn(e){return{project:Ze(e,".kodax","workflows"),personal:Ze(sn(),".kodax","workflows")}}a(cn,"defaultSavedWorkflowDirs");async function fn(e,t){let o=(await $(t)).find(i=>i.name===e);if(o)return Xe(o.path)}a(fn,"resolveSavedByName");function Qe(e){let t=cn(e);return async n=>Le(n)??await fn(n,t)}a(Qe,"createNestedWorkflowResolver");import{existsSync as dn,mkdirSync as un,readFileSync as ln,writeFileSync as et}from"node:fs";import{join as N}from"node:path";var tt="results";function nt(e){return e.replace(/[^a-zA-Z0-9._-]/g,"_")}a(nt,"safeKey");function rt(e,t){let n=N(e,t);if(dn(n))try{return JSON.parse(ln(n,"utf8"))}catch{return}}a(rt,"readResult");function ot(e,t={}){let n=N(e,tt);un(n,{recursive:!0});let o=t.readFrom?N(t.readFrom,tt):void 0;return{get:a(i=>{let r=`${nt(i)}.json`,s=rt(n,r);if(s!==void 0)return s;if(o===void 0)return;let c=rt(o,r);if(c!==void 0){try{et(N(n,r),JSON.stringify(c),"utf8")}catch{}return c}},"get"),set:a((i,r)=>{try{et(N(n,`${nt(i)}.json`),JSON.stringify(r),"utf8")}catch{}},"set")}}a(ot,"createFsResultCache");import{mkdirSync as mn,appendFileSync as wn,writeFileSync as U}from"node:fs";import{join as P}from"node:path";function pn(e){let t=e.replace(/[^a-zA-Z0-9._-]/g,"_").slice(0,120);return t.length>0?t:"artifact"}a(pn,"safeWorkflowArtifactName");function at(e,t={}){let n=t.now??(()=>Date.now()),o=P(e,"artifacts");mn(o,{recursive:!0});let i=P(e,"events.jsonl");return{runDir:e,onEvent:a(r=>{wn(i,`${JSON.stringify({...r,ts:n()})}