@kodax-ai/kodax 0.7.40 → 0.7.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +146 -1
- package/README.md +129 -232
- package/README_CN.md +128 -253
- package/dist/chunks/chunk-3RKBXWZS.js +2 -0
- package/dist/chunks/chunk-7JLYVWAF.js +1033 -0
- package/dist/chunks/chunk-CD3R5YBH.js +16 -0
- package/dist/chunks/chunk-DKXUY5F2.js +209 -0
- package/dist/chunks/chunk-HMYEQJGT.js +31 -0
- package/dist/chunks/{chunk-FAVPT4P7.js → chunk-IYJ5EPRV.js} +1 -1
- package/dist/chunks/chunk-KUX5LRPP.js +2 -0
- package/dist/chunks/{chunk-EQ5DGS2W.js → chunk-OWSKU55I.js} +5 -6
- package/dist/chunks/chunk-ZZ4KRK2B.js +465 -0
- package/dist/chunks/compaction-config-FIFFP4FT.js +2 -0
- package/dist/chunks/{construction-bootstrap-OFPUZTXQ.js → construction-bootstrap-J2WOCYEK.js} +1 -1
- package/dist/chunks/dist-2ZHWDXMQ.js +2 -0
- package/dist/chunks/dist-W4CJWLIH.js +2 -0
- package/dist/chunks/utils-A5MWDTWZ.js +2 -0
- package/dist/index.d.ts +237 -7
- package/dist/index.js +5 -5
- package/dist/kodax_cli.js +935 -917
- package/dist/sdk-agent.d.ts +1375 -10
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +4608 -14
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-llm.d.ts +210 -10
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.d.ts +17 -0
- package/dist/sdk-mcp.js +2 -0
- package/dist/sdk-repl.d.ts +3026 -13
- package/dist/sdk-repl.js +2 -1
- package/dist/sdk-session.d.ts +164 -0
- package/dist/sdk-session.js +2 -0
- package/dist/sdk-skills.d.ts +553 -9
- package/dist/sdk-skills.js +1 -1
- package/dist/types-chunks/bash-prefix-extractor.d-CkhaqKkg.d.ts +2571 -0
- package/dist/types-chunks/capability.d-3C62G8Eq.d.ts +39 -0
- package/dist/types-chunks/config.d-BfJUXxC0.d.ts +41 -0
- package/dist/types-chunks/cost-tracker.d-B6vMoLLF.d.ts +360 -0
- package/dist/types-chunks/history-cleanup.d-DznrzEiU.d.ts +1475 -0
- package/dist/types-chunks/instance-discovery.d-BsKnIwpg.d.ts +990 -0
- package/dist/types-chunks/resolver.d-DX9au4NJ.d.ts +263 -0
- package/dist/types-chunks/session-storage.d-Cci897iM.d.ts +68 -0
- package/dist/types-chunks/storage.d-Bc5DoAwp.d.ts +532 -0
- package/dist/types-chunks/transport.d-DuyjG30t.d.ts +180 -0
- package/dist/types-chunks/types.d-B1uGoVTE.d.ts +400 -0
- package/dist/types-chunks/types.d-C5mHR87z.d.ts +119 -0
- package/dist/types-chunks/types.d-mM8vqvhT.d.ts +254 -0
- package/package.json +16 -3
- package/dist/acp_events.d.ts +0 -109
- package/dist/acp_logger.d.ts +0 -20
- package/dist/acp_server.d.ts +0 -92
- package/dist/chunks/chunk-6QO6HWGU.js +0 -30
- package/dist/chunks/chunk-CLS57NPX.js +0 -460
- package/dist/chunks/chunk-NDNILSTR.js +0 -2
- package/dist/chunks/chunk-QZEDWITG.js +0 -1226
- package/dist/chunks/chunk-Z5EBDA6R.js +0 -15
- package/dist/chunks/compaction-config-A7XZ6H5Y.js +0 -2
- package/dist/chunks/dist-M57GIWR4.js +0 -2
- package/dist/chunks/dist-OTUF22DA.js +0 -2
- package/dist/chunks/utils-DFMYJUTE.js +0 -2
- package/dist/cli_commands.d.ts +0 -17
- package/dist/cli_option_helpers.d.ts +0 -49
- package/dist/cli_option_helpers.test.d.ts +0 -1
- package/dist/constructed_cli.d.ts +0 -82
- package/dist/constructed_cli.test.d.ts +0 -1
- package/dist/kodax_cli.d.ts +0 -7
- package/dist/self_modify_cli.d.ts +0 -81
- package/dist/self_modify_cli.test.d.ts +0 -9
- package/dist/skill_cli.d.ts +0 -15
- package/dist/skill_cli.test.d.ts +0 -1
|
@@ -1,460 +0,0 @@
|
|
|
1
|
-
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{A as Wy,B as Uy,C as jy,a as Q,c as _r,j as Ci,k as jn,l as bi,m as fo,n as Hy,o as Fy,p as Sl,q as Of,r as Cl,s as Df,t as Nf,u as Bf,w as Hf,x as Ff,y as fr,z as mo}from"./chunk-NDNILSTR.js";import{a as bl}from"./chunk-FAVPT4P7.js";import{n as Gy,o as Ky,p as Vy}from"./chunk-EVIDQWMF.js";import{$b as ky,Ac as _y,Ad as Lf,Bc as Py,Bd as Oy,Cd as Dy,Ha as Sy,Ib as hi,Kb as mn,Mb as vt,Ob as yi,P as yy,Pb as xi,Q as yl,Qb as by,Qd as Ny,Rb as wi,S as sa,Sb as Ti,T as xy,Tb as Si,Ub as wl,Vb as lo,Wb as vy,Xb as $f,Yb as aa,Zb as Iy,c as Af,d as ia,e as gy,ed as ca,g as _f,ke as By,mb as xl,ne as Tl,pa as wy,pb as Cy,qa as Pf,ra as Ty,xd as $y,yd as Ly,zc as dr}from"./chunk-QZEDWITG.js";import{Ea as hy,ia as pi,ja as gi,k as co,la as Un}from"./chunk-Z5EBDA6R.js";import{B as Ay,g as Ry,h as Ey,i as My,v as ur,w as uo}from"./chunk-EQ5DGS2W.js";import{$ as py,Q as hl,j as ao,ja as di,ka as fi,la as mi}from"./chunk-6QO6HWGU.js";import{a as i,b as Mf,c as vv}from"./chunk-V4WSBIXB.js";var Pw=Mf((WH,_w)=>{"use strict";_w.exports=i(function(t){return t.map(function(n){return n===""?"''":n&&typeof n=="object"?n.op.replace(/(.)/g,"\\$1"):/["\s\\]/.test(n)&&!/'/.test(n)?"'"+n.replace(/(['])/g,"\\$1")+"'":/["'\s]/.test(n)?'"'+n.replace(/(["\\$`!])/g,"\\$1")+'"':String(n).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g,"$1\\$2")}).join(" ")},"quote")});var Hw=Mf((jH,Bw)=>{"use strict";var Nw="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",$w=new RegExp("^"+Nw+"$"),Lw="|&;()<> \\t",JR='"((\\\\"|[^"])*?)"',ZR="'((\\\\'|[^'])*?)'",eE=/^#$/,Ow="'",Dw='"',$m="$",bo="",tE=4294967296;for(Lm=0;Lm<4;Lm++)bo+=(tE*Math.random()).toString(16);var Lm,nE=new RegExp("^"+bo);function rE(e,t){for(var n=t.lastIndex,r=[],o;o=t.exec(e);)r.push(o),t.lastIndex===o.index&&(t.lastIndex+=1);return t.lastIndex=n,r}i(rE,"matchAll");function oE(e,t,n){var r=typeof e=="function"?e(n):e[n];return typeof r>"u"&&n!=""?r="":typeof r>"u"&&(r="$"),typeof r=="object"?t+bo+JSON.stringify(r)+bo:t+r}i(oE,"getVar");function iE(e,t,n){n||(n={});var r=n.escape||"\\",o="(\\"+r+`['"`+Lw+`]|[^\\s'"`+Lw+"])+",s=new RegExp(["("+Nw+")","("+o+"|"+JR+"|"+ZR+")+"].join("|"),"g"),a=rE(e,s);if(a.length===0)return[];t||(t={});var c=!1;return a.map(function(l){var u=l[0];if(!u||c)return;if($w.test(u))return{op:u};var m=!1,p=!1,g="",x=!1,y;function w(){y+=1;var $,L,G=u.charAt(y);if(G==="{"){if(y+=1,u.charAt(y)==="}")throw new Error("Bad substitution: "+u.slice(y-2,y+1));if($=u.indexOf("}",y),$<0)throw new Error("Bad substitution: "+u.slice(y));L=u.slice(y,$),y=$}else if(/[*@#?$!_-]/.test(G))L=G,y+=1;else{var N=u.slice(y);$=N.match(/[^\w\d_]/),$?(L=N.slice(0,$.index),y+=$.index-1):(L=N,y=u.length)}return oE(t,"",L)}for(i(w,"parseEnvVar"),y=0;y<u.length;y++){var S=u.charAt(y);if(x=x||!m&&(S==="*"||S==="?"),p)g+=S,p=!1;else if(m)S===m?m=!1:m==Ow?g+=S:S===r?(y+=1,S=u.charAt(y),S===Dw||S===r||S===$m?g+=S:g+=r+S):S===$m?g+=w():g+=S;else if(S===Dw||S===Ow)m=S;else{if($w.test(S))return{op:u};if(eE.test(S)){c=!0;var I={comment:e.slice(l.index+y+1)};return g.length?[g,I]:[I]}else S===r?p=!0:S===$m?g+=w():g+=S}}return x?{op:"glob",pattern:g}:g}).reduce(function(l,u){return typeof u>"u"?l:l.concat(u)},[])}i(iE,"parseInternal");Bw.exports=i(function(t,n,r){var o=iE(t,n,r);return typeof n!="function"?o:o.reduce(function(s,a){if(typeof a=="object")return s.concat(a);var c=a.split(RegExp("("+bo+".*?"+bo+")","g"));return c.length===1?s.concat(c[0]):s.concat(c.filter(Boolean).map(function(l){return nE.test(l)?JSON.parse(l.split(bo)[1]):l}))},[])},"parse")});var Fw=Mf(Om=>{"use strict";Om.quote=Pw();Om.parse=Hw()});import{spawnSync as Iv}from"node:child_process";function vl(e){return e==="1"||e?.toLowerCase()==="true"}i(vl,"isTruthyEnv");function zy(e){return e==="0"||e?.toLowerCase()==="false"}i(zy,"isFalseyEnv");function vi(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}i(vi,"isVsCodeTerminalHostEnv");function Ii(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}i(Ii,"hasCursorUpViewportYankRisk");function kv(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}i(kv,"isSshSession");function la(e={}){let t=e.env??process.env;return vl(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&kv(t)}i(la,"isRemoteConptyHost");function ki(e={}){let t=e.env??process.env;return Ii(e)||vi(t)}i(ki,"hasMainScreenRenderScrollRisk");function Rv(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}i(Rv,"isTmuxControlModeEnvHeuristic");var mr;function ua(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(Rv(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(mr!==void 0||(mr=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return mr;try{let o=Iv("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});o.status===0&&(mr=o.stdout.trim()==="1")}catch{mr=!1}return mr}i(ua,"isTmuxControlMode");function Wf(){mr=void 0}i(Wf,"resetTmuxControlModeProbeForTesting");function po(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":ua(e)?"tmux_control_mode":vi(t)?"xtermjs_host":la(e)?"remote_conpty_host":Ii(e)?"degraded_vt":"native_vt"}i(po,"detectTerminalRenderHost");var go=po;function Ri(e={}){let t=e.env??process.env;if(vl(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}i(Ri,"resolveConfiguredTuiRendererMode");function ho(e={}){let t=Ri(e);if(t==="legacy"||t==="owned")return t;let n=po(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}i(ho,"resolveEffectiveTuiRendererMode");function Il(e={}){let t=e.env??process.env;if(vl(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=Ri({env:t});if(n==="legacy"||n==="owned")return"ink";let r=po(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}i(Il,"resolveInteractiveSurfacePreference");var Xy={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0};function yo(e,t="owned",n={}){let r=n.env??process.env;return zy(r.KODAX_FULLSCREEN)?Xy:Ev(e,t)}i(yo,"resolveFullscreenPolicy");function Ev(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 Xy;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}i(Ev,"buildFullscreenPolicy");function Ei(e,t={}){let n=t.rendererMode??"owned",r=yo(e,n,{env:t.env}),o=e!=="unsupported_control_host"&&e!=="tmux_control_mode";return{profile:e,ownsViewportByDefault:r.enabled&&r.promptShell==="virtual",supportsMouseTracking:r.mouseWheel||r.mouseClicks,bufferingMode:r.streamingPreview?"live":"buffered-fallback",supportsFullscreenLayout:r.enabled,supportsOverlaySurface:r.enabled,supportsSelection:o,supportsCopyOnSelect:!1,supportsWheelHistory:r.mouseWheel,supportsViewportChrome:r.enabled,supportsSearchViewport:r.enabled,supportsStickyPrompt:r.enabled}}i(Ei,"getTerminalHostCapabilities");function kl(e={}){return ho(e)==="owned"}i(kl,"isOwnedRendererPreferred");function Rl(e={}){let t=e.env??process.env;return vl(t.KODAX_FORCE_CLASSIC_REPL)&&!zy(t.KODAX_FORCE_CLASSIC_REPL)}i(Rl,"isClassicReplForced");var Mi=class{static{i(this,"LRUCache")}capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,n)}has(t){return this.cache.has(t)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}},Uf=1,jf=2,Mv=1e3,Yy;function El(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return Yy??=new Intl.Segmenter("en",{granularity:"grapheme"}),Yy}i(El,"getGraphemeSegmenter");function en(e){if(!e)return 0;let t=El();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}i(en,"getCodePointLength");function Gn(e){if(!e)return!1;let t=e.codePointAt(0);return t===void 0?!1:t>=19968&&t<=40959||t>=13312&&t<=19903||t>=63744&&t<=64255||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=12288&&t<=12351||t>=65280&&t<=65519||t>=128512&&t<=128591||t>=127744&&t<=128511||t>=128640&&t<=128767||t>=127456&&t<=127487||t>=9728&&t<=9983||t>=9984&&t<=10175||t>=129280&&t<=129535||t>=129536&&t<=129647||t>=129648&&t<=129791}i(Gn,"isWideChar");function Kn(e){if(!e)return 0;let t=0,n=El();if(n)for(let r of n.segment(e))t+=Gn(r.segment)?jf:Uf;else for(let r of e)t+=Gn(r)?jf:Uf;return t}i(Kn,"getVisualWidth");function Av(e,t){if(!e||t<0)return"";let n=El();if(n){let o=0;for(let s of n.segment(e)){if(o===t)return s.segment;o++}return""}let r=[...e];return t>=r.length?"":r[t]}i(Av,"getCharAtCodePoint");function Gt(e){if(!e)return[];let t=El();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}i(Gt,"splitByCodePoints");function _v(e,t,n){return Gt(e).slice(t,n).join("")}i(_v,"sliceByCodePoints");function qy(e,t){let n=Math.max(0,t),r=Gt(e),o=0,s=0;for(;o<r.length;){let a=Gn(r[o])?jf:Uf;if(s+a>n)break;s+=a,o++}return{before:r.slice(0,o).join(""),current:r[o]??"",after:r.slice(o+1).join("")}}i(qy,"splitAtVisualColumn");function da(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=Gt(e);for(let u of l){let m=Gn(u)?2:1;if(c+m>s)break;a+=u,c+=m}return n&&a.length<e.length&&(a+=r),a}i(da,"truncateByVisualWidth");var Gf=new Mi(Mv);function Kf(e){let t=Gf.get(e);if(t!==void 0)return t;let n=Kn(e);return Gf.set(e,n),n}i(Kf,"getVisualWidthCached");function Kt(e,t,n,r){let o=[],s=[],a=[];for(let c=0;c<e.length;c++){let l=e[c]||"";if(s[c]=[],l.length===0){o.push("");let p=o.length-1;s[c].push([p,0]),a.push([c,0]);continue}let u=0,m=Gt(l);for(;u<m.length;){let p="",g=0,x=u,y=-1;for(let w=u;w<m.length;w++){let S=m[w],I=Gn(S)?2:1;if(g+I>t){y>=0&&w-u>0?(p=m.slice(u,y).join(""),g=m.slice(u,y).reduce(($,L)=>$+(Gn(L)?2:1),0),x=y):p.length===0&&I>t&&(p=S,g=I,x=w+1);break}p+=S,g+=I,x=w+1,S===" "&&(y=w+1)}if(p.length>0||o.length===0){let w=u,S=o.length;o.push(p),s[c].push([S,w]),a.push([c,w])}u=x}}return{visualLines:o,logicalToVisualMap:s,visualToLogicalMap:a}}i(Kt,"calculateVisualLayout");function Vf(e,t){let{logicalToVisualMap:n,visualLines:r}=e;if(r.length===0)return[0,0];let[o,s]=t,a=n[o];if(!a||a.length===0)return[0,0];let c;for(let[x,y]of a)if(y<=s)c=[x,y];else break;let[l,u]=c??a[0],m=r[l]??"",p=Math.max(0,s-u),g=Kn(_v(m,0,p));return[l,g]}i(Vf,"calculateVisualCursorFromLayout");var zf={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"]}},Qy={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 Jy={dark:zf,minimal:Qy};function te(e="dark"){return Jy[e]??zf}i(te,"getTheme");function N1(){return Object.keys(Jy)}i(N1,"getThemeNames");import{jsx as $t,jsxs as gn,Fragment as LR}from"react/jsx-runtime";import{useMemo as su}from"react";import{jsx as xw}from"react/jsx-runtime";import{createContext as uR,useContext as So,useEffect as Gi,useMemo as yw,useState as dR,useCallback as ww,useRef as Zl}from"react";import{Stream as Kk}from"node:stream";import Xf,{forwardRef as Lv,useContext as Ov}from"react";import{createContext as Pv}from"react";var Ai=Pv({isScreenReaderEnabled:!1});import{createContext as $v}from"react";var Ml=$v(void 0);var Zy=Lv(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":o,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=Ov(Ai),u=n?Xf.createElement("ink-text",null,n):void 0;if(l&&r)return null;let m=Xf.createElement("ink-box",{ref:c,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,...a,backgroundColor:t,overflowX:a.overflowX??a.overflow??"visible",overflowY:a.overflowY??a.overflow??"visible"},internal_accessibility:{role:o,state:s}},l&&u?u:e);return t?Xf.createElement(Ml.Provider,{value:t},m):m});Zy.displayName="Box";var pn=Zy;import Hv,{useContext as ex}from"react";import _i from"chalk";import Pr from"chalk";var Dv=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,Nv=/^ansi256\(\s?(\d+)\s?\)$/;function Bv(e){return e in Pr}i(Bv,"isNamedColor");function An(e,t,n){if(!t)return e;if(Bv(t)){let r=Pr;if(n==="foreground")return r[t]?.(e)??e;let o=`bg${t[0].toUpperCase()+t.slice(1)}`;return r[o]?.(e)??e}if(t.startsWith("#"))return n==="foreground"?Pr.hex(t)(e):Pr.bgHex(t)(e);if(t.startsWith("ansi256")){let r=Nv.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?Pr.ansi256(o)(e):Pr.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=Dv.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?Pr.rgb(o,s,a)(e):Pr.bgRgb(o,s,a)(e)}return e}i(An,"colorize");function Vt({color:e,backgroundColor:t,dimColor:n=!1,bold:r=!1,italic:o=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:l="wrap",children:u,"aria-label":m,"aria-hidden":p=!1}){let{isScreenReaderEnabled:g}=ex(Ai),x=ex(Ml),y=g&&m?m:u;if(y==null)return null;let w=i(S=>{let I=S;n&&(I=_i.dim(I)),e&&(I=An(I,e,"foreground"));let $=t??x;return $&&(I=An(I,$,"background")),r&&(I=_i.bold(I)),o&&(I=_i.italic(I)),s&&(I=_i.underline(I)),a&&(I=_i.strikethrough(I)),c&&(I=_i.inverse(I)),I},"transform");return g&&p?null:Hv.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:w},g&&m?m:u)}i(Vt,"Text");import Fv,{useLayoutEffect as Wv,useMemo as tx,useState as Uv}from"react";function Yf({items:e,children:t,style:n}){let[r,o]=Uv(0),s=tx(()=>e.slice(r),[e,r]);Wv(()=>{o(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=tx(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return Fv.createElement("ink-box",{internal_static:!0,style:c},a)}i(Yf,"Static");import ji from"node:process";import ow from"react";import{throttle as kk}from"es-toolkit/compat";import yr from"ansi-escapes";import Or from"is-in-ci";import Rk from"auto-bind";import{onExit as Ek}from"signal-exit";import Mk from"patch-console";import{LegacyRoot as Ak,ConcurrentRoot as _k}from"react-reconciler/constants.js";import Pk from"yoga-layout";import $k from"wrap-ansi";import Lk from"terminal-size";import jv from"node:process";var Al=i(()=>jv.env.DEV==="true","isDev");import hI from"react-reconciler";import{DefaultEventPriority as yI,NoEventPriority as yx}from"react-reconciler/constants.js";import*as $r from"scheduler";import mx from"yoga-layout";import{createContext as xI}from"react";import oI from"yoga-layout";import Gv from"widest-line";var nx=new Map,Kv=i(e=>{if(e.length===0)return{width:0,height:0};let t=nx.get(e);if(t)return t;let n=Gv(e),r=e.split(`
|
|
3
|
-
`).length,o={width:n,height:r};return nx.set(e,o),o},"measureText"),qf=Kv;import Vv from"wrap-ansi";import zv from"cli-truncate";var rx={},Xv=i((e,t,n)=>{let r=e+String(t)+String(n),o=rx[r];if(o)return o;let s=e;if(n==="wrap"&&(s=Vv(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=zv(e,t,{position:a})}return rx[r]=s,s},"wrapText"),_l=Xv;var Yv=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),qv=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),Qv=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),sx=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),Jv=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),ax=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),ox=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!Yv(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!qv(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!Qv(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),ix=i((e,t,n)=>{for(let r=t;r<e.length;r++){let o=e[r];if(n&&o==="\x07"||o==="\x9C")return r+1;if(o==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),Zv=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!sx(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!Jv(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),eI=i(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),tI=i(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),Qf=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(ax(t))return!0;return!1},"hasAnsiControlCharacters"),Pi=i((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),cx=i(e=>{if(!Qf(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let o=e[r];if(o===void 0)break;if(o==="\x1B"){let a=e[r+1];if(a===void 0)return Pi(t,e,n,r);if(a==="["){let u=ox(e,r+2);if(u===void 0)return Pi(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=eI(a);if(c!==void 0){let u=ix(e,r+2,c.allowBellTerminator);if(u===void 0)return Pi(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let l=Zv(e,r+1);if(l===void 0){if(sx(a))return Pi(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(o==="\x9B"){let a=ox(e,r+1);if(a===void 0)return Pi(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=tI(o);if(s!==void 0){let a=ix(e,r+1,s.allowBellTerminator);if(a===void 0)return Pi(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(o==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:o}),r++,n=r;continue}if(ax(o)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:o}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var nI=/^[\d:;]*$/,rI=i(e=>{if(!Qf(e))return e;let t="";for(let n of cx(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&nI.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),lx=rI;var ux=i(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=ux(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return lx(t)},"squashTextNodes"),fa=ux;var Pl=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:oI.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(iI.bind(null,t)),t},"createNode"),$l=i((e,t)=>{t.parentNode&&ma(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")&&Ll(e)},"appendChildNode"),Jf=i((e,t,n)=>{t.parentNode&&ma(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")&&Ll(e)},"insertBeforeNode"),ma=i((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Ll(e)},"removeChildNode"),Zf=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),em=i((e,t)=>{e.style=t},"setStyle"),dx=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return pa(t,e),t},"createTextNode"),iI=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:fa(e),r=qf(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=_l(n,t,o);return qf(s)},"measureTextNode"),fx=i(e=>{if(e?.parentNode)return e.yogaNode??fx(e.parentNode)},"findClosestYogaNode"),Ll=i(e=>{fx(e)?.markDirty()},"markNodeAsDirty"),pa=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Ll(e)},"setTextNodeValue");import ge from"yoga-layout";var aI=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?ge.POSITION_TYPE_ABSOLUTE:ge.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(ge.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(ge.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(ge.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(ge.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),cI=i((e,t)=>{"margin"in t&&e.setMargin(ge.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(ge.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(ge.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(ge.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(ge.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(ge.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(ge.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),lI=i((e,t)=>{"padding"in t&&e.setPadding(ge.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(ge.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(ge.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(ge.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(ge.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(ge.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(ge.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),uI=i((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(ge.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(ge.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(ge.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(ge.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(ge.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(ge.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(ge.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(ge.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(ge.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(ge.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(ge.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(ge.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(ge.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(ge.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(ge.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(ge.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(ge.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(ge.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(ge.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(ge.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(ge.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),dI=i((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),fI=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?ge.DISPLAY_FLEX:ge.DISPLAY_NONE)},"applyDisplayStyles"),mI=i((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(ge.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(ge.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(ge.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(ge.EDGE_RIGHT,n)}},"applyBorderStyles"),pI=i((e,t)=>{"gap"in t&&e.setGap(ge.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(ge.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(ge.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),gI=i((e,t={})=>{aI(e,t),cI(e,t),lI(e,t),uI(e,t),dI(e,t),fI(e,t),mI(e,t),pI(e,t)},"styles"),tm=gI;if(Al())try{await import("./devtools-EYGFOXEU.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
4
|
-
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
5
|
-
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
6
|
-
|
|
7
|
-
To install use this command:
|
|
8
|
-
|
|
9
|
-
$ npm install --save-dev react-devtools-core
|
|
10
|
-
`.trim()+`
|
|
11
|
-
`);else throw e}var px=i((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let o of Object.keys(e))(!t||!Object.hasOwn(t,o))&&(n[o]=void 0,r=!0);if(t)for(let o of Object.keys(t))t[o]!==e[o]&&(n[o]=t[o],r=!0);return r?n:void 0},"diff"),gx=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Ol=yx,nm,hx={name:void 0,version:void 0},pr=hI({getRootHostContext:i(()=>({isInsideText:!1}),"getRootHostContext"),prepareForCommit:i(()=>null,"prepareForCommit"),preparePortalMount:i(()=>null,"preparePortalMount"),clearContainer:i(()=>!1,"clearContainer"),resetAfterCommit(e){if(typeof e.onComputeLayout=="function"&&e.onComputeLayout(),e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext(e,t){let n=e.isInsideText,r=t==="ink-text"||t==="ink-virtual-text";return n===r?e:{isInsideText:r}},shouldSetTextContent:i(()=>!1,"shouldSetTextContent"),createInstance(e,t,n,r){if(r.isInsideText&&e==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let o=e==="ink-text"&&r.isInsideText?"ink-virtual-text":e,s=Pl(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){em(s,c),s.yogaNode&&tm(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){nm=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}Zf(s,a,c)}return s},createTextInstance(e,t,n){if(!n.isInsideText)throw new Error(`Text string "${e}" must be rendered inside <Text> component`);return dx(e)},resetTextContent(){},hideTextInstance(e){pa(e,"")},unhideTextInstance(e,t){pa(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(mx.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(mx.DISPLAY_FLEX)},appendInitialChild:$l,appendChild:$l,insertBefore:Jf,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:$r.unstable_scheduleCallback,cancelCallback:$r.unstable_cancelCallback,shouldYield:$r.unstable_shouldYield,now:$r.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:$l,insertInContainerBefore:Jf,removeChildFromContainer(e,t){ma(e,t),gx(t.yogaNode)},commitUpdate(e,t,n,r){nm&&e.internal_static&&(nm.isStaticDirty=!0);let o=px(n,r),s=px(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){em(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}Zf(e,a,c)}s&&e.yogaNode&&tm(e.yogaNode,s)}},commitTextUpdate(e,t,n){pa(e,n)},removeChild(e,t){ma(e,t),gx(t.yogaNode)},setCurrentUpdatePriority(e){Ol=e},getCurrentUpdatePriority:i(()=>Ol,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Ol!==yx?Ol:yI},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:xI(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:hx.name,rendererVersion:hx.version});import bI from"widest-line";import vI from"indent-string";import $i from"yoga-layout";import Dl from"yoga-layout";var wI=i(e=>e.getComputedWidth()-e.getComputedPadding(Dl.EDGE_LEFT)-e.getComputedPadding(Dl.EDGE_RIGHT)-e.getComputedBorder(Dl.EDGE_LEFT)-e.getComputedBorder(Dl.EDGE_RIGHT),"getMaxWidth"),xx=wI;import TI from"cli-boxes";import Nl from"chalk";var SI=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?TI[n.style.borderStyle]:n.style.borderStyle,c=n.style.borderTopColor??n.style.borderColor,l=n.style.borderBottomColor??n.style.borderColor,u=n.style.borderLeftColor??n.style.borderColor,m=n.style.borderRightColor??n.style.borderColor,p=n.style.borderTopDimColor??n.style.borderDimColor,g=n.style.borderBottomDimColor??n.style.borderDimColor,x=n.style.borderLeftDimColor??n.style.borderDimColor,y=n.style.borderRightDimColor??n.style.borderDimColor,w=n.style.borderTop!==!1,S=n.style.borderBottom!==!1,I=n.style.borderLeft!==!1,$=n.style.borderRight!==!1,L=o-(I?1:0)-($?1:0),G=w?An((I?a.topLeft:"")+a.top.repeat(L)+($?a.topRight:""),c,"foreground"):void 0;w&&p&&(G=Nl.dim(G));let N=s;w&&(N-=1),S&&(N-=1);let C=(An(a.left,u,"foreground")+`
|
|
12
|
-
`).repeat(N);x&&(C=Nl.dim(C));let J=(An(a.right,m,"foreground")+`
|
|
13
|
-
`).repeat(N);y&&(J=Nl.dim(J));let ce=S?An((I?a.bottomLeft:"")+a.bottom.repeat(L)+($?a.bottomRight:""),l,"foreground"):void 0;S&&g&&(ce=Nl.dim(ce));let we=w?1:0;G&&r.write(e,t,G,{transformers:[]}),I&&r.write(e,t+we,C,{transformers:[]}),$&&r.write(e+o-1,t+we,J,{transformers:[]}),ce&&r.write(e,t+s-1,ce,{transformers:[]})}},"renderBorder"),wx=SI;var CI=i((e,t,n,r)=>{if(!n.style.backgroundColor)return;let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=n.style.borderStyle&&n.style.borderLeft!==!1?1:0,c=n.style.borderStyle&&n.style.borderRight!==!1?1:0,l=n.style.borderStyle&&n.style.borderTop!==!1?1:0,u=n.style.borderStyle&&n.style.borderBottom!==!1?1:0,m=o-a-c,p=s-l-u;if(!(m>0&&p>0))return;let g=An(" ".repeat(m),n.style.backgroundColor,"background");for(let x=0;x<p;x++)r.write(e+a,t+l+x,g,{transformers:[]})},"renderBackground"),Tx=CI;var II=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
|
|
14
|
-
`.repeat(o)+vI(t,r)}return t},"applyPaddingToText"),Bl=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===$i.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=fa(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
|
|
15
|
-
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>Bl(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:o}=e.internal_accessibility;if(o){let a=Object.keys(o).filter(c=>o[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),Sx=i((e,t,n)=>{let{offsetX:r=0,offsetY:o=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===$i.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=o+c.getComputedTop(),m=s;if(typeof e.internal_transform=="function"&&(m=[e.internal_transform,...s]),e.nodeName==="ink-text"){let g=fa(e);if(g.length>0){let x=bI(g),y=xx(c);if(x>y){let w=e.style.textWrap??"wrap";g=_l(g,y,w)}g=II(e,g),t.write(l,u,g,{transformers:m})}return}let p=!1;if(e.nodeName==="ink-box"){Tx(l,u,e,t),wx(l,u,e,t);let g=e.style.overflowX==="hidden"||e.style.overflow==="hidden",x=e.style.overflowY==="hidden"||e.style.overflow==="hidden";if(g||x){let y=g?l+c.getComputedBorder($i.EDGE_LEFT):void 0,w=g?l+c.getComputedWidth()-c.getComputedBorder($i.EDGE_RIGHT):void 0,S=x?u+c.getComputedBorder($i.EDGE_TOP):void 0,I=x?u+c.getComputedHeight()-c.getComputedBorder($i.EDGE_BOTTOM):void 0;t.clip({x1:y,x2:w,y1:S,y2:I}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let g of e.childNodes)Sx(g,t,{offsetX:l,offsetY:u,transformers:m,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),rm=Sx;import kI from"slice-ansi";import RI from"string-width";import{styledCharsFromTokens as EI,styledCharsToString as MI,tokenize as AI}from"@alcalzone/ansi-tokenize";var om=class{static{i(this,"OutputCaches")}widths=new Map;blockWidths=new Map;styledChars=new Map;getStyledChars(t){let n=this.styledChars.get(t);return n===void 0&&(n=EI(AI(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=RI(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let r=0;for(let o of t.split(`
|
|
16
|
-
`))r=Math.max(r,this.getStringWidth(o));n=r,this.blockWidths.set(t,n)}return n}},Li=class{static{i(this,"Output")}width;height;operations=[];caches=new om;constructor(t){let{width:n,height:r}=t;this.width=n,this.height=r}write(t,n,r,o){let{transformers:s}=o;r&&this.operations.push({type:"write",x:t,y:n,text:r,transformers:s})}clip(t){this.operations.push({type:"clip",clip:t})}unclip(){this.operations.push({type:"unclip"})}getGrid(){let t=[];for(let r=0;r<this.height;r++){let o=[];for(let s=0;s<this.width;s++)o.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(o)}let n=[];for(let r of this.operations)if(r.type==="clip"&&n.push(r.clip),r.type==="unclip"&&n.pop(),r.type==="write"){let{text:o,transformers:s}=r,{x:a,y:c}=r,l=o.split(`
|
|
17
|
-
`),u=n.at(-1);if(u){let p=typeof u?.x1=="number"&&typeof u?.x2=="number",g=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let x=this.caches.getWidestLine(o);if(a+x<u.x1||a>u.x2)continue}if(g){let x=l.length;if(c+x<u.y1||c>u.y2)continue}if(p&&(l=l.map(x=>{let y=a<u.x1?u.x1-a:0,w=this.caches.getStringWidth(x),S=a+w>u.x2?u.x2-a:w;return kI(x,y,S)}),a<u.x1&&(a=u.x1)),g){let x=c<u.y1?u.y1-c:0,y=l.length,w=c+y>u.y2?u.y2-c:y;l=l.slice(x,w),c<u.y1&&(c=u.y1)}}let m=0;for(let[p,g]of l.entries()){let x=t[c+m];if(!x)continue;for(let S of s)g=S(g,p);let y=this.caches.getStyledChars(g),w=a;for(let S of y){x[w]=S;let I=Math.max(1,this.caches.getStringWidth(S.value));if(I>1)for(let $=1;$<I;$++)x[w+$]={type:"char",value:"",fullWidth:!1,styles:S.styles};w+=I}m++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let o=r.filter(s=>s!==void 0);return MI(o).trimEnd()}).join(`
|
|
18
|
-
`),height:t.length}}};var gr={Single:0,Wide:1,SpacerTail:2},Di={char:" ",width:gr.Single,style:"",hyperlink:void 0};function Hl(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(Di);return{width:e,height:t,cells:n}}i(Hl,"createScreen");function Oi(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}i(Oi,"cellAt");function Cx(e,t,n,r){if(t<0||n<0||t>=e.width||n>=e.height)throw new RangeError(`setCellAt out of bounds: (${t}, ${n}) on ${e.width}x${e.height}`);let o=e.cells.slice();return o[n*e.width+t]=r,{...e,cells:o}}i(Cx,"setCellAt");function*Fl(e,t){let n=Math.max(e.width,t.width),r=Math.max(e.height,t.height);for(let o=0;o<r;o++)for(let s=0;s<n;s++){let a=Oi(e,s,o),c=Oi(t,s,o);_I(a,c)||(yield{x:s,y:o,prev:a,next:c})}}i(Fl,"diffEach");function _I(e,t){return e===t?!0:e===void 0||t===void 0?!1:e.char===t.char&&e.width===t.width&&e.style===t.style&&e.hyperlink===t.hyperlink}i(_I,"cellsEqual");var im="\x1B]8;";function PI(e){return e.endsWith("\x07")?e.slice(0,-1):e}i(PI,"stripOsc8Terminator");function $I(e){if(!e.startsWith(im))return;let t=e.slice(im.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),o=PI(r);return o.length>0?o:void 0}i($I,"parseOsc8Url");function LI(e){if(e.value==="")return{char:"",width:gr.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(im)){let o=$I(r.code);o!==void 0&&(n=o)}else t+=r.code;return{char:e.value,width:e.fullWidth?gr.Wide:gr.Single,style:t,hyperlink:n}}i(LI,"styledCharToCell");function bx(e){let t=e.getGrid(),n=e.width,r=e.height,o=Hl(n,r),s=Math.min(t.length,r);for(let a=0;a<s;a++){let c=t[a];if(!c)continue;let l=Math.min(c.length,n);for(let u=0;u<l;u++){let m=c[u];if(!m)continue;let p=LI(m);p.char===Di.char&&p.width===Di.width&&p.style===Di.style&&p.hyperlink===Di.hyperlink||(o=Cx(o,u,a,p))}}return o}i(bx,"outputToScreen");var OI=i((e,t,n)=>{if(e.yogaNode){if(t){let p=Bl(e,{skipStaticElements:!0}),g=p===""?0:p.split(`
|
|
19
|
-
`).length,x="";return e.staticNode&&(x=Bl(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:g,staticOutput:x?`${x}
|
|
20
|
-
`:"",frame:void 0}}let r=new Li({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});rm(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new Li({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),rm(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=bx(r),l=n?.columns??e.yogaNode.getComputedWidth(),u=n?.rows??e.yogaNode.getComputedHeight(),m={screen:c,viewport:{width:l,height:u},cursor:{x:0,y:c.height,visible:!0}};return{output:s,outputHeight:a,staticOutput:o?`${o.get().output}
|
|
21
|
-
`:"",frame:m}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),vx=OI;function Vn(...e){if(e.length===0)return"\x1B[";if(e.length===1)return`\x1B[${e[0]}`;let t=e.slice(0,-1),n=e[e.length-1];return`\x1B[${t.join(";")}${n}`}i(Vn,"csi");function Ix(e=1){return e===0?"":Vn(e,"A")}i(Ix,"cursorUp");function DI(e=1){return e===0?"":Vn(e,"B")}i(DI,"cursorDown");function NI(e=1){return e===0?"":Vn(e,"C")}i(NI,"cursorForward");function BI(e=1){return e===0?"":Vn(e,"D")}i(BI,"cursorBack");function kx(e){return Vn(e,"G")}i(kx,"cursorTo");var HI=Vn("G"),Rx=Vn("H");function Ex(e,t){let n="";return e<0?n+=BI(-e):e>0&&(n+=NI(e)),t<0?n+=Ix(-t):t>0&&(n+=DI(t)),n}i(Ex,"cursorMove");var FI=Vn(2,"K");function Mx(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=FI,n<e-1&&(t+=Ix(1));return t+=HI,t}i(Mx,"eraseLines");var vD=Vn("r"),Wl=Vn(0,"m");function Ax(e){return`\x1B]${e.join(";")}\x07`}i(Ax,"osc");function WI(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(t>>>0).toString(36)}i(WI,"osc8Id");function ga(e,t){if(!e)return ha;let n={id:WI(e),...t??{}},r=Object.entries(n).map(([o,s])=>`${o}=${s}`).join(":");return Ax(["8",r,e])}i(ga,"link");var ha=Ax(["8","",""]);function sm(e){let{screen:t}=e;if(t.width===0||t.height===0)return[];let n=[],r="",o;for(let s=0;s<t.height;s++){let a="";for(let c=0;c<t.width;c++){let l=Oi(t,c,s);!l||l.width===gr.SpacerTail||(l.hyperlink!==o&&(o!==void 0&&(a+=ha),l.hyperlink!==void 0&&(a+=ga(l.hyperlink)),o=l.hyperlink),l.style!==r&&(r!==""&&(a+=Wl),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}o!==void 0&&(a+=ha,o=void 0),r!==""&&(a+=Wl,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
|
|
22
|
-
`)}]}i(sm,"renderFullFrame");var UI=Object.freeze([]),jI=Object.freeze([]);function Ni(e,t){if(e===t)return{patches:UI,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:Wl}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}i(Ni,"transitionStyle");function Ul(e,t){let n=Ni(e,t),r="";for(let o of n.patches)o.type==="stdout"&&(r+=o.content);return{str:r,current:n.current}}i(Ul,"transitionStyleStr");function xo(e,t){if(e===t)return{patches:jI,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:ha}),t!==void 0&&n.push({type:"stdout",content:ga(t)}),{patches:n,current:t}}i(xo,"transitionHyperlink");function _x(e){let t=e.codePointAt(0);if(t===void 0)return!1;if(t>=129648&&t<=129791||t>=129792&&t<=130047)return!0;if(e.length>=2){for(let n=0;n<e.length;n++)if(e.charCodeAt(n)===65039)return!0}return!1}i(_x,"needsWidthCompensation");var Bi=class{static{i(this,"VirtualScreen")}viewportWidth;cursor;diff;_cursorMut;_diffMut=[];constructor(t,n){this.viewportWidth=n,this._cursorMut={x:t.x,y:t.y},this.cursor=this._cursorMut,this.diff=this._diffMut}txn(t){let[n,r]=t(this.cursor);for(let o of n)this._diffMut.push(o);this._cursorMut.x+=r.dx,this._cursorMut.y+=r.dy}},Lr={type:"carriageReturn"},ya={type:"stdout",content:`
|
|
23
|
-
`};function jl(e,t,n){let r=t.width===gr.Wide?2:1,o=e.viewportWidth,s=!1;return e.txn(a=>{let c=a.x;if(r===2&&c<o){let m=t.char.length>2?o:o+1;if(c+2>=m)return[[],{dx:0,dy:0}]}let l=[];n.length>0&&l.push({type:"stdout",content:n});let u=r===2&&_x(t.char);return u&&c+1<o&&(l.push({type:"cursorTo",col:c+2}),l.push({type:"stdout",content:" "}),l.push({type:"cursorTo",col:c+1})),l.push({type:"stdout",content:t.char}),u&&l.push({type:"cursorTo",col:c+r+1}),s=!0,c>=o?[l,{dx:r-c,dy:1}]:[l,{dx:r,dy:0}]}),s}i(jl,"writeCellWithStyleStr");function xa(e,t,n){e.txn(r=>{let o=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[Lr,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:s!==0?[[Lr,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:[[{type:"cursorMove",x:o,y:s}],{dx:o,dy:s}]})}i(xa,"moveCursorTo");function Gl(e,t,n,r){let o="",s;for(let a=n;a<r;a++){if(e.cursor.y<a){let u=a-e.cursor.y;e.txn(m=>{let p=new Array(1+u);p[0]=Lr;for(let g=0;g<u;g++)p[1+g]=ya;return[p,{dx:-m.x,dy:u}]})}for(let u=0;u<t.screen.width;u++){let m=Oi(t.screen,u,a);if(!m||m.width===gr.SpacerTail||m.char===" "&&m.style===""&&m.hyperlink===void 0)continue;xa(e,u,a);let p=xo(s,m.hyperlink);for(let x of p.patches)e.txn(()=>[[x],{dx:0,dy:0}]);s=p.current;let g=Ul(o,m.style);jl(e,m,g.str)&&(o=g.current)}let c=Ni(o,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);o=c.current;let l=xo(s,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}]);s=l.current,e.txn(u=>[[Lr,ya],{dx:-u.x,dy:1}])}if(o!==""||s!==void 0){let a=Ni(o,"");for(let l of a.patches)e.txn(()=>[[l],{dx:0,dy:0}]);let c=xo(s,void 0);for(let l of c.patches)e.txn(()=>[[l],{dx:0,dy:0}])}}i(Gl,"renderFrameSlice");function am(e,t){let n="";for(let r=0;r<e.width;r++){let o=Oi(e,r,t);n+=o?.char??" "}return n.trimEnd()}i(am,"readLine");function Kl(e,t){let n=new Bi({x:0,y:0},e.viewport.width);Gl(n,e,0,e.screen.height);let r=[{type:"clearTerminal",reason:t}];for(let o of n.diff)r.push(o);return r}i(Kl,"fullResetSequence_CAUSES_FLICKER");function cm(e,t){let n=e.cursor.y>=e.screen.height,r=t.screen.height>e.screen.height,o=t.screen.height<e.screen.height,s=n&&e.screen.height>=e.viewport.height,a=t.screen.height<=e.viewport.height,c=s?1:0;return{viewportY:r?Math.max(0,e.screen.height-e.viewport.height+c):Math.max(e.screen.height,t.screen.height)-t.viewport.height+c,cursorAtBottom:n,growing:r,shrinking:o,prevHadScrollback:s,nextFitsViewport:a}}i(cm,"computeViewportState");function Px(e,t,n){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let r=cm(e,t);if(r.prevHadScrollback&&r.nextFitsViewport&&r.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&r.cursorAtBottom&&!r.growing){let s=e.screen.height-e.viewport.height+1;for(let a of Fl(e.screen,t.screen))if(a.y<s)return{reset:!0,reason:"offscreen",trigger:{y:a.y,prevLine:n(e.screen,a.y),nextLine:n(t.screen,a.y)}}}return r.shrinking&&e.screen.height-t.screen.height>e.viewport.height?{reset:!0,reason:"offscreen"}:{reset:!1}}i(Px,"shouldFullReset");function $x(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}i($x,"shouldSkipDiff");var Vl=class{static{i(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n){if(!this.options.isTTY)return sm(n);let r=Px(t,n,am);return r.reset?Kl(n,r.reason):zI(t,n)}reset(){}};function lm(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}i(lm,"emitPatches");function Lx(e,t,n){if(t!==""){let r=Ni(t,"");lm(e,r.patches)}if(n!==void 0){let r=xo(n,void 0);lm(e,r.patches)}return{style:"",hyperlink:void 0}}i(Lx,"resetStyleAndHyperlink");function GI(e,t,n){let r=t.screen.height-n.screen.height;e.txn(o=>[[{type:"clear",count:r},{type:"cursorMove",x:0,y:-1}],{dx:-o.x,dy:-r}])}i(GI,"applyShrink");function KI(e,t,n,r){let o="",s,a=!1;for(let c of Fl(t.screen,n.screen)){let{x:l,y:u,prev:m,next:p}=c;if(r.growing&&u>=t.screen.height)continue;let g=!!(p&&p.char===" "&&p.style===""&&p.hyperlink===void 0);if(!$x(m,p,g)){if(u<r.viewportY){a=!0;break}if(xa(e,l,u),p){let x=xo(s,p.hyperlink);lm(e,x.patches),s=x.current;let y=Ul(o,p.style);jl(e,p,y.str)&&(o=y.current)}else if(m){let x=Lx(e,o,s);o=x.style,s=x.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:o,currentHyperlink:s,needsFullReset:a}}i(KI,"diffPass");function VI(e,t){t.cursor.y>=t.screen.height?e.txn(n=>{let r=t.cursor.y-n.y;if(r>0){let s=new Array(1+r);s[0]=Lr;for(let a=0;a<r;a++)s[1+a]=ya;return[s,{dx:-n.x,dy:r}]}let o=t.cursor.y-n.y;return o!==0||n.x!==t.cursor.x?[[Lr,{type:"cursorMove",x:t.cursor.x,y:o}],{dx:t.cursor.x-n.x,dy:o}]:[[],{dx:0,dy:0}]}):xa(e,t.cursor.x,t.cursor.y)}i(VI,"restoreCursor");function zI(e,t){let n=cm(e,t),r=new Bi(e.cursor,t.viewport.width);n.shrinking&&GI(r,e,t);let o=KI(r,e,t,n);return o.needsFullReset?Kl(t,"offscreen"):(Lx(r,o.currentStyle,o.currentHyperlink),n.growing&&Gl(r,t,e.screen.height,t.screen.height),VI(r,t),r.diff)}i(zI,"renderIncremental");var XI="\x1B[?25l",YI="\x1B[?25h",qI=`\x1B[2J${Rx}`;function QI(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return XI;case"cursorShow":return YI;case"cursorMove":return Ex(e.x,e.y);case"cursorTo":return kx(e.col);case"clear":return Mx(e.count);case"clearTerminal":return qI;case"hyperlink":return ga(e.uri)}}i(QI,"patchToBytes");function zl(e,t){let n="";for(let r of t)n+=QI(r);n.length>0&&e.write(n)}i(zl,"applyDiff");function Ox(e,t){if(t===void 0)return!1;let n=e.cellLogUpdate.render(e.prevFrame,t);return zl(e.stdout,n),e.prevFrame=t,!0}i(Ox,"applyCellFrame");function wa(e,t){return{screen:Hl(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}i(wa,"emptyFrame");import JI from"is-in-ci";var Hi="\x1B[?2026h",wo="\x1B[?2026l";function Fi(e){return"isTTY"in e&&e.isTTY===!0&&!JI}i(Fi,"shouldSynchronize");var ZI=new WeakMap,Dx=ZI;import{EventEmitter as wk}from"node:events";import Tk from"node:process";import To,{useState as fm,useRef as Wi,useCallback as dt,useMemo as Ui,useEffect as ew}from"react";import Sk from"cli-cursor";var ek=i(e=>e>=48&&e<=63,"isCsiParameterByte"),tk=i(e=>e>=32&&e<=47,"isCsiIntermediateByte"),Bx=i(e=>e>=64&&e<=126,"isCsiFinalByte");function nk(e,t,n){let r=t+n+1,o=r;for(;o<e.length;o+=1){let s=e.codePointAt(o);if(s===void 0)return"pending";if(!(ek(s)||tk(s))&&!(s===91&&o===r))return Bx(s)?{sequence:e.slice(t,o+1),nextIndex:o+1}:void 0}return"pending"}i(nk,"parseCsiSequence");function rk(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let o=e.codePointAt(r-1);if(!(o===void 0||!Bx(o)))return{sequence:e.slice(t,r),nextIndex:r}}i(rk,"parseSs3Sequence");function Nx(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return nk(e,t,n);if(r==="O")return rk(e,t,n)}i(Nx,"parseControlSequence");function ok(e,t){let n=e.codePointAt(t+1),r=n!==void 0&&n>65535?2:1,o=t+1+r;return{sequence:e.slice(t,o),nextIndex:o}}i(ok,"parseEscapedCodePoint");function ik(e){let t=[],n=0,r=i(o=>({events:t,pending:e.slice(o)}),"pendingFrom");for(;n<e.length;){let o=e.indexOf("\x1B",n);if(o===-1)return t.push(e.slice(n)),{events:t,pending:""};if(o>n&&t.push(e.slice(n,o)),o===e.length-1)return r(o);let s=Nx(e,o,1);if(s==="pending")return r(o);if(s){t.push(s.sequence),n=s.nextIndex;continue}if(e[o+1]==="\x1B"){if(o+2>=e.length)return r(o);let l=Nx(e,o,2);if(l==="pending")return r(o);if(l){t.push(l.sequence),n=l.nextIndex;continue}t.push(e.slice(o,o+2)),n=o+2;continue}let c=ok(e,o);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}i(ik,"parseKeypresses");function Xl(){let e="";return{push(t){let n=ik(e+t);return e=n.pending,n.events},hasPendingEscape(){return e.startsWith("\x1B")},flushPendingEscape(){if(!e.startsWith("\x1B"))return;let t=e;return e="",t},reset(){e=""}}}i(Xl,"createInputParser");import{createContext as sk}from"react";var Hx=sk({exit(){}});Hx.displayName="InternalAppContext";var Fx=Hx;import{EventEmitter as ak}from"node:events";import{createContext as ck}from"react";var lk={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},Wx=ck({stdin:lk,internal_eventEmitter:new ak,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});Wx.displayName="InternalStdinContext";var Ux=Wx;import{createContext as uk}from"react";var dk={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},jx=uk({stdout:dk,write(){}});jx.displayName="InternalStdoutContext";var Gx=jx;import{createContext as fk}from"react";var mk={isTTY:!1,write(){return!0},on(){},off(){}},Kx=fk({stderr:mk,write(){}});Kx.displayName="InternalStderrContext";var Vx=Kx;import{createContext as pk}from"react";var zx=pk({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});zx.displayName="InternalFocusContext";var Xx=zx;import{createContext as gk}from"react";var Yx=gk({setCursorPosition(){}});Yx.displayName="InternalCursorContext";var qx=Yx;import yk,{PureComponent as xk}from"react";import*as Yl from"node:fs";import{cwd as Zx}from"node:process";import ht from"react";import Qx from"stack-utils";import hk from"code-excerpt";var um=i(e=>e?.replace(`file://${Zx()}/`,""),"cleanupPath"),Jx=new Qx({cwd:Zx(),internals:Qx.nodeInternals()});function dm({error:e}){let t=e.stack?e.stack.split(`
|
|
24
|
-
`).slice(1):void 0,n=t?Jx.parseLine(t[0]):void 0,r=um(n?.file),o,s=0;if(r&&n?.line&&Yl.existsSync(r)){let a=Yl.readFileSync(r,"utf8");if(o=hk(a,n.line),o)for(let{line:c}of o)s=Math.max(s,String(c).length)}return ht.createElement(pn,{flexDirection:"column",padding:1},ht.createElement(pn,null,ht.createElement(Vt,{backgroundColor:"red",color:"white"}," ","ERROR"," "),ht.createElement(Vt,null," ",e.message)),n&&r&&ht.createElement(pn,{marginTop:1},ht.createElement(Vt,{dimColor:!0},r,":",n.line,":",n.column)),n&&o&&ht.createElement(pn,{marginTop:1,flexDirection:"column"},o.map(({line:a,value:c})=>ht.createElement(pn,{key:a},ht.createElement(pn,{width:s+1},ht.createElement(Vt,{dimColor:a!==n.line,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0,"aria-label":a===n.line?`Line ${a}, error`:`Line ${a}`},String(a).padStart(s," "),":")),ht.createElement(Vt,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&ht.createElement(pn,{marginTop:1,flexDirection:"column"},e.stack.split(`
|
|
25
|
-
`).slice(1).map(a=>{let c=Jx.parseLine(a);return c?ht.createElement(pn,{key:a},ht.createElement(Vt,{dimColor:!0},"- "),ht.createElement(Vt,{dimColor:!0,bold:!0},c.function),ht.createElement(Vt,{dimColor:!0,color:"gray","aria-label":`at ${um(c.file)??""} line ${c.line} column ${c.column}`}," ","(",um(c.file)??"",":",c.line,":",c.column,")")):ht.createElement(pn,{key:a},ht.createElement(Vt,{dimColor:!0},"- "),ht.createElement(Vt,{dimColor:!0,bold:!0},a,"\\t"," "))})))}i(dm,"ErrorOverview");var Ta=class extends xk{static{i(this,"ErrorBoundary")}static displayName="InternalErrorBoundary";static getDerivedStateFromError(t){return{error:t}}state={error:void 0};componentDidCatch(t){this.props.onError(t)}render(){return this.state.error?yk.createElement(dm,{error:this.state.error}):this.props.children}};var Ck=" ",bk="\x1B[Z",vk="\x1B";function tw({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:o,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,m]=fm(!0),[p,g]=fm(void 0),[,x]=fm([]),y=Wi(0),w=Wi(0),S=Wi(new wk);S.current.setMaxListeners(1/0);let I=Wi(void 0),$=Wi(Xl()),L=Wi(void 0),G=dt(()=>{L.current&&(clearImmediate(L.current),L.current=void 0)},[]),N=t.isTTY,C=dt(()=>{I.current&&(t.removeListener("readable",I.current),I.current=void 0)},[t]),J=dt(()=>{t.setRawMode(!1),C(),t.unref(),w.current=0,$.current.reset(),G()},[t,C,G]),ce=dt(A=>{N&&w.current>0&&J(),c(A)},[N,J,c]),we=dt(A=>{if(A===""&&a){ce();return}A===vk&&g(_=>_&&void 0)},[a,ce]),F=dt(A=>{we(A),S.current.emit("input",A)},[we]),X=dt(()=>{G(),L.current=setImmediate(()=>{L.current=void 0;let A=$.current.flushPendingEscape();A&&F(A)})},[G,F]),v=dt(()=>{G();let A;for(;(A=t.read())!==null;){let _=$.current.push(A);for(let P of _)F(P)}$.current.hasPendingEscape()&&X()},[t,F,G,X]),M=dt(A=>{if(!N)throw t===Tk.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
|
|
26
|
-
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.
|
|
27
|
-
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),A){w.current===0&&(t.ref(),t.setRawMode(!0),I.current=v,t.addListener("readable",v)),w.current++;return}w.current!==0&&--w.current===0&&J()},[N,t,v,J]),Z=dt((A,_)=>{let P=A.findIndex(Y=>Y.id===_);for(let Y=P+1;Y<A.length;Y++){let xe=A[Y];if(xe?.isActive)return xe.id}},[]),Ce=dt((A,_)=>{let P=A.findIndex(Y=>Y.id===_);for(let Y=P-1;Y>=0;Y--){let xe=A[Y];if(xe?.isActive)return xe.id}},[]),de=dt(()=>{x(A=>(g(_=>{let P=A.find(xe=>xe.isActive)?.id;return Z(A,_)??P}),A))},[Z]),Be=dt(()=>{x(A=>(g(_=>{let P=A.findLast(xe=>xe.isActive)?.id;return Ce(A,_)??P}),A))},[Ce]);ew(()=>{let A=i(P=>{!u||y.current===0||(P===Ck&&de(),P===bk&&Be())},"handleTabNavigation");S.current.on("input",A);let _=S.current;return()=>{_.off("input",A)}},[u,de,Be]);let ie=dt(()=>{m(!0)},[]),se=dt(()=>{m(!1)},[]),ne=dt(A=>{x(_=>(_.some(Y=>Y?.id===A)&&g(A),_))},[]),V=dt((A,{autoFocus:_})=>{x(P=>(y.current=P.length+1,[...P,{id:A,isActive:!0}])),_&&g(P=>P??A)},[]),ye=dt(A=>{g(_=>_===A?void 0:_),x(_=>{let P=_.filter(Y=>Y.id!==A);return y.current=P.length,P})},[]),it=dt(A=>{x(_=>_.map(P=>P.id!==A?P:{id:A,isActive:!0}))},[]),be=dt(A=>{g(_=>_===A?void 0:_),x(_=>_.map(P=>P.id!==A?P:{id:A,isActive:!1}))},[]);ew(()=>()=>{Sk.show(n),N&&w.current>0&&J()},[n,N,J]);let Te=Ui(()=>({exit:ce}),[ce]),Le=Ui(()=>({stdin:t,setRawMode:M,isRawModeSupported:N,internal_exitOnCtrlC:a,internal_eventEmitter:S.current}),[t,M,N,a]),Se=Ui(()=>({stdout:n,write:o}),[n,o]),pt=Ui(()=>({stderr:r,write:s}),[r,s]),et=Ui(()=>({setCursorPosition:l}),[l]),Je=Ui(()=>({activeId:p,add:V,remove:ye,activate:it,deactivate:be,enableFocus:ie,disableFocus:se,focusNext:de,focusPrevious:Be,focus:ne}),[p,V,ye,it,be,ie,se,de,Be,ne]);return To.createElement(Fx.Provider,{value:Te},To.createElement(Ux.Provider,{value:Le},To.createElement(Gx.Provider,{value:Se},To.createElement(Vx.Provider,{value:pt},To.createElement(Xx.Provider,{value:Je},To.createElement(qx.Provider,{value:et},To.createElement(Ta,{onError:ce},e)))))))}i(tw,"App");tw.displayName="InternalApp";var nw=tw;var Ik={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function rw(e){let t=0;for(let n of e)t|=Ik[n];return t}i(rw,"resolveFlags");var hr={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var ql=i(()=>{},"noop"),Ok=27,Dk=91,Nk=63,Bk=117,Hk=48,Fk=57,Wk=i(e=>e>=Hk&&e<=Fk,"isDigitByte"),iw=i((e,t)=>{if(e[t]!==Ok||e[t+1]!==Dk||e[t+2]!==Nk)return;let n=t+3,r=n;for(;n<e.length&&Wk(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===Bk)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),Uk=i(e=>{for(let t=0;t<e.length;t++)if(iw(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),jk=i(e=>{let t=[],n=0;for(;n<e.length;){let r=iw(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),mm=i(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),Gk=class{static{i(this,"Ink")}isConcurrent;options;cursorPosition;isScreenReaderEnabled;isUnmounted;isUnmounting;lastOutput;lastOutputToRender;lastOutputHeight;lastTerminalWidth;container;rootNode;fullStaticOutput;exitPromise;exitResult;beforeExitHandler;restoreConsole;unsubscribeResize;throttledOnRender;hasPendingThrottledRender=!1;kittyProtocolEnabled=!1;cancelKittyDetection;altScreenActive=!1;shellMode;mouseTrackingActive=!1;shellTransitionPhase=void 0;cursorHidden=!1;constructor(t){Rk(this),this.options=t,this.rootNode=Pl("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??ji.env.INK_SCREEN_READER==="true";let n=t.debug||this.isScreenReaderEnabled,r=t.maxFps??30,o=r>0?Math.max(1,Math.ceil(1e3/r)):0;if(n)this.rootNode.onRender=this.onRender,this.throttledOnRender=void 0;else{let a=kk(this.onRender,o,{leading:!0,trailing:!0});this.rootNode.onRender=()=>{this.hasPendingThrottledRender=!0,a()},this.throttledOnRender=a}this.rootNode.onImmediateRender=this.onRender,this.cellLogUpdate=new Vl({isTTY:!!t.stdout.isTTY}),this.prevFrame=wa(t.stdout.rows??24,t.stdout.columns??80),this.cursorPosition=void 0,this.isUnmounted=!1,this.isUnmounting=!1,this.isConcurrent=t.concurrent??!1,this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.lastTerminalWidth=this.getTerminalWidth(),this.fullStaticOutput="",this.shellMode=t.shellMode??"virtual";let s=t.concurrent?_k:Ak;this.container=pr.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=Ek(this.unmount,{alwaysLast:!1}),Al()&&pr.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),Or||(t.stdout.on("resize",this.resized),this.unsubscribeResize=()=>{t.stdout.off("resize",this.resized)}),this.initKittyKeyboard()}getTerminalWidth=i(()=>this.options.stdout.columns?this.options.stdout.columns:Lk()?.columns??80,"getTerminalWidth");resized=i(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){let n=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";n.length>0&&this.options.stdout.write(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=wa(this.options.stdout.rows??24,t)}this.calculateLayout(),this.onRender(),this.lastTerminalWidth=t},"resized");resolveExitPromise=i(()=>{},"resolveExitPromise");rejectExitPromise=i(()=>{},"rejectExitPromise");unsubscribeExit=i(()=>{},"unsubscribeExit");handleAppExit=i(t=>{if(!(this.isUnmounted||this.isUnmounting)){if(mm(t)){this.unmount(t);return}this.exitResult=t,this.unmount()}},"handleAppExit");setCursorPosition=i(t=>{if(t===void 0){this.cursorPosition=void 0;return}let n=this.getTerminalWidth(),r=this.options.stdout.rows??24;if(n<=0||r<=0){this.cursorPosition=void 0;return}let o=Math.max(0,Math.min(t.x|0,n-1)),s=Math.max(0,Math.min(t.y|0,r-1));this.cursorPosition={x:o,y:s}},"setCursorPosition");resetOutputTracking=i(()=>{this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.cursorPosition=void 0,this.invalidateCellFrame()},"resetOutputTracking");usesVirtualShellOwnership=i((t={})=>t.altScreenActive??this.altScreenActive,"usesVirtualShellOwnership");beginShellTransition(t){this.shellTransitionPhase=t}setShellMode(t,n){let r=this.shellMode,o=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.shellMode=t,this.mouseTrackingActive=a;let c=this.usesVirtualShellOwnership();(r!==t&&(s||c)||o!==a&&c)&&this.resetOutputTracking()}setAltScreenActive(t,n){let r=this.altScreenActive,o=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.altScreenActive=t,this.mouseTrackingActive=a,this.shellTransitionPhase=void 0;let c=this.usesVirtualShellOwnership();(r!==t||o!==a&&(s||c))&&this.resetOutputTracking()}clearTextSelection(){}restoreLastOutput=i(()=>{if(this.prevFrame.screen.height===0)return;let t=wa(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);zl(this.options.stdout,n)},"restoreLastOutput");shouldRestoreManagedShellAfterExternalWrite=i(()=>this.altScreenActive,"shouldRestoreManagedShellAfterExternalWrite");calculateLayout=i(()=>{let t=this.getTerminalWidth();this.rootNode.yogaNode.setWidth(t),this.rootNode.yogaNode.calculateLayout(void 0,void 0,Pk.DIRECTION_LTR)},"calculateLayout");onRender=i(()=>{if(this.hasPendingThrottledRender=!1,this.isUnmounted)return;!this.cursorHidden&&!Or&&!this.options.debug&&!this.isScreenReaderEnabled&&(this.options.stdout.write("\x1B[?25l"),this.cursorHidden=!0);let t=performance.now(),n={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:r,outputHeight:o,staticOutput:s,frame:a}=vx(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t});let c=s&&s!==`
|
|
28
|
-
`;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.options.stdout.write(this.fullStaticOutput+r);return}if(Or){c&&this.options.stdout.write(s),this.lastOutput=r,this.lastOutputToRender=r+`
|
|
29
|
-
`,this.lastOutputHeight=o;return}if(this.isScreenReaderEnabled){let p=Fi(this.options.stdout);if(p&&this.options.stdout.write(Hi),c){let y=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(y+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){p&&this.options.stdout.write(wo);return}let g=this.getTerminalWidth(),x=$k(r,g,{trim:!1,hard:!0});if(c)this.options.stdout.write(x);else{let y=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(y+x)}this.lastOutput=r,this.lastOutputToRender=x,this.lastOutputHeight=x===""?0:x.split(`
|
|
30
|
-
`).length,p&&this.options.stdout.write(wo);return}c&&(this.fullStaticOutput+=s);let l=this.altScreenActive,m=this.options.stdout.isTTY&&o>=this.options.stdout.rows&&l?r:r+`
|
|
31
|
-
`;if(this.lastOutputHeight>=this.options.stdout.rows&&l){let p=Fi(this.options.stdout);p&&this.options.stdout.write(Hi);let g=this.fullStaticOutput+m;if(this.altScreenActive){let x=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(x+g)}else this.options.stdout.write(yr.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?g:m,this.lastOutputHeight=o,this.invalidateCellFrame(),p&&this.options.stdout.write(wo);return}if(c){let p=Fi(this.options.stdout);p&&this.options.stdout.write(Hi);let g=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(g+s),this.invalidateCellFrame(),this.applyCellFrame(a),p&&this.options.stdout.write(wo)}else this.applyCellFrame(a);this.lastOutput=r,this.lastOutputToRender=m,this.lastOutputHeight=o},"onRender");applyCellFrame=i(t=>{let n={cellLogUpdate:this.cellLogUpdate,prevFrame:this.prevFrame,stdout:this.options.stdout},r=Ox(n,t);return this.prevFrame=n.prevFrame,r},"applyCellFrame");invalidateCellFrame=i(()=>{this.cellLogUpdate.reset(),this.prevFrame=wa(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");render(t){let n=ow.createElement(Ai.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},ow.createElement(nw,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,exitOnCtrlC:this.options.exitOnCtrlC,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,setCursorPosition:this.setCursorPosition,onExit:this.handleAppExit},t));this.options.concurrent?pr.updateContainer(n,this.container,null,ql):(pr.updateContainerSync(n,this.container,null,ql),pr.flushSyncWork())}writeToStdout(t){if(this.isUnmounted)return;if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(Or){this.options.stdout.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.options.stdout.write(t),this.invalidateCellFrame();return}let n=Fi(this.options.stdout);n&&this.options.stdout.write(Hi);let r=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(r+t),this.restoreLastOutput(),n&&this.options.stdout.write(wo)}writeToStderr(t){if(this.isUnmounted)return;if(this.options.debug){this.options.stderr.write(t),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(Or){this.options.stderr.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.options.stderr.write(t),this.invalidateCellFrame();return}let n=Fi(this.options.stdout);n&&this.options.stdout.write(Hi);let r=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";r.length>0&&this.options.stdout.write(r),this.options.stderr.write(t),this.restoreLastOutput(),n&&this.options.stdout.write(wo)}unmount(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(ji.off("beforeExit",this.beforeExitHandler),this.beforeExitHandler=void 0);let n=this.options.stdout,r=!n.destroyed&&!n.writableEnded&&(n.writable??!0);if(i(u=>{typeof u.flush=="function"&&(r?u.flush():typeof u.cancel=="function"&&u.cancel())},"settleThrottle")(this.throttledOnRender??{}),r&&(!this.throttledOnRender||!this.hasPendingThrottledRender&&this.fullStaticOutput==="")&&(this.calculateLayout(),this.onRender()),this.isUnmounted=!0,this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),this.cancelKittyDetection&&this.cancelKittyDetection(),r){if(this.kittyProtocolEnabled)try{this.options.stdout.write("\x1B[<u")}catch{}Or&&this.options.stdout.write(this.lastOutput+`
|
|
32
|
-
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?pr.updateContainer(null,this.container,null,ql):(pr.updateContainerSync(null,this.container,null,ql),pr.flushSyncWork()),Dx.delete(this.options.stdout);let{exitResult:s}=this,a=i(()=>{mm(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!mm(t),l=n._writableState!==void 0||n.writableLength!==void 0;c?a():r&&l?this.options.stdout.write("",a):setImmediate(a)}async waitUntilExit(){return this.exitPromise||=new Promise((t,n)=>{this.resolveExitPromise=t,this.rejectExitPromise=n}),this.beforeExitHandler||(this.beforeExitHandler=()=>{this.unmount()},ji.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!Or&&!this.options.debug){let t=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";t.length>0&&this.options.stdout.write(t),this.invalidateCellFrame()}}patchConsole(){this.options.debug||(this.restoreConsole=Mk((t,n)=>{t==="stdout"&&this.writeToStdout(n),t==="stderr"&&(n.startsWith("The above error occurred")||this.writeToStderr(n))}))}initKittyKeyboard(){if(!this.options.kittyKeyboard)return;let t=this.options.kittyKeyboard,n=t.mode??"auto";if(n==="disabled"||!this.options.stdin.isTTY||!this.options.stdout.isTTY)return;let r=t.flags??["disambiguateEscapeCodes"];if(n==="enabled"){this.enableKittyProtocol(r);return}let o=ji.env.TERM??"",s=ji.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in ji.env||o==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!Or&&a&&this.confirmKittySupport(r)}confirmKittySupport(t){let{stdin:n,stdout:r}=this.options,o=[],s=i(()=>{this.cancelKittyDetection=void 0,clearTimeout(c),n.removeListener("data",a);let l=jk(o);o=[],l.length>0&&n.unshift(Buffer.from(l))},"cleanup"),a=i(l=>{let u=typeof l=="string"?Buffer.from(l):l;for(let m of u)o.push(m);Uk(o)&&(s(),this.isUnmounted||this.enableKittyProtocol(t))},"onData");n.on("data",a);let c=setTimeout(s,200);this.cancelKittyDetection=s,r.write("\x1B[?u")}enableKittyProtocol(t){this.options.stdout.write(`\x1B[>${rw(t)}u`),this.kittyProtocolEnabled=!0}},sw=Gk;var Sa=class{static{i(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new sw(t),this.isConcurrent=this.engineInstance.isConcurrent}render=i(t=>{this.engineInstance.render(t)},"render");unmount=i(t=>{this.engineInstance.unmount(t)},"unmount");waitUntilExit=i(()=>this.engineInstance.waitUntilExit(),"waitUntilExit");clear=i(()=>{this.engineInstance.clear()},"clear");setAltScreenActive=i((t,n)=>{this.engineInstance.setAltScreenActive?.(t,n)},"setAltScreenActive");setShellMode=i((t,n)=>{this.engineInstance.setShellMode?.(t,n)},"setShellMode");beginShellTransition=i(t=>{this.engineInstance.beginShellTransition?.(t)},"beginShellTransition");clearTextSelection=i(()=>{this.engineInstance.clearTextSelection?.()},"clearTextSelection")};var Ql=new WeakMap,Vk={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},zk={isTTY:!1,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},Xk={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function Yk(e={}){return e instanceof Kk?{stdout:e}:e}i(Yk,"getOptions");function qk(e,t,n){let r=Ql.get(e);return r?r.isConcurrent!==n&&console.warn(`Warning: render() was called with concurrent: ${n}, but the existing renderer for this stdout uses concurrent: ${r.isConcurrent}. The concurrent option only takes effect on the first render. Call unmount() first if you need to change the rendering mode.`):(r=t(),Ql.set(e,r)),r}i(qk,"getInstance");function Jl(e){return Ql.get(e)}i(Jl,"getRendererInstance");function pm(e,t){let n={stdout:Vk,stdin:Xk,stderr:zk,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...Yk(t)},r=qk(n.stdout,()=>new Sa(n),n.concurrent??!1);return r.render(e),{rerender:r.render,unmount(){r.unmount()},waitUntilExit:r.waitUntilExit,cleanup:i(()=>{Ql.delete(n.stdout)},"cleanup"),clear:r.clear}}i(pm,"render");var aw=pn,cw=Vt,lw=Yf;import{Buffer as Jk}from"node:buffer";var Zk=/^(?:\x1b)([a-zA-Z0-9])$/,eR=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,dw={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},fw=[...Object.values(dw),"backspace"],tR=i(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),nR=i(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),mw=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,rR=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,oR={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},iR={2:"insert",3:"delete",5:"pageup",6:"pagedown",7:"home",8:"end",11:"f1",12:"f2",13:"f3",14:"f4",15:"f5",17:"f6",18:"f7",19:"f8",20:"f9",21:"f10",23:"f11",24:"f12"},uw={27:"escape",9:"tab",127:"delete",8:"backspace",57358:"capslock",57359:"scrolllock",57360:"numlock",57361:"printscreen",57362:"pause",57363:"menu",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24"},pw=i(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),gm=i(e=>pw(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function gw(e){return e===3?"release":e===2?"repeat":"press"}i(gw,"resolveEventType");function hw(e){return{ctrl:!!(e&hr.ctrl),shift:!!(e&hr.shift),meta:!!(e&hr.meta),option:!!(e&hr.alt),super:!!(e&hr.super),hyper:!!(e&hr.hyper),capsLock:!!(e&hr.capsLock),numLock:!!(e&hr.numLock)}}i(hw,"parseKittyModifiers");function sR(e){let t=mw.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=t[2]?Math.max(0,Number.parseInt(t[2],10)-1):0,o=t[3]?Number.parseInt(t[3],10):1,s=t[4];if(!pw(n))return null;let a;s&&(a=s.split(":").map(u=>gm(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):uw[n]?(c=uw[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=gm(n).toLowerCase(),l=!0),l&&!a&&(a=gm(n)),{name:c,...hw(r),eventType:gw(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}i(sR,"parseKittyKeypress");function aR(e){let t=rR.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=Math.max(0,Number.parseInt(t[2],10)-1),o=Number.parseInt(t[3],10),s=t[4],a=s==="~"?iR[n]:oR[s];return a?{name:a,...hw(r),eventType:gw(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}i(aR,"parseKittySpecialKey");var hm="\x1B[200~",cR="\x1B[201~";function lR(e){if(!e.startsWith(hm))return null;let t=e.indexOf(cR,hm.length);return t===-1?null:e.slice(hm.length,t)}i(lR,"extractBracketedPaste");function ym(e=""){let t=e,n;if(Jk.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=""),typeof t=="string"){let a=lR(t);if(a!==null)return{name:"paste",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,isPaste:!0,isPrintable:!1,text:a}}let r=sR(t);if(r)return r;let o=aR(t);if(o)return o;if(mw.test(t))return{name:"",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,isKittyProtocol:!0,isPrintable:!1};let s={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t};if(s.sequence=s.sequence||t||s.name,t==="\r"||t==="\x1B\r")s.raw=void 0,s.name="return",s.option=t.length===2;else if(t===`
|
|
33
|
-
`)s.name="enter";else if(t===" ")s.name="tab";else if(t==="\b"||t==="\x1B\b")s.name="backspace",s.meta=t.charAt(0)==="\x1B";else if(t==="\x7F"||t==="\x1B\x7F")s.name="delete",s.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")s.name="escape",s.meta=t.length===2;else if(t===" "||t==="\x1B ")s.name="space",s.meta=t.length===2;else if(t.length===1&&t<="")s.name=String.fromCharCode(t.charCodeAt(0)+97-1),s.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")s.name="number";else if(t.length===1&&t>="a"&&t<="z")s.name=t;else if(t.length===1&&t>="A"&&t<="Z")s.name=t.toLowerCase(),s.shift=!0;else if(n=Zk.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=eR.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(s.option=!0);let c=[n[1],n[2],n[4],n[6]].filter(Boolean).join(""),l=Number(n[3]||n[5]||1)-1;s.ctrl=!!(l&4),s.meta=!!(l&10),s.shift=!!(l&1),s.code=c,s.name=dw[c]??"",s.shift=tR(c)||s.shift,s.ctrl=nR(c)||s.ctrl}return s}i(ym,"parseKeypress");var fR=50;function eu(e){return{columns:e?.columns??80,rows:e?.rows??24}}i(eu,"resolveTerminalSize");var Dr=uR(null),xm={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")};var Tw={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function mR(e){for(let t of e)if(t.rawMode)return!0;return!1}i(mR,"hasRawModeSubscribers");function pR({stdin:e,setRawMode:t,isRawModeSupported:n}){let r=new Set,o,s=!1,a=i(m=>{for(let p of r)p.listener(m)},"handleData"),c=i(()=>{if(s){try{t(!1)}catch{}s=!1}},"disableRawModeIfOwned"),l=i(()=>{o?.off?.("data",a),o=void 0,c()},"detachInput"),u=i(()=>{if(o&&o!==e&&l(),!e||r.size===0){l();return}if(o!==e&&(e.on?.("data",a),o=e),!(n&&mR(r))){c();return}if(e.isRaw===!1&&!s)try{t(!0),s=!0}catch{s=!1}},"syncInputOwnership");return{subscribe(m,p={}){let g={listener:m,rawMode:p.rawMode!==!1};return r.add(g),u(),()=>{r.delete(g),u()}},dispose(){r.clear(),l()}}}i(pR,"createTerminalInputController");var gR=i(({children:e,runtime:t})=>{let[n,r]=dR(()=>t.terminalSize);Gi(()=>{if(r(eu(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=i(()=>{r(eu(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let o=ww(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=yw(()=>pR({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);Gi(()=>()=>{s.dispose()},[s]);let a=yw(()=>({stdout:t.stdout,stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,exit:t.exit,terminalSize:n,isTTY:t.stdout?.isTTY===!0,writeRaw:o,subscribeInput:s.subscribe}),[s.subscribe,t.exit,t.isRawModeSupported,t.setRawMode,t.stdin,t.stdout,s.subscribe,n,o]);return xw(Dr.Provider,{value:a,children:e})},"TuiRuntimeProvider");function hR(e){let t=e?.stdout??xm,n=e?.stdin??Tw,r=i(s=>{typeof n?.setRawMode=="function"&&n.setRawMode(s)},"setRawMode"),o;return{stdout:t,stdin:n,setRawMode:r,isRawModeSupported:typeof n?.setRawMode=="function",exit:i(()=>{o?.()},"exit"),terminalSize:eu(t),isTTY:t?.isTTY===!0,writeRaw:i(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),subscribeInput:i(()=>()=>{},"subscribeInput"),attachExit(s){o=s}}}i(hR,"createRuntimeValue");function tu(e,t){let n=hR(t),r=pm(xw(gR,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}i(tu,"render");var k=aw,b=cw,Ki=lw;function yR(e){let t={upArrow:e.name==="up",downArrow:e.name==="down",leftArrow:e.name==="left",rightArrow:e.name==="right",pageDown:e.name==="pagedown",pageUp:e.name==="pageup",home:e.name==="home",end:e.name==="end",return:e.name==="return",escape:e.name==="escape",ctrl:e.ctrl,shift:e.shift,tab:e.name==="tab",backspace:e.name==="backspace",delete:e.name==="delete",meta:e.meta||e.name==="escape"||e.option===!0,super:e.super??!1,hyper:e.hyper??!1,capsLock:e.capsLock??!1,numLock:e.numLock??!1,eventType:e.eventType},n="";return e.isKittyProtocol?e.isPrintable?n=e.text??e.name:e.ctrl&&e.name.length===1&&(n=e.name):e.ctrl?n=e.name:n=e.sequence,!e.isKittyProtocol&&fw.includes(e.name)&&(n=""),n.startsWith("\x1B")&&(n=n.slice(1)),n.length===1&&typeof n[0]=="string"&&/[A-Z]/.test(n[0])&&(t.shift=!0),{input:n,key:t}}i(yR,"createCompatKeypress");function nu(e,t={}){let{isActive:n=!0}=t,r=Zl(e),o=Zl(null),s=Zl(null);Gi(()=>{r.current=e},[e]),Gi(()=>{if(!n){o.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return o.current=Xl(),()=>{o.current?.reset(),o.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=ww(c=>{let{input:l,key:u}=yR(ym(c));l==="c"&&u.ctrl||r.current(l,u)},[]);ba(c=>{if(!n)return;s.current&&(clearTimeout(s.current),s.current=null);let l=o.current,u=typeof c=="string"?c:c.toString("utf8"),m=l?.push(u)??[u];for(let p of m)a(p);u.length>0&&(s.current=setTimeout(()=>{let p=o.current?.flushPendingEscape();p&&a(p)},fR))},{isActive:n,rawMode:!0})}i(nu,"useInput");function zn(){return{stdout:So(Dr)?.stdout??xm}}i(zn,"useStdout");function Ca(){let e=So(Dr),t=e?.stdin??Tw,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}i(Ca,"useStdin");function Nr(){return{exit:So(Dr)?.exit??(()=>{})}}i(Nr,"useApp");function Vi(){return So(Dr)?.stdout??xm}i(Vi,"useTerminalOutput");function zi(){let e=Vi();return So(Dr)?.terminalSize??eu(e)}i(zi,"useTerminalSize");function Xi(){let e=Vi();return So(Dr)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}i(Xi,"useTerminalWrite");function ba(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,o=So(Dr),{stdin:s,setRawMode:a,isRawModeSupported:c}=Ca(),l=Zl(e);Gi(()=>{l.current=e},[e]),Gi(()=>{if(!n||!s)return;if(o)return o.subscribeInput(g=>{l.current(g)},{rawMode:r});let u=s,m=u.isRaw;r&&c&&m===!1&&a(!0);let p=i(g=>{l.current(g)},"handleData");return u.on?.("data",p),()=>{if(u.off?.("data",p),r&&c&&m===!1)try{a(!1)}catch{}}},[o,s,n,r,c,a])}i(ba,"useTerminalInput");import{jsx as bR}from"react/jsx-runtime";import{useInsertionEffect as vR,useMemo as IR}from"react";var xR="\x1B[?1049h",wR="\x1B[?1049l";var TR="\x1B[2J",SR="\x1B[?1000h\x1B[?1002h\x1B[?1006h",CR="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function ru(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return xR+(n?TR:"")+"\x1B[H"+(t?SR:"")}i(ru,"buildAlternateScreenEnterSequence");function ou(e={}){return(e.mouseTracking!==!1?CR:"")+wR}i(ou,"buildAlternateScreenExitSequence");var wm=i(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let o=Vi(),{rows:s}=zi(),a=Xi(),c=IR(()=>n&&o.isTTY===!0,[n,o]);return vR(()=>{if(!c)return;let l=Jl(o);if(l?.setShellMode?.("virtual",t),l?.beginShellTransition?.("enter-alt-screen"),!!a(ru({mouseTracking:t,clearOnEnter:r})))return l?.setAltScreenActive?.(!0,t),()=>{l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),l?.setAltScreenActive?.(!1),a(ou({mouseTracking:t}))}},[r,c,t,o,a]),bR(k,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as Br,jsxs as vw}from"react/jsx-runtime";import{jsx as kR}from"react/jsx-runtime";import RR,{useEffect as Tm,useImperativeHandle as ER,useMemo as MR,useRef as Sm,useCallback as Cm,useState as AR}from"react";function Sw(e){let t={...e,scrollHeight:Math.max(0,Math.floor(e.scrollHeight)),viewportHeight:Math.max(0,Math.floor(e.viewportHeight)),pendingDelta:Math.floor(e.pendingDelta)};return{...t,scrollTop:bm(t,t.scrollTop)}}i(Sw,"normalizeScrollSnapshot");function Cw(e,t){return e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.pendingDelta===t.pendingDelta&&e.clampMin===t.clampMin&&e.clampMax===t.clampMax&&e.sticky===t.sticky}i(Cw,"areSnapshotsEqual");function _R(e,t){return e.start===t.start&&e.end===t.end&&e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.viewportTop===t.viewportTop&&e.pendingDelta===t.pendingDelta&&e.sticky===t.sticky}i(_R,"areWindowsEqual");function bm(e,t){let n=Math.max(0,e.scrollHeight-e.viewportHeight),r=e.clampMin??0,o=e.clampMax??n;return Math.max(r,Math.min(Math.floor(t),Math.min(n,o)))}i(bm,"clampScrollTop");function bw(e){let t=Math.max(0,e.viewportHeight),n=bm(e,e.scrollTop),r=Math.max(0,e.scrollHeight-n),o=Math.max(0,r-t);return{start:o,end:r,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:o,pendingDelta:e.pendingDelta,sticky:e.sticky}}i(bw,"resolveScrollWindow");function PR(e){let t=bm(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}i(PR,"resolveNativeScrollTop");var vm=i(({children:e,width:t,flexGrow:n=0,flexShrink:r=1,paddingTop:o=0,scrollTop:s=0,scrollHeight:a=0,viewportHeight:c=0,stickyScroll:l=!0,scrollRef:u,onScrollTopChange:m,onStickyChange:p,onWindowChange:g,renderWindow:x})=>{let y=Sm(null),w=Sm(new Set),S=Sm(Sw({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l})),[I,$]=AR(()=>bw(S.current)),L=Cm(()=>{for(let F of w.current)F()},[]),G=Cm((F,X=!0)=>{let v=S.current,M=Sw(F),Z=bw(M);return S.current=M,$(Ce=>_R(Ce,Z)?Ce:Z),X&&!Cw(v,M)&&L(),{previous:v,snapshot:M,window:Z,changed:!Cw(v,M)}},[L]);Tm(()=>{let F=S.current,X={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:F.clampMin,clampMax:F.clampMax,sticky:l},v=G(X);v.previous.sticky!==l&&p?.(l),v.window.scrollTop!==s&&m?.(v.window.scrollTop)},[G,p,m,a,s,l,c]);let N=Cm(()=>{let F=y.current;if(!F)return;let X=typeof F.scrollHeight=="number"?Math.max(0,Math.floor(F.scrollHeight)):void 0,v=typeof F.scrollViewportHeight=="number"?Math.max(0,Math.floor(F.scrollViewportHeight)):void 0,M=typeof F.scrollViewportTop=="number"?Math.max(0,Math.floor(F.scrollViewportTop)):void 0;if(X===void 0||v===void 0||M===void 0)return;let Z=Math.max(0,X-v-M),Ce=G({...S.current,scrollTop:Z,scrollHeight:X,viewportHeight:v});Ce.changed&&Ce.window.scrollTop!==Ce.previous.scrollTop&&m?.(Ce.window.scrollTop)},[G,m]);Tm(()=>{N()},[N]);let C=MR(()=>({scrollTo(F){let X=G({...S.current,scrollTop:F,pendingDelta:0,sticky:!1});X.previous.sticky!==!1&&p?.(!1),m?.(X.window.scrollTop)},scrollBy(F){let X=G({...S.current,scrollTop:S.current.scrollTop+F,pendingDelta:S.current.pendingDelta+Math.floor(F),sticky:!1});X.previous.sticky!==!1&&p?.(!1),m?.(X.window.scrollTop)},scrollToElement(F,X=0){let v=G({...S.current,scrollTop:F-X,pendingDelta:0,sticky:!1});v.previous.sticky!==!1&&p?.(!1),m?.(v.window.scrollTop)},scrollToBottom(){let F=G({...S.current,scrollTop:0,pendingDelta:0,sticky:!0});m?.(F.window.scrollTop),F.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return S.current.scrollTop},getPendingDelta(){return S.current.pendingDelta},getScrollHeight(){return y.current?.scrollHeight??S.current.scrollHeight},getViewportHeight(){return y.current?.scrollViewportHeight??I.viewportHeight},getViewportTop(){return y.current?.scrollViewportTop??I.viewportTop},isSticky(){return S.current.sticky},subscribe(F){return w.current.add(F),()=>{w.current.delete(F)}},setClampBounds(F,X){let v=G({...S.current,clampMin:F,clampMax:X});v.window.scrollTop!==v.previous.scrollTop&&m?.(v.window.scrollTop)}}),[G,m,p]);ER(u,()=>C,[C]),Tm(()=>{g?.(I)},[g,I]);let J=x?x(I):e,ce=Math.max(0,c+o),we=PR(S.current);return RR.createElement("ink-box",{ref:y,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:ce,paddingTop:o,overflowX:"visible",overflowY:"scroll"},scrollTop:we,scrollHeight:S.current.scrollHeight,scrollViewportHeight:S.current.viewportHeight,scrollViewportTop:I.viewportTop,pendingScrollDelta:S.current.pendingDelta,virtualScrollWindowed:!!x,...S.current.clampMin!==void 0?{scrollClampMin:S.current.clampMin}:{},...S.current.clampMax!==void 0?{scrollClampMax:S.current.clampMax}:{},...l?{stickyScroll:!0}:{}},kR(k,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:J}))},"ScrollBox");var $R=80;function va(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}i(va,"resolveFullscreenChromeSlotText");function iu(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:$R)-2);return Math.max(1,Kt(e.split(`
|
|
34
|
-
`),n,0,0).visualLines.length)}i(iu,"measureFullscreenChromeSlotRows");var Im=i(({top:e,topRows:t=0,scrollable:n,renderScrollableWindow:r,bottom:o,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:m=0,viewportHeight:p=0,stickyScroll:g=!0,scrollRef:x,onScrollTopChange:y,onStickyChange:w,onWindowChange:S})=>{let I=i((we,F)=>F?Br(k,{paddingX:1,children:Br(b,{dimColor:we?.tone!=="accent",children:F})}):null,"renderChromeSlot"),$=va(a),L=va(c),G=iu($,l),N=I(a,$),C=s?null:I(c,L),J=Math.max(0,e?t:0),ce=Math.max(0,p-G-J);return vw(k,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?Br(k,{flexDirection:"column",flexShrink:0,children:e}):null,vw(k,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[Br(vm,{width:l,flexGrow:1,flexShrink:1,paddingTop:G,scrollTop:u,scrollHeight:m,viewportHeight:ce,stickyScroll:g,scrollRef:x,onScrollTopChange:y,onStickyChange:w,onWindowChange:S,renderWindow:r,children:n}),N?Br(k,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:N}):null,C?Br(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:C}):null,s?Br(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),Br(k,{flexDirection:"column",flexShrink:0,children:o})]})},"FullscreenLayout");import OR from"string-width";var DR=200;function NR(e){let t=Math.min(DR,Math.max(1,e));return"-".repeat(t)}i(NR,"generateDivider");function BR(){return zi().columns}i(BR,"useTerminalWidth");var km=i(({lines:e,cursorRow:t,cursorCol:n,prompt:r=">",placeholder:o="Type your message...",focus:s=!0,terminalFocused:a=!0,isPasting:c=!1,editingMode:l="idle",theme:u="dark",width:m})=>{let p=su(()=>te(u),[u]),g=BR(),x=m??g,y=OR(r)+1,w=su(()=>{let C=Math.max(20,x-y);return Kt(e,C,t,n)},[e,x,t,n,y]),S=su(()=>{if(!w)return null;let[C,J]=Vf(w,[t,n]);return{row:C,col:J}},[w,t,n]),I=NR(x),$=s&&a,L=c&&e.some(C=>C.length>0),G=w,N=S;return gn(k,{flexDirection:"column",width:m,children:[$t(b,{dimColor:!0,children:I}),L?$t(k,{children:$t(b,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,G.visualLines.length===0||G.visualLines.length===1&&G.visualLines[0]===""?gn(k,{children:[gn(b,{color:p.colors.primary,children:[r," "]}),$?gn(LR,{children:[$t(b,{backgroundColor:p.colors.primary,color:"#000000",children:" "}),$t(b,{dimColor:!0,children:o})]}):$t(b,{dimColor:!0,children:o})]}):G.visualLines.map((C,J)=>{let ce=J===N.row,we=J===0?r:" ".repeat(y-1);if(ce&&$){let{before:F,current:X,after:v}=qy(C,N.col),M=X||" ";return gn(k,{children:[gn(b,{color:p.colors.primary,children:[we," "]}),$t(b,{color:p.colors.text,children:F}),$t(b,{backgroundColor:p.colors.primary,color:"#000000",children:M}),$t(b,{color:p.colors.text,children:v})]},J)}return gn(k,{children:[gn(b,{color:p.colors.dim,children:[we," "]}),$t(b,{color:p.colors.text,children:C})]},J)}),$t(b,{dimColor:!0,children:I})]})},"TextInput"),HR=i(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:o=!0,theme:s="dark"})=>{let a=su(()=>te(s),[s]);if(!e)return gn(k,{children:[gn(b,{color:a.colors.primary,children:[n," "]}),r&&$t(b,{dimColor:!0,children:r}),o&&$t(b,{backgroundColor:a.colors.primary,color:"#000000",children:" "})]});let c=Gt(e),l=c.slice(0,t).join(""),u=c[t]??" ",m=c.slice(t+1).join("");return gn(k,{children:[gn(b,{color:a.colors.primary,children:[n," "]}),$t(b,{color:a.colors.text,children:l}),$t(b,{backgroundColor:a.colors.primary,color:"#000000",children:u}),$t(b,{color:a.colors.text,children:m})]})},"SingleLineTextInput");var Rm={"[A":{name:"up"},"[B":{name:"down"},"[C":{name:"right"},"[D":{name:"left"},"[200~":{name:"paste_start"},"[201~":{name:"paste_end"},"[Z":{name:"tab",shift:!0},"[1;2A":{name:"up",shift:!0},"[1;2B":{name:"down",shift:!0},"[1;2C":{name:"right",shift:!0},"[1;2D":{name:"left",shift:!0},"[13;2u":{name:"return",shift:!0},"[13;3u":{name:"return",meta:!0},"[13;5u":{name:"return",ctrl:!0},"[H":{name:"home"},"[F":{name:"end"},"[1~":{name:"home"},"[4~":{name:"end"},"[7~":{name:"home"},"[8~":{name:"end"},"[2~":{name:"insert"},"[3~":{name:"delete"},"[5~":{name:"pageup"},"[6~":{name:"pagedown"},"[11~":{name:"f1"},"[12~":{name:"f2"},"[13~":{name:"f3"},"[14~":{name:"f4"},"[15~":{name:"f5"},"[17~":{name:"f6"},"[18~":{name:"f7"},"[19~":{name:"f8"},"[20~":{name:"f9"},"[21~":{name:"f10"},"[23~":{name:"f11"},"[24~":{name:"f12"},OP:{name:"f1"},OQ:{name:"f2"},OR:{name:"f3"},OS:{name:"f4"},OA:{name:"up"},OB:{name:"down"},OC:{name:"right"},OD:{name:"left"},OH:{name:"home"},OF:{name:"end"}},FR=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,WR=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function UR(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}i(UR,"parseMouseButton");function jR(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}i(jR,"parseModifier");function au(e,t=!1){let n={name:"",sequence:e,ctrl:!1,meta:!1,shift:!1,insertable:!1,isPasted:!1};if(!e||e.length===0)return n;let r=e.match(WR);if(r){let[,o,s,a,c]=r,l=Number(o),u=Number(s),m=Number(a),p=l&28;return n.shift=(p&4)!==0,n.meta=(p&8)!==0,n.ctrl=(p&16)!==0,l===64?(n.name="wheelup",n.mouse={action:"wheel",button:"wheelup",row:m,column:u},n):l===65?(n.name="wheeldown",n.mouse={action:"wheel",button:"wheeldown",row:m,column:u},n):(n.name="mouse",n.mouse={action:c==="m"?"release":(l&32)!==0?"drag":"press",button:UR(l),row:m,column:u},n)}if(e===`\r
|
|
35
|
-
`)return n.name="newline",n;if(e==="\r")return n.name=t?"newline":"return",n;if(e===`
|
|
36
|
-
`)return n.name="newline",n;if(e===" ")return n.name="tab",n;if(e==="\b"||e==="\x7F")return n.name="backspace",n;if(e==="\x1B\b"||e==="\x1B\x7F")return n.name="backspace",n.meta=!0,n;if(e==="\x1B\r"||e===`\x1B
|
|
37
|
-
`)return n.name=e==="\x1B\r"?"return":"enter",n.shift=!0,n;if(e==="\x1B"||e==="\x1B\x1B")return n.name="escape",n.meta=e.length===2,n;if(e===" "||e==="\x1B ")return n.name="space",n.meta=e.length===2,n.insertable=!n.meta,n;if(e.length===1&&e.charCodeAt(0)<=26)return n.name=String.fromCharCode(e.charCodeAt(0)+96),n.ctrl=!0,n;if(e.length===1&&e>="0"&&e<="9"||e.length===1&&e>="a"&&e<="z")return n.name=e,n.insertable=!0,n;if(e.length===1&&e>="A"&&e<="Z")return n.name=e.toLowerCase(),n.shift=!0,n.insertable=!0,n;if(e.length===1&&e.charCodeAt(0)>=32)return n.name=e,n.insertable=!0,n;if(e.startsWith("\x1B")){let o=e.slice(1);if(o.length===1)return n.meta=!0,o>="a"&&o<="z"?(n.name=o,n.insertable=!0):o>="A"&&o<="Z"?(n.name=o.toLowerCase(),n.shift=!0,n.insertable=!0):o.charCodeAt(0)>=32&&(n.name=o,n.insertable=!0),n;let s=e.match(FR);if(s){let[,l,u,m]=s,p=m||"~",x=Rm[o];if(x)return Object.assign(n,x),n;let y="["+l+p+"]",w=Rm[y];if(w&&w.name){if(n.name=w.name,u){let S=parseInt(u,10)-1,I=jR(S);Object.assign(n,I)}return n}}let c=Rm[o];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),u=au(l);return n.name=u.name,n}}return n}i(au,"parseKeypress");var Ia=class{static{i(this,"KeypressParser")}buffer="";listeners=[];flushing=!1;inBracketedPaste=!1;pasteAccumulator="";onKeypress(t){return this.listeners.push(t),()=>{let n=this.listeners.indexOf(t);n>=0&&this.listeners.splice(n,1)}}feed(t,n=!1){let r=typeof t=="string"?t:t.toString("utf8");this.buffer+=r,this.flushing=n,this.processBuffer()}processBuffer(){for(;this.buffer.length>0;){let t=this.extractNextSequence();if(!t){if(this.flushing&&this.buffer.length>0){let s=this.buffer;this.buffer="";let a=au(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:r}=t;this.buffer=r;let o=au(n,this.inBracketedPaste);if(o.name==="paste_start"){this.inBracketedPaste=!0,this.pasteAccumulator="";continue}if(o.name==="paste_end"){this.inBracketedPaste=!1,this.flushPasteAccumulator();continue}this.emit(o)}}flushPasteAccumulator(){if(this.pasteAccumulator.length===0)return;let t={name:"paste",sequence:this.pasteAccumulator,ctrl:!1,meta:!1,shift:!1,insertable:!0,isPasted:!0};this.pasteAccumulator="";for(let n of this.listeners)n(t)}extractNextSequence(){if(this.buffer.length===0)return null;let t=this.buffer[0];if(t!=="\x1B")return t==="\r"&&this.buffer.length>=2&&this.buffer[1]===`
|
|
38
|
-
`?{sequence:this.buffer.slice(0,2),remaining:this.buffer.slice(2)}:{sequence:this.buffer[0],remaining:this.buffer.slice(1)};if(this.buffer.length===1)return this.flushing?{sequence:this.buffer,remaining:""}:null;let n=this.buffer[1];if(n!=="["&&n!=="O")return{sequence:this.buffer.slice(0,2),remaining:this.buffer.slice(2)};if(this.buffer.startsWith("\x1B[<")){let a=3;for(;a<this.buffer.length;){let c=this.buffer[a];if(!c)break;if(c>="0"&&c<="9"||c===";"||c==="<"){a++;continue}if(c==="M"||c==="m")return a++,{sequence:this.buffer.slice(0,a),remaining:this.buffer.slice(a)};break}return this.flushing?{sequence:this.buffer,remaining:""}:null}let r=2;for(;r<this.buffer.length;){let a=this.buffer[r];if(!a)break;if(a>="0"&&a<="9"||a===";"){r++;continue}if(a>="A"&&a<="Z"||a>="a"&&a<="z"||a==="~"){r++;break}break}let o=this.buffer[r-1];return o&&(o>="A"&&o<="Z"||o>="a"&&o<="z"||o==="~")?{sequence:this.buffer.slice(0,r),remaining:this.buffer.slice(r)}:this.flushing?{sequence:this.buffer.slice(0,r),remaining:this.buffer.slice(r)}:null}emit(t){if(this.inBracketedPaste){if(t.isPasted=!0,t.insertable){this.pasteAccumulator+=t.sequence;return}if(t.name==="newline"){this.pasteAccumulator+=`
|
|
39
|
-
`;return}return}for(let n of this.listeners)n(t)}clear(){this.buffer=""}};function Iw(e){return["up","down","left","right","home","end","insert","delete","pageup","pagedown","wheelup","wheeldown","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","tab","return","enter","backspace","escape"].includes(e.name)}i(Iw,"isFunctionKey");function GR(e){return e.ctrl||e.meta||Iw(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}i(GR,"isPrintable");function KR(e){let t=[];return e.ctrl&&t.push("Ctrl"),e.meta&&t.push("Alt"),e.shift&&t.push("Shift"),e.name?t.push(e.name.toUpperCase()):e.sequence&&t.push(e.sequence),t.join("+")}i(KR,"getKeyDisplayName");var tn;(function(e){e.Idle="idle",e.Responding="responding",e.WaitingForConfirmation="waiting_for_confirmation"})(tn||(tn={}));var O;(function(e){e.Scheduled="scheduled",e.Validating="validating",e.AwaitingApproval="awaiting_approval",e.Executing="executing",e.Success="success",e.Error="error",e.Cancelled="cancelled"})(O||(O={}));var _H={[O.Scheduled]:"\u25CB",[O.Validating]:"\u25CC",[O.AwaitingApproval]:"?",[O.Executing]:"\u25CB",[O.Success]:"\u2713",[O.Error]:"\u2717",[O.Cancelled]:"-"},Lt;(function(e){e[e.Low=-100]="Low",e[e.Normal=0]="Normal",e[e.High=100]="High",e[e.Critical=200]="Critical"})(Lt||(Lt={}));var Em={streamingState:tn.Idle,currentResponse:"",history:[],pendingToolCalls:[],sessionId:"",provider:"",model:"",isLoading:!1};import VR,{createContext as zR,useContext as XR,useEffect as kw,useCallback as YR,useRef as Mm}from"react";var qR=50;function Am(){let e=new Map,t=null,n=i(()=>(t===null&&(t=[...e.keys()].sort((r,o)=>o-r)),t),"getSortedPriorities");return{register(r,o){return e.has(r)||e.set(r,[]),e.get(r).push(o),t=null,()=>{let s=e.get(r);if(!s)return;let a=s.indexOf(o);a>=0&&s.splice(a,1),s.length===0&&e.delete(r),t=null}},dispatch(r){let o=n();for(let s of o){let a=e.get(s);if(a)for(let c=a.length-1;c>=0;c-=1){let l=a[c];if(l&&l(r)===!0)return!0}}return!1},size(){let r=0;for(let o of e.values())r+=o.length;return r}}}i(Am,"createKeypressManager");var Rw=zR(null);function cu({children:e,enabled:t=!0}){let{stdout:n}=zn(),r=Mm(Am()),o=Mm(null),s=Mm(null),a=YR(c=>{t&&r.current.dispatch(c)},[t]);return kw(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new Ia;o.current=c;let l=c.onKeypress(a);return()=>{s.current&&(clearTimeout(s.current),s.current=null),l(),o.current=null;try{n?.write?.("\x1B[?2004l")}catch{}}},[a,t,n]),ba(c=>{t&&(s.current&&clearTimeout(s.current),o.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{o.current?.feed("",!0)},qR)))},{isActive:t,rawMode:!0}),VR.createElement(Rw.Provider,{value:r.current},e)}i(cu,"KeypressProvider");function _m(){let e=XR(Rw);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}i(_m,"useKeypressManager");function nn(e,t,n=[]){let r=_m(),o=typeof e=="function",s,a,c;if(o){s=e;let l=t??{};c=l.isActive??!0;let u=l.priority;a=typeof u=="boolean"?u?Lt.High:Lt.Normal:u??Lt.Normal}else a=typeof e=="boolean"?e?Lt.High:Lt.Normal:e,s=t,c=!0;kw(()=>c?r.register(a,s):void 0,[r,a,c,...o?[]:n])}i(nn,"useKeypress");function hn(e){return t=>!(e.name!==void 0&&t.name!==e.name||e.ctrl!==void 0&&t.ctrl!==e.ctrl||e.meta!==void 0&&t.meta!==e.meta||e.shift!==void 0&&t.shift!==e.shift||e.sequence!==void 0&&t.sequence!==e.sequence||e.insertable!==void 0&&t.insertable!==e.insertable)}i(hn,"createKeyMatcher");var Ew={isEnter:hn({name:"return"}),isEscape:hn({name:"escape"}),isCtrlC:hn({name:"c",ctrl:!0}),isCtrlD:hn({name:"d",ctrl:!0}),isUp:hn({name:"up"}),isDown:hn({name:"down"}),isLeft:hn({name:"left"}),isRight:hn({name:"right"}),isBackspace:hn({name:"backspace"}),isDelete:hn({name:"delete"}),isTab:hn({name:"tab"}),isShiftEnter:i(e=>e.name==="return"&&e.shift===!0,"isShiftEnter"),isCtrlEnter:i(e=>e.name==="return"&&e.ctrl===!0,"isCtrlEnter"),isInsertable:i(e=>e.insertable===!0&&!e.ctrl&&!e.meta,"isInsertable")};var ka=["plan","accept-edits","auto","auto-in-project"];function zt(e){return e==="auto"||e==="auto-in-project"}i(zt,"isAutoMode");function Yi(e){switch(e){case"plan":return"Plan";case"accept-edits":return"Edits";case"auto":case"auto-in-project":return"Auto"}}i(Yi,"permissionModeDisplayName");var QR='[deprecated] permissionMode "auto-in-project" is now an alias for "auto" (FEATURE_092, v0.7.33). The alias will be removed in v0.7.38 \u2014 please update ~/.kodax/config.json to use "auto".';function lu(e=console.warn){let t=!1;return()=>{t||(t=!0,e(QR))}}i(lu,"createAutoInProjectDeprecationEmitter");var yn=new Set(["write","edit"]),Mw=new Set(["npm install","npm i","npm uninstall","npm remove","npm update","npm ci","yarn add","yarn remove","yarn upgrade","pnpm add","pnpm remove","pnpm update","git clean","git reset","git checkout","git switch","git merge","git rebase","git cherry-pick","git revert","git commit","git push","git pull","rm","mv","cp","mkdir","rmdir","touch","chmod","chown","del","erase","rd","copy","move","ren","curl","wget","dd","tar","kill","pkill","killall"]),Aw=new Set(["ls","cat","pwd","echo","whoami","date","which","whereis","tree","dir","type","get-childitem","get-content","select-string","get-location","where","grep","find","awk","sed","head","tail","less","more","wc","findstr","fc","git status","git diff","git log","git show","git branch","git remote","git ls-files","git rev-parse","git grep","git tag","git stash list","git describe","git config --get","node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"]);function Co(e){switch(e){case"plan":return new Set(["bash","write","edit","undo"]);case"accept-edits":return new Set(["bash"]);case"auto":case"auto-in-project":return new Set}}i(Co,"computeConfirmTools");function Pm(e){return e!==void 0&&ka.includes(e)}i(Pm,"isPermissionMode");function Xn(e,t){return Pm(e)?e:t}i(Xn,"normalizePermissionMode");import uu from"fs";import yt from"path";import Ea from"os";var jw=vv(Fw(),1);var Ww=new Set(["/dev/null","nul","NUL"]);function Dm(e){return Ww.has(e)||Ww.has(e.toLowerCase())}i(Dm,"isNullDevice");function Ra(e){let t=e.trim();if(!t)return{statements:[],unparseable:!1};if(t.includes("`"))return{statements:[],unparseable:!0};let n;try{n=(0,jw.parse)(t)}catch{return{statements:[],unparseable:!0}}let r=[],o=[],s=[],a=[],c=null,l=!1,u=i(()=>{(s.length>0||a.length>0)&&(o.push({argv:s,redirections:a}),s=[],a=[])},"flushStage"),m=i(p=>{u(),o.length>0&&(r.push({precedingOp:c,stages:o}),o=[]),c=p},"flushStatement");for(let p=0;p<n.length;p+=1){let g=n[p];if(typeof g=="string"){s.push(g);continue}if("op"in g){let x=g.op;if(x==="&&"||x==="||"||x===";"){m(x);continue}if(x==="|"){u();continue}if(x==="&"){let y=n[p+1];if(y!==void 0&&typeof y!="string"&&"op"in y&&(y.op===">"||y.op===">>")){let w=n[p+2];if(typeof w!="string"){l=!0,p+=1;continue}a.push(Uw(`&${y.op}`,w)),p+=2;continue}l=!0;continue}if(aE(x)){let y=null,w=s[s.length-1];w!==void 0&&/^[0-9]+$/.test(w)&&(y=w,s.pop());let S=n[p+1];if(typeof S!="string"){l=!0;continue}a.push(Uw(y?`${y}${x}`:x,S)),p+=1;continue}if(x==="glob"){let y=g.pattern;typeof y=="string"?s.push(y):l=!0;continue}l=!0;continue}if("comment"in g)break;l=!0}return m(null),{statements:r,unparseable:l}}i(Ra,"parseBashCommand");var sE=new Set([">",">>","<","<<","<<<","&>","&>>"]),Gw=/^([0-9]+|&)(>>?|<<?)$/;function aE(e){return sE.has(e)||Gw.test(e)}i(aE,"isRedirectionOp");function Uw(e,t){let n=null,r=e,o=Gw.exec(e);return o&&(n=o[1],r=o[2]),{op:e,fd:n,append:r===">>"||e==="&>>",input:r==="<"||r==="<<"||e==="<<<",target:t}}i(Uw,"parseRedirection");var lE=yt.join(".agent","plan_mode_doc.md"),du=new Map,fu=null;function uE(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of Aw)if(t===n||t.startsWith(n+" ")){if(n==="sed"&&t.split(/\s+/).some(s=>s.startsWith("-i")||s==="--in-place"))return!1;if(n==="awk"){let o=t.split(/\s+/);if(o.includes("-f")||o.includes("--file"))return!1}if(["node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc","ruby","perl"].includes(n)){let o=t.split(/\s+/).slice(1);if(o.length>0&&!o.every(s=>/^(-v|--version|-h|--help)$/.test(s)))return!1}return!0}return!1}i(uE,"isSingleBashReadCommand");var dE=/^[a-zA-Z0-9]+$/;function fE(e){let t=e.trim();if(!t.endsWith("--help")||t.includes('"')||t.includes("'"))return!1;let n=!1;for(let r of t.split(/\s+/))if(r.startsWith("-"))if(r==="--help")n=!0;else return!1;else if(!dE.test(r))return!1;return n}i(fE,"isHelpCommand");function _n(e){if(!e||!e.trim())return!1;if(fE(e))return!0;let t=e.trim().replace(/\\\r?\n/g," "),n=Ra(t);if(n.unparseable||n.statements.length===0)return!1;let r=n.statements.length>1||(n.statements[0]?.stages.length??0)>1;for(let o of n.statements){if(o.precedingOp!==null&&o.precedingOp!=="&&")return!1;for(let s of o.stages){for(let c of s.redirections)if(c.input||!Dm(c.target))return!1;let a=s.argv.join(" ");if(a&&!(r&&s.argv[0]?.toLowerCase()==="cd"&&s.argv.length>=2)&&!uE(a))return!1}}return!0}i(_n,"isBashReadCommand");function Bm(e){let t=e.trim();return t?_n(t)?null:"[Blocked] Direct !command execution only supports safe read-only commands. Use the bash tool for commands that write files, invoke shells, or require confirmation.":"[Shell: No command provided]"}i(Bm,"getDirectShellBypassBlockReason");var Vw=new Set(["remove-item","set-content","add-content","out-file","new-item","copy-item","move-item","rename-item","ni"]);function Pn(e){if(!e||!e.trim())return!1;let t=Ra(e);if(t.unparseable)return!1;for(let n of t.statements)for(let r of n.stages){let o=r.argv.map(s=>s.toLowerCase());if(o.length>0){let s=o[0],a=o.length>=2?`${o[0]} ${o[1]}`:null;for(let c of Mw)if(c===s||a!==null&&c===a)return!0}for(let s of o)if(Vw.has(s))return!0;for(let s of r.redirections)if(!s.input&&!Dm(s.target))return!0}return!1}i(Pn,"isBashWriteCommand");function Hm(e){let t=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\((.+)\)$/);return t?{tool:t[1].toLowerCase(),pattern:t[2]}:{tool:e.toLowerCase(),pattern:null}}i(Hm,"parseAllowedToolPattern");function mE(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e.startsWith(n)}return e===t}i(mE,"matchesBashPatternLegacy");function pE(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e===n}return e===t}i(pE,"matchesBashPatternByExtractedPrefix");async function Hr(e,t,n,r,o){if(e.toLowerCase()!=="bash")return!1;let s=t.command??"",a=[];for(let c of n){let l=Hm(c);if(l.tool==="bash"){if(l.pattern===null)return!0;a.push({pattern:l.pattern})}}if(a.length===0)return!1;if(r){let c;try{c=await r.extract(s,o)}catch{return!1}if(c.kind!=="prefix")return!1;for(let{pattern:l}of a)if(l&&pE(c.value,l))return!0;return!1}for(let{pattern:c}of a)if(c&&mE(s,c))return!0;return!1}i(Hr,"isToolCallAllowed");function pu(e,t,n){if(e.toLowerCase()!=="bash")return"";let r=t.command??"",o=r.split(" ");return o.length>1?`Bash(${o.slice(0,2).join(" ")}:*)`:`Bash(${r})`}i(pu,"generateSavePattern");function Yn(e,t){try{let n=yt.resolve(e),r=yt.resolve(t),o=pi(),s=yt.join(r,".kodax");return qi(n,s)||qi(n,o)?!0:!(qi(n,r)||Yw().some(c=>qi(n,c)))}catch{return!1}}i(Yn,"isAlwaysConfirmPath");function Kw(e){return!e||e.startsWith("-")?!1:/^\.\.?[/\\]/.test(e)||e.startsWith("~/")||e.startsWith("~\\")||/^[a-zA-Z]:[/\\]/.test(e)?!0:e.startsWith("/")&&e.length>1?!(process.platform==="win32"&&gE.test(e)):!!(e.startsWith(".")&&/[/\\]/.test(e))}i(Kw,"looksLikePath");var gE=/^\/[A-Za-z][A-Za-z0-9]*(?::[A-Za-z0-9]+)?$/;function hE(e){let t=[],n=/["']([^"']+)["']/g,r;for(;(r=n.exec(e))!==null;)t.push(r[1]);let o=/(?:^|\s)(\.\.?\/[^\s]+|\.\.?\\[^\s]+|[a-zA-Z]:\\[^\s]+|~\/[^\s]+|\.[^\s]*[/\\][^\s]*)/g;for(;(r=o.exec(e))!==null;)t.push(r[1]);return t}i(hE,"legacyRegexPathScan");function gu(e){let t=new Set,n=Ra(e);if(!n.unparseable)for(let r of n.statements)for(let o of r.stages){for(let s of o.argv)Kw(s)&&t.add(s);for(let s of o.redirections)Kw(s.target)&&t.add(s.target)}for(let r of hE(e))t.add(r);return Array.from(t)}i(gu,"extractPathsFromCommand");function Fm(e,t){let n=gu(e);for(let r of n)if(Yn(r,t))return!0;return!1}i(Fm,"isCommandOnProtectedPath");function mu(e){let t=yt.normalize(e);return process.platform==="win32"?t.toLowerCase():t}i(mu,"normalizePathForComparison");function yE(e,t){return mu(e)===mu(t)}i(yE,"pathsEqual");function qi(e,t){let n=mu(e),r=mu(t);return n===r||n.startsWith(r+yt.sep)}i(qi,"isPathInsideDirectory");function hu(e,t){try{let n=yt.resolve(t),r=yt.resolve(n,Xw(zw(e)));return qi(r,n)}catch{return!1}}i(hu,"isPathInsideProject");function xE(e){let t=e.match(/[A-Za-z]:[\\/][^\s;|&<>(){}'"]+|\/[^\s;|&<>(){}'"]+/g);return t?t.filter(n=>!/^(?:\/dev\/|\/proc\/)/i.test(n)):[]}i(xE,"collectAbsolutePathCandidates");function Wm(e){let t=yt.resolve(e),n=du.get(t);if(n)return n;if(uu.existsSync(t)){let c=uu.realpathSync.native(t);return du.set(t,c),c}let r=[],o=t;for(;!uu.existsSync(o);){let c=yt.dirname(o);if(c===o)return du.set(t,t),t;r.unshift(yt.basename(o)),o=c}let s=uu.realpathSync.native(o),a=yt.join(s,...r);return du.set(t,a),a}i(Wm,"resolveExistingPathPrefix");function zw(e){return e==="~"?Ea.homedir():e.startsWith(`~${yt.sep}`)||e.startsWith("~/")||e.startsWith("~\\")?yt.join(Ea.homedir(),e.slice(2)):e}i(zw,"expandHomeDirectory");function Xw(e){let t=Ea.tmpdir(),n=[[/^%temp%/i,t],[/^%tmp%/i,t],[/^\$env:temp\b/i,t],[/^\$env:tmp\b/i,t],[/^\$tmpdir\b/i,t],[/^\$temp\b/i,t],[/^\$tmp\b/i,t]];for(let[r,o]of n)if(r.test(e))return e.replace(r,o);return e}i(Xw,"expandSystemTempAlias");function wE(e,t){let n=yt.resolve(t??process.cwd()),r=Xw(zw(e)),o=yt.isAbsolute(r)?yt.resolve(r):yt.resolve(n,r);return Wm(o)}i(wE,"resolvePermissionPath");function Yw(){if(fu)return fu;let e=new Set,t=[Ea.tmpdir(),process.env.TEMP,process.env.TMP,process.env.TMPDIR].filter(n=>typeof n=="string"&&n.trim().length>0);for(let n of t)try{e.add(Wm(n))}catch{}return fu=Array.from(e),fu}i(Yw,"getSystemTempDirectories");function Um(e){let t=Wm(e??process.cwd());return{projectPlanDoc:yt.join(t,lE),systemTempDirs:Yw()}}i(Um,"getPlanModeAllowedWritablePaths");function Nm(e,t){let n=wE(e,t),{projectPlanDoc:r,systemTempDirs:o}=Um(t);return yE(n,r)?!0:o.some(s=>qi(n,s))}i(Nm,"isPlanModeAllowedPath");function TE(e){let{projectPlanDoc:t,systemTempDirs:n}=Um(e),r=n[0]??Ea.tmpdir();return`${t} or the system temp directory (${r})`}i(TE,"formatPlanModeAllowedLocations");var SE=new Set(["-a","--append","-i","--ignore-interrupts"]);function CE(e){let t=[];for(let n=1;n<e.argv.length;n+=1){let r=e.argv[n];SE.has(r)||r.startsWith("-")||t.push(r)}return t}i(CE,"collectTeeTargets");function bE(e){let t=[],n=1,r=!1;for(;n<e.argv.length;){let o=e.argv[n],s=o.toLowerCase();if(s==="-path"||s==="-literalpath"||s==="-destination"){let a=e.argv[n+1];if(a!==void 0&&!a.startsWith("-")){t.push(a),n+=2;continue}}!o.startsWith("-")&&!r&&(t.push(o),r=!0),n+=1}return t}i(bE,"collectPowerShellWriteTargets");function vo(e){let t=new Set,n=i(o=>{let s=o?.trim();s&&t.add(s)},"pushTarget");for(let o of gu(e))n(o);let r=Ra(e);if(r.unparseable)return Array.from(t);for(let o of r.statements)for(let s of o.stages){for(let c of s.redirections)c.input||n(c.target);let a=s.argv[0]?.toLowerCase();if(a){if(a==="tee")for(let c of CE(s))n(c);else if(Vw.has(a))for(let c of bE(s))n(c)}}return Array.from(t)}i(vo,"collectBashWriteTargets");function jm(e,t){if(!Pn(e))return{dangerous:!1};let n=new Set([...vo(e),...xE(e)]);for(let r of n)if(!hu(r,t))return{dangerous:!0,reason:`Command may modify file outside project: ${r}`};return{dangerous:!1}}i(jm,"getBashOutsideProjectWriteRisk");function xr(e,t,n){let r=TE(n);if(yn.has(e)){let o=typeof t.path=="string"?t.path:"";return o?Nm(o,n)?null:`[Blocked] Plan mode only allows file modifications in ${r}. Requested path: ${o}`:`[Blocked] Tool '${e}' is not allowed in plan mode unless it targets ${r}.`}if(e==="undo")return`[Blocked] Tool 'undo' is not allowed in plan mode. Plan mode only allows file modifications in ${r}.`;if(e==="bash"){let o=t.command??"";if(!Pn(o))return null;let s=vo(o);if(s.length===0)return`[Blocked] Plan mode only allows bash write operations when every target is either ${r}. Could not determine a safe target from: ${o.slice(0,80)}${o.length>80?"...":""}`;let a=s.find(c=>!Nm(c,n));return a?`[Blocked] Plan mode only allows bash write operations in ${r}. Blocked target: ${a}`:null}return null}i(xr,"getPlanModeBlockReason");import Fr from"node:path";import vE from"node:os";function Qi(e,t){try{let n=Fr.resolve(e),r=Fr.resolve(t);return n===r?!0:n.startsWith(r+Fr.sep)}catch{return!1}}i(Qi,"isPathUnder");function IE(){try{return pi()}catch{return}}i(IE,"safeGetAgentConfigHome");function qw(e,t){let n=IE();if(n&&Qi(e,n))return"user-kodax";let r=Fr.join(Fr.resolve(t),".kodax");if(Qi(e,r))return"project-kodax"}i(qw,"resolveProtectedZone");function kE(){let e=new Set;try{e.add(vE.tmpdir())}catch{}for(let t of["TEMP","TMP","TMPDIR"]){let n=process.env[t];n&&n.length>0&&e.add(n)}return Array.from(e)}i(kE,"getSystemTempDirs");var RE=new Set(["bash"]),Ma={toolNames:RE,collect(e,t){let n=typeof e.input.command=="string"?e.input.command:"";if(!n||!t)return[];let r=[],o=new Set,s=new Set,a=kE(),c=Fr.resolve(t);for(let l of gu(n)){let u;try{u=Fr.resolve(t,l)}catch{continue}let m=qw(u,t);if(m){o.has(u)||(o.add(u),r.push({kind:"protected_path",path:l,zone:m}));continue}if(Yn(l,t)){let p=a.some(x=>Qi(u,x)),g=Qi(u,c);!p&&!g&&!s.has(u)&&(s.add(u),r.push({kind:"outside_project",path:l}))}}for(let l of vo(n)){let u;try{u=Fr.resolve(t,l)}catch{continue}qw(u,t)||Qi(u,c)||a.some(g=>Qi(u,g))||r.push({kind:"shell_redirect_outside",target:l})}return r}};function Pa(e){return e.type==="tool_summary"?{type:"event",text:e.text,icon:"tool"}:e}i(Pa,"seedToHistoryItem");var EE="[Thinking]",ME="[/Thinking]",AE="Untitled Session",Qw=50,_E=60,Zw="...",eT=["[Managed Task]","[Managed Task Protocol Retry]","Assigned native agent identity:","Tool policy:","Blocked tools:","Allowed shell patterns:","Dependency handoff artifacts:","Dependency summary preview:","Preferred agent:","Read structured bundle first:","Read human summary next:"],tT=[/(?:^|\n)You are the [^\n]+ role for a managed KodaX task\./,/(?:^|\n)Primary task:/,/(?:^|\n)Work intent:/,/(?:^|\n)Complexity:/,/(?:^|\n)Risk:/,/(?:^|\n)Harness:/,/(?:^|\n)Brainstorm required:/],PE=/(^|\r?\n)\[Thinking\]\r?\n([\s\S]*?)\r?\n\[\/Thinking\](?=\r?\n|$)/g;function $E(e){let t=-1;for(let n of eT){let r=e.indexOf(n);r>=0&&(t===-1||r<t)&&(t=r)}for(let n of tT){let r=n.exec(e);r&&r.index>=0&&(t===-1||r.index<t)&&(t=r.index)}return t}i($E,"findControlPlaneCutIndex");function LE(e){return eT.some(t=>e.includes(t))||tT.some(t=>t.test(e))}i(LE,"hasControlPlaneSignal");function nT(e){let t=[];for(let n of e)n&&typeof n=="object"&&"type"in n&&n.type==="text"&&"text"in n&&t.push(String(n.text));return t}i(nT,"collectTextBlocks");function OE(e){return typeof e=="string"?e:Array.isArray(e)?nT(e).join(`
|
|
40
|
-
`):""}i(OE,"extractAssistantTextOnly");function _a(e,t,n){n.trim().length!==0&&e.push({type:t,text:n})}i(_a,"pushSeed");function Jw(e){return e.replace(/^\n+/,"").replace(/\n+$/,"")}i(Jw,"stripLegacyTagBoundaryNewlines");function DE(e){let t=e.name,n=e.input;if(!n)return`\u26A1 ${t}`;let r=t==="bash"?Aa(String(n.command??"")):t==="read"||t==="write"||t==="edit"?Aa(String(n.file_path??n.path??"")):t==="grep"||t==="glob"?Aa(String(n.pattern??"")):t==="web_search"||t==="web_fetch"?Aa(String(n.query??n.url??"")):void 0;return r?`\u26A1 ${t}(${r})`:`\u26A1 ${t}`}i(DE,"formatToolUseSummary");function Aa(e,t=60){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t)}...`:n}i(Aa,"truncateToolHint");function NE(e){if(!e.includes(EE)||!e.includes(ME))return e.trim().length>0?[{type:"assistant",text:e}]:[];let t=[],n=0;for(let r of e.matchAll(PE)){let o=r.index??-1,s=r[1]??"",a=r[2]??"";if(o<0)continue;let c=o+s.length;_a(t,"assistant",Jw(e.slice(n,c))),_a(t,"thinking",a),n=o+r[0].length}return _a(t,"assistant",Jw(e.slice(n))),t.length===0?e.trim().length>0?[{type:"assistant",text:e}]:[]:t}i(NE,"parseLegacyAssistantContent");function BE(e){if(typeof e=="string")return NE(e);if(!Array.isArray(e))return[];let t=[],n=[],r=i(()=>{n.length!==0&&(_a(t,"assistant",n.join(`
|
|
41
|
-
`)),n.length=0)},"flushAssistantBuffer");for(let o of e)if(!(!o||typeof o!="object"||!("type"in o)))switch(o.type){case"text":"text"in o&&n.push(String(o.text));break;case"thinking":r(),"thinking"in o&&_a(t,"thinking",String(o.thinking));break;case"tool_use":if(r(),"name"in o){let s=DE(o);s&&t.push({type:"tool_summary",text:s})}break;case"tool_result":case"redacted_thinking":break;default:break}return r(),t}i(BE,"extractAssistantHistorySeeds");var HE=["You are the Scout role","You are the Generator role","You are the Planner role","You are the Evaluator role"],FE=/\r?\n?\`\`\`kodax[\w-]*[\s\S]*?\`\`\`\s*/g;function WE(e){return HE.some(t=>e.includes(t))}i(WE,"isManagedWorkerPrompt");function UE(e){return e.replace(FE,"").trim()}i(UE,"stripManagedProtocolBlocks");function $a(e){switch(e.role){case"assistant":return BE(e.content).map(n=>({...n,text:UE(n.text)})).filter(n=>n.text.length>0);case"user":{if(e._synthetic)return[];let t=La(e.content);return t.trim().length===0||WE(t)?[]:[{type:"user",text:t}]}case"system":return[];default:return[]}}i($a,"extractHistorySeedsFromMessage");function La(e){return typeof e=="string"?e:Array.isArray(e)?nT(e).join(`
|
|
42
|
-
`):""}i(La,"extractTextContent");function jE(e){let t=e.replace(/\s+/g," ").trim();return t?t.length>Qw?`${t.slice(0,Qw)}${Zw}`:t:AE}i(jE,"formatSessionTitle");function Oa(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.role!=="assistant")continue;let r=OE(n.content);if(r)return r}return""}i(Oa,"extractLastAssistantText");function rT(e,t,n,r){let o=[Oa(e),t.trim(),n?.trim()??"",r?.trim()??""];for(let s of o){let a=Io(s);if(a)return a}return""}i(rT,"resolveCompletedAssistantText");function Io(e){let t=e.trim();if(!t)return"";let n=$E(t);return n===0?"":(n>0?t.slice(0,n):t).trim()}i(Io,"sanitizeUserFacingAssistantText");function oT(e){let t=e.trim();return t.length>0&&Io(t).length===0&&LE(t)}i(oT,"isControlPlaneOnlyAssistantText");function Ji(e){let t=e.find(r=>r.role==="user"),n=t?La(t.content):"";return jE(n)}i(Ji,"extractTitle");function GE(e,t=_E){let n=e.replace(/\n/g," "),r=n.length>t?Zw:"";return n.slice(0,t)+r}i(GE,"formatMessagePreview");import d from"chalk";import yu from"fs";import sT from"path";var xu=gi("config.json");function aT(){return sT.join(process.cwd(),".kodax","config.local.json")}i(aT,"getProjectConfigFile");function wu(e=process.env){let n=Da(xu).autoMode??{},r=e.KODAX_AUTO_MODE_ENGINE?.trim(),o=r==="llm"||r==="rules"?r:void 0,s=n.engine==="llm"||n.engine==="rules"?n.engine:void 0,a=o??s??"llm",c=iT(n.classifierModel),l=iT(e.KODAX_AUTO_MODE_CLASSIFIER_MODEL),u=e.KODAX_AUTO_MODE_TIMEOUT_MS?.trim(),m=u!==void 0?Number(u):NaN,p=Number.isFinite(m)&&m>0?Math.floor(m):void 0,g=typeof n.timeoutMs=="number"&&n.timeoutMs>0?Math.floor(n.timeoutMs):void 0;return{engine:a,classifierModel:c,classifierModelEnv:l,timeoutMs:p??g}}i(wu,"loadAutoModeSettings");function iT(e){if(typeof e!="string")return;let t=e.trim();return t.length===0?void 0:t}i(iT,"nonEmptyString");function Da(e){try{if(yu.existsSync(e))return JSON.parse(yu.readFileSync(e,"utf-8"))}catch{}return{}}i(Da,"readJsonFile");function cT(e,t){yu.mkdirSync(sT.dirname(e),{recursive:!0}),yu.writeFileSync(e,JSON.stringify(t,null,2))}i(cT,"writeJsonFile");function Na(e){let t=Da(xu);cT(xu,{...t,permissionMode:e})}i(Na,"savePermissionModeUser");function Zi(){let e=Da(xu),t=Da(aT()),n=e.alwaysAllowTools??[],r=t.alwaysAllowTools??[];return[...new Set([...n,...r])]}i(Zi,"loadAlwaysAllowTools");function Tu(e,t,n=!1){let r=pu(e,t,n);if(!r)return;let o=aT(),s=Da(o),a=s.alwaysAllowTools??[];a.includes(r)||cT(o,{...s,alwaysAllowTools:[...a,r]})}i(Tu,"saveAlwaysAllowToolPattern");var es=class{static{i(this,"CommandRegistry")}commands=new Map;aliases=new Map;register(t){let n=t.name.toLowerCase();if(this.commands.has(n))throw new Error(`Command "${t.name}" is already registered`);if(this.aliases.has(n)){let o=this.aliases.get(n);throw new Error(`Command "${t.name}" conflicts with existing alias for "${o}"`)}let r=new Set;for(let o of t.aliases??[]){let s=o.toLowerCase();if(s!==n){if(r.has(s))throw new Error(`Alias "${o}" is duplicated within command "${t.name}"`);if(this.commands.has(s))throw new Error(`Alias "${o}" conflicts with existing command "${s}"`);if(this.aliases.has(s)){let a=this.aliases.get(s);throw new Error(`Alias "${o}" is already registered for "${a}"`)}r.add(s)}}if(this.commands.set(n,{...t,source:t.source??"builtin"}),t.aliases)for(let o of t.aliases){let s=o.toLowerCase();s!==n&&this.aliases.set(s,n)}}unregister(t){let n=t.toLowerCase(),r=this.aliases.get(n)??n;if(!this.commands.has(r))return!1;let o=this.commands.get(r);if(o?.aliases)for(let s of o.aliases)this.aliases.delete(s.toLowerCase());return this.commands.delete(r),!0}get(t){let n=t.toLowerCase(),r=this.aliases.get(n)??n;return this.commands.get(r)}has(t){let n=t.toLowerCase(),r=this.aliases.get(n)??n;return this.commands.has(r)}getAll(t){let n=new Map;for(let[r,o]of this.commands)t&&o.source!==t||n.has(r)||n.set(r,{name:o.name,aliases:o.aliases,description:o.description,source:o.source??"builtin",usage:o.usage,priority:o.priority,location:o.location,path:o.path,userInvocable:o.userInvocable,disableModelInvocation:o.disableModelInvocation,allowedTools:o.allowedTools,context:o.context,agent:o.agent,argumentHint:o.argumentHint,model:o.model});return Array.from(n.values()).sort((r,o)=>r.name.localeCompare(o.name))}getBySource(t){return this.getAll(t)}getNames(){return Array.from(this.commands.keys()).sort()}clear(){this.commands.clear(),this.aliases.clear()}get size(){return this.commands.size}get aliasCount(){return this.aliases.size}},KE=new es;import xn from"chalk";import{Buffer as fT}from"node:buffer";import{spawn as VE}from"node:child_process";import lT from"node:process";var ko="\x1B",zE="\x07",Gm=`${ko}\\`;function uT(e,t){return e.SSH_CONNECTION?!1:t==="win32"||t==="darwin"||t==="linux"}i(uT,"shouldPreferNativeClipboard");function XE(e,t){let n=fT.from(e,"utf8").toString("base64"),r=t.TERM==="xterm-kitty"?Gm:zE,o=`${ko}]52;c;${n}${r}`;return t.TMUX?`${ko}Ptmux;${o.replaceAll(ko,`${ko}${ko}`)}${Gm}`:t.STY?`${ko}P${o}${Gm}`:o}i(XE,"buildOscSequence");async function Su(e,t,n){return new Promise((r,o)=>{let s=VE(e,t,{stdio:["pipe","ignore","pipe"],windowsHide:!0}),a="";s.on("error",o),s.stderr?.on("data",c=>{a+=c.toString()}),s.on("close",c=>{if(c===0){r(!0);return}o(new Error(a.trim()||`${e} exited with code ${c??"unknown"}`))}),s.stdin?.write(n),s.stdin?.end()})}i(Su,"execClipboardCommand");function YE(e){let t="$stream = [Console]::OpenStandardInput(); $buffer = New-Object byte[] 8192; $memory = New-Object System.IO.MemoryStream; while (($read = $stream.Read($buffer, 0, $buffer.Length)) -gt 0) { $memory.Write($buffer, 0, $read) }; $text = [System.Text.Encoding]::UTF8.GetString($memory.ToArray()); Set-Clipboard -Value $text",n=fT.from(e,"utf8");return[["powershell",["-NoProfile","-NonInteractive","-Command",t],n],["pwsh",["-NoProfile","-NonInteractive","-Command",t],n],["cmd",["/c","chcp 65001 >nul & clip"],n]]}i(YE,"buildWindowsClipboardCandidates");async function dT(e,t,n){if(t.SSH_CONNECTION)return!1;switch(n){case"win32":{let r=YE(e);for(let[o,s,a]of r)try{if(await Su(o,s,a))return!0}catch{}return!1}case"darwin":return Su("pbcopy",[],e);case"linux":{let r=[["wl-copy",[]],["xclip",["-selection","clipboard"]],["xsel",["--clipboard","--input"]]];for(let[o,s]of r)try{if(await Su(o,s,e))return!0}catch{}return!1}default:return!1}}i(dT,"tryNativeClipboard");async function qE(e,t){if(!t.TMUX)return!1;let n=t.LC_TERMINAL==="iTerm2"?["load-buffer","-"]:["load-buffer","-w","-"];try{return await Su("tmux",n,e)}catch{return!1}}i(qE,"tryTmuxClipboard");async function Ro(e,t={}){let n=t.env??lT.env,r=t.platform??lT.platform,o=e.trimEnd(),s=XE(o,n);if(!o)throw new Error("Nothing to copy.");if(uT(n,r))try{if(await dT(o,n,r))return{path:"native"}}catch{}if(await qE(o,n))return{path:"tmux-buffer"};if(t.terminalWrite?.(s))return{path:"osc52"};if(!uT(n,r))try{if(await dT(o,n,r))return{path:"native"}}catch{}throw new Error("Unable to access any clipboard path.")}i(Ro,"copyTextToClipboard");var Km={name:"copy",description:"Copy last assistant message to clipboard",usage:"/copy",handler:i(async(e,t)=>{let n=Oa(t.messages);if(!n){console.log(xn.yellow(`
|
|
43
|
-
No assistant message found to copy.`)),console.log(xn.dim("The assistant needs to respond first before you can copy its message."));return}try{await Ro(n);let r=n.length>50?n.slice(0,50)+"...":n;console.log(xn.green(`
|
|
44
|
-
Copied to clipboard!`)),console.log(xn.dim(`Preview: ${r}`))}catch(r){let o=r instanceof Error?r.message:String(r);console.log(xn.red(`
|
|
45
|
-
Failed to copy to clipboard: ${o}`)),console.log(xn.dim("You may need to check clipboard permissions or manually copy the message."))}},"handler"),detailedHelp:i(()=>{console.log(xn.bold(`
|
|
46
|
-
/copy - Copy Last Assistant Message
|
|
47
|
-
`)),console.log("Usage:"),console.log(xn.cyan(" /copy")+` - Copy the last assistant message to clipboard
|
|
48
|
-
`),console.log("Description:"),console.log(" This command copies the most recent assistant response to your system clipboard."),console.log(` Useful for quickly sharing or saving AI responses.
|
|
49
|
-
`),console.log("Examples:"),console.log(xn.dim(" User: Explain how async/await works")),console.log(xn.dim(" AI: [responds with explanation]")),console.log(xn.cyan(" /copy")+xn.dim(` - Copies the explanation to clipboard
|
|
50
|
-
`)),console.log("Notes:"),console.log(" - Only copies assistant messages, not user messages"),console.log(" - Works with both plain text and formatted responses"),console.log(" - Requires clipboard permissions on some systems")},"detailedHelp")};import Ut from"chalk";var Vm={name:"new",description:"Start a new conversation session",usage:"/new",handler:i(async(e,t,n)=>{if(t.messages.length===0){console.log(Ut.yellow(`
|
|
51
|
-
Current session is already empty.`)),console.log(Ut.dim("You can start a new conversation directly."));return}if(n.confirm&&!await n.confirm("Start a new session? This will clear the current conversation history.")){console.log(Ut.dim(`
|
|
52
|
-
Cancelled. Current session preserved.`));return}try{await n.saveSession(),console.log(Ut.dim(`
|
|
53
|
-
[Previous session saved]`))}catch{console.log(Ut.yellow(`
|
|
54
|
-
[Warning: Failed to save previous session]`))}n.startNewSession?.(),t.messages=[],n.clearHistory(),console.log(Ut.green(`
|
|
55
|
-
\u2713 Started new session`)),console.log(Ut.dim("Conversation history cleared. Ready for a fresh start!"))},"handler"),detailedHelp:i(()=>{console.log(Ut.bold(`
|
|
56
|
-
/new - Start New Session
|
|
57
|
-
`)),console.log("Usage:"),console.log(Ut.cyan(" /new")+` - Clear current session and start fresh
|
|
58
|
-
`),console.log("Description:"),console.log(" This command clears the current conversation history and starts a new session."),console.log(" It automatically saves the previous session before clearing."),console.log(` Useful for switching contexts or starting a new topic.
|
|
59
|
-
`),console.log("Examples:"),console.log(Ut.dim(" User: Help me refactor the authentication module")),console.log(Ut.dim(" AI: [provides refactoring help]")),console.log(Ut.cyan(" /new")),console.log(Ut.dim(" \u2713 Started new session")),console.log(Ut.dim(" User: Now I need help with database optimization")),console.log(Ut.dim(` AI: [provides database help]
|
|
60
|
-
`)),console.log("Notes:"),console.log(" \u2022 Automatically saves previous session before clearing"),console.log(" \u2022 Prompts for confirmation if there are messages in the current session"),console.log(" \u2022 Use /load to resume a previous session"),console.log(" \u2022 Use /sessions to see all saved sessions")},"detailedHelp")};function bu(e){let t=e.match(/\r\n|\r|\n/g);return t?t.length:0}i(bu,"getPastedTextRefNumLines");function QE(e,t){return t===0?`[Pasted text #${e}]`:`[Pasted text #${e} +${t} lines]`}i(QE,"formatPastedTextRef");function JE(e,t){return`[...Truncated text #${e} +${t} lines...]`}i(JE,"formatTruncatedTextRef");var ZE=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;function eM(e){let t=[],n=new RegExp(ZE.source,"g");for(let r of e.matchAll(n)){let o=Number.parseInt(r[2]??"0",10);!Number.isFinite(o)||o<=0||t.push({id:o,kind:r[1],match:r[0],index:r.index??0})}return t}i(eM,"parseReferences");function tM(e,t){let n=eM(e);if(n.length===0)return e;let r=i(s=>t instanceof Map?t.get(s):t[s],"getContent"),o=e;for(let s=n.length-1;s>=0;s--){let a=n[s];if(a.kind==="Image")continue;let c=r(a.id);!c||c.type!=="text"||(o=o.slice(0,a.index)+c.content+o.slice(a.index+a.match.length))}return o}i(tM,"expandPastedTextRefs");var nM=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]$/,rM=/^\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/;function oM(e,t){if(t>=e.length)return!0;let n=e[t];return!n||/\s/.test(n)}i(oM,"isAtWordBoundaryAfter");function iM(e,t){if(t===0)return!0;let n=e[t-1];return!n||/\s/.test(n)}i(iM,"isAtWordBoundaryBefore");function vu(e,t){if(t<=0||!oM(e,t))return null;let r=e.slice(0,t).match(nM);if(!r)return null;let o=t-r[0].length,s=Number.parseInt(r[2]??"0",10);return!Number.isFinite(s)||s<=0?null:{start:o,end:t,id:s,kind:r[1]}}i(vu,"findPlaceholderBeforeCursor");function Iu(e,t){if(t>=e.length||!iM(e,t))return null;let r=e.slice(t).match(rM);if(!r)return null;let o=Number.parseInt(r[2]??"0",10);return!Number.isFinite(o)||o<=0?null:{start:t,end:t+r[0].length,id:o,kind:r[1]}}i(Iu,"findPlaceholderAfterCursor");function mT(e){return e.length>800||bu(e)>2}i(mT,"shouldReplacePasteWithPlaceholder");function pT(e,t){if(e.length<=1e4)return{truncatedText:e,placeholderContent:""};let n=Math.floor(1e3/2),r=Math.floor(1e3/2),o=e.slice(0,n),s=e.slice(-r),a=e.slice(n,-r),c=bu(a),l=JE(t,c);return{truncatedText:o+l+s,placeholderContent:a}}i(pT,"maybeTruncateLongInput");var zm=class{static{i(this,"PasteStore")}contents=new Map;nextId=1;registerText(t){let n=this.nextId++,r=bu(t);return this.contents.set(n,{id:n,type:"text",content:t}),{id:n,placeholder:QE(n,r),numLines:r}}registerTruncatedText(t){let n=this.nextId++,r=bu(t);return this.contents.set(n,{id:n,type:"text",content:t}),{id:n,numLines:r}}adopt(t){this.contents.set(t.id,t),t.id>=this.nextId&&(this.nextId=t.id+1)}peekNextId(){return this.nextId}get(t){return this.contents.get(t)}expand(t){return tM(t,this.contents)}snapshot(){return new Map(this.contents)}restore(t){this.contents.clear();for(let[n,r]of t)this.contents.set(n,r);for(let n of t.keys())n>=this.nextId&&(this.nextId=n+1)}reset(){this.contents.clear(),this.nextId=1}size(){return this.contents.size}export(){return Array.from(this.contents.values())}},Cu=null;function gT(){return Cu===null&&(Cu=new zm),Cu}i(gT,"getOrCreateModulePasteStore");function ku(){return Cu??void 0}i(ku,"getActivePasteStore");import{createHash as sM}from"node:crypto";import{mkdir as aM,readdir as cM,readFile as lM,stat as uM,unlink as dM,writeFile as fM}from"node:fs/promises";import*as Xm from"node:path";var mM="paste-cache",pM=720*60*60*1e3;function Ym(){return gi(mM)}i(Ym,"getPasteCacheDir");function hT(e){return Xm.join(Ym(),`${e}.txt`)}i(hT,"getPastePath");function yT(e){return sM("sha256").update(e).digest("hex").slice(0,16)}i(yT,"hashPastedText");async function xT(e,t){try{let n=Ym();return await aM(n,{recursive:!0}),await fM(hT(e),t,{encoding:"utf8",mode:384}),!0}catch{return!1}}i(xT,"storePastedText");async function Ru(e){try{return await lM(hT(e),{encoding:"utf8"})}catch{return null}}i(Ru,"retrievePastedText");async function wT(e=pM){let t=Ym(),n=Date.now()-e,r=0,o=0,s;try{s=await cM(t)}catch{return{scanned:r,removed:o}}for(let a of s){if(!a.endsWith(".txt"))continue;r+=1;let c=Xm.join(t,a);try{(await uM(c)).mtimeMs<n&&(await dM(c),o+=1)}catch{}}return{scanned:r,removed:o}}i(wT,"cleanupOldPastes");import*as tp from"path";import*as TT from"os";function gM(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i(gM,"escapeRegExp");function hM(e,t){if(!e)return;let n=e.trim();if(!n.startsWith("/"))return;let r=new RegExp(`^/${gM(t)}(?:\\s+)?`,"i"),o=n.replace(r,"").trim();return o.length>0?o:void 0}i(hM,"deriveArgumentHintFromUsage");function qm(e,t="builtin"){return{...e,source:e.source??t,userInvocable:e.userInvocable??!0,disableModelInvocation:e.disableModelInvocation??!1,argumentHint:e.argumentHint??hM(e.usage,e.name)}}i(qm,"toCommandDefinition");function Qm(e){for(let t of Jm)try{let n=qm(t,"builtin");e.register(n)}catch(n){console.error(`Failed to register command "${t.name}":`,n)}}i(Qm,"registerBuiltinCommands");import*as wr from"fs";import*as Eo from"path";function yM(e){if(Array.isArray(e))return e.map(t=>String(t).trim()).filter(t=>t.length>0);if(typeof e=="string")return e.split(",").map(t=>t.trim()).filter(t=>t.length>0)}i(yM,"normalizeAliases");function xM(e){if(e==="critical"||e==="high"||e==="medium"||e==="low")return e}i(xM,"normalizePriority");function wM(e){return{disableModelInvocation:e["disable-model-invocation"]===!0,userInvocable:e["user-invocable"]!==!1,allowedTools:Ey(e["allowed-tools"]),context:e.context==="fork"?"fork":void 0,agent:typeof e.agent=="string"?e.agent:void 0,argumentHint:typeof e["argument-hint"]=="string"?e["argument-hint"]:void 0,model:typeof e.model=="string"?e.model:void 0,hooks:My(e.hooks),frontmatter:e}}i(wM,"buildExecutionMetadata");function TM(e,t){try{let n=wr.readFileSync(e,"utf-8"),[r,o]=Ry(n),s=r??{},a=Eo.basename(e,".md"),c=typeof s.name=="string"&&s.name.trim()?s.name.trim():a;if(!c||o.trim().length===0)return;let l=typeof s.description=="string"&&s.description.trim()?s.description.trim():`Custom command from ${t} level`;return{name:c,description:l,aliases:yM(s.aliases),priority:xM(s.priority),content:o.trim(),location:t,path:e,frontmatter:s,execution:wM(s)}}catch(n){console.error(`Error parsing command file ${e}:`,n);return}}i(TM,"parseCommandFile");function Zm(e){let t=[],n=new Set;for(let r=0;r<e.length;r++){let o=e[r],s=typeof o=="string"?o:o.path,a=typeof o=="string"?r===0?"user":"project":o.location;if(!wr.existsSync(s))continue;let c=Eo.resolve(s);try{c=wr.realpathSync.native?.(s)??wr.realpathSync(s)}catch{c=Eo.resolve(s)}if(!n.has(c)){n.add(c);try{let l=wr.readdirSync(s);for(let u of l){if(!u.endsWith(".md"))continue;let m=Eo.join(s,u),p=TM(m,a);p&&t.push(p)}}catch(l){console.error(`Error scanning directory ${s}:`,l)}}}return t}i(Zm,"discoverCommands");function ep(e,t){for(let n of e)try{t.register({name:n.name,aliases:n.aliases,description:n.description,source:"extension",priority:n.priority,location:n.location,path:n.path,userInvocable:n.execution.userInvocable,disableModelInvocation:n.execution.disableModelInvocation,allowedTools:n.execution.allowedTools,context:n.execution.context,agent:n.execution.agent,argumentHint:n.execution.argumentHint,model:n.execution.model,hooks:n.execution.hooks,frontmatter:n.frontmatter,handler:i(async()=>({success:!0,invocation:{...n.execution,prompt:n.content,source:"prompt",displayName:n.name,path:n.path}}),"handler")})}catch(r){console.error(`Error registering command ${n.name}:`,r)}}i(ep,"registerDiscoveredCommands");function ST(e,t){Qm(e);try{let n=TT.homedir(),r=t??process.cwd(),o=Zm([{path:tp.join(r,".kodax","commands"),location:"project"},{path:gi("commands"),location:"user"},{path:tp.join(n,".agents","commands"),location:"user"}]);ep(o,e)}catch(n){console.error("Failed to discover commands:",n)}}i(ST,"registerAllCommands");import{execFile as SM}from"child_process";import CM from"fs";import np from"path";import{promisify as bM}from"util";var vM=bM(SM);function Wr(e){if(!(!e||!e.trim()))return np.resolve(e).replace(/\\/g,"/")}i(Wr,"normalizePath");async function Ba(e,t){try{let{stdout:n}=await vM("git",t,{cwd:e,windowsHide:!0,maxBuffer:1048576}),r=n.trim();return r||void 0}catch{return}}i(Ba,"gitStdout");function IM(e){let t=Wr(e);if(t)return np.posix.basename(t)===".git"?np.posix.dirname(t):t}i(IM,"deriveCanonicalRepoRoot");async function ts(e={}){let t=Wr(e.cwd??process.cwd())??process.cwd().replace(/\\/g,"/"),n=Wr(await Ba(t,["rev-parse","--show-toplevel"])),r=await Ba(n??t,["rev-parse","--path-format=absolute","--git-common-dir"])??await Ba(n??t,["rev-parse","--git-common-dir"]),o=await Ba(n??t,["branch","--show-current"])??await Ba(n??t,["rev-parse","--abbrev-ref","HEAD"]);return{canonicalRepoRoot:IM(r)??n,workspaceRoot:n,executionCwd:t,branch:o&&o!=="HEAD"?o:void 0,workspaceKind:e.workspaceKind??"detected"}}i(ts,"inspectWorkspaceRuntime");function Eu(e,t){return!e?.canonicalRepoRoot||!t?.canonicalRepoRoot?!1:Wr(e.canonicalRepoRoot)===Wr(t.canonicalRepoRoot)}i(Eu,"isSameCanonicalRepo");function CT(e){return!!(e?.workspaceRoot&&CM.existsSync(e.workspaceRoot))}i(CT,"workspaceExists");function Ha(e){let t=Wr(e.runtimeInfo?.workspaceRoot??e.gitRoot),n=Wr(e.runtimeInfo?.executionCwd??t),r=Wr(e.runtimeInfo?.canonicalRepoRoot??t);if(!(!t&&!n&&!r))return{canonicalRepoRoot:r,workspaceRoot:t,executionCwd:n,branch:e.runtimeInfo?.branch,workspaceKind:e.runtimeInfo?.workspaceKind??"detected"}}i(Ha,"resolveSessionRuntimeInfo");function wn(e){if(!e?.workspaceRoot)return"No git workspace detected";let t=e.branch?` @ ${e.branch}`:"",n=e.workspaceKind??"detected";return`${e.workspaceRoot}${t} [${n}]`}i(wn,"formatWorkspaceTruth");function kM(e){return{global:e.filter(t=>t.scope==="global").length,directory:e.filter(t=>t.scope==="directory").length,project:e.filter(t=>t.scope==="project").length}}i(kM,"summarizeAgentsFiles");function RM(e,t,n){if(!Number.isFinite(t)||t<=0||n<=0)return{...e,enabled:!0};let r=t/n*100,o=Math.max(1,Math.ceil(r)-1);return{...e,enabled:!0,triggerPercent:Math.min(e.triggerPercent,o)}}i(RM,"createManualCompactionConfig");function rp(e){e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace unchanged: ${wn(e.runtimeInfo)}`)):console.log(d.dim(" Workspace unchanged."))}i(rp,"printWorkspaceUnchangedNote");var Jm=[{name:"help",aliases:["h","?"],description:"Show all available commands",usage:"/help [command]",handler:i(async e=>{e.length>0?BM(e[0]):NM()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
61
|
-
/help - Show Command Help
|
|
62
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /help ")+"Show all available commands"),console.log(d.dim(" /help <command> ")+"Show detailed help for a specific command"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /help ")+"# List all commands"),console.log(d.dim(" /help mode ")+"# Detailed help for /mode"),console.log()},"detailedHelp")},{name:"exit",aliases:["quit","q","bye"],description:"Exit interactive mode",handler:i(async(e,t,n)=>{await n.saveSession(),console.log(d.green(`
|
|
63
|
-
Session saved. Goodbye!`)),await n.exit()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
64
|
-
/exit - Exit Interactive Mode
|
|
65
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /exit ")+"Save session and exit"),console.log(d.dim(" /quit, /q, /bye ")+"Aliases for /exit"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Saves the current conversation session and exits interactive mode.")),console.log(d.dim(" Sessions can be resumed later with /load or CLI -c option.")),console.log(d.dim(" Exiting never removes or mutates the current workspace.")),console.log()},"detailedHelp")},{name:"clear",description:"Clear conversation history",handler:i(async(e,t,n)=>{t.messages=[],t.contextTokenSnapshot=void 0,n.clearHistory(),console.log(d.yellow(`
|
|
66
|
-
[Conversation cleared]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
67
|
-
/clear - Clear Conversation History
|
|
68
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /clear ")+"Clear all messages in current session"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Removes all messages from the current conversation context.")),console.log(d.dim(" Useful for starting fresh while keeping the session.")),console.log(),console.log(d.yellow(" Warning: This action cannot be undone!")),console.log()},"detailedHelp")},{name:"cost",description:"Show session cost report",usage:"/cost",handler:i(async(e,t,n)=>{let r=n.getCostReport?.();if(!r){console.log(d.dim(`
|
|
69
|
-
[No cost data available yet]`));return}console.log(d.cyan(`
|
|
70
|
-
`+r))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
71
|
-
/cost - Session Cost Report
|
|
72
|
-
`)),console.log(d.bold("Description:")),console.log(d.dim(" Shows token usage and estimated cost for the current session,")),console.log(d.dim(" broken down by provider and AMA role.")),console.log()},"detailedHelp")},{name:"paste",description:"Inspect pasted text stored in the input buffer",usage:"/paste show <id> | /paste list",argumentHint:"show <id> | list",handler:i(async e=>{let t=e[0]?.toLowerCase();if(!t||t==="help"){console.log(d.cyan(`
|
|
73
|
-
/paste - Inspect stored paste contents`)),console.log(d.dim(" /paste list - Show all pasted text ids in this session")),console.log(d.dim(" /paste show <id> - Print the full content of paste #<id>")),console.log();return}let n=ku();if(!n){console.log(d.yellow(`
|
|
74
|
-
[No paste registry active]`)),console.log(d.dim(" The REPL composer is not mounted, or no paste has been captured yet."));return}if(t==="list"){let r=n.export();if(r.length===0){console.log(d.dim(`
|
|
75
|
-
[No pasted content in this session yet]`));return}console.log(d.bold(`
|
|
76
|
-
Pasted content in this session:
|
|
77
|
-
`));for(let o of r){let s=o.content?.length??0,a=o.contentHash?` (hash ${o.contentHash.slice(0,8)})`:"";console.log(` ${d.cyan(`#${o.id}`)} ${o.type} ${s} chars${a}`)}console.log();return}if(t==="show"){let r=e[1],o=r?Number.parseInt(r,10):NaN;if(!Number.isFinite(o)||o<=0){console.log(d.yellow(`
|
|
78
|
-
Usage: /paste show <id>`));return}let s=n.get(o);if(!s){console.log(d.dim(`
|
|
79
|
-
[No paste registered with id #${o}]`));return}let a=s.content??"";if(!a&&s.contentHash){let c=await Ru(s.contentHash);c&&(a=c)}if(!a){console.log(d.yellow(`
|
|
80
|
-
[Paste #${o} has no stored content (hash ${s.contentHash??"n/a"})]`));return}console.log(d.bold(`
|
|
81
|
-
Pasted text #${o} (${a.length} chars):
|
|
82
|
-
`)),console.log(a),console.log();return}console.log(d.yellow(`
|
|
83
|
-
[Unknown /paste subcommand: ${t}]`)),console.log(d.dim(" Try /paste show <id> or /paste list"))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
84
|
-
/paste - Inspect stored paste contents
|
|
85
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /paste list - Show all pasted text ids in this session")),console.log(d.dim(" /paste show <id> - Print the full content of paste #<id>")),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" When you paste more than ~800 chars into the input bar, KodaX")),console.log(d.dim(" replaces the pasted text with a `[Pasted text #N +K lines]` anchor")),console.log(d.dim(" to keep the UI responsive. The full content is preserved and sent")),console.log(d.dim(" to the LLM on submit. Use this command to see what was captured.")),console.log()},"detailedHelp")},{name:"compact",description:"Manually trigger context compaction",usage:"/compact [instructions]",handler:i(async(e,t,n,r)=>{try{let o=await bl(t.gitRoot),s=r.provider,a=di(s);if(!a){console.log(d.red(`
|
|
86
|
-
[Provider not found: ${s}]`));return}let c=e.length>0?e.join(" "):void 0,l=o.contextWindow??a.getEffectiveContextWindow?.(r.model)??a.getContextWindow?.()??2e5,u=t.contextTokenSnapshot?.currentTokens??co(t.messages),m=RM(o,u,l);console.log(d.dim(`
|
|
87
|
-
[Compacting conversation...]`)),n.startCompacting?.();try{let p=await Iy(t.messages,m,a,l,c,void 0,u,_y,Py);if(!p.compacted){console.log(d.green(`
|
|
88
|
-
[No compaction needed]`)),console.log(d.dim(`Current token usage: ${p.tokensBefore.toLocaleString()}
|
|
89
|
-
`));return}t.messages=p.messages,t.contextTokenSnapshot={currentTokens:p.tokensAfter,baselineEstimatedTokens:p.tokensAfter,source:"estimate"},n.clearHistory?.(),await n.saveSession(),console.log(d.green(`
|
|
90
|
-
[Compaction complete: ${Math.round(p.tokensBefore/1e3)}k -> ${Math.round(p.tokensAfter/1e3)}k tokens, ${Math.round((1-p.tokensAfter/p.tokensBefore)*100)}% reduced]`)),console.log()}finally{n.stopCompacting?.()}}catch(o){let s=o instanceof Error?o.message:String(o);console.log(d.red(`
|
|
91
|
-
[Compaction failed: ${s}]
|
|
92
|
-
`))}},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
93
|
-
/compact - Manual Context Compaction
|
|
94
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /compact ")+"Compact conversation with default instructions"),console.log(d.dim(" /compact <text> ")+"Compact with custom instructions for the summary"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Manually triggers context compaction using LLM-generated summaries.")),console.log(d.dim(" Older messages are replaced with a structured summary, keeping recent context.")),console.log(d.dim(" /compact still works even if auto-compaction is disabled or the auto threshold is not reached.")),console.log(),console.log(d.bold("What it does:")),console.log(d.dim(" 1. Protects a recent slice of context from pruning/summary")),console.log(d.dim(" 2. Generates structured summary of older messages using LLM")),console.log(d.dim(" 3. Tracks files that were read/modified in the conversation")),console.log(d.dim(" 4. Replaces old messages with summary to save tokens")),console.log(),console.log(d.bold("Configuration:")),console.log(d.dim(" Config file: ~/.kodax/config.json")),console.log(d.dim(" Settings:")),console.log(d.dim(" - compaction.triggerPercent: Usage percentage that triggers compaction")),console.log(d.dim(" - compaction.enabled: Controls auto-compaction only; /compact always remains available")),console.log(d.dim(" - compaction.contextWindow: Optional token-window override")),console.log(d.dim(" - compaction.protectionPercent / rollingSummaryPercent / pruningThresholdTokens: Advanced tuning")),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /compact ")+"# Compact with default instructions"),console.log(d.dim(" /compact focus on auth logic ")+"# Emphasize authentication in summary"),console.log(),console.log(d.dim(" See also: /help status (shows token usage)")),console.log()},"detailedHelp")},{name:"reload",description:"Reload project rules and active extensions",handler:i(async(e,t,n,r)=>{console.log(d.cyan(`
|
|
95
|
-
Reloading project rule files and runtime extensions...
|
|
96
|
-
`));try{let o=await n.reloadAgentsFiles?.()??[],s=kM(o),a=dr(),c=a?ns(a).loadedExtensions.length:0,l=a?ns(a).failures.length:0,u=0,m=0;if(a){await a.reloadExtensions({continueOnError:!0});let p=ns(a);u=c||p.loadedExtensions.length,m=Math.max(0,p.failures.length-l)}if(o.length===0&&u===0){console.log(d.yellow(`No project rule files or active extensions found.
|
|
97
|
-
`)),console.log(d.dim(" Create AGENTS.md or CLAUDE.md in your project, or load extensions with --extension.")),console.log();return}console.log(d.green(`Rules reloaded successfully:
|
|
98
|
-
`)),s.global>0&&console.log(d.dim(` - Global: ${s.global} file(s)`)),s.directory>0&&console.log(d.dim(` - Directory: ${s.directory} file(s)`)),s.project>0&&console.log(d.dim(` - Project: ${s.project} file(s)`)),u>0&&console.log(d.dim(` - Extensions: ${u} module(s)`)),m>0&&console.log(d.yellow(` - Failures: ${m} recorded (run /extensions for details)`)),console.log(d.dim(" Updated rules will apply to subsequent requests in this session.")),console.log();return}catch(o){console.log(d.red(`Failed to reload rules.
|
|
99
|
-
`)),console.log(d.dim(` Error: ${o instanceof Error?o.message:String(o)}`)),console.log()}},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
100
|
-
/reload - Reload Project Rules
|
|
101
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /reload ")+"Reload project rule files and active extensions"),console.log(),console.log(d.bold("Description:")),console.log(" Reloads project-level context rules from AGENTS.md, CLAUDE.md, and .kodax/AGENTS.md files."),console.log(" If a runtime extension host is active, it also hot-reloads loaded extensions."),console.log(),console.log(d.bold("Rule Priority:")),console.log(d.dim(" 1. Global: ")+"~/.kodax/AGENTS.md"),console.log(d.dim(" 2. Directory: ")+"AGENTS.md or CLAUDE.md from project root to current directory"),console.log(d.dim(" 3. Project: ")+".kodax/AGENTS.md at the project root"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /reload ")+"# Reload and show loaded rules"),console.log()},"detailedHelp")},{name:"extensions",aliases:["ext"],description:"Show active extension runtime diagnostics",usage:"/extensions",handler:i(async()=>{let e=dr();if(!e){console.log(d.yellow(`
|
|
102
|
-
[No active extension runtime]
|
|
103
|
-
`));return}let t=ns(e),n=t.tools.filter(r=>r.source.kind==="extension");if(console.log(d.bold(`
|
|
104
|
-
Extension Runtime:
|
|
105
|
-
`)),console.log(d.dim(` Loaded: ${t.loadedExtensions.length}`)),console.log(d.dim(` Capabilities: ${t.capabilityProviders.length}`)),console.log(d.dim(` Commands: ${t.commands.length}`)),console.log(d.dim(` Hooks: ${t.hooks.length}`)),console.log(d.dim(` Failures: ${t.failures.length}`)),console.log(d.dim(` Extension Tools: ${n.length}`)),t.defaults.activeTools!==void 0&&console.log(d.dim(` Active Tools: ${t.defaults.activeTools.join(", ")||"(none)"}`)),(t.defaults.modelSelection.provider||t.defaults.modelSelection.model)&&console.log(d.dim(` Model Override: ${t.defaults.modelSelection.provider??"(inherit)"} / ${t.defaults.modelSelection.model??"(inherit)"}`)),t.defaults.thinkingLevel&&console.log(d.dim(` Thinking: ${t.defaults.thinkingLevel}`)),console.log(),t.loadedExtensions.length>0){console.log(d.bold("Loaded Extensions:"));for(let r of t.loadedExtensions)console.log(d.dim(` - ${r.label} [${r.loadSource}] (${r.path})`));console.log()}if(t.commands.length>0){console.log(d.bold("Extension Commands:"));for(let r of t.commands){let o=r.aliases?.length?` [${r.aliases.join(", ")}]`:"";console.log(d.dim(` - /${r.name}${o} ${r.description}`))}console.log()}if(t.capabilityProviders.length>0){console.log(d.bold("Capability Providers:"));for(let r of t.capabilityProviders){let o=GM(r.metadata);console.log(d.dim(` - ${r.id} [${r.kinds.join(", ")}]${o?` ${o}`:""}`))}console.log()}if(n.length>0){console.log(d.bold("Extension Tools:"));for(let r of n){let o=r.shadowedSources.length>0?` overrides: ${r.shadowedSources.map(s=>s.label??s.id??s.kind).join(", ")}`:"";console.log(d.dim(` - ${r.name}${o}`))}console.log()}if(t.hooks.length>0){console.log(d.bold("Hook Participation:"));for(let r of t.hooks)console.log(d.dim(` - ${r.hook} [#${r.order}] ${r.source.label}`));console.log()}if(t.failures.length>0){console.log(d.bold("Recent Failures:"));for(let r of t.failures.slice(-10))console.log(d.dim(` - [${r.stage}] ${r.source.label}: ${r.target} -> ${r.message}`));console.log()}},"handler")},{name:"status",aliases:["info","ctx"],description:"Show current session status",handler:i(async(e,t,n,r)=>{await HM(t,r,e)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
106
|
-
/status - Show Session Status
|
|
107
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /status ")+"Display current session information"),console.log(d.dim(" /status workspace ")+"Show deeper workspace/runtime details"),console.log(d.dim(" /info, /ctx ")+"Aliases for /status"),console.log(),console.log(d.bold("Displays:")),console.log(d.dim(" - Current mode (code/ask)")),console.log(d.dim(" - Session ID")),console.log(d.dim(" - Message count")),console.log(d.dim(" - Estimated token usage")),console.log(d.dim(" - Current workspace truth")),console.log(d.dim(" - Session timestamps")),console.log(d.dim(" - Repo-intelligence mode and active runtime summary")),console.log()},"detailedHelp")},{name:"mcp",description:"Show MCP server status or refresh catalogs",usage:"/mcp [status|refresh]",handler:i(async e=>{let t=dr();if(!t){console.log(d.yellow(`
|
|
108
|
-
[No extension runtime active \u2014 MCP is not available]`));return}let r=ns(t).capabilityProviders.find(c=>c.id==="mcp");if((e[0]?.toLowerCase()??"status")==="refresh"){console.log(d.dim(`
|
|
109
|
-
Refreshing MCP catalogs...`));try{await t.refreshCapabilityProviders("mcp"),console.log(d.green("MCP catalogs refreshed."))}catch(c){console.log(d.red(`Refresh failed: ${c instanceof Error?c.message:String(c)}`))}return}if(console.log(d.cyan(`
|
|
110
|
-
MCP Status
|
|
111
|
-
`)),!r){console.log(d.yellow(" No MCP provider registered.")),console.log(d.dim(` Add mcpServers to ~/.kodax/config.json to enable MCP.
|
|
112
|
-
`));return}let a=r.metadata?.servers??[];console.log(d.dim(` Servers: ${a.length}`)),console.log();for(let c of a){let l=c.status==="ready"?d.green:c.status==="error"?d.red:d.yellow;console.log(` ${d.bold(c.serverId)} ${l(c.status)} connect=${d.dim(c.connect)}`),c.cachedAt&&console.log(d.dim(` tools=${c.tools} resources=${c.resources} prompts=${c.prompts}`)),c.lastError&&console.log(d.red(` error: ${c.lastError}`))}console.log()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
113
|
-
/mcp - MCP Server Management
|
|
114
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /mcp ")+"Show MCP server status"),console.log(d.dim(" /mcp status ")+"Same as /mcp"),console.log(d.dim(" /mcp refresh ")+"Force-refresh all MCP server catalogs"),console.log()},"detailedHelp")},{name:"repointel",aliases:["ri"],description:"Inspect or control the repo-intelligence premium runtime",usage:"/repointel [status|mode|trace|warm|endpoint|bin]",handler:i(async(e,t,n,r)=>{let o=e[0]?.toLowerCase()??"status";if(o==="status"){let s=await sa({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace,probePremium:!0});RT(s);return}if(o==="warm"){let s=await xy({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});DM(s);return}if(o==="mode"){if(e.length===1){console.log(d.dim(`
|
|
115
|
-
Current repo-intelligence mode: ${d.cyan(r.repoIntelligenceMode??"auto")}`)),console.log(d.dim(`Usage: /repointel mode [auto|off|oss|premium-shared|premium-native]
|
|
116
|
-
`));return}let s=PM(e[1]);if(!s){console.log(d.red(`
|
|
117
|
-
[Invalid repo-intelligence mode: ${e[1]}]`)),console.log(d.dim(`Usage: /repointel mode [auto|off|oss|premium-shared|premium-native]
|
|
118
|
-
`));return}let a=Mu({mode:s},{repoIntelligenceMode:s},n,r);Mo(`Repo intelligence mode: ${s}`,a);return}if(o==="trace"){let s=e[1]?.toLowerCase();if(!s){console.log(d.dim(`
|
|
119
|
-
Current repo-intelligence trace: ${d.cyan(r.repoIntelligenceTrace?"on":"off")}`)),console.log(d.dim(`Usage: /repointel trace [on|off|toggle]
|
|
120
|
-
`));return}let a=$M(s,r.repoIntelligenceTrace??!1);if(a===null){console.log(d.red(`
|
|
121
|
-
[Invalid trace value: ${e[1]}]`)),console.log(d.dim(`Usage: /repointel trace [on|off|toggle]
|
|
122
|
-
`));return}let c=Mu({trace:a},{repoIntelligenceTrace:a},n,r);Mo(`Repo intelligence trace: ${a?"on":"off"}`,c);return}if(o==="endpoint"){if(e.length===1){let c=await sa({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});console.log(d.dim(`
|
|
123
|
-
Current repointel endpoint: ${d.cyan(c.endpoint)}`)),console.log(d.dim(`Usage: /repointel endpoint [http://host:port|default]
|
|
124
|
-
`));return}let s=bT(e[1]),a=Mu({endpoint:s},{repointelEndpoint:s??void 0},n,r);Mo(`Repointel endpoint: ${s??"default"}`,a);return}if(o==="bin"){if(e.length===1){let c=await sa({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});console.log(d.dim(`
|
|
125
|
-
Current repointel bin: ${d.cyan(c.bin)}`)),console.log(d.dim(`Usage: /repointel bin [<path-or-command>|default]
|
|
126
|
-
`));return}let s=bT(e.slice(1).join(" ")),a=Mu({bin:s},{repointelBin:s??void 0},n,r);Mo(`Repointel bin: ${s??"default"}`,a);return}console.log(d.red(`
|
|
127
|
-
[Unknown /repointel subcommand: ${e[0]}]`)),console.log(d.dim(`Usage: /repointel [status|mode|trace|warm|endpoint|bin]
|
|
128
|
-
`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
129
|
-
/repointel - Repo-Intelligence Runtime Control
|
|
130
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /repointel ")+"Show current repo-intelligence and premium runtime status"),console.log(d.dim(" /repointel status ")+"Probe the local premium frontdoor and print detailed status"),console.log(d.dim(" /repointel mode auto ")+"Prefer premium-native when available, otherwise fall back to OSS"),console.log(d.dim(" /repointel mode off ")+"Strictly disable repo-intelligence working tools and auto lane for this session"),console.log(d.dim(" /repointel mode oss ")+"Force the OSS baseline only"),console.log(d.dim(" /repointel mode premium-shared ")+"Use premium without KodaX native auto lane"),console.log(d.dim(" /repointel mode premium-native ")+"Use the KodaX flagship premium path"),console.log(d.dim(" /repointel trace on|off|toggle ")+"Toggle repo-intelligence trace output"),console.log(d.dim(" /repointel endpoint http://127.0.0.1:47891")+"Override the local premium daemon endpoint"),console.log(d.dim(" /repointel endpoint default ")+"Clear the endpoint override and use the default"),console.log(d.dim(" /repointel bin repointel ")+"Use a PATH-visible repointel command"),console.log(d.dim(" /repointel bin <path> ")+"Use an explicit repointel launcher path"),console.log(d.dim(" /repointel bin default ")+"Clear the bin override and use the default command"),console.log(d.dim(" /repointel warm ")+"Try to start or warm the local premium daemon"),console.log(),console.log(d.bold("Notes:")),console.log(d.dim(" - /status now includes a compact repo-intelligence summary.")),console.log(d.dim(" - /repointel warm is operational: it can warm the premium runtime even when your current mode is oss/off.")),console.log(d.dim(" - If the local service cannot be started, KodaX will continue with the OSS baseline and this command will explain why.")),console.log()},"detailedHelp")},{name:"mode",description:"Show or switch permission mode (plan/accept-edits/auto)",usage:"/mode [plan|accept-edits|auto]",handler:i(async(e,t,n,r)=>{if(e.length===0){let s=Xn(r.permissionMode,"accept-edits")??"accept-edits";console.log(d.dim(`
|
|
131
|
-
Current mode: ${d.cyan(s)}`)),console.log(d.dim("Usage: /mode [plan|accept-edits|auto]"));return}let o=e[0];ka.includes(o)?(r.permissionMode=o,n.setPermissionMode?.(o),Na(o),console.log(d.cyan(`
|
|
132
|
-
[Switched to ${o} mode] (saved)`))):console.log(d.red(`
|
|
133
|
-
[Unknown mode: ${e[0]}. Use: plan | accept-edits | auto]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
134
|
-
/mode - Switch Permission Mode
|
|
135
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /mode ")+"Show current permission mode"),console.log(d.dim(" /mode plan ")+"Read-only: blocks all modifications"),console.log(d.dim(" /mode accept-edits ")+"File edits auto, bash requires confirmation"),console.log(d.dim(" /mode auto ")+"LLM classifier reviews each tool call (FEATURE_092)"),console.log(d.dim(" /mode auto-in-project ")+d.gray("(deprecated alias for auto; will be removed in v0.7.38)")),console.log(),console.log(d.bold("Permission Levels:")),console.log(d.yellow(" plan ")+d.dim("- Read-only planning, no file/command modifications")),console.log(d.green(" accept-edits ")+d.dim("- File edits auto-approved, bash still requires confirmation")),console.log(d.green(" auto ")+d.dim("- LLM classifier (engine=llm, default) or rules engine reviews each call")),console.log(),console.log(d.bold("Notes:")),console.log(d.dim(" - .kodax/ directory and project-external paths always require confirmation")),console.log(d.dim(" - Mode is saved to ~/.kodax/config.json (user-level)")),console.log()},"detailedHelp")},{name:"auto-engine",description:"Show or set auto-mode classifier engine (llm | rules)",usage:"/auto-engine [llm|rules]",handler:i(async(e,t,n)=>{let r=n.getAutoModeStats?.();if(!r){console.log(d.yellow(`
|
|
136
|
-
[auto-engine] not in auto mode \u2014 switch via /mode auto first`));return}if(e.length===0){console.log(d.dim(`
|
|
137
|
-
Classifier engine: ${d.cyan(r.engine)}`)),console.log(d.dim(` consecutive denials: ${r.denials.consecutive}`)),console.log(d.dim(` cumulative denials: ${r.denials.cumulative}`)),console.log(d.dim(` breaker errors: ${r.breaker.timestamps.filter(s=>s>=Date.now()-600*1e3).length}`)),console.log(d.dim("Usage: /auto-engine [llm|rules]"));return}let o=e[0];if(o!=="llm"&&o!=="rules"){console.log(d.red(`
|
|
138
|
-
[auto-engine] unknown engine "${e[0]}" \u2014 use llm or rules`));return}n.setAutoModeEngine?.(o),console.log(d.cyan(`
|
|
139
|
-
[auto-engine] switched to ${o}`)),console.log(o==="rules"?d.dim(" every non-Tier-1 tool call now escalates to user confirmation"):d.dim(" classifier consultation resumed; threshold downgrades still apply"))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
140
|
-
/auto-engine - Auto-Mode Classifier Engine Toggle
|
|
141
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /auto-engine ")+"Show current engine + denial/breaker counts"),console.log(d.dim(" /auto-engine llm ")+"Resume classifier consultation (default)"),console.log(d.dim(" /auto-engine rules ")+"Skip classifier; every non-Tier-1 call asks user"),console.log(),console.log(d.bold("Notes:")),console.log(d.dim(" - Only meaningful in auto mode (/mode auto).")),console.log(d.dim(" - The classifier may auto-downgrade to rules after 3 consecutive blocks,")),console.log(d.dim(" 20 cumulative blocks, or 5 errors in a 10-minute window. /auto-engine llm")),console.log(d.dim(" manually flips back to llm.")),console.log(d.dim(" - Override via env: KODAX_AUTO_MODE_ENGINE=rules.")),console.log()},"detailedHelp")},{name:"auto-denials",description:"Show auto-mode classifier denial tracker + circuit breaker stats",usage:"/auto-denials",handler:i(async(e,t,n)=>{let r=n.getAutoModeStats?.();if(!r){console.log(d.yellow(`
|
|
142
|
-
[auto-denials] not in auto mode \u2014 switch via /mode auto first`));return}console.log(d.cyan(`
|
|
143
|
-
[auto-mode classifier stats]`)),console.log(d.dim(` engine: ${d.cyan(r.engine)}`)),console.log(d.dim(" Denial tracker:")),console.log(d.dim(` consecutive blocks: ${r.denials.consecutive} / 3`)),console.log(d.dim(` cumulative blocks: ${r.denials.cumulative} / 20`)),console.log(d.dim(" Circuit breaker:")),console.log(d.dim(` errors in window: ${r.breaker.timestamps.filter(o=>o>=Date.now()-600*1e3).length} / 5 (10 min)`)),console.log(),r.engine==="rules"&&console.log(d.yellow(" \u21AA engine has downgraded to rules. /auto-engine llm to flip back.")),console.log()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
144
|
-
/auto-denials - Auto-Mode Classifier Diagnostic Dump
|
|
145
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /auto-denials ")+"Print engine + tracker + breaker counters"),console.log(),console.log(d.bold("Thresholds (FEATURE_092):")),console.log(d.dim(" - 3 consecutive blocks \u2192 engine downgrade to rules")),console.log(d.dim(" - 20 cumulative blocks \u2192 engine downgrade to rules")),console.log(d.dim(" - 5 errors in 10-min \u2192 circuit breaker trips \u2192 engine downgrade")),console.log()},"detailedHelp")},{name:"save",description:"Save current session",handler:i(async(e,t,n)=>{await n.saveSession(),console.log(d.green(`
|
|
146
|
-
[Session saved]`)),rp(t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
147
|
-
/save - Save Current Session
|
|
148
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /save ")+"Save current conversation to session storage"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Manually saves the current conversation session.")),console.log(d.dim(" Sessions are auto-saved after each message, but you can")),console.log(d.dim(" use this to ensure the session is persisted.")),console.log(d.dim(" Saving updates session storage only; the current workspace stays untouched.")),console.log(),console.log(d.dim(" See also: /help load, /help sessions")),console.log()},"detailedHelp")},{name:"load",aliases:["resume"],description:"Load a session",usage:"/load <session-id>",handler:i(async(e,t,n)=>{if(e.length===0){console.log(d.red(`
|
|
149
|
-
[Usage: /load <session-id>]`)),await n.listSessions();return}await n.loadSession(e[0])==="missing"&&console.log(d.red(`
|
|
150
|
-
[Session not found: ${e[0]}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
151
|
-
/load - Load a Saved Session
|
|
152
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /load ")+"List available sessions"),console.log(d.dim(" /load <session-id> ")+"Load a specific session"),console.log(d.dim(" /resume <id> ")+"Alias for /load"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /load ")+"# See all sessions"),console.log(d.dim(" /load 20260219_143052")+"# Load session by ID"),console.log(),console.log(d.bold("Workspace behavior:")),console.log(d.dim(" /load can resume sessions from sibling workspaces in the same canonical repo.")),console.log(d.dim(" If a saved workspace is unavailable, KodaX explains the fallback before loading.")),console.log(),console.log(d.dim(" See also: /help sessions, /help save")),console.log()},"detailedHelp")},{name:"tree",description:"Inspect or switch the current session tree",usage:"/tree [entry-id|label] | /tree label <entry-id|label> <name> | /tree unlabel <entry-id|label>",handler:i(async(e,t,n)=>{if(e.length===0){await n.printSessionTree?.();return}let r=e[0]?.trim().toLowerCase();if(r==="label"){if(e.length<3){console.log(d.red(`
|
|
153
|
-
[Usage: /tree label <entry-id|label> <name>]`));return}await n.labelSessionBranch?.(e[1],e.slice(2).join(" "))||console.log(d.red(`
|
|
154
|
-
[Tree entry not found: ${e[1]}]`));return}if(r==="unlabel"){if(e.length<2){console.log(d.red(`
|
|
155
|
-
[Usage: /tree unlabel <entry-id|label>]`));return}await n.labelSessionBranch?.(e[1],void 0)||console.log(d.red(`
|
|
156
|
-
[Tree entry not found: ${e[1]}]`));return}await n.switchSessionBranch?.(e[0])==="missing"&&console.log(d.red(`
|
|
157
|
-
[Tree entry not found: ${e[0]}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
158
|
-
/tree - Inspect Session Lineage
|
|
159
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /tree ")+"Show the current session tree"),console.log(d.dim(" /tree <entry-id|label> ")+"Jump to a previous branch point"),console.log(d.dim(" /tree label <entry-id|label> <name>")+"Attach a lightweight checkpoint label"),console.log(d.dim(" /tree unlabel <entry-id|label> ")+"Clear an existing checkpoint label"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Session history is stored as a branchable tree. Use /tree to")),console.log(d.dim(" inspect the lineage, revisit an earlier branch safely, and add")),console.log(d.dim(" bookmark-style checkpoint labels without changing git state.")),console.log()},"detailedHelp")},{name:"fork",description:"Fork the current branch into a new session",usage:"/fork [entry-id|label]",handler:i(async(e,t,n)=>{await n.forkSession?.(e[0])==="failed"&&console.log(d.red(`
|
|
160
|
-
[Unable to fork session${e[0]?` from ${e[0]}`:""}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
161
|
-
/fork - Export a Branch to a New Session
|
|
162
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /fork ")+"Fork from the active branch"),console.log(d.dim(" /fork <entry-id|label>")+"Fork from a selected tree node"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Creates a new session file from the selected branch so you can")),console.log(d.dim(" continue there without mutating the current session lineage.")),console.log()},"detailedHelp")},{name:"rewind",description:"Rewind the current session to a previous point",usage:"/rewind [entry-id|label]",handler:i(async(e,t,n)=>{await n.rewindSession?.(e[0])==="failed"&&console.log(d.red(`
|
|
163
|
-
[Unable to rewind${e[0]?` to ${e[0]}`:" \u2014 no previous turn found"}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
164
|
-
/rewind - Rewind Session to a Previous Point
|
|
165
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /rewind ")+"Rewind to the previous user input"),console.log(d.dim(" /rewind <entry-id|label>")+"Rewind to a specific tree node"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Truncates the session after the target entry. Unlike /fork,")),console.log(d.dim(" this modifies the current session in place. The rewind event")),console.log(d.dim(" is recorded in the lineage for auditability.")),console.log(),console.log(d.yellow(" \u26A0 This is irreversible. Use /fork first to preserve a copy.")),console.log()},"detailedHelp")},{name:"sessions",aliases:["ls","list"],description:"List recent sessions",handler:i(async(e,t,n)=>{await n.listSessions()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
166
|
-
/sessions - List Saved Sessions
|
|
167
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /sessions ")+"List all saved sessions"),console.log(d.dim(" /ls, /list ")+"Aliases for /sessions"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Shows recent conversation sessions with their IDs,")),console.log(d.dim(" message counts, titles, and workspace truth. Use /load <id> to resume.")),console.log(d.dim(" This keeps sibling worktree sessions inspectable without a persistent cockpit.")),console.log(),console.log(d.dim(" See also: /help load, /help delete")),console.log()},"detailedHelp")},{name:"history",aliases:["hist"],description:"Show conversation history",handler:i(async(e,t,n)=>{n.printHistory()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
168
|
-
/history - Show Conversation History
|
|
169
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /history ")+"Display recent messages in current session"),console.log(d.dim(" /hist ")+"Alias for /history"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Shows the last 20 messages in the current conversation.")),console.log(d.dim(" Useful for reviewing what has been discussed.")),console.log()},"detailedHelp")},{name:"delete",aliases:["rm","del"],description:"Delete a session",usage:"/delete <session-id> or /delete all",handler:i(async(e,t,n)=>{if(e.length===0){console.log(d.red(`
|
|
170
|
-
[Usage: /delete <session-id> or /delete all]`)),await n.listSessions?.();return}e[0]==="all"?(await n.deleteAllSessions?.(),console.log(d.green(`
|
|
171
|
-
[All sessions deleted]`)),rp(t)):(await n.deleteSession?.(e[0]),console.log(d.green(`
|
|
172
|
-
[Session deleted: ${e[0]}]`)),rp(t))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
173
|
-
/delete - Delete Saved Sessions
|
|
174
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /delete ")+"Show usage (lists sessions)"),console.log(d.dim(" /delete <id> ")+"Delete a specific session"),console.log(d.dim(" /delete all ")+"Delete ALL sessions"),console.log(d.dim(" /rm, /del ")+"Aliases for /delete"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /delete 20260219_143052")+" # Delete specific session"),console.log(d.dim(" /delete all ")+"# Delete all sessions"),console.log(),console.log(d.bold("Workspace behavior:")),console.log(d.dim(" Deletes saved session records only.")),console.log(d.dim(" Current workspaces and checkouts remain untouched.")),console.log(),console.log(d.yellow(" Warning: /delete all cannot be undone!")),console.log()},"detailedHelp")},{name:"model",aliases:["m"],description:"Show or switch provider/model",usage:"/model [<provider>[/<model>] | /<model>]",handler:i(async(e,t,n,r)=>{let o=Hf().providerModels;if(e.length===0){console.log(d.bold(`
|
|
175
|
-
Available Providers:
|
|
176
|
-
`));let c=Bf(o);for(let l of c){let u=l.configured?d.green("[configured]"):d.red("[not configured]"),m=l.custom?d.yellow(" [custom]"):"",p=l.name===r.provider,g=p?d.cyan(" *"):"";console.log(` ${d.bold(l.name)}${g} ${u}${m}`),l.capabilityProfile.transport==="cli-bridge"&&console.log(d.yellow(` ! ${Of(l.capabilityProfile)}`));let x=bi(l.name,o),y=p?r.model:null;for(let w of x){let I=p&&(y===w||!y&&w===l.model)?d.cyan(">"):" ";console.log(` ${I} ${w}`)}console.log()}console.log(d.dim(`Current: provider=${r.provider}${r.model?`, model=${r.model}`:""}`)),console.log(d.dim("Usage:")),console.log(d.dim(" /model <provider> Switch provider")),console.log(d.dim(" /model <provider>/<model> Switch to specific model")),console.log(d.dim(` /model /<model> Switch model within current provider
|
|
177
|
-
`));return}let s=(e[0]??"").trim();if(!s)return;if(s.startsWith("/")){let c=s.slice(1);if(!c){console.log(d.red(`
|
|
178
|
-
[Missing model name after /]`));return}let l=bi(r.provider,o);if(!l.includes(c)){console.log(d.red(`
|
|
179
|
-
[Unknown model: ${c}]`)),console.log(d.dim(`Available models for ${r.provider}: ${l.join(", ")}
|
|
180
|
-
`));return}fr({model:c}),n.switchProvider?.(r.provider,c),console.log(d.cyan(`
|
|
181
|
-
[Switched to ${c}] (saved)`));return}if(s.includes("/")){let c=s.indexOf("/"),l=s.slice(0,c),u=s.slice(c+1);if(!u||!l){console.log(d.red(`
|
|
182
|
-
[Invalid format. Use: /model <provider>/<model>]`));return}if(!fi(l)){console.log(d.red(`
|
|
183
|
-
[Unknown provider: ${l}]`)),console.log(d.dim(`Available: ${mi().join(", ")}
|
|
184
|
-
`));return}let m=bi(l,o);if(!m.includes(u)){console.log(d.red(`
|
|
185
|
-
[Unknown model: ${u}]`)),console.log(d.dim(`Available models for ${l}: ${m.join(", ")}
|
|
186
|
-
`));return}fr({provider:l,model:u}),n.switchProvider?.(l,u),console.log(d.cyan(`
|
|
187
|
-
[Switched to ${l}/${u}] (saved)`));return}let a=s;fi(a)?(fr({provider:a,model:void 0}),n.switchProvider?.(a),console.log(d.cyan(`
|
|
188
|
-
[Switched to ${a}] (saved)`))):(console.log(d.red(`
|
|
189
|
-
[Unknown provider: ${a}]`)),console.log(d.dim(`Available: ${mi().join(", ")}
|
|
190
|
-
`)))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
191
|
-
/model - Switch LLM Provider/Model
|
|
192
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /model ")+"List all providers with models"),console.log(d.dim(" /model <provider> ")+"Switch to a provider (default model)"),console.log(d.dim(" /model <provider>/<model> ")+"Switch to a specific model"),console.log(d.dim(" /model /<model> ")+"Switch model within current provider"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /model ")+"# See available providers & models"),console.log(d.dim(" /model anthropic ")+"# Switch to Anthropic (default model)"),console.log(d.dim(" /model openai/gpt-5.4 ")+"# Switch to OpenAI GPT-5.4"),console.log(d.dim(" /model /claude-opus-4-6 ")+"# Switch to Opus within current provider"),console.log()},"detailedHelp")},{name:"provider",description:"Inspect provider semantics and policy constraints",usage:"/provider [<provider>[/<model>]]",handler:i(async(e,t,n,r)=>{let o=(e[0]??"").trim(),s=r.provider,a=r.model;if(o)if(o.includes("/")){let u=o.indexOf("/");s=o.slice(0,u).trim(),a=o.slice(u+1).trim()||void 0}else s=o,a=void 0;if(!fi(s)){console.log(d.red(`
|
|
193
|
-
[Unknown provider: ${s}]`)),console.log(d.dim(`Available: ${mi().join(", ")}
|
|
194
|
-
`));return}let c=Fy(s,a);if(!c){console.log(d.red(`
|
|
195
|
-
[Provider details unavailable: ${s}]`)),console.log();return}let l=jy(s,a,r.reasoningMode);console.log(d.bold(`
|
|
196
|
-
Provider Details:
|
|
197
|
-
`)),console.log(d.dim(` Provider: ${d.cyan(c.provider)}${c.model?` / ${d.cyan(c.model)}`:""}`)),console.log(d.dim(` Source: ${Wy(c.sourceKind)}`)),console.log(),console.log(d.bold("Capability Matrix:"));for(let u of Uy(c))console.log(d.dim(` - ${u}`));if(console.log(),l.length>0){console.log(d.bold("Common Scenarios:"));for(let u of l){let m=u.decision.status==="block"?d.red:u.decision.status==="warn"?d.yellow:d.green;console.log(m(` - ${u.label}: ${u.decision.status.toUpperCase()}`)),console.log(d.dim(` ${u.decision.summary}`))}console.log()}},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
198
|
-
/provider - Inspect Provider Semantics
|
|
199
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /provider ")+"Inspect the current provider/model"),console.log(d.dim(" /provider <provider> ")+"Inspect a provider using its default model"),console.log(d.dim(" /provider <provider>/<model> ")+"Inspect a specific provider/model pair"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Shows the provider capability matrix and common 029 policy outcomes.")),console.log(d.dim(" Use this to understand why long-running, harness, or evidence-heavy flows may warn or block.")),console.log()},"detailedHelp")},{name:"thinking",aliases:["think","t"],description:"Show or change reasoning mode (compat alias)",usage:"/thinking [on|off|auto|quick|balanced|deep]",handler:i(async(e,t,n,r)=>{if(e.length===0){let s=fo(r.provider,r.model),a=r.thinking?d.green("ON"):d.dim("OFF");console.log(d.dim(`
|
|
200
|
-
Thinking: ${a}`)),console.log(d.dim(`Reasoning mode: ${d.cyan(r.reasoningMode)}`)),console.log(d.dim(`Effective control: ${d.cyan(Df(s))}`)),console.log(d.dim(`Actual execution: ${Nf(r.reasoningMode,s)}`)),console.log(d.dim(`Usage: /thinking on|off|auto|quick|balanced|deep
|
|
201
|
-
`));return}let o=e[0].toLowerCase();if(o==="on"||o==="off"||ao.includes(o)){let s=o==="on"?"auto":o==="off"?"off":o,a=vT(s,n,r);Mo(`Reasoning mode: ${s}`,a);return}console.log(d.red(`
|
|
202
|
-
[Invalid value: ${e[0]}]`)),console.log(d.dim(`Usage: /thinking on|off|auto|quick|balanced|deep
|
|
203
|
-
`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
204
|
-
/thinking - Legacy Alias for Reasoning Mode
|
|
205
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /thinking ")+"Show current reasoning status"),console.log(d.dim(" /thinking on ")+"Map to /reasoning auto"),console.log(d.dim(" /thinking off ")+"Map to /reasoning off"),console.log(d.dim(" /thinking auto ")+"Set reasoning mode to auto"),console.log(d.dim(" /thinking quick ")+"Set reasoning mode to quick"),console.log(d.dim(" /thinking balanced ")+"Set reasoning mode to balanced"),console.log(d.dim(" /thinking deep ")+"Set reasoning mode to deep"),console.log(d.dim(" /t ")+"Alias for /thinking"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Compatibility command for the new unified reasoning modes.")),console.log(d.dim(" Use /reasoning for the primary interface.")),console.log()},"detailedHelp")},{name:"reasoning",aliases:["reason"],description:"Show or set reasoning mode",usage:"/reasoning [off|auto|quick|balanced|deep]",handler:i(async(e,t,n,r)=>{if(e.length===0){let a=fo(r.provider,r.model);console.log(d.dim(`
|
|
206
|
-
Reasoning mode: ${d.cyan(r.reasoningMode)}`)),console.log(d.dim(`Thinking compatibility: ${r.thinking?d.green("ON"):d.dim("OFF")}`)),console.log(d.dim(`Effective control: ${d.cyan(Df(a))}`)),console.log(d.dim(`Actual execution: ${Nf(r.reasoningMode,a)}`)),console.log(d.dim(`Usage: /reasoning off|auto|quick|balanced|deep
|
|
207
|
-
`));return}let o=e[0].toLowerCase();if(!ao.includes(o)){console.log(d.red(`
|
|
208
|
-
[Invalid reasoning mode: ${e[0]}]`)),console.log(d.dim(`Usage: /reasoning off|auto|quick|balanced|deep
|
|
209
|
-
`));return}let s=vT(o,n,r);Mo(`Reasoning mode: ${o}`,s)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
210
|
-
/reasoning - Set Reasoning Mode
|
|
211
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /reasoning ")+"Show current reasoning mode"),console.log(d.dim(" /reasoning off ")+"Disable reasoning"),console.log(d.dim(" /reasoning auto ")+"Use semantic routing + adaptive depth"),console.log(d.dim(" /reasoning quick ")+"Low-depth reasoning"),console.log(d.dim(" /reasoning balanced ")+"Medium-depth reasoning"),console.log(d.dim(" /reasoning deep ")+"High-depth reasoning"),console.log(d.dim(" /reasoning:auto ")+"Inline form, equivalent to /reasoning auto"),console.log(d.dim(" /reason ")+"Alias for /reasoning"),console.log()},"detailedHelp")},{name:"agent-mode",aliases:["am"],description:"Show or set agent mode",usage:"/agent-mode [ama|sa|toggle]",handler:i(async(e,t,n,r)=>{if(e.length===0){console.log(d.dim(`
|
|
212
|
-
Agent mode: ${d.cyan(r.agentMode.toUpperCase())}`)),console.log(d.dim(`Usage: /agent-mode [ama|sa|toggle]
|
|
213
|
-
`));return}let o=e[0]?.toLowerCase(),s=o==="toggle"?r.agentMode==="ama"?"sa":"ama":o==="ama"||o==="sa"?o:void 0;if(!s){console.log(d.red(`
|
|
214
|
-
[Invalid agent mode: ${e[0]}]`)),console.log(d.dim(`Usage: /agent-mode [ama|sa|toggle]
|
|
215
|
-
`));return}let a=LM(s,n,r);Mo(`Agent mode: ${s.toUpperCase()}`,a)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
216
|
-
/agent-mode - Adaptive Multi-Agent Mode Control
|
|
217
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /agent-mode ")+"Show current agent mode"),console.log(d.dim(" /agent-mode ama ")+"Enable adaptive multi-agent mode"),console.log(d.dim(" /agent-mode sa ")+"Force single-agent execution"),console.log(d.dim(" /agent-mode toggle ")+"Switch between AMA and SA"),console.log(d.dim(" /am ")+"Alias for /agent-mode"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" AMA keeps adaptive multi-agent harness selection enabled.")),console.log(d.dim(" SA keeps routing and task artifacts, but forces single-agent execution to save tokens.")),console.log()},"detailedHelp")},{name:"auto",aliases:["a"],description:"Quick switch to auto mode",handler:i(async(e,t,n,r)=>{r.permissionMode="auto",n.setPermissionMode?.("auto"),Na("auto"),console.log(d.cyan(`
|
|
218
|
-
[Switched to auto mode] (saved)`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
219
|
-
/auto - Quick Switch to Auto Mode
|
|
220
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /auto ")+"Switch to auto mode"),console.log(d.dim(" /a ")+"Alias for /auto"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Equivalent to /mode auto.")),console.log(d.dim(" Auto-mode classifier evaluates each non-Tier-1 tool call;")),console.log(d.dim(" benign actions auto-approve, risky ones escalate to user confirm.")),console.log(),console.log(d.dim(" See also: /help mode, /auto-engine, /auto-denials")),console.log()},"detailedHelp")},{name:"skills",description:"(Deprecated) Use /skill instead",usage:"/skill",handler:i(async(e,t)=>{console.log(d.dim(`
|
|
221
|
-
[/skills is deprecated. Use /skill instead]`)),await kT(e,t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
222
|
-
/skills - Deprecated
|
|
223
|
-
`)),console.log(d.yellow("This command is deprecated. Use /skill instead.")),console.log(),console.log(d.dim(" /skill ")+"List all available skills"),console.log(d.dim(" /skill:<name> ")+"Invoke a skill"),console.log()},"detailedHelp")},{name:"skill",description:"Skill namespace - invoke skills with /skill:name",usage:"/skill[:name] [args]",handler:i(async(e,t,n,r)=>{await kT(e,t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
224
|
-
/skill - Skill Namespace
|
|
225
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /skill ")+"List all available skills"),console.log(d.dim(" /skill:<name> [args] ")+"Invoke a skill by name"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" This is the pi-mono style skill invocation format.")),console.log(d.dim(" Skills can also be triggered by natural language - just ask!")),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /skill ")+"# List all skills"),console.log(d.dim(" /skill:code-review src/ ")+"# Invoke code-review skill"),console.log(d.dim(" /skill:tdd auth ")+"# Invoke TDD skill"),console.log()},"detailedHelp")},Km,Vm],EM={General:["help","copy","exit","clear","compact","reload","extensions","status"],Permission:["mode","auto"],Session:["new","save","load","sessions","history","delete"],Settings:["model","provider","thinking","reasoning","agent-mode","plan","repointel"],Skills:["skill"]};function MM(e){let t=Au();return e.map(n=>t.get(n)).filter(n=>n!==void 0).filter(n=>n.userInvocable!==!1)}i(MM,"getCommandsForCategory");function AM(e){return e!=="off"}i(AM,"reasoningModeToLegacyThinking");var _M=["auto","off","oss","premium-shared","premium-native"];function PM(e){return e&&_M.includes(e)?e:null}i(PM,"normalizeRepoIntelligenceMode");function bT(e){let t=e?.trim();return!t||t==="default"||t==="reset"||t==="clear"?null:t}i(bT,"normalizeRuntimeOverride");function $M(e,t){return e?e==="toggle"?!t:e==="on"||e==="true"||e==="1"?!0:e==="off"||e==="false"||e==="0"?!1:null:null}i($M,"resolveToggleFlag");function op(e){try{return fr(e),{saved:!0}}catch(t){return{saved:!1,error:t instanceof Error?t:new Error(String(t))}}}i(op,"persistUserConfig");function Mo(e,t){if(t.saved){console.log(d.cyan(`
|
|
226
|
-
[${e}] (saved)`));return}console.log(d.yellow(`
|
|
227
|
-
[${e}]`)),console.log(d.red(`[Config save failed: ${t.error.message}]`))}i(Mo,"printPersistedCommandStatus");function vT(e,t,n){let r=AM(e),o=op({reasoningMode:e,thinking:r});return t.setReasoningMode?t.setReasoningMode(e):(n.reasoningMode=e,n.thinking=r),o}i(vT,"applyReasoningMode");function LM(e,t,n){let r=op({agentMode:e});return t.setAgentMode?t.setAgentMode(e):n.agentMode=e,r}i(LM,"applyAgentMode");function Mu(e,t,n,r){let o=op(t);return n.setRepoIntelligenceRuntime?n.setRepoIntelligenceRuntime(e):(e.mode!==void 0&&(r.repoIntelligenceMode=e.mode),e.endpoint!==void 0&&(r.repointelEndpoint=e.endpoint??void 0),e.bin!==void 0&&(r.repointelBin=e.bin??void 0),e.trace!==void 0&&(r.repoIntelligenceTrace=e.trace)),o}i(Mu,"applyRepoIntelligenceRuntimeConfig");function OM(e){let t=e.configuredMode===e.requestedMode?e.configuredMode:`${e.configuredMode} -> ${e.requestedMode}`,n=`${e.effectiveEngine}/${e.effectiveBridge}`,r=e.transport?`, ${e.transport}`:"",o=e.fallbackToOss?", fallback=oss":"";return`${t} => ${n} (${e.status}${r}${o})`}i(OM,"formatRepoIntelligenceSummary");function RT(e){console.log(d.bold(`
|
|
228
|
-
Repo Intelligence:
|
|
229
|
-
`)),console.log(d.dim(` Configured: ${d.cyan(e.configuredMode)}`)),console.log(d.dim(` Requested: ${d.cyan(e.requestedMode)}`)),console.log(d.dim(` Active: ${d.cyan(`${e.effectiveEngine}/${e.effectiveBridge}`)}`)),console.log(d.dim(` Status: ${d.cyan(e.status)}${e.transport?d.dim(` (${e.transport})`):""}`)),console.log(d.dim(` Trace: ${d.cyan(e.traceEnabled?"on":"off")}`)),console.log(d.dim(` Endpoint: ${e.endpoint}`)),console.log(d.dim(` Bin: ${e.bin}`)),e.clientBuildId&&console.log(d.dim(` Client ID: ${e.clientBuildId}`)),e.daemonBuildId&&console.log(d.dim(` Daemon ID: ${e.daemonBuildId}`)),e.daemonPid!==void 0&&console.log(d.dim(` Daemon PID: ${e.daemonPid}`)),e.daemonStartedAt&&console.log(d.dim(` Daemon Up: ${e.daemonStartedAt}`)),e.fallbackToOss&&console.log(d.yellow(" Fallback: OSS baseline is currently active")),e.error&&console.log(d.red(` Error: ${e.error}`));for(let t of e.warnings)console.log(d.yellow(` Warning: ${t}`));console.log()}i(RT,"printRepoIntelligenceInspection");function DM(e){e.warmed?console.log(d.green(`
|
|
230
|
-
[repointel warmed successfully]`)):console.log(d.yellow(`
|
|
231
|
-
[repointel warm did not reach a ready daemon state]`)),e.warmLatencyMs!==void 0&&console.log(d.dim(` Warm latency: ${e.warmLatencyMs} ms`)),RT(e)}i(DM,"printRepoIntelligenceWarmResult");function IT(e,t){if(t.length!==0){console.log(d.dim(`${e}:`));for(let n of t){let r=n.aliases?.length?` (${n.aliases.join(", ")})`:"";console.log(` ${d.cyan(`/${n.name}`)}${d.dim(r)} ${n.description}`)}console.log()}}i(IT,"printCommandSection");function NM(){console.log(d.bold(`
|
|
232
|
-
Available Commands:
|
|
233
|
-
`));let e=Au(),t=new Set;for(let[r,o]of Object.entries(EM)){let s=MM(o);if(s.length!==0){for(let a of s)t.add(a.name.toLowerCase());IT(r,s)}}let n=new Map;for(let r of e.getAll()){if(r.userInvocable===!1||t.has(r.name.toLowerCase()))continue;let o=r.source==="extension"?"Extensions":r.source==="skill"?"Skill Commands":r.source==="prompt"?"Prompt Commands":"Other Commands",s=n.get(o)??[];s.push(r),n.set(o,s)}for(let r of WM()){if(t.has(r.name.toLowerCase()))continue;let o=n.get("Extensions")??[];o.push({name:r.name,aliases:r.aliases,description:r.description}),n.set("Extensions",o)}for(let r of["Extensions","Skill Commands","Prompt Commands","Other Commands"])IT(r,n.get(r)??[]);console.log(d.dim("Special syntax:")),console.log(` ${d.cyan("@path")} Attach image to context`),console.log(` ${d.cyan("!command")} Execute shell command`),console.log(),console.log(d.dim("Skills:")),console.log(` ${d.cyan("/skill")} List all available skills`),console.log(` ${d.cyan("/skill:<name>")} Invoke a skill (e.g., /skill:code-review)`),console.log()}i(NM,"printHelp");function BM(e){Ao.size===0&&ip();let t=Ao.get(e.toLowerCase());if(!t){let n=ET(e);if(!n){console.log(d.yellow(`
|
|
234
|
-
[Unknown command: /${e}. Type /help for available commands]`));return}console.log(d.cyan(`
|
|
235
|
-
/${n.name}`)),n.aliases?.length&&console.log(d.dim(`Aliases: ${n.aliases.join(", ")}`)),console.log(d.dim(`
|
|
236
|
-
${n.description}`)),console.log(d.dim(`
|
|
237
|
-
Usage: ${UM(n)}`)),console.log();return}t.detailedHelp?t.detailedHelp():(console.log(d.cyan(`
|
|
238
|
-
/${t.name}`)),t.aliases?.length&&console.log(d.dim(`Aliases: ${t.aliases.join(", ")}`)),console.log(d.dim(`
|
|
239
|
-
${t.description}`)),t.usage&&console.log(d.dim(`
|
|
240
|
-
Usage: ${t.usage}`)),console.log())}i(BM,"printDetailedHelp");async function HM(e,t,n=[]){let r=n[0]?.toLowerCase(),o=e.contextTokenSnapshot?.currentTokens??co(e.messages),s=e.contextTokenSnapshot?.source??"estimate",a=Hy(t.provider),c=Sl(t.provider,t.model,t.reasoningMode);if(console.log(d.bold(`
|
|
241
|
-
Session Status:
|
|
242
|
-
`)),console.log(d.dim(` Provider: ${d.cyan(t.provider)}${t.model?` / ${d.cyan(t.model)}`:""}`)),console.log(d.dim(` Permission: ${d.cyan(t.permissionMode)}`)),console.log(d.dim(` Reasoning: ${d.cyan(t.reasoningMode)}`)),console.log(d.dim(` Agent Mode: ${d.cyan(t.agentMode.toUpperCase())}`)),a){let u=Of(a),m=a.transport==="cli-bridge"?d.yellow(u):d.cyan(u);console.log(d.dim(` Provider Cap: ${m}`))}if(c&&c.status!=="allow"){let u=c.status==="block"?d.red:d.yellow;console.log(d.dim(` Provider Policy: ${u(c.summary)}`))}console.log(d.dim(` Session ID: ${e.sessionId}`)),console.log(d.dim(` Messages: ${e.messages.length}`)),console.log(d.dim(` Tokens: ~${o} (${s})`));let l=await sa({mode:t.repoIntelligenceMode,trace:t.repoIntelligenceTrace});console.log(d.dim(` Repo Intel: ${d.cyan(OM(l))}`)),e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace: ${d.cyan(wn(e.runtimeInfo))}`)):e.gitRoot&&console.log(d.dim(` Workspace: ${d.cyan(e.gitRoot)}`)),(r==="workspace"||r==="worktree"||r==="runtime")&&(e.runtimeInfo?.canonicalRepoRoot&&console.log(d.dim(` Canonical: ${e.runtimeInfo.canonicalRepoRoot}`)),e.runtimeInfo?.executionCwd&&console.log(d.dim(` Exec CWD: ${e.runtimeInfo.executionCwd}`)),e.runtimeInfo?.workspaceKind&&console.log(d.dim(` Kind: ${e.runtimeInfo.workspaceKind}`))),console.log(d.dim(` Created: ${e.createdAt}`)),console.log(d.dim(` Last Active: ${e.lastAccessed}`)),console.log()}i(HM,"printStatus");async function kT(e,t){let n=ur(t.gitRoot);n.size===0&&await uo(t.gitRoot),FM(n.listUserInvocable())}i(kT,"handleSkillNamespaceCommand");function FM(e){if(console.log(d.bold(`
|
|
243
|
-
Available Skills:
|
|
244
|
-
`)),e.length===0){console.log(d.dim(" No skills found.")),console.log(d.dim(`
|
|
245
|
-
Skills can be placed in:`)),console.log(d.dim(" - .kodax/skills/")),console.log(d.dim(" - ~/.kodax/skills/"));return}let t=Math.max(...e.map(n=>n.name.length));for(let n of e){let r=n.name.padEnd(t),o=n.argumentHint?` ${n.argumentHint}`:"",s=n.source==="builtin"?" [builtin]":n.source==="user"?" [user]":n.source==="plugin"?" [plugin]":"",a=n.description.length>50?n.description.slice(0,50)+"...":n.description;console.log(` ${d.cyan(`/skill:${r}`)}${d.dim(o)}${d.dim(s)} ${d.dim(a)}`)}console.log(),console.log(d.dim(`Total: ${e.length} skills`)),console.log(d.dim("Usage: /skill:<name> [args] or ask naturally")),console.log()}i(FM,"printSkillsListPiMonoStyle");var Ao=new es;function ip(e){Ao.size>0||ST(Ao,e)}i(ip,"initCommandRegistry");function Au(e){return ip(e),Ao}i(Au,"getCommandRegistry");function WM(){return dr()?.listCommands().filter(t=>t.metadata?.userInvocable!==!1)??[]}i(WM,"getActiveExtensionCommands");function ET(e){let t=dr(),n=e.trim().toLowerCase();if(!n)return;let r=t?.listCommands().find(o=>o.name.trim().toLowerCase()===n||(o.aliases??[]).some(s=>s.trim().toLowerCase()===n));if(r)return r.metadata?.userInvocable===!1?void 0:r}i(ET,"getActiveExtensionCommand");function UM(e){return e.usage??`/${e.name}`}i(UM,"formatExtensionCommandUsage");function jM(e){return Array.isArray(e)?e.map(t=>String(t)).join(", "):e&&typeof e=="object"?JSON.stringify(e):String(e)}i(jM,"formatExtensionDiagnosticValue");function GM(e){if(!e)return;let t=Object.entries(e).filter(([,n])=>n!==void 0).map(([n,r])=>`${n}=${jM(r)}`);return t.length>0?t.join(" | "):void 0}i(GM,"formatExtensionDiagnosticMetadata");function ns(e){let t=e.getDiagnostics;if(typeof t=="function")return t.call(e);let n=e.getDefaults,r=typeof n=="function"?n.call(e):void 0;return{loadedExtensions:[],capabilityProviders:e.listCapabilityProviders().map(o=>({id:o.id,kinds:[...o.kinds],source:{kind:"extension",id:`extension:${o.id}`,label:o.id,path:"(runtime)"}})),commands:e.listCommands().map(o=>({name:o.name,aliases:o.aliases,description:o.description,usage:o.usage,metadata:o.metadata,source:{kind:"extension",id:`extension-command:${o.name}`,label:o.name,path:"(runtime)"}})),tools:[],hooks:[],failures:[],defaults:{activeTools:r?.activeTools,modelSelection:r?.modelSelection??{},thinkingLevel:r?.thinkingLevel}}}i(ns,"getExtensionRuntimeDiagnostics");function KM(e,t){if(t.invocation)return{prompt:t.invocation.prompt,source:"extension",displayName:t.invocation.displayName??`/${e.name}`,disableModelInvocation:t.invocation.disableModelInvocation,allowedTools:t.invocation.allowedTools,context:t.invocation.context,model:t.invocation.model}}i(KM,"toExtensionInvocationRequest");async function VM(e,t,n){let r=dr();if(!r)return console.log(d.yellow(`
|
|
246
|
-
[Extension runtime is not active for /${e.name}]`)),!1;let o=await e.handler(t,{sessionId:n.sessionId,gitRoot:n.gitRoot,workingDirectory:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),reloadExtensions:i(()=>r.reloadExtensions(),"reloadExtensions"),getDiagnostics:i(()=>ns(r),"getDiagnostics"),logger:{debug:i((...a)=>console.debug(`[kodax:extension-command:${e.name}]`,...a),"debug"),info:i((...a)=>console.info(`[kodax:extension-command:${e.name}]`,...a),"info"),warn:i((...a)=>console.warn(`[kodax:extension-command:${e.name}]`,...a),"warn"),error:i((...a)=>console.error(`[kodax:extension-command:${e.name}]`,...a),"error")}});if(!o)return!0;o.message&&console.log(o.message);let s=KM(e,o);return s?{invocation:s}:!0}i(VM,"executeExtensionCommand");function rs(e){let t=e.trim();if(!t.startsWith("/"))return null;let n=t.slice(1).split(/\s+/),o=n[0]?.toLowerCase(),s=n.slice(1).filter(Boolean);if(!o)return null;if(o.startsWith("skill:")){let c=o.slice(6);return c?{command:"skill",args:s,skillInvocation:{name:c}}:{command:"skill",args:s}}let a=o.indexOf(":");if(a>0){let c=o.slice(a+1).trim();o=o.slice(0,a),s=c?[c,...s]:s}return{command:o,args:s}}i(rs,"parseCommand");async function os(e,t,n,r){if(Ao.size===0&&ip(t.gitRoot),e.skillInvocation)return await zM({command:e.skillInvocation.name,args:e.args},t);let o=Ao.get(e.command);if(o){if(o.userInvocable===!1)return console.log(d.yellow(`
|
|
247
|
-
[Command /${o.name} is not user-invocable]`)),!1;try{let a=await o.handler(e.args,t,n,r);return a&&typeof a=="object"?a:!0}catch(a){return console.log(d.red(`
|
|
248
|
-
[Command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}}let s=ET(e.command);if(s)try{return await VM(s,e.args,t)}catch(a){return console.log(d.red(`
|
|
249
|
-
[Extension command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}return console.log(d.yellow(`
|
|
250
|
-
[Unknown command: /${e.command}. Type /help for available commands]`)),!1}i(os,"executeCommand");async function zM(e,t){let n=ur(t.gitRoot),r=e.command,o=e.args.join(" ");n.size===0&&await uo(t.gitRoot);try{let s=n.get(r);if(!s)return console.log(d.red(`
|
|
251
|
-
[Skill not found: ${r}]`)),!1;if(!s.userInvocable)return console.log(d.yellow(`
|
|
252
|
-
[Skill "${r}" is not user-invocable]`)),!1;console.log(d.cyan(`
|
|
253
|
-
[Invoking skill: ${r}]`)),s.argumentHint&&console.log(d.dim(`Arguments: ${o||"(none)"}`)),console.log();let a=await n.loadFull(r),c={workingDirectory:process.cwd(),projectRoot:t.gitRoot??void 0,sessionId:t.sessionId,environment:{}},l=await Ay(a,o,c);return console.log(d.green(`Skill activated: ${r}`)),console.log(d.dim("The skill context has been prepared for the AI.")),console.log(),{invocation:{prompt:l.content,source:"skill",displayName:r,path:a.skillFilePath,disableModelInvocation:l.disableModelInvocation,userInvocable:a.userInvocable,allowedTools:a.allowedTools,context:a.context,agent:a.agent,argumentHint:a.argumentHint,model:a.model,hooks:a.hooks,skillInvocation:{name:r,path:a.skillFilePath,description:a.description,arguments:o||void 0,allowedTools:a.allowedTools,context:a.context,agent:a.agent,argumentHint:a.argumentHint,model:a.model,hookEvents:a.hooks?Object.entries(a.hooks).filter(([,u])=>Array.isArray(u)&&u.length>0).map(([u])=>u):void 0,expandedContent:l.content}}}}catch(s){return console.log(d.red(`
|
|
254
|
-
[Error invoking skill: ${s instanceof Error?s.message:String(s)}]`)),!1}}i(zM,"executeSkillCommand");import{jsx as cA}from"react/jsx-runtime";import{useState as lA,useEffect as OT,useCallback as jr,useMemo as DT,createContext as uA,useContext as NT}from"react";import*as _u from"fs";import*as sp from"path";function Ur(e){let t=e.lastIndexOf("/");if(t===-1)return-1;for(;t>0&&!/\s/.test(e[t-1]??"");)if(t=e.lastIndexOf("/",t-1),t===-1)return-1;return t}i(Ur,"findCommandSlashIndex");var _o=class{static{i(this,"FileCompleter")}cwdSource;cache=new Map;cacheTimeout=5e3;constructor(t){this.cwdSource=t}canComplete(t,n){let r=t.slice(0,n),o=r.lastIndexOf("@");return!(o===-1||o>0&&!/\s/.test(r[o-1]??"")||r.slice(o+1).includes(" "))}async getCompletions(t,n){let r=t.slice(0,n),o=r.lastIndexOf("@");if(o===-1)return[];let s=r.slice(o+1),a=[],c=this.resolveCwd(),l=s.lastIndexOf("/"),u=l===-1?c:sp.join(c,s.slice(0,l)),m=l===-1?s:s.slice(l+1);try{let g=(await this.readdir(u)).filter(x=>x.toLowerCase().startsWith(m.toLowerCase()));for(let x of g){let y=sp.join(u,x),w=await this.isDirectory(y),S=l===-1?x:s.slice(0,l+1)+x;a.push({text:"@"+S+(w?"/":""),display:x+(w?"/":""),description:w?"directory":"file",type:"file"})}}catch{}return a}resolveCwd(){return typeof this.cwdSource=="function"?this.cwdSource():this.cwdSource??process.cwd()}async readdir(t){let n=Date.now(),r=this.cache.get(t);return r&&r.expiresAt>n?r.entries:(r&&this.cache.delete(t),new Promise(o=>{_u.readdir(t,(s,a)=>{s?o([]):(this.cache.set(t,{entries:a,expiresAt:Date.now()+this.cacheTimeout}),o(a))})}))}async isDirectory(t){return new Promise(n=>{_u.stat(t,(r,o)=>{n(!r&&o.isDirectory())})})}},Fa=class{static{i(this,"CommandCompleter")}commands;constructor(){this.commands=new Map,this.loadCommands()}loadCommands(){for(let n of Au().getAll())n.userInvocable!==!1&&this.commands.set(n.name,{description:n.description,aliases:n.aliases??[]});let t=dr();for(let n of t?.listCommands()??[])n.metadata?.userInvocable!==!1&&this.commands.set(n.name,{description:n.description,aliases:n.aliases??[]})}canComplete(t,n){let r=t.slice(0,n),o=Ur(r);return o===-1?!1:!r.slice(o).includes(" ")}async getCompletions(t,n){let r=t.slice(0,n),o=Ur(r);if(o===-1)return[];this.commands.clear(),this.loadCommands();let s=r.slice(o+1).toLowerCase(),a=[];for(let[c,l]of this.commands){this.fuzzyMatch(s,c)&&a.push({text:"/"+c,display:"/"+c,description:l.description,type:"command"});for(let u of l.aliases)u!==c&&this.fuzzyMatch(s,u)&&a.push({text:"/"+u,display:"/"+u,description:`Alias for /${c}: ${l.description}`,type:"command"})}return a}fuzzyMatch(t,n){if(!t)return!0;let r=t.toLowerCase(),o=n.toLowerCase(),s=0;for(let a=0;a<o.length&&s<r.length;a++)o[a]===r[s]&&s++;return s===r.length}};function MT(e){let t=new _o(e),n=new Fa;return async r=>{let o=r.includes("@"),s=r.includes("/");if(!o&&!s)return[[],r];let a=[];if(s&&n.canComplete(r,r.length)){let l=await n.getCompletions(r,r.length);a.push(...l)}if(o&&t.canComplete(r,r.length)){let l=await t.getCompletions(r,r.length);a.push(...l)}return[a.map(l=>l.display),r]}}i(MT,"createCompleter");var Wa=class{static{i(this,"SkillCompleter")}gitRoot;skillsCache=null;cacheTimestamp=0;CACHE_TTL=5e3;constructor(t){this.gitRoot=t}canComplete(t,n){let r=t.slice(0,n);if(!/\/skill:[^\s]*$/.test(r))return!1;let o=r.lastIndexOf("/skill:");return!(o>0&&!/\s/.test(r[o-1]??""))}async getCompletions(t,n){let o=t.slice(0,n).match(/\/skill:([^\s]*)$/);if(!o)return[];let s=(o[1]??"").toLowerCase();return(await this.getSkills()).filter(c=>{let l=c.name.toLowerCase();return l.includes(s)||this.fuzzyIncludes(s,l)}).map(c=>({text:`/skill:${c.name}`,display:c.name,description:this.truncateDescription(c.description),type:"command"})).sort((c,l)=>{let u=c.display.toLowerCase().startsWith(s),m=l.display.toLowerCase().startsWith(s);return u&&!m?-1:!u&&m?1:c.display.length-l.display.length})}setGitRoot(t){this.gitRoot!==t&&(this.gitRoot=t,this.skillsCache=null)}async getSkills(){let t=Date.now();if(this.skillsCache&&t-this.cacheTimestamp<this.CACHE_TTL)return this.skillsCache;try{let n=ur(this.gitRoot);return n.size===0&&await uo(this.gitRoot),this.skillsCache=n.listUserInvocable(),this.cacheTimestamp=t,this.skillsCache}catch{return[]}}fuzzyIncludes(t,n){let r=0;for(let o=0;o<n.length&&r<t.length;o++)n[o]===t[r]&&r++;return r===t.length}truncateDescription(t,n=50){return t.length<=n?t:t.slice(0,n-3)+"..."}};var XM=[{name:"plan",description:"Read-only planning mode - blocks all modifications",type:"enum"},{name:"accept-edits",description:"File edits auto-approved, bash requires confirmation",type:"enum"},{name:"auto-in-project",description:"All tools auto within project directory",type:"enum"}],Pu=[{name:"on",description:"Map to reasoning auto",type:"enum"},{name:"off",description:"Disable reasoning",type:"enum"},{name:"auto",description:"Use semantic routing with adaptive depth",type:"enum"},{name:"quick",description:"Low-depth reasoning mode",type:"enum"},{name:"balanced",description:"Medium-depth reasoning mode",type:"enum"},{name:"deep",description:"High-depth reasoning mode",type:"enum"}],AT=Pu.slice(2).concat([{name:"off",description:"Disable reasoning",type:"enum"}]);function YM(e){if(e&&e.includes("/")){let t=e.indexOf("/"),n=e.slice(0,t),r=e.slice(t+1);if(fi(n))try{return bi(n).filter(s=>!r||s.toLowerCase().includes(r.toLowerCase())).map(s=>({name:`${n}/${s}`,description:s,type:"enum"}))}catch{}return[]}return mi().map(t=>({name:t,description:`Switch to ${t} provider`,type:"enum"}))}i(YM,"getModelArgs");var _T=[{name:"on",description:"Enable plan mode for all requests",type:"enum"},{name:"off",description:"Disable plan mode",type:"enum"},{name:"once",description:"Run plan mode for a single request (followed by task)",type:"enum"},{name:"list",description:"List all saved plans",type:"enum"},{name:"resume",description:"Resume a saved plan (followed by plan ID)",type:"enum"},{name:"clear",description:"Clear completed plans",type:"enum"}],ap=[{name:"workspace",description:"Inspect current workspace/runtime truth in more detail",type:"enum"},{name:"runtime",description:"Alias for workspace runtime inspection",type:"enum"},{name:"worktree",description:"Alias for workspace runtime inspection",type:"enum"}],cp=[{name:"all",description:"Delete ALL sessions",type:"enum"}],qM=[{name:"status",description:"Inspect the current repo-intelligence runtime state",type:"enum"},{name:"warm",description:"Warm or start the local premium runtime if available",type:"enum"},{name:"mode",description:"Switch repo-intelligence runtime mode",type:"enum"},{name:"trace",description:"Toggle repo-intelligence trace output",type:"enum"},{name:"endpoint",description:"Inspect or override the local repointel daemon endpoint",type:"enum"},{name:"bin",description:"Inspect or override the local repointel command or path",type:"enum"}],QM=[{name:"auto",description:"Resolve to premium-native when available, otherwise fall back to oss",type:"enum"},{name:"off",description:"Disable repo-intelligence injection",type:"enum"},{name:"oss",description:"Use only the public OSS repo-intelligence baseline",type:"enum"},{name:"premium-shared",description:"Use premium without the native KodaX auto lane",type:"enum"},{name:"premium-native",description:"Use premium through the native KodaX bridge",type:"enum"}],JM=[{name:"on",description:"Enable repo-intelligence trace output",type:"enum"},{name:"off",description:"Disable repo-intelligence trace output",type:"enum"},{name:"toggle",description:"Toggle repo-intelligence trace output",type:"enum"}],PT=[{name:"default",description:"Clear the override and use the default value again",type:"enum"}];function ZM(e){let[t=""]=e,n=t.toLowerCase(),r=e.length===1&&e[0]===""?0:e.length;return r<=1?qM:r>2?[]:n==="mode"?QM:n==="trace"?JM:n==="endpoint"?[...PT,{name:yy,description:"Default local repointel daemon endpoint",type:"string"}]:n==="bin"?PT:[]}i(ZM,"getRepointelArgs");var eA=new Map([["mode",XM],["thinking",Pu],["think",Pu],["t",Pu],["reasoning",AT],["reason",AT],["plan",_T],["p",_T],["status",ap],["info",ap],["ctx",ap],["delete",cp],["rm",cp],["del",cp]]),tA=new Set(["model","m"]),nA=new Set(["repointel","ri"]);function lp(e,t,n=[]){let r=e.toLowerCase();return tA.has(r)?YM(t):nA.has(r)?ZM(n):eA.get(r)??[]}i(lp,"getCommandArguments");var $u=class{static{i(this,"ArgumentCompleter")}canComplete(t,n){let r=t.slice(0,n),o=Ur(r);if(o===-1)return!1;let s=r.slice(o),a=s.split(/\s+/);if(a.length>=2&&a[0]!=="")return!0;let c=s.slice(1).toLowerCase();return lp(c).length>0}async getCompletions(t,n){let r=t.slice(0,n),o=Ur(r);if(o===-1)return[];let s=r.slice(o),a=s.indexOf(" "),c=(a===-1?s.slice(1):s.slice(1,a)).toLowerCase(),l=a===-1?"":s.slice(a+1),u=l?l.split(/\s+/):[""],m=u.length-1,p=(u[m]??"").toLowerCase(),g=lp(c,p,u);if(!g||g.length===0)return[];let x=new Set(u.slice(0,-1).map(w=>w.toLowerCase()));return g.filter(w=>!x.has(w.name.toLowerCase())).filter(w=>!p||w.name.includes("/")?!0:w.name.toLowerCase().includes(p)).map(w=>({text:w.name,display:w.name,description:w.description,type:"argument"})).sort((w,S)=>{let I=w.display.toLowerCase().startsWith(p),$=S.display.toLowerCase().startsWith(p);return I&&!$?-1:!I&&$?1:w.display.length-S.display.length})}};function rA(e,t){if(!e)return{matched:!0,score:0,highlights:[]};if(e.length>t.length)return{matched:!1,score:0,highlights:[]};let n=e.toLowerCase(),r=t.toLowerCase(),o=0,s=-1,a=[];for(let l=0;l<e.length;l++){let u=n[l];if(u===void 0)continue;let m=r.indexOf(u,s+1);if(m===-1)return{matched:!1,score:0,highlights:[]};m===s+1?o+=10:m===0?o+=5:o-=1,t[m]===e[l]&&(o+=2),a.push(m),s=m}let c=oA(t,a);return o+=c,{matched:!0,score:o,highlights:a}}i(rA,"fuzzyMatch");function oA(e,t){let n=0;for(let r of t)if(r===0)n+=3;else if(r>0){let o=e[r-1];(o===" "||o==="-"||o==="_")&&(n+=2)}return n}i(oA,"calculateWordBoundaryBonus");function iA(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}i(iA,"prefixMatch");function sA(e,t){if(iA(e,t)){let o=e?Array.from({length:e.length},(s,a)=>a):[];return{matched:!0,score:100+e.length*10,highlights:o,isPrefix:!0}}return{...rA(e,t),isPrefix:!1}}i(sA,"combinedMatch");function $T(e,t,n=0){return e?t.map(r=>{let o=sA(e,r.text);return{...r,_fuzzyScore:o.matched?o.score:-1,_fuzzyHighlights:o.highlights}}).filter(r=>(r._fuzzyScore??-1)>=n).sort((r,o)=>{let s=(o._fuzzyScore??0)-(r._fuzzyScore??0);return s!==0?s:r.text.length-o.text.length}):t}i($T,"sortCandidatesCombined");var aA={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},up=class{static{i(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...aA,...t},this.completers=[new Wa(this.options.gitRoot),new $u,new Fa,new _o(this.options.cwd)],this.state={visible:!1,selectedIndex:0,completions:[],loading:!1}}getOptions(){return{...this.options}}getState(){return{...this.state}}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}updateOptions(t){let n=t.gitRoot!==void 0&&t.gitRoot!==this.options.gitRoot,r=t.cwd!==void 0&&t.cwd!==this.options.cwd;if(this.options={...this.options,...t},n&&this.completers.find(s=>s instanceof Wa)?.setGitRoot(this.options.gitRoot),r){let o=this.completers.findIndex(s=>s instanceof _o);o!==-1&&(this.completers[o]=new _o(this.options.cwd))}}handleInput(t,n){if(this.lastInput=t,this.lastCursorPos=n,this.debounceTimer&&clearTimeout(this.debounceTimer),!this.shouldTrigger(t,n)){this.state.visible&&this.updateState({visible:!1,completions:[],selectedIndex:0});return}this.debounceTimer=setTimeout(()=>{this.fetchCompletions(t,n)},this.options.debounceDelay)}async fetchImmediate(t,n){return this.fetchCompletionsInternal(t,n)}selectPrevious(){if(!this.state.visible||this.state.completions.length===0)return;let t=this.state.selectedIndex>0?this.state.selectedIndex-1:this.state.completions.length-1;this.updateState({selectedIndex:t})}selectNext(){if(!this.state.visible||this.state.completions.length===0)return;let t=this.state.selectedIndex<this.state.completions.length-1?this.state.selectedIndex+1:0;this.updateState({selectedIndex:t})}getSelectedCompletion(){return!this.state.visible||this.state.completions.length===0?null:this.state.completions[this.state.selectedIndex]??null}acceptCompletion(){let t=this.getSelectedCompletion();return t?(this.updateState({visible:!1,completions:[],selectedIndex:0}),t.text):null}acceptCompletionWithType(){let t=this.getSelectedCompletion();return t?(this.updateState({visible:!1,completions:[],selectedIndex:0}),{text:t.text,type:t.type}):null}cancel(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.state.visible&&this.updateState({visible:!1,completions:[],selectedIndex:0})}shouldTrigger(t,n){if(t.length<this.options.minTriggerChars)return!1;let r=t.slice(0,n),s=Ur(r)!==-1,a=r.lastIndexOf("@"),c=a===0||a>0&&/\s/.test(r[a-1]??"");return s||c}fetchCompletions(t,n){this.updateState({loading:!0}),this.fetchCompletionsInternal(t,n).then(r=>{this.lastInput!==t||this.lastCursorPos!==n||(r.length>0?this.updateState({visible:!0,completions:r.slice(0,this.options.maxCompletions),selectedIndex:0,loading:!1}):this.updateState({visible:!1,completions:[],selectedIndex:0,loading:!1}))}).catch(()=>{this.updateState({loading:!1})})}async fetchCompletionsInternal(t,n){let r=this.completers.filter(l=>l.canComplete(t,n));if(r.length===0)return[];let o=[];for(let l of r)try{let u=await l.getCompletions(t,n);o.push(...u)}catch(u){console.error("[Autocomplete] Completer error:",u)}let s=this.extractPattern(t,n),a=o.map((l,u)=>({_idx:u,text:l.type==="command"&&l.display.startsWith("/")?l.display.slice(1):l.display}));return $T(s,a,this.options.minScore).map(l=>o[l._idx]).filter(l=>l!==void 0)}extractPattern(t,n){let r=t.slice(0,n),o=Ur(r);if(o!==-1){let c=r.slice(o),l=c.match(/^\/skill:(\S*)$/);if(l)return l[1]??"";let u=c.match(/^\/(\S*)$/);if(u)return u[1]??"";let m=c.split(/\s+/);return(m[m.length-1]??"").toLowerCase()}let s=r.lastIndexOf("@");if(s!==-1){let c=r.slice(s+1),l=c.lastIndexOf("/");return l===-1?c:c.slice(l+1)}let a=r.match(/(\S+)$/);return a?a[1]??"":""}updateState(t){this.state={...this.state,...t};for(let n of this.listeners)try{n(this.state)}catch(r){console.error("[Autocomplete] Listener error:",r)}}};function LT(e){return new up(e)}i(LT,"createAutocompleteProvider");var dp=uA(null);function fp({children:e,cwd:t,gitRoot:n}){let r=Lu({cwd:t,gitRoot:n,enabled:!0});return cA(dp.Provider,{value:r,children:e})}i(fp,"AutocompleteContextProvider");function Po(){return NT(dp)}i(Po,"useAutocompleteContext");function dA(e,t){let n={command:"command",file:"file",argument:"argument",skill:"skill"},r={command:"\u26A1",file:"\u{1F4C4}",argument:"\u2022",skill:"\u2605"};return{id:`autocomplete-${t}`,text:e.text,displayText:e.display,description:e.description,type:n[e.type]??"command",icon:r[e.type]??">"}}i(dA,"completionToSuggestion");function Lu(e={}){let t=NT(dp);return t&&!e.cwd&&!e.gitRoot?t:fA(e)}i(Lu,"useAutocomplete");function fA(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,o=DT(()=>LT({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:8}),[]);OT(()=>{o.updateOptions({cwd:t,gitRoot:n})},[o,t,n]);let[s,a]=lA({visible:!1,selectedIndex:0,completions:[],loading:!1});OT(()=>o.subscribe(I=>{a(I)}),[o]);let c=DT(()=>s.completions.map((S,I)=>dA(S,I)),[s.completions]),l=jr((S,I)=>{if(!r){o.cancel();return}o.handleInput(S,I)},[o,r]),u=jr(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),m=jr(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),p=jr(()=>{s.visible&&o.selectPrevious()},[o,s.visible]),g=jr(()=>{s.visible&&o.selectNext()},[o,s.visible]),x=jr(()=>{s.visible&&o.cancel()},[o,s.visible]),y=jr(()=>{o.cancel()},[o]),w=jr(()=>o,[o]);return{state:s,suggestions:c,handleInput:l,handleTab:u,handleEnter:m,handleUp:p,handleDown:g,handleEscape:x,cancel:y,getProvider:w}}i(fA,"useAutocompleteImpl");import{useCallback as Ua,useRef as BT}from"react";var Tn=[];function mp(e={}){let{maxSize:t=1e3,onSave:n}=e,r=BT(-1),o=BT(""),s=Ua((m,p)=>{if(!m.trim())return;if(Tn[Tn.length-1]?.text!==m){let x={text:m,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};Tn.push(x),Tn.length>t&&Tn.splice(0,Tn.length-t),n?.(x)}r.current=-1,o.current=""},[t,n]),a=Ua(()=>Tn.length===0?null:r.current===-1?(r.current=Tn.length-1,Tn[r.current]??null):r.current>0?(r.current--,Tn[r.current]??null):null,[]),c=Ua(()=>r.current===-1?null:r.current<Tn.length-1?(r.current++,Tn[r.current]??null):(r.current=-1,{text:o.current,timestamp:Date.now()}),[]),l=Ua(()=>{r.current=-1,o.current=""},[]),u=Ua(m=>{r.current===-1&&(o.current=m)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}i(mp,"useInputHistory");function Xt(e,t,n){return Gt(e).slice(t,n).join("")}i(Xt,"sliceByCodePoints");var ja=class{static{i(this,"TextBuffer")}_text="";_lines=[""];_cursor={row:0,col:0};_rememberedCol=0;_history=[];_historyIndex=-1;_maxHistory;constructor(t={}){this._maxHistory=t.maxHistory??100}get text(){return this._text}get lines(){return[...this._lines]}get cursor(){return{...this._cursor}}get lineCount(){return this._lines.length}get currentLine(){return this._lines[this._cursor.row]??""}get isEmpty(){return this._text.length===0}get currentLineVisualWidth(){return Kn(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=Xt(t,0,this._cursor.col);return{row:this._cursor.row,col:Kn(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=Gt(t)[this._cursor.col];return r?Gn(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=Gt(n),o=0;for(let s=0;s<r.length;s++){let a=Gn(r[s])?2:1;if(o+a>t)return s;o+=a}return r.length}moveToVisualCol(t){this._cursor.col=this.visualColToLogicalCol(t),this._rememberedCol=this._cursor.col}setText(t){this._saveHistory(),this._setTextInternal(t),this._clampCursor()}replaceRange(t,n,r){this._saveHistory();let o=Math.max(0,Math.min(t,this._text.length)),s=Math.max(o,Math.min(n,this._text.length)),a=this._text.slice(0,o)+r+this._text.slice(s);this._setTextInternal(a),this.moveToAbsoluteOffset(o+r.length)}insert(t,n){if(this._saveHistory(),n?.paste){this._insertText(t);return}let r=t.split(`
|
|
255
|
-
`);for(let o=0;o<r.length;o++)o>0&&this._insertNewline(),this._insertText(r[o])}_insertText(t){let n=this._lines[this._cursor.row],r=Xt(n,0,this._cursor.col),o=Xt(n,this._cursor.col);this._lines[this._cursor.row]=r+t+o,this._cursor.col+=en(t),this._rememberedCol=this._cursor.col,this._updateText()}newline(){this._saveHistory(),this._insertNewline()}_insertNewline(){let t=this._lines[this._cursor.row],n=Xt(t,0,this._cursor.col),r=Xt(t,this._cursor.col);this._lines[this._cursor.row]=n,this._lines.splice(this._cursor.row+1,0,r),this._cursor.row++,this._cursor.col=0,this._rememberedCol=0,this._updateText()}backspace(){if(this._cursor.col>0){this._saveHistory();let t=this._lines[this._cursor.row],n=this._cursor.col-1,r=Xt(t,0,n),o=Xt(t,this._cursor.col);this._lines[this._cursor.row]=r+o,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}else if(this._cursor.row>0){this._saveHistory();let t=this._lines[this._cursor.row],n=this._lines[this._cursor.row-1];this._cursor.col=en(n),this._lines[this._cursor.row-1]=n+t,this._lines.splice(this._cursor.row,1),this._cursor.row--,this._rememberedCol=this._cursor.col,this._updateText()}}delete(){let t=this._lines[this._cursor.row];if(this._cursor.col<en(t)){this._saveHistory();let n=Xt(t,0,this._cursor.col),r=Xt(t,this._cursor.col+1);this._lines[this._cursor.row]=n+r,this._updateText()}else if(this._cursor.row<this._lines.length-1){this._saveHistory();let n=this._lines[this._cursor.row+1];this._lines[this._cursor.row]=t+n,this._lines.splice(this._cursor.row+1,1),this._updateText()}}move(t){switch(t){case"up":this._moveUp();break;case"down":this._moveDown();break;case"left":this._moveLeft();break;case"right":this._moveRight();break;case"home":this._moveHome();break;case"end":this._moveEnd();break}}_moveUp(){this._cursor.row>0&&(this._cursor.row--,this._clampColumn())}_moveDown(){this._cursor.row<this._lines.length-1&&(this._cursor.row++,this._clampColumn())}_moveLeft(){this._cursor.col>0?(this._cursor.col--,this._rememberedCol=this._cursor.col):this._cursor.row>0&&(this._cursor.row--,this._cursor.col=en(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col)}_moveRight(){let t=this._lines[this._cursor.row];this._cursor.col<en(t)?(this._cursor.col++,this._rememberedCol=this._cursor.col):this._cursor.row<this._lines.length-1&&(this._cursor.row++,this._cursor.col=0,this._rememberedCol=0)}_moveHome(){this._cursor.col=0,this._rememberedCol=0}_moveEnd(){this._cursor.col=en(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col}_clampColumn(){let t=this._lines[this._cursor.row],n=en(t);this._cursor.col=Math.min(this._rememberedCol,n)}_clampCursor(){this._cursor.row=Math.max(0,Math.min(this._cursor.row,this._lines.length-1)),this._cursor.col=Math.max(0,Math.min(this._cursor.col,en(this._lines[this._cursor.row]))),this._rememberedCol=this._cursor.col}killLineRight(){let t=this._lines[this._cursor.row];this._cursor.col<en(t)&&(this._saveHistory(),this._lines[this._cursor.row]=Xt(t,0,this._cursor.col),this._updateText())}killLineLeft(){if(this._cursor.col>0){this._saveHistory();let t=this._lines[this._cursor.row];this._lines[this._cursor.row]=Xt(t,this._cursor.col),this._cursor.col=0,this._rememberedCol=0,this._updateText()}}deleteWordLeft(){if(this._cursor.col===0)return;this._saveHistory();let t=this._lines[this._cursor.row],n=this._cursor.col-1,r=Gt(t);for(;n>0&&/\s/.test(r[n]??"");)n--;for(;n>0&&!/\s/.test(r[n-1]??"");)n--;let o=Xt(t,0,n),s=Xt(t,this._cursor.col);this._lines[this._cursor.row]=o+s,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}_saveHistory(){this._history=this._history.slice(0,this._historyIndex+1),this._history.push(this._text),this._history.length>this._maxHistory&&this._history.shift(),this._historyIndex=this._history.length-1}undo(){return this._historyIndex>0?(this._historyIndex--,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
|
|
256
|
-
`),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}redo(){return this._historyIndex<this._history.length-1?(this._historyIndex++,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
|
|
257
|
-
`),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}_updateText(){this._text=this._lines.join(`
|
|
258
|
-
`)}_setTextInternal(t){this._text=t,this._lines=t.split(`
|
|
259
|
-
`),this._lines.length===0&&(this._lines=[""])}moveToAbsoluteOffset(t){let r=Math.max(0,Math.min(t,this._text.length));for(let o=0;o<this._lines.length;o++){let s=this._lines[o]??"",a=s.length;if(r<=a){this._cursor={row:o,col:en(s.slice(0,r))},this._rememberedCol=this._cursor.col;return}r-=a,o<this._lines.length-1&&(r-=1)}this.moveToEnd()}clear(){this._saveHistory(),this._text="",this._lines=[""],this._cursor={row:0,col:0},this._rememberedCol=0}getAbsoluteOffset(){let t=0;for(let r=0;r<this._cursor.row;r++)t+=(this._lines[r]?.length??0)+1;let n=this._lines[this._cursor.row]??"";return t+=Xt(n,0,this._cursor.col).length,t}isLineContinuation(){return this._lines[this._cursor.row].endsWith("\\")}moveToEnd(){this._cursor.row=this._lines.length-1,this._cursor.col=en(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as mA,useCallback as St,useRef as pp,useEffect as pA}from"react";function gp(e={}){let{initialValue:t="",onTextChange:n}=e,r=pp(null),o=pp(null),s=pp(null),[a,c]=mA({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new ja,t&&r.current.setText(t)),o.current===null&&(o.current=gT());let l=r.current,u=o.current,m=St(v=>{c(M=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:v?.isPasting??M.isPasting,editingMode:v?.editingMode??M.editingMode})),n?.(l.text)},[l,n]),p=St(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{c(v=>({...v,isPasting:!1,editingMode:v.text?"typing":"idle"})),s.current=null},120)},[]),g=St(v=>{l.setText(v),m({isPasting:!1,editingMode:v?"typing":"idle"})},[l,m]),x=St((v,M,Z)=>{l.replaceRange(v,M,Z),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),y=St((v,M)=>{let Z=M?.paste??!1;if(Z&&mT(v)){let Ce=v.replace(/\r\n/g,`
|
|
260
|
-
`).replace(/\r/g,`
|
|
261
|
-
`),{placeholder:de}=u.registerText(Ce);l.insert(de,{paste:!0}),m({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(v,{paste:!1}),m({isPasting:Z,editingMode:Z?"pasting":"typing"}),Z&&p()},[l,u,p,m]),w=St(()=>{l.newline(),m({isPasting:!1,editingMode:"typing"})},[l,m]),S=St(()=>{let v=l.getAbsoluteOffset(),M=vu(l.text,v);M?l.replaceRange(M.start,M.end,""):l.backspace(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),I=St(()=>{let v=l.getAbsoluteOffset(),M=Iu(l.text,v);M?l.replaceRange(M.start,M.end,""):l.delete(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),$=St(v=>{l.move(v),m()},[l,m]),L=St(()=>{l.clear(),m({isPasting:!1,editingMode:"idle"})},[l,m]),G=St(()=>{let v=l.undo();return v&&m(),v},[l,m]),N=St(()=>{let v=l.redo();return v&&m(),v},[l,m]),C=St(()=>{l.moveToEnd(),m()},[l,m]),J=St(v=>{l.moveToAbsoluteOffset(v),m()},[l,m]),ce=St(()=>{l.killLineRight(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),we=St(()=>{l.killLineLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),F=St(()=>{l.deleteWordLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),X=St(()=>{s.current&&(clearTimeout(s.current),s.current=null),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]);return pA(()=>()=>{s.current&&clearTimeout(s.current),r.current=null},[]),{buffer:l,text:a.text,cursor:a.cursor,lines:a.lines,isPasting:a.isPasting,editingMode:a.editingMode,pasteStore:u,resetTransientState:X,setText:g,replaceRange:x,insert:y,newline:w,backspace:S,delete:I,move:$,moveToEnd:C,moveToOffset:J,killLineRight:ce,killLineLeft:we,deleteWordLeft:F,clear:L,undo:G,redo:N}}i(gp,"useTextBuffer");import{jsx as $o,jsxs as Du}from"react/jsx-runtime";import{useState as UT}from"react";import{useCallback as is,useEffect as hp,useRef as Ou}from"react";function HT(e,t,n){let r=Math.max(0,Math.min(t,e.length)),o=e.slice(0,r);if(n.type==="command"||n.type==="skill"){let a=o.lastIndexOf("/");return{start:a===-1?0:a,end:r,replacement:n.text}}if(n.type==="argument"){let a=o.match(/\S+$/);return{start:a?r-a[0].length:0,end:r,replacement:n.text}}let s=o.lastIndexOf("@");return{start:s===-1?0:s,end:r,replacement:n.text}}i(HT,"buildAutocompleteReplacement");var hA=500;function FT(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}i(FT,"shouldUseHistoryNavigation");function yA(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<hA?"clear-input":"arm-clear":"pass-through"}i(yA,"resolvePromptEscapeBehavior");function xA(e){return e.keyName==="newline"||e.keyName==="return"&&(e.ctrl||e.shift)||e.isPasting?"newline":e.isAutocompleteVisible?"accept-completion-and-submit":e.isLineContinuation?"line-continuation":"submit"}i(xA,"resolvePromptEnterBehavior");function wA(e){if(e.meta&&e.name==="backspace")return"delete-word-left";if(e.ctrl)switch(e.name){case"a":return"move-home";case"e":return"move-end";case"z":return"undo";case"y":return"redo";case"k":return"kill-line-right";case"u":return"kill-line-left";case"w":return"delete-word-left";default:return}}i(wA,"resolvePromptEditingCommand");function WT({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:o,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onHistoryRecall:l,onPopPendingInputs:u}){let m=Ou(0),{add:p,navigateUp:g,navigateDown:x,reset:y,saveTempInput:w}=mp(),{buffer:S,text:I,cursor:$,lines:L,isPasting:G,editingMode:N,pasteStore:C,resetTransientState:J,setText:ce,replaceRange:we,clear:F,move:X,moveToOffset:v,insert:M,backspace:Z,newline:Ce,delete:de,undo:Be,redo:ie,killLineRight:se,killLineLeft:ne,deleteWordLeft:V}=gp({initialValue:r,onTextChange:c}),ye=Ou(0);hp(()=>{if(G)return;if(I.length<=1e4){ye.current=0;return}if(I.length===ye.current)return;let q=C.peekNextId(),{truncatedText:D,placeholderContent:We}=pT(I,q);We&&(C.registerTruncatedText(We),ye.current=D.length,ce(D))},[I,G,C,ce]);let it=Po(),be=Lu({cwd:o,gitRoot:s,enabled:a}),{state:Te,suggestions:Le,handleInput:Se,handleTab:pt,handleEnter:et,handleUp:Je,handleDown:A,handleEscape:_}=it??be;hp(()=>{n||(m.current=0,J(),Te.visible&&_())},[Te.visible,n,_,J]);let P=Ou(I);hp(()=>{a&&I!==P.current&&(P.current=I,Se(I,S.getAbsoluteOffset()))},[a,S,Se,I]);let Y=is(q=>{if(!q?.text)return;let D=HT(I,S.getAbsoluteOffset(),q),We=I.slice(0,D.start)+D.replacement+I.slice(D.end);return we(D.start,D.end,D.replacement),We},[S,we,I]),xe=is(q=>{let D=q??I;if(!D.trim())return;let We=C.expand(D),je=new Set,sn=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let hc of D.matchAll(sn)){let bn=Number.parseInt(hc[2]??"0",10);Number.isFinite(bn)&&bn>0&&je.add(bn)}let rr=[];for(let hc of je){let bn=C.get(hc);bn&&rr.push(bn)}p(D,{pastedContents:rr}),e({displayText:D,fullText:We,pastedContents:rr}),F()},[p,F,e,C,I]),ze=is(q=>{if(q){if(q.pastedContents&&q.pastedContents.length>0){for(let D of q.pastedContents)C.adopt(D);l?.({text:q.text,pastedContents:[...q.pastedContents]})}ce(q.text)}},[l,C,ce]),ve=is(async q=>{try{let D=await Gy(q);if(D.kind==="images"){let We=D.blocks.map(je=>`@${je.path}`).join(" ");M(`${We} `,{paste:!1})}else D.kind==="error"&&console.warn(`[KodaX paste] ${D.message}`)}catch(D){console.warn(`[KodaX paste] image handling failed: ${D instanceof Error?D.message:String(D)}`)}},[M]),Ae=Ou(!1),Dn=is(async()=>{if(!Ae.current){Ae.current=!0;try{let q=await Ky();if(q.kind==="images"){let D=q.blocks.map(We=>`@${We.path}`).join(" ");M(`${D} `,{paste:!1})}else q.kind==="error"&&console.warn(`[KodaX clipboard] ${q.message}`)}catch(q){console.warn(`[KodaX clipboard] image handling failed: ${q instanceof Error?q.message:String(q)}`)}finally{Ae.current=!1}}},[M]),Ie=is(q=>{if(!n)return!1;if(q.name==="v"&&(q.ctrl||q.meta))return Dn(),!0;if(q.name==="paste"&&q.isPasted&&Vy(q.sequence).length>0)return ve(q.sequence),!0;let D=Te.visible&&Le.length>0;if(q.name==="tab"&&D){let je=pt();return je&&Y(je),!0}if(q.ctrl&&q.name==="c")return I.length>0?(F(),y()):t?.(),!0;if(q.name==="escape")switch(yA({isAutocompleteVisible:D,hasText:I.length>0,timeSinceLastEscapeMs:Date.now()-m.current})){case"cancel-autocomplete":return _(),m.current=0,!0;case"clear-input":return m.current=0,F(),y(),!0;case"arm-clear":return m.current=Date.now(),!0;default:return!1}if(q.name==="up"){if(D)return Je(),!0;if(q.ctrl)return X("up"),!0;if(I.length===0&&u){let je=u();if(typeof je=="string"&&je.length>0)return ce(je),!0}if(FT($.row,L.length,"up")){w(I);let je=g();ze(je)}else X("up");return!0}if(q.name==="down"){if(D)return A(),!0;if(q.ctrl)return X("down"),!0;if(FT($.row,L.length,"down")){let je=x();ze(je)}else X("down");return!0}if(q.name==="left"){let je=S.getAbsoluteOffset(),sn=vu(S.text,je);return sn?v(sn.start):X("left"),!0}if(q.name==="right"){let je=S.getAbsoluteOffset(),sn=Iu(S.text,je);return sn?v(sn.end):X("right"),!0}if(q.name==="home")return X("home"),!0;if(q.name==="end")return X("end"),!0;let We=wA(q);if(We)switch(We){case"move-home":return X("home"),!0;case"move-end":return X("end"),!0;case"undo":return Be(),!0;case"redo":return ie(),!0;case"kill-line-right":return se(),!0;case"kill-line-left":return ne(),!0;case"delete-word-left":return V(),!0;default:break}if(q.name==="backspace")return Z(),!0;if(q.name==="delete")return de(),!0;if(q.name==="return"||q.name==="newline")switch(xA({keyName:q.name,ctrl:q.ctrl,shift:q.shift,isAutocompleteVisible:D,isLineContinuation:!!L[$.row]?.endsWith("\\"),isPasting:G})){case"accept-completion-and-submit":{let sn=et();if(sn){let rr=Y(sn);xe(rr)}else xe();return!0}case"newline":return Ce(),!0;case"line-continuation":return Z(),Ce(),!0;default:return xe(),!0}return q.insertable&&!q.ctrl&&!q.meta?(M(q.sequence,q.isPasted?{paste:!0}:void 0),!0):!1},[Y,p,Te.visible,Z,S,F,$.row,de,n,A,_,Je,et,ze,pt,ve,Dn,L,ne,se,X,v,x,g,Ce,t,u,ie,y,w,ce,xe,Le.length,I.length,V,G,Be]);return{text:I,cursor:$,lines:L,isPasting:G,terminalFocused:n,editingMode:N,handleKey:Ie}}i(WT,"usePromptInputController");var ss=i(({onSubmit:e,onHistoryRecall:t,onPopPendingInputs:n,placeholder:r="Type a message...",prompt:o=">",focus:s=!0,initialValue:a="",cwd:c,gitRoot:l,autocompleteEnabled:u=!0,onInputChange:m})=>{let{exit:p}=Nr(),{cursor:g,lines:x,handleKey:y,isPasting:w,terminalFocused:S,editingMode:I}=WT({onSubmit:e,onExit:p,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:u,onInputChange:m,onHistoryRecall:t,onPopPendingInputs:n});return nn(Lt.High,$=>y($),[y]),$o(k,{flexDirection:"column",children:$o(km,{lines:x,cursorRow:g.row,cursorCol:g.col,prompt:o,placeholder:r,focus:s,terminalFocused:S,isPasting:w,editingMode:I,theme:"dark"})})},"InputPrompt"),TA=i(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,o]=UT(""),[s,a]=UT(0);nn(Lt.High,p=>{if(p.name==="return")return r.trim()&&(e(r),o(""),a(0)),!0;if(p.name==="backspace"&&s>0){let g=[...r].slice(0,s-1).join(""),x=[...r].slice(s).join("");return o(g+x),a(s-1),!0}if(p.name==="left"&&s>0)return a(s-1),!0;if(p.name==="right"&&s<[...r].length)return a(s+1),!0;if(p.insertable&&!p.ctrl&&!p.meta){let g=[...r].slice(0,s).join(""),x=[...r].slice(s).join("");return o(g+p.sequence+x),a(s+1),!0}return!1},[r,s,e]);let c=te("dark");if(!r)return Du(k,{children:[Du(b,{color:c.colors.primary,children:[n," "]}),t&&$o(b,{dimColor:!0,children:t}),$o(b,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",m=[...r].slice(s+1).join("");return Du(k,{children:[Du(b,{color:c.colors.primary,children:[n," "]}),$o(b,{children:l}),$o(b,{backgroundColor:c.colors.primary,color:"#000000",children:u}),$o(b,{children:m})]})},"SimpleInputPrompt");import{jsx as at,jsxs as It}from"react/jsx-runtime";import{useMemo as Ga,useState as GT,useEffect as KT}from"react";var jT=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Sn=i(({color:e,theme:t})=>{let n=t??Ga(()=>te("dark"),[]),[r,o]=GT(0);KT(()=>{let a=setInterval(()=>{o(c=>(c+1)%jT.length)},80);return()=>clearInterval(a)},[]);let s=e??n.colors.accent;return at(b,{color:s,children:jT[r]})},"Spinner"),VT=i(({label:e,dotCount:t=3,theme:n})=>{let r=n??Ga(()=>te("dark"),[]),[o,s]=GT(1);KT(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(o);return It(k,{children:[e&&at(b,{color:r.colors.text,children:e}),at(b,{color:r.colors.accent,children:a})]})},"DotsIndicator"),zT=i(({progress:e,label:t,width:n=20,theme:r})=>{let o=r??Ga(()=>te("dark"),[]),s=Math.max(0,Math.min(100,e)),a=Math.round(s/100*n),c=n-a,l="\u2588".repeat(a),u="\u2591".repeat(c);return It(k,{flexDirection:"column",children:[t&&at(k,{marginBottom:1,children:at(b,{color:o.colors.text,children:t})}),It(k,{children:[at(b,{color:o.colors.primary,children:l}),at(b,{dimColor:!0,children:u}),It(b,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),SA=i(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??Ga(()=>te("dark"),[]),o=e??"Thinking";return It(k,{children:[t&&at(k,{marginRight:1,children:at(Sn,{theme:r})}),It(b,{color:r.colors.accent,children:[o,"\u2026"]})]})},"ThinkingIndicator"),CA=i(({message:e,subMessage:t,progress:n,type:r="spinner",compact:o=!1,theme:s})=>{let a=s??Ga(()=>te("dark"),[]),c=e??"Loading";return o?It(k,{children:[at(Sn,{theme:a}),It(b,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?It(k,{flexDirection:"column",children:[at(zT,{progress:n,label:c,theme:a}),t&&at(k,{marginTop:1,children:at(b,{dimColor:!0,children:t})})]}):r==="dots"?It(k,{flexDirection:"column",children:[at(VT,{label:c,theme:a}),t&&at(k,{marginTop:1,children:at(b,{dimColor:!0,children:t})})]}):r==="simple"?It(k,{flexDirection:"column",children:[It(b,{color:a.colors.accent,children:[c,"\u2026"]}),t&&at(k,{marginTop:1,children:at(b,{dimColor:!0,children:t})}),n!==void 0&&at(k,{marginTop:1,children:It(b,{dimColor:!0,children:[n,"%"]})})]}):It(k,{flexDirection:"column",children:[It(k,{children:[at(Sn,{theme:a}),It(b,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&It(b,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&at(k,{marginTop:1,children:at(b,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as le,jsxs as Oe,Fragment as Ep}from"react/jsx-runtime";import{useEffect as yS,useMemo as Jn,memo as rn}from"react";function Ue(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}i(Ue,"truncateValue");function XT(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}i(XT,"extractFirstMeaningfulLine");function QT(e){let t=e.match(/^\[([^\]]+)\]\s+(.*)$/);if(!t)return{toolLabel:e};let n=t[1]?.trim(),r=t[2]?.trim()??e,o=new RegExp(`^${n?.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"i"),s=r.replace(o,"").trim();return{rolePrefix:n?`[${n}]`:void 0,toolLabel:s||r}}i(QT,"splitDisplayToolName");function Nu(e){let{rolePrefix:t,toolLabel:n}=QT(e);return t?`${t} ${n}`:n}i(Nu,"normalizeDisplayToolName");function xp(e){return QT(e).toolLabel}i(xp,"stripRolePrefix");function Bu(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}i(Bu,"asRecord");function JT(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(JT,"readString");function xt(e,...t){for(let n of t){let r=JT(e?.[n]);if(r)return r}}i(xt,"readFirstString");function qn(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim().length>0){let t=Number(e.trim());return Number.isFinite(t)?t:void 0}}i(qn,"readNumber");function ZT(e){if(!Array.isArray(e))return;let t=e.map(n=>typeof n=="string"?n.trim():"").filter(Boolean);return t.length>0?t:void 0}i(ZT,"readStringArray");function bA(e){if(typeof e=="string")return e.trim()||void 0;let t=Bu(e);if(t)return JT(t.preview)??void 0}i(bA,"extractPreview");function YT(e){if(e)try{return Bu(JSON.parse(e))}catch{return}}i(YT,"parsePreviewRecord");function _e(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}i(_e,"extractFieldFromPreview");function Qn(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}i(Qn,"extractNumberFromPreview");function eS(e){if(!e)return;let t=e.match(/"paths"\s*:\s*\[([^\]]*)/);if(!t?.[1])return;let n=Array.from(t[1].matchAll(/"([^"]+)"/g)).map(r=>r[1]?.trim()??"").filter(Boolean);return n.length>0?n:void 0}i(eS,"extractPathsFromPreview");function vA(e){let t=bA(e);if(typeof e=="string")return{record:YT(t),preview:t};let n=Bu(e),r=YT(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}i(vA,"resolveInputRecord");function as(e,t,n,r=!1){let o=xt(t,"path","target_path","targetPath")??_e(n,"path")??_e(n,"target_path")??_e(n,"targetPath"),s=ZT(t?.paths)??eS(n);if(r&&s?.length){s.length===1?e.push(Ue(s[0])):e.push(`${s.length} files`);return}if(o){e.push(Ue(o));return}s?.length&&(s.length===1?e.push(Ue(s[0])):e.push(`${s.length} files`))}i(as,"pushPathSummary");function cs(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}i(cs,"pushNumericSummary");function yp(e,t,n){let r=xt(t,"baseRef","base_ref")??_e(n,"baseRef")??_e(n,"base_ref"),o=xt(t,"targetRef","target_ref")??_e(n,"targetRef")??_e(n,"target_ref");r&&o&&e.push(Ue(`${r}...${o}`,88))}i(yp,"pushRangeSummary");function IA(e,t){let{record:n,preview:r}=vA(t),o=xp(e).toLowerCase(),s=[];if(o.includes("changed_diff_bundle")){let a=ZT(n?.paths)??eS(r);a?.length?(s.push(a.length===1?Ue(a[0]):`${a.length} files`),a.length>1&&s.push(Ue(a[0]))):as(s,n,r,!0);let c=qn(n?.limit_per_path)??qn(n?.limitPerPath)??Qn(r,"limit_per_path")??Qn(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),yp(s,n,r),s}if(o.includes("changed_diff"))return as(s,n,r),cs(s,"offset",qn(n?.offset)??Qn(r,"offset")),cs(s,"limit",qn(n?.limit)??Qn(r,"limit")),yp(s,n,r),s;if(o==="read"||o.includes("read_"))return as(s,n,r),cs(s,"offset",qn(n?.offset)??Qn(r,"offset")),cs(s,"limit",qn(n?.limit)??Qn(r,"limit")),s;if(o.includes("changed_scope"))return as(s,n,r,!0),yp(s,n,r),s;if(o.includes("repo_overview"))return as(s,n,r),s;if(o.includes("bash")||o.includes("shell_command")){let a=xt(n,"command")??_e(r,"command");return a&&s.push(`cmd=${Ue(a,140)}`),s}if(o==="glob"||o.includes("glob_")){let a=xt(n,"pattern")??_e(r,"pattern"),c=xt(n,"path","root","directory","cwd")??_e(r,"path")??_e(r,"root")??_e(r,"directory")??_e(r,"cwd");return a&&s.push(`pattern=${Ue(a,96)}`),c&&s.push(Ue(c)),s}if(o==="grep"||o.includes("grep_")){let a=xt(n,"pattern","query")??_e(r,"pattern")??_e(r,"query"),c=xt(n,"path","root","directory","cwd")??_e(r,"path")??_e(r,"root")??_e(r,"directory")??_e(r,"cwd");return a&&s.push(`pattern=${Ue(a,96)}`),c&&s.push(Ue(c)),s}if(o==="web_fetch"){let a=xt(n,"url")??_e(r,"url"),c=xt(n,"provider_id","providerId")??_e(r,"provider_id")??_e(r,"providerId"),l=xt(n,"capability_id","capabilityId")??_e(r,"capability_id")??_e(r,"capabilityId");return a&&s.push(Ue(a,120)),c&&s.push(`provider=${Ue(c,48)}`),l&&s.push(`cap=${Ue(l,48)}`),s}if(o==="mcp_describe"||o==="mcp_read_resource"){let a=xt(n,"id")??_e(r,"id");return a&&s.push(Ue(a,120)),s}if(o==="mcp_call"){let a=xt(n,"id")??_e(r,"id"),c=Bu(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(Ue(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(o==="mcp_search"){let a=xt(n,"query")??_e(r,"query"),c=xt(n,"server")??_e(r,"server"),l=xt(n,"kind")??_e(r,"kind"),u=qn(n?.limit)??Qn(r,"limit");return a&&s.push(`query=${Ue(a,96)}`),c&&s.push(`server=${Ue(c,48)}`),l&&s.push(`kind=${l}`),u!==void 0&&s.push(`limit=${u}`),s}if(o==="web_search"||o==="code_search"||o==="semantic_lookup"){let a=xt(n,"query","pattern")??_e(r,"query")??_e(r,"pattern"),c=xt(n,"path","target_path","targetPath")??_e(r,"path")??_e(r,"target_path")??_e(r,"targetPath"),l=xt(n,"provider_id","providerId")??_e(r,"provider_id")??_e(r,"providerId"),u=qn(n?.limit)??Qn(r,"limit");return a&&s.push(`query=${Ue(a,96)}`),c&&s.push(Ue(c,72)),l&&s.push(`provider=${Ue(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return as(s,n,r,!0),cs(s,"offset",qn(n?.offset)??Qn(r,"offset")),cs(s,"limit",qn(n?.limit)??Qn(r,"limit")),s}i(IA,"summarizeToolDetails");function tS(e){let t=e.match(/Showing diff lines\s+(\d+)-(\d+)\s+of\s+(\d+)/i);if(t)return`${t[1]}-${t[2]}/${t[3]}`}i(tS,"extractChangedDiffRange");function kA(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}i(kA,"extractDiffPreviewLine");function RA(e){let t=[],n=tS(e);if(n){let[o,s]=n.split("/");t.push(s?`Diff range: ${o} of ${s}`:`Diff range: ${n}`)}let r=kA(e);return r&&t.push(`Preview: ${Ue(r,220)}`),t}i(RA,"formatChangedDiffExplanation");function EA(e){let t=[],n=e.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(n?.[1]){let o=Number(n[1]);Number.isFinite(o)&&o>0&&t.push(`Bundle: ${o===1?"1 file":`${o} files`}`)}let r=e.match(/^===\s+(.+?)\s+===/m);return r?.[1]&&t.push(`First file: ${Ue(r[1].trim(),220)}`),t}i(EA,"formatChangedDiffBundleExplanation");function nS(e,t){if(!t)return[];let n=xp(e).toLowerCase(),r=[];if(n.includes("changed_diff_bundle")){let o=t.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(o?.[1]){let a=Number(o[1]);Number.isFinite(a)&&a>0&&r.push(a===1?"1 file":`${a} files`)}let s=t.match(/^===\s+(.+?)\s+===/m);return s?.[1]&&r.push(Ue(s[1].trim())),r}if(n.includes("changed_diff")){let o=t.match(/^Changed diff for\s+(.+)$/im);o?.[1]&&r.push(Ue(o[1].trim()));let s=tS(t);return s&&r.push(s),r}if(n==="read"||n.includes("read_")){let o=t.match(/^Reading\s+(.+)$/im);return o?.[1]&&r.push(Ue(o[1].trim())),r}return[]}i(nS,"summarizeToolOutputDetails");function wp(e,t){let n=Nu(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}i(wp,"formatToolDetailSummary");function MA(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(MA,"formatDuration");function AA(e){switch(e.status){case O.Scheduled:return"scheduled";case O.Validating:return"validating";case O.AwaitingApproval:return"awaiting approval";case O.Executing:return"running";case O.Error:return"failed";case O.Cancelled:return"cancelled";default:return}}i(AA,"formatToolStatusDetail");function qT(e){switch(e.status){case O.Scheduled:return["Queued: waiting to start"];case O.Validating:return["Validating: checking inputs and policy"];case O.AwaitingApproval:return["Waiting: approval required before execution"];case O.Executing:return e.progress!==void 0?[`Progress: ${e.progress}% complete`]:e.progressLines&&e.progressLines.length>0?e.progressLines.slice(-5):e.preview?[`Running: ${e.preview}`]:["Running: waiting for tool output"];case O.Cancelled:return["Cancelled before completion"];default:return[]}}i(qT,"formatToolProgressExplanation");function Tp(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}i(Tp,"resolveToolExplanationTone");function _A(e){let t=XT(e.error),n=typeof e.output=="string"?XT(e.output):void 0,r=[];return t&&r.push(`Error: ${Ue(t,220)}`),e.status===O.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${Ue(n,220)}`),r}i(_A,"formatToolFailureExplanation");function Sp(e){if(typeof e.output!="string"||!e.output.trim())return qT(e);let t=xp(e.name).toLowerCase();return e.status===O.Error?_A(e):e.status!==O.Success?qT(e):t.includes("changed_diff_bundle")?EA(e.output):t.includes("changed_diff")?RA(e.output):[]}i(Sp,"formatToolResultExplanation");function Cp(e,t){return wp(e,IA(e,t))}i(Cp,"formatToolSummary");function Hu(e){let t=typeof e.output=="string"?nS(e.name,e.output):[],n=t.length>0?wp(e.name,t):Cp(e.name,e.input),r=AA(e),o=MA(e.startTime,e.endTime),s=e.status===O.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===O.Executing&&e.preview?e.preview:void 0,a=[r,s,o].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}i(Hu,"formatToolCallInlineText");function Fu(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?nS(n.name,n.output):[],o=r.length>0?wp(n.name,r):Cp(n.name,n.input),a=n.progressLines&&n.progressLines.length>0?`${o}|${n.id}`:`${o}|${n.error??""}`,c=t.get(a);c?(c.tool=n,c.count+=1):t.set(a,{tool:n,count:1})}return[...t.values()]}i(Fu,"collapseToolCalls");function Ka(e){let t=Hu(e.tool);return e.count>1?`${t} x${e.count}`:t}i(Ka,"formatCollapsedToolInlineText");function Wu(e,t,n){let r=Cp(e,t);return r!==Nu(e)?`[Tools] ${r}`:n>0?`[Tools] ${Nu(e)} (${n} chars)`:`[Tools] ${Nu(e)}`}i(Wu,"formatLiveToolLabel");function bp(e,t=e.length){let n=0,r=Math.min(t,e.length);for(let o=0;o<r;o++)e.charCodeAt(o)===10&&(n+=1);return n}i(bp,"countNewlines");function Uu(e,t={}){let n=t.maxChars??1e4,r=t.headChars??2500,o=t.tailChars??2500;if(e.length<=n)return e;let s=e.slice(0,r),a=e.slice(-o),c=bp(e),l=bp(s),u=bp(a),m=Math.max(0,c-l-u);return`${s}
|
|
262
|
-
\u2026 +${m} lines \u2026
|
|
263
|
-
${a}`}i(Uu,"truncateUserMessageForDisplay");var rS=400,PA="... (thinking truncated; press Ctrl+O to inspect full reasoning)",oS=2e5,$A="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",iS=1e5;function LA(e,t){if(!e||!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^\\[Tools\\]\\s+\\[${n}\\]\\s+`,"i"),"[Tools] ").replace(new RegExp(`^\\[Thinking\\]\\s+\\[${n}\\]\\s*`,"i"),"[Thinking] ").replace(new RegExp(`^\\[${n}\\]\\s+thinking\\b`,"i"),"[Thinking]").trim()}i(LA,"normalizeManagedLiveActivityLabel");function ju(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(ju,"formatTimestamp");function sS(e){switch(e){case O.Scheduled:return"\u25CB";case O.Validating:return"\u25D0";case O.AwaitingApproval:return"\u23F8";case O.Executing:return"\u25CF";case O.Success:return"\u2713";case O.Error:return"\u2717";case O.Cancelled:return"\u2298";default:return"[tool]"}}i(sS,"getToolStatusIcon");function aS(e){switch(e){case O.Scheduled:case O.Validating:return"dim";case O.AwaitingApproval:return"accent";case O.Executing:return"primary";case O.Success:return"success";case O.Error:return"error";case O.Cancelled:return"dim";default:return"text"}}i(aS,"getToolStatusColor");function OA(e,t){let n=Math.max(1,t),r=e.split(`
|
|
264
|
-
`),o=Kt(r.length>0?r:[""],n,0,0);return o.visualLines.length>0?o.visualLines:[""]}i(OA,"wrapText");function vp(e,t,n,r=!1){if(n||r)return e.length>oS?`${e.slice(0,oS)}
|
|
265
|
-
|
|
266
|
-
${$A}`:e;let o=e.split(/\r?\n/),s=o.length>t,a=s?o.slice(0,t).join(`
|
|
267
|
-
`):e,c=a.length>rS,l=c?a.slice(0,rS):a;return!s&&!c?e:`${l}
|
|
268
|
-
|
|
269
|
-
${PA}`}i(vp,"buildThinkingPreview");function DA(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user")return t;return 0}i(DA,"findActiveRoundStartIndex");function Pe(e,t,n,r,o){let s=OA(n,r);if(s.length===0){e.push({key:`${t}-0`,text:"",...o});return}s.forEach((a,c)=>{e.push({key:`${t}-${c}`,text:a,...o})})}i(Pe,"pushWrappedRows");function Va(e,t){e.push({key:t,text:" "})}i(Va,"pushBlankRow");function ft(e,t=0){return Math.max(20,e-t)}i(ft,"getBodyWidth");function NA(e){if(!e.input)return[];let t=JSON.stringify(e.input,null,2)?.trim();return t?t.split(/\r?\n/).slice(0,6).map((n,r)=>r===0?`input: ${n}`:n):[]}i(NA,"buildToolInputPreview");function BA(e){switch(e){case"H0_DIRECT":return"H0";case"H1_EXECUTE_EVAL":return"H1";case"H2_PLAN_EXECUTE_EVAL":return"H2";default:return e}}i(BA,"formatHarnessProfileShort");function HA(e,t,n,r,o,s=!1,a=!1){if(Pe(e,`${t}-tool-${n.id}-main`,`${sS(n.status)} ${Ka({tool:n,count:r})}`,ft(o,2),{color:aS(n.status),indent:2,bold:n.status===O.Executing}),Sp(n).forEach((l,u)=>{let m=Tp(l);Pe(e,`${t}-tool-${n.id}-explanation-${u}`,l,ft(o,4),{color:m,indent:4})}),s){let l=NA(n),u=a?l:l.slice(0,6);u.forEach((m,p)=>{Pe(e,`${t}-tool-${n.id}-input-${p}`,m,ft(o,4),{color:"dim",indent:4})}),!a&&l.length>u.length&&Pe(e,`${t}-tool-${n.id}-input-more`,`... (${l.length-u.length} more lines)`,ft(o,4),{color:"dim",indent:4})}if(s&&typeof n.output=="string"&&n.output.trim()){let l=n.output.trim().split(/\r?\n/),u=a?l:l.slice(0,8);u.forEach((p,g)=>{Pe(e,`${t}-tool-${n.id}-output-${g}`,p,ft(o,4),{color:"dim",indent:4})});let m=l.length;!a&&m>u.length&&Pe(e,`${t}-tool-${n.id}-output-more`,`... (${m-u.length} more lines)`,ft(o,4),{color:"dim",indent:4})}}i(HA,"buildToolRows");function FA(e,t,n,r){let o=n.status===O.Executing,s=o?"":`${sS(n.status)} `;Pe(e,`${t}-tool-${n.id}-main`,`${s}${Ka({tool:n,count:1})}`,ft(r,2),{color:aS(n.status),indent:2,bold:o,spinner:o}),Sp(n).forEach((c,l)=>{let u=Tp(c);Pe(e,`${t}-tool-${n.id}-explanation-${l}`,c,ft(r,4),{color:u,indent:4})})}i(FA,"buildLiveToolRows");function cS(e){let{items:t,viewportWidth:n,isLoading:r=!1,maxLines:o=1e3,isThinking:s=!1,thinkingCharCount:a=0,thinkingContent:c="",streamingResponse:l="",currentTool:u,activeToolCalls:m=[],toolInputCharCount:p=0,toolInputContent:g="",iterationHistory:x=[],currentIteration:y=1,isCompacting:w=!1,managedAgentMode:S,managedPhase:I,managedHarnessProfile:$,managedWorkerTitle:L,managedRound:G,managedMaxRounds:N,lastLiveActivityLabel:C,currentTodoActiveForm:J,showFullThinking:ce=!1,showDetailedTools:we=!1,showAllContent:F=!1,showLiveProgressRows:X=!0}=e,v=[];for(let M of t)switch(M.type){case"user":Pe(v,`${M.id}-header`,`You [${ju(M.timestamp)}]`,n,{color:"primary",bold:!0,itemId:M.id}),Pe(v,`${M.id}-body`,Uu(M.text),ft(n,2),{color:"text",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"assistant":{let Z=F?M.text:M.compactText??M.text;Pe(v,`${M.id}-header`,`Assistant [${ju(M.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:M.isStreaming,itemId:M.id}),Pe(v,`${M.id}-body`,Z,ft(n,2),{color:"text",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break}case"system":Pe(v,`${M.id}-header`,`System [${ju(M.timestamp)}]`,n,{color:"dim",bold:!0,itemId:M.id}),Pe(v,`${M.id}-body`,M.text,ft(n,2),{color:"dim",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"tool_group":Pe(v,`${M.id}-header`,`Tools [${ju(M.timestamp)}]`,n,{color:"accent",bold:!0,itemId:M.id}),Fu(M.tools).forEach(Z=>HA(v,M.id,Z.tool,Z.count,n,we,F)),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"thinking":{let Z=F?vp(M.text,o,ce,F):M.compactText??vp(M.text,o,ce,F);Pe(v,`${M.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:M.id}),Pe(v,`${M.id}-body`,Z,ft(n,2),{color:"thinking",indent:2,italic:!0,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break}case"error":Pe(v,`${M.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:M.id}),Pe(v,`${M.id}-body`,M.text,ft(n,2),{color:"error",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"info":Pe(v,`${M.id}-body`,`${M.icon??"\u2139"} ${F?M.text:M.compactText??M.text}`,n,{color:"info",itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"event":Pe(v,`${M.id}-body`,`${M.icon??">"} ${F?M.text:M.compactText??M.text}`,n,{color:"text",itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"hint":Pe(v,`${M.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:M.id}),Pe(v,`${M.id}-body`,M.text,ft(n,2),{color:"dim",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;default:break}if(X&&x.length>0&&(x.forEach(M=>{if(Pe(v,`iteration-${M.iteration}-header`,`\u2500\u2500 Round ${M.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),M.thinkingSummary){let Z=M.thinkingLength>60?` (${M.thinkingLength} chars total)`:"";Pe(v,`iteration-${M.iteration}-thinking`,`\u{1F4AD} ${M.thinkingSummary}${Z}`,ft(n,1),{color:"thinking",indent:1,italic:!0})}if(M.response){let Z=M.response.slice(0,200);Pe(v,`iteration-${M.iteration}-response`,Z,ft(n,1),{color:"text",indent:1}),M.response.length>200&&Pe(v,`iteration-${M.iteration}-response-more`,`... (${M.response.length} chars total)`,ft(n,1),{color:"dim",indent:1})}M.toolsUsed.length>0&&Pe(v,`iteration-${M.iteration}-tools`,`* tools: ${M.toolsUsed.join(", ")}`,ft(n,1),{color:"accent",indent:1}),Va(v,`iteration-${M.iteration}-blank`)}),Pe(v,"iteration-current-header",`\u2500\u2500 Round ${y} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),Va(v,"iteration-current-blank")),r&&c){let M=vp(c,o,ce,F);Pe(v,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),Pe(v,"thinking-stream-body",M,ft(n,2),{color:"thinking",indent:2,italic:!0}),Va(v,"thinking-stream-blank")}if(r){let M="Thinking",Z="",Ce=BA($),de=LA(C,L),Be=L??"Scout",ie=I==="routing"?`[${S?S.toUpperCase():"AMA"} Routing] `:I==="preflight"?`[${S?S.toUpperCase():"AMA"} ${Be}] `:$?`[${S?S.toUpperCase():"AMA"} ${Ce??$}${L?` - ${L}`:""}] `:"",se=m.filter(be=>be.status===O.Executing).length,ne=m.filter(be=>be.status===O.Success).length,V=m.filter(be=>be.status===O.Error).length,ye=m.filter(be=>be.status===O.Cancelled).length,it=m.length>0&&(se>0||!l);if(w)M="Compacting";else if(it){let be=[];if(se>0&&be.push(`${se} running`),ne>0&&be.push(`${ne} done`),V>0&&be.push(`${V} error`),ye>0&&be.push(`${ye} cancelled`),be.length===0&&be.push(`${m.length} tools`),Pe(v,"loading-tools-header",`${ie}[Tools] ${be.join(", ")}`,n,{color:"primary",bold:!0,spinner:se>0}),m.forEach(Te=>{FA(v,"loading-tools",Te,n)}),Va(v,"loading-tools-blank"),se>0&&!l&&!X)return v}else if(J)Z=ie||"[Plan] ",M=J;else if(u)Z=ie||"[Tool] ",M=de?.startsWith("[Tools]")?de:Wu(u,g,p);else if(s){Z=ie||"[Thinking] ";let be=G&&N&&G>1?` round ${G}/${N}`:"";M=a>0?`${a} chars${be}`:de?`${de}${be}`:`processing${be}`}else de&&(M=de);X&&Pe(v,"loading-indicator",`${Z}${M}...`,n,{color:"accent",spinner:!0})}if(l){let M=l.lastIndexOf(`
|
|
270
|
-
`),Z=M>=0?l.slice(0,M+1):"";Z.length>0&&(Pe(v,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),Pe(v,"streaming-body",Z,ft(n,2),{color:"text",indent:2}),Va(v,"streaming-blank"))}return v}i(cS,"buildTranscriptRows");function WA(e,t,n=1e3,r=!1,o=!1){return ls(e,t,n,r,void 0,o)}i(WA,"buildStaticTranscriptSections");function ls(e,t,n=1e3,r=!1,o,s=!1){return e.map(a=>({key:a.id,rows:cS({items:[a],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:r||!!o?.has(a.id)})}))}i(ls,"buildHistoryItemTranscriptSections");function UA(e,t){return{key:e,rows:cS(t)}}i(UA,"buildDynamicTranscriptSection");function us(e){let{items:t,viewportWidth:n,maxLines:r=1e3,windowed:o=!1,showDetailedTools:s=!1,showAllContent:a=!1,expandedItemKeys:c,...l}=e,u=DA(t),m=o?[]:t.slice(0,u),p=o?t:t.slice(u),g=o?[]:WA(m,n,r,s,a),x=ls(p,n,r,s,c,a),y=UA("active-pending",{...l,items:[],managedLiveEvents:[],lastLiveActivityLabel:l.lastLiveActivityLabel,viewportWidth:n,maxLines:r,showAllContent:a,showDetailedTools:s,expandedItemKeys:c}),w=y.rows.length>0?[y]:[];return{staticSections:g,sections:x,rows:Lo(x),previewSections:w,previewRows:Lo(w)}}i(us,"buildTranscriptRenderModel");function Lo(e){return e.flatMap(t=>t.rows)}i(Lo,"flattenTranscriptSections");function Ip(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:Lo(t),previewSections:[...e.previewSections],previewRows:Lo(e.previewSections)}}i(Ip,"materializeTranscriptRenderModel");function lS(e,t={}){let{start:n,end:r,viewportTop:o,viewportHeight:s,viewportRows:a,scrollOffset:c=0,windowed:l=!1}=t;if(typeof o=="number"&&typeof s=="number"){let u=Math.max(0,o),m=Math.max(u,o+Math.max(0,s));return e.slice(u,m)}return typeof n=="number"&&typeof r=="number"?e.slice(Math.max(0,n),Math.max(0,r)):l?Rp(e,a,c):e}i(lS,"resolveVisibleTranscriptRows");var jA=200,GA=50,kp=30;function uS(e,t,n=jA,r=GA){let o=t.current,s=o?e.findIndex(l=>l.id===o.id):-1,a=s>=0?s:o?Math.min(o.idx,Math.max(0,e.length-n)):0;e.length-a>n+r&&(a=e.length-n);let c=e[a];return c&&(o?.id!==c.id||o.idx!==a)?t.current={id:c.id,idx:a}:!c&&o&&(t.current=null),a}i(uS,"computeTranscriptCapStart");function dS(e,t){if(t<=0||e.length===0)return[];let n=0,r=0;for(let o=e.length-1;o>=0;o--)if(e[o]?.type==="user"&&(n++,n>t)){r=o+1;break}return e.slice(r)}i(dS,"sliceHistoryToRecentRounds");function Rp(e,t,n=0){if(!t||t<=0)return e;let r=Math.max(0,n),o=Math.max(0,e.length-r),s=Math.max(0,o-t);return e.slice(s,o)}i(Rp,"getVisibleTranscriptRows");function fS(e,t,n){if(!t||!n||n<=0)return 0;let r=Lo(e),o=e.find(u=>u.key===t);if(!o||o.rows.length===0)return 0;let s=o.rows[0]?.key,a=r.findIndex(u=>u.key===s);if(a===-1)return 0;let c=Math.max(0,a-Math.floor(n/3)),l=Math.min(r.length,c+n);return Math.max(0,r.length-l)}i(fS,"resolveScrollOffsetForTranscriptItem");function mS(e,t){if(t)switch(t){case"warning":return e.colors.warning;case"info":return e.colors.info;case"hint":return e.colors.hint;default:return e.colors[t]}}i(mS,"resolveTranscriptColor");var pS=new Mi(500);function KA(e){let t=Gt(e),n=[],r=[],o=0,s=0;for(let a of t)n.push(o),r.push(s),o+=a.length,s+=Kf(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}i(KA,"buildTranscriptTextMetrics");function za(e){let t=pS.get(e);if(t)return t;let n=KA(e);return pS.set(e,n),n}i(za,"getTranscriptTextMetrics");function Gr(e){return za(e).length}i(Gr,"getTranscriptTextLength");function gS(e){return za(e).displayWidth}i(gS,"getTranscriptTextDisplayWidth");function Gu(e,t){let n=za(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}i(Gu,"charAtTranscriptText");function ds(e,t,n){let r=za(e),o=Math.max(0,Math.min(r.length,Math.floor(t))),s=typeof n=="number"?Math.max(o,Math.min(r.length,Math.floor(n))):r.length;return r.graphemes.slice(o,s).join("")}i(ds,"sliceTranscriptText");function hS(e,t){let n=za(e),r=Math.max(0,Math.floor(t));if(r<=0||n.length===0)return 0;for(let o=0;o<n.length;o+=1){let s=n.visualOffsets[o]??0,a=o+1<n.length?n.visualOffsets[o+1]??n.displayWidth:n.displayWidth;if(r<a||r===s)return o}return n.length}i(hS,"resolveTranscriptTextIndexAtVisualColumn");function Ku(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Ku,"formatTimestamp");function VA(e,t){let n=e.split(`
|
|
271
|
-
`),r=n.slice(0,t),o=n.length>t;return{lines:r,hasMore:o}}i(VA,"truncateLines");function zA(e){switch(e){case O.Scheduled:return"\u25CB";case O.Validating:return"\u25D0";case O.AwaitingApproval:return"\u23F8";case O.Executing:return"\u25CF";case O.Success:return"\u2713";case O.Error:return"\u2717";case O.Cancelled:return"\u2298";default:return"?"}}i(zA,"getToolStatusIcon");function XA(e,t){switch(e){case O.Scheduled:case O.Validating:return t.colors.dim;case O.AwaitingApproval:return t.colors.accent;case O.Executing:return t.colors.primary;case O.Success:return t.colors.success;case O.Error:return t.colors.error;case O.Cancelled:return t.colors.dim;default:return t.colors.text}}i(XA,"getToolStatusColor");var YA=rn(({item:e,theme:t})=>{let n=Jn(()=>Uu(e.text),[e.text]);return Oe(k,{flexDirection:"column",marginBottom:1,children:[Oe(k,{children:[le(b,{color:t.colors.primary,bold:!0,children:"You"}),Oe(b,{dimColor:!0,children:[" [",Ku(e.timestamp),"]"]})]}),le(k,{marginLeft:2,children:le(b,{color:t.colors.text,children:n})})]})}),qA=rn(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:o,hasMore:s}=VA(r,n);return Oe(k,{flexDirection:"column",marginBottom:1,children:[Oe(k,{children:[le(b,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&Oe(Ep,{children:[le(b,{children:" "}),le(Sn,{color:t.colors.accent})]}),Oe(b,{dimColor:!0,children:[" [",Ku(e.timestamp),"]"]})]}),Oe(k,{marginLeft:2,flexDirection:"column",children:[o.map((a,c)=>le(b,{color:t.colors.text,children:a||" "},c)),s&&Oe(b,{dimColor:!0,children:["... (",r.split(`
|
|
272
|
-
`).length-n," more lines)"]})]})]})}),QA=rn(({item:e,theme:t})=>Oe(k,{flexDirection:"column",marginBottom:1,children:[Oe(k,{children:[le(b,{color:t.colors.dim,bold:!0,children:"System"}),Oe(b,{dimColor:!0,children:[" [",Ku(e.timestamp),"]"]})]}),le(k,{marginLeft:2,children:le(b,{dimColor:!0,children:e.text})})]})),JA=rn(({tool:e,count:t=1,theme:n})=>{let r=zA(e.status),o=XA(e.status,n);return Oe(k,{flexDirection:"column",marginLeft:2,children:[Oe(k,{children:[Oe(b,{color:o,children:[r," "]}),le(b,{color:n.colors.text,bold:!0,children:Ka({tool:e,count:t})})]}),e.error&&le(k,{marginLeft:2,children:le(b,{color:n.colors.error,children:e.error})})]})}),ZA=rn(({item:e,theme:t})=>{let n=Fu(e.tools);return Oe(k,{flexDirection:"column",marginBottom:1,children:[Oe(k,{children:[le(b,{color:t.colors.accent,bold:!0,children:"Tools"}),Oe(b,{dimColor:!0,children:[" [",Ku(e.timestamp),"]"]})]}),n.map(r=>le(JA,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),e_=rn(({item:e,theme:t})=>Oe(k,{flexDirection:"column",marginBottom:1,children:[le(k,{children:le(b,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),le(k,{marginLeft:2,children:le(b,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),t_=rn(({item:e,theme:t})=>Oe(k,{flexDirection:"column",marginBottom:1,children:[le(k,{children:Oe(b,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),le(k,{marginLeft:2,children:le(b,{color:t.colors.error,children:e.text})})]})),n_=rn(({item:e,theme:t})=>le(k,{flexDirection:"column",marginBottom:1,children:Oe(b,{color:t.colors.text,children:[le(b,{color:t.colors.accent,bold:!0,children:e.icon??">"}),le(b,{children:" "}),e.compactText??e.text]})})),r_=rn(({item:e,theme:t})=>le(k,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:Oe(b,{color:t.colors.info,children:[Oe(b,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),o_=rn(({item:e,theme:t})=>Oe(k,{flexDirection:"column",marginBottom:1,children:[le(k,{children:Oe(b,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),le(k,{marginLeft:2,children:le(b,{dimColor:!0,children:e.text})})]})),i_=rn(({item:e,theme:t,maxLines:n=1e3})=>{let r=Jn(()=>te("dark"),[]),o=t??r;switch(e.type){case"user":return le(YA,{item:e,theme:o});case"assistant":return le(qA,{item:e,theme:o,maxLines:n});case"system":return le(QA,{item:e,theme:o});case"tool_group":return le(ZA,{item:e,theme:o});case"thinking":return le(e_,{item:e,theme:o});case"error":return le(t_,{item:e,theme:o});case"event":return le(n_,{item:e,theme:o});case"info":return le(r_,{item:e,theme:o});case"hint":return le(o_,{item:e,theme:o});default:return le(k,{children:le(b,{dimColor:!0,children:"Unknown item type"})})}}),xS=rn(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:o})=>{let s=mS(t,e.color),a=e.text===" "?"":e.text,c=a||" ",l=o&&a?ds(a,o.start,o.end):"",u=o&&a?ds(a,0,o.start):a,m=o&&a?ds(a,o.end):"",p=r&&!o,g=!p&&e.color==="dim",x={bold:e.bold||p,italic:e.italic,dimColor:g};return Oe(k,{marginLeft:e.indent??0,children:[e.spinner&&n&&Oe(Ep,{children:[le(Sn,{color:t.colors.accent,theme:t}),le(b,{children:" "})]}),le(b,{color:p?t.colors.accent:s,...x,children:o&&a?Oe(Ep,{children:[u?le(b,{color:p?t.colors.accent:s,...x,children:u}):null,le(b,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:l}),m?le(b,{color:p?t.colors.accent:s,...x,children:m}):null]}):c})]})}),s_=rn(({section:e,theme:t,animateSpinners:n=!0})=>le(k,{flexDirection:"column",children:e.rows.map(r=>le(xS,{row:r,theme:t,animateSpinners:n},r.key))})),Oo=i(({items:e,isLoading:t=!1,maxLines:n=1e3,isThinking:r=!1,thinkingCharCount:o=0,thinkingContent:s="",streamingResponse:a="",currentTool:c,activeToolCalls:l,toolInputCharCount:u=0,toolInputContent:m="",iterationHistory:p=[],currentIteration:g=1,isCompacting:x=!1,agentMode:y,managedPhase:w,managedHarnessProfile:S,managedWorkerTitle:I,managedRound:$,managedMaxRounds:L,managedGlobalWorkBudget:G,managedBudgetUsage:N,managedBudgetApprovalRequired:C,lastLiveActivityLabel:J,viewportRows:ce,viewportWidth:we,scrollOffset:F=0,animateSpinners:X=!0,windowed:v=!1,showFullThinking:M=!1,showDetailedTools:Z=!1,showAllContent:Ce=!1,showLiveProgressRows:de=!0,selectedItemId:Be,expandedItemKeys:ie,onMetricsChange:se,onVisibleRowsChange:ne,rendererWindow:V,selectedTextRanges:ye,transcriptModel:it,visibleRowsOverride:be})=>{let Te=Jn(()=>te("dark"),[]),{stdout:Le}=zn(),Se=we??Le?.columns??80,pt=Jn(()=>it??us({items:e,viewportWidth:Se,isLoading:t,maxLines:n,isThinking:r,thinkingCharCount:o,thinkingContent:s,streamingResponse:a,currentTool:c,activeToolCalls:l,toolInputCharCount:u,toolInputContent:m,iterationHistory:p,currentIteration:g,isCompacting:x,managedAgentMode:y,managedPhase:w,managedHarnessProfile:S,managedWorkerTitle:I,managedRound:$,managedMaxRounds:L,managedGlobalWorkBudget:G,managedBudgetUsage:N,managedBudgetApprovalRequired:C,lastLiveActivityLabel:J,windowed:v,showFullThinking:M,showDetailedTools:Z,showAllContent:Ce,showLiveProgressRows:de,expandedItemKeys:ie}),[it,e,Se,t,n,r,o,s,a,c,l,u,m,p,g,x,y,w,S,I,$,L,G,N,C,J,v,M,Z,Ce,de,ie]),et=pt.staticSections,Je=pt.rows,A=pt.previewRows,_=Jn(()=>[...Je,...A],[A,Je]),Y=!(_.length>0)&&e.length===0&&!t,xe=Jn(()=>v||V||be?_:Je,[_,V,Je,be,v]),ze=Jn(()=>be||lS(xe,{viewportTop:V?Math.max(0,V.viewportTop):void 0,viewportHeight:V?Math.max(0,V.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:ce,scrollOffset:F,windowed:v}),[V,F,ce,be,v,xe]),ve=Jn(()=>be||v||V?ze:_,[_,V,ze,be,v]),Ae=Jn(()=>_,[_]),Dn=V?Math.max(0,V.viewportHeight):ce;return yS(()=>{se?.({scrollHeight:_.length,viewportHeight:V?Math.max(0,V.viewportHeight):Dn??_.length})},[_.length,Dn,se,V]),yS(()=>{ne?.({rows:ve,allRows:Ae})},[Ae,ne,ve]),Y?le(k,{paddingY:1,children:le(b,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):Oe(k,{flexDirection:"column",children:[!v&&et.length>0&&le(Ki,{items:et,children:i(Ie=>le(s_,{section:Ie,theme:Te,animateSpinners:X},Ie.key),"children")}),ve.map(Ie=>le(xS,{row:Ie,theme:Te,animateSpinners:X,selectedItem:Be?Ie.key.startsWith(`${Be}-`):!1,selectionRange:ye?.get(Ie.key)},Ie.key))]})},"MessageList");var a_=i(({role:e,content:t})=>{let n=Jn(()=>te("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return Oe(k,{flexDirection:"column",marginBottom:1,children:[le(b,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),le(b,{children:t})]})},"SimpleMessageDisplay");import{jsx as Ap,jsxs as Yu}from"react/jsx-runtime";import I_,{useMemo as _p}from"react";var c_="\u{1F504}",l_="\u2588",u_="\u2592",d_="\u2192",f_=" \xB7 ";function m_(e){switch(e){case"auto":return"auto";case"balanced":return"balanced";case"quick":return"quick";case"deep":return"deep";case"off":return"off";default:return e.toLowerCase()}}i(m_,"formatReasoningModeShort");function p_(e){switch(e){case"budget":case"B":return"B";case"effort":case"E":return"E";case"toggle":case"T":return"T";case"prompt":case"-":return"-";case"unknown":case"?":return"?";default:return e??""}}i(p_,"formatReasoningCapabilityShort");function g_(e){switch(e){case"off":return"dim";case"quick":return"green";case"balanced":return"yellow";case"deep":return"magenta";default:return"cyan"}}i(g_,"getReasoningColor");function wS(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(wS,"formatTokenCount");function h_(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${l_.repeat(t)}${u_.repeat(n)}`}i(h_,"createMiniProgressBar");function y_(e,t,n){if(t===0)return"green";let r=e/t*100,o=n*(2/3);return r>=n?"red":r>=o?"yellow":"green"}i(y_,"getContextColor");function x_(e){switch(e.toLowerCase()){case"plan":return"blue";case"accept-edits":return"green";case"auto":case"auto-in-project":return"warning";default:return"magenta"}}i(x_,"getPermissionModeColor");function w_(e,t){let n=Yi(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}i(w_,"buildPermissionModeText");function T_(e){let t=e.toLowerCase();return t.includes("read")||t.includes("view")||t.includes("search")||t.includes("list")||t.includes("find")||t.includes("browser")||t.includes("get")?"Read":t.includes("write")||t.includes("replace")||t.includes("edit")||t.includes("modify")?"Edit":t.includes("command")||t.includes("bash")||t.includes("terminal")?"Bash":t.includes("ask")||t.includes("notify")||t.includes("user")||t.includes("question")?"Ask":t.includes("think")||t.includes("reason")?"Think":e}i(T_,"formatToolAction");function S_(e){switch(e){case"H0_DIRECT":return"H0";case"H1_EXECUTE_EVAL":return"H1";case"H2_PLAN_EXECUTE_EVAL":return"H2";default:return e}}i(S_,"formatHarnessProfileShort");function Vu(e,t){return t&&t>0?`${e} (${t} chars)`:e}i(Vu,"formatThinkingStatus");function zu(e,t,n){let r=T_(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}i(zu,"formatToolStatus");function Mp({activeToolCount:e,currentTool:t,isThinkingActive:n,thinkingCharCount:r,isCompacting:o,toolInputCharCount:s,toolInputContent:a,managedPhase:c,managedHarnessProfile:l,managedWorkerTitle:u,managedIdleWaiting:m,managedIdleWaitingPendingCount:p}){let g=e&&e>0?`${e} tool${e===1?"":"s"} running`:void 0;if(o)return"Compacting";if(c==="routing")return g?`Routing - ${g}`:t?`Routing - ${zu(t,s,a)}`:n?Vu("Routing",r):"Routing";if(c==="preflight"){let x=u??"Scout";return g?`${x} - ${g}`:t?`${x} - ${zu(t,s,a)}`:n?Vu(x,r):x}if(l){let y=`${S_(l)}${u?` - ${u}`:""}`;if(m===!0&&!g&&!t&&!n){let w=p??0,S=w>1?`waiting for ${w} children`:w===1?"waiting for 1 child":"idle - resuming";return`${y} - ${S}`}return g?`${y} - ${g}`:t?`${y} - ${zu(t,s,a)}`:n?Vu(y,r):y}if(g)return g;if(t)return zu(t,s,a);if(n)return Vu("Thinking",r)}i(Mp,"buildBusyStatusText");function C_({agentMode:e,managedPhase:t,managedHarnessProfile:n,managedRound:r,managedMaxRounds:o,managedGlobalWorkBudget:s,managedBudgetUsage:a,currentIteration:c,maxIter:l}){let u=[];return t==="routing"||t==="preflight"||(n&&r&&o&&r>1&&u.push({label:"Round",current:r,max:o}),n&&s&&typeof a=="number"?u.push({label:"Work",current:a,max:s}):e==="sa"&&c&&l&&u.push({label:"Iter",current:c,max:l})),u}i(C_,"resolveIterationSegments");function b_(e){if(e.length!==0)return`${c_} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(f_)}`}i(b_,"formatLabeledIterationStatus");function v_(e){let{sessionId:t,permissionMode:n,agentMode:r,provider:o,model:s,tokenUsage:a,currentTool:c,activeToolCount:l,thinking:u,isThinkingActive:m,thinkingCharCount:p,reasoningMode:g=u?"auto":"off",reasoningCapability:x,isCompacting:y,toolInputCharCount:w,toolInputContent:S,currentIteration:I,maxIter:$,contextUsage:L,showBusyStatus:G=!0,managedPhase:N,managedHarnessProfile:C,managedWorkerTitle:J,managedRound:ce,managedMaxRounds:we,managedGlobalWorkBudget:F,managedBudgetUsage:X,managedIdleWaiting:v,managedIdleWaitingPendingCount:M}=e,Z=[{id:"agent-mode",text:`KodaX - ${r.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:w_(n,e.autoModeEngine),color:x_(n)}],Ce=m_(g),de=p_(x);Z.push({id:"reasoning-mode",text:x?`${Ce}/${de}`:Ce,color:g_(g)});let Be=C_({agentMode:r,managedPhase:N,managedHarnessProfile:C,managedRound:ce,managedMaxRounds:we,managedGlobalWorkBudget:F,managedBudgetUsage:X,currentIteration:I,maxIter:$}),ie=b_(Be);if(ie){let ne=Math.max(...Be.map(ye=>ye.current/ye.max)),V="green";ne>=.8?V="red":ne>=.5&&(V="yellow"),Z.push({id:"iteration-status",text:ie,color:V})}Z.push({id:"session-id",text:t,color:"dim"});let se=G?Mp({activeToolCount:l,currentTool:c,isThinkingActive:m,thinkingCharCount:p,isCompacting:y,toolInputCharCount:w,toolInputContent:S,managedPhase:N,managedHarnessProfile:C,managedWorkerTitle:J,managedIdleWaiting:v,managedIdleWaitingPendingCount:M}):void 0;if(se&&Z.push({id:"busy-status",text:se,color:"dim"}),Z.push({id:"provider-model",text:`${o}/${s}`,color:"secondary"}),L&&L.contextWindow!==0){let ne=Math.round(L.currentTokens/L.contextWindow*100),V=wS(L.currentTokens),ye=wS(L.contextWindow),it=h_(ne);Z.push({id:"context-usage",text:`${V}/${ye} ${it} ${ne}%`,color:y_(L.currentTokens,L.contextWindow,L.triggerPercent)})}return a&&Z.push({id:"token-usage",text:`${a.input}${d_}${a.output} (${a.total})`,color:"dim"}),Z}i(v_,"buildStatusBarSegments");function Xu(e){let t=v_(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}i(Xu,"buildStatusBarViewModel");function k_(e,t){if(e.color)return t.colors[e.color]??e.color;switch(e.tone){case"primary":return t.colors.primary;case"accent":return t.colors.accent;case"success":return t.colors.success;case"warning":return t.colors.warning;case"error":return t.colors.error;default:return t.colors.dim}}i(k_,"resolveViewModelSegmentColor");var fs=i(({viewModel:e,...t})=>{let n=_p(()=>te("dark"),[]),r=_p(()=>e??Xu(t),[t,e]);return Ap(k,{paddingX:1,children:r.segments.map((o,s)=>Yu(I_.Fragment,{children:[Ap(b,{color:k_(o,n),bold:o.bold,children:o.text}),s<r.segments.length-1?Ap(b,{dimColor:!0,children:" | "}):null]},o.id))})},"StatusBar"),R_=i(({permissionMode:e,provider:t,model:n})=>{let r=_p(()=>te("dark"),[]);return Yu(k,{children:[Yu(b,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),Yu(b,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as Kr,jsxs as Ju}from"react/jsx-runtime";import{useState as Pp,useCallback as qu,useMemo as TS}from"react";function Qu(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(Qu,"generateId");function E_(e){let t={id:e.id,timestamp:e.timestamp};switch(e.role){case"user":return{...t,type:"user",text:e.content};case"assistant":return{...t,type:"assistant",text:e.content};case"system":return{...t,type:"system",text:e.content};default:return{...t,type:"info",text:e.content}}}i(E_,"messageToHistoryItem");var M_=i(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:o="ama"})=>{let{stdout:s}=zn(),a=TS(()=>te("dark"),[]),[c,l]=Pp({messages:[],isLoading:!1,sessionId:Qu()}),[u,m]=Pp(null),[p,g]=Pp(),x=qu(async I=>{if(!I.trim())return;let $={id:Qu(),role:"user",content:I,timestamp:Date.now()};l(L=>({...L,messages:[...L.messages,$],isLoading:!0}));try{await n(I)}catch(L){let G={id:Qu(),role:"system",content:`Error: ${L instanceof Error?L.message:"Unknown error"}`,timestamp:Date.now()};l(N=>({...N,messages:[...N.messages,G],isLoading:!1}))}finally{l(L=>({...L,isLoading:!1}))}},[n]),y=qu((I,$)=>{let L={id:Qu(),role:I,content:$,timestamp:Date.now()};l(G=>({...G,messages:[...G.messages,L]}))},[]),w=qu((I,$)=>{m({input:I,output:$,total:I+$})},[]),S=qu(I=>{g(I)},[]);return Ju(k,{flexDirection:"column",children:[Kr(k,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:Kr(Oo,{items:c.messages.map(E_),isLoading:c.isLoading})}),Kr(k,{flexShrink:0,children:Kr(ss,{onSubmit:i(I=>x(I.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),Kr(k,{flexShrink:0,children:Kr(fs,{sessionId:c.sessionId,permissionMode:r,agentMode:o,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),A_=i(({model:e,provider:t,onInput:n})=>{let r=TS(()=>te("dark"),[]);return Ju(k,{flexDirection:"column",children:[Ju(k,{marginBottom:1,children:[Kr(b,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),Ju(b,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),Kr(ss,{onSubmit:i(o=>n(o.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as __}from"react/jsx-runtime";var $p=i(({top:e,topRows:t=0,transcript:n,renderTranscriptWindow:r,footer:o,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:m=0,viewportHeight:p=0,stickyScroll:g=!0,scrollRef:x,onScrollTopChange:y,onStickyChange:w,onWindowChange:S})=>__(Im,{width:l,top:e,topRows:t,stickyHeader:a,jumpToLatest:c,scrollable:n,renderScrollableWindow:r,overlay:s,bottom:o,scrollTop:u,scrollHeight:m,viewportHeight:p,stickyScroll:g,scrollRef:x,onScrollTopChange:y,onStickyChange:w,onWindowChange:S}),"FullscreenTranscriptLayout");import{jsx as SS}from"react/jsx-runtime";function ms({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:o=!1,matchNavigation:s=!1,dismissAction:a}){let c=[];return o&&c.push("\u2190/\u2192 browse"),e&&c.push("C copy"),t&&c.push("I tool input"),n&&c.push("Mouse select copies"),r&&c.push("V details"),s&&c.push("N/Shift+N matches"),a==="clear"&&c.push("Esc clear"),a==="close-search"&&c.push("Esc close search"),c.length>0?c.join(" | "):void 0}i(ms,"buildMessageActionsText");var Lp=i(({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:o=!1,matchNavigation:s=!1,dismissAction:a})=>{let c=te("dark"),l=ms({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:r,selectionNavigation:o,matchNavigation:s,dismissAction:a});return l?SS(k,{paddingX:1,children:SS(b,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as CS}from"react/jsx-runtime";function Op({itemSummary:e,itemKind:t,position:n,detailState:r="compact"}){if(!e||!n||n.total<=0)return;let o=r==="expanded"?"expanded":"compact",s=t?`${t}: `:"";return`Selected item ${n.current}/${n.total}: ${s}${e} | ${o}`}i(Op,"buildMessageSelectorText");var P_=i(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let o=te("dark"),s=Op({itemSummary:e,itemKind:t,position:n,detailState:r});return s?CS(k,{paddingX:1,children:CS(b,{color:o.colors.dim,children:s})}):null},"MessageSelector");import{jsx as ps,jsxs as $_}from"react/jsx-runtime";import{useMemo as bS}from"react";function Zu(e,t){return Math.max(1,Kt(e.length>0?e.split(`
|
|
273
|
-
`):[""],Math.max(1,t),0,0).visualLines.length)}i(Zu,"countWrappedRows");var Dp=i(({browse:e,selection:t,search:n,chromeMode:r="inline",...o})=>{let s=r==="inline",a=t?.itemSummary,c=t?.position,l=t?.itemKind,u=t?.detailState??"compact",m=t?.copyCapabilities,p=m?.message??!1,g=m?.toolInput??!1,x=m?.copyOnSelect??!1,y=t?.toggleDetail??!1,w=t?.navigationCapabilities?.selection??!1,S=n?.statusText,I=n?.matches?.length??0,$=n?.surface,L=o.viewportWidth??80,G=Math.max(1,L-2),N=n?.query?.trim()?"close-search":a||p||g||y||w?"clear":void 0,C=Op({itemSummary:a,itemKind:l,position:c,detailState:u}),J=bS(()=>ms({copyMessage:p,copyToolInput:g,copyOnSelect:x,toggleDetail:y,selectionNavigation:w,matchNavigation:!!S&&I>0,dismissAction:N}),[p,g,w,y,N,I,S,x]),ce=bS(()=>{if(!s)return 0;let F=0;return e?.hintText&&(F+=Zu(e.hintText,G)),C&&(F+=Zu(C,G)),J&&(F+=Zu(J,G)),S&&(F+=Zu(S,G)),$&&(F+=1),F},[J,e?.hintText,G,s,S,$,C]),we=typeof o.viewportRows=="number"?Math.max(1,o.viewportRows-ce):o.viewportRows;return $_(k,{flexDirection:"column",flexGrow:o.windowed?0:1,children:[s&&e?.hintText?ps(k,{paddingX:1,children:ps(b,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||g||x||y||w||I>0)?ps(Lp,{copyMessage:p,copyToolInput:g,copyOnSelect:x,toggleDetail:y,selectionNavigation:w,matchNavigation:!!S&&I>0,dismissAction:N}):null,s&&S?ps(k,{paddingX:1,children:ps(b,{dimColor:!0,children:S})}):null,s?$:null,ps(Oo,{...o,viewportRows:we})]})},"TranscriptViewport");import{jsx as vS}from"react/jsx-runtime";var Np=i(e=>vS(k,{flexDirection:"column",children:vS(ss,{...e})}),"PromptComposer");import{jsx as Do,jsxs as ed}from"react/jsx-runtime";import IS from"react";var kS=" \xB7 ",td=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=te("dark");return t.length===0?null:Do(k,{flexGrow:1,children:t.map((r,o)=>ed(IS.Fragment,{children:[Do(b,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?Do(b,{dimColor:!0,children:kS}):null]},r.id))})},"PromptFooterLeftSide"),nd=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=te("dark");return t.length===0?null:Do(k,{justifyContent:"flex-end",children:t.map((r,o)=>ed(IS.Fragment,{children:[Do(b,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?Do(b,{dimColor:!0,children:kS}):null]},r.id))})},"PromptFooterRightSide"),rd=i(({left:e,right:t,queued:n,stashNotice:r,notifications:o,inlineNotices:s,activityBar:a,todoSurface:c,composer:l,inlineSuggestions:u,helpSurface:m,taskBar:p,statusLine:g,inlineDialogs:x})=>ed(k,{flexDirection:"column",children:[e||t?ed(k,{paddingX:1,children:[Do(k,{flexGrow:1,children:e}),t]}):null,n,r,o,s,a,c,l,u,x,m,p,g]}),"PromptFooter");import{jsx as Bp,jsxs as RS}from"react/jsx-runtime";var Hp=i(({sections:e,title:t="Help"})=>{let n=te("dark"),r=e.filter(o=>o.items.length>0);return r.length===0?null:RS(k,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[Bp(b,{color:n.colors.accent,bold:!0,children:t}),r.map(o=>RS(k,{flexDirection:"column",children:[Bp(b,{color:n.colors.primary,bold:!0,children:o.title}),Bp(b,{dimColor:!0,children:o.items.map(s=>s.label).join(" | ")})]},o.id))]})},"PromptHelpMenu");import{jsx as ES}from"react/jsx-runtime";import{createContext as MS,useContext as AS,useReducer as L_,useCallback as Ot,useMemo as O_}from"react";var D_=150;function od(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(od,"generateId");function Fp(e){return{...e,id:od(),timestamp:Date.now()}}i(Fp,"createHistoryItem");function Wp(e){return{...e,id:od(),startTime:Date.now()}}i(Wp,"createToolCall");function N_(e,t){switch(t.type){case"SET_STREAMING_STATE":return{...e,streamingState:t.payload};case"APPEND_TO_RESPONSE":return{...e,currentResponse:e.currentResponse+t.payload};case"CLEAR_RESPONSE":return{...e,currentResponse:""};case"ADD_HISTORY_ITEM":let n=[...e.history,t.payload];if(n.length<=D_)return{...e,history:n};let r=0,o=0;for(let a=n.length-1;a>=0;a--)if(n[a]?.type==="user"&&(r++,r>50)){o=a;break}let s=o>0?n.slice(o):n;return{...e,history:s};case"UPDATE_HISTORY_ITEM":return{...e,history:e.history.map(a=>a.id===t.payload.id?{...a,...t.payload.updates}:a)};case"CLEAR_HISTORY":return{...e,history:[]};case"ADD_TOOL_CALL":return{...e,pendingToolCalls:[...e.pendingToolCalls,t.payload]};case"UPDATE_TOOL_CALL":return{...e,pendingToolCalls:e.pendingToolCalls.map(a=>a.id===t.payload.id?{...a,...t.payload.updates}:a)};case"CLEAR_TOOL_CALLS":return{...e,pendingToolCalls:[]};case"SET_SESSION_ID":return{...e,sessionId:t.payload};case"SET_PROVIDER":return{...e,provider:t.payload};case"SET_MODEL":return{...e,model:t.payload};case"SET_TOKEN_USAGE":return{...e,tokenUsage:t.payload};case"SET_ERROR":return{...e,error:t.payload};case"SET_LOADING":return{...e,isLoading:t.payload};case"RESET_STATE":return{...Em,sessionId:e.sessionId};default:return e}}i(N_,"uiReducer");var _S=MS(null),PS=MS(null);function id({children:e,initialState:t}){let[n,r]=L_(N_,{...Em,...t}),o=Ot(N=>{r({type:"SET_STREAMING_STATE",payload:N})},[]),s=Ot(N=>{r({type:"APPEND_TO_RESPONSE",payload:N})},[]),a=Ot(()=>{r({type:"CLEAR_RESPONSE"})},[]),c=Ot(N=>{let C=Fp(N);r({type:"ADD_HISTORY_ITEM",payload:C})},[]),l=Ot((N,C)=>{r({type:"UPDATE_HISTORY_ITEM",payload:{id:N,updates:C}})},[]),u=Ot(()=>{r({type:"CLEAR_HISTORY"})},[]),m=Ot(N=>{let C=Wp(N);return r({type:"ADD_TOOL_CALL",payload:C}),C.id},[]),p=Ot((N,C)=>{r({type:"UPDATE_TOOL_CALL",payload:{id:N,updates:C}})},[]),g=Ot(()=>{r({type:"CLEAR_TOOL_CALLS"})},[]),x=Ot(N=>{r({type:"SET_SESSION_ID",payload:N})},[]),y=Ot(N=>{r({type:"SET_MODE",payload:N})},[]),w=Ot(N=>{r({type:"SET_PROVIDER",payload:N})},[]),S=Ot(N=>{r({type:"SET_MODEL",payload:N})},[]),I=Ot(N=>{r({type:"SET_TOKEN_USAGE",payload:N})},[]),$=Ot(N=>{r({type:"SET_ERROR",payload:N})},[]),L=Ot(N=>{r({type:"SET_LOADING",payload:N})},[]),G=O_(()=>({setStreamingState:o,appendToResponse:s,clearResponse:a,addHistoryItem:c,updateHistoryItem:l,clearHistory:u,addToolCall:m,updateToolCall:p,clearToolCalls:g,setSessionId:x,setMode:y,setProvider:w,setModel:S,setTokenUsage:I,setError:$,setLoading:L}),[o,s,a,c,l,u,m,p,g,x,y,w,S,I,$,L]);return ES(_S.Provider,{value:n,children:ES(PS.Provider,{value:G,children:e})})}i(id,"UIStateProvider");function Xa(){let e=AS(_S);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}i(Xa,"useUIState");function Ya(){let e=AS(PS);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}i(Ya,"useUIActions");function $S(){let e=Xa(),t=Ya();return{state:e,actions:t}}i($S,"useUI");function Up(){return te()}i(Up,"useTheme");import{jsxs as Vr,jsx as sd,Fragment as B_}from"react/jsx-runtime";import{useMemo as H_}from"react";var F_=80,W_=7,U_={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function j_(e,t,n){if(t<=n)return{start:0,end:t};let r=Math.floor(n/2),o=e-r,s=o+n;return o<0?(o=0,s=n):s>t&&(s=t,o=t-n),{start:o,end:s}}i(j_,"getVisibleRange");function G_({suggestion:e,isSelected:t,width:n}){let r=Up(),o=e.icon||e.type&&U_[e.type]||"",s=o?Kn(o)+1:0,a=Kn(e.displayText||e.text),c=e.description?Kn(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,m=Math.max(0,u),p=da(e.displayText||e.text,l),g=e.description?da(e.description,m):"";return Vr(k,{children:[o&&Vr(b,{color:t?r.colors.accent:r.colors.dim,children:[o," "]}),sd(b,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),g&&Vr(B_,{children:[sd(b,{children:" "}),sd(b,{color:r.colors.dim,children:da(e.description||"",m)})]}),t&&Vr(b,{color:r.colors.accent,children:[" ","\u25C0"]})]})}i(G_,"SuggestionItem");function ad({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=W_,width:o=F_,showCount:s=!1}){let a=Up();if(!n||e.length===0)return null;let{start:c,end:l}=H_(()=>j_(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return Vr(k,{flexDirection:"column",marginLeft:2,children:[c>0&&Vr(b,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((m,p)=>{let x=c+p===t;return sd(G_,{suggestion:m,isSelected:x,width:o},m.id)}),l<e.length&&Vr(b,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&Vr(b,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}i(ad,"SuggestionsDisplay");import{jsx as gs,jsxs as K_}from"react/jsx-runtime";var jp=i(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let o=Po(),s=te("dark");if(n)return null;if(!o)return e?gs(k,{height:8}):null;let{state:a,suggestions:c}=o;return a.visible&&c.length>0?r==="overlay"?K_(k,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[gs(b,{color:s.colors.accent,bold:!0,children:"Suggestions"}),gs(ad,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):gs(k,{height:8,children:gs(ad,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?gs(k,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as $n,jsx as Cn,Fragment as Gp}from"react/jsx-runtime";import V_,{useEffect as z_,useState as X_}from"react";var hs=15,LS=Math.max(1,hs-2),Kp=i(({confirm:e,request:t})=>e?$n(k,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[$n(b,{color:"yellow",bold:!0,children:[Q("dialog.confirm")," ",e.prompt]}),e.planContent?Cn(Y_,{content:e.planContent}):null,e.instruction?Cn(b,{dimColor:!0,children:e.instruction}):null]}):t?$n(k,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?$n(Gp,{children:[$n(b,{color:"cyan",bold:!0,children:[Q("dialog.select")," ",t.title]}),(()=>{let n=t.options??[],r=t.visibleSelectOptions??5,o=t.focusedIndex??0,s=n.length,a=0;if(s>r){let u=Math.floor(r/2);a=Math.max(0,Math.min(o-u,s-r))}let c=a,l=Math.max(0,s-a-r);return $n(Gp,{children:[c>0?Cn(b,{dimColor:!0,children:Q("select.more_above",{count:c})}):null,n.slice(a,a+r).map((u,m)=>{let p=a+m,g=p===o,x=t.selectedIndices?.includes(p)??!1,y=g?"\u276F ":" ",w=x?" \u2713":"",S=u.description?` - ${u.description}`:"";return Cn(b,{color:g?"cyan":void 0,dimColor:!g,children:`${y}${u.label}${S}${w}`},`${u.value}-${p}`)}),l>0?Cn(b,{dimColor:!0,children:Q("select.more_below",{count:l})}):null]})})(),Cn(b,{dimColor:!0,children:t.multiSelect?Q("select.multiselect_hint"):Q("select.navigate_hint")})]}):$n(Gp,{children:[$n(b,{color:"cyan",bold:!0,children:[Q("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0?Cn(b,{dimColor:!0,children:`${Q("input.default")} ${t.defaultValue}`}):null,Cn(b,{dimColor:!0,children:`${Q("input.value")} ${t.buffer||Q("input.type_response")}`}),Cn(b,{dimColor:!0,children:Q("select.confirm_hint")})]}),t.error?Cn(b,{color:"red",children:t.error}):null]}):null,"DialogSurface"),Y_=i(({content:e})=>{let t=V_.useMemo(()=>e.split(`
|
|
274
|
-
`),[e]),n=t.length,r=n>hs,[o,s]=X_(0);z_(()=>{s(u=>{let m=Math.max(0,n-hs);return u>m?m:u})},[n]),nu((u,m)=>{if(!r)return;let p=Math.max(0,n-hs);m.upArrow?s(g=>Math.max(0,g-1)):m.downArrow?s(g=>Math.min(p,g+1)):m.pageUp?s(g=>Math.max(0,g-LS)):m.pageDown&&s(g=>Math.min(p,g+LS))},{isActive:!0});let a=t.slice(o,o+hs),c=o,l=Math.max(0,n-o-hs);return $n(k,{flexDirection:"column",marginTop:1,children:[r&&c>0?$n(b,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((u,m)=>Cn(b,{children:u},`plan-line-${o+m}`)),r&&l>0?$n(b,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,r?Cn(b,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as qa,jsx as q_}from"react/jsx-runtime";function OS(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}i(OS,"normalizePendingPreview");function cd(e){if(e.length===0)return;let t=OS(e[e.length-1]??"");return e.length===1?`Queued 1 follow-up: ${t} (Esc removes it)`:`Queued ${e.length} follow-ups. Latest: ${t} (Esc removes latest)`}i(cd,"formatPendingInputsSummary");function DS(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:OS(n)}))}i(DS,"formatPendingInputsLines");var Vp=i(({pendingInputs:e})=>{let t=DS(e);if(t.length===0)return null;let n=te("dark");return qa(k,{flexDirection:"column",children:[t.map(r=>qa(k,{children:[qa(b,{color:n.colors.hint,children:["\u23F3"," "]}),qa(b,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),q_(k,{children:qa(b,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as NS}from"react/jsx-runtime";function Q_(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}i(Q_,"resolveNotificationColor");var ld=i(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=te("dark");return t.length===0?null:NS(k,{flexDirection:"column",paddingX:1,children:t.map(r=>NS(b,{color:Q_(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as BS}from"react/jsx-runtime";var zp=i(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=te("dark");return BS(k,{flexDirection:"column",paddingX:1,children:t.map((r,o)=>BS(b,{color:n.colors.dim,children:r},`${r}-${o}`))})},"StatusNoticesSurface");import{jsxs as HS,jsx as J_}from"react/jsx-runtime";var ud=i(({text:e})=>{let t=e?.trim();if(!t)return null;let n=te("dark");return HS(k,{paddingX:1,children:[HS(b,{color:n.colors.hint,children:["\u22EF"," "]}),J_(b,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as No,jsxs as Z_}from"react/jsx-runtime";function FS({text:e,accent:t=!1,selected:n=!1}){let r=te("dark");return No(k,{marginRight:1,children:No(b,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}i(FS,"Pill");var dd=i(({items:e,overflowLabel:t,ctaHint:n,showSpinner:r=!1})=>{let o=e.filter(s=>s.label.trim().length>0);return o.length===0&&!t&&!n&&!r?null:Z_(k,{flexDirection:"row",paddingX:1,children:[r?No(k,{marginRight:1,children:No(Sn,{})}):null,o.map(s=>No(FS,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?No(FS,{text:t}):null,n?No(b,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import WS,{createContext as jS,useContext as GS,useReducer as eP,useCallback as Fe,useRef as tP,useEffect as US}from"react";function nP(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(nP,"isMainThreadPrompt");function qp(){return Un().getSnapshot().filter(nP)}i(qp,"getMainThreadPrompts");function Xp(){return qp().map(e=>e.content)}i(Xp,"getMainThreadPromptContents");var Yp={state:tn.Idle,currentResponse:"",error:void 0,abortController:void 0,isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:"",iterationHistory:[],currentIteration:1,maxIter:200,isCompacting:!1,pendingInputs:[]};function Qp(){let e={...Yp,pendingInputs:Xp()},t=new Set,n="",r="",o=0,s=null,a=!1,c=80,l=i(()=>{for(let y of t)y(e)},"notify"),u=i(()=>{let y=Xp();if(y.length===e.pendingInputs.length){let w=!0;for(let S=0;S<y.length;S++)if(y[S]!==e.pendingInputs[S]){w=!1;break}if(w)return}e={...e,pendingInputs:y},l()},"syncReactStateFromQueue"),m=Un().subscribe(()=>{u()}),p=i(()=>Un().dequeue({maxPriority:"user",mode:"prompt"}).map(w=>w.content),"drainOurSlice"),g=i(()=>{if(s&&(clearTimeout(s),s=null),n||r||o>0){let w=e.thinkingContent+r,S=r?w.length:e.thinkingCharCount+o;e={...e,currentResponse:e.currentResponse+n,thinkingContent:w,thinkingCharCount:S,...r||o>0?{isThinking:!0}:{}},n="",r="",o=0,l()}},"flushPendingUpdates"),x=i(()=>{s||(s=setTimeout(g,c))},"scheduleFlush");return{getState:i(()=>e,"getState"),setState:i(y=>{g(),e={...e,state:y},l()},"setState"),startStreaming:i(()=>{a=!1,n="",r="",o=0,s&&(clearTimeout(s),s=null),e={...e,state:tn.Responding,currentResponse:"",abortController:new AbortController,error:void 0},l()},"startStreaming"),stopStreaming:i(()=>{g(),e={...e,state:tn.Idle,abortController:void 0},l()},"stopStreaming"),appendResponse:i(y=>{a||(n+=y,x())},"appendResponse"),clearResponse:i(()=>{g(),e={...e,currentResponse:""},l()},"clearResponse"),setError:i(y=>{g(),e={...e,error:y,state:y?tn.Idle:e.state},l()},"setError"),abort:i(y=>{a=!0,g(),e.abortController?.abort(),n="",r="",o=0,s&&(clearTimeout(s),s=null),y?.preservePendingInputs||p(),e={...e,state:tn.Idle,abortController:void 0},l()},"abort"),reset:i(()=>{a=!0,g(),e.abortController?.abort(),n="",r="",o=0,s&&(clearTimeout(s),s=null),p(),e={...Yp,pendingInputs:Xp()},a=!1,l()},"reset"),isStreaming:i(()=>e.state===tn.Responding||e.state===tn.WaitingForConfirmation,"isStreaming"),subscribe:i(y=>(t.add(y),()=>{t.delete(y)}),"subscribe"),startThinking:i(()=>{g(),e={...e,isThinking:!0,thinkingCharCount:0,thinkingContent:""},l()},"startThinking"),appendThinkingChars:i(y=>{a||(o+=y,x())},"appendThinkingChars"),appendThinkingContent:i(y=>{a||(r+=y,x())},"appendThinkingContent"),stopThinking:i(()=>{g(),e={...e,isThinking:!1,thinkingCharCount:0},l()},"stopThinking"),clearThinkingContent:i(()=>{g(),e={...e,isThinking:!1,thinkingCharCount:0,thinkingContent:""},l()},"clearThinkingContent"),setCurrentTool:i(y=>{g(),e={...e,currentTool:y,toolInputCharCount:0,toolInputContent:""},l()},"setCurrentTool"),appendToolInputChars:i(y=>{e={...e,toolInputCharCount:e.toolInputCharCount+y},l()},"appendToolInputChars"),appendToolInputContent:i(y=>{e.toolInputContent.length<240&&(e={...e,toolInputContent:(e.toolInputContent+y).slice(0,240)},l())},"appendToolInputContent"),clearToolInputContent:i(()=>{e={...e,toolInputContent:""},l()},"clearToolInputContent"),getSignal:i(()=>e.abortController?.signal,"getSignal"),getFullResponse:i(()=>e.currentResponse+n,"getFullResponse"),getThinkingContent:i(()=>e.thinkingContent+r,"getThinkingContent"),startNewIteration:i(y=>{g(),e.thinkingContent||e.currentResponse?e={...e,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:y}:e={...e,currentIteration:y},l()},"startNewIteration"),clearIterationHistory:i(()=>{g(),e={...e,iterationHistory:[],currentIteration:1,maxIter:Yp.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},l()},"clearIterationHistory"),setMaxIter:i(y=>{g(),e={...e,maxIter:y},l()},"setMaxIter"),startCompacting:i(()=>{g(),e={...e,isCompacting:!0},l()},"startCompacting"),stopCompacting:i(()=>{g(),e={...e,isCompacting:!1},l()},"stopCompacting"),addPendingInput:i(y=>{let w=y.trim();w&&(qp().length>=5||(g(),Un().enqueue({priority:"user",mode:"prompt",content:w})))},"addPendingInput"),removeLastPendingInput:i(()=>{let y=qp(),w=y[y.length-1];w&&(g(),Un().dequeue({maxPriority:"user",mode:"prompt",id:w.id}))},"removeLastPendingInput"),shiftPendingInput:i(()=>(g(),Un().dequeue({maxPriority:"user",mode:"prompt",limit:1})[0]?.content),"shiftPendingInput"),clearPendingInputs:i(()=>{g(),p()},"clearPendingInputs"),consumePendingInputs:i(()=>(g(),p()),"consumePendingInputs"),dispose:i(()=>{m()},"dispose")}}i(Qp,"createStreamingManager");var KS=jS(null),VS=jS(null);function fd({children:e,onStateChange:t}){let n=tP(Qp()),[,r]=eP(ie=>ie+1,0);US(()=>n.current.subscribe(se=>{r(),t?.(se)}),[t]),US(()=>{let ie=n.current;return()=>{ie.dispose()}},[]);let o=Fe(()=>{n.current.startStreaming()},[]),s=Fe(()=>{n.current.stopStreaming()},[]),a=Fe(ie=>{n.current.appendResponse(ie)},[]),c=Fe(()=>{n.current.clearResponse()},[]),l=Fe(ie=>{n.current.setError(ie)},[]),u=Fe(ie=>{n.current.abort(ie)},[]),m=Fe(()=>{n.current.reset()},[]),p=Fe(()=>{n.current.startThinking()},[]),g=Fe(ie=>{n.current.appendThinkingChars(ie)},[]),x=Fe(ie=>{n.current.appendThinkingContent(ie)},[]),y=Fe(()=>{n.current.stopThinking()},[]),w=Fe(()=>{n.current.clearThinkingContent()},[]),S=Fe(ie=>{n.current.setCurrentTool(ie)},[]),I=Fe(ie=>{n.current.appendToolInputChars(ie)},[]),$=Fe(ie=>{n.current.appendToolInputContent(ie)},[]),L=Fe(()=>{n.current.clearToolInputContent()},[]),G=Fe(()=>n.current.getSignal(),[]),N=Fe(()=>n.current.getFullResponse(),[]),C=Fe(()=>n.current.getThinkingContent(),[]),J=Fe(ie=>{n.current.startNewIteration(ie)},[]),ce=Fe(()=>{n.current.clearIterationHistory()},[]),we=Fe(ie=>{n.current.setMaxIter(ie)},[]),F=Fe(()=>{n.current.startCompacting()},[]),X=Fe(()=>{n.current.stopCompacting()},[]),v=Fe(ie=>{n.current.addPendingInput(ie)},[]),M=Fe(()=>{n.current.removeLastPendingInput()},[]),Z=Fe(()=>n.current.shiftPendingInput(),[]),Ce=Fe(()=>{n.current.clearPendingInputs()},[]),de=Fe(()=>n.current.consumePendingInputs(),[]),Be={startStreaming:o,stopStreaming:s,appendResponse:a,clearResponse:c,setError:l,abort:u,reset:m,startThinking:p,appendThinkingChars:g,appendThinkingContent:x,stopThinking:y,clearThinkingContent:w,setCurrentTool:S,appendToolInputChars:I,appendToolInputContent:$,clearToolInputContent:L,getSignal:G,getFullResponse:N,getThinkingContent:C,startNewIteration:J,clearIterationHistory:ce,setMaxIter:we,startCompacting:F,stopCompacting:X,addPendingInput:v,removeLastPendingInput:M,shiftPendingInput:Z,clearPendingInputs:Ce,consumePendingInputs:de};return WS.createElement(KS.Provider,{value:n.current.getState()},WS.createElement(VS.Provider,{value:Be},e))}i(fd,"StreamingProvider");function Ja(){let e=GS(KS);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}i(Ja,"useStreamingState");function Za(){let e=GS(VS);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}i(Za,"useStreamingActions");function zS(){let e=Ja(),t=Za(),n=e.state===tn.Responding||e.state===tn.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}i(zS,"useStreaming");import{useCallback as rP,useRef as oP}from"react";var iP=500;function sP(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:o=!0}=e,s=oP(0),{exit:a}=Nr(),c=rP(l=>{if(!o)return!1;if(l.name==="escape"){let u=Date.now(),m=u-s.current<iP;return s.current=u,m&&(l.name="escape-escape"),n?.(),t?.(l),!0}return l.ctrl&&l.name==="c"?(r?.(),t?.(l),!0):l.ctrl&&l.name==="d"?(a(),!0):(t?.(l),!1)},[o,a,r,n,t]);return nn(c,{isActive:o}),{lastEscTime:s.current}}i(sP,"useKeypress");function aP(e){return{is:i((t,n)=>!(e.name!==t||n?.ctrl!==void 0&&e.ctrl!==n.ctrl||n?.shift!==void 0&&e.shift!==n.shift||n?.meta!==void 0&&e.meta!==n.meta),"is"),isCtrl:i(t=>e.ctrl&&e.name===t,"isCtrl"),isShift:i(t=>e.shift&&e.name===t,"isShift"),isArrow:i(()=>["up","down","left","right"].includes(e.name),"isArrow"),isChar:i(()=>e.sequence?.length===1&&!e.ctrl&&!e.meta,"isChar"),getChar:i(()=>e.sequence?.length===1?e.sequence:null,"getChar")}}i(aP,"createKeyMatcher");import{useCallback as cP,useSyncExternalStore as lP}from"react";function uP(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(uP,"isMainThreadPrompt");var Jp=null,md=Object.freeze([]);function XS(){let e=Un().getSnapshot();return e===Jp||(Jp=e,md=Object.freeze(e.filter(uP))),md}i(XS,"getQueueSliceSnapshot");function YS(){let e=cP(t=>Un().subscribe(t),[]);return lP(e,XS,XS)}i(YS,"useQueuedPrompts");function dP(){return YS().map(t=>t.content)}i(dP,"useQueuedPromptContents");function fP(){Jp=null,md=Object.freeze([])}i(fP,"_resetQueuedPromptsCacheForTests");async function ec(e){return{messages:e.existingMessages??[],uiHistory:e.existingUiHistory?.map(t=>({...t})),lineage:e.existingLineage??void 0,artifactLedger:e.existingArtifactLedger?.map(t=>({...t,metadata:t.metadata?{...t.metadata}:void 0})),sessionId:e.sessionId??tc(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}i(ec,"createInteractiveContext");function tc(){let e=new Date,t=e.toISOString().split("T")[0].replace(/-/g,""),n=e.toTimeString().split(" ")[0].replace(/:/g,"");return`${t}_${n}`}i(tc,"generateSessionId");function Zn(e){e.lastAccessed=new Date().toISOString()}i(Zn,"touchContext");var ys=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t);this.sessions.set(t,{...structuredClone(n),scope:n.scope??r?.scope??"user",uiHistory:n.uiHistory??r?.uiHistory,extensionState:n.extensionState??r?.extensionState,artifactLedger:n.artifactLedger??r?.artifactLedger,extensionRecords:n.extensionRecords??r?.extensionRecords,lineage:mn(n.messages,n.lineage??r?.lineage)})}async load(t){return structuredClone(this.sessions.get(t)??null)}async getLineage(t){return structuredClone(this.sessions.get(t)?.lineage??null)}async setActiveEntry(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=yi(o.lineage,n,r);if(!s)return null;let a={...structuredClone(o),messages:vt(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async setLabel(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=xi(o.lineage,n,r);if(!s)return null;let a={...structuredClone(o),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async fork(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=Si(o.lineage,n);if(!s)return null;let a=r?.sessionId??await hi(),c={messages:vt(s),title:r?.title??o.title,gitRoot:o.gitRoot,uiHistory:o.uiHistory?o.uiHistory.map(l=>({...l})):void 0,extensionState:o.extensionState?structuredClone(o.extensionState):void 0,artifactLedger:o.artifactLedger?structuredClone(o.artifactLedger):void 0,extensionRecords:o.extensionRecords?structuredClone(o.extensionRecords):void 0,lineage:s};return this.sessions.set(a,c),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let r=this.sessions.get(t);if(!r?.lineage)return null;let o=n??wi(r.lineage);if(!o)return null;let s=Ti(r.lineage,o);if(!s)return null;let a={...r,messages:vt(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.scope??"user")==="user").map(([n,r])=>({id:n,title:r.title,msgCount:r.lineage?lo(r.lineage):r.messages.length}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function mP(){return new ys}i(mP,"createMemorySessionStorage");import*as qS from"child_process";import*as QS from"util";import pd from"chalk";var pP=QS.promisify(qS.exec),gP={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function gd(e,t={}){let n={...gP,...t},r=e.trim(),o=Bm(r);if(o)return o.startsWith("[Blocked]")&&(console.log(pd.yellow(`
|
|
275
|
-
${o}`)),console.log()),o;try{console.log(pd.dim(`
|
|
276
|
-
[Executing: ${r}]`));let{stdout:s,stderr:a}=await pP(r,{cwd:n.cwd,maxBuffer:n.maxBuffer,timeout:n.timeout,windowsHide:!0}),c="";return s&&(c+=s),a&&(c+=(c?`
|
|
277
|
-
`:"")+`[stderr] ${a}`),c.length>n.maxOutputLength&&(c=c.slice(0,n.maxOutputLength)+`
|
|
278
|
-
...[output truncated]`),console.log(pd.dim(c||"[No output]")),console.log(),`[Shell command executed: ${r}]
|
|
279
|
-
|
|
280
|
-
Output:
|
|
281
|
-
${c||"(no output)"}`}catch(s){let c=(s instanceof Error?s:new Error(String(s))).message;return c.length>n.maxErrorLength&&(c=c.slice(0,n.maxErrorLength)+`
|
|
282
|
-
...[error truncated]`),console.log(pd.red(`
|
|
283
|
-
[Shell Error: ${c}]`)),console.log(),`[Shell command failed: ${r}]
|
|
284
|
-
|
|
285
|
-
Error: ${c}`}}i(gd,"executeShellCommand");async function Zp(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return gd(n,t)}return e}i(Zp,"processSpecialSyntax");function hP(e){return e.trim().startsWith("!")}i(hP,"isShellCommand");function yP(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}i(yP,"isShellCommandSuccess");function nc(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}i(nc,"isShellCommandHandled");function hd(e,t,n){let r=e.trim();return{type:"info",icon:"\u23F3",text:/\bretry\s+\d+\/\d+\b/i.test(r)||/\b\d+\/\d+\b/.test(r)?r:`${r} \xB7 retry ${t}/${n}`}}i(hd,"createRetryHistoryItem");function eg(e,t,n,r){e(hd(t,n,r))}i(eg,"emitRetryHistoryItem");function yd(e){let{recoveryAction:t,attempt:n,maxAttempts:r,delayMs:o,stage:s,fallbackUsed:a}=e,c=Math.round(o/1e3);if(t==="manual_continue")return{type:"info",icon:"\u26A0",text:'Recovery exhausted. Type "continue" to retry or "stop" to cancel.'};if(t==="non_streaming_fallback"||a)return{type:"info",icon:"\u23F3",text:"Stream unstable, switching to non-streaming mode"};if(t==="sanitize_thinking_and_retry")return{type:"info",icon:"\u23F3",text:"Provider rejected replay thinking, sanitizing history and retrying"};let l;switch(s){case"before_first_delta":case"before_request_accepted":l="Provider request timed out";break;case"mid_stream_text":case"mid_stream_thinking":l="Stream interrupted after partial output";break;case"mid_stream_tool_input":l="Stream interrupted during tool input";break;case"post_tool_execution_pre_assistant_close":l="Stream interrupted after tool execution";break;default:l="Stream interrupted";break}let u=t==="stable_boundary_retry"?"recovering":"retrying";return{type:"info",icon:"\u23F3",text:c>0?`${l} \xB7 ${u} ${n}/${r} in ${c}s`:`${l} \xB7 ${u} ${n}/${r}`}}i(yd,"createRecoveryHistoryItem");function tg(e,t){e(yd(t))}i(tg,"emitRecoveryHistoryItem");import{jsx as oe,jsxs as jt,Fragment as uL}from"react/jsx-runtime";import zb,{useState as De,useCallback as K,useRef as fe,useEffect as Ne,useMemo as ue}from"react";import{jsx as er,Fragment as xP,jsxs as xd}from"react/jsx-runtime";var ng=" | ",JS=i(({searchActive:e=!1,selectionActive:t=!1,showAllActive:n=!1,searchQuery:r="",searchCurrent:o=0,searchCount:s=0,searchDetailText:a,pendingLiveUpdates:c=0,secondaryText:l,noticeText:u})=>{let m=te("dark"),p=r.trim(),g=a?.trim(),x=l?.trim(),y=u?.trim(),w=e?p?`Search /${p}`:"Search":"Transcript",S=e?`Enter jump | n/N next/prev | Ctrl+E ${n?"collapse":"show all"} | Esc close | Ctrl+O/q back`:t?`PgUp/PgDn page | j/k scroll | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | Esc clear focus | Ctrl+O/q back`:`PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | s dump | Ctrl+O/q/Esc back`,I=c>0?c===1?"1 new update":`${c} new updates`:void 0,$=e&&s>0?`${Math.max(0,o)}/${s}`:void 0,L=e&&g||x,G=!!(L||y);return xd(k,{flexDirection:"column",children:[xd(k,{paddingX:1,children:[er(b,{color:m.colors.dim,children:w}),er(b,{dimColor:!0,children:ng}),er(b,{color:m.colors.dim,children:S}),$||I?er(k,{flexGrow:1}):null,$?xd(xP,{children:[er(b,{dimColor:!0,children:$}),I?er(b,{dimColor:!0,children:ng}):null]}):null,I?er(b,{color:m.colors.accent,bold:!0,children:I}):null]}),G?xd(k,{paddingX:1,children:[L?er(b,{color:m.colors.dim,children:L}):null,L&&y?er(b,{dimColor:!0,children:ng}):null,y?er(b,{color:m.colors.accent,bold:!0,children:y}):null]}):null]})},"TranscriptModeFooter");import{jsx as wP,jsxs as TP}from"react/jsx-runtime";var ZS=i(({banner:e,...t})=>TP(k,{flexDirection:"column",children:[e,wP(Oo,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as SP,jsxs as CP}from"react/jsx-runtime";var eC=i(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...o})=>CP(k,{flexDirection:"column",children:[e,SP(Dp,{...o,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as bP,jsx as vP}from"react/jsx-runtime";var tC=i(({text:e,tone:t="success"})=>{let n=e?.trim();if(!n)return null;let r=te("dark"),o=t==="warning"?r.colors.warning:r.colors.accent,s=t==="warning"?"!":"\u2713";return vP(k,{paddingX:1,backgroundColor:r.colors.inputBackground,children:bP(b,{color:o,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as zr,Fragment as IP,jsxs as rg}from"react/jsx-runtime";var kP=" \u23BF ";function RP(e){let t=te("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;case"red":return t.colors.error;default:return t.colors.dim}}i(RP,"resolveSymbolColor");var EP=i(({row:e})=>{let t=RP(e.symbolColor),n=e.kind!=="item";return rg(k,{flexDirection:"row",children:[zr(b,{color:t,bold:e.isActive,children:e.symbol}),zr(b,{children:" "}),zr(b,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?rg(IP,{children:[zr(b,{children:" "}),zr(b,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),nC=i(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=te("dark").colors.dim;return rg(k,{flexDirection:"row",children:[zr(b,{color:t,children:kP}),zr(k,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>zr(EP,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");function MP(e){switch(e){case"in_progress":return{symbol:"\u25CF",color:"cyan"};case"completed":return{symbol:"\u2713",color:"green"};case"failed":return{symbol:"\u2717",color:"red"};case"skipped":return{symbol:"\u2298",color:"gray"};case"cancelled":return{symbol:"\u2612",color:"gray"};default:return{symbol:"\u2610",color:"dim"}}}i(MP,"symbolForStatus");function AP(e){for(let t=0;t<e.length;t++)if(e[t].status==="in_progress")return t;for(let t=0;t<e.length;t++)if(e[t].status==="pending")return t;for(let t=e.length-1;t>=0;t--)if(e[t].status==="completed")return t;return 0}i(AP,"pickAnchorIndex");function _P(e){let{symbol:t,color:n}=MP(e.status),r=e.status==="failed"&&e.note?`${e.content} (${e.note})`:e.content,o=e.status==="cancelled",s=e.evaluator?`[${e.evaluator}]`:void 0;return{kind:"item",id:e.id,symbol:t,symbolColor:n,text:r,isActive:e.status==="in_progress",isStrikethrough:o,evaluatorBadge:s}}i(_P,"buildItemRow");function PP(e){return{kind:"summary_done",symbol:"\u2713",symbolColor:"green",text:`${e} done`,isActive:!1}}i(PP,"buildDoneSummary");function og(e){return{kind:"summary_pending",symbol:"\u2610",symbolColor:"dim",text:`+${e} more`,isActive:!1}}i(og,"buildPendingSummary");function $P(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}i($P,"pickFailedToPromote");function LP(e,t){let n=e.length;if(n===0)return{visibleIdx:[],hiddenCompletedCount:0,hiddenPendingCount:0};let r=4,o=Math.max(0,t-1),s=Math.min(n,o+r);s-o<r&&o>0&&(o=Math.max(0,s-r)),s-o<r&&s<n&&(s=Math.min(n,o+r));let a=[];for(let u=o;u<s;u++)a.push(u);let c=0,l=0;for(let u=0;u<o;u++)e[u].status==="completed"&&c++;for(let u=s;u<n;u++){let m=e[u].status;(m==="pending"||m==="in_progress")&&l++}return{visibleIdx:a,hiddenCompletedCount:c,hiddenPendingCount:l}}i(LP,"decideWindow");function rC(e,t){let n=e.length,r=e.reduce((x,y)=>y.status==="completed"?x+1:x,0),o=i((x,y)=>({shouldRender:y,rows:x,completedCount:r,totalCount:n}),"baseVm");if(n<1)return o([],!1);t.now,t.lastAllCompletedAt;let s=AP(e),a=LP(e,s),c=new Set(a.visibleIdx),l=$P(e,c),u=[...a.visibleIdx],m=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let x=-1;for(let y=u.length-1;y>=0;y--){let w=u[y];if(w!==s&&e[w].status==="pending"){x=y;break}}if(x>=0){let y=u[x];u[x]=l,p+=1,u.sort((I,$)=>I-$);let w=u[0],S=0;for(let I=0;I<w;I++)e[I].status==="completed"&&S++;m=S}}let g=[];m>0&&g.push(PP(m));for(let x of u)g.push(_P(e[x]));if(p>0&&g.push(og(p)),g.length>6)for(;g.length>6;){let x=!1;for(let y=g.length-1;y>=0;y--){let w=g[y];if(w.kind==="item"&&!w.isActive){g.splice(y,1);let S=g[g.length-1];if(S&&S.kind==="summary_pending"){let I=/\+(\d+) more/.exec(S.text),$=I?Number.parseInt(I[1],10)+1:1;g[g.length-1]=og($)}else g.push(og(1));x=!0;break}}if(!x)break}return o(g,!0)}i(rC,"buildTodoPlanViewModel");function oC(e){let t=[];e.isHistorySearchActive?t.push({id:"search",label:"Search",accent:!0}):e.isTranscriptMode&&t.push({id:"transcript",label:"Transcript"}),e.pendingInputCount>0&&t.push({id:"queue",label:`Queue ${e.pendingInputCount}`}),e.buffering==="buffered-fallback"&&(e.isHistorySearchActive||e.isTranscriptMode)&&t.push({id:"buffered",label:"Buffered"}),e.isTranscriptMode&&e.pendingLiveUpdates>0&&t.push({id:"updates",label:e.pendingLiveUpdates===1?"1 update":`${e.pendingLiveUpdates} updates`,accent:!0});let n=[],r=[...t,...n].map(o=>o.label.trim()).filter(Boolean).join(" | ");return{leftItems:t,rightItems:n,summary:r}}i(oC,"buildFooterHeaderViewModel");function OP(e){return Sl(e.provider,e.model,"off",{longRunning:!0})}i(OP,"evaluateSessionTransitionPolicy");function DP(e,t){let n=t.snapshot.model?`${t.snapshot.provider}:${t.snapshot.model}`:t.snapshot.provider,r=[`[Provider Guardrail] ${e} on ${n}: ${t.summary}`],o=t.issues[0]?.detail;return o&&r.push(` ${o}`),t.status==="block"?r.push(" Switch to a provider with durable full-history session semantics before continuing."):t.status==="warn"&&r.push(" Continuing with degraded session semantics."),r}i(DP,"formatSessionTransitionGuardMessage");function Bo(e,t,n){let r=OP(e);if(!r||r.status==="allow")return!0;let[o,...s]=DP(t,r);return n(r.status,o,s),r.status!=="block"}i(Bo,"enforceSessionTransitionGuard");function NP(e){switch(e.type){case"message":{let n=(typeof e.message.content=="string"?e.message.content:"[complex content]").replace(/\s+/g," ").trim();return`${e.message.role}: ${n.slice(0,48)}${n.length>48?"...":""}`}case"compaction":return`compaction: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;case"branch_summary":return`branch: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;case"archive_marker":return`archived: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;default:return e}}i(NP,"summarizeEntry");function iC(e,t,n,r){let o=t?n?"\\- ":"|- ":"",s=e.active?"*":" ",a=e.entry.id.slice(0,12),c=e.label?` [${e.label}]`:"";r.push(`${t}${o}${s} ${a} ${NP(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,m)=>{iC(u,l,m===e.children.length-1,r)})}i(iC,"formatNode");function wd(e){let t=[];return e.forEach((n,r)=>{iC(n,"",r===e.length-1,t)}),t}i(wd,"formatSessionTree");var BP=100,HP=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,aC=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,cC=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,lC=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function xs(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(xs,"readString");function Dt(e,t,n){n&&e.push({label:t,value:n})}i(Dt,"pushField");function FP(e){return e.replace(/\s+/g," ").trim()}i(FP,"normalizeWhitespace");function WP(e,t){if(e.length<=t)return e;let n=Math.ceil((t-3)/2),r=Math.floor((t-3)/2);return`${e.slice(0,n)}...${e.slice(e.length-r)}`}i(WP,"truncateMiddle");function UP(e){let t=e;return t=t.replace(/\b(authorization\s*:\s*bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b((?:authorization|cookie)\s*:\s*)([^'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(api[_-]?key|access[_-]?token|refresh[_-]?token|token|secret|password|passwd|cookie|session)\b(\s*[:=]\s*)(['"]?)([^'"\s]+)(\3)/gi,(n,r,o,s)=>`${r}${o}${s}[REDACTED]${s}`),t=t.replace(/(--(?:api-key|token|secret|password|cookie)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/((?:-u|--user)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t}i(UP,"maskSensitiveSegments");function sC(e){return WP(UP(FP(e)),BP)}i(sC,"summarizeCommand");function jP(e){return _n(e)?Q("intent.read"):aC.test(e)?Q("intent.delete"):cC.test(e)?Q("intent.deps"):Pn(e)||lC.test(e)?Q("intent.modify"):Q("intent.execute")}i(jP,"classifyShellIntent");function GP(e){let t=[];return aC.test(e)?t.push(Q("risk.destructive")):cC.test(e)?t.push(Q("risk.deps")):Pn(e)||lC.test(e)?t.push(Q("risk.modify")):_n(e)||t.push(Q("risk.unknown")),HP.test(e)&&t.push(Q("risk.network")),t}i(GP,"classifyShellRisks");function KP(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}i(KP,"readSignals");function VP(e){if(e){if(e.some(t=>t.kind==="protected_path"))return Q("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return Q("scope.outside")}}i(VP,"scopeFromSignals");function zP(e){if(e._outsideProject===!0)return Q("scope.outside");if(e._alwaysConfirm===!0)return Q("scope.protected")}i(zP,"scopeFromMarkers");function XP(e){if(!e)return[];let t=[],n=e.some(o=>o.kind==="dangerous_pattern"&&o.severity==="high"),r=e.some(o=>o.kind==="dangerous_pattern"&&o.severity==="medium");return n?t.push(Q("risk.destructive")):r&&t.push(Q("risk.modify")),e.some(o=>o.kind==="network")&&t.push(Q("risk.network")),e.some(o=>o.kind==="package_install")&&t.push(Q("risk.deps")),t}i(XP,"risksFromSignals");var YP={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function qP(e){return Q(YP[e])}i(qP,"localizeFieldLabel");function ws(e,t){return{title:e,fields:t,details:t.map(n=>`${qP(n.label)}: ${n.value}`)}}i(ws,"buildDisplayFromFields");function Td(e,t){if(e==="confirm"){let l=xs(t._message);if(l)return ws(l,[])}if(e==="exit_plan_mode"){let l=xs(t.plan),u="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:u,fields:[],details:l.split(`
|
|
286
|
-
`)}:ws(u,[])}let n=[],r=xs(t.path),o=xs(t.command),s=xs(t._reason)??xs(t.justification),a=KP(t._classifierSignals),c=VP(a)??zP(t);switch(Dt(n,"Reason",s),e){case"bash":case"shell_command":{if(o){Dt(n,"Intent",jP(o)),Dt(n,"Scope",c);let l=XP(a),u=l.length>0?l:GP(o);u.length>0&&Dt(n,"Risk",u.join("; ")),Dt(n,"Summary",sC(o))}else Dt(n,"Scope",c);return ws(e==="bash"?Q("tool.bash.title"):Q("tool.shell.title"),n)}case"write":return Dt(n,"Intent",Q("intent.write_file")),Dt(n,"Target",r),Dt(n,"Scope",c),ws(Q("tool.write.title"),n);case"edit":return Dt(n,"Intent",Q("intent.edit_file")),Dt(n,"Target",r),Dt(n,"Scope",c),ws(Q("tool.edit.title"),n);default:return Dt(n,"Intent",Q("intent.use_tool",{tool:e})),Dt(n,"Target",r),Dt(n,"Scope",c),o&&Dt(n,"Summary",sC(o)),ws(Q("tool.generic.title",{tool:e}),n)}}i(Td,"buildToolConfirmationDisplay");function uC(e,t){let n=Td(e,t);return n.details.length>0?`${n.title}
|
|
287
|
-
${n.details.join(`
|
|
288
|
-
`)}`:n.title}i(uC,"buildToolConfirmationPrompt");async function Sd(e){let t=await Ny({userKodaxDir:wy(),projectRoot:e.projectRoot}),n;return{getGuardrail:i(()=>n||(n=By({rules:t.merged,claudeMd:Ty(e.getAgentsFiles()),getToolProjection:i(o=>(xl(o)??Cy(o))?.toClassifierInput,"getToolProjection"),resolveProvider:i(o=>{try{return di(o)}catch{return}},"resolveProvider"),defaultProvider:e.getCurrentProviderName(),defaultModel:e.getCurrentModel()??"",getDefaultProvider:e.getCurrentProviderName,getDefaultModel:i(()=>{let o=e.getCurrentModel();return o||(e.log?.("warn","[auto-mode] classifier defaultModel is empty; main session has no model set \u2014 classifier will likely fail"),"")},"getDefaultModel"),askUser:e.askUser,log:e.log,onEngineChange:e.onEngineChange,projectRoot:e.projectRoot,extraCollectors:e.extraCollectors,initialEngine:e.autoModeSettings.engine,timeoutMs:e.autoModeSettings.timeoutMs,userSettings:e.autoModeSettings.classifierModel,envVar:e.autoModeSettings.classifierModelEnv}),n),"getGuardrail"),rulesLoadResult:t}}i(Sd,"bootstrapAutoMode");var ig=[" \u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557"," \u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2554\u2588\u2588\u2557 "," \u2588\u2588\u2551 \u2588\u2588\u2557 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2557"," \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D"];import Ve from"chalk";var Cd=class e{static{i(this,"ShortcutsRegistry")}static instance=null;shortcuts=new Map;static getInstance(){return e.instance||(e.instance=new e),e.instance}static resetInstance(){e.instance=null}register(t){let n=this.shortcuts.get(t.id);this.shortcuts.set(t.id,{definition:t,effectiveBindings:n?.effectiveBindings??t.defaultBindings,handler:n?.handler})}registerAll(t){for(let n of t)this.register(n)}unregister(t){return this.shortcuts.delete(t)}setHandler(t,n){let r=this.shortcuts.get(t);r&&(r.handler=n)}findMatchingShortcut(t,n){let r=null,o=-1/0;for(let s of this.shortcuts.values()){let a=s.definition.context;a!=="global"&&a!==n||this.matchesBinding(t,s.effectiveBindings)&&s.handler&&s.definition.priority>o&&(o=s.definition.priority,r=s)}return r}matchesBinding(t,n){for(let r of n){let o=this.normalizeKeyName(t.name),s=this.normalizeKeyName(r.key);if(o===s){let a=(r.ctrl??!1)===t.ctrl,c=(r.shift??!1)===t.shift,l=(r.meta??!1)===t.meta;if(a&&c&&l)return!0}}return!1}normalizeKeyName(t){let n={return:"enter",esc:"escape",del:"delete",backspace:"backspace"," ":"space"},r=t.toLowerCase();return n[r]??r}executeShortcut(t,n){let r=this.findMatchingShortcut(t,n);return r?.handler?r.handler()===!0:!1}getAllShortcuts(){return Array.from(this.shortcuts.values())}getShortcutsByCategory(t){return this.getAllShortcuts().filter(n=>n.definition.category===t)}getShortcutsByContext(t){return this.getAllShortcuts().filter(n=>{let r=n.definition.context;return r==="global"||r===t})}formatBinding(t){let n=[];t.ctrl&&n.push("Ctrl"),t.meta&&n.push("Alt"),t.shift&&n.push("Shift");let r=t.key.length===1?t.key.toUpperCase():t.key;return n.push(r),n.join("+")}formatBindings(t){return t.map(n=>this.formatBinding(n)).join(" or ")}},tr=i(()=>Cd.getInstance(),"getShortcutsRegistry");var Ts=[{id:"interrupt",name:"Interrupt",description:"Interrupt the current streaming response",defaultBindings:[{key:"c",ctrl:!0}],context:"global",priority:200,category:"global",configurable:!1},{id:"showHelp",name:"Toggle Help",description:"Show or hide shortcut help when the input is empty",defaultBindings:[{key:"?"}],context:"global",priority:150,category:"global",configurable:!0},{id:"toggleThinking",name:"Cycle Reasoning",description:"Cycle reasoning mode: off, auto, quick, balanced, deep",defaultBindings:[{key:"t",ctrl:!0}],context:"global",priority:150,category:"mode",configurable:!0},{id:"toggleTranscriptMode",name:"Toggle Transcript Mode",description:"Toggle transcript mode on or off",defaultBindings:[{key:"o",ctrl:!0}],context:"global",priority:150,category:"mode",configurable:!0},{id:"openTranscriptSearch",name:"Search Transcript",description:"Open transcript search",defaultBindings:[{key:"f",ctrl:!0}],context:"global",priority:150,category:"navigation",configurable:!0},{id:"togglePermissionMode",name:"Cycle Permissions",description:"Cycle permission mode: plan, accept-edits, auto-in-project",defaultBindings:[{key:"tab",shift:!0}],context:"global",priority:150,category:"mode",configurable:!0},{id:"toggleAgentMode",name:"Toggle Agent Mode",description:"Switch between AMA and SA",defaultBindings:[{key:"m",meta:!0}],context:"global",priority:150,category:"mode",configurable:!0},{id:"submitInput",name:"Submit Input",description:"Submit the current input",defaultBindings:[{key:"enter"}],context:"input",priority:50,category:"global",configurable:!1},{id:"acceptCompletion",name:"Accept Completion",description:"Accept the current autocomplete suggestion",defaultBindings:[{key:"tab"}],context:"input",priority:60,category:"editing",configurable:!0},{id:"cancelInput",name:"Cancel Input",description:"Cancel or clear the current input",defaultBindings:[{key:"escape"}],context:"input",priority:70,category:"editing",configurable:!0},{id:"newline",name:"Insert Newline",description:"Insert a newline in the current input",defaultBindings:[{key:"enter",shift:!0},{key:"j",ctrl:!0}],context:"input",priority:40,category:"editing",configurable:!0},{id:"historyUp",name:"History Up",description:"Browse previous input history",defaultBindings:[{key:"up"}],context:"input",priority:30,category:"navigation",configurable:!0},{id:"historyDown",name:"History Down",description:"Browse next input history",defaultBindings:[{key:"down"}],context:"input",priority:30,category:"navigation",configurable:!0},{id:"moveLeft",name:"Move Left",description:"Move the cursor left",defaultBindings:[{key:"left"}],context:"input",priority:20,category:"navigation",configurable:!1},{id:"moveRight",name:"Move Right",description:"Move the cursor right",defaultBindings:[{key:"right"}],context:"input",priority:20,category:"navigation",configurable:!1},{id:"moveToStart",name:"Move To Start",description:"Move the cursor to the start of the line",defaultBindings:[{key:"a",ctrl:!0}],context:"input",priority:25,category:"navigation",configurable:!0},{id:"moveToEnd",name:"Move To End",description:"Move the cursor to the end of the line",defaultBindings:[{key:"e",ctrl:!0}],context:"input",priority:25,category:"navigation",configurable:!0},{id:"killLineRight",name:"Delete To End",description:"Delete from the cursor to the end of the current line",defaultBindings:[{key:"k",ctrl:!0}],context:"input",priority:25,category:"editing",configurable:!0},{id:"killLineLeft",name:"Delete To Start",description:"Delete from the start of the line to the cursor",defaultBindings:[{key:"u",ctrl:!0}],context:"input",priority:25,category:"editing",configurable:!0},{id:"deleteWordLeft",name:"Delete Word Left",description:"Delete the word before the cursor",defaultBindings:[{key:"w",ctrl:!0},{key:"backspace",meta:!0}],context:"input",priority:25,category:"editing",configurable:!0},{id:"moveLineUp",name:"Move Line Up",description:"Move to the previous visual line in multiline input",defaultBindings:[{key:"up",ctrl:!0}],context:"input",priority:20,category:"navigation",configurable:!0},{id:"moveLineDown",name:"Move Line Down",description:"Move to the next visual line in multiline input",defaultBindings:[{key:"down",ctrl:!0}],context:"input",priority:20,category:"navigation",configurable:!0},{id:"backspace",name:"Backspace",description:"Delete the previous character",defaultBindings:[{key:"backspace"}],context:"input",priority:10,category:"editing",configurable:!1},{id:"delete",name:"Delete",description:"Delete the next character",defaultBindings:[{key:"delete"}],context:"input",priority:10,category:"editing",configurable:!1}];import{useEffect as QP,useCallback as JP,useRef as ZP}from"react";function Tr(e,t,n={}){let{context:r,isActive:o=!0}=n,s=tr(),a=ZP(t);a.current=t,QP(()=>(s.setHandler(e,(...u)=>a.current(...u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=JP(u=>{if(!o)return!1;let p=s.getAllShortcuts().find(w=>w.definition.id===e);if(!p)return!1;let g=r??p.definition.context,x=g==="global"?"input":g,y=s.findMatchingShortcut(u,x);return y&&y.definition.id===e?a.current()===!0:!1},[s,e,o,r]),l=e$(e,s);nn(c,{isActive:o,priority:l})}i(Tr,"useShortcut");function e$(e,t){let r=t.getAllShortcuts().find(o=>o.definition.id===e);return r?r.definition.priority:0}i(e$,"getShortcutPriority");import t$,{createContext as n$,useContext as r$,useState as dC,useCallback as sg}from"react";var fC=n$(null);function ag({children:e,initialContext:t="input"}){let[n,r]=dC(!1),[o,s]=dC(t);tr().registerAll(Ts);let c=sg(()=>{r(p=>!p)},[]),l=sg(()=>{let g=tr().getAllShortcuts(),x={global:[],mode:[],navigation:[],editing:[]};for(let y of g){let w=y.definition.category;x[w]||(x[w]=[]),x[w].push(y)}return x},[]),u=sg(()=>tr().getShortcutsByContext(o),[o]),m={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:o,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return t$.createElement(fC.Provider,{value:m},e)}i(ag,"ShortcutsProvider");function cg(){let e=r$(fC);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}i(cg,"useShortcutsContext");import o$ from"chalk";function lg({currentConfig:e,setCurrentConfig:t,isLoading:n,abort:r,stopThinking:o,clearThinkingContent:s,setCurrentTool:a,setIsLoading:c,onToggleHelp:l,setShowHelp:u,onSetThinking:m,onSetReasoningMode:p,onToggleTranscriptMode:g,onOpenTranscriptSearch:x,canOpenTranscriptSearch:y=!0,isInteractiveDialogActive:w=!1,onSetAgentMode:S,onSetPermissionMode:I,isInputEmpty:$,onSavePermissionMode:L}){return Tr("interrupt",()=>n?(r(),o(),s(),a(void 0),c(!1),console.log(o$.yellow(`
|
|
289
|
-
[Interrupted]`)),!0):!1,{isActive:n}),Tr("showHelp",()=>w?!1:$?(l(),!0):!1,{isActive:$}),Tr("toggleThinking",()=>{if(w)return!1;let G=ao.indexOf(e.reasoningMode),N=ao[(G+1)%ao.length],C=N!=="off";return t(J=>({...J,thinking:C,reasoningMode:N})),fr({reasoningMode:N,thinking:C}),p?.(N),m?.(C),u(!1),!0}),Tr("toggleTranscriptMode",()=>w?!1:(g?.(),u(!1),!0)),Tr("openTranscriptSearch",()=>w||!y?!1:(x?.(),u(!1),!0)),Tr("togglePermissionMode",()=>{if(w)return!1;let G=["plan","accept-edits","auto-in-project"],C=(G.indexOf(e.permissionMode)+1)%G.length,J=G[C];return t(ce=>({...ce,permissionMode:J})),I?.(J),L?.(J),u(!1),!0}),Tr("toggleAgentMode",()=>{if(w)return!1;let G=e.agentMode==="ama"?"sa":"ama";return t(N=>({...N,agentMode:G})),fr({agentMode:G}),S?.(G),u(!1),!0}),null}i(lg,"GlobalShortcuts");import{exec as i$}from"child_process";import{promisify as s$}from"util";var a$=s$(i$),c$={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function mC(e){let t=[],n="",r=0;for(let o of e){if(o===","&&r===0){n.trim()&&t.push(n.trim()),n="";continue}o==="("?r++:o===")"&&r>0&&r--,n+=o}return n.trim()&&t.push(n.trim()),t}i(mC,"splitTopLevelCommaList");function l$(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:mC(e).map(r=>{if(r==="*")return{tool:"*"};if(r.includes("(")&&!r.endsWith(")")){t.push(r);return}let o=r.match(/^([^(]+?)(?:\((.*)\))?$/);if(!o){t.push(r);return}let s=c$[o[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=o[2]?mC(o[2]).map(c=>c.trim()).filter(Boolean):void 0;return{tool:s,patterns:a&&a.length>0?a:void 0}}).filter(r=>r!==void 0),invalidEntries:t}}i(l$,"parseAllowedTools");function u$(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}i(u$,"wildcardToRegExp");function pC(e,t){return u$(e).test(t)}i(pC,"matchesPattern");function gC(e,t,n){if(!e.configured)return!0;if(e.rules.length===0)return!1;let r=t.toLowerCase(),o=r==="bash"?String(n.command??"").trim():"";return e.rules.some(s=>s.tool!=="*"&&s.tool!==r?!1:!s.patterns||s.patterns.length===0||r!=="bash"?!0:s.patterns.some(a=>pC(a,o)))}i(gC,"isToolAllowed");function d$(e,t){return e.matcher?pC(e.matcher,t):!0}i(d$,"hookMatches");function f$(e){let t=e.source==="skill"?"skill":e.source==="extension"?"extension command":"command";return[`Note: ${e.displayName} has model invocation disabled.`,`The ${t} content is shown below for manual use:`,"",`--- ${e.displayName} ---`,e.prompt,`--- end ${e.displayName} ---`].join(`
|
|
290
|
-
`)}i(f$,"formatManualOutput");function m$(e,t){if(!t)return;let n=t.trim();if(n){if(!["haiku","sonnet","opus"].includes(n))return n;if(e==="anthropic")switch(n){case"haiku":return"claude-3-5-haiku-latest";case"opus":return"claude-opus-4-1";default:return"claude-sonnet-4-6"}}}i(m$,"resolveModelOverride");async function p$(e,t,n,r,o,s){let a=typeof n.displayName=="string"?n.displayName:"frontmatter invocation",c={command:t.command,_reason:`Frontmatter hook ${e} for ${a}`,_frontmatterHook:!0,_hookEvent:e,_hookMatcher:t.matcher};if(!gC(s,"bash",c))return{allow:!1,message:`Hook ${e} for ${a} is blocked by allowed-tools policy.`};if(o.beforeToolExecute&&!await o.beforeToolExecute("bash",c))return{allow:!1,message:`Hook ${e} for ${a} was blocked by the current permission policy.`};try{let{stdout:l,stderr:u}=await a$(t.command,{env:{...process.env,KODAX_HOOK_EVENT:e,KODAX_HOOK_PAYLOAD:JSON.stringify(n)},maxBuffer:1048576,windowsHide:!0}),m=[l.trim(),u.trim()].filter(Boolean).join(`
|
|
291
|
-
`);m&&o.onToolResult?.({id:`frontmatter-hook:${e}`,name:"bash",content:m}),u.trim()&&await r(`[Hook ${e} stderr] ${u.trim()}`);let p=l.trim();if(!p)return{};try{let g=JSON.parse(p);return{allow:typeof g.allow=="boolean"?g.allow:typeof g.continue=="boolean"?g.continue:void 0,message:typeof g.message=="string"?g.message:void 0,additionalContext:typeof g.additionalContext=="string"?g.additionalContext:typeof g.additional_context=="string"?g.additional_context:void 0}}catch{return{message:p,additionalContext:p}}}catch(l){return await r(`[Hook ${e} failed] ${l instanceof Error?l.message:String(l)}`),{}}}i(p$,"executeHookCommand");async function Ss(e,t,n,r,o,s,a){let c=e?.[t];if(!c||c.length===0)return{};let l={};for(let u of c){if(!d$(u,n))continue;let m=await p$(t,u,r,o,s,a);if(m.message&&await o(`[Hook ${t}] ${m.message}`),m.additionalContext&&(l.additionalContext=l.additionalContext?`${l.additionalContext}
|
|
292
|
-
${m.additionalContext}`:m.additionalContext),m.allow===!1){l.allow=!1;break}}return l}i(Ss,"runHooks");async function bd(e,t,n,r){if(t.disableModelInvocation)return{mode:"manual",manualOutput:f$(t),finalize:i(async()=>{},"finalize")};let o=e.events??{},s=l$(t.allowedTools),a=m$(e.provider,t.model),c=!1,l=i(async S=>{if(r(S),!(c||!t.hooks?.Notification?.length)){c=!0;try{await Ss(t.hooks,"Notification",S,{displayName:t.displayName,source:t.source,path:t.path,message:S},async I=>{r(I)},o,s)}finally{c=!1}}},"emitWithNotifications");t.model&&!a&&await l(`[Info] Model preference '${t.model}' is not supported by provider '${e.provider}', using the current model.`),s.invalidEntries.length>0&&await l(`[Warning] ${t.displayName} has invalid allowed-tools entries: ${s.invalidEntries.join(", ")}`),s.configured&&s.rules.length===0&&await l(`[Warning] ${t.displayName} has no valid allowed-tools entries, so all tool execution will be blocked.`);let u=await Ss(t.hooks,"SessionStart",t.displayName,{displayName:t.displayName,source:t.source,path:t.path},l,o,s);if(u.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped before execution.`,finalize:i(async()=>{},"finalize")};let m=await Ss(t.hooks,"UserPromptSubmit",n,{displayName:t.displayName,source:t.source,prompt:n,path:t.path},l,o,s);if(m.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped by a UserPromptSubmit hook.`,finalize:i(async()=>{},"finalize")};let p=[t.agent?`Preferred agent: ${t.agent}`:void 0,u.additionalContext,m.additionalContext].filter(S=>typeof S=="string"&&S.trim().length>0),g=[p.length>0?p.join(`
|
|
293
|
-
|
|
294
|
-
`):void 0,t.prompt,`User request: ${n}`].filter(S=>typeof S=="string"&&S.trim().length>0),x={...o,beforeToolExecute:i(async(S,I)=>gC(s,S,I)?(await Ss(t.hooks,"PreToolUse",S,{tool:S,input:I,displayName:t.displayName,source:t.source,path:t.path},l,o,s)).allow===!1?(await l(`[Blocked] PreToolUse hook blocked '${S}' for ${t.displayName}`),!1):o.beforeToolExecute?await o.beforeToolExecute(S,I):!0:(await l(`[Blocked] Tool '${S}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:i(S=>{o.onToolResult?.(S),Ss(t.hooks,"PostToolUse",S.name,{...S,displayName:t.displayName,source:t.source,path:t.path},l,o,s)},"onToolResult")},y=!1,w=i(async S=>{y||(y=!0,await Ss(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:S?.message},l,o,s))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:g.join(`
|
|
295
|
-
|
|
296
|
-
`),options:{...e,modelOverride:a,context:{...e.context,rawUserInput:n,skillInvocation:t.source==="skill"?t.skillInvocation:e.context?.skillInvocation},events:x},finalize:w}}i(bd,"prepareInvocationExecution");import{appendFileSync as g$,mkdirSync as h$,writeFileSync as y$}from"node:fs";import{join as yC}from"node:path";import hC from"node:v8";var fg=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),mg=fg>=1,pg=pi(),xC=yC(pg,"memory-diag.log"),ug=0,dg=!1;function wC(){if(!dg)try{h$(pg,{recursive:!0}),dg=!0}catch{dg=!0}}i(wC,"ensureLogDir");function x$(e){wC();try{g$(xC,e+`
|
|
297
|
-
`)}catch{}}i(x$,"writeLog");function mt(e){return`${(e/1024/1024).toFixed(2)}MB`}i(mt,"formatMB");function w$(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}i(w$,"tryGC");function Ct(e){return e?e.length*2:0}i(Ct,"strBytes");function Ho(e,t=0){if(t>8)return 0;if(e==null)return 8;if(typeof e=="string")return e.length*2;if(typeof e=="number"||typeof e=="boolean")return 8;if(Array.isArray(e)){let n=32;for(let r of e)n+=Ho(r,t+1);return n}if(typeof e=="object"){let n=64;for(let[r,o]of Object.entries(e))n+=r.length*2,n+=Ho(o,t+1);return n}return 16}i(Ho,"estimateJsonBytes");function TC(e){if(!e||typeof e!="object")return 64;let t=e,n=64,r=new Set(["type","text","thinking","content","partial_json","input","data","signature","path","mediaType","tool_use_id","id","name","is_error"]);if(typeof t.text=="string"&&(n+=t.text.length*2),typeof t.thinking=="string"&&(n+=t.thinking.length*2),typeof t.content=="string")n+=t.content.length*2;else if(Array.isArray(t.content))for(let o of t.content)n+=TC(o);typeof t.partial_json=="string"&&(n+=t.partial_json.length*2),typeof t.data=="string"&&(n+=t.data.length*2),typeof t.signature=="string"&&(n+=t.signature.length*2),typeof t.path=="string"&&(n+=t.path.length*2),t.input!==void 0&&(n+=Ho(t.input));for(let[o,s]of Object.entries(t))r.has(o)||(n+=o.length*2+Ho(s));return n}i(TC,"estimateBlockBytes");function gg(e){if(typeof e.content=="string")return e.content.length*2+64;if(Array.isArray(e.content)){let t=64;for(let n of e.content)t+=TC(n);return t}return 200}i(gg,"estimateMessageBytes");function vd(e){let t=128;switch(t+=Ct(e.id)+Ct(e.parentId??void 0)+Ct(e.timestamp),e.type){case"message":return t+gg(e.message);case"compaction":return t+=Ct(e.summary),t+=Ct(e.firstKeptEntryId),t+=Ct(e.reason),t+=Ct(e.artifactLedgerId),e.details!==void 0&&(t+=Ho(e.details)),e.memorySeed!==void 0&&(t+=Ho(e.memorySeed)),t;case"branch_summary":return t+=Ct(e.summary),t+=Ct(e.fromId),e.details!==void 0&&(t+=Ho(e.details)),t;case"label":return t+=Ct(e.targetId),t+=Ct(e.label),t;case"archive_marker":return t+=Ct(e.archiveBatchId),t+=Ct(e.summary),t+=8,t;default:return t}}i(vd,"estimateEntryBytes");function T$(e){let t={},n=[];for(let o=0;o<e.length;o++){let s=e[o],a=gg(s);n.push({index:o,role:s.role,bytes:a});let c=t[s.role]??{count:0,bytes:0};c.count++,c.bytes+=a,t[s.role]=c}return n.sort((o,s)=>s.bytes-o.bytes),{totalBytes:n.reduce((o,s)=>o+s.bytes,0),biggest:n.slice(0,5),byRole:t}}i(T$,"buildMessageBreakdown");function Id(){return mg}i(Id,"memDiagEnabled");function kd(e,t){if(!mg)return;e==="turn-start"&&ug++;let n=process.memoryUsage(),r=new Date().toISOString(),o=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${ug} phase=${e} @${r} \u2550\u2550\u2550`,` V8 heap: used=${mt(n.heapUsed)} total=${mt(n.heapTotal)} rss=${mt(n.rss)} ext=${mt(n.external)}`," \u2500\u2500 Data breakdown \u2500\u2500",` context.messages: ${t.messageCount} msgs, ${mt(t.messageBytes)}`,` lineage.entries: ${t.lineageEntryCount} total (msg=${t.lineageMessageEntryCount}, compact=${t.lineageCompactionCount}, branch=${t.lineageBranchSummaryCount}, label=${t.lineageLabelCount}, archive=${t.lineageArchiveMarkerCount})`,` lineage non-message: ${mt(t.lineageNonMessageBytes)} (compaction.details/memorySeed + branch_summary payloads)`,` lineage orphan messages: ${t.lineageOrphanMessageCount} msgs, ${mt(t.lineageOrphanMessageBytes)} (in lineage but not in context.messages \u2014 branches/pruned)`,` UI history: ${t.historyItemCount} items, ${mt(t.historyTextBytes)}`,` foreground turn: ${t.foregroundItemCount} items, ${mt(t.foregroundTextBytes)}`,` streaming response: ${mt(t.streamingResponseBytes)}`,` streaming thinking: ${mt(t.streamingThinkingBytes)}`,` persisted UI history: ${t.persistedUiHistoryCount} items, ${mt(t.persistedUiHistoryBytes)}`];if(o.length>0){s.push(" \u2500\u2500 Top 5 biggest messages \u2500\u2500");for(let u of o)s.push(` [${u.index}] role=${u.role} ${mt(u.bytes)}`)}let a=t.messageBytes+t.lineageNonMessageBytes+t.lineageOrphanMessageBytes+t.historyTextBytes+t.foregroundTextBytes+t.streamingResponseBytes+t.streamingThinkingBytes+t.persistedUiHistoryBytes;s.push(" \u2500\u2500 V8 heap spaces \u2500\u2500");let c=hC.getHeapSpaceStatistics();for(let u of c)u.space_used_size>1024*1024&&s.push(` ${u.space_name.padEnd(25)} used=${mt(u.space_used_size)} allocated=${mt(u.space_size)}`);if(s.push(" \u2500\u2500 Summary \u2500\u2500"),s.push(` tracked data total: ${mt(a)}`),s.push(` V8 heap used: ${mt(n.heapUsed)}`),s.push(` unaccounted (overhead): ${mt(n.heapUsed-a)}`),s.push(" (React/Ink tree, provider SDK buffers, module metadata,"),s.push(' tokenizer caches, source maps \u2014 see "Blind spots" note)'),w$()){let u=process.memoryUsage();s.push(` after forced GC: heap=${mt(u.heapUsed)} (freed ${mt(n.heapUsed-u.heapUsed)})`)}else s.push(" after forced GC: UNAVAILABLE \u2014 re-run with `node --expose-gc` to distinguish"),s.push(` "real leak" from "GC hasn't run yet".`);if(fg>=2)try{let u=yC(pg,`heap-turn${ug}-${e}.heapsnapshot`);hC.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}x$(s.join(`
|
|
298
|
-
`))}i(kd,"memDiagSnapshot");function Rd(e,t,n){let r=T$(e),o=new Set(e),s=0,a=0,c=0,l=0,u=0,m=0,p=0,g=0,x=t?.entries??[];for(let I of x)switch(I.type){case"message":g++,o.has(I.message)||(c++,a+=gg(I.message));break;case"compaction":l++,s+=vd(I);break;case"branch_summary":u++,s+=vd(I);break;case"label":m++,s+=vd(I);break;case"archive_marker":p++,s+=vd(I);break}let y=0;for(let I of n.historyItems)y+=Ct(I.text);let w=0;for(let I of n.foregroundItems)w+=Ct(I.text);let S=0;for(let I of n.persistedUiHistory)S+=Ct(I.text);return{messageCount:e.length,messageBytes:r.totalBytes,biggestMessages:r.biggest,lineageEntryCount:x.length,lineageMessageEntryCount:g,lineageCompactionCount:l,lineageBranchSummaryCount:u,lineageLabelCount:m,lineageArchiveMarkerCount:p,lineageNonMessageBytes:s,lineageOrphanMessageBytes:a,lineageOrphanMessageCount:c,historyItemCount:n.historyItems.length,historyTextBytes:y,foregroundItemCount:n.foregroundItems.length,foregroundTextBytes:w,streamingResponseBytes:Ct(n.streamingResponse),streamingThinkingBytes:Ct(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:S}}i(Rd,"buildMemDiagBreakdown");function SC(){if(mg){wC();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${fg} gc=${e?"available":"UNAVAILABLE (run with node --expose-gc)"}`,"[MEMDIAG] Blind spots: React/Ink trees, provider SDK buffers, WeakMap/Map caches,","[MEMDIAG] tokenizer internal state, source-map strings, native handles.",'[MEMDIAG] A large "unaccounted" number living in these buckets is expected;',"[MEMDIAG] use Level 2 (KODAX_MEMORY_DIAG=2) to dump heap snapshots for DevTools.",""].join(`
|
|
299
|
-
`);y$(xC,t+`
|
|
300
|
-
`)}catch{}}}i(SC,"memDiagReset");import S$ from"node:fs";import yg from"node:path";var C$={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},b$=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function v$(e){return C$[yg.extname(e).toLowerCase()]}i(v$,"resolveImageMediaType");var hg="[Image unavailable]";function I$(e){return`[Image #${e}]`}i(I$,"buildImageAnchor");function rc(e,t){let n=[],r=[],o=new Set,s=new Map,a=new Set,c=[],l=0;for(let m of e.matchAll(b$)){let p=m.index??l;c.push(e.slice(l,p));let g=m[1]??m[2]??m[3];if(!g){c.push(m[0]),l=p+m[0].length;continue}let x=v$(g);if(!x){c.push(m[0]),l=p+m[0].length;continue}let y=yg.resolve(t,g);try{if(!S$.statSync(y).isFile()){a.has(y)||(r.push(`[Image input skipped] ${g} is not a file.`),a.add(y)),c.push(hg),l=p+m[0].length;continue}}catch{a.has(y)||(r.push(`[Image input missing] ${g} was not found from ${t}.`),a.add(y)),c.push(hg),l=p+m[0].length;continue}if(!o.has(y)){o.add(y);let w=I$(n.length+1);s.set(y,w),n.push({kind:"image",path:y,mediaType:x,source:"user-inline",description:`Attached image ${yg.basename(y)}`})}c.push(s.get(y)??hg),l=p+m[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:ky(u,n),inputArtifacts:n,warnings:r}}i(rc,"preparePromptInputArtifacts");function CC(e){let t=k$(e.stage),n=R$(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}i(CC,"createRepoIntelTraceHistoryItem");function k$(e){switch(e){case"routing":return"routing";case"preturn":return"preturn";case"module":return"module";case"impact":return"impact";case"task-snapshot":return"task-snapshot";default:return String(e)}}i(k$,"stageDisplayName");function R$(e){let t=[],n=e.capability;n&&(t.push(`mode=${n.mode}`),n.status!=="ok"&&t.push(`status=${n.status}`));let r=e.trace;return r&&(r.daemonLatencyMs!==void 0&&t.push(`daemon ${r.daemonLatencyMs}ms`),r.cliLatencyMs!==void 0&&t.push(`cli ${r.cliLatencyMs}ms`),r.cacheHit!==void 0&&t.push(r.cacheHit?"cache hit":"cache miss"),r.capsuleEstimatedTokens!==void 0&&t.push(`${E$(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?M$(e.summary):t.join(" \xB7 ")}i(R$,"buildRepoIntelDetailLine");function E$(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(E$,"formatTokens");function M$(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}i(M$,"stripSummaryStagePrefix");function A$(e){switch(e){case"H0_DIRECT":return"H0";case"H1_EXECUTE_EVAL":return"H1";case"H2_PLAN_EXECUTE_EVAL":return"H2";default:return e}}i(A$,"formatHarnessProfileShort");function bC(e,t){let n=e.trim();return t.trim()?n?e===t?e:t.startsWith(e)?t:e.startsWith(t)?e:t:t:e}i(bC,"mergeLiveThinkingContent");function oc(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,r=A$(e.harnessProfile)??e.harnessProfile,o=`${e.agentMode.toUpperCase()} ${r}`,s=e.activeWorkerTitle??"Scout",a=`${e.agentMode.toUpperCase()} ${s}`,c=`${e.agentMode.toUpperCase()} Routing`,l=e.currentRound&&e.maxRounds&&e.currentRound>1?` - Round ${e.currentRound}/${e.maxRounds}`:"";switch(e.phase){case"routing":return`${c} - Routing ready`;case"starting":return n?`${o} - ${n}`:`${o} - Managed task starting`;case"preflight":return n?`${a} - ${n}`:`${a} - ${s} preflight starting`;case"round":return n?`${o} - ${n}`:`${o} - Managed task round update${l}`;case"worker":return n?`${o} - ${n}${l}`:`${o} - ${e.activeWorkerTitle??"Worker"} starting${l}`;case"upgrade":return n?`${o} - ${n}`:`${o} - Harness transition${l}`;case"completed":return n?`${o} - ${n}`:`${o} - Managed task completed`;default:return}}i(oc,"formatManagedTaskBreadcrumb");function vC(e,t,n,r){let o=e?.gitRoot??t??void 0,s=e?.executionCwd??o??process.cwd();return{...e,gitRoot:o,executionCwd:s,contextTokenSnapshot:n,taskSurface:"repl",skillsPrompt:r}}i(vC,"buildManagedRunContext");var _$=["global","mode","navigation","editing"],P$={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},$$={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},L$={id:"transcript",title:"Transcript",items:[{id:"mode",label:"Ctrl+O transcript mode"},{id:"search",label:"Ctrl+F search transcript"},{id:"browse",label:"PgUp/PgDn/j/k scroll"},{id:"match",label:"n/N next match"},{id:"latest",label:"End back to live"},{id:"exit",label:"q or Esc back to live"}]};function O$(e){let t=tr(),n=t.getAllShortcuts().find(o=>o.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let r=Ts.find(o=>o.id===e);if(r?.defaultBindings?.length)return t.formatBindings(r.defaultBindings)}i(O$,"resolveShortcutBindingLabel");function D$(e){return`${O$(e.id)??e.id} ${e.name}`}i(D$,"buildMenuItemLabel");function N$(e){return tr().getAllShortcuts().find(r=>r.definition.id===e)?.definition??Ts.find(r=>r.id===e)}i(N$,"resolveShortcutDefinition");function Ed(){return[..._$.map(t=>{let n=P$[t].map(r=>N$(r)).filter(r=>!!r).map(r=>({id:r.id,label:D$(r)}));return{id:t,title:$$[t],items:n}}).filter(t=>t.items.length>0),L$]}i(Ed,"buildHelpMenuSections");var xg=2,IC=1,kC=4;function Qe(e,t){let n=Kt(e.length>0?e.split(`
|
|
301
|
-
`):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}i(Qe,"wrapLineCount");function B$(e,t,n=">"){let r=n.length+1,o=Math.max(20,t-r),s=Kt(e.length>0?e.split(`
|
|
302
|
-
`):[""],o,0,0);return Math.max(1,s.visualLines.length)+2}i(B$,"calculateInputPromptRows");function RC(e){let{terminalRows:t,terminalWidth:n,windowedTranscript:r=!1,inputText:o,inputPrompt:s=">",footerHeaderText:a,activitySummary:c,pendingInputSummary:l,stashNoticeSummary:u,notificationSummary:m,statusNoticeSummary:p,workStripText:g,suggestionsReserved:x,suggestionsMode:y="inline",showHelp:w,statusBarText:S,confirmPrompt:I,confirmInstruction:$,uiRequest:L,dialogMode:G="inline",historySearch:N,maxVisibleSelectOptions:C=5,reviewHint:J,todoSurfaceRows:ce=0,activityBarVisible:we=!1}=e,F=Math.max(0,Math.floor(ce)),X=a?Qe(a,Math.max(1,n-2)):0,v=c?Qe(c,Math.max(1,n-2)):0,M=we?Math.max(1,v):v,Z=l?Qe(l,Math.max(1,n-2)):0,Ce=u?Qe(u,Math.max(1,n-2)):0,de=m?Qe(m,Math.max(1,n-2)):0,Be=p?Qe(p,Math.max(1,n-2)):0,ie=g?Qe(g,Math.max(1,n-2)):0,se=B$(o,n,s),ne=x?8:0,V=w?IC+kC+Ed().reduce((P,Y)=>P+Qe(Y.title,Math.max(1,n-xg))+Qe(Y.items.map(xe=>xe.label).join(" | "),Math.max(1,n-xg)),0):0,ye=Qe(S,Math.max(1,n-2)),it=0;if(I&&$){let P=Math.max(1,n-4);it=3+Qe(`[Confirm] ${I}`,P)+Qe($,P)}let be=0,Te=0;if(L){let P=Math.max(1,n-4);L.kind==="select"?(Te=Math.min(C,L.options.length),be=3+Qe(`[Select] ${L.title}`,P)+L.options.slice(0,Te).reduce((Y,xe,ze)=>Y+Qe(`${ze+1}. ${xe.label}${xe.description?` - ${xe.description}`:""}`,P),0)+(L.options.length>Te?2:0)+Qe(`Choice: ${L.buffer||"(type a number)"}`,P)+1+(L.error?Qe(L.error,P):0)):be=3+Qe(`[Input] ${L.prompt}`,P)+(L.defaultValue!==void 0?Qe(`Default: ${L.defaultValue}`,P):0)+Qe(`Value: ${L.buffer||"(type your response)"}`,P)+1+(L.error?Qe(L.error,P):0)}let Le=0;if(N){let P=Math.max(1,n-4);Le=3+Qe(`Query: ${N.query||"(type to search)"}`,P)+(N.matchCount===0?Qe("No matches yet",P):Qe(`${Math.max(1,N.matchCount)} matches`,P)+Qe(N.selectedExcerpt||"",P))+1}let Se=J?Qe(J,Math.max(1,n-2)):0,pt=X+M+F+Z+Ce+de+se+V+Be+Se+(y==="inline"?ne:0)+(G==="inline"?it+be+Le:0),et=(y==="overlay"?ne:0)+(G==="overlay"?it+be+Le:0),Je=pt+ie+ye,A=Math.max(1,t-Je);return{messageRows:A,reservedBottomRows:Je,headerRows:X,activityRows:M,pendingInputRows:Z,stashNoticeRows:Ce,notificationRows:de,workStripRows:ie,inputRows:se,suggestionsRows:ne,helpRows:V,statusNoticeRows:Be,statusRows:ye,confirmRows:it,uiRequestRows:be,historySearchRows:Le,footerRows:pt,overlayRows:et,visibleSelectOptions:Te,reviewHintRows:Se,todoSurfaceRows:F,slots:[{name:"transcript",rows:A},{name:"footer",rows:pt},{name:"overlay",rows:et},{name:"status",rows:ye},{name:"task-bar",rows:ie}]}}i(RC,"calculateViewportBudget");function EC(e,t={}){let n=Ei(e,{rendererMode:t.rendererMode??"owned"});return{hostProfile:e,surface:"prompt",buffering:n.bufferingMode,ownsViewportByDefault:n.ownsViewportByDefault,supportsMouseTracking:n.supportsMouseTracking,supportsFullscreenLayout:n.supportsFullscreenLayout,supportsOverlaySurface:n.supportsOverlaySurface,supportsSelection:n.supportsSelection,supportsCopyOnSelect:n.supportsCopyOnSelect,supportsWheelHistory:n.supportsWheelHistory,supportsViewportChrome:n.supportsViewportChrome,supportsSearchViewport:n.supportsSearchViewport,supportsStickyPrompt:n.supportsStickyPrompt,scrollAnchor:0,jumpToLatestAvailable:!1,stickyPromptVisible:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(EC,"createTranscriptDisplayState");function MC(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(MC,"enterTranscriptMode");function AC(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(AC,"exitTranscriptMode");function _C(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}i(_C,"setTranscriptPendingLiveUpdates");function PC(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}i(PC,"setTranscriptScrollAnchor");function $C(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i($C,"jumpTranscriptToLatest");function LC(e,t){return{...e,stickyPromptVisible:t}}i(LC,"setTranscriptStickyPromptVisible");function Cs(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}i(Cs,"setTranscriptSelectedItem");function OC(e,t){return{...e,surface:"transcript",searchMode:"history",searchAnchorItemId:t?.anchorItemId??e.selectedItemId??e.searchAnchorItemId,currentMatchIndex:Math.max(0,t?.initialMatchIndex??e.currentMatchIndex),jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(OC,"openTranscriptSearch");function DC(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}i(DC,"closeTranscriptSearch");function NC(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}i(NC,"setTranscriptSearchMatchIndex");function BC(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}i(BC,"shouldWindowTranscript");function HC(e){return e.surface==="transcript"}i(HC,"shouldPauseLiveTranscript");function wg(e){return e.supportsSelection}i(wg,"ownsTranscriptSelectionPath");function Md(e,t,n){if(!(!wg(e)||!n))return t.includes(n)?n:void 0}i(Md,"resolveTranscriptSelectedItemId");function FC(e){return e.supportsSelection&&e.supportsCopyOnSelect}i(FC,"supportsPassiveTranscriptCopyOnSelect");function WC(e){if(e.surface==="transcript")return"Transcript | PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | q/Esc/Ctrl+O back"}i(WC,"buildTranscriptBrowseHint");var UC="Slash commands cannot be queued mid-task. Press Esc to abort the current task, then run the command.",jC="slash-guard";function GC(e){return e.trimStart().startsWith("/")}i(GC,"isSlashCommandText");var H$=`
|
|
303
|
-
|
|
304
|
-
---
|
|
305
|
-
|
|
306
|
-
`;async function KC(e){let{initialPrompt:t,runRound:n,shiftPendingPrompt:r,onRoundComplete:o,onBeforeQueuedRound:s,shouldContinue:a=i(()=>!0,"shouldContinue")}=e,c=t,l=await n(c);for(;;){if(await o?.(l),!a(l))return l;let u=[];for(;;){let m=r();if(m===void 0)break;let p=typeof m=="string"?m.trim():"";p.length>0&&u.push(p)}if(u.length===0)return l;c=u.length===1?u[0]:u.join(H$),await s?.(c),l=await n(c)}}i(KC,"runQueuedPromptSequence");function zC(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}i(zC,"hasTranscriptInputActivity");function F$(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}i(F$,"shouldHandleManagedTranscriptMouse");function VC(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}i(VC,"shouldHandleManagedTranscriptWheel");function XC(e){if(F$({keyName:e.keyName,hasMouse:e.hasMouse,usesManagedMouseClicks:e.usesManagedMouseClicks,supportsMouseTracking:e.supportsMouseTracking,usesRendererMouseTracking:e.usesRendererMouseTracking})){if(e.mouseButton!=="left")return{kind:"none"};if(e.mouseAction==="press"||e.mouseAction==="drag"||e.mouseAction==="release")return{kind:"mouse-phase",phase:e.mouseAction}}return e.keyName==="pageup"?e.hasTranscript?{kind:"scroll-by",delta:e.reviewPageSize}:{kind:"consume"}:e.keyName==="wheelup"?VC({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?VC({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?e.historyScrollOffset===0?{kind:"consume"}:{kind:"scroll-by",delta:-e.reviewWheelStep}:{kind:"none"}:{kind:"none"}}i(XC,"resolveTranscriptPointerAction");function W$(e){return e.isTranscriptMode&&e.hasTextSelection}i(W$,"shouldDeferInterruptToTranscriptSelectionCopy");function YC(e){return e.ctrl&&e.keyName==="c"?W$({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection})?{kind:"none"}:{kind:"interrupt"}:e.keyName!=="escape"?{kind:"none"}:e.isTranscriptMode||e.isAwaitingUserInteraction?{kind:"none"}:e.isInputEmpty&&e.pendingInputCount>0?{kind:"pop-pending-input"}:e.isInputEmpty?e.timeSinceLastEscapeMs<e.doubleEscapeIntervalMs?{kind:"interrupt"}:{kind:"arm-double-escape"}:{kind:"none"}}i(YC,"resolveStreamingInterruptAction");function qC(e){let{key:t,isTranscriptMode:n,isHistorySearchActive:r,historySearchMatchCount:o,hasTextSelection:s,hasFocusedItem:a,canCopySelectedItem:c,canCopySelectedToolInput:l,canToggleSelectedDetail:u,canCycleTranscriptSelection:m}=e;if(t.name==="pageup")return{kind:"scroll-page-up"};if(r){if(t.name==="escape")return{kind:"close-history-search"};if(t.name==="backspace")return{kind:"history-search-backspace"};if(t.name==="down")return{kind:"history-search-step",direction:"next"};if(t.name==="up")return{kind:"history-search-step",direction:"prev"};if(t.name==="enter"||t.name==="return")return{kind:"history-search-submit"};if(t.insertable&&t.sequence)return{kind:"history-search-append",text:t.sequence}}return n&&!r&&!t.ctrl&&!t.meta&&t.insertable&&t.sequence==="/"?{kind:"open-history-search"}:n&&!t.ctrl&&!t.meta&&t.name==="q"?{kind:"exit-transcript"}:n&&t.name==="escape"?s||a?{kind:"clear-selection-focus"}:{kind:"exit-transcript"}:t.name==="home"?{kind:"scroll-home"}:t.name==="pagedown"?{kind:"scroll-page-down"}:t.name==="end"?{kind:"scroll-end"}:n?t.ctrl&&!t.meta&&t.name==="e"?{kind:"toggle-show-all"}:t.name==="j"||t.name==="down"?{kind:"scroll-line-down"}:t.name==="k"||t.name==="up"?{kind:"scroll-line-up"}:!t.ctrl&&!t.meta&&t.name==="g"&&t.shift?{kind:"jump-latest"}:!t.ctrl&&!t.meta&&t.name==="g"&&!t.shift?{kind:"jump-oldest"}:t.name==="left"?m?{kind:"cycle-selection",direction:"prev"}:{kind:"none"}:t.name==="right"?m?{kind:"cycle-selection",direction:"next"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="c"?s?{kind:"copy-selection"}:c?{kind:"copy-item"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="i"?l?{kind:"copy-tool-input"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="v"?u?{kind:"toggle-detail"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="s"?{kind:"dump-to-scrollback"}:!t.ctrl&&!t.meta&&t.name==="n"?o===0?{kind:"none"}:{kind:"search-match-nav",direction:t.shift?"prev":"next"}:{kind:"none"}:{kind:"none"}}i(qC,"resolveTranscriptKeyboardAction");function QC(e){switch(e.action.kind){case"none":return!1;case"scroll-page-up":return e.hasTranscript&&(e.disarmHistorySearchSelection(),e.scrollTranscriptBy(e.pageScrollDelta)),!0;case"close-history-search":return e.closeHistorySearchSurface(),!0;case"history-search-backspace":return e.backspaceHistorySearchQuery(),!0;case"history-search-step":return e.stepHistorySearchSelection(e.action.direction),!0;case"history-search-submit":return e.submitHistorySearchSelection(),!0;case"history-search-append":return e.appendHistorySearchQuery(e.action.text),!0;case"open-history-search":return e.openHistorySearchSurface(),!0;case"clear-selection-focus":return e.clearTranscriptSelectionFocus(),!0;case"exit-transcript":return e.exitTranscriptModeSurface(),!0;case"toggle-show-all":return e.toggleTranscriptShowAll(),!0;case"scroll-home":case"jump-oldest":return e.disarmHistorySearchSelection(),e.scrollTranscriptHome(),!0;case"scroll-page-down":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(-e.pageScrollDelta),!0;case"scroll-end":return e.isTranscriptMode?(e.exitTranscriptModeSurface(),!0):(e.scrollTranscriptToBottom(),!0);case"scroll-line-down":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(-1),!0;case"scroll-line-up":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(1),!0;case"jump-latest":return e.scrollTranscriptToBottom(),!0;case"cycle-selection":return e.cycleTranscriptSelection(e.action.direction),!0;case"copy-selection":return e.copySelectedTranscriptText(),!0;case"copy-item":return e.copySelectedTranscriptItem(),!0;case"copy-tool-input":return e.copySelectedTranscriptToolInput(),!0;case"toggle-detail":return e.toggleSelectedTranscriptDetail(),!0;case"search-match-nav":return e.navigateSearchMatch(e.action.direction),!0;case"dump-to-scrollback":return e.dumpTranscriptToScrollback(),!0;default:return!1}}i(QC,"executeTranscriptKeyboardAction");function Fo(e){let t=/\u001b\[[0-9;?]*[ -/]*[@-~]/g,n=/\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)/g,r=/\u001b[@-_]/g;return e.replace(t,"").replace(n,"").replace(r,"")}i(Fo,"stripAnsi");function U$(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
|
|
307
|
-
`)}i(U$,"serializeToolGroup");function j$(e){switch(e.type){case"thinking":return null;case"user":return`user: ${Fo(e.text)}`;case"assistant":return`assistant: ${Fo(e.text)}`;case"system":return`system: ${Fo(e.text)}`;case"info":return`info: ${Fo(e.text)}`;case"error":return`error: ${Fo(e.text)}`;case"event":return`event: ${Fo(e.text)}`;case"hint":return`hint: ${Fo(e.text)}`;case"tool_group":return U$(e);default:return e}}i(j$,"serializeOne");function G$(e){let t=[];for(let n of e){let r=j$(n);r!==null&&r!==""&&t.push(r)}return t.join(`
|
|
308
|
-
|
|
309
|
-
`)}i(G$,"serializeTranscriptForScrollback");function JC(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:o}=e,s=G$(t);r(),s.length>0&&n(`${s}
|
|
310
|
-
`),o()}i(JC,"dumpTranscriptToNativeScrollback");function K$(e){switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[t.name];return typeof t.output=="string"&&n.push(t.output),t.error&&n.push(t.error),n.join(`
|
|
311
|
-
`)}).join(`
|
|
312
|
-
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return""}}i(K$,"buildSearchText");function V$(e,t){let n=e.replace(/\s+/g," ").trim();if(!n)return"";let r=n.toLowerCase(),o=t.toLowerCase(),s=r.indexOf(o);if(s===-1)return n.slice(0,120);let a=Math.max(0,s-40),c=Math.min(n.length,s+t.length+60),l=a>0?"...":"",u=c<n.length?"...":"";return`${l}${n.slice(a,c)}${u}`}i(V$,"buildExcerpt");function ZC(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:K$(t)}))}i(ZC,"createTranscriptSearchIndex");function eb(e,t){let n=t.trim().toLowerCase();return n?e.flatMap(r=>{let o=r.searchText;return o.toLowerCase().includes(n)?[{itemId:r.itemId,itemIndex:r.itemIndex,excerpt:V$(o,t.trim())}]:[]}):[]}i(eb,"searchTranscriptIndex");function Tg(e,t,n){return e<=0?0:t<0?n==="next"?0:e-1:n==="next"?(t+1)%e:t<=0?e-1:t-1}i(Tg,"stepTranscriptSearchMatch");function tb(e,t){return e.length===0?void 0:t<0?`${e.length} transcript matches`:`${Math.min(Math.max(t,0),e.length-1)+1}/${e.length} transcript matches`}i(tb,"buildTranscriptSearchSummary");function nb(e,t,n){if(t.length===0||!n)return 0;let r=t.findIndex(a=>a.itemId===n);if(r>=0)return r;let o=e.find(a=>a.itemId===n)?.itemIndex;if(o===void 0)return 0;let s=t.findIndex(a=>a.itemIndex>=o);return s>=0?s:0}i(nb,"resolveTranscriptSearchMatchIndex");function rb(e){if(e)switch(e.type){case"assistant":return{summary:"Assistant response",kindLabel:"assistant"};case"user":return{summary:"User prompt",kindLabel:"user"};case"system":return{summary:"System note",kindLabel:"system"};case"thinking":return{summary:"Thinking trace",kindLabel:"thinking"};case"tool_group":return{summary:z$(e),kindLabel:"tool"};case"error":return{summary:"Error entry",kindLabel:"error"};case"info":return{summary:"Info note",kindLabel:"info"};case"hint":return{summary:"Hint",kindLabel:"hint"};default:return{summary:"Transcript entry",kindLabel:"entry"}}}i(rb,"buildTranscriptSelectionSummary");function z$(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}i(z$,"summarizeToolGroup");function ob(e){return e.map(t=>t.id)}i(ob,"getSelectableTranscriptItemIds");function ib(e,t,n){if(e.length===0)return;if(!t)return n==="next"?e[0]:e[e.length-1];let r=e.indexOf(t);return r===-1?n==="next"?e[0]:e[e.length-1]:n==="next"?e[Math.min(e.length-1,r+1)]:e[Math.max(0,r-1)]}i(ib,"moveTranscriptSelection");function Sg(e){if(e)switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[`Tool: ${t.name}`,`Status: ${t.status}`];return t.input&&n.push(`Input: ${JSON.stringify(t.input)}`),typeof t.output=="string"&&t.output.trim()&&n.push(`Output: ${t.output}`),t.error&&n.push(`Error: ${t.error}`),n.join(`
|
|
313
|
-
`)}).join(`
|
|
314
|
-
|
|
315
|
-
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return}}i(Sg,"buildTranscriptCopyText");function sb(e){if(!e||e.type!=="tool_group")return;let t=e.tools.map(n=>{if(!n.input)return;let r=typeof n.input=="string"?n.input:JSON.stringify(n.input,null,2);if(r?.trim())return[`Tool: ${n.name}`,r].join(`
|
|
316
|
-
`)}).filter(n=>!!n);return t.length>0?t.join(`
|
|
317
|
-
|
|
318
|
-
`):void 0}i(sb,"buildTranscriptToolInputCopyText");import{useCallback as ic,useRef as X$,useState as ab}from"react";function cb(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:o,isTranscriptMode:s,historySearchQuery:a}=e,c=WC(t),l;if(t.supportsStickyPrompt&&t.stickyPromptVisible)if(o){let m=a.trim();l={visible:!0,label:m?`Searching transcript for "${m}"`:"Searching transcript"}}else s?l={visible:!0,label:"Transcript Mode"}:r&&(l={visible:!0,label:"Interaction active"});let u;return n&&t.supportsViewportChrome&&(s&&t.pendingLiveUpdates>0?u={visible:!0,label:t.pendingLiveUpdates===1?"1 new update":`${t.pendingLiveUpdates} new updates`,hint:"Ctrl+O",tone:"accent"}:!s&&t.jumpToLatestAvailable&&(u={visible:!0,label:"Back to live",hint:"End",tone:"accent"})),{browseHintText:c,stickyHeader:l,jumpToLatest:u}}i(cb,"buildTranscriptChromeModel");function lb(e){return Math.max(1,e-2)}i(lb,"resolveTranscriptPageSize");function ub(e){return Math.max(3,Math.floor(e/4))}i(ub,"resolveTranscriptWheelStep");function Y$(e,t){return Math.max(0,e+t)}i(Y$,"incrementTranscriptScrollOffset");function db(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}i(db,"clampTranscriptScrollOffset");function fb(){let e=X$(null),[t,n]=ab(0),[r,o]=ab(!0),s=ic(m=>{n(Math.max(0,m))},[]),a=ic(m=>{o(m)},[]),c=ic(m=>{if(e.current){e.current.scrollTo(m);return}n(Math.max(0,m)),o(m===0)},[]),l=ic(m=>{if(e.current){e.current.scrollBy(m);return}n(p=>Y$(p,m)),o(!1)},[]),u=ic(()=>{if(e.current){e.current.scrollToBottom();return}n(0),o(!0)},[]);return{scrollRef:e,scrollOffset:t,sticky:r,setScrollOffset:n,setSticky:o,handleScrollTopChange:s,handleStickyChange:a,scrollTo:c,scrollBy:l,scrollToBottom:u}}i(fb,"useTranscriptViewportScrollController");function mb(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:o,viewportRows:s,itemId:a,visibleRows:c,expandedItemKeys:l,showDetailedTools:u=!1}=e;if(!a||c.length===0)return!1;let p=(n?.sections??ls(t,r,o,u,l)).find(y=>y.key===a);if(!p||p.rows.length===0)return!1;let g=new Set(c.map(y=>y.key)),x=Math.max(0,s??0);return x>0&&p.rows.length<=x?p.rows.every(y=>g.has(y.key)):g.has(p.rows[0]?.key??"")}i(mb,"isTranscriptItemVisible");function pb(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:o,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,u=n?.sections??ls(t,r,o,l,c);return fS(u,a,s)}i(pb,"resolveTranscriptSelectionOffset");function gb(e){let{items:t,renderModel:n,selectedItemId:r,terminalWidth:o=80,transcriptMaxLines:s=1e3,viewportRows:a,scrollOffset:c=0,expandedItemKeys:l,showDetailedTools:u=!1,preferViewportAnchor:m=!1}=e;if(r&&t.some(p=>p.id===r))return r;if(m&&c>0&&a&&a>0){let p=n?.sections??ls(t,o,s,u,l),g=n?.rows??Lo(p),y=Rp(g,a,c)[0]?.key,w=y?p.find(S=>S.rows.some(I=>I.key===y)):void 0;if(w?.key)return w.key}return t[t.length-1]?.id}i(gb,"resolveTranscriptSearchAnchorItemId");function hb(e){let t=va(e.stickyHeader),n=iu(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}i(hb,"resolveTranscriptOwnedWindowGeometry");function q$(e){return e.text===" "?"":e.text}i(q$,"normalizeTranscriptRowText");function Cg(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}i(Cg,"buildTranscriptRowIndexByKey");function Q$(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}i(Q$,"resolveTranscriptTextStartColumn");function yb(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??Cg(t.allRows??e),o=e.map((s,a)=>{let c=q$(s),l=Q$(s,t),u=Gr(c);return{key:s.key,row:s,modelRowIndex:r.get(s.key)??a,screenRow:n+a+1,text:c,textLength:u,textStartColumn:l,textEndColumn:l+gS(c)}});return{rows:o,topRow:o[0]?.screenRow??n+1,bottomRow:o[o.length-1]?.screenRow??n,viewportHeight:Math.max(0,t.viewportHeight??e.length)}}i(yb,"buildTranscriptScreenBuffer");function J$(e,t){let n=Math.max(1,Math.floor(t));return hS(e.text,n-e.textStartColumn)}i(J$,"clampTextColumn");function bg(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:J$(e,t)}}}i(bg,"toHit");function vg(e,t,n){let r=e.rows.find(o=>o.screenRow===t);return r?bg(r,n):void 0}i(vg,"hitTestTranscriptScreen");function Ig(e,t,n){if(e.rows.length!==0)return t<=e.topRow?bg(e.rows[0],n):t>=e.bottomRow?bg(e.rows[e.rows.length-1],n):vg(e,t,n)}i(Ig,"clampTranscriptScreenHit");function xb(e){return e.text===" "?"":e.text}i(xb,"normalizeTranscriptRowText");function wb(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(wb,"comparePoints");function Tb(e,t,n,r={}){if(e.length===0)return;let[o,s]=wb(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=wb(t,n)===0,l=e[o.modelRowIndex],u=e[s.modelRowIndex];if(!l||!u)return;let m=a&&c?{...o,column:0}:o,p=a&&c?{...s,column:Gr(xb(u))}:s,g=new Map,x=[],y=0;for(let w=m.modelRowIndex;w<=p.modelRowIndex;w+=1){let S=e[w];if(!S)continue;let I=xb(S),$=Gr(I),L=w===m.modelRowIndex?m.column:0,G=w===p.modelRowIndex?p.column:$,N=Math.max(0,Math.min(L,$)),C=Math.max(N,Math.min(G,$)),J=ds(I,N,C);C>N&&(g.set(S.key,{start:N,end:C}),y+=C-N),x.push(J)}if(g.size!==0)return{anchor:t,focus:n,rowRanges:g,rowCount:x.length,charCount:y,text:x.join(`
|
|
319
|
-
`)}}i(Tb,"buildTranscriptScreenSelection");function Sb(e){if(!e)return;let t=`${e.charCount} char${e.charCount===1?"":"s"}`;return e.rowCount<=1?`Selected ${t}`:`Selected ${t} across ${e.rowCount} lines`}i(Sb,"buildTranscriptScreenSelectionSummary");function Cb(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}i(Cb,"resolveTranscriptDragEdgeScrollDirection");function Ad(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}i(Ad,"toSelectOptions");function kg(e){return e.question}i(kg,"getAskUserDialogTitle");function Z$(e){switch(e){case"confirm":return Q("waiting.confirm");case"select":return Q("waiting.select");case"input":return Q("waiting.input")}}i(Z$,"formatPromptWaitingText");function bb(e){return e.waitingReason==="confirm"?Q("placeholder.confirm"):e.waitingReason==="select"?Q("placeholder.select"):e.waitingReason==="input"?Q("placeholder.input"):e.isLoading?e.canQueueFollowUps?Q("placeholder.queue"):Q("placeholder.busy"):Q("placeholder.idle")}i(bb,"buildPromptPlaceholderText");function vb(e){if(e.isTranscriptMode)return;if(e.waitingReason)return{kind:"waiting",text:Z$(e.waitingReason),showSpinner:!1};if(!e.isLoading)return;let t=Mp({activeToolCount:e.streamingState.activeToolCalls.filter(n=>n.status===O.Executing).length,currentTool:e.streamingState.currentTool,isThinkingActive:e.streamingState.isThinking,thinkingCharCount:e.streamingState.thinkingCharCount,isCompacting:e.streamingState.isCompacting,toolInputCharCount:e.streamingState.toolInputCharCount,toolInputContent:e.streamingState.toolInputContent,managedPhase:e.managedState?.phase,managedHarnessProfile:e.managedState?.harnessProfile,managedWorkerTitle:e.managedState?.workerTitle});return t?{kind:"busy",text:t,showSpinner:!0}:void 0}i(vb,"buildPromptActivityViewModel");function Ib(e){return{sessionId:e.sessionId,permissionMode:e.permissionMode,agentMode:e.agentMode,provider:e.provider,model:e.model,currentTool:e.streamingState.currentTool,activeToolCount:e.streamingState.activeToolCalls.filter(t=>t.status===O.Executing).length,thinking:e.thinking,reasoningMode:e.reasoningMode,reasoningCapability:e.reasoningCapability,isThinkingActive:e.streamingState.isThinking,thinkingCharCount:e.streamingState.thinkingCharCount,toolInputCharCount:e.isTranscriptMode?e.streamingState.toolInputCharCount:0,toolInputContent:e.isTranscriptMode?e.streamingState.toolInputContent:"",currentIteration:e.streamingState.currentIteration,maxIter:e.maxIter,contextUsage:e.contextUsage,isCompacting:e.streamingState.isCompacting,showBusyStatus:!1,managedPhase:e.isLoading?e.managedState?.phase:void 0,managedHarnessProfile:e.isLoading?e.managedState?.harnessProfile:void 0,managedWorkerTitle:e.isLoading?e.managedState?.workerTitle:void 0,managedRound:e.isLoading?e.managedState?.round:void 0,managedMaxRounds:e.isLoading?e.managedState?.maxRounds:void 0,managedGlobalWorkBudget:e.isLoading?e.managedState?.globalWorkBudget:void 0,managedBudgetUsage:e.isLoading?e.managedState?.budgetUsage:void 0,managedBudgetApprovalRequired:e.isLoading?e.managedState?.budgetApprovalRequired:void 0,managedIdleWaiting:e.isLoading?e.managedState?.idleWaiting:void 0,managedIdleWaitingPendingCount:e.isLoading?e.managedState?.idleWaitingPendingCount:void 0,autoModeEngine:e.autoModeEngine}}i(Ib,"buildSurfaceStatusBarProps");function kb(e){let t=wg(e.state),n=t?Md(e.state,e.selectableItemIds,e.selectedItemId):void 0,r=n?e.selectableItemIds.indexOf(n):-1;return{selectionEnabled:t,selectedItemId:n,selectedItemIndex:r,position:n?{current:Math.max(1,r+1),total:e.selectableItemIds.length}:void 0,detailState:n&&e.isExpanded?"expanded":"compact",copyCapabilities:{message:t&&!!n,toolInput:t&&!!n&&e.selectedItemType==="tool_group",copyOnSelect:t&&FC(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}i(kb,"buildTranscriptSelectionRuntimeState");function Rb(e){if(!(!e.runtime.selectionEnabled||!e.runtime.selectedItemId))return{itemSummary:e.itemSummary?.summary,itemKind:e.itemSummary?.kindLabel,position:e.runtime.position,detailState:e.runtime.detailState,copyCapabilities:e.runtime.copyCapabilities,toggleDetail:e.runtime.toggleDetail,navigationCapabilities:e.runtime.navigationCapabilities}}i(Rb,"buildTranscriptSelectionViewModel");function Eb(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}i(Eb,"buildTranscriptSearchViewModel");function eL(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}i(eL,"clampTranscriptSearchSelectedIndex");function tL(e){return e.isHistorySearchActive?e.historySearchQuery.trim()?e.matches.length===0?"No matches yet":e.clampedSelectedIndex<0?`${e.matches.length} matches | use n/N or Enter to jump`:e.matches[e.clampedSelectedIndex]?.excerpt:"Type to search transcript":void 0}i(tL,"buildTranscriptSearchDetailText");function Mb(e){let t=eL(e.matches.length,e.selectedIndex),n=tb(e.matches,t),r=tL({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:Eb({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}i(Mb,"buildTranscriptSearchChrome");function nL(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}i(nL,"buildDefaultTranscriptSecondaryText");function Ab(e){let t=[];return e.historySearchQuery.trim().length>0&&e.isHistorySearchActive&&e.historySearchMatchCount===0&&t.push({id:"search-empty",text:"No transcript matches yet",tone:"info"}),e.pendingInputCount>=e.maxPendingInputs&&t.push({id:"queue-full",text:`Queued follow-up limit reached (${e.maxPendingInputs})`,tone:"warning"}),t}i(Ab,"buildFooterNotifications");function _b(e){let t=[];return e.historySearchQuery.trim()&&t.push(`Search: ${e.historySearchQuery.trim()}`),e.pendingInputCount>0&&t.push(`Queued follow-ups: ${e.pendingInputCount}`),t}i(_b,"buildBaseFooterNotices");function Pb(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}i(Pb,"buildStashNoticeText");function $b(e){return[...e]}i($b,"buildPromptFooterNotices");function rL(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?nL(e.showAllActive):n.join(" | ")}i(rL,"buildTranscriptFooterSecondaryText");function oL(e){let t=[];return e&&t.push(e),t}i(oL,"buildTranscriptFooterBudgetNotices");function Lb(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,o=Sb(e.textSelection),s=e.textSelection?ms({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?ms({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=rL({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:o,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:o,actionSummary:s,secondaryText:a,budgetNotices:oL(a)}}i(Lb,"buildTranscriptFooterViewModel");import{jsx as T3,jsxs as S3}from"react/jsx-runtime";function Ob(e,t){if(!(!e||!t||t<=0))switch(e){case"finding-validation":return`Validating ${t} finding${t===1?"":"s"}`;case"module-triage":return`Scanning ${t} module${t===1?"":"s"}`;case"evidence-scan":return`Parallel evidence pass (${t})`;case"hypothesis-check":return`Checking ${t} hypothesis${t===1?"":"es"}`;default:return}}i(Ob,"formatAmaWorkStripText");function Db(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}i(Db,"stripLiveActivityPrefix");function Nb(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?Db(Wu(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?Db(e.liveActivityLabel):void 0;e.activeWorkerTitle?t.push({id:"primary-worker",label:`${e.activeWorkerTitle} active`,accent:!0,selected:!0}):e.activePhase?t.push({id:"primary-phase",label:e.activePhase,accent:!0,selected:!0}):u?t.push({id:"primary-live-activity",label:u,accent:!0,selected:!0}):l?t.push({id:"primary-tool",label:l,accent:!0,selected:!0}):e.isThinkingActive?t.push({id:"primary-thinking",label:"Thinking",accent:!0,selected:!0}):t.push({id:"primary-generic",label:"Agent active",accent:!0,selected:!0})}e.parallelText&&t.push({id:"parallel",label:e.parallelText});let[r,o,s,...a]=t,c=[r,o,s].filter(l=>!!l);return e.isLoading?{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}:{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}}i(Nb,"buildBackgroundTaskViewModel");function Bb(e,t){if(!(!t||!e||e.agentMode!=="ama"))return Ob(e.childFanoutClass,e.childFanoutCount)}i(Bb,"buildAmaWorkStripFromStatus");function Rg(e){let t=Bb(e.status,e.isLoading);return{workStripText:t,backgroundTask:Nb({isLoading:e.isLoading,showPrimary:!!(e.parallelTextOverride??t),activeWorkerTitle:e.status?.activeWorkerTitle,activePhase:e.status?.phase??(e.agentMode==="ama"?"AMA active":void 0),parallelText:e.parallelTextOverride??t,currentTool:e.currentTool,toolInputCharCount:e.toolInputCharCount,toolInputContent:e.toolInputContent,liveActivityLabel:e.liveActivityLabel,isThinkingActive:e.isThinkingActive})}}i(Rg,"buildAmaSummaryViewModel");function Eg(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}i(Eg,"captureTranscriptSnapshot");function Hb(e){if(!e.isTranscriptMode||!e.snapshot)return 0;let t=Math.max(0,e.currentItemsLength-e.snapshot.items.length);return e.isLoading!==e.snapshot.isLoading&&(t+=1),e.currentResponse!==e.snapshot.currentResponse&&(t+=1),e.thinkingContent!==e.snapshot.thinkingContent&&(t+=1),e.activeToolCallsLength!==e.snapshot.activeToolCalls.length&&(t+=1),(e.currentManagedLiveEventsLength??0)!==e.snapshot.managedLiveEvents.length&&(t+=1),t}i(Hb,"countPendingTranscriptUpdates");function Fb(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}i(Fb,"resolveTranscriptSurfaceItems");function Wb(e){let t=[];for(let n of e)switch(n.type){case"user":case"system":case"error":case"tool_group":case"event":case"info":t.push({...n});break;case"assistant":case"thinking":{let{compactText:r,...o}=n;t.push(o);break}default:break}return t}i(Wb,"buildPromptSurfaceItems");function Ub(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}i(Ub,"resolveFullscreenShellMode");function iL(e,t){return e.enabled&&Ub(e,t)==="virtual"}i(iL,"shouldUseRendererViewportShell");function jb(e,t){let n=Ub(e,t),r=e.enabled&&n==="virtual",o=e.enabled&&n==="virtual",s=r&&(e.mouseWheel||e.mouseClicks),a=s&&e.mouseClicks,c=o&&e.mouseWheel;return{shellMode:n,usesAlternateScreenShell:r,usesRendererViewportShell:o,usesRendererMouseTracking:s,usesManagedMouseClicks:a,usesManagedMouseWheel:c,usesManagedSelection:o,usesManagedWheelHistory:c,usesNativeMainScreenScrollback:!o}}i(jb,"resolveTranscriptInteractionPolicy");function Gb(e,t,n){return iL(e,t)?t==="transcript"||n:!1}i(Gb,"shouldOwnTranscriptViewport");var sL=500,aL=1,cL=/[\p{L}\p{N}_/.\-+~\\]/u;function lL(e){return e.text===" "?"":e.text}i(lL,"normalizeTranscriptRowText");function Kb(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(Kb,"comparePoints");function Mg(e){return e===""||/\s/.test(e)?0:cL.test(e)?1:2}i(Mg,"charClass");function Vb(e){let t=e.timeoutMs??sL,n=e.distance??aL,r=e.time-e.previous.time<=t,o=Math.abs(e.row-e.previous.row)<=n&&Math.abs(e.column-e.previous.column)<=n,s=r&&o?Math.min(3,e.previous.count+1):1;return{time:e.time,row:e.row,column:e.column,count:s}}i(Vb,"resolveTranscriptMultiClickState");function _d(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let o=lL(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:Gr(o)}};let s=Gr(o);if(s===0)return{kind:n,start:{...t,column:0},end:{...t,column:0}};let a=Math.max(0,Math.min(s-1,t.column));t.column===s&&(a=s-1);let c=Mg(Gu(o,a)),l=a,u=a+1;for(;l>0&&Mg(Gu(o,l-1))===c;)l-=1;for(;u<s&&Mg(Gu(o,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}i(_d,"resolveTranscriptSelectionSpanAt");function Ag(e,t){return Kb(t.end,e.start)<0?{anchor:e.end,focus:t.start}:Kb(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}i(Ag,"extendTranscriptSelectionSpan");var Xb="Do not try to modify files while planning. Finish the plan first, then call exit_plan_mode with the finalized plan \u2014 the user will review and approve or reject.";function _g(e,t){if(zt(e))return[t.getGuardrail()]}i(_g,"buildAutoModeGuardrails");function dL(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}i(dL,"resolveInitialReasoningMode");function Yb(e){let t=e.managedTask;if(!t)return[];let n=i(u=>{if(!e.interrupted&&!t.verdict.signalReason?.includes("Orchestration cancelled"))return!1;let m=u.signalReason?.trim()??"",p=u.summary?.trim()??"",g=u.output?.trim()??"",x=m.includes("Orchestration cancelled"),y=p.includes("Orchestration cancelled"),w=!g||p==="No textual output produced.";return u.status!=="completed"&&(x||y||w)||(x||y)&&w},"isInterruptedCancellation"),r=mL(t),o=new Map(t.roleAssignments.map((u,m)=>[u.id,m])),s=t.verdict.decidedByAssignmentId,a=Math.max(0,...t.evidence.entries.filter(u=>u.assignmentId===s).map(u=>u.round??1)),c=[...t.evidence.entries].sort((u,m)=>{let p=(u.round??1)-(m.round??1);return p!==0?p:(o.get(u.assignmentId)??0)-(o.get(m.assignmentId)??0)}).filter(u=>!n(u)).filter(u=>e.interrupted||!(u.assignmentId===s&&(u.round??1)===a)).map(u=>{let m=u.output?.trim()??"",p=u.summary?.trim()??"",g=m?Io(m):"",x=p?Io(p):"",y=u.role==="scout"?x?`Scout completed: ${x}`:"Scout completed.":x;return{entry:u,text:x||g||y}}).filter(({text:u})=>!!u).map(({entry:u,text:m})=>{let p=u.role==="scout"?" Preflight":(u.round??1)>1?` Round ${u.round}`:"";return`[${u.title??u.assignmentId}${p}]
|
|
320
|
-
${m}`}),l=t.verdict.disposition==="complete"?Q("managed.completed"):t.verdict.disposition==="needs_continuation"?Q("managed.completed.continuation"):t.verdict.disposition==="blocked"?Q("managed.completed.blocked"):void 0;return[...r?[r]:[],...c,...l?[`[${l}]`]:[]]}i(Yb,"buildManagedTaskTranscriptItems");function fL(e){let t=e.split(/\r?\n/).map(s=>s.trim()).filter(Boolean);if(t.length===0)return;if(t.length===1)return t[0];let[n,r]=t,o=n.startsWith("[")?`${n} ${r}`:`${n} / ${r}`;return o.length>220?`${o.slice(0,217)}...`:o}i(fL,"buildManagedTranscriptCompactText");function n0(e){return e===`[${Q("managed.completed")}]`||e===`[${Q("managed.completed.blocked")}]`||e===`[${Q("managed.completed.continuation")}]`}i(n0,"isCompletionTranscriptItem");function qb(e){let t=fL(e);return{type:"event",icon:n0(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}i(qb,"toManagedTranscriptEventItem");function Wo(e){switch(e.type){case"assistant":return{type:"assistant",text:e.text,...e.compactText?{compactText:e.compactText}:{}};case"thinking":return{type:"thinking",text:e.text,...e.compactText?{compactText:e.compactText}:{}};case"event":return{type:"event",text:e.text,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"info":return{type:"info",text:e.text,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"error":return{type:"error",text:e.text};case"system":return{type:"system",text:e.text};case"hint":return{type:"hint",text:e.text};case"tool_group":return{type:"tool_group",tools:e.tools};case"user":return{type:"user",text:e.text};default:return e}}i(Wo,"toCreatableHistoryItem");function mL(e){let t=e.runtime?.rawRoutingDecision,n=e.runtime?.finalRoutingDecision;return!t||!n||t.harnessProfile==="H0_DIRECT"&&n.harnessProfile==="H0_DIRECT"?void 0:["[Routing]",`AMA routing: raw=${t.harnessProfile}(${t.routingSource??"unknown"}) -> final=${n.harnessProfile}`,`Primary task: ${t.primaryTask}`,`Review target: ${n.reviewTarget??"general"}`,`Review scale: ${n.reviewScale??"unknown"}`,`Solo boundary: ${t.soloBoundaryConfidence?.toFixed(2)??"n/a"}`,`Independent QA: ${t.needsIndependentQA?"yes":"no"}`,e.runtime?.qualityAssuranceMode?`Quality assurance: ${e.runtime.qualityAssuranceMode}`:void 0,e.runtime?.budget?`Adaptive budget: rounds=${e.runtime.budget.plannedRounds} total=${e.runtime.budget.totalBudget} reserve=${e.runtime.budget.reserveBudget}`:void 0,e.runtime?.routingOverrideReason?`Override reason: ${e.runtime.routingOverrideReason}`:void 0,n.upgradeCeiling?`Upgrade ceiling: ${n.upgradeCeiling}`:void 0].filter(o=>!!o).join(`
|
|
321
|
-
`)}i(mL,"buildManagedTaskRoutingTranscript");function pL(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(pL,"truncateToolPreview");function gL(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(gL,"truncateToolOutputPreview");function Og(e,t){if(!e||!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^\\[Tools\\]\\s+\\[${n}\\]\\s+`,"i"),"[Tools] ").replace(new RegExp(`^\\[Thinking\\]\\s+\\[${n}\\]\\s*`,"i"),"[Thinking] ").replace(new RegExp(`^\\[${n}\\]\\s+thinking\\b`,"i"),"[Thinking]").trim()}i(Og,"formatManagedLiveActivityLabel");function Xr(e,t){return Og(`[Tools] ${Hu(e)}`,t)??`[Tools] ${Hu(e)}`}i(Xr,"formatManagedLiveToolLabel");function Pg(e,t){if(e.type!==t.type)return!1;switch(e.type){case"assistant":{let n=t;return e.text===n.text&&e.compactText===n.compactText}case"thinking":{let n=t;return e.text===n.text&&e.compactText===n.compactText}case"event":{let n=t;return e.text===n.text&&e.compactText===n.compactText&&e.icon===n.icon}case"info":{let n=t;return e.text===n.text&&e.compactText===n.compactText&&e.icon===n.icon}case"error":case"hint":case"system":case"user":{let n=t;return e.text===n.text}case"tool_group":{let n=t;return JSON.stringify(e.tools)===JSON.stringify(n.tools)}default:return!1}}i(Pg,"areManagedLiveItemsEquivalent");function hL(e){return e==="Task completed"?Q("managed.completed"):e==="Task needs continuation"?Q("managed.completed.continuation"):e==="Task ended: blocked"?Q("managed.completed.blocked"):e==="Task ended: needs_continuation"?Q("managed.completed.continuation"):e.startsWith("Task ended:")?Q("managed.completed.blocked"):e}i(hL,"localizeManagedCompletionSummary");function yL(e){if(e.events&&e.events.length>0)return e.events.reduce((r,o)=>{let s=o.summary.trim(),a=(o.detail??o.summary).trim();if(!s||!a)return r;let c=`managed-live-${o.key}`,l=Date.now(),u=o.persistToHistory??e.persistToHistory??!1;if(o.presentation==="thinking")return r.push({item:{id:c,type:"thinking",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;if(o.presentation==="assistant")return r.push({item:{id:c,type:"assistant",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;let m=o.kind==="completed";if(m&&!Ld)return r;let p=m?`[${hL(s)}]`:void 0,g=p??s,x=p??a;return r.push({item:{id:c,type:"event",timestamp:l,text:x,icon:o.kind==="warning"?"!":m?"\u2713":">",...g!==x?{compactText:g}:{}},persistToHistory:u}),r},[]);if(e.phase==="completed"&&!Ld)return[];let t=oc(e),n=oc(e,{expanded:!0})??t;return!t||!n?[]:[{item:{id:`managed-live-fallback-${e.phase??"worker"}-${t.toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48)}`,type:"event",timestamp:Date.now(),text:n,icon:">",...t!==n?{compactText:t}:{}},persistToHistory:e.persistToHistory??!1}]}i(yL,"buildManagedLiveEventDrafts");function r0(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}i(r0,"stripToolRolePrefix");function Qb(e){return r0(e).toLowerCase()}i(Qb,"normalizeToolNameForMatch");function Dg(e){return oT(e)?"":Io(e).trim()}i(Dg,"sanitizeInterruptedAssistantText");function Jb(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}i(Jb,"isForegroundManagedStreamingStatus");function xL(e,t,n){let r=[],o=n?.infoItems??[],s=Ng({thinking:e,toolCalls:n?.toolCalls,toolNames:n?.toolNames});for(let c of o){let l=c.trim();l&&r.push({type:"info",text:l})}r.push(...s);let a=Dg(t);return a&&r.push({type:"assistant",text:`${a}
|
|
322
|
-
|
|
323
|
-
[Interrupted]`}),r}i(xL,"buildInterruptedPersistenceItems");function Ng({thinking:e,response:t,toolCalls:n,toolNames:r}){let o=[],s=e?.trim()??"",a=t?.trim()??"",c=n&&n.length>0?[...n]:[],l=r&&r.length>0?[...r]:[];return s&&o.push({type:"thinking",text:s}),c.length>0?o.push({type:"tool_group",tools:c}):!s&&!a&&l.length>0&&o.push({type:"info",icon:"*",text:`Tools: ${l.join(", ")}`}),a&&o.push({type:"assistant",text:a}),o}i(Ng,"buildRoundHistoryItems");function o0(e){if(e.type==="tool_group")return;let t=typeof e.text=="string"?e.text.trimEnd():"";if(t)return{type:e.type,text:t,...typeof e.icon=="string"&&e.icon.length>0?{icon:e.icon}:{},...typeof e.compactText=="string"&&e.compactText.length>0?{compactText:e.compactText.trimEnd()}:{}}}i(o0,"toPersistedUiHistoryItem");var Zb=150,e0=50,Ld=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function Uo(e){if(e.length===0)return[];let t=[];for(let r=0;r<e.length;r+=1)e[r]?.type==="user"&&t.push(r);let n=[...e];if(t.length>e0){let r=t[t.length-e0]??0;n=e.slice(r)}if(n.length>Zb){let r=n.slice(-Zb),o=r.findIndex(s=>s.type==="user");n=o>0?r.slice(o):r}return[...n]}i(Uo,"trimPersistedUiHistorySnapshot");function bs(e){if(e)return Uo(e)}i(bs,"normalizePersistedUiHistory");function t0(e){return Uo(e.map(t=>o0(t)).filter(t=>!!t))}i(t0,"serializeUiHistorySnapshot");function wL(e){return e.map(t=>o0(t)).filter(t=>!!t)}i(wL,"serializeCreatableHistoryItems");function Pd(e,t){return t.length===0?Uo(e):Uo([...e,...wL(t)])}i(Pd,"appendPersistedUiHistorySnapshot");function $d(e,t,n){console.log((e==="block"?Ve.red:Ve.yellow)(t)),n.forEach(r=>console.log(Ve.dim(r)))}i($d,"logSessionTransitionGuard");var $g=i(({config:e,sessionId:t,workingDir:n,terminalWidth:r,compactionInfo:o})=>{let s=te("dark"),a=e.model??jn(e.provider)??e.provider,c=fo(e.provider,e.model),l=Cl(c),u=Math.min(60,r-4),m=o?Math.round(o.contextWindow/1e3):0,p=o?Math.round(o.contextWindow*o.triggerPercent/100/1e3):0;return jt(k,{flexDirection:"column",marginBottom:1,children:[ig.map((g,x)=>oe(b,{color:s.colors.primary,children:g},x)),jt(k,{children:[jt(b,{bold:!0,color:s.colors.text,children:[" v",Ci]}),oe(b,{dimColor:!0,children:" | "}),jt(b,{color:s.colors.success,children:[e.provider,"/",a]}),oe(b,{dimColor:!0,children:` [${l}]`}),oe(b,{dimColor:!0,children:" | "}),oe(b,{color:s.colors.primary,children:e.agentMode.toUpperCase()}),oe(b,{dimColor:!0,children:" | "}),oe(b,{color:s.colors.accent,children:e.permissionMode}),e.reasoningMode!=="off"&&oe(b,{color:s.colors.warning,children:` +reason:${e.reasoningMode}`})]}),o&&jt(k,{children:[oe(b,{dimColor:!0,children:" Context: "}),jt(b,{dimColor:!0,children:[m,"k"]}),oe(b,{dimColor:!0,children:" | Compaction: "}),oe(b,{color:o.enabled?s.colors.success:void 0,dimColor:!o.enabled,children:o.enabled?"on":"off"}),oe(b,{dimColor:!0,children:` @ ${o.triggerPercent}% (${p}k)`})]}),jt(b,{dimColor:!0,children:[" ","-".repeat(u)]}),jt(k,{children:[oe(b,{dimColor:!0,children:" Session: "}),oe(b,{color:s.colors.accent,children:t}),oe(b,{dimColor:!0,children:" | Working: "}),oe(b,{dimColor:!0,children:n})]}),jt(b,{dimColor:!0,children:[" ","-".repeat(u)]})]})},"Banner");function TL(e){let t=e.config.model??jn(e.config.provider)??e.config.provider,n=fo(e.config.provider,e.config.model),r=Cl(n),o=Math.min(60,e.terminalWidth-4),s=e.compactionInfo?Math.round(e.compactionInfo.contextWindow/1e3):0,a=e.compactionInfo?Math.round(e.compactionInfo.contextWindow*e.compactionInfo.triggerPercent/100/1e3):0,c=` v${Ci} | ${e.config.provider}/${t} [${r}] | ${e.config.agentMode.toUpperCase()} | ${e.config.permissionMode}${e.config.reasoningMode!=="off"?` +reason:${e.config.reasoningMode}`:""}`,l=e.compactionInfo?` Context: ${s}k | Compaction: ${e.compactionInfo.enabled?"on":"off"} @ ${e.compactionInfo.triggerPercent}% (${a}k)`:void 0,u=` Session: ${e.sessionId} | Working: ${e.workingDir}`,m=` ${"-".repeat(o)}`,p=[],g=i(y=>{let w=Kt(y.length>0?y.split(`
|
|
324
|
-
`):[""],Math.max(1,e.terminalWidth),0,0);return w.visualLines.length>0?w.visualLines:[""]},"wrapBannerLine"),x=i((y,w,S)=>{g(w).forEach((I,$)=>{p.push({key:`${y}-${$}`,text:I,...S})})},"pushLineRows");return ig.forEach((y,w)=>{x(`banner-logo-${w}`,y,{color:"primary"})}),x("banner-version",c,{color:"text",bold:!0}),l&&x("banner-compaction",l,{color:"dim"}),x("banner-divider-top",m,{color:"dim"}),x("banner-session",u,{color:"dim"}),x("banner-divider-bottom",m,{color:"dim"}),p.push({key:"banner-blank",text:" "}),{key:"banner",rows:p}}i(TL,"buildBannerTranscriptSection");function Lg(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}i(Lg,"prependTranscriptSection");var SL=i(({options:e,config:t,context:n,storage:r,rendererMode:o,fullscreenPolicy:s,onExit:a,compactionInfo:c,autoModeBootstrap:l,setAutoModeAskUser:u,setAutoModeEngineChange:m,setCurrentConfigRef:p,onAgentsFilesReload:g})=>{let{exit:x}=Nr(),{stdout:y}=zn(),{stdin:w,setRawMode:S,isRawModeSupported:I}=Ca(),$=Xi(),{history:L}=Xa(),G=zb.useRef(null),N=zb.useRef(Ly()),{addHistoryItem:C,clearHistory:J,setSessionId:ce}=Ya(),we=fe(L),F=fe(t0(L));Ne(()=>{we.current=L,F.current=t0(L)},[L]),Ne(()=>{SC()},[]),Ne(()=>{wT()},[]);let X=y.columns||80,v=Ja(),M=fe(v);Ne(()=>{M.current=v},[v]);let{startStreaming:Z,stopStreaming:Ce,abort:de,startThinking:Be,appendThinkingChars:ie,appendThinkingContent:se,stopThinking:ne,clearThinkingContent:V,setCurrentTool:ye,appendToolInputChars:it,appendToolInputContent:be,clearToolInputContent:Te,clearResponse:Le,appendResponse:Se,getSignal:pt,getFullResponse:et,getThinkingContent:Je,startNewIteration:A,clearIterationHistory:_,startCompacting:P,stopCompacting:Y,setMaxIter:xe,addPendingInput:ze,removeLastPendingInput:ve,shiftPendingInput:Ae,consumePendingInputs:Dn}=Za(),[Ie,q]=De(!1),[D,We]=De(t),[je,sn]=De(!0),[rr,hc]=De(!0),[bn,yc]=De(0),[Ud,Rs]=De(!1),[Yg,or]=De(null),U0=ue(()=>go(),[]),xc=fe(null),wc=fe(null),qg=fe(Promise.resolve()),Tc=fe(null),qr=fe({requested:!1,uiHistoryOverride:void 0}),Es=fe(null),Ms=fe(!1),As=fe(null),[jd,Sc]=De(!0),[Gd,Cc]=De(""),[$e,Nn]=De(()=>EC(U0,{rendererMode:o})),[Nt,Kd]=De(!1),[j0,G0]=De(0),{scrollRef:K0,scrollOffset:vn,sticky:Vd,setScrollOffset:V0,handleScrollTopChange:z0,handleStickyChange:X0,scrollTo:bc,scrollBy:vc,scrollToBottom:Ic}=fb(),zd=fe(null),kc=fe(null),_s=fe([]),Rc=fe([]),Go=fe(null),In=fe(null),Qg=fe({time:0,row:-1,column:-1,count:0}),[Ec,Xd]=De(void 0),[Qr,Yd]=De(void 0),[Ko,Jg]=De(void 0),[Qt,Y0]=De(()=>new Set),[qd,Zg]=De(null),[kt,eh]=De(null),[U,Qd]=De(null),[Mc,Cr]=De([]),Vo=ue(()=>{for(let f of Mc)if(f.status==="in_progress"){if(f.activeForm&&f.activeForm.length>0)return f.activeForm;if(f.content&&f.content.length>0)return f.content}},[Mc]),[b1,Ps]=De([]),[$s,q0]=De([]),[Ac,lt]=De(void 0),[Jr,_c]=De(void 0),tt=fe(null),Jd=fe(null),Zr=fe([]),zo=fe([]),an=fe([]),Ze=fe({}),ut=fe({activeToolGroupTools:[]}),th=fe(0),Pc=fe({itemId:void 0,kind:"thinking",pendingText:""}),kn=fe(null),Q0=80,J0=20,Z0=fe(null),$c=ue(()=>[...L,...$s],[L,$s]),Zd=ue(()=>{let f=uS($c,Z0);return f===0?$c:$c.slice(f)},[$c]),ef=ue(()=>dS(Zd,J0),[Zd]),Ls=Zd,Rt=fe(null),Bn=fe(null),Hn=fe([]),Et=fe([]),[eo,ev]=De([]),ir=fe([]),cn=K(f=>{ir.current=f,ev(f)},[]),nh=K(f=>{Zr.current=f,Ps(f)},[]),Xo=K(f=>{an.current=f,q0(f)},[]),rh=K(f=>{let h=f([...an.current]);Xo(h)},[Xo]),oh=K(f=>{f.length!==0&&Xo([...an.current,...f])},[Xo]),Lc=K(f=>{let h=ut.current,T=h.activeToolGroupTools.some(R=>R.status===O.Executing);ut.current={...f?.clearOwner?{}:{workerId:h.workerId,workerTitle:h.workerTitle},...T?{activeToolGroupItemId:h.activeToolGroupItemId,activeToolGroupTools:h.activeToolGroupTools}:{activeToolGroupTools:[]}},f?.clearOwner&&(Ze.current={})},[]),Os=K(()=>{Pc.current={itemId:void 0,kind:"thinking",pendingText:""},kn.current&&(clearTimeout(kn.current),kn.current=null),Lc({clearOwner:!0}),Xo([])},[Lc,Xo]),Oc=K(f=>(th.current+=1,`managed-foreground-${f}-${th.current}`),[]),ln=K(f=>(oh([f]),f.id),[oh]),to=K((f,h)=>{Ze.current.workerId?ln({id:`${h}-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:f.type,text:f.text,...f.icon?{icon:f.icon}:{},...f.tightSpacing?{tightSpacing:!0}:{},timestamp:Date.now()}):C(f)},[C,ln]),br=K((f,h)=>{if(!f)return;let T;return rh(R=>R.map(E=>E.id!==f?E:(T=h(E),T))),T},[rh]),Yo=K((f,h)=>{let T=ut.current;if(T.activeKind===f){if(f==="thinking"&&T.activeThinkingItemId)return T.activeThinkingItemId;if(f==="assistant"&&T.activeAssistantItemId)return T.activeAssistantItemId;if(f==="tool_group"&&T.activeToolGroupItemId)return T.activeToolGroupItemId}let R=Date.now(),E=h?.trim()?`[${h.trim()}] `:"",H=T.activeToolGroupTools.some(z=>z.status===O.Executing);if(f==="thinking"){let z=ln({id:Oc("thinking"),type:"thinking",timestamp:R,text:E});return ut.current={...ut.current,activeKind:"thinking",activeThinkingItemId:z,activeAssistantItemId:void 0,...H?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},z}if(f==="assistant"){let z=ln({id:Oc("assistant"),type:"assistant",timestamp:R,text:E});return ut.current={...ut.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:z,...H?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},z}let B=ln({id:Oc("tool_group"),type:"tool_group",timestamp:R,tools:[]});return ut.current={...ut.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:B,activeToolGroupTools:[]},B},[ln,Oc]),vr=K(()=>{kn.current&&(clearTimeout(kn.current),kn.current=null);let f=Pc.current;if(!f.pendingText||!f.itemId)return;let h=f.pendingText,T=f.itemId,R=f.kind;f.pendingText="",br(T,E=>E.type!==R?E:{...E,text:`${E.text}${h}`})},[br]),ih=K(()=>{kn.current||(kn.current=setTimeout(vr,Q0))},[vr]),Dc=K((f,h)=>{if(!h)return;let T=ut.current.workerTitle,R=Yo(f,T),E=Pc.current;E.itemId===R&&E.kind===f?E.pendingText+=h:(vr(),E.itemId=R,E.kind=f,E.pendingText=h),ih()},[Yo,vr,ih]),sh=K(f=>{let h=f.trim();if(!h)return;let T=Pc.current;T.kind==="thinking"&&T.pendingText&&(T.pendingText="",kn.current&&(clearTimeout(kn.current),kn.current=null));let R=ut.current.workerTitle?.trim(),E=R?`[${R}] ${h}`:h,H=Yo("thinking",ut.current.workerTitle);br(H,B=>B.type==="thinking"?{...B,text:E}:B)},[Yo,br]),Rn=K(f=>{vr();let h=ut.current;if(h.activeToolGroupItemId&&h.activeToolGroupTools.some(B=>B.id===f.id)){let B=h.activeToolGroupTools.map(re=>re.id===f.id?f:re),z=B.every(re=>re.status===O.Success||re.status===O.Error||re.status===O.Cancelled);ut.current={...h,...z?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:B}},br(h.activeToolGroupItemId,re=>re.type==="tool_group"?{...re,tools:B}:re);return}let T=an.current;for(let B=T.length-1;B>=0;B-=1){let z=T[B];if(z.type!=="tool_group"||!z.tools.some(he=>he.id===f.id))continue;let re=z.tools.map(he=>he.id===f.id?f:he);br(z.id,he=>he.type==="tool_group"?{...he,tools:re}:he);return}let R=Yo("tool_group",h.workerTitle),H=h.activeKind==="tool_group"&&h.activeToolGroupItemId===R?h.activeToolGroupTools.some(B=>B.id===f.id)?h.activeToolGroupTools.map(B=>B.id===f.id?f:B):[...h.activeToolGroupTools,f]:[f];ut.current={...ut.current,activeKind:"tool_group",activeToolGroupItemId:R,activeToolGroupTools:H},br(R,B=>B.type==="tool_group"?{...B,tools:H}:B)},[Yo,br,vr]),tv=K(f=>{vr();let h=ut.current,T=h.activeToolGroupTools.some(H=>H.status===O.Executing),R=ir.current.filter(H=>H.status===O.Executing),E=new Set(R.map(H=>H.id));ut.current={workerId:f?.workerId,workerTitle:f?.workerTitle,...T?{activeToolGroupItemId:h.activeToolGroupItemId,activeToolGroupTools:h.activeToolGroupTools}:{activeToolGroupTools:[]}},Ze.current={workerId:f?.workerId,workerTitle:f?.workerTitle},Hn.current=[],Et.current=Et.current.filter(H=>E.has(H.id)),cn(R),Te(),ye(void 0),ne(),V(),Le(),lt(void 0)},[vr,Te,Le,V,ye,cn,lt,ne]),nv=K(f=>{if(f.length===0)return[];let h=[],T=[...Zr.current],R=[...zo.current];for(let E of f){let H=E.item,B=T.findIndex(z=>z.id===H.id);if(B>=0){let z=T[B];Pg(z,H)||(T=T.map((re,he)=>he===B?{...H,timestamp:z.timestamp}:re))}else T=[...T,H].slice(-12),h.push(H);if(E.persistToHistory){let z=R.findIndex(re=>re.id===H.id);if(z>=0){let re=R[z];Pg(re,H)||(R=R.map((he,st)=>st===z?{...H,timestamp:re.timestamp}:he))}else R=[...R,H].slice(-48)}}return zo.current=R,(h.length>0||T.some((E,H)=>!Pg(E,Zr.current[H]??E)||E.id!==Zr.current[H]?.id))&&nh(T),h},[nh]),Nc=K(f=>{if(Et.current.findIndex(T=>T.id===f.id)===-1){Et.current=[...Et.current,f];return}Et.current=Et.current.map(T=>T.id===f.id?f:T)},[]),Ir=K(f=>{let h=ir.current.filter(T=>T.status===O.Executing);if(h.length!==0){if(f){let T=Qb(f);for(let R=h.length-1;R>=0;R-=1){let E=h[R];if(Qb(E.name)===T)return E}}return h[h.length-1]}},[]),qo=K(()=>{let f=Ir();ye(f?r0(f.name):void 0)},[Ir,ye]),ah=K(f=>(Nc(f),cn([...ir.current.filter(h=>h.id!==f.id),f]),qo(),f),[cn,qo,Nc]),Qo=K((f,h)=>{let T=ir.current.find(E=>E.id===f);if(!T)return null;let R=h(T);return Nc(R),cn(ir.current.map(E=>E.id===f?R:E)),qo(),R},[cn,qo,Nc]),ch=K((f,h,T)=>{if(f){let E=Qo(f,T);if(E)return E}let R=Ir(h);return R?Qo(R.id,T):null},[Ir,Qo]),Bc=K((f,h,T,R,E)=>{let H=f??Ir(E)?.id;return H?Qo(H,B=>({...B,status:h,endTime:Date.now(),error:T,output:R})):null},[Ir,Qo]),Ds=K((f,h)=>{let T=Date.now(),R=new Map;for(let E of ir.current){if(E.status!==O.Executing)continue;let H=h(E);R.set(E.id,{...E,status:f,endTime:T,...H})}return R.size===0?[]:(Et.current=Et.current.map(E=>R.get(E.id)??E),cn(ir.current.map(E=>R.get(E.id)??E)),qo(),[...R.values()])},[cn,qo]),kr=K(()=>{cn([])},[cn]),{showHelp:lh,toggleHelp:rv,setShowHelp:uh}=cg(),ov=K(f=>{Cc(f),Sc(f.trim().length===0)},[]),Hc=Po(),dh=ue(()=>Hc?Hc.state.visible&&Hc.suggestions.length>0:!1,[Hc]),[Ns,fh]=De(!1),mh=fe(bn),Bs=K(()=>{Rt.current&&(clearTimeout(Rt.current),Rt.current=null),Bn.current&&(clearTimeout(Bn.current),Bn.current=null)},[]);Ne(()=>{dh&&!Ns&&fh(!0)},[dh,Ns]),Ne(()=>{bn!==mh.current&&(mh.current=bn,Ns&&fh(!1))},[bn,Ns]);let[Xe,Fc]=De(null),no=fe(null),[Me,En]=De(null),Wc=fe(null),Uc=fe(Me);Uc.current=Me;let[Bt,Jo]=De(""),[jc,Mn]=De(0),tf=fe(""),Hs=fe(void 0),ph=ue(()=>{if(!c)return;let{contextWindow:f,triggerPercent:h}=c;return{currentTokens:Yg??n.contextTokenSnapshot?.currentTokens??co(n.messages),contextWindow:f,triggerPercent:h}},[n.messages,n.contextTokenSnapshot,c,Yg]),Fs=ue(()=>{if(!Xe)return;let f=!!Xe.input._alwaysConfirm,h=D.permissionMode==="accept-edits"&&!f;return f?Q("confirm.instruction.protected"):h?Q("confirm.instruction.always"):Q("confirm.instruction.basic")},[Xe,D.permissionMode]),nt=$e.searchMode==="history",ee=$e.surface==="transcript",Rr=!!Xe||!!Me||nt,Ht=ee?Nt?iS:1e3:12,Er=jb(s,$e.surface),gh=Er.shellMode,nf=Er.usesAlternateScreenShell,Zo=Er.usesRendererViewportShell,Gc=Er.usesRendererMouseTracking,hh=Er.usesManagedMouseClicks,yh=Er.usesManagedMouseWheel,rf=Er.usesManagedSelection,gt=Gb(s,$e.surface,BC($e)),xh=HC($e),Kc=Ns&&!ee,wh=K(()=>Eg({items:Ls,managedLiveEvents:[],isLoading:Ie,isThinking:v.isThinking,thinkingCharCount:v.thinkingCharCount,thinkingContent:v.thinkingContent,currentResponse:v.currentResponse,currentTool:v.currentTool,activeToolCalls:eo,toolInputCharCount:v.toolInputCharCount,toolInputContent:v.toolInputContent,lastLiveActivityLabel:Ac,workStripText:Jr,iterationHistory:v.iterationHistory,currentIteration:v.currentIteration,isCompacting:v.isCompacting}),[Ls,Ie,v.isThinking,v.thinkingCharCount,v.thinkingContent,v.currentResponse,v.currentTool,eo,v.toolInputCharCount,v.toolInputContent,Ac,Jr,v.iterationHistory,v.currentIteration,v.isCompacting]);Ne(()=>{if(ee){Zg(f=>f??wh());return}Zg(null)},[wh,ee]);let Ws=ue(()=>Hb({isTranscriptMode:ee,snapshot:qd,currentItemsLength:Ls.length,currentManagedLiveEventsLength:0,isLoading:Ie,currentResponse:v.currentResponse,thinkingContent:v.thinkingContent,activeToolCallsLength:eo.length}),[eo.length,Ie,ee,Ls.length,v.currentResponse,v.thinkingContent,qd]),Mt=ee?qd:null,of=ue(()=>Wb(ef),[ef]),iv=ue(()=>!!($s.length>0||Jb(U)),[$s.length,U]),Vc=$s.length>0,At=s.streamingPreview&&iv,Us=Fb({surface:"transcript",snapshot:Mt,promptItems:ef,transcriptItems:Ls}),js=ue(()=>!ee||Nt||Us.length<=kp?Us:Us.slice(-kp),[Us,ee,Nt]),rt=Mt?.isLoading??Ie,Ye=s.streamingPreview?{isThinking:At?!1:v.isThinking,thinkingCharCount:At?0:v.thinkingCharCount,thinkingContent:At?"":v.thinkingContent,currentResponse:At?"":v.currentResponse,currentTool:At?void 0:v.currentTool,activeToolCalls:At?[]:eo,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:At?Ac:void 0,iterationHistory:[],currentIteration:v.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:v.currentIteration,isCompacting:!1},me=s.streamingPreview?{isThinking:At?!1:Mt?.isThinking??v.isThinking,thinkingCharCount:At?0:Mt?.thinkingCharCount??v.thinkingCharCount,thinkingContent:At?"":Mt?.thinkingContent??v.thinkingContent,currentResponse:At?"":Mt?.currentResponse??v.currentResponse,currentTool:At?void 0:Mt?.currentTool??v.currentTool,activeToolCalls:At?[]:Mt?.activeToolCalls??eo,toolInputCharCount:At?0:Mt?.toolInputCharCount??v.toolInputCharCount,toolInputContent:At?"":Mt?.toolInputContent??v.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:Mt?.lastLiveActivityLabel??Ac,iterationHistory:At?[]:Mt?.iterationHistory??v.iterationHistory,currentIteration:Mt?.currentIteration??v.currentIteration,isCompacting:Mt?.isCompacting??v.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:Mt?.currentIteration??v.currentIteration,isCompacting:!1},sr=ee?Qr:Ec,Th=!!Ec,Sh=K(()=>Eg({items:of,managedLiveEvents:[],isLoading:Ie,isThinking:Ye.isThinking,thinkingCharCount:Ye.thinkingCharCount,thinkingContent:Ye.thinkingContent,currentResponse:Ye.currentResponse,currentTool:Ye.currentTool,activeToolCalls:Ye.activeToolCalls,toolInputCharCount:Ye.toolInputCharCount,toolInputContent:Ye.toolInputContent,lastLiveActivityLabel:Ye.lastLiveActivityLabel,iterationHistory:Ye.iterationHistory,currentIteration:Ye.currentIteration,isCompacting:Ye.isCompacting}),[Ie,of,Ye.activeToolCalls,Ye.currentIteration,Ye.currentResponse,Ye.currentTool,Ye.isCompacting,Ye.isThinking,Ye.iterationHistory,Ye.lastLiveActivityLabel,Ye.thinkingCharCount,Ye.thinkingContent,Ye.toolInputCharCount,Ye.toolInputContent]);Ne(()=>{if(!Th){eh(null);return}eh(f=>f??Sh())},[Sh,Th]);let Gs=kt?.items??of,Ft=kt?.isLoading??Ie,ke=kt?{isThinking:kt.isThinking,thinkingCharCount:kt.thinkingCharCount,thinkingContent:kt.thinkingContent,currentResponse:kt.currentResponse,currentTool:kt.currentTool,activeToolCalls:kt.activeToolCalls,toolInputCharCount:kt.toolInputCharCount,toolInputContent:kt.toolInputContent,managedLiveEvents:kt.managedLiveEvents,lastLiveActivityLabel:kt.lastLiveActivityLabel,iterationHistory:kt.iterationHistory,currentIteration:kt.currentIteration,isCompacting:kt.isCompacting}:Ye,bt=ee?js:Gs,Fn=ee?rt:Ft,He=ee?me:ke,Ch=Ft&&!v.currentResponse&&!v.thinkingContent&&eo.length===0,ro=ue(()=>({config:D,sessionId:n.sessionId,workingDir:e.context?.gitRoot||process.cwd(),terminalWidth:X,compactionInfo:c??void 0}),[c,n.sessionId,D,e.context?.gitRoot,X]),ei=ue(()=>s.enabled&&rr?TL(ro):void 0,[ro,s.enabled,rr]),zc=ue(()=>Lg(Ip(us({items:Gs,viewportWidth:X,isLoading:Ft,maxLines:Ht,isThinking:ke.isThinking,thinkingCharCount:ke.thinkingCharCount,thinkingContent:ke.thinkingContent,streamingResponse:ke.currentResponse,currentTool:ke.currentTool,activeToolCalls:ke.activeToolCalls,toolInputCharCount:ke.toolInputCharCount,toolInputContent:ke.toolInputContent,iterationHistory:ke.iterationHistory,currentIteration:ke.currentIteration,isCompacting:ke.isCompacting,managedAgentMode:D.agentMode,managedPhase:Ft?U?.phase:void 0,managedHarnessProfile:Ft?U?.harnessProfile:void 0,managedWorkerTitle:Ft?U?.activeWorkerTitle:void 0,managedRound:Ft?U?.currentRound:void 0,managedMaxRounds:Ft?U?.maxRounds:void 0,managedGlobalWorkBudget:Ft?U?.globalWorkBudget:void 0,managedBudgetUsage:Ft?U?.budgetUsage:void 0,managedBudgetApprovalRequired:Ft?U?.budgetApprovalRequired:void 0,lastLiveActivityLabel:ke.lastLiveActivityLabel,currentTodoActiveForm:Vo,windowed:!1,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:Ch})),ei),[D.agentMode,Gs,Ft,ke.activeToolCalls,ke.currentIteration,ke.currentTool,ke.isCompacting,ke.currentResponse,ke.isThinking,ke.iterationHistory,ke.lastLiveActivityLabel,ke.thinkingCharCount,ke.thinkingContent,ke.toolInputCharCount,ke.toolInputContent,U?.activeWorkerTitle,U?.budgetApprovalRequired,U?.budgetUsage,U?.currentRound,U?.globalWorkBudget,U?.harnessProfile,U?.maxRounds,U?.phase,Ch,ei,X,Ht,Vo]),Xc=ue(()=>{if(!(!ee||Zo))return Lg(Ip(us({items:js,viewportWidth:X,isLoading:rt,maxLines:Ht,isThinking:me.isThinking,thinkingCharCount:me.thinkingCharCount,thinkingContent:me.thinkingContent,streamingResponse:me.currentResponse,currentTool:me.currentTool,activeToolCalls:me.activeToolCalls,toolInputCharCount:me.toolInputCharCount,toolInputContent:me.toolInputContent,iterationHistory:me.iterationHistory,currentIteration:me.currentIteration,isCompacting:me.isCompacting,managedAgentMode:D.agentMode,managedPhase:rt?U?.phase:void 0,managedHarnessProfile:rt?U?.harnessProfile:void 0,managedWorkerTitle:rt?U?.activeWorkerTitle:void 0,managedRound:rt?U?.currentRound:void 0,managedMaxRounds:rt?U?.maxRounds:void 0,managedGlobalWorkBudget:rt?U?.globalWorkBudget:void 0,managedBudgetUsage:rt?U?.budgetUsage:void 0,managedBudgetApprovalRequired:rt?U?.budgetApprovalRequired:void 0,lastLiveActivityLabel:me.lastLiveActivityLabel,currentTodoActiveForm:Vo,windowed:!1,showFullThinking:!0,showDetailedTools:Nt,showAllContent:Nt,showLiveProgressRows:!Vc,expandedItemKeys:Qt})),ei)},[D.agentMode,Qt,Vc,ei,ee,U?.activeWorkerTitle,U?.budgetApprovalRequired,U?.budgetUsage,U?.currentRound,U?.globalWorkBudget,U?.harnessProfile,U?.maxRounds,U?.phase,X,rt,js,Ht,me.activeToolCalls,me.currentIteration,me.currentResponse,me.currentTool,me.isCompacting,me.isThinking,me.iterationHistory,me.lastLiveActivityLabel,me.thinkingCharCount,me.thinkingContent,me.toolInputCharCount,me.toolInputContent,Nt,Zo,Vo]),Ks=ue(()=>{if(gt)return ee?Lg(us({items:bt,viewportWidth:X,isLoading:Fn,maxLines:Ht,isThinking:He.isThinking,thinkingCharCount:He.thinkingCharCount,thinkingContent:He.thinkingContent,streamingResponse:He.currentResponse,currentTool:He.currentTool,activeToolCalls:He.activeToolCalls,toolInputCharCount:He.toolInputCharCount,toolInputContent:He.toolInputContent,iterationHistory:He.iterationHistory,currentIteration:He.currentIteration,isCompacting:He.isCompacting,managedAgentMode:D.agentMode,managedPhase:Fn?U?.phase:void 0,managedHarnessProfile:Fn?U?.harnessProfile:void 0,managedWorkerTitle:Fn?U?.activeWorkerTitle:void 0,managedRound:Fn?U?.currentRound:void 0,managedMaxRounds:Fn?U?.maxRounds:void 0,managedGlobalWorkBudget:Fn?U?.globalWorkBudget:void 0,managedBudgetUsage:Fn?U?.budgetUsage:void 0,managedBudgetApprovalRequired:Fn?U?.budgetApprovalRequired:void 0,lastLiveActivityLabel:He.lastLiveActivityLabel,currentTodoActiveForm:Vo,windowed:!0,showFullThinking:ee,showDetailedTools:Nt,showAllContent:Nt,showLiveProgressRows:ee&&!Vc,expandedItemKeys:ee?Qt:void 0}),ei):zc},[D.agentMode,Fn,bt,Vc,ei,He.activeToolCalls,He.currentIteration,He.currentResponse,He.currentTool,He.isCompacting,He.isThinking,He.iterationHistory,He.lastLiveActivityLabel,He.thinkingCharCount,He.thinkingContent,He.toolInputCharCount,He.toolInputContent,Qt,ee,U?.activeWorkerTitle,U?.budgetApprovalRequired,U?.budgetUsage,U?.currentRound,U?.globalWorkBudget,U?.harnessProfile,U?.maxRounds,U?.phase,zc,Ie,ee,X,Ht,gt,Nt,Vo]),Wn=ue(()=>Ks??Xc,[Ks,Xc]),Vs=ue(()=>Rg({status:U,isLoading:Ie,agentMode:D.agentMode}),[D.agentMode,Ie,U]).workStripText,zs=Mt?.workStripText??Jr,ti=ue(()=>Rg({status:U,isLoading:Ie,agentMode:D.agentMode,parallelTextOverride:zs}),[D.agentMode,zs,Ie,U]),oo=ue(()=>ob(bt),[bt]),Ge=ue(()=>Md($e,oo,$e.selectedItemId),[oo,$e]),Jt=ue(()=>bt.find(f=>f.id===Ge),[bt,Ge]),bh=ue(()=>({...$e,supportsSelection:$e.supportsSelection&>,supportsCopyOnSelect:$e.supportsCopyOnSelect&>}),[$e,gt]),un=ue(()=>kb({state:bh,selectableItemIds:oo,selectedItemId:Ge,selectedItemType:Jt?.type,isExpanded:Ge?Qt.has(Ge):!1}),[Qt,oo,Jt?.type,Ge,bh]),vh=un.selectionEnabled,Ih=un.copyCapabilities.copyOnSelect,k1=un.selectedItemIndex,kh=ue(()=>rb(Jt),[Jt]),Yc=ue(()=>ZC(bt),[bt]),Tt=ue(()=>eb(Yc,Bt),[Yc,Bt]),qc=ue(()=>Mb({isHistorySearchActive:nt,historySearchQuery:Bt,matches:Tt,selectedIndex:jc,anchorItemId:$e.searchAnchorItemId,useOverlaySurface:$e.supportsOverlaySurface&&$e.supportsSearchViewport&>}),[Tt,Bt,jc,nt,$e.searchAnchorItemId,$e.supportsOverlaySurface,$e.supportsSearchViewport,gt]),Mr=qc.clampedSelectedIndex,Rh=qc.statusText,sf=qc.detailText,Eh=qc.searchState,R1=un.detailState==="expanded",Qc=un.selectionEnabled&&oo.length>0&&!sr,ni=un.copyCapabilities.message,Jc=un.copyCapabilities.toolInput,Zc=un.toggleDetail;Ne(()=>{if(Vs){if(Bn.current&&(clearTimeout(Bn.current),Bn.current=null),Jr===Vs)return;if(Jr){Rt.current&&(clearTimeout(Rt.current),Rt.current=null),_c(Vs);return}Rt.current&&clearTimeout(Rt.current),Rt.current=setTimeout(()=>{_c(Vs),Rt.current=null},400);return}if(!Jr){Rt.current&&(clearTimeout(Rt.current),Rt.current=null);return}Rt.current&&(clearTimeout(Rt.current),Rt.current=null),Bn.current&&clearTimeout(Bn.current),Bn.current=setTimeout(()=>{_c(void 0),Bn.current=null},300)},[Bs,Vs,Jr]),Ne(()=>()=>{Bs()},[Bs]);let Ar=ue(()=>cb({state:$e,ownsViewport:gt,isAwaitingUserInteraction:Rr,isHistorySearchActive:nt,isTranscriptMode:ee,historySearchQuery:Bt}),[Bt,Rr,nt,ee,$e,gt]);Ne(()=>{Nn(f=>{let h=PC(f,vn);return h=_C(h,Ws),h=LC(h,s.enabled&>?!Vd||nt||Rr:ee||nt||Rr),h=NC(h,Mr),h})},[Mr,s.enabled,vn,Rr,nt,ee,Ws,gt,Vd]),Ne(()=>{jc!==Mr&&Mn(Mr)},[Mr,jc]),Ne(()=>{if(!nt){tf.current=Bt;return}if(Bt===tf.current)return;tf.current=Bt;let f=nb(Yc,Tt,$e.searchAnchorItemId);Mn(f)},[Tt,Bt,nt,$e.searchAnchorItemId,Yc]);let Mh=ee?me:{isThinking:ke.isThinking,thinkingCharCount:ke.thinkingCharCount,currentTool:ke.currentTool,activeToolCalls:ke.activeToolCalls,toolInputCharCount:ke.toolInputCharCount,toolInputContent:ke.toolInputContent,currentIteration:ke.currentIteration,isCompacting:ke.isCompacting},Xs=ee?rt:Ft,[af,cf]=De(()=>zt(D.permissionMode)?l.getGuardrail().getEngine():void 0),el=ue(()=>Ib({sessionId:n.sessionId,permissionMode:D.permissionMode,agentMode:D.agentMode,provider:D.provider,model:D.model??jn(D.provider)??D.provider,thinking:D.thinking,reasoningMode:D.reasoningMode,reasoningCapability:Cl(fo(D.provider,D.model)),isTranscriptMode:ee,streamingState:Mh,maxIter:v.maxIter,contextUsage:ph,isLoading:Xs,managedState:{phase:U?.phase,harnessProfile:U?.harnessProfile,workerTitle:U?.activeWorkerTitle,round:U?.currentRound,maxRounds:U?.maxRounds,globalWorkBudget:U?.globalWorkBudget,budgetUsage:U?.budgetUsage,budgetApprovalRequired:U?.budgetApprovalRequired,idleWaiting:U?.idleWaiting,idleWaitingPendingCount:U?.idleWaitingPendingCount},autoModeEngine:af}),[n.sessionId,D.permissionMode,D.agentMode,D.provider,D.model,D.thinking,D.reasoningMode,ee,Mh,v.maxIter,ph,Xs,U?.phase,U?.harnessProfile,U?.activeWorkerTitle,U?.currentRound,U?.maxRounds,U?.globalWorkBudget,U?.budgetUsage,U?.budgetApprovalRequired,U?.idleWaiting,U?.idleWaitingPendingCount,af]),lf=Xe?"confirm":Me?.kind,io=ue(()=>vb({isTranscriptMode:ee,isLoading:Xs,streamingState:ke,managedState:Xs?{phase:U?.phase,harnessProfile:U?.harnessProfile,workerTitle:U?.activeWorkerTitle}:void 0,waitingReason:lf}),[ke.activeToolCalls,ke.currentTool,ke.isCompacting,ke.isThinking,ke.thinkingCharCount,ke.toolInputCharCount,ke.toolInputContent,ee,U?.activeWorkerTitle,U?.harnessProfile,U?.phase,lf,Xs]),uf=io?.text,ar=ue(()=>rC(Mc,{now:Date.now(),lastAllCompletedAt:null}),[Mc]),Ah=fe(!1);Ne(()=>{Ah.current&&!Ie&&Cr(f=>f.length>0?[]:f),Ah.current=Ie},[Ie]);let df=ue(()=>Xu(el),[el]),_h=ue(()=>df,[df]),Ph=_h.text,sv=ue(()=>cd(v.pendingInputs),[v.pendingInputs]),ff=ue(()=>oC({isHistorySearchActive:nt,isTranscriptMode:ee,pendingInputCount:v.pendingInputs.length,buffering:$e.buffering,pendingLiveUpdates:Ws}),[nt,ee,Ws,v.pendingInputs.length,$e.buffering]),$h=ff.leftItems,Lh=ff.rightItems,Oh=ff.summary,tl=ue(()=>_b({historySearchQuery:Bt,pendingInputCount:v.pendingInputs.length}),[Bt,v.pendingInputs.length]),nl=ue(()=>Ab({historySearchQuery:Bt,isHistorySearchActive:nt,historySearchMatchCount:Tt.length,pendingInputCount:v.pendingInputs.length,maxPendingInputs:5}),[Tt.length,Bt,nt,v.pendingInputs.length]),Dh=ue(()=>nl.map(f=>f.text).join(" | "),[nl]),rl=ue(()=>Pb({inputText:Gd,isTranscriptMode:ee,isHistorySearchActive:nt}),[Gd,nt,ee]),Nh=$e.supportsOverlaySurface&&$e.supportsSearchViewport&>,ol=ue(()=>Rb({runtime:un,itemSummary:kh}),[kh,un]),mf=ue(()=>$b(tl),[tl]),Bh=ue(()=>Lb({textSelection:sr,selectionState:ol,isHistorySearchActive:nt,historySearchDetailText:sf,historySearchHasMatches:!!Rh&&Tt.length>0,showAllActive:Nt,baseFooterNotices:tl}),[sr,tl,sf,Tt.length,Rh,nt,Nt,ol]),av=Bh.secondaryText,cv=Bh.budgetNotices,Hh=ee?cv:mf,Fh=y.rows??24,Wh=ee?"":Gd,Uh=ee?void 0:sv,jh=zs,Gh=ee?!1:lh,Wt=ue(()=>RC({terminalRows:Fh,terminalWidth:X,windowedTranscript:Zo,inputText:Wh,footerHeaderText:Oh,activitySummary:ee?void 0:uf,activityBarVisible:ee?!1:!!uf||Ie&&ar.shouldRender,todoSurfaceRows:ee?0:Ie&&ar.shouldRender?ar.rows.length:0,pendingInputSummary:Uh,stashNoticeSummary:rl,notificationSummary:Dh,statusNoticeSummary:Hh.join(" | "),workStripText:jh,suggestionsReserved:Kc,suggestionsMode:"inline",showHelp:Gh,statusBarText:Ph,confirmPrompt:Xe?.prompt,confirmInstruction:Fs,dialogMode:"inline",reviewHint:s.enabled&>?void 0:Ar.browseHintText,uiRequest:Me?Me.kind==="select"?{kind:"select",title:Me.title,options:Me.options.map(f=>({label:f.label,description:f.description})),buffer:Me.buffer,error:Me.error}:{kind:"input",prompt:Me.prompt,defaultValue:Me.defaultValue,buffer:Me.buffer,error:Me.error}:null}),[Fh,X,Wh,Oh,uf,Uh,rl,Dh,Hh,jh,Kc,Nh,Gh,Ph,Xe,Fs,s.enabled,Ar.browseHintText,gt,Me]),lv=ue(()=>oe(jp,{reserveSpace:Kc,width:X,hidden:ee,mode:"inline"}),[Kc,X,ee,Nh]),Ys=ue(()=>lb(Wt.messageRows),[Wt.messageRows]),Kh=ue(()=>ub(Ys),[Ys]),ri=!xh&&s.transcriptSpinnerAnimation,qs=Wn?Wn.rows.length+Wn.previewRows.length:j0,il=K(f=>{Wn||G0(f.scrollHeight)},[Wn]),Qs=K(f=>hb({window:f,stickyHeader:Ar.stickyHeader,width:X,topChromeRows:0}),[X,Ar.stickyHeader]),oi=K((f=_s.current,h=Rc.current,T=zd.current?Qs(zd.current):kc.current)=>{if(!T||f.length===0){Go.current=null;return}kc.current=T,Go.current=yb(f,{allRows:h,rowIndexByKey:Cg(h),topOffsetRows:T.topOffsetRows,viewportHeight:T.contentWindow.viewportHeight,animateSpinners:ri})},[Qs,ri]),Js=K(()=>{let f=kc.current;return f?.contentWindow.viewportHeight&&f.contentWindow.viewportHeight>0?f.contentWindow.viewportHeight:Wt.messageRows},[Wt.messageRows]),uv=K(f=>{zd.current=f;let h=Qs(f);kc.current=h,oi(_s.current,Rc.current,h)},[oi,Qs]),sl=K(f=>{_s.current=f.rows,Rc.current=f.allRows,oi(f.rows,f.allRows)},[oi]),_t=K(()=>{In.current=null,Xd(void 0),Yd(void 0)},[]),pf=K(()=>{_t(),Nn(f=>Cs(f,void 0))},[_t]);Ne(()=>{oi()},[oi]),Ne(()=>{V0(f=>db(f,qs,Wt.messageRows))},[qs,Wt.messageRows]),Ne(()=>{if(!Ko)return;let f=setTimeout(()=>{Jg(void 0)},2e3);return()=>{clearTimeout(f)}},[Ko]);let cr=K((f,h="success")=>{let T=f?.trim();T&&Jg({text:T,tone:h})},[]),ii=K((f,h)=>{let T=h instanceof Error?h.message:String(h);return`${f}: ${T}`},[]),al=K(async f=>{let h=f??sr;if(!h)return!1;let T=h.text.trimEnd();if(!T)return!1;try{return await Ro(T,{terminalWrite:$}),cr(`Copied ${h.rowCount} selected line${h.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(R){return cr(ii("Failed to copy transcript selection",R),"warning"),!1}},[sr,ii,cr,$]),si=K(f=>{if(!f||mb({items:bt,renderModel:Wn,terminalWidth:X,transcriptMaxLines:Ht,viewportRows:Js(),itemId:f,visibleRows:_s.current,expandedItemKeys:Qt,showDetailedTools:!1}))return;let h=pb({items:bt,renderModel:Wn,terminalWidth:X,transcriptMaxLines:Ht,viewportRows:Js(),itemId:f,expandedItemKeys:Qt,showDetailedTools:!1});bc(h)},[bt,X,Ht,Wn,Qt,Js,bc,_s]),Vh=K(f=>{Nn(h=>Cs(h,f)),f&&si(f)},[si]),gf=K(f=>{f&&si(f)},[si]),zh=K(f=>{if(!Qc)return;let h=ib(oo,Ge,f);h&&Vh(h)},[Qc,oo,Ge,Vh]),Xh=K(()=>{!Zc||!Ge||(Y0(f=>{let h=new Set(f);return h.has(Ge)?h.delete(Ge):h.add(Ge),h}),si(Ge))},[si,Zc,Ge]),Yh=K(async()=>{if(!ni||!Jt)return;let f=Sg(Jt);if(f)try{await Ro(f,{terminalWrite:$}),cr("Copied selected transcript entry to clipboard.","success")}catch(h){cr(ii("Failed to copy transcript entry",h),"warning")}},[ii,ni,Jt,cr,$]),qh=K(async()=>{if(!Jc||!Jt)return;let f=sb(Jt);if(f)try{await Ro(f,{terminalWrite:$}),cr("Copied selected tool args to clipboard.","success")}catch(h){cr(ii("Failed to copy tool args",h),"warning")}},[ii,Jc,Jt,cr,$]),Zs=K(()=>Rc.current,[]),Qh=K((f,h)=>{if(!s.enabled||!gt)return;let T=Go.current;return T?vg(T,f,h):void 0},[s.enabled,gt]),ai=K((f,h,T)=>{let R=Zs(),E=Tb(R,f,h,{animateSpinners:ri,selectFullRowOnCollapsed:T?.selectFullRowOnCollapsed});ee?Yd(E):Xd(E);let H=R[Math.max(0,Math.min(h.modelRowIndex,R.length-1))];return T?.updateSelectedItem&&H?.itemId&&Nn(B=>Cs(B,H.itemId)),E},[ee,Zs,ri]),Jh=K((f,h)=>{if(!f)return;In.current=null;let T={...f,focus:h?.focusPoint??f.focus};if(!(T.mode!=="char"||T.didDrag)){_t();return}let E=ai(T.anchor,T.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!E){_t();return}return h?.copySelection!==!1&&al(E),E},[_t,al,ai]),hf=K(()=>{if(!ee||!bt.length||Xe||Me)return;_t();let f=gb({items:bt,selectedItemId:Ge,renderModel:Wn,terminalWidth:X,transcriptMaxLines:Ht,viewportRows:Js(),scrollOffset:vn,expandedItemKeys:Qt,showDetailedTools:!1,preferViewportAnchor:!0});Nn(h=>OC(h,{anchorItemId:f,initialMatchIndex:0})),Jo(""),Mn(0)},[Xe,bt,Qt,vn,ee,Ge,Wn,X,Ht,Me,Js,_t]),yf=K(()=>{Nn(f=>DC(f)),Jo(""),Mn(0),_t()},[_t]),cl=K(()=>{!nt||Tt.length===0||Mn(-1)},[Tt.length,nt]),Zh=ue(()=>{if(!Xe)return null;if(Xe.tool==="exit_plan_mode"){let f=typeof Xe.input.plan=="string"?Xe.input.plan:void 0;return{prompt:Xe.prompt.split(`
|
|
325
|
-
`,1)[0]??Xe.prompt,instruction:Fs,planContent:f}}return{prompt:Xe.prompt,instruction:Fs}},[Fs,Xe]),ey=ue(()=>Me?Me.kind==="select"?{kind:"select",title:Me.title,options:Me.options,buffer:Me.buffer,error:Me.error,visibleSelectOptions:Wt.visibleSelectOptions,focusedIndex:Me.focusedIndex,selectedIndices:Me.selectedIndices,multiSelect:Me.multiSelect}:{kind:"input",prompt:Me.prompt,defaultValue:Me.defaultValue,buffer:Me.buffer,error:Me.error}:null,[Me,Wt.visibleSelectOptions]),dv=ue(()=>oe(Kp,{confirm:Zh,request:ey}),[Zh,ey]),xf=ue(()=>{if(Ko)return oe(tC,{text:Ko.text,tone:Ko.tone})},[Ko]),wf=ue(()=>{if(xf)return oe(k,{flexDirection:"column",width:"100%",children:xf})},[xf]),ll=K(()=>{Nn(f=>$C(AC(f))),Kd(!1),Ic(),Jo(""),Mn(0),_t()},[_t,Ic]),ty=K(()=>{ee&&Kd(f=>!f)},[ee]),fv=K(()=>{if(ee){ll();return}Kd(!1),Nn(f=>MC(f)),Jo(""),Mn(0),_t()},[_t,ll,ee]);Ne(()=>{vh||!$e.selectedItemId||Nn(f=>Cs(f,void 0))},[vh,$e.selectedItemId]),Ne(()=>{if(!ee||!ni||!Ih){Hs.current=void 0;return}if(Qr||!Ge||!Jt)return;if(!Hs.current){Hs.current=Ge;return}if(Hs.current===Ge)return;Hs.current=Ge;let f=Sg(Jt);f&&Ro(f,{terminalWrite:$}).catch(()=>{})},[ee,Jt,Ge,ni,Ih,Qr,$]),Ne(()=>{if(y?.isTTY!==!0)return;let f=Jl(y);f?.setShellMode?.(gh,Gc),nf||f?.setAltScreenActive?.(!1)},[gh,y,nf,Gc]);let Ke=fe({...e,thinking:D.thinking,reasoningMode:D.reasoningMode,agentMode:D.agentMode,context:{...e.context,repoIntelligenceMode:D.repoIntelligenceMode,repoIntelligenceTrace:D.repoIntelligenceTrace,toolConstructionMode:!0},session:{...e.session,id:n.sessionId},guardrails:_g(D.permissionMode,l)}),dn=fe(D.permissionMode);Ne(()=>{dn.current=D.permissionMode},[D.permissionMode]);let ny=fe(Zi()),Tf=fe(D);Ne(()=>{Tf.current=D},[D]);let Sf=fe(null);Sf.current===null&&(Sf.current=Tl({getProvider:i(()=>di(Tf.current.provider),"getProvider"),getModel:i(()=>Tf.current.model??"","getModel")}));let ry=fe(lu());Ne(()=>{D.permissionMode==="auto-in-project"&&ry.current()},[]);let Cf=K(f=>{We(h=>({...h,permissionMode:f})),dn.current=f,Ke.current={...Ke.current,guardrails:_g(f,l)},cf(zt(f)?l.getGuardrail().getEngine():void 0),f==="auto-in-project"&&ry.current()},[l]),oy=fe(v.pendingInputs),qe=fe(!1),ea=fe(0),ul=K(()=>{if(Ms.current)return;let f=Jd.current?.trim(),h=we.current.length>0?we.current[we.current.length-1]:void 0,T=h&&"text"in h&&typeof h.text=="string"?h.text.trim():void 0,E=an.current.length>0?[...an.current.map(H=>Wo(H)),...f&&f!==T?[{type:"info",text:f}]:[]]:[...an.current.map(H=>Wo(H)),...xL(Je(),et(),{toolCalls:Et.current,toolNames:Hn.current,infoItems:f&&f!==T?[f]:[]})];E.length!==0&&(Ms.current=!0,Es.current?.(E))},[et,Je]);Ne(()=>{oy.current=v.pendingInputs},[v.pendingInputs]);let iy=K(()=>{qe.current=!0,de(),Ce(),ne(),V(),Te(),Le(),ye(void 0),kr(),lt(void 0),Os(),Zr.current=[],zo.current=[],Ps([]),q(!1)},[de,Le,V,Te,kr,Os,ye,Ps,q,lt,Ce,ne]),dl=fe(0),mv=500;nn(Lt.Critical,f=>{if(!Ie)return!1;switch(YC({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ee,isAwaitingUserInteraction:Rr,isInputEmpty:jd,pendingInputCount:v.pendingInputs.length,hasTranscriptTextSelection:!!Qr,timeSinceLastEscapeMs:Date.now()-dl.current,doubleEscapeIntervalMs:mv}).kind){case"interrupt":return dl.current=0,ul(),iy(),!0;case"pop-pending-input":return ve(),dl.current=0,!0;case"arm-double-escape":return dl.current=Date.now(),!0;default:break}return!1},[Ie,ee,Rr,jd,v.pendingInputs.length,ve,ul,iy]),nn(Lt.Critical,f=>{let h=zC({itemsLength:bt.length,currentResponse:He.currentResponse,thinkingContent:He.thinkingContent,activeToolCallsLength:He.activeToolCalls.length}),T=XC({keyName:f.name,hasTranscript:h,historyScrollOffset:vn,reviewPageSize:Ys,reviewWheelStep:Kh,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:hh,supportsMouseTracking:$e.supportsMouseTracking,usesRendererMouseTracking:Gc,usesManagedMouseWheel:yh,supportsWheelHistory:$e.supportsWheelHistory});if(T.kind==="mouse-phase"){let E=f.mouse;if(!E)return!1;T.phase==="press"&&In.current&&Jh(In.current);let H=Qh(E.row,E.column);if(T.phase==="press"){if(!H||!h)return sr||Ge?(pf(),!0):(_t(),!1);let B=Vb({previous:Qg.current,time:Date.now(),row:E.row,column:E.column});Qg.current=B;let z=B.count>=3?"line":B.count===2?"word":"char";if(cl(),Nn(re=>Cs(re,void 0)),ee?Yd(void 0):Xd(void 0),z!=="char"){let re=_d(Zs(),H.point,z);if(re)return In.current={anchor:re.start,focus:re.end,didDrag:!1,mode:z,anchorSpan:re},ai(re.start,re.end,{updateSelectedItem:!1}),!0}return In.current={anchor:H.point,focus:H.point,didDrag:!1,mode:"char"},!0}if(!In.current)return!1;if(T.phase==="drag"){let B=Go.current,z=B?Cb(B,E.row):0;z!==0&&vc(z);let re=H??(B?Ig(B,E.row,E.column):void 0);if(!re)return!1;let he=In.current;if(he.mode!=="char"&&he.anchorSpan){let st=_d(Zs(),re.point,he.mode);if(!st)return!1;let Pt=Ag(he.anchorSpan,st);return In.current={...he,anchor:Pt.anchor,focus:Pt.focus,didDrag:!0},ai(Pt.anchor,Pt.focus,{updateSelectedItem:!1}),!0}return In.current={...he,focus:re.point,didDrag:!0},ai(he.anchor,re.point,{updateSelectedItem:!1}),!0}if(T.phase==="release"){let B=In.current,z=B.focus,he=(H??(Go.current?Ig(Go.current,E.row,E.column):void 0))?.point??z;if(B.mode!=="char"&&B.anchorSpan){let st=_d(Zs(),he,B.mode);if(st){let Pt=Ag(B.anchorSpan,st);B.anchor=Pt.anchor,he=Pt.focus}}return Jh(B,{focusPoint:he}),!0}}if(T.kind==="scroll-by")return cl(),vc(T.delta),!0;if(T.kind==="consume")return!0;let R=qC({key:f,isTranscriptMode:ee,isHistorySearchActive:nt,historySearchMatchCount:Tt.length,hasTextSelection:!!sr,hasFocusedItem:!!Ge,canCopySelectedItem:ni,canCopySelectedToolInput:Jc,canToggleSelectedDetail:Zc,canCycleTranscriptSelection:Qc});return QC({action:R,hasTranscript:h,isTranscriptMode:ee,pageScrollDelta:Ys,disarmHistorySearchSelection:cl,scrollTranscriptBy:vc,closeHistorySearchSurface:yf,backspaceHistorySearchQuery:i(()=>{Jo(E=>E.slice(0,-1)),Mn(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:i(E=>{Mn(H=>Tg(Tt.length,H,E))},"stepHistorySearchSelection"),submitHistorySearchSelection:i(()=>{let E=Tt[Mr];E&&(gf(E.itemId),yf())},"submitHistorySearchSelection"),appendHistorySearchQuery:i(E=>{Jo(H=>H+E),Mn(0)},"appendHistorySearchQuery"),openHistorySearchSurface:hf,clearTranscriptSelectionFocus:pf,exitTranscriptModeSurface:ll,toggleTranscriptShowAll:ty,scrollTranscriptHome:i(()=>{bc(Math.max(0,qs-Wt.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:i(()=>{Ic(),_t()},"scrollTranscriptToBottom"),cycleTranscriptSelection:zh,copySelectedTranscriptText:i(()=>{al()},"copySelectedTranscriptText"),copySelectedTranscriptItem:i(()=>{Yh()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:i(()=>{qh()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:Xh,navigateSearchMatch:i(E=>{Mn(H=>{let B=Tg(Tt.length,H,E),z=Tt[B];return z&&gf(z.itemId),B})},"navigateSearchMatch"),dumpTranscriptToScrollback:i(()=>{JC({items:bt,exitAltScreen:i(()=>{$(ou({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:i(E=>{$(E)},"writeToScrollback"),enterAltScreen:i(()=>{$(ru({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[ee,bt,He.currentResponse,He.thinkingContent,He.activeToolCalls,vn,qs,Ys,Kh,Ge,pf,ll,ty,$e,vc,bc,Ic,Qc,Mr,_t,al,Tt,hf,yf,cl,zh,ni,Yh,Jc,qh,Zc,Xh,gf,sr,Qh,$e.supportsMouseTracking,Qr,hh,yh,rf,Zo,Gc,ai,Wt.messageRows]),nn(f=>{if(!Xe)return!1;let h=f.sequence.trim().toLowerCase(),T=!!Xe.input._alwaysConfirm,R=D.permissionMode==="accept-edits"&&!T,E=i(H=>{let B=`${Q("dialog.confirm")} ${Xe.prompt}
|
|
326
|
-
\u2192 ${Q(`confirm.result.${H}`)}`;!!Ze.current.workerId?ln({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:B,timestamp:Date.now()}):C({type:"info",text:B})},"recordConfirmResult");return h==="y"||h==="yes"?(E("approved"),Fc(null),no.current?.({confirmed:!0}),no.current=null,!0):R&&(h==="a"||h==="always")?(E("approved_always"),Fc(null),no.current?.({confirmed:!0,always:!0}),no.current=null,!0):h==="n"||h==="no"||f.name==="escape"?(E("denied"),Fc(null),no.current?.({confirmed:!1}),no.current=null,!0):f.insertable||f.name==="return"},{isActive:!!Xe,priority:Lt.Critical});let fl=K(f=>{En(null),Wc.current?.(f),Wc.current=null},[]),ci=K((f,h,T)=>h.length===0?Promise.resolve(void 0):new Promise(R=>{Wc.current=R,En({kind:"select",title:f,options:h,buffer:"",focusedIndex:0,selectedIndices:[],multiSelect:T})}),[]),pv=K((f,h)=>ci(f,h.map(T=>({label:T,value:T}))),[ci]),sy=K(async f=>{let h=f.options?Ad(f.options):[];return await ci(kg(f),h,f.multiSelect)??_f},[ci]);Ne(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:h}=await import("./construction-bootstrap-OFPUZTXQ.js");f||h(sy)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:h}=await import("./construction-bootstrap-OFPUZTXQ.js");h(null)})()}},[sy]);let ay=K((f,h)=>new Promise(T=>{Wc.current=T,En({kind:"input",prompt:f,defaultValue:h,buffer:""})}),[]);nn(f=>{let h=Uc.current;if(!h)return!1;if(f.name==="escape")return fl(void 0),!0;if(h.kind==="select"){let T=h.options.length;if(f.name==="up"||f.sequence==="k")return En(R=>R&&R.kind==="select"?{...R,focusedIndex:(R.focusedIndex-1+T)%T,error:void 0}:R),!0;if(f.name==="down"||f.sequence==="j")return En(R=>R&&R.kind==="select"?{...R,focusedIndex:(R.focusedIndex+1)%T,error:void 0}:R),!0;if(f.sequence===" "&&h.multiSelect)return En(R=>{if(!R||R.kind!=="select")return R;let E=R.focusedIndex,H=R.selectedIndices.includes(E)?R.selectedIndices.filter(B=>B!==E):[...R.selectedIndices,E];return{...R,selectedIndices:H,error:void 0}}),!0;if(f.name==="return"){let R=Uc.current;if(!R||R.kind!=="select")return!1;if(R.multiSelect){if(R.selectedIndices.length===0)return En(H=>H&&H.kind==="select"?{...H,error:Q("select.multiselect_empty")}:H),!0;let E=R.selectedIndices.sort((H,B)=>H-B).map(H=>R.options[H]?.value).filter(Boolean).join(", ");fl(E)}else fl(R.options[R.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(f.sequence)){let R=Number.parseInt(f.sequence,10)-1;if(R>=0&&R<T)return h.multiSelect?En(E=>{if(!E||E.kind!=="select")return E;let H=E.selectedIndices.includes(R)?E.selectedIndices.filter(B=>B!==R):[...E.selectedIndices,R];return{...E,focusedIndex:R,selectedIndices:H,error:void 0}}):En(E=>E&&E.kind==="select"?{...E,focusedIndex:R,error:void 0}:E),!0}return!1}if(f.name==="return"){let T=Uc.current;if(!T||T.kind!=="input")return!1;let R=T.buffer.trim();return fl(R===""?T.defaultValue??void 0:R),!0}return f.name==="backspace"||f.name==="delete"?(En(T=>T&&T.kind==="input"?{...T,buffer:T.buffer.slice(0,-1),error:void 0}:T),!0):(f.insertable||f.isPasted===!0)&&!f.ctrl&&!f.meta?(En(T=>T&&T.kind==="input"?{...T,buffer:T.buffer+f.sequence,error:void 0}:T),!0):!1},{isActive:!!Me,priority:Lt.Critical}),Ne(()=>{if(n.messages.length>0&&L.length===0){if(n.uiHistory?.length){let f=Uo(n.uiHistory);f.length!==n.uiHistory.length&&(n.uiHistory=f);for(let h of f)C({type:h.type,text:h.text,...h.icon?{icon:h.icon}:{},...h.compactText?{compactText:h.compactText}:{}});return}for(let f of n.messages){let h=$a(f);for(let T of h)C(Pa(T))}}},[n.messages,n.uiHistory,L.length,C]),Ne(()=>{uo(n.gitRoot)},[n.gitRoot]);let bf=K(()=>({onThinkingDelta:i(f=>{qe.current||(v.currentTool&&(ye(void 0),Te()),lt(Og(tt.current?.activeWorkerTitle?`[${tt.current.activeWorkerTitle}] [Thinking]`:"[Thinking]",tt.current?.activeWorkerTitle)),ie(f.length),se(f),Ze.current.workerId&&Dc("thinking",f))},"onThinkingDelta"),onThinkingEnd:i(f=>{if(qe.current)return;let h=Je(),T=bC(h,f);T&&T!==h&&(V(),Be(),ie(T.length),se(T)),Ze.current.workerId&&sh(T),ne()},"onThinkingEnd"),onTextDelta:i(f=>{qe.current||(v.currentTool&&(ye(void 0),Te()),ne(),lt(void 0),Se(f),Ze.current.workerId&&Dc("assistant",f))},"onTextDelta"),onToolUseStart:i(f=>{if(qe.current)return;Hn.current.includes(f.name)||(Hn.current=[...Hn.current,f.name]);let h=tt.current?.activeWorkerTitle?`[${tt.current.activeWorkerTitle}] `:"",T={id:f.id,name:`${h}${f.name}`,status:O.Executing,startTime:Date.now(),input:f.input};ah(T),Ze.current.workerId&&Rn(T),lt(Xr(T,tt.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:i((f,h,T)=>{if(qe.current)return;it(h.length),be(h);let R=ch(T?.toolId,f,E=>{let H=E.preview??"",B=pL(`${H}${h}`);return{...E,preview:B||void 0,input:E.input?B?{...E.input,preview:B}:{...E.input}:B?{preview:B}:void 0}});R&&(Ze.current.workerId&&Rn(R),lt(Xr(R,tt.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:i(f=>{if(qe.current)return;let h=typeof f.content=="string"?f.content:String(f.content??""),T=gL(h);if(/^\[(?:Tool Error|Error)\]/.test(h)){let E=Bc(f.id,O.Error,T,T,f.name);E&&(Ze.current.workerId&&Rn(E),lt(Xr(E,tt.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(h)){let E=Bc(f.id,O.Cancelled,void 0,T,f.name);E&&(Ze.current.workerId&&Rn(E),lt(Xr(E,tt.current?.activeWorkerTitle)));return}let R=Bc(f.id,O.Success,void 0,T||void 0,f.name);R&&(Ze.current.workerId&&Rn(R),lt(Xr(R,tt.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:i(f=>{if(qe.current)return;let h=f.message.length>100?f.message.slice(0,97)+"...":f.message,T=Qo(f.id,R=>({...R,preview:h,progressLines:[...(R.progressLines??[]).slice(-4),h]}));T&&Ze.current.workerId&&Rn(T),lt(h)},"onToolProgress"),onStreamEnd:i(()=>{if(qe.current)return;let f=Ds(O.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),h=f[f.length-1];Ze.current.workerId&&f.forEach(T=>Rn(T)),h&<(Xr(h,tt.current?.activeWorkerTitle)),ne(),Te(),ye(void 0)},"onStreamEnd"),hasPendingInputs:i(()=>oy.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:i(f=>{if(!qe.current)for(let h of f){let T=h.trim();T&&(Ze.current.workerId?ln({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:T,timestamp:Date.now()}):C({type:"user",text:T}))}},"onMidTurnUserMessages"),onError:i(f=>{let h=Ir();h?.name&<(Xr(h,tt.current?.activeWorkerTitle));let T=Ds(O.Error,()=>({error:f.message,output:void 0})),R=T[T.length-1];Ze.current.workerId&&T.forEach(st=>Rn(st)),R&<(Xr(R,tt.current?.activeWorkerTitle));let E=gy(f),H=["Transient","Permanent","Tool Call ID","User Abort"];if(E.category===ia.USER_ABORT)return;let z=[`\u274C API Error (${H[E.category]||"Unknown"}): ${f.message}`];E.shouldCleanup&&z.push(" \u{1F9F9} Cleaned incomplete tool calls"),E.category===ia.PERMANENT?(z.push(" \u{1F4A1} This error requires manual intervention. Please check:"),f.message.includes("auth")||f.message.includes("401")?(z.push(" - Your API key is valid"),z.push(" - Run /config to check provider settings")):f.message.includes("400")?(z.push(" - The request parameters are correct"),z.push(" - Try restarting the conversation")):z.push(" - The error details above")):E.category===ia.TRANSIENT?z.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):E.category===ia.TOOL_CALL_ID&&z.push(" \u2705 Session cleaned, ready to continue");let re=z.join(`
|
|
327
|
-
`);!!Ze.current.workerId?ln({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:re,timestamp:Date.now()}):C({type:"error",text:re})},"onError"),onRetry:i((f,h,T)=>{if(qe.current)return;if(!!Ze.current.workerId){let E=hd(f,h,T);ln({...E,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else eg(C,f,h,T)},"onRetry"),onProviderRecovery:i(f=>{if(qe.current)return;let h=!!Ze.current.workerId,T=et().trim();if(T&&(h?Dc("assistant",T):C({type:"assistant",text:T})),Le(),V(),ne(),Te(),ye(void 0),kr(),lt(void 0),h){let R=yd(f);ln({...R,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else tg(C,f)},"onProviderRecovery"),onManagedTaskStatus:i(f=>{if(qe.current)return;let h=Ze.current;if(Jb(f)){if(h.workerId&&h.workerId!==f.activeWorkerId)tv({workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle});else if(h.workerId!==f.activeWorkerId){let B=ut.current,z=B.activeToolGroupTools.some(re=>re.status===O.Executing);ut.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle,...z?{activeToolGroupItemId:B.activeToolGroupItemId,activeToolGroupTools:B.activeToolGroupTools}:{activeToolGroupTools:[]}},Ze.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle}}}tt.current=f,Qd(f);let T=yL(f);nv(T);let R=oc(f),H=oc(f,{expanded:!0})??R;H&&(Jd.current=H)},"onManagedTaskStatus"),onProviderRateLimit:i((f,h,T)=>{qe.current||to({type:"info",icon:"\u23F3",text:`[Rate Limit] Retrying in ${T/1e3}s (${f}/${h})...`},"ratelimit")},"onProviderRateLimit"),onRetryAfter:i(f=>{if(qe.current)return;let h=Math.round(f.waitMs/1e3),T=f.source==="exponential-backoff"?"no-header \u2192 backoff":f.source,R=f.reason==="overloaded"?"Overloaded":"Rate limited";to({type:"info",icon:"\u23F3",text:`[${R}] (${f.provider}) \u2014 retrying in ${h}s [${T}] (${f.attempt}/${f.maxAttempts})`},"ratelimit")},"onRetryAfter"),onRepoIntelligenceTrace:i(f=>{qe.current||to(CC(f),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:i(f=>{qe.current||Cr(f)},"onTodoUpdate"),onScoutSuspiciousCompletion:i(f=>{qe.current||Ld&&to({type:"info",icon:"\u26A0",text:`[Scout] Completion marked uncertain \u2014 signals: ${f.signals.join(", ")}. Verify the result before continuing.`},"scout-uncertain")},"onScoutSuspiciousCompletion"),onIterationStart:i((f,h)=>{if(qe.current)return;if(h&&xe(h),tt.current?.globalWorkBudget){let he={...tt.current,budgetUsage:Math.min(tt.current.globalWorkBudget,(tt.current.budgetUsage??0)+1)};tt.current=he,Qd(he)}let T=f>1?Je().trim():"",R=f>1?Dg(et()):"",E=f>1?[...Hn.current]:[],H=f>1?[...Et.current]:[],B=!!Ze.current.workerId;A(f),B&&Lc({clearOwner:!1});let z=ir.current.filter(he=>he.status===O.Executing),re=new Set(z.map(he=>he.id));if(Hn.current=[],Et.current=Et.current.filter(he=>re.has(he.id)),cn(z),Te(),ye(void 0),lt(Og(tt.current?.activeWorkerTitle?`[Thinking] [${tt.current.activeWorkerTitle}]`:void 0,tt.current?.activeWorkerTitle)),Be(),f>1&&!B){let he=Ng({thinking:T,response:R,toolCalls:H,toolNames:E});if(Es.current)Es.current(he);else for(let st of he)C(st)}},"onIterationStart"),beforeToolExecute:i(async(f,h)=>{let T=dn.current,R=Co(T),E=ny.current,H=n.gitRoot;if(Oy(N.current,f,h))return`[Skipped] Previously denied operation. ${Dy(N.current)}`;if(T==="plan"&&(yn.has(f)||f==="undo"))return`[Blocked] Tool '${f}' is not allowed in plan mode (read-only). ${Xb}`;if(T==="plan"&&f==="bash"){let B=h.command??"";if(Pn(B))return`[Blocked] Bash write operation not allowed in plan mode: ${B.slice(0,50)}... ${Xb}`}if(f==="bash"){let B=h.command??"";if(_n(B))return!0}if(zt(T)&&af==="llm")return!0;if(f==="bash"){let B=h.command??"",z=$y(B);if(z.level==="dangerous"){let re=await so(f,{...h,_dangerousCommand:!0});return re.confirmed?re.confirmed:(N.current=Lf(N.current,f,h,z.reason),`[Blocked] Dangerous command requires confirmation: ${z.reason}`)}}if(H){let B=!1;if(yn.has(f)){let z=h.path;z&&Yn(z,H)&&(B=!0)}if(f==="bash"){let z=h.command;z&&Fm(z,H)&&(B=!0)}if(B){let z=await so(f,{...h,_alwaysConfirm:!0});if(dn.current==="plan"&&(yn.has(f)||f==="undo"))return!1;if(dn.current==="plan"&&f==="bash"){let re=h.command??"";if(Pn(re))return!1}return z.confirmed}}if(R.has(f)){if(T==="accept-edits"&&f==="bash"&&await Hr(f,h,E,Sf.current??void 0))return!0;let B=await so(f,h);if(dn.current==="plan"&&(yn.has(f)||f==="undo"))return!1;if(dn.current==="plan"&&f==="bash"){let z=h.command??"";if(Pn(z))return!1}if(!B.confirmed)return C({type:"info",text:Q("cancelled")}),N.current=Lf(N.current,f,h),!1;B.always&&T==="accept-edits"&&(Tu(f,h,!1),ny.current=Zi())}return!0},"beforeToolExecute"),askUser:i(async f=>{let h=f.options?Ad(f.options):[],T=await ci(kg(f),h,f.multiSelect);return T===void 0?_f:T},"askUser"),exitPlanMode:i(async f=>dn.current!=="plan"?"not-in-plan-mode":(await so("exit_plan_mode",{plan:f})).confirmed?(Cf("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:i(async f=>{let h=f.questions,T={},R="__back__",E=0;for(;E<h.length;){let H=h[E],B=Ad(H.options);E>0&&B.push({label:Q("select.back_prev"),value:R});let z=`[${E+1}/${h.length}] ${H.question}`,re=await ci(z,B,H.multiSelect);if(re===void 0)return;if(re===R){E--;continue}T[H.question]=re,E++}return T},"askUserMulti"),askUserInput:i(async f=>ay(f.question,f.default),"askUserInput"),onCompactStart:i(()=>{P()},"onCompactStart"),onCompactStats:i(f=>{xc.current=f.tokensBefore,or(f.tokensAfter)},"onCompactStats"),onCompactedMessages:i((f,h)=>{n.messages=f,h?.artifactLedger&&h.artifactLedger.length>0&&(n.artifactLedger=aa(n.artifactLedger??[],h.artifactLedger)),n.lineage=h?.anchor?by(n.lineage,f,h.anchor,h.postCompactAttachments??[]):mn(f,n.lineage);let T=co(f);n.contextTokenSnapshot={currentTokens:T,baselineEstimatedTokens:T,source:"estimate"},Zn(n),or(T),wc.current?.().catch(()=>{})},"onCompactedMessages"),onCompact:i(f=>{Y();let h=xc.current??f;xc.current=null;let T=Math.round(h/1e3);to({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${T}k tokens)`},"compact")},"onCompact"),onCompactEnd:i(()=>{xc.current=null,Y()},"onCompactEnd"),onIterationEnd:i(f=>{f.scope!=="worker"&&(n.contextTokenSnapshot=f.contextTokenSnapshot),or(f.tokenCount)},"onIterationEnd")}),[ie,se,ne,Se,ye,it,be,Te,A,Be,D,n,P,Y,C,V,Je,et,Lc,lt,Dc,sh,Rn,ah,ch,Bc,Ds,Ir,kr,cn,v.currentTool]),so=i((f,h)=>{let T=uC(f,h);return new Promise(R=>{no.current=R,Fc({tool:f,input:h,prompt:T})})},"showConfirmDialog");Ne(()=>(u(async(f,h,T)=>(await so(f.name,{...f.input,_reason:`[auto-mode] ${h}`,...T&&T.length>0?{_classifierSignals:T}:{}})).confirmed?"allow":"block"),m(f=>{cf(f)}),()=>{u(null),m(null)}),[]),Ne(()=>{p(D)},[D,p]);let ta=i(async(f,h,T=n.lineage?vt(n.lineage,n.lineage.activeEntryId):n.messages,R)=>{let E={...bf(),getCostReport:G},B=ur(n.gitRoot).getSystemPromptSnippet(),z=vC(f.context,n.gitRoot,n.contextTokenSnapshot,B);R&&R.length>0&&(z.inputArtifacts=[...R]),z.planModeBlockCheck=(re,he)=>dn.current!=="plan"?null:xr(re,he,n.gitRoot??process.cwd());try{return await ca({...f,session:{...f.session,initialMessages:T},context:z,events:E,abortSignal:pt()},h)}finally{Sy()}},"runAgentRound"),lr=K(f=>{let h=mn([...f],n.lineage);return n.lineage=h,h},[n]),na=K(async f=>{if(n.messages.length===0)return;let h=Ji(n.messages),T=Uo(f??F.current);F.current=T,n.title=h,n.uiHistory=T;let R=n.lineage??lr(n.messages);n.lineage=R;let E={messages:n.messages,title:h,gitRoot:n.gitRoot??"",uiHistory:T,lineage:R,artifactLedger:n.artifactLedger};"appendSessionDelta"in r&&typeof r.appendSessionDelta=="function"?await r.appendSessionDelta(n.sessionId,E):await r.save(n.sessionId,E),Id()&&kd("persist",Rd(n.messages,R,{historyItems:we.current,foregroundItems:an.current,streamingResponse:M.current.currentResponse,streamingThinking:M.current.thinkingContent,persistedUiHistory:F.current}))},[n,lr,r]),vf=K(()=>{if(Tc.current)return Tc.current;let f=(async()=>{try{for(;qr.current.requested;){qr.current.requested=!1;let h=qr.current.uiHistoryOverride;qr.current.uiHistoryOverride=void 0,await na(h)}}finally{Tc.current=null,qr.current.requested&&vf()}})();return Tc.current=f,qg.current=f,f},[na]),li=K(f=>{if(f!==void 0){let h=Uo(f);F.current=h,qr.current.uiHistoryOverride=h}return qr.current.requested=!0,vf()},[vf]),gv=K(async()=>{if(As.current)return As.current;let f=(async()=>{qe.current=!0,de(),Ce(),ne(),V(),Te(),Le(),ye(void 0),q(!1),await qg.current.catch(()=>{}),await wc.current?.().catch(()=>{}),sn(!1),I&&w?.isRaw&&S(!1),w?.pause?.(),w?.unref?.(),x(),a()})();return As.current=f.finally(()=>{As.current=null}),As.current},[de,Le,V,Te,x,I,a,ye,q,S,w,Ce,ne]);Ne(()=>(wc.current=li,()=>{wc.current=null}),[li]);let cy=K(f=>{if(f.length===0)return;let h=Pd(F.current,f);F.current=h,li(h)},[li]),ra=K(f=>{if(f.length!==0){for(let h of f)C(h);cy(f)}},[C,cy]),ml=K(f=>{if(f.length!==0){for(let h of f)C(h);F.current=Pd(F.current,f)}},[C]);Ne(()=>(Es.current=ra,()=>{Es.current=null}),[ra]);let ly=K(async f=>{n.messages=f.messages,n.contextTokenSnapshot=f.contextTokenSnapshot,lr(f.messages);let h=f.success===!1&&!f.interrupted,T=Je().trim(),R=rT(f.messages,et(),f.managedTask?.verdict.summary,f.lastText),E=[...an.current],H=E.length>0,B=H&&E.some(pe=>pe.type==="assistant"&&"text"in pe&&Io(String(pe.text??"")).length>0),z=!h&&R&&!B,re=[...zo.current],he=h?[]:re.length===0?Ld?Yb(f):Yb(f).filter(pe=>!n0(pe)):[],st=H?[]:Ng({thinking:T,response:void 0,toolCalls:Et.current,toolNames:Hn.current}),Pt=[...E.map(pe=>Wo(pe)),...st,...h?[]:re.map(pe=>Wo(pe)),...he.map(pe=>qb(pe)),...z?[{type:"assistant",text:f.interrupted?`${R}
|
|
328
|
-
|
|
329
|
-
[Interrupted]`:R}]:!R&&!B&&!f.interrupted&&!h?[{type:"info",text:"[No response text was produced for this round]"}]:[]],oa=Pd(F.current,Pt);V(),Le();for(let pe of E)C(Wo(pe));for(let pe of st)C(pe);if(!h){for(let pe of he)C(qb(pe));for(let pe of re)C(Wo(pe))}z?C({type:"assistant",text:f.interrupted?`${R}
|
|
330
|
-
|
|
331
|
-
[Interrupted]`:R}):!R&&!B&&!f.interrupted&&!h&&C({type:"info",text:"[No response text was produced for this round]"}),Hn.current=[],Et.current=[],kr(),Te(),ye(void 0),lt(void 0),Os(),Zr.current=[],zo.current=[],Ps([]),_(),li(oa).catch(()=>{})},[C,_,Te,Le,V,n,et,Je,li,lr,kr,Os,ye,lt,v.currentIteration]),pl=K(async f=>{let h=f.trim();h&&(C({type:"user",text:h}),yc(T=>T+1),Zn(n))},[C,n]),gl=K(async(f,h)=>{let T=ea.current;qe.current=!1,Ms.current=!1,Rs(!0);try{return await KC({initialPrompt:f,runRound:h,shiftPendingPrompt:Ae,onRoundComplete:i(async R=>{ea.current===T&&await ly(R)},"onRoundComplete"),onBeforeQueuedRound:i(async R=>{qe.current=!1,Ms.current=!1,await pl(R)},"onBeforeQueuedRound"),shouldContinue:i(R=>!qe.current&&R.success!==!1,"shouldContinue")})}finally{Rs(!1)}},[ly,Ae,pl]),If=K(async()=>{let f=Ae();if(!f||!f.trim())return;let h=f.trim();await pl(h),await gl(h,async T=>ta(Ke.current,T))},[ta,gl,Ae,pl]),kf=K(f=>{let h=f[f.length-1];if(h?.role!=="assistant")return;let T=$a(h);for(let R of T)C(Pa(R))},[C]),uy=K(async(f,h)=>{let T=await bd({...Ke.current,provider:D.provider,thinking:D.thinking,reasoningMode:D.reasoningMode},f,h,R=>C({type:"info",text:R}));if(T.mode==="manual"){T.manualOutput&&C({type:"info",text:T.manualOutput}),await T.finalize();return}if(!T.prompt||!T.options){await T.finalize();return}Rs(!0);try{let R=T.mode==="fork"?[]:n.lineage?vt(n.lineage,n.lineage.activeEntryId):n.messages,E=ea.current,H=await ta(T.options,T.prompt,R);if(ea.current!==E)await T.finalize();else{let B=F.current,z=[];if(T.mode==="fork"){let re=H.messages.find(st=>st.role==="user");re&&n.messages.push(re);let he=H.messages.slice().reverse().find(st=>st.role==="assistant");if(he){n.messages.push({role:"assistant",content:he.content}),lr(n.messages);for(let st of $a(he)){let Pt=Pa(st);C(Pt),z.push(Pt)}}}else{n.messages=H.messages,n.contextTokenSnapshot=H.contextTokenSnapshot,lr(H.messages),kf(H.messages);let re=H.messages[H.messages.length-1];if(re?.role==="assistant")for(let he of $a(re))z.push(Pa(he))}await na(Pd(B,z)),Id()&&kd("round-end",Rd(n.messages,n.lineage,{historyItems:we.current,foregroundItems:an.current,streamingResponse:M.current.currentResponse,streamingThinking:M.current.thinkingContent,persistedUiHistory:F.current})),await T.finalize()}}catch(R){let E=R instanceof Error?R:new Error(String(R));throw await T.finalize(E),Rs(!1),E}Rs(!1),await If()},[C,kf,n,D.provider,D.thinking,If,na,lr,ta]),hv=K(async f=>{for(let h of f.pastedContents)if(h.type==="text"&&!h.content&&h.contentHash)try{let T=await Ru(h.contentHash);T&&(h.content=T)}catch{}},[]),yv=K(async f=>{let{displayText:h,fullText:T,pastedContents:R}=f;if(!T.trim()||!je||Xe||Me)return;for(let pe of R){if(pe.type!=="text"||pe.content.length<1024)continue;let Ee=yT(pe.content);xT(Ee,pe.content)}if(uh(!1),Ie){if(!Ud)return;if(v.pendingInputs.length>=5){to({type:"info",icon:"\u23F3",text:`Queued follow-up limit reached (${5}). Wait for the next round or press Esc to remove the latest item.`},"queue-limit");return}if(GC(T)){to({type:"info",icon:"\u26A0",text:UC},jC);return}let pe=v.currentTool;if(pe&&xl(pe)?.interruptBehavior==="cancel"){ze(T),de({preservePendingInputs:!0}),Cc(""),Sc(!0),yc(Zt=>Zt+1),Zn(n);return}ze(T),Cc(""),Sc(!0),yc(Ee=>Ee+1),Zn(n);return}let E=Dg(et()),H=an.current.map(pe=>Wo(pe)),B=H.length>0;H.length>0&&ml(H),!B&&E&&ml([{type:"assistant",text:E+`
|
|
332
|
-
|
|
333
|
-
[Interrupted]`}]),ml([{type:"user",text:h}]),Cc(""),Sc(!0),yc(pe=>pe+1),Id()&&kd("turn-start",Rd(n.messages,n.lineage,{historyItems:we.current,foregroundItems:an.current,streamingResponse:M.current.currentResponse,streamingThinking:M.current.thinkingContent,persistedUiHistory:F.current})),q(!0),qe.current=!1,Ms.current=!1,++ea.current,Qd(null),tt.current=null,Jd.current=null,lt(void 0),Os(),Zr.current=[],zo.current=[],Ps([]),Bs(),_c(void 0),Hn.current=[],Et.current=[],kr(),Le(),Te(),ye(void 0),_(),Z(),Zn(n),await new Promise(pe=>setTimeout(pe,50));let z=rs(T.trim());if(z){let pe={exit:gv,saveSession:i(async()=>{if(n.messages.length>0){let W=Ji(n.messages);n.title=W;let ae=n.lineage??lr(n.messages);n.lineage=ae,await r.save(n.sessionId,{messages:n.messages,title:W,gitRoot:n.gitRoot??"",uiHistory:F.current,lineage:ae,artifactLedger:n.artifactLedger})}},"saveSession"),startNewSession:i(()=>{let W=tc(),ae=new Date().toISOString();n.sessionId=W,n.title="",n.uiHistory=[],n.contextTokenSnapshot=void 0,n.lineage=void 0,n.artifactLedger=void 0,F.current=[],n.createdAt=ae,n.lastAccessed=ae,Ke.current.session={...Ke.current.session,id:W},or(null),J(),Cr([]),ku()?.reset(),ce(W)},"startNewSession"),loadSession:i(async W=>{let ae=await r.load(W);return ae?Bo(D,"Resuming a saved session",$d)?(n.messages=ae.messages,n.uiHistory=bs(ae.uiHistory),n.lineage=ae.lineage,n.artifactLedger=ae.artifactLedger,n.title=ae.title,n.sessionId=W,n.contextTokenSnapshot=void 0,F.current=n.uiHistory??[],or(null),J(),Cr([]),ce(W),console.log(Ve.green(`[Session loaded: ${W}]`)),"loaded"):"blocked":"missing"},"loadSession"),listSessions:i(async()=>{let W=await r.list(n.gitRoot??void 0);if(W.length===0){console.log(Ve.dim(`
|
|
334
|
-
[No saved sessions]`));return}console.log(Ve.bold(`
|
|
335
|
-
Recent Sessions:
|
|
336
|
-
`));for(let ae of W.slice(0,10))console.log(` ${Ve.cyan(ae.id)} ${Ve.dim(`(${ae.msgCount} messages)`)} ${ae.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:i(()=>{n.uiHistory=[],J(),Cr([])},"clearHistory"),printHistory:i(()=>{if(n.messages.length===0){console.log(Ve.dim(`
|
|
337
|
-
[No conversation history]`));return}console.log(Ve.bold(`
|
|
338
|
-
Conversation History:
|
|
339
|
-
`));let W=n.messages.slice(-20);for(let ae=0;ae<W.length;ae++){let Re=W[ae],ui=Ve.cyan(Re.role.padEnd(10)),my=La(Re.content),Cv=my.slice(0,60).replace(/\n/g," "),bv=my.length>60?"...":"";console.log(` ${(ae+1).toString().padStart(2)}. ${ui} ${Cv}${bv}`)}console.log()},"printHistory"),switchProvider:i((W,ae)=>{We(Re=>({...Re,provider:W,model:ae})),Ke.current.provider=W,Ke.current.model=ae},"switchProvider"),setThinking:i(W=>{let ae=W?"auto":"off";We(Re=>({...Re,thinking:W,reasoningMode:ae})),Ke.current.thinking=W,Ke.current.reasoningMode=ae},"setThinking"),setReasoningMode:i(W=>{let ae=W!=="off";We(Re=>({...Re,thinking:ae,reasoningMode:W})),Ke.current.thinking=ae,Ke.current.reasoningMode=W},"setReasoningMode"),setAgentMode:i(W=>{We(ae=>({...ae,agentMode:W})),Ke.current.agentMode=W},"setAgentMode"),setPermissionMode:i(W=>{Cf(W)},"setPermissionMode"),setRepoIntelligenceRuntime:i(W=>{We(ae=>({...ae,...W.mode!==void 0?{repoIntelligenceMode:W.mode}:{},...W.endpoint!==void 0?{repointelEndpoint:W.endpoint??void 0}:{},...W.bin!==void 0?{repointelBin:W.bin??void 0}:{},...W.trace!==void 0?{repoIntelligenceTrace:W.trace}:{}})),W.mode!==void 0&&(process.env.KODAX_REPO_INTELLIGENCE_MODE=W.mode,Ke.current.context={...Ke.current.context,repoIntelligenceMode:W.mode}),W.trace!==void 0&&(W.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,Ke.current.context={...Ke.current.context,repoIntelligenceTrace:W.trace}),W.endpoint!==void 0&&(W.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=W.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),W.bin!==void 0&&(W.bin?process.env.KODAX_REPOINTEL_BIN=W.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:i(async W=>{await r.delete?.(W)},"deleteSession"),deleteAllSessions:i(async()=>{await r.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let W=await r.getLineage?.(n.sessionId);if(!W){console.log(Ve.dim(`
|
|
340
|
-
[No session tree available for this session]`));return}let ae=wd(wl(W));console.log(Ve.bold(`
|
|
341
|
-
Session Tree:
|
|
342
|
-
`)),ae.forEach(Re=>console.log(` ${Re}`)),console.log()},"printSessionTree"),switchSessionBranch:i(async W=>{if(!Bo(D,"Switching session branches",$d))return"blocked";let Re=await r.setActiveEntry?.(n.sessionId,W,{summarizeCurrentBranch:!0});return Re?(n.messages=Re.messages,n.uiHistory=bs(Re.uiHistory),n.title=Re.title,n.contextTokenSnapshot=void 0,F.current=n.uiHistory??[],or(null),J(),Cr([]),console.log(Ve.green(`
|
|
343
|
-
[Switched to tree entry: ${W}]`)),console.log(Ve.dim(` Messages: ${Re.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(W,ae)=>{if(!await r.setLabel?.(n.sessionId,W,ae))return!1;let ui=ae&&ae.trim()?`checkpoint label set: ${ae.trim()}`:"checkpoint label cleared";return console.log(Ve.green(`
|
|
344
|
-
[${ui}]`)),!0},"labelSessionBranch"),forkSession:i(async W=>{if(!Bo(D,"Forking a session branch",$d))return"blocked";let Re=await r.fork?.(n.sessionId,W);if(!Re)return"failed";n.sessionId=Re.sessionId,n.messages=Re.data.messages,n.uiHistory=bs(Re.data.uiHistory),n.title=Re.data.title,n.contextTokenSnapshot=void 0,F.current=n.uiHistory??[];let ui=new Date().toISOString();return n.createdAt=ui,n.lastAccessed=ui,Ke.current.session={...Ke.current.session,id:Re.sessionId},or(null),J(),Cr([]),ce(Re.sessionId),console.log(Ve.green(`
|
|
345
|
-
[Forked session: ${Re.sessionId}]`)),console.log(Ve.dim(` Messages: ${Re.data.messages.length}`)),"forked"},"forkSession"),rewindSession:i(async W=>{if(!Bo(D,"Rewinding session",$d))return"blocked";let Re=await r.rewind?.(n.sessionId,W);return Re?(n.messages=Re.messages,n.uiHistory=bs(Re.uiHistory),n.title=Re.title,n.contextTokenSnapshot=void 0,F.current=n.uiHistory??[],or(null),J(),Cr([]),console.log(Ve.green(`
|
|
346
|
-
[Rewound session${W?` to ${W}`:" to previous turn"}]`)),console.log(Ve.dim(` Messages: ${Re.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>G.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(zt(dn.current))return l.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(W=>{zt(dn.current)&&(l.getGuardrail().setEngine(W),cf(W))},"setAutoModeEngine"),createKodaXOptions:i(()=>({...Ke.current,provider:D.provider,model:D.model,thinking:D.thinking,reasoningMode:D.reasoningMode,agentMode:D.agentMode,guardrails:_g(dn.current,l),events:bf()}),"createKodaXOptions"),reloadAgentsFiles:i(async()=>{let W=await Pf({cwd:process.cwd(),projectRoot:n.gitRoot??void 0});return g(W),W},"reloadAgentsFiles"),startCompacting:i(()=>{P()},"startCompacting"),stopCompacting:i(()=>{Y()},"stopCompacting"),confirm:i(async W=>(await so("confirm",{_alwaysConfirm:!0,_message:W})).confirmed,"confirm"),ui:{select:i(async(W,ae)=>pv(W,ae),"select"),confirm:i(async W=>(await so("confirm",{_alwaysConfirm:!0,_message:W})).confirmed,"confirm"),input:i(async(W,ae)=>ay(W,ae),"input")}},Ee=[],Zt=console.log;console.log=(...W)=>{let ae=W.map(Re=>typeof Re=="string"?Re:String(Re)).join(" ");Ee.push(ae)};let fn;try{let W=await os(z,n,pe,D);typeof W=="object"&&W!==null&&"invocation"in W&&(fn=W.invocation)}finally{console.log=Zt}if(Ee.length>0&&C({type:"info",text:Ee.join(`
|
|
347
|
-
`)}),fn){q(!1),Ce(),q(!0),Z(),Be();try{await uy(fn,T.trim())}catch(W){let ae=W instanceof Error?W:new Error(String(W)),Re=ae.name==="AbortError"||ae.message.includes("aborted")||ae.message.includes("ABORTED");console.log=Zt,Re?ul():ra([{type:"error",text:ae.message}])}finally{q(!1),Ce(),V()}return}q(!1),Ce();return}let re=await Zp(T.trim());if(T.trim().startsWith("!")&&nc(re)){q(!1),Ce();return}let he=Ke.current.context?.executionCwd??process.cwd(),st=i(pe=>{pe.length!==0&&ra(pe.map(Ee=>({type:"info",text:Ee})))},"emitArtifactWarnings");Be();let Pt=[],oa=console.log;console.log=(...pe)=>{let Ee=pe.map(Zt=>typeof Zt=="string"?Zt:String(Zt)).join(" ");Pt.push(Ee)};try{await gl(re,async pe=>{let Ee=rc(pe,Ke.current.context?.executionCwd??process.cwd());return st(Ee.warnings),ta(Ke.current,Ee.promptText,n.messages,Ee.inputArtifacts)})}catch(pe){let Ee=pe instanceof Error?pe:new Error(String(pe));if(Ee.name==="AbortError"||Ee.message.includes("aborted")||Ee.message.includes("ABORTED"))console.log=oa,ul();else{let fn=Ee.message;Ee.message.includes("rate limit")||Ee.message.includes("Rate limit")?fn=`[Rate Limit] ${Ee.message}
|
|
348
|
-
Suggestion: Wait a moment and try again, or switch provider with /mode`:Ee.message.includes("API key")||Ee.message.includes("not configured")?fn=`[Configuration Error] ${Ee.message}
|
|
349
|
-
Suggestion: Set the required API key environment variable`:Ee.message.includes("network")||Ee.message.includes("ECONNREFUSED")||Ee.message.includes("ETIMEDOUT")?fn=`[Network Error] ${Ee.message}
|
|
350
|
-
Suggestion: Check your internet connection`:(Ee.message.includes("token")||Ee.message.includes("context too long"))&&(fn=`[Context Error] ${Ee.message}
|
|
351
|
-
Suggestion: Use /clear to start fresh`),console.log=oa,Ze.current.workerId?ln({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:fn,timestamp:Date.now()}):ra([{type:"error",text:fn}])}}finally{if(console.log=oa,Pt.length>0){let Ee=Pt.filter((Zt,fn,W)=>W.indexOf(Zt)===fn);C({type:"info",text:Ee.join(`
|
|
352
|
-
`)})}if(!qe.current){let Ee=Ds(O.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));Ee.length>0&&Ze.current.workerId&&Ee.forEach(Zt=>Rn(Zt))}q(!1),Ce(),Le(),V();let pe=co(n.messages);n.contextTokenSnapshot={currentTokens:pe,baselineEstimatedTokens:pe,source:"estimate"},or(pe)}},[je,n,D,Ud,v.pendingInputs.length,r,Xe,Me,x,a,C,J,Z,Ce,Le,bf,uy,pt,et,Je,ml,kf,na,lr,gl,If,P,Y,kr,Ds,Rn,Bs]),xv=oe(rd,{left:oe(td,{items:$h}),right:oe(nd,{items:Lh}),queued:oe(Vp,{pendingInputs:v.pendingInputs}),stashNotice:oe(ud,{text:rl}),notifications:oe(ld,{notifications:nl}),inlineNotices:mf.length>0?oe(zp,{notices:mf}):void 0,activityBar:io||Ie&&ar.shouldRender?jt(k,{paddingX:1,flexDirection:"row",children:[jt(k,{flexGrow:1,children:[io?.showSpinner?oe(Sn,{color:te("dark").colors.accent}):null,io?jt(b,{color:io.kind==="waiting"?te("dark").colors.warning:te("dark").colors.accent,children:[io.showSpinner?" ":"",io.text]}):null]}),Ie&&ar.shouldRender?oe(b,{dimColor:!0,children:`${ar.completedCount}/${ar.totalCount} completed`}):null]}):void 0,todoSurface:Ie&&ar.shouldRender?oe(k,{paddingX:1,children:oe(nC,{viewModel:ar})}):void 0,composer:oe(Np,{onSubmit:yv,onHistoryRecall:hv,onPopPendingInputs:i(()=>{let f=Dn();if(f.length!==0)return f.join(`
|
|
353
|
-
---
|
|
354
|
-
`)},"onPopPendingInputs"),prompt:">",placeholder:bb({isLoading:Ie,canQueueFollowUps:Ud,waitingReason:lf}),focus:!Xe&&!Me&&!nt,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:ov}),inlineSuggestions:lv,helpSurface:lh?oe(Hp,{sections:Ed()}):void 0,taskBar:zs?oe(dd,{items:ti.backgroundTask.items,overflowLabel:ti.backgroundTask.overflowLabel,ctaHint:ti.backgroundTask.ctaHint,showSpinner:Ie}):void 0,statusLine:oe(k,{children:oe(fs,{...el,viewModel:_h})}),inlineDialogs:dv}),wv=oe(rd,{left:oe(td,{items:$h}),right:oe(nd,{items:Lh}),stashNotice:oe(ud,{text:rl}),notifications:oe(ld,{notifications:nl}),composer:oe(JS,{searchActive:nt,selectionActive:!!(sr||Ge),showAllActive:Nt,searchQuery:Bt,searchCurrent:Tt.length>0?Mr+1:0,searchCount:Tt.length,searchDetailText:sf,pendingLiveUpdates:Ws,secondaryText:av}),taskBar:zs?oe(dd,{items:ti.backgroundTask.items,overflowLabel:ti.backgroundTask.overflowLabel,ctaHint:ti.backgroundTask.ctaHint,showSpinner:rt}):void 0,statusLine:oe(k,{children:oe(fs,{...el,viewModel:df})})}),Rf=K(f=>oe(ZS,{banner:f?.bannerVisible?oe($g,{...ro}):void 0,items:Gs,isLoading:Ft,viewportRows:Wt.messageRows,viewportWidth:X,scrollOffset:vn,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Ks:zc,maxLines:Ht,selectedTextRanges:rf?Ec?.rowRanges:void 0,onMetricsChange:il,onVisibleRowsChange:sl}),[ro,Gs,Ft,il,sl,vn,zc,X,Ht,Ec?.rowRanges,Wt.messageRows,rf]),Ef=K(f=>oe(eC,{banner:f?.bannerVisible?oe($g,{...ro}):void 0,items:js,browse:{hintText:Ar.browseHintText},selection:ol,search:Eh,isLoading:rt,isThinking:me.isThinking,thinkingCharCount:me.thinkingCharCount,thinkingContent:me.thinkingContent,streamingResponse:me.currentResponse,currentTool:me.currentTool,activeToolCalls:me.activeToolCalls,toolInputCharCount:me.toolInputCharCount,toolInputContent:me.toolInputContent,iterationHistory:me.iterationHistory,currentIteration:me.currentIteration,isCompacting:me.isCompacting,agentMode:D.agentMode,managedPhase:rt?U?.phase:void 0,managedHarnessProfile:rt?U?.harnessProfile:void 0,managedWorkerTitle:rt?U?.activeWorkerTitle:void 0,managedRound:rt?U?.currentRound:void 0,managedMaxRounds:rt?U?.maxRounds:void 0,managedGlobalWorkBudget:rt?U?.globalWorkBudget:void 0,managedBudgetUsage:rt?U?.budgetUsage:void 0,managedBudgetApprovalRequired:rt?U?.budgetApprovalRequired:void 0,lastLiveActivityLabel:me.lastLiveActivityLabel,viewportRows:Wt.messageRows,viewportWidth:X,scrollOffset:vn,windowed:!!f?.windowed,animateSpinners:!!f?.rendererWindow&&ri,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Ks:Xc,maxLines:Ht,showDetailedTools:Nt,showAllContent:Nt,selectedItemId:un.selectionEnabled?Ge:void 0,selectedTextRanges:Qr?.rowRanges,expandedItemKeys:un.selectionEnabled?Qt:void 0,onMetricsChange:il,onVisibleRowsChange:sl}),[ro,D.agentMode,rt,Qt,s.transcriptSpinnerAnimation,il,sl,vn,xh,U?.activeWorkerTitle,U?.budgetApprovalRequired,U?.budgetUsage,U?.currentRound,U?.globalWorkBudget,U?.harnessProfile,U?.maxRounds,U?.phase,Ks,Xc,Ar.browseHintText,Ge,ol,X,ri,js,Ht,me.activeToolCalls,me.currentIteration,me.currentResponse,me.currentTool,me.isCompacting,me.isThinking,me.iterationHistory,me.lastLiveActivityLabel,me.thinkingCharCount,me.thinkingContent,me.toolInputCharCount,me.toolInputContent,Qr?.rowRanges,Eh,Nt,Wt.messageRows]),Tv=ee?Ef({bannerVisible:!1,windowed:gt}):Rf({bannerVisible:!1}),dy=ee?wv:xv,Sv=s.enabled&&Zo,fy=jt(k,{flexDirection:"column",width:X,flexShrink:0,flexGrow:Sv?1:0,children:[oe(lg,{currentConfig:D,setCurrentConfig:We,isLoading:Ie,abort:de,stopThinking:ne,clearThinkingContent:V,setCurrentTool:ye,setIsLoading:q,onToggleHelp:rv,setShowHelp:uh,onSetThinking:i(f=>{Ke.current.thinking=f},"onSetThinking"),onSetReasoningMode:i(f=>{Ke.current.reasoningMode=f,Ke.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:fv,onOpenTranscriptSearch:hf,canOpenTranscriptSearch:ee&&!Xe&&!Me,isInteractiveDialogActive:!!(Xe||Me),onSetAgentMode:i(f=>{Ke.current.agentMode=f},"onSetAgentMode"),onSetPermissionMode:i(f=>{Cf(f)},"onSetPermissionMode"),isInputEmpty:jd,onSavePermissionMode:Na}),rr&&(s.enabled?null:oe(Ki,{items:[1],children:i(()=>oe($g,{...ro},"banner"),"children")})),Zo?oe($p,{width:X,stickyHeader:Ar.stickyHeader,jumpToLatest:Ar.jumpToLatest,transcript:!s.enabled||!gt?ee?Ef({bannerVisible:!1}):Rf({bannerVisible:!1}):void 0,renderTranscriptWindow:s.enabled&>?f=>(()=>{let T=Qs(f).contentWindow;return ee?Ef({bannerVisible:!1,windowed:!0,rendererWindow:T}):Rf({bannerVisible:!1,rendererWindow:T})})():void 0,overlay:wf,scrollTop:vn,scrollHeight:qs,viewportHeight:Wt.messageRows,stickyScroll:!ee&&!Rr&&Vd,scrollRef:K0,onWindowChange:uv,onScrollTopChange:z0,onStickyChange:X0,footer:dy}):jt(uL,{children:[jt(k,{flexDirection:"column",flexGrow:1,children:[Tv,wf?oe(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:wf}):null]}),dy]})]});return nf?oe(wm,{mouseTracking:Er.usesRendererMouseTracking,children:fy}):fy},"InkREPLInner"),CL=i(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return oe(id,{children:oe(fd,{children:oe(cu,{children:oe(ag,{children:oe(fp,{cwd:t,gitRoot:n,children:oe(SL,{...e})})})})})})},"InkREPL");function bL(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}i(bL,"isRawModeSupported");async function Bg(e){if(!bL())throw new Af("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 ys,n=go(),r=ho(),o=yo(n,r),{prepareRuntimeConfig:s,getGitRoot:a}=await import("./utils-DFMYJUTE.js"),{loadCompactionConfig:c}=await import("./compaction-config-A7XZ6H5Y.js"),{resolveProvider:l}=await import("./dist-OTUF22DA.js"),u=s(),m=e.provider??u.provider??hl,p=e.model??u.model,g=dL(e,u),x=e.agentMode??u.agentMode??"ama",y=g!=="off",w=Xn(u.permissionMode,"accept-edits")??"accept-edits",S=yl(),I=u.repoIntelligenceTrace===!0,$={provider:m,model:p,thinking:y,reasoningMode:g,agentMode:x,permissionMode:w,repoIntelligenceMode:S.mode,repointelEndpoint:S.endpoint,repointelBin:S.bin,repoIntelligenceTrace:I},L=e.session?.id,G=[],N,C,J,ce="",we=await a().catch(()=>null)??void 0;try{let{bootstrapConstructionRuntime:se}=await import("./construction-bootstrap-OFPUZTXQ.js"),ne=await se(we??process.cwd());if(ne.loaded>0||ne.failed>0||ne.tampered>0){let V=ne.failed>0?`; ${ne.failed} failed (see warnings above)`:"",ye=ne.tampered>0?`; ${ne.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";console.log(Ve.dim(`[Constructed] Rehydrated ${ne.loaded} active tool(s)${V}${ye}.`))}}catch(se){console.warn(Ve.yellow(`[Constructed] Bootstrap failed: ${se.message}. Self-construction disabled this session.`))}let F;try{let se=await c(we),ne=l(m);F={contextWindow:se.contextWindow??ne.getContextWindow?.()??2e5,triggerPercent:se.triggerPercent,enabled:se.enabled}}catch{}if(e.session?.id&&!e.session.resume){let se=await t.load(e.session.id);se&&(G=se.messages,N=bs(se.uiHistory),C=se.lineage,J=se.artifactLedger,ce=se.title,L=e.session.id,console.log(Ve.green(`[Session loaded: ${e.session.id}]`)))}else if(e.session?.resume||e.session?.autoResume){let se=await t.list(we);if(se.length>0){let ne=se[0];if(ne){let V=await t.load(ne.id);V&&(G=V.messages,N=bs(V.uiHistory),C=V.lineage,J=V.artifactLedger,ce=V.title,L=ne.id,console.log(Ve.green(`[Continuing session: ${ne.id}]`)))}}}let X=await ec({sessionId:L,gitRoot:we,existingMessages:G,existingUiHistory:N,existingLineage:C,existingArtifactLedger:J});X.title=ce;let M={current:await Pf({cwd:process.cwd(),projectRoot:we??void 0})},Z={current:null},Ce={current:null},de={current:$},Be=wu(),ie=await Sd({askUser:i(async(se,ne,V)=>{let ye=Z.current;return ye?ye(se,ne,V):"block"},"askUser"),projectRoot:we??process.cwd(),getAgentsFiles:i(()=>M.current,"getAgentsFiles"),getCurrentProviderName:i(()=>de.current.provider,"getCurrentProviderName"),getCurrentModel:i(()=>de.current.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>de.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:Be,log:i((se,ne)=>{se==="warn"?console.warn(Ve.yellow(ne)):console.log(Ve.dim(ne))},"log"),onEngineChange:i(se=>{Ce.current?.(se)},"onEngineChange"),extraCollectors:[Ma]});try{let se=process.stdout,ne=process.stdin;import("./paste-5DSTHQGK.js").then(Te=>Te.prunePasteTmpDir()).catch(()=>{});let V=!1,{waitUntilExit:ye,cleanup:it}=tu(oe(CL,{options:e,config:$,context:X,storage:t,compactionInfo:F,rendererMode:r,fullscreenPolicy:o,autoModeBootstrap:ie,setAutoModeAskUser:i(Te=>{Z.current=Te},"setAutoModeAskUser"),setAutoModeEngineChange:i(Te=>{Ce.current=Te},"setAutoModeEngineChange"),setCurrentConfigRef:i(Te=>{de.current=Te},"setCurrentConfigRef"),onAgentsFilesReload:i(Te=>{M.current=Te},"onAgentsFilesReload"),onExit:i(()=>{V=!0},"onExit")}),{stdout:se,stdin:ne,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:o.enabled?o.promptShell:"main-screen"});await ye(),it(),ne.isTTY===!0&&typeof ne.setRawMode=="function"&&ne.isRaw&&ne.setRawMode(!1),ne.pause?.(),ne.unref?.(),V&&console.log(Ve.dim(`
|
|
355
|
-
[Exiting KodaX...]`));let be=e.hardExitOnClose??process.env.VITEST!=="true";if(V&&be){let Te=process.exitCode??0,Le=!1,Se=i(()=>{Le||(Le=!0,process.exit(Te))},"requestProcessExit");setTimeout(Se,0).unref?.(),se.write("",Se);return}}catch(se){throw se instanceof Error&&se.message.includes("Raw mode")?new Af("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):se}}i(Bg,"runInkInteractiveMode");import on from"chalk";var i0=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],s0=["\x1B[36m","\x1B[35m","\x1B[34m"],ac=null,vs=!1;function sc(){let e=0,t=0,n=!1,r="Thinking...",o=i(()=>{if(n)return;let c=s0[t%s0.length],l="\x1B[0m",u=i0[e%i0.length];process.stdout.write(`\r${c}${u}${l} ${r}`)},"renderFrame"),s=setInterval(()=>{e++,e%10===0&&t++,o()},80);o();let a={stop:i(()=>{n||(n=!0,clearInterval(s),process.stdout.write("\r\x1B[K"))},"stop"),isStopped:i(()=>n,"isStopped"),updateText:i(c=>{r=c},"updateText")};return ac=a,a}i(sc,"startWaitingDots");function vL(e=!0){let t=null,n=0,r=!1;return{onSessionStart:i(s=>{console.log(e?on.cyan(`[KodaX] Provider: ${s.provider} | Session: ${s.sessionId}`):on.cyan(`[KodaX] Provider: ${s.provider}`))},"onSessionStart"),onTextDelta:i(s=>{t&&(t.stop(),t=null),n=0,process.stdout.write(s),r=!0},"onTextDelta"),onThinkingDelta:i(s=>{n+=s.length,t||(t=sc()),t.updateText(`Thinking... (${n} chars)`)},"onThinkingDelta"),onThinkingEnd:i(s=>{if(t&&(t.stop(),t=null),s){let a=s.replace(/\n/g," "),c=a.length>100?a.slice(0,100)+"...":a;console.log(on.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:i(s=>{t||(vs||(process.stdout.write(`
|
|
356
|
-
`),vs=!0),t=sc()),t.updateText(`Executing ${s.name}...`)},"onToolUseStart"),onToolInputDelta:i((s,a,c)=>{let l=a.length;t&&!t.isStopped()?t.updateText(`Receiving ${s}... (${l} chars)`):(!t||t.isStopped())&&(vs||(process.stdout.write(`
|
|
357
|
-
`),vs=!0,r=!1),t=sc(),t.updateText(`Receiving ${s}... (${l} chars)`))},"onToolInputDelta"),onToolResult:i(s=>{t&&(t.stop(),t=null),console.log(on.green(`[Result] ${s.content.slice(0,300)}${s.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:i(s=>{t&&(t.stop(),t=null),console.log(on.dim(`[RepoIntel] ${s.summary}`))},"onRepoIntelligenceTrace"),onStreamEnd:i(()=>{ac&&!ac.isStopped()&&ac.stop(),ac=null,vs=!1,r&&(console.log(),r=!1),(!t||t.isStopped())&&(t=sc(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:i((s,a)=>{t&&!t.isStopped()&&t.stop(),vs=!1,r=!1,console.log(on.magenta(`
|
|
358
|
-
[Assistant]`)),t=sc()},"onIterationStart"),onCompactStart:i(()=>{console.log(on.dim(`
|
|
359
|
-
[KodaX] Compacting context...`))},"onCompactStart"),onCompact:i(s=>{console.log(on.dim(`[KodaX] Compaction finished (${s} tokens).`))},"onCompact"),onCompactEnd:i(()=>{},"onCompactEnd"),onRetry:i((s,a,c)=>{console.log(on.yellow(`[KodaX] Retry ${a}/${c}: ${s}`))},"onRetry"),onProviderRecovery:i(s=>{let a=s.recoveryAction==="non_streaming_fallback"?"switching to non-streaming fallback":s.recoveryAction==="manual_continue"?"awaiting manual continue":`recovering ${s.attempt}/${s.maxAttempts}`;console.log(on.yellow(`[KodaX] ${a} (${s.errorClass}, ${s.stage})`))},"onProviderRecovery"),onComplete:i(()=>{t&&(t.stop(),t=null),console.log(on.green(`
|
|
360
|
-
[KodaX] Done!`))},"onComplete"),onError:i(s=>{t&&(t.stop(),t=null),console.log(on.red(`
|
|
361
|
-
[Error] ${s.message}`))},"onError"),onScoutSuspiciousCompletion:i(s=>{console.log(on.yellow(`
|
|
362
|
-
[Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:i(async(s,a)=>!0,"beforeToolExecute")}}i(vL,"createCliEvents");function ot(e,t){e.write(`${JSON.stringify(t)}
|
|
363
|
-
`)}i(ot,"writeJsonLine");function IL(e){return{type:"error",name:e.name,message:e.message,stack:e.stack}}i(IL,"serializeError");function kL(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:i(r=>{ot(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId})},"onSessionStart"),onIterationStart:i((r,o)=>{ot(t,{type:"iteration.start",iter:r,maxIter:o})},"onIterationStart"),onIterationEnd:i(r=>{ot(t,{type:"iteration.end",iter:r.iter,maxIter:r.maxIter,tokenCount:r.tokenCount,tokenSource:r.tokenSource,usage:r.usage,contextTokenSnapshot:r.contextTokenSnapshot})},"onIterationEnd"),onTextDelta:i(r=>{ot(t,{type:"text.delta",text:r})},"onTextDelta"),onThinkingDelta:i(r=>{ot(t,{type:"thinking.delta",text:r})},"onThinkingDelta"),onThinkingEnd:i(r=>{ot(t,{type:"thinking.end",thinking:r})},"onThinkingEnd"),onToolUseStart:i(r=>{ot(t,{type:"tool.start",id:r.id,name:r.name,input:r.input})},"onToolUseStart"),onToolInputDelta:i((r,o,s)=>{ot(t,{type:"tool.input.delta",toolName:r,partialJson:o,toolId:s?.toolId})},"onToolInputDelta"),onToolResult:i(r=>{ot(t,{type:"tool.result",id:r.id,name:r.name,content:r.content})},"onToolResult"),onStreamEnd:i(()=>{ot(t,{type:"stream.end"})},"onStreamEnd"),onCompactStart:i(()=>{ot(t,{type:"compact.start"})},"onCompactStart"),onCompact:i(r=>{ot(t,{type:"compact.finish",estimatedTokens:r})},"onCompact"),onCompactStats:i(r=>{ot(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter})},"onCompactStats"),onCompactEnd:i(()=>{ot(t,{type:"compact.end"})},"onCompactEnd"),onRetry:i((r,o,s)=>{ot(t,{type:"retry",reason:r,attempt:o,maxAttempts:s})},"onRetry"),onProviderRecovery:i(r=>{ot(t,{type:"provider.recovery",stage:r.stage,reasonCode:r.errorClass,attempt:r.attempt,maxAttempts:r.maxAttempts,delayMs:r.delayMs,nextAt:Date.now()+r.delayMs,recoveryAction:r.recoveryAction,fallbackUsed:r.fallbackUsed})},"onProviderRecovery"),onProviderRateLimit:i((r,o,s)=>{ot(t,{type:"provider.rate_limit",attempt:r,maxRetries:o,delayMs:s})},"onProviderRateLimit"),onRepoIntelligenceTrace:i(r=>{ot(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace})},"onRepoIntelligenceTrace"),onToolProgress:i(r=>{ot(t,{type:"tool.progress",id:r.id,message:r.message})},"onToolProgress"),onManagedTaskStatus:i(r=>{ot(t,{type:"managed_task.status",agentMode:r.agentMode,harnessProfile:r.harnessProfile,phase:r.phase,activeWorkerId:r.activeWorkerId,activeWorkerTitle:r.activeWorkerTitle,childFanoutClass:r.childFanoutClass,childFanoutCount:r.childFanoutCount,currentRound:r.currentRound,maxRounds:r.maxRounds,note:r.note,detailNote:r.detailNote,globalWorkBudget:r.globalWorkBudget,budgetUsage:r.budgetUsage,budgetApprovalRequired:r.budgetApprovalRequired})},"onManagedTaskStatus"),onScoutSuspiciousCompletion:i(r=>{ot(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview})},"onScoutSuspiciousCompletion"),onComplete:i(()=>{ot(t,{type:"complete"})},"onComplete"),onError:i(r=>{ot(n,IL(r))},"onError")}}i(kL,"createJsonEvents");import{jsx as ct,jsxs as Yt}from"react/jsx-runtime";import _L,{useMemo as cc}from"react";var Hg=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,a0=/^---\s+(.+)$/;function c0(e){if(!e)return[];let t=e.split(`
|
|
364
|
-
`),n=[],r=[],o=[],s=!1,a=null,c=null,l=0,u=0,m=i(()=>{if(r.length===0)return;let g=r.join(`
|
|
365
|
-
`);g.length>0&&n.push({kind:"text",text:g}),r=[]},"flushText"),p=i(()=>{o.length!==0&&(n.push({kind:"diff",text:o.join(`
|
|
366
|
-
`),addedLines:l,removedLines:u,filePath:c}),o=[],l=0,u=0,c=null)},"flushDiff");for(let g=0;g<t.length;g++){let x=t[g];if(!s){let S=a0.exec(x);if(S){let I=Math.min(g+3,t.length-1),$=!1;for(let L=g+1;L<=I;L++)if(t[L]?.startsWith("+++ ")||Hg.test(t[L]??"")){$=!0;break}if($){m(),s=!0,a=S[1]??null,c=a,o.push(x);continue}}if(Hg.test(x)){m(),s=!0,o.push(x);continue}r.push(x);continue}let y=a0.exec(x);if(y){let S=Math.min(g+3,t.length-1),I=!1;for(let $=g+1;$<=S;$++)if(t[$]?.startsWith("+++ ")||Hg.test(t[$]??"")){I=!0;break}if(I){p(),c=y[1]??null,o.push(x);continue}}let w=x[0];if(w==="+"||w==="-"||w===" "||w==="@"||x===""){w==="+"&&!x.startsWith("+++ ")&&l++,w==="-"&&!x.startsWith("--- ")&&u++,o.push(x);continue}p(),s=!1,a=null,r.push(x)}return p(),m(),n}i(c0,"parseUnifiedDiff");function l0(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}i(l0,"containsUnifiedDiff");import{jsxs as Is,jsx as RL}from"react/jsx-runtime";import EL from"react";function ML(e){return e.startsWith("+++ ")?{text:e,kind:"file-header"}:e.startsWith("--- ")?{text:e,kind:"file-header"}:e.startsWith("@@ ")?{text:e,kind:"hunk-header"}:e.startsWith("+")?{text:e,kind:"add"}:e.startsWith("-")?{text:e,kind:"remove"}:{text:e,kind:"context"}}i(ML,"classifyLine");function AL(e,t){switch(e){case"add":return t.colors.success;case"remove":return t.colors.error;case"hunk-header":case"file-header":return t.colors.dim;default:return}}i(AL,"colorFor");var Fg=EL.memo(({text:e,addedLines:t,removedLines:n,filePath:r,theme:o,maxLines:s=16,extremeThreshold:a=200})=>{let c=o??te("dark"),l=e.split(`
|
|
367
|
-
`),u=l.map(ML),m=`(${t>0?`+${t}`:"\xB10"} ${n>0?`-${n}`:""})`.trim();if(l.length>a)return Is(k,{flexDirection:"column",marginLeft:4,children:[r&&Is(b,{dimColor:!0,children:[r," ",m]}),Is(b,{dimColor:!0,children:["[diff too large to render inline \u2014 ",l.length," lines, ",t,"+ / ",n,"-]"]})]});let p,g=0;if(l.length>s){let x=Math.floor(s/2),y=u.slice(0,x),w=u.slice(-x);g=l.length-y.length-w.length,p=[...y,{text:"",kind:"context"},...w]}else p=u;return Is(k,{flexDirection:"column",marginLeft:4,children:[r&&Is(b,{dimColor:!0,children:[r," ",m]}),p.map((x,y)=>{if(y===Math.floor(s/2)&&g>0&&x.kind==="context"&&x.text==="")return Is(b,{dimColor:!0,children:["... ",g," lines collapsed ..."]},`collapse-${y}`);let S=AL(x.kind,c);return RL(b,{color:S,children:x.text||" "},y)})]})});Fg.displayName="DiffHunk";function u0(e){switch(e){case O.Scheduled:return"\u25CB";case O.Validating:return"\u25D0";case O.AwaitingApproval:return"\u23F8";case O.Executing:return"\u25CF";case O.Success:return"\u2713";case O.Error:return"\u2717";case O.Cancelled:return"\u2298";default:return"?"}}i(u0,"getStatusIcon");function d0(e,t){switch(e){case O.Scheduled:case O.Validating:return t.colors.dim;case O.AwaitingApproval:return t.colors.accent;case O.Executing:return t.colors.primary;case O.Success:return t.colors.success??t.colors.primary;case O.Error:return t.colors.error;case O.Cancelled:return t.colors.dim;default:return t.colors.text}}i(d0,"getStatusColor");function PL(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(PL,"formatDuration");function $L(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}i($L,"formatInputSummary");var LL=i(({status:e,theme:t})=>{let n=t??cc(()=>te("dark"),[]),r=u0(e),o=d0(e,n);return ct(b,{color:o,children:r})},"ToolStatusBadge"),f0=i(({progress:e,width:t=20,theme:n})=>{let r=n??cc(()=>te("dark"),[]),o=Math.max(0,Math.min(100,e)),s=Math.round(o/100*t),a=t-s,c="\u2588".repeat(s),l="\u2591".repeat(a);return Yt(k,{children:[ct(b,{color:r.colors.primary,children:c}),ct(b,{dimColor:!0,children:l}),Yt(b,{children:[" ",o,"%"]})]})},"ToolProgressBar"),m0=i(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??cc(()=>te("dark"),[]),o=u0(e.status),s=d0(e.status,r),a=$L(e.input),c=PL(e.startTime,e.endTime);return t?Yt(k,{children:[Yt(b,{color:s,children:[o," "]}),ct(b,{color:r.colors.text,children:e.name})]}):Yt(k,{flexDirection:"column",marginLeft:2,children:[Yt(k,{children:[Yt(b,{color:s,children:[o," "]}),ct(b,{color:r.colors.text,bold:!0,children:e.name}),a&&Yt(b,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===O.Executing&&ct(k,{marginLeft:2,children:ct(f0,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===O.Executing&&ct(k,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>ct(b,{dimColor:!0,children:l},u))}),e.error&&ct(k,{marginLeft:2,children:ct(b,{color:r.colors.error,children:e.error})}),e.status===O.Success&&typeof e.output=="string"&&e.output.length>0&&ct(p0,{output:e.output,theme:r}),c&&e.status!==O.Executing&&ct(k,{marginLeft:2,children:Yt(b,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),p0=_L.memo(({output:e,theme:t})=>{if(!l0(e))return ct(k,{marginLeft:2,children:ct(b,{dimColor:!0,children:e})});let n=c0(e);return ct(k,{flexDirection:"column",marginLeft:2,children:n.map((r,o)=>r.kind==="text"?ct(b,{dimColor:!0,children:r.text},o):ct(Fg,{text:r.text,addedLines:r.addedLines,removedLines:r.removedLines,filePath:r.filePath,theme:t},o))})});p0.displayName="ToolOutputBlock";var OL=i(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let o=r??cc(()=>te("dark"),[]);if(e.length===0)return null;let s=cc(()=>{let c={[O.Scheduled]:0,[O.Validating]:0,[O.AwaitingApproval]:0,[O.Executing]:0,[O.Success]:0,[O.Error]:0,[O.Cancelled]:0};for(let l of e)c[l.status]++;return c},[e]),a=n??"Tools";if(t){let c=s[O.Success],l=s[O.Error],u=s[O.Executing]+s[O.Scheduled]+s[O.Validating];return ct(k,{flexDirection:"column",marginBottom:1,children:Yt(k,{children:[ct(b,{color:o.colors.accent,bold:!0,children:a}),Yt(b,{dimColor:!0,children:[" ","(",e.length," tools",c>0&&`, ${c} succeeded`,l>0&&`, ${l} failed`,u>0&&`, ${u} running`,")"]})]})})}return Yt(k,{flexDirection:"column",marginBottom:1,children:[Yt(k,{children:[ct(b,{color:o.colors.accent,bold:!0,children:a}),Yt(b,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>ct(m0,{tool:c,theme:o},c.id))]})},"ToolGroup");import{jsxs as g0,jsx as DL}from"react/jsx-runtime";var NL=i(({pendingInputs:e})=>{let t=cd(e);if(!t)return null;let n=te("dark");return g0(k,{children:[g0(b,{color:n.colors.hint,children:["\u23F3"," "]}),DL(b,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as h0 from"child_process";var lc;function BL(){if(process.platform!=="win32")return null;if(lc!==void 0)return lc;try{lc=h0.execFileSync(process.env.ComSpec??"cmd.exe",["/d","/s","/c","chcp"],{encoding:"utf8",stdio:["ignore","pipe","ignore"],windowsHide:!0}).match(/(\d{3,5})/)?.[1]??null}catch{lc=null}return lc}i(BL,"detectWindowsCodePage");function Od(){let e=process.env;return!!(e.COLORTERM==="truecolor"||e.COLORTERM==="24bit"||e.TERM_PROGRAM==="iTerm.app"||e.WT_SESSION||e.TERM==="xterm-kitty"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="gnome-terminal")}i(Od,"supportsTrueColor");function y0(){if(Od())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}i(y0,"supports256Colors");function Sr(){let e=process.env,t=e.LC_ALL||"",n=e.LC_CTYPE||"",r=e.LANG||"";if(t==="C"||t==="POSIX"||n==="C"||n==="POSIX"||r==="C"||r==="POSIX")return!1;let o=`${t}|${n}|${r}`.toLowerCase();return o.includes("utf-8")||o.includes("utf8")?!0:process.platform==="win32"?e.WT_SESSION||e.TERM_PROGRAM==="vscode"?!0:BL()==="65001":!0}i(Sr,"supportsUnicode");function x0(){let e=process.env;return!!(e.TERM_PROGRAM==="iTerm.app"||e.WT_SESSION||e.TERM==="xterm-kitty"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="Apple_Terminal"||e.TERM_PROGRAM==="gnome-terminal"||e.COLORTERM)}i(x0,"supportsEmoji");function w0(){if(process.stdout?.columns)return process.stdout.columns;let t=process.env.COLUMNS;if(t){let n=Number.parseInt(t,10);if(!Number.isNaN(n)&&n>0)return n}return 80}i(w0,"getTerminalWidth");function T0(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}i(T0,"isScreenReader");function HL(){return process.stdout?.isTTY??!1}i(HL,"isTTY");function FL(){return{trueColor:Od(),colors256:y0(),unicode:Sr(),emoji:x0(),tty:HL(),columns:w0(),screenReader:T0()}}i(FL,"detectTerminalCapabilities");var uc=class{static{i(this,"ConsoleCapturer")}captured=[];originalLog=null;start(){this.captured=[],this.originalLog=console.log,console.log=(...t)=>{let n=t.map(r=>typeof r=="string"?r:String(r)).join(" ");this.captured.push(n)}}stop(){return this.originalLog!==null&&(console.log=this.originalLog,this.originalLog=null),this.captured}getCaptured(){return[...this.captured]}clear(){this.captured=[]}};async function WL(e){let t=new uc;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(WL,"withCapture");function UL(e){let t=new uc;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(UL,"withCaptureSync");import*as E0 from"readline";import*as M0 from"child_process";import*as gc from"path";import*as pc from"fs";import*as A0 from"os";import j from"chalk";import Ln from"chalk";var jL=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],GL=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"},{key:"a",label:"Always",description:"Always allow this kind of action",value:"always"}];function KL(e,t=!0){return e.map(n=>{let r=Ln.dim(`[${n.key}]`);return t?`${r} ${Ln.cyan(n.label)} ${Ln.dim(`- ${n.description}`)}`:`${r} ${n.label}`}).join(" ")}i(KL,"formatOptions");function ks(){return process.stdout.columns??80}i(ks,"getTerminalWidth");function VL(){return Sr()}i(VL,"supportsUnicode");function zL(){let e=VL();return{success:e?"\u2713":"[OK]",error:e?"\u2717":"[X]",warning:e?"\u26A0":"[!]",info:e?"\u2139":"[i]",arrow:e?"\u2192":"->",bullet:e?"\u2022":"*",check:e?"\u2713":"[v]",cross:e?"\u2717":"[x]"}}i(zL,"getSymbols");async function XL(e,t){let{message:n,default:r,options:o,showDescription:s=!0}=t,a=o??jL,c=KL(a,s);console.log(),console.log(Ln.cyan(`? ${n}`));let l=ks();if(c.length>l-4)for(let u of a){let m=Ln.dim(` [${u.key}]`);console.log(`${m} ${Ln.cyan(u.label)}`),s&&console.log(Ln.dim(` ${u.description}`))}else console.log(Ln.dim(` ${c}`));return new Promise(u=>{let m=r?` (${r})`:"";e.question(Ln.dim(` Choose${m}: `),p=>{let g=p.trim().toLowerCase()||r||"",x=a.find(y=>y.key===g||y.value===g||y.label.toLowerCase()===g);u(x?x.value:g===""?"no":g)})})}i(XL,"confirmEnhanced");async function dc(e,t,n,r){let{isOutsideProject:o=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits"}=r??{},c=zL(),l,u,m={...n,...o?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},p=Td(t,m),g=p.details.map(y=>` ${Ln.dim(y)}`);o||s?(l=`${Ln.yellow(c.warning)} Safety Warning`,g.length>0&&(l+=`
|
|
368
|
-
${g.join(`
|
|
369
|
-
`)}`),u=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]):(l=p.title,g.length>0&&(l+=`
|
|
370
|
-
${g.join(`
|
|
371
|
-
`)}`),u=a==="accept-edits"?GL:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let x=await XL(e,{message:l,default:"n",options:u});return x==="always"?{confirmed:!0,always:!0}:{confirmed:x==="yes"}}i(dc,"confirmToolExecution");import qt from"chalk";var Dd=/\x1b\[[0-9;]*m/g,nr={SAVE_CURSOR:"\x1B[s",RESTORE_CURSOR:"\x1B[u",MOVE_TO_BOTTOM:"\x1B[999;1H",CLEAR_LINE:"\x1B[2K",RESET:"\x1B[0m",REVERSE:"\x1B[7m"};function YL(e,t){if(t<=0)return"";let n="",r=0,o=0;for(;o<e.length&&r<t;){Dd.lastIndex=o;let s=Dd.exec(e);if(s&&s.index===o){n+=s[0],o+=s[0].length;continue}n+=e[o],r+=1,o+=1}return n}i(YL,"truncateAnsi");function S0(e){return Dd.lastIndex=0,e.replace(Dd,"")}i(S0,"stripAnsi");function qL(e,t=ks()){let n=[],r=e.sessionId.slice(0,6);n.push(qt.dim(`#${r}`));let o=e.permissionMode==="plan"?qt.blue:e.permissionMode==="accept-edits"?qt.cyan:e.permissionMode==="auto-in-project"?qt.magenta:qt.green,s=Yi(e.permissionMode),c=(e.permissionMode==="auto"||e.permissionMode==="auto-in-project")&&e.autoModeEngine?e.autoModeEngine==="llm"?qt.green("[LLM]"):qt.yellow("[RULES]"):"";if(n.push(o(s)+c),e.reasoningMode&&n.push(qt.yellow(`reason:${e.reasoningMode}`)),n.push(qt.cyan(e.provider)),e.tokenUsage){let m=e.tokenUsage.total,p=m>=1e3?`${(m/1e3).toFixed(1)}k`:String(m);n.push(qt.dim(`${p}t`))}if(e.currentTool&&n.push(qt.magenta(`tool:${e.currentTool}`)),e.projectInfo){let{completedFeatures:m,totalFeatures:p}=e.projectInfo,g=p>0?Math.round(m/p*100):0;n.push(qt.dim(`${m}/${p} [${g}%]`))}e.messageCount!==void 0&&n.push(qt.dim(`${e.messageCount} msgs`));let l=n.join(qt.dim(" | ")),u=t-1;return S0(l).length>u&&(l=`${YL(l,Math.max(0,u-3))}...`),l}i(qL,"buildStatusBarContent");var Nd=class{static{i(this,"StatusBar")}state;visible=!1;constructor(t){this.state=t}update(t){this.state={...this.state,...t},this.visible&&this.render()}show(){this.visible||(this.visible=!0,this.render())}hide(){this.visible&&(this.visible=!1,this.clear())}toggle(){if(this.visible){this.hide();return}this.show()}getLinesUsed(){return 1}render(){let t=ks(),n=qL(this.state,t),r=n+" ".repeat(Math.max(0,t-S0(n).length));process.stdout.write(nr.SAVE_CURSOR+nr.MOVE_TO_BOTTOM+nr.CLEAR_LINE+nr.REVERSE+r+nr.RESET+nr.RESTORE_CURSOR)}clear(){process.stdout.write(nr.SAVE_CURSOR+nr.MOVE_TO_BOTTOM+nr.CLEAR_LINE+nr.RESTORE_CURSOR)}};function C0(e,t,n,r,o="off"){return{sessionId:e,permissionMode:t,reasoningMode:o,provider:n,model:r}}i(C0,"createStatusBarState");function b0(){if(!process.stdout.isTTY||ki())return!1;let e=process.env.TERM??"",t=process.env.TERM_PROGRAM??"",n=["xterm","xterm-256color","screen","screen-256color","tmux","tmux-256color","vt100","vt220"],r=["iTerm.app","Terminal.app","Apple_Terminal","vscode","Hyper","Alacritty","kitty","Windows Terminal"];return n.some(o=>e.startsWith(o))||r.includes(t)||process.env.WT_SESSION!==void 0}i(b0,"supportsStatusBar");import a6 from"chalk";function v0(){return{prompt:"\u276F",success:"\u2713",error:"\u2717",warning:"\u26A0",info:"\u2139",arrow:"\u2192",bullet:"\u2022",check:"\u2713",cross:"\u2717",spinner:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]}}i(v0,"getUnicodeSymbols");function Wg(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}i(Wg,"getAsciiSymbols");var I0={name:"dark",description:"Dark theme with vibrant colors",colors:{primary:"#00D7FF",secondary:"#9D9D9D",accent:"#FF6B6B",text:"#FFFFFF",dim:"#6B6B6B",success:"#4CAF50",warning:"#FF9800",error:"#F44336",info:"#2196F3"},symbols:Sr()?v0():Wg(),spinner:{frames:Sr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},QL={name:"light",description:"Light theme for bright terminals",colors:{primary:"#0066CC",secondary:"#666666",accent:"#CC0000",text:"#000000",dim:"#999999",success:"#228B22",warning:"#CC7A00",error:"#CC0000",info:"#0066CC"},symbols:Sr()?v0():Wg(),spinner:{frames:Sr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},JL={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:Wg(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},ZL={dark:I0,light:QL,minimal:JL},k0=I0;function mc(){return k0}i(mc,"getCurrentTheme");function fc(e){let t=ZL[e];return t?(k0=t,!0):!1}i(fc,"setTheme");function e1(){if(!process.stdout.isTTY){fc("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){fc("dark");return}fc("dark")}i(e1,"autoSelectTheme");e1();var Bd=class{static{i(this,"ReadlineUIContext")}rl;constructor(t){this.rl=t}async select(t,n){if(n.length!==0)return console.log(`
|
|
372
|
-
${t}`),console.log("\u2500".repeat(t.length)),n.forEach((r,o)=>{console.log(` ${o+1}. ${r}`)}),console.log(" 0. Cancel"),console.log(""),new Promise(r=>{this.rl.question("Enter choice (0 to cancel): ",o=>{let s=o.trim();if(s==="0"||s===""){r(void 0);return}let a=parseInt(s,10)-1;if(isNaN(a)||a<0||a>=n.length){console.log("Invalid choice. Please try again."),r(void 0);return}r(n[a])})})}async confirm(t){return new Promise(n=>{this.rl.question(`${t} (y/N): `,r=>{let o=r.trim().toLowerCase();n(o==="y"||o==="yes")})})}async input(t,n){let r=n?`${t} [${n}]: `:`${t}: `;return new Promise(o=>{this.rl.question(r,s=>{let a=s.trim();if(a===""&&n!==void 0){o(n);return}o(a||void 0)})})}};var jg=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t),o=mn(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,lineage:o}})}async load(t){return structuredClone(this.sessions.get(t)?.data??null)}async getLineage(t){return structuredClone(this.sessions.get(t)?.data.lineage??null)}async setActiveEntry(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=yi(o.data.lineage,n,r);if(!s)return null;let a={...structuredClone(o.data),messages:vt(s),lineage:s};return this.sessions.set(t,{...o,data:a}),structuredClone(a)}async setLabel(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=xi(o.data.lineage,n,r);if(!s)return null;let a={...structuredClone(o.data),lineage:s};return this.sessions.set(t,{...o,data:a}),structuredClone(a)}async fork(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=Si(o.data.lineage,n);if(!s)return null;let a=r?.sessionId??await hi(),c={messages:vt(s),title:r?.title??o.data.title,gitRoot:o.data.gitRoot,runtimeInfo:o.data.runtimeInfo?structuredClone(o.data.runtimeInfo):void 0,scope:o.data.scope??"user",extensionState:o.data.extensionState?structuredClone(o.data.extensionState):void 0,extensionRecords:o.data.extensionRecords?structuredClone(o.data.extensionRecords):void 0,lineage:s};return this.sessions.set(a,{createdAt:new Date().toISOString(),data:c}),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let r=this.sessions.get(t);if(!r?.data.lineage)return null;let o=n??wi(r.data.lineage);if(!o)return null;let s=Ti(r.data.lineage,o);if(!s)return null;let a={...r.data,messages:vt(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?lo(r.data.lineage):r.data.messages.length,...r.data.runtimeInfo?{runtimeInfo:structuredClone(r.data.runtimeInfo)}:{}}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function Ug(e,t,n){e.runtimeInfo=n,e.gitRoot=n?.workspaceRoot??e.gitRoot,t.context={...t.context,gitRoot:e.gitRoot,executionCwd:n?.executionCwd??process.cwd()}}i(Ug,"applyRuntimeContext");function t1(e){e?.workspaceRoot&&(console.log(j.dim(` Workspace: ${wn(e)}`)),console.log(j.dim(` Use /status workspace for runtime details.
|
|
373
|
-
`)))}i(t1,"printWorkspaceEntryNotice");function n1(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}i(n1,"resolveInitialReasoningMode");var Gg={current:null};async function r1(e){let t=await ts({cwd:process.cwd()}),n=t.workspaceRoot??await mo()??void 0,r=e.storage??new jg,o=Ff(),s=e.provider??o.provider??hl,a=e.model??o.model,c=n1(e,o),l=e.agentMode??o.agentMode??"ama",u=c!=="off",m=Xn(o.permissionMode,"accept-edits")??"accept-edits",p=lu();m==="auto-in-project"&&p();let g=yl(),x=o.theme;x&&fc(x);let y=mc(),w={provider:s,model:a,thinking:u,reasoningMode:c,agentMode:l,permissionMode:m,repoIntelligenceMode:g.mode,repointelEndpoint:g.endpoint,repointelBin:g.bin,repoIntelligenceTrace:g.trace},S=m,I=Zi(),$=0,L="",G=!1,N=500,C=await ec({sessionId:e.session?.id,gitRoot:n,runtimeInfo:t}),J=i(A=>Bo(w,A,(_,P,Y)=>{console.log((_==="block"?j.red:j.yellow)(`
|
|
374
|
-
${P}`));for(let xe of Y)console.log(j.dim(xe));console.log()}),"guardSessionTransition"),ce=await bl(n??void 0),{resolveProvider:we}=await import("./dist-OTUF22DA.js"),F=we(w.provider),X=ce.contextWindow??F.getEffectiveContextWindow?.(w.model)??F.getContextWindow?.()??2e5,{loadAgentsFiles:v}=await import("./dist-OTUF22DA.js"),M=i(async()=>v({cwd:process.cwd(),projectRoot:C.gitRoot??void 0}),"reloadAgentsFiles"),Z=await M();a1(w,w.permissionMode,{contextWindow:X,triggerPercent:ce.triggerPercent,enabled:ce.enabled},Z),t1(t);let Ce=MT(()=>C.gitRoot??process.cwd()),de=E0.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:i((A,_)=>{Ce(A).then(P=>{_(null,P)}).catch(()=>{_(null,[[],A])})},"completer")}),Be=wu(),ie=await Sd({askUser:i(async(A,_,P)=>(await dc(de,A.name,{...A.input,...P&&P.length>0?{_classifierSignals:P}:{}},{permissionMode:S,reason:`[auto-mode] ${_}`})).confirmed?"allow":"block","askUser"),projectRoot:n??process.cwd(),getAgentsFiles:i(()=>Z,"getAgentsFiles"),getCurrentProviderName:i(()=>w.provider,"getCurrentProviderName"),getCurrentModel:i(()=>w.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>S,"getCurrentPermissionMode"),autoModeSettings:Be,log:i((A,_)=>{A==="warn"?console.warn(j.yellow(_)):console.log(j.dim(_))},"log"),onEngineChange:i(A=>{zt(S)&&V?.update({autoModeEngine:A})},"onEngineChange"),extraCollectors:[Ma]}),se=Tl({getProvider:i(()=>we(w.provider),"getProvider"),getModel:i(()=>w.model??"","getModel")}),ne=w.model??jn(w.provider)??w.provider,V=null;b0()&&(V=new Nd(C0(C.sessionId,w.permissionMode,w.provider,ne,w.reasoningMode)),zt(S)&&V.update({autoModeEngine:ie.getGuardrail().getEngine()}));let ye=`
|
|
375
|
-
Keyboard Shortcuts:
|
|
376
|
-
Tab Auto-complete (@paths, /commands)
|
|
377
|
-
Esc+Esc Edit last message
|
|
378
|
-
Ctrl+T Cycle reasoning mode
|
|
379
|
-
Ctrl+E Open external editor
|
|
380
|
-
Ctrl+R Search command history (built-in)
|
|
381
|
-
Ctrl+C Cancel current input
|
|
382
|
-
Ctrl+D Exit REPL`,it=i(()=>{console.log(j.dim(ye))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(A,_)=>{if(_&&_.name==="escape"){let P=Date.now();P-$<N&&L&&(G=!0,console.log(j.dim(`
|
|
383
|
-
[Opening editor with last message...]`)),de.pause()),$=P}});let Te=ur(n).getSystemPromptSnippet(),Le=!0,Se={...e,reasoningMode:c,thinking:u,context:{...e.context,gitRoot:n,executionCwd:t.executionCwd,repoIntelligenceMode:g.mode,repoIntelligenceTrace:g.trace,skillsPrompt:Te},session:{...e.session,id:C.sessionId}};Gg.current=null;let pt={exit:i(()=>{Le=!1,de.close()},"exit"),saveSession:i(async()=>{if(C.messages.length>0){let A=Hd(C.messages);C.title=A,await r.save(C.sessionId,{messages:C.messages,title:A,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger})}},"saveSession"),startNewSession:i(()=>{C.sessionId=tc(),C.title="",C.contextTokenSnapshot=void 0,C.artifactLedger=void 0,C.createdAt=new Date().toISOString(),C.lastAccessed=C.createdAt,Ug(C,Se,t),Se.session={...Se.session,id:C.sessionId},V?.update({sessionId:C.sessionId,messageCount:0})},"startNewSession"),loadSession:i(async A=>{let _=await r.load(A);if(_){if(!J("Resuming a saved session"))return"blocked";let P=await ts({cwd:process.cwd()}),Y=Ha(_),xe=Y??P;return Y?.workspaceRoot&&!CT(Y)?(console.log(j.yellow(`
|
|
384
|
-
[Saved workspace unavailable]`)),console.log(j.dim(` Session workspace: ${wn(Y)}`)),console.log(j.dim(` Falling back to current workspace: ${wn(P)}`)),xe=P):Y?.workspaceRoot&&P.workspaceRoot&&Y.workspaceRoot!==P.workspaceRoot&&(console.log(j.cyan(`
|
|
385
|
-
[Loading sibling workspace session]`)),console.log(j.dim(` Current workspace: ${wn(P)}`)),console.log(j.dim(` Session workspace: ${wn(Y)}`))),C.messages=_.messages,C.title=_.title,C.sessionId=A,C.contextTokenSnapshot=void 0,C.artifactLedger=_.artifactLedger,C.lastAccessed=new Date().toISOString(),Ug(C,Se,xe),Se.session={...Se.session,id:A},V?.update({sessionId:A,messageCount:_.messages.length}),console.log(j.green(`
|
|
386
|
-
[Loaded session: ${A}]`)),console.log(j.dim(` Messages: ${_.messages.length}`)),C.runtimeInfo?.workspaceRoot&&console.log(j.dim(` Workspace: ${wn(C.runtimeInfo)}`)),"loaded"}return"missing"},"loadSession"),listSessions:i(async()=>{let A=await r.list(C.gitRoot??void 0);if(A.length===0){console.log(j.dim(`
|
|
387
|
-
[No saved sessions]`));return}console.log(j.bold(`
|
|
388
|
-
Recent Sessions:
|
|
389
|
-
`)),C.runtimeInfo?.workspaceRoot&&(console.log(j.dim(` Current workspace: ${wn(C.runtimeInfo)}`)),console.log());for(let _ of A.slice(0,10))if(console.log(` ${j.cyan(_.id)} ${j.dim(`(${_.msgCount} messages)`)} ${_.title.slice(0,40)}`),_.runtimeInfo?.workspaceRoot){let Y=C.runtimeInfo?.workspaceRoot===_.runtimeInfo.workspaceRoot?" (current workspace)":"";console.log(j.dim(` workspace: ${wn(_.runtimeInfo)}${Y}`))}console.log()},"listSessions"),clearHistory:i(()=>{C.messages=[],C.contextTokenSnapshot=void 0},"clearHistory"),printHistory:i(()=>{if(C.messages.length===0){console.log(j.dim(`
|
|
390
|
-
[No conversation history]`));return}console.log(j.bold(`
|
|
391
|
-
Conversation History:
|
|
392
|
-
`));let A=C.messages.slice(-20);for(let _=0;_<A.length;_++){let P=A[_],Y=j.cyan(P.role.padEnd(10)),xe=typeof P.content=="string"?P.content:"[Complex content]",ze=xe.slice(0,60).replace(/\n/g," "),ve=xe.length>60?"...":"";console.log(` ${(_+1).toString().padStart(2)}. ${Y} ${ze}${ve}`)}console.log()},"printHistory"),switchProvider:i((A,_)=>{w.provider=A,w.model=_,Se.provider=A,Se.model=_;let P=_??jn(A);if(!P)try{P=py(A)?.getModel()??A}catch{P=A}V?.update({provider:A,model:P})},"switchProvider"),setThinking:i(A=>{w.thinking=A,Se.thinking=A,w.reasoningMode=A?"auto":"off",Se.reasoningMode=w.reasoningMode,V?.update({reasoningMode:w.reasoningMode})},"setThinking"),setReasoningMode:i(A=>{let _=A!=="off";w.reasoningMode=A,w.thinking=_,Se.reasoningMode=A,Se.thinking=_,V?.update({reasoningMode:A})},"setReasoningMode"),setPermissionMode:i(A=>{w.permissionMode=A,S=A;let _=zt(A)?ie.getGuardrail().getEngine():void 0;V?.update({permissionMode:A,autoModeEngine:_}),A==="auto-in-project"&&p()},"setPermissionMode"),setRepoIntelligenceRuntime:i(A=>{A.mode!==void 0&&(w.repoIntelligenceMode=A.mode,process.env.KODAX_REPO_INTELLIGENCE_MODE=A.mode,Se.context={...Se.context,repoIntelligenceMode:A.mode}),A.trace!==void 0&&(w.repoIntelligenceTrace=A.trace,A.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,Se.context={...Se.context,repoIntelligenceTrace:A.trace}),A.endpoint!==void 0&&(w.repointelEndpoint=A.endpoint??void 0,A.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=A.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),A.bin!==void 0&&(w.repointelBin=A.bin??void 0,A.bin?process.env.KODAX_REPOINTEL_BIN=A.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:i(async A=>{await r.delete?.(A)},"deleteSession"),deleteAllSessions:i(async()=>{await r.deleteAll?.(C.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let A=await r.getLineage?.(C.sessionId);if(!A){console.log(j.dim(`
|
|
393
|
-
[No session tree available for this session]`));return}let _=wd(wl(A));console.log(j.bold(`
|
|
394
|
-
Session Tree:
|
|
395
|
-
`));for(let P of _)console.log(` ${P}`);console.log()},"printSessionTree"),switchSessionBranch:i(async A=>{if(!J("Switching session branches"))return"blocked";let _=await r.setActiveEntry?.(C.sessionId,A,{summarizeCurrentBranch:!0});return _?(C.messages=_.messages,C.title=_.title,C.contextTokenSnapshot=void 0,V?.update({messageCount:C.messages.length}),console.log(j.green(`
|
|
396
|
-
[Switched to tree entry: ${A}]`)),console.log(j.dim(` Messages: ${_.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(A,_)=>{if(!await r.setLabel?.(C.sessionId,A,_))return!1;let Y=_&&_.trim()?`checkpoint label set: ${_.trim()}`:"checkpoint label cleared";return console.log(j.green(`
|
|
397
|
-
[${Y}]`)),!0},"labelSessionBranch"),forkSession:i(async A=>{if(!J("Forking a session branch"))return"blocked";let _=await r.fork?.(C.sessionId,A);return _?(C.sessionId=_.sessionId,C.messages=_.data.messages,C.title=_.data.title,C.contextTokenSnapshot=void 0,C.createdAt=new Date().toISOString(),C.lastAccessed=C.createdAt,Ug(C,Se,Ha(_.data)??C.runtimeInfo),Se.session={...Se.session,id:_.sessionId},V?.update({sessionId:_.sessionId,messageCount:C.messages.length}),console.log(j.green(`
|
|
398
|
-
[Forked session: ${_.sessionId}]`)),console.log(j.dim(` Messages: ${_.data.messages.length}`)),"forked"):"failed"},"forkSession"),rewindSession:i(async A=>{if(!J("Rewinding session"))return"blocked";let _=await r.rewind?.(C.sessionId,A);return _?(C.messages=_.messages,C.title=_.title,C.contextTokenSnapshot=void 0,C.lastAccessed=new Date().toISOString(),V?.update({messageCount:C.messages.length}),console.log(j.green(`
|
|
399
|
-
[Rewound session${A?` to ${A}`:" to previous turn"}]`)),console.log(j.dim(` Messages: ${_.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>Gg.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(zt(S))return ie.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(A=>{zt(S)&&(ie.getGuardrail().setEngine(A),V?.update({permissionMode:S}))},"setAutoModeEngine"),createKodaXOptions:i(()=>{let A=i((P,Y)=>S!=="plan"?null:xr(P,Y,n??process.cwd()),"planModeBlockCheck"),_=zt(S)?[ie.getGuardrail()]:void 0;return{...Se,provider:w.provider,model:w.model,thinking:w.thinking,reasoningMode:w.reasoningMode,guardrails:_,context:{...Se.context,planModeBlockCheck:A},events:{...Se.events,exitPlanMode:i(async P=>S!=="plan"?"not-in-plan-mode":(await dc(de,"exit_plan_mode",{plan:P},{isProtectedPath:!1,permissionMode:S})).confirmed?(w.permissionMode="accept-edits",S="accept-edits",V?.update({permissionMode:"accept-edits"}),!0):!1,"exitPlanMode"),beforeToolExecute:i(async(P,Y)=>{let xe=S,ze=Co(xe);if(xe==="plan"){let ve=xr(P,Y,n??process.cwd());if(ve)return console.log(j.yellow(ve)),`${ve} Do not modify files while planning. Finish the plan first, then call exit_plan_mode with the finalized plan \u2014 the user will review and approve or reject.`}if(P==="bash"){let ve=Y.command??"";if(_n(ve))return!0}if(n&&yn.has(P)){let ve=Y.path;if(ve&&Yn(ve,n))return(await dc(de,P,Y,{isProtectedPath:!0,permissionMode:xe})).confirmed?!0:(console.log(j.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(ze.has(P)){if(xe==="accept-edits"&&P==="bash"&&await Hr(P,Y,I,se))return!0;let ve=await dc(de,P,Y,{isOutsideProject:Y._outsideProject===!0,reason:Y._reason,permissionMode:xe});if(!ve.confirmed)return console.log(j.dim("[Cancelled] Operation cancelled by user")),!1;ve.always&&xe==="accept-edits"&&(Tu(P,Y,!1),I=Zi())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:i(async()=>(Z=await M(),Z),"reloadAgentsFiles"),readline:de,ui:new Bd(de)};de.on("SIGINT",async()=>{console.log(j.dim(`
|
|
400
|
-
|
|
401
|
-
[Press /exit to quit]`)),de.prompt()});let et=i(()=>{V?.hide(),de.close()},"cleanup");process.on("exit",et),process.on("SIGTERM",et);let Je=i(async(A,_)=>{if(!A||typeof A!="object"||!A.invocation)return;let P=await bd({...Se,provider:w.provider,thinking:w.thinking,reasoningMode:w.reasoningMode},A.invocation,_,Y=>console.log(j.dim(`
|
|
402
|
-
${Y}`)));if(P.mode==="manual"){P.manualOutput&&console.log(j.yellow(`
|
|
403
|
-
${P.manualOutput}
|
|
404
|
-
`)),await P.finalize();return}if(!P.prompt||!P.options){await P.finalize();return}try{let Y=P.mode==="fork"?[]:C.messages,xe=await R0(P.options,C,P.prompt,Y);if(P.mode==="fork"){let ze=Oa(xe.messages);ze.trim()&&(console.log(`
|
|
405
|
-
${ze}
|
|
406
|
-
`),C.messages.push({role:"assistant",content:ze}))}else C.messages=xe.messages,C.contextTokenSnapshot=xe.contextTokenSnapshot;if(V?.update({messageCount:C.messages.length}),C.messages.length>0){let ze=Hd(C.messages);C.title=ze,await r.save(C.sessionId,{messages:C.messages,title:ze,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo})}await P.finalize()}catch(Y){throw await P.finalize(Y instanceof Error?Y:new Error(String(Y))),Y}},"handleCommandResult");for(;Le;){if(G&&L){G=!1,de.resume();let ve=await _0(L);if(ve&&ve.trim()&&ve!==L){console.log(j.dim(`
|
|
407
|
-
[Edited message ready to send]`));let Ae=ve.trim();Zn(C);let Dn=rs(Ae);if(Dn){let D=await os(Dn,C,pt,w);await Je(D,Ae);continue}let Ie=await Kg(Ae);if(Ae.startsWith("!")&&nc(Ie))continue;let q=rc(Ie,Se.context?.executionCwd??process.cwd());for(let D of q.warnings)console.log(j.yellow(`
|
|
408
|
-
${D}`));C.messages.push({role:"user",content:q.messageContent}),L=Ae,V?.update({messageCount:C.messages.length});try{let D=await ca({...Se,provider:w.provider,thinking:w.thinking,reasoningMode:w.reasoningMode,session:{...Se.session,initialMessages:C.lineage?vt(C.lineage,C.lineage.activeEntryId):C.messages},context:{...Se.context,taskSurface:"repl",planModeBlockCheck:i((We,je)=>S!=="plan"?null:xr(We,je,n??process.cwd()),"planModeBlockCheck"),...q.inputArtifacts.length>0?{inputArtifacts:q.inputArtifacts}:{}}},Ie);if(C.messages=D.messages,C.contextTokenSnapshot=D.contextTokenSnapshot,C.artifactLedger=aa(C.artifactLedger??[],D.artifactLedger??$f(D.messages)),C.messages.length>0){let We=Hd(C.messages);C.title=We,await r.save(C.sessionId,{messages:C.messages,title:We,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger})}}catch(D){let We=D instanceof Error?D:new Error(String(D));C.messages.pop(),console.log(j.red(`
|
|
409
|
-
[Error] ${We.message}`))}continue}else ve===L&&console.log(j.dim(`
|
|
410
|
-
[No changes made, continuing...]`))}let A=o1(w.permissionMode,w),_=await i1(de,A);if(!Le)break;let P=_.trim();if(!P)continue;Zn(C);let Y=rs(P);if(Y){let ve=await os(Y,C,pt,w);await Je(ve,P);continue}let xe=await Kg(P);if(P.startsWith("!")&&nc(xe))continue;let ze=rc(xe,Se.context?.executionCwd??process.cwd());for(let ve of ze.warnings)console.log(j.yellow(`
|
|
411
|
-
${ve}`));C.messages.push({role:"user",content:ze.messageContent}),L=P,V?.update({messageCount:C.messages.length});try{let ve=await R0(Se,C,xe,C.messages,ze.inputArtifacts);if(C.messages=ve.messages,C.contextTokenSnapshot=ve.contextTokenSnapshot,C.artifactLedger=aa(C.artifactLedger??[],ve.artifactLedger??$f(ve.messages)),V?.update({messageCount:C.messages.length}),C.messages.length>0){let Ae=Hd(C.messages);C.title=Ae,await r.save(C.sessionId,{messages:C.messages,title:Ae,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger})}}catch(ve){let Ae=ve instanceof Error?ve:new Error(String(ve));C.messages.pop(),Ae.message.includes("rate limit")||Ae.message.includes("Rate limit")?(console.log(j.yellow(`
|
|
412
|
-
[Rate Limit] ${Ae.message}`)),console.log(j.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
|
|
413
|
-
`))):Ae.message.includes("API key")||Ae.message.includes("not configured")?(console.log(j.red(`
|
|
414
|
-
[Configuration Error] ${Ae.message}`)),console.log(j.dim(`Suggestion: Set the required API key environment variable
|
|
415
|
-
`))):Ae.message.includes("network")||Ae.message.includes("ECONNREFUSED")||Ae.message.includes("ETIMEDOUT")?(console.log(j.red(`
|
|
416
|
-
[Network Error] ${Ae.message}`)),console.log(j.dim(`Suggestion: Check your internet connection and try again
|
|
417
|
-
`))):Ae.message.includes("token")||Ae.message.includes("context too long")?(console.log(j.yellow(`
|
|
418
|
-
[Context Error] ${Ae.message}`)),console.log(j.dim(`Suggestion: Use /clear to start a fresh conversation
|
|
419
|
-
`))):(console.log(j.red(`
|
|
420
|
-
[Error] ${Ae.message}`)),console.log(j.dim(`Your message was not sent. Please try again.
|
|
421
|
-
`)))}}}i(r1,"runInteractiveMode");function o1(e,t){let n=mc(),r=e==="plan"?j.hex(n.colors.warning):j.hex(n.colors.success),o=t.model??jn(t.provider)??t.provider,s=ks();if(s<60){let c=e==="plan"?"?":n.symbols.prompt;return r(`${c} `)}else if(s<100){let c=t.reasoningMode!=="off"?t.reasoningMode[0]?.toUpperCase()??"R":"",l=c?j.hex(n.colors.dim)(`[${c}]`):"";return r(`kodax:${e}${l}> `)}let a=t.reasoningMode!=="off"?j.hex(n.colors.info)(`[reason:${t.reasoningMode}]`):"";return r(`kodax:${e} (${t.provider}:${o})${a}> `)}i(o1,"getPrompt");async function i1(e,t){let n=mc(),r=[],o=await new Promise(a=>{e.question(t,a)});if(o===""||o.toLowerCase()==="/e")return await _0(r.join(`
|
|
422
|
-
`));for(r.push(o);s1(r.join(`
|
|
423
|
-
`));){let a=j.hex(n.colors.dim)("... "),c=await new Promise(l=>{e.question(a,l)});r.push(c)}return r.join(`
|
|
424
|
-
`).replace(/\\\n/g,`
|
|
425
|
-
`)}i(i1,"askInput");async function _0(e){let t=gc.join(A0.tmpdir(),"kodax"),n=gc.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await pc.promises.mkdir(t,{recursive:!0}),await pc.promises.writeFile(n,e,"utf-8");let r=process.env.EDITOR??process.env.VISUAL??(process.platform==="win32"?"notepad.exe":"nano");if(r.includes("/")||r.includes("\\")||r.includes("&&")||r.includes("|")){let a=gc.basename(r);console.log(j.yellow(`
|
|
426
|
-
[Security] Editor path sanitized: ${a}`)),r=a}console.log(j.dim(`
|
|
427
|
-
[Opening editor: ${r}]`));let o=process.platform==="win32"&&(r.toLowerCase()==="notepad"||r.toLowerCase()==="notepad.exe");return console.log(o?j.dim(`Note: Please close Notepad manually after editing to continue.
|
|
428
|
-
`):j.dim(`Save and close the editor to continue...
|
|
429
|
-
`)),M0.spawnSync(r,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await pc.promises.readFile(n,"utf-8")).trim()}catch(r){let o=r instanceof Error?r:new Error(String(r));return console.log(j.red(`
|
|
430
|
-
[Editor Error] ${o.message}`)),e}finally{try{await pc.promises.unlink(n)}catch{}}}i(_0,"openExternalEditor");function s1(e){if(e.endsWith("\\")&&!e.endsWith("\\\\"))return!0;let t={"(":0,"[":0,"{":0},n={")":"(","]":"[","}":"{"},r=null;for(let o=0;o<e.length;o++){let s=e[o];if((s==='"'||s==="'"||s==="`")&&e[o-1]!=="\\"){r===s?r=null:r===null&&(r=s);continue}if(!r){if(s in t)t[s]++;else if(s in n){let a=n[s];a&&t[a]--}}}return!!(Object.values(t).some(o=>o>0)||r)}i(s1,"needsContinuation");async function Kg(e){let t=e.match(/@[\w./-]+/g);if(t)for(let n of t){let r=n.slice(1)}if(e.startsWith("!")){let n=e.slice(1).trim();return gd(n,{cwd:process.cwd()})}return e}i(Kg,"processSpecialSyntax");async function R0(e,t,n,r=t.messages,o){let s={...e.events??{},getCostReport:Gg};return ca({...e,events:s,session:{...e.session,initialMessages:r},context:{...e.context,contextTokenSnapshot:t.contextTokenSnapshot,taskSurface:"repl",...o&&o.length>0?{inputArtifacts:[...o]}:{}}},n)}i(R0,"runAgentRound");function Hd(e){return Ji(e)}i(Hd,"extractTitle");function a1(e,t,n,r){let o=mc(),s=e.model??jn(e.provider)??e.provider;if(console.log(j.hex(o.colors.primary)(`
|
|
431
|
-
`+`
|
|
432
|
-
\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557
|
|
433
|
-
\u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D
|
|
434
|
-
\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2554\u255D
|
|
435
|
-
\u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2554\u2588\u2588\u2557
|
|
436
|
-
\u2588\u2588\u2551 \u2588\u2588\u2557 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2557
|
|
437
|
-
\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D`)),console.log(j.hex(o.colors.text)(`
|
|
438
|
-
v${Ci} | AI Coding Agent | ${e.provider}:${s}`)),console.log(j.hex(o.colors.dim)(`
|
|
439
|
-
\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`)),console.log(j.hex(o.colors.dim)(" Mode: ")+j.hex(o.colors.primary)(t)+j.hex(o.colors.dim)(" | Reasoning: ")+(e.reasoningMode==="off"?j.hex(o.colors.dim)("off"):j.hex(o.colors.success)(e.reasoningMode))),n){let c=Math.round(n.contextWindow/1e3),l=Math.round(n.contextWindow*n.triggerPercent/100/1e3),u=n.enabled?j.hex(o.colors.success)("on"):j.hex(o.colors.dim)("off");console.log(j.hex(o.colors.dim)(` Context: ${c}k | Compaction: `)+u+j.hex(o.colors.dim)(` @ ${n.triggerPercent}% (${l}k)`))}if(console.log(j.hex(o.colors.dim)(` \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
|
|
440
|
-
`)),r){let c=r.length;console.log(j.hex(o.colors.dim)(" Project Rules: ")+j.hex(o.colors.success)(`${c} rule file(s) loaded`)),console.log(j.hex(o.colors.dim)(` Use /reload to refresh rules
|
|
441
|
-
`))}console.log(j.hex(o.colors.dim)(" Quick tips:")),console.log(j.hex(o.colors.primary)(" /help ")+j.hex(o.colors.dim)("Show all commands")),console.log(j.hex(o.colors.primary)(" /mode ")+j.hex(o.colors.dim)("Switch permission mode")),console.log(j.hex(o.colors.primary)(" /clear ")+j.hex(o.colors.dim)("Clear conversation")),console.log(j.hex(o.colors.primary)(" @path ")+j.hex(o.colors.dim)("Attach image to context")),console.log(j.hex(o.colors.primary)(" !cmd ")+j.hex(o.colors.dim)("Run read-only shell command")),console.log(j.hex(o.colors.dim)(`
|
|
442
|
-
Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
|
|
443
|
-
`))}i(a1,"printStartupBanner");import On from"fs/promises";import Fd from"fs";import Wd from"path";import O0 from"chalk";var c1=new Set(["user","assistant","system"]);function wt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(wt,"isRecord");function jo(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(jo);if(!wt(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(jo)}i(jo,"isKodaXJsonValue");function P0(e){return wt(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||jo(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}i(P0,"isKodaXExtensionSessionRecord");function $0(e){return wt(e)?Object.values(e).every(t=>wt(t)?Object.values(t).every(jo):!1):!1}i($0,"isKodaXExtensionSessionState");function l1(e){if(!wt(e)||typeof e.type!="string")return!1;switch(e.type){case"text":return typeof e.text=="string";case"tool_use":return typeof e.id=="string"&&typeof e.name=="string"&&wt(e.input);case"tool_result":return typeof e.tool_use_id=="string"&&typeof e.content=="string"&&(e.is_error===void 0||typeof e.is_error=="boolean");case"image":return typeof e.path=="string"&&(e.mediaType===void 0||typeof e.mediaType=="string");case"thinking":return typeof e.thinking=="string"&&(e.signature===void 0||typeof e.signature=="string");case"redacted_thinking":return typeof e.data=="string";default:return!1}}i(l1,"isKodaXContentBlock");function Vg(e){return!wt(e)||typeof e.role!="string"||!c1.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(l1)}i(Vg,"isKodaXMessage");function L0(e){return wt(e)?(e.lastError===void 0||typeof e.lastError=="string")&&(e.lastErrorTime===void 0||typeof e.lastErrorTime=="number")&&(e.consecutiveErrors===void 0||typeof e.consecutiveErrors=="number"):!1}i(L0,"isSessionErrorMetadata");function u1(e){return wt(e)&&typeof e.type=="string"&&(e.type==="user"||e.type==="assistant"||e.type==="system"||e.type==="thinking"||e.type==="error"||e.type==="info"||e.type==="hint")&&typeof e.text=="string"}i(u1,"isKodaXSessionUiHistoryItem");function zg(e){return Array.isArray(e)&&e.every(u1)}i(zg,"isKodaXSessionUiHistory");function d1(e){return!wt(e)||e._type!=="meta_update"?!1:(e.title===void 0||typeof e.title=="string")&&(e.activeEntryId===void 0||typeof e.activeEntryId=="string"||e.activeEntryId===null)&&(e.activeMessageCount===void 0||typeof e.activeMessageCount=="number")&&(e.uiHistory===void 0||zg(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")}i(d1,"isPersistedMetaUpdateLine");function D0(e,t){t!==0&&process.stderr.write(`[KodaX] Skipped ${t} malformed session record(s) from ${Wd.basename(e)}.
|
|
444
|
-
`)}i(D0,"warnMalformedSessionData");function Yr(e){process.stderr.write(`${e}
|
|
445
|
-
`)}i(Yr,"writeStorageNotice");function N0(e){return{_type:"extension_record",...e}}i(N0,"toExtensionRecordLine");function B0(e){return{_type:"lineage_entry",entry:e}}i(B0,"toLineageEntryLine");function H0(e){return{_type:"artifact_ledger_entry",entry:e}}i(H0,"toArtifactLedgerLine");function f1(e){return wt(e)&&e._type==="extension_record"&&P0(e)}i(f1,"isPersistedExtensionRecordLine");function m1(e){return wt(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"}i(m1,"hasEntryBase");function p1(e){if(!m1(e))return!1;let t=e;switch(t.type){case"message":return Vg(t.message);case"compaction":return typeof t.summary=="string"&&(t.firstKeptEntryId===void 0||typeof t.firstKeptEntryId=="string")&&(t.tokensBefore===void 0||typeof t.tokensBefore=="number");case"branch_summary":return typeof t.summary=="string"&&(t.fromId===void 0||typeof t.fromId=="string")&&(t.details===void 0||jo(t.details));case"label":return typeof t.targetId=="string"&&(t.label===void 0||typeof t.label=="string");case"archive_marker":return typeof t.archiveBatchId=="string"&&typeof t.archivedEntryCount=="number"&&typeof t.summary=="string";default:return!1}}i(p1,"isKodaXSessionEntry");function g1(e){return wt(e)&&e._type==="lineage_entry"&&p1(e.entry)}i(g1,"isPersistedLineageEntryLine");function h1(e){return wt(e)&&typeof e.id=="string"&&typeof e.kind=="string"&&typeof e.target=="string"&&typeof e.timestamp=="string"&&(e.sourceTool===void 0||typeof e.sourceTool=="string")&&(e.action===void 0||typeof e.action=="string")&&(e.displayTarget===void 0||typeof e.displayTarget=="string")&&(e.summary===void 0||typeof e.summary=="string")&&(e.sessionEntryId===void 0||typeof e.sessionEntryId=="string")&&(e.metadata===void 0||jo(e.metadata))}i(h1,"isKodaXSessionArtifactLedgerEntry");function y1(e){return wt(e)&&e._type==="artifact_ledger_entry"&&h1(e.entry)}i(y1,"isPersistedArtifactLedgerLine");function W0(e){return wt(e)&&(e.canonicalRepoRoot===void 0||typeof e.canonicalRepoRoot=="string")&&(e.workspaceRoot===void 0||typeof e.workspaceRoot=="string")&&(e.executionCwd===void 0||typeof e.executionCwd=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.workspaceKind===void 0||e.workspaceKind==="detected"||e.workspaceKind==="managed")}i(W0,"isKodaXSessionRuntimeInfo");function F0(e,t){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase()===t.toLowerCase():e===t}i(F0,"pathsEqual");function x1(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(n&&n.type!=="label")return n.id}return null}i(x1,"getLastNavigableEntryId");function w1(e){if(e.lineageEntries.length>0)return{version:2,activeEntryId:e.meta?.activeEntryId??x1(e.lineageEntries),entries:e.lineageEntries};if(e.legacyMessages.length!==0)return mn(e.legacyMessages)}i(w1,"buildLineage");function T1(e){let t=w1(e);return{createdAt:e.meta?.createdAt,data:{messages:t?vt(t):[...e.legacyMessages],title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",runtimeInfo:W0(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:zg(e.meta?.uiHistory)?e.meta.uiHistory.map(n=>({...n})):void 0,errorMetadata:L0(e.meta?.errorMetadata)?{...e.meta.errorMetadata}:void 0,extensionState:$0(e.meta?.extensionState)?e.meta?.extensionState:void 0,extensionRecords:e.extensionRecords.map(n=>({...n})),lineage:t,artifactLedger:e.artifactLedger.map(n=>({...n,metadata:n.metadata?structuredClone(n.metadata):void 0}))}}}i(T1,"buildSessionData");function S1(e,t,n,r){return{_type:"meta",title:t.title,id:e,gitRoot:t.gitRoot,runtimeInfo:t.runtimeInfo?{...t.runtimeInfo}:void 0,createdAt:r??new Date().toISOString(),scope:t.scope??"user",uiHistory:t.uiHistory,errorMetadata:t.errorMetadata,extensionState:t.extensionState,extensionRecordCount:t.extensionRecords?.length??0,artifactLedgerCount:t.artifactLedger?.length??0,lineageVersion:n?.version,activeEntryId:n?.activeEntryId,lineageEntryCount:n?.entries.length??0,activeMessageCount:n?lo(n):t.messages.length}}i(S1,"createSessionMeta");async function C1(e){if(!Fd.existsSync(e))return null;let n=(await On.readFile(e,"utf-8")).trim();if(!n)return null;let r={legacyMessages:[],lineageEntries:[],artifactLedger:[],extensionRecords:[],malformedCount:0},o=n.split(`
|
|
446
|
-
`);for(let s=0;s<o.length;s+=1)try{let a=JSON.parse(o[s]);if(s===0&&wt(a)&&a._type==="meta"){r.meta=a;continue}if(d1(a)){r.meta&&(a.title!==void 0&&(r.meta.title=a.title),a.activeEntryId!==void 0&&(r.meta.activeEntryId=a.activeEntryId),a.activeMessageCount!==void 0&&(r.meta.activeMessageCount=a.activeMessageCount),a.uiHistory!==void 0&&(r.meta.uiHistory=a.uiHistory),a.scope!==void 0&&(r.meta.scope=a.scope));continue}if(g1(a)){r.lineageEntries.push(a.entry);continue}if(y1(a)){r.artifactLedger.push(a.entry);continue}if(f1(a)){r.extensionRecords.push({id:a.id,extensionId:a.extensionId,type:a.type,ts:a.ts,data:a.data,dedupeKey:a.dedupeKey});continue}if(Vg(a)){r.legacyMessages.push(a);continue}r.malformedCount+=1}catch{r.malformedCount+=1}return r}i(C1,"readPersistedSessionFile");var Xg=class{static{i(this,"FileSessionStorage")}writeQueues=new Map;serializedWrite(t,n){let o=(this.writeQueues.get(t)??Promise.resolve()).then(n,()=>n());return this.writeQueues.set(t,o),o}appendState=new Map;syncAppendState(t,n,r){let o=this.appendState.get(t);this.appendState.set(t,{lineageCount:n.lineage?.entries.length??o?.lineageCount??0,artifactCount:n.artifactLedger?.length??o?.artifactCount??0,extensionCount:n.extensionRecords?.length??o?.extensionCount??0,metaUpdateCount:r??o?.metaUpdateCount??0})}getSessionFilePath(t){return Wd.join(_r,`${t}.jsonl`)}getArchiveFilePath(t){return Wd.join(_r,`${t}.archive.jsonl`)}async readSession(t){let n=this.getSessionFilePath(t),r=await C1(n);return r?(D0(n,r.malformedCount),T1(r)):null}async writeSessionInternal(t,n,r){await On.mkdir(_r,{recursive:!0});let o=this.getSessionFilePath(t),s=`${o}.${process.pid}.${Date.now()}.tmp`,a=n.lineage??mn(n.messages),c=S1(t,n,a,r);try{let l=await On.open(s,"w");try{await l.write(JSON.stringify(c)+`
|
|
447
|
-
`);for(let u of a.entries)await l.write(JSON.stringify(B0(u))+`
|
|
448
|
-
`);for(let u of n.artifactLedger??[])await l.write(JSON.stringify(H0(u))+`
|
|
449
|
-
`);for(let u of n.extensionRecords??[])await l.write(JSON.stringify(N0(u))+`
|
|
450
|
-
`)}finally{await l.close()}await On.rename(s,o)}finally{Fd.existsSync(s)&&await On.unlink(s).catch(()=>{})}}async mergeAndWriteInternal(t,n){let r=await this.readSession(t),o={...n,scope:n.scope??r?.data.scope??"user",uiHistory:n.uiHistory??r?.data.uiHistory,extensionState:n.extensionState??r?.data.extensionState,artifactLedger:n.artifactLedger??r?.data.artifactLedger,extensionRecords:n.extensionRecords??r?.data.extensionRecords,runtimeInfo:n.runtimeInfo??r?.data.runtimeInfo,errorMetadata:n.errorMetadata??r?.data.errorMetadata,lineage:n.lineage??mn(n.messages,r?.data.lineage)};await this.writeSessionInternal(t,o,r?.createdAt),this.syncAppendState(t,o)}async appendSessionDelta(t,n){let r=this.getSessionFilePath(t);if(!Fd.existsSync(r)||!n.lineage){await this.save(t,n);return}await this.serializedWrite(t,async()=>{let s=this.appendState.get(t);if(!s){await this.mergeAndWriteInternal(t,n);return}if(n.lineage.entries.length<s.lineageCount||(n.artifactLedger?.length??0)<s.artifactCount){await this.mergeAndWriteInternal(t,n);return}let a=n.lineage.entries.slice(s.lineageCount),c=(n.artifactLedger??[]).slice(s.artifactCount),l=(n.extensionRecords??[]).slice(s.extensionCount),u=[];for(let p of a)u.push(JSON.stringify(B0(p)));for(let p of c)u.push(JSON.stringify(H0(p)));for(let p of l)u.push(JSON.stringify(N0(p)));let m={_type:"meta_update",title:n.title,activeEntryId:n.lineage.activeEntryId,activeMessageCount:lo(n.lineage),...n.uiHistory!==void 0?{uiHistory:n.uiHistory}:{},...n.scope!==void 0?{scope:n.scope}:{}};u.push(JSON.stringify(m)),u.length>0&&await On.appendFile(r,`
|
|
451
|
-
`+u.join(`
|
|
452
|
-
`),"utf-8"),this.syncAppendState(t,n,s.metaUpdateCount+1)});let o=this.appendState.get(t);o&&this.shouldRunMaintenance(o)&&this.runMaintenance(t).catch(s=>{process.stderr.write(`[KodaX] Archive maintenance failed: ${String(s)}
|
|
453
|
-
`)})}shouldRunMaintenance(t){return t.metaUpdateCount>=50||t.lineageCount>500}async runMaintenance(t){await this.serializedWrite(t,async()=>{let n=await this.readSession(t);if(!n?.data.lineage)return;let{slimmedLineage:r,archivedEntries:o,archiveBatchId:s}=vy(n.data.lineage);if(o.length===0){await this.writeSessionInternal(t,n.data,n.createdAt),this.syncAppendState(t,n.data,0);return}let a=this.getArchiveFilePath(t),c=await On.open(a,"a");try{await c.write(JSON.stringify({_type:"archive_batch",archiveBatchId:s,sessionId:t,archivedAt:new Date().toISOString(),entryCount:o.length})+`
|
|
454
|
-
`);for(let u of o)await c.write(JSON.stringify({_type:"archived_entry",archiveBatchId:s,entry:u})+`
|
|
455
|
-
`)}finally{await c.close()}let l={...n.data,lineage:r};await this.writeSessionInternal(t,l,n.createdAt),this.syncAppendState(t,l,0)})}async save(t,n){await this.serializedWrite(t,async()=>{await this.mergeAndWriteInternal(t,n)})}async load(t){let n=await this.readSession(t);if(!n)return null;this.syncAppendState(t,n.data);let{data:r,createdAt:o}=n,s=this.getSessionFilePath(t),a=await mo(),c=await ts(),l=Ha(r);if((c.canonicalRepoRoot&&l?.canonicalRepoRoot&&!Eu(c,l)||a&&r.gitRoot&&a!==r.gitRoot&&!Eu(c,{canonicalRepoRoot:r.gitRoot}))&&(Yr(O0.yellow(`
|
|
456
|
-
[Warning] Session project mismatch:`)),c.workspaceRoot&&Yr(` Current workspace: ${c.workspaceRoot}`),l?.workspaceRoot&&Yr(` Session workspace: ${l.workspaceRoot}`),c.canonicalRepoRoot&&Yr(` Current repo: ${c.canonicalRepoRoot}`),l?.canonicalRepoRoot?Yr(` Session repo: ${l.canonicalRepoRoot}`):r.gitRoot&&Yr(` Session repo: ${r.gitRoot}`),Yr(` Continuing anyway...
|
|
457
|
-
`)),r.errorMetadata?.consecutiveErrors&&r.errorMetadata.consecutiveErrors>0){let m=hy(r.messages);if(m!==r.messages){Yr(O0.cyan("[Session Recovery] Cleaned incomplete tool calls from previous session"));let p={...r,messages:m,errorMetadata:{...r.errorMetadata,consecutiveErrors:0},lineage:mn(m,r.lineage)};return await this.serializedWrite(t,async()=>{await this.writeSessionInternal(t,p,o),this.syncAppendState(t,p)}),p}}return D0(s,0),r}async getLineage(t){return(await this.readSession(t))?.data.lineage??null}async setActiveEntry(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=yi(s.data.lineage,n,r);if(!a)return;let c={...s.data,messages:vt(a),lineage:a};await this.writeSessionInternal(t,c,s.createdAt),this.syncAppendState(t,c),o=c}),o}async rewind(t,n){let r=null;return await this.serializedWrite(t,async()=>{let o=await this.readSession(t);if(!o?.data.lineage)return;let s=n??wi(o.data.lineage);if(!s)return;let a=Ti(o.data.lineage,s);if(!a)return;let c={...o.data,messages:vt(a),lineage:a};await this.writeSessionInternal(t,c,o.createdAt),this.syncAppendState(t,c),r=c}),r}async setLabel(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=xi(s.data.lineage,n,r);if(!a)return;let c={...s.data,lineage:a};await this.writeSessionInternal(t,c,s.createdAt),this.syncAppendState(t,c),o=c}),o}async fork(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Si(s.data.lineage,n);if(!a)return;let c=r?.sessionId??await hi(),l={messages:vt(a),title:r?.title??s.data.title,gitRoot:s.data.gitRoot,uiHistory:s.data.uiHistory?s.data.uiHistory.map(u=>({...u})):void 0,extensionState:s.data.extensionState?structuredClone(s.data.extensionState):void 0,artifactLedger:s.data.artifactLedger?structuredClone(s.data.artifactLedger):void 0,extensionRecords:s.data.extensionRecords?structuredClone(s.data.extensionRecords):void 0,lineage:a};await this.writeSessionInternal(c,l),o={sessionId:c,data:l}}),o}async list(t){await On.mkdir(_r,{recursive:!0});let n=t??await mo(),r=await ts({cwd:n??process.cwd()}),o=(await On.readdir(_r)).filter(a=>a.endsWith(".jsonl")),s=[];for(let a of o)try{let c=(await On.readFile(Wd.join(_r,a),"utf-8")).trim(),l=c.split(`
|
|
458
|
-
`)[0];if(!l)continue;let u=JSON.parse(l);if(wt(u)&&u._type==="meta"){let m=typeof u.gitRoot=="string"?u.gitRoot:"",p=W0(u.runtimeInfo)?u.runtimeInfo:void 0,g=u.scope==="managed-task-worker"?"managed-task-worker":"user";if(n){let S=Eu(r,p),I=p?.workspaceRoot?F0(p.workspaceRoot,r.workspaceRoot??""):F0(m,n);if(!S&&!I)continue}if(g!=="user")continue;let x=c.split(`
|
|
459
|
-
`).length,y=typeof u.extensionRecordCount=="number"&&u.extensionRecordCount>0?u.extensionRecordCount:0,w=typeof u.activeMessageCount=="number"&&u.activeMessageCount>=0?u.activeMessageCount:Math.max(0,x-1-y);s.push({id:a.replace(".jsonl",""),title:typeof u.title=="string"?u.title:"",msgCount:w,createdAt:typeof u.createdAt=="string"?u.createdAt:void 0,runtimeInfo:p?{...p}:void 0})}else{let m=c.split(`
|
|
460
|
-
`).length;s.push({id:a.replace(".jsonl",""),title:"",msgCount:m})}}catch{continue}return s.sort((a,c)=>{let l=a.createdAt?Date.parse(a.createdAt):Number.NaN,u=c.createdAt?Date.parse(c.createdAt):Number.NaN;return Number.isFinite(l)&&Number.isFinite(u)&&l!==u?u-l:Number.isFinite(u)&&!Number.isFinite(l)?1:Number.isFinite(l)&&!Number.isFinite(u)?-1:c.id.localeCompare(a.id)}).slice(0,10).map(({id:a,title:c,msgCount:l,runtimeInfo:u})=>u?{id:a,title:c,msgCount:l,runtimeInfo:u}:{id:a,title:c,msgCount:l})}async delete(t){let n=this.getSessionFilePath(t);Fd.existsSync(n)&&await On.unlink(n)}async deleteAll(t){let n=t??await mo(),r=await this.list(n??void 0);for(let o of r)await this.delete(o.id)}};export{vi as a,Ii as b,la as c,ki as d,ua as e,Wf as f,po as g,go as h,Ri as i,ho as j,Il as k,yo as l,Ei as m,kl as n,Rl as o,Mi as p,en as q,Gn as r,Kn as s,Av as t,Gt as u,da as v,Gf as w,Kf as x,Kt as y,Vf as z,zf as A,Qy as B,Jy as C,te as D,N1 as E,km as F,HR as G,au as H,Ia as I,Iw as J,GR as K,KR as L,tn as M,O as N,_H as O,Lt as P,Em as Q,Am as R,cu as S,_m as T,Ew as U,ka as V,Yi as W,Co as X,Pm as Y,Xn as Z,_n as _,Pn as $,Hr as aa,pu as ba,Yn as ca,hu as da,vo as ea,jm as fa,xr as ga,La as ha,Ji as ia,GE as ja,Jm as ka,rs as la,os as ma,fp as na,Po as oa,Lu as pa,mp as qa,ja as ra,gp as sa,ss as ta,TA as ua,Sn as va,VT as wa,zT as xa,SA as ya,CA as za,i_ as Aa,Oo as Ba,a_ as Ca,fs as Da,R_ as Ea,M_ as Fa,A_ as Ga,$p as Ha,Lp as Ia,P_ as Ja,Dp as Ka,Np as La,td as Ma,nd as Na,rd as Oa,Hp as Pa,od as Qa,Fp as Ra,Wp as Sa,id as Ta,Xa as Ua,Ya as Va,$S as Wa,ad as Xa,jp as Ya,Kp as Za,Vp as _a,ld as $a,zp as ab,ud as bb,dd as cb,Qp as db,fd as eb,Ja as fb,Za as gb,zS as hb,sP as ib,aP as jb,YS as kb,dP as lb,fP as mb,ec as nb,Zn as ob,ys as pb,mP as qb,gd as rb,hP as sb,yP as tb,hd as ub,eg as vb,yd as wb,tg as xb,Bg as yb,vL as zb,kL as Ab,LL as Bb,f0 as Cb,m0 as Db,OL as Eb,NL as Fb,Od as Gb,y0 as Hb,Sr as Ib,x0 as Jb,w0 as Kb,T0 as Lb,FL as Mb,uc as Nb,WL as Ob,UL as Pb,r1 as Qb,Kg as Rb,Xg as Sb};
|