@kodax-ai/kodax 0.7.39 → 0.7.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/README.md +58 -0
  3. package/README_CN.md +31 -0
  4. package/dist/chunks/{chunk-SF7WD7E5.js → chunk-5TFLMGER.js} +1 -1
  5. package/dist/chunks/{chunk-HUAU4KB3.js → chunk-6OB4AJOM.js} +1 -1
  6. package/dist/chunks/chunk-6QO6HWGU.js +30 -0
  7. package/dist/chunks/{chunk-SONW6AC7.js → chunk-EQ5DGS2W.js} +1 -1
  8. package/dist/chunks/chunk-EVIDQWMF.js +5 -0
  9. package/dist/chunks/chunk-HYWVRTFA.js +1233 -0
  10. package/dist/chunks/chunk-SX2IS5JP.js +16 -0
  11. package/dist/chunks/chunk-V4WSBIXB.js +2 -0
  12. package/dist/chunks/chunk-ZPJPNLBK.js +462 -0
  13. package/dist/chunks/compaction-config-LT5PEXPT.js +2 -0
  14. package/dist/chunks/{construction-bootstrap-XSE7ZABG.js → construction-bootstrap-HBCWJFHC.js} +1 -1
  15. package/dist/chunks/{devtools-MOFU7YQF.js → devtools-EYGFOXEU.js} +1 -1
  16. package/dist/chunks/{dist-WKW4CBG6.js → dist-M57GIWR4.js} +1 -1
  17. package/dist/chunks/dist-V3BS2NKB.js +2 -0
  18. package/dist/chunks/paste-5DSTHQGK.js +2 -0
  19. package/dist/chunks/{utils-3HW4KOGE.js → utils-FAFUQJ2A.js} +1 -1
  20. package/dist/index.d.ts +232 -7
  21. package/dist/index.js +2 -2
  22. package/dist/kodax_cli.js +945 -923
  23. package/dist/sdk-agent.d.ts +1459 -10
  24. package/dist/sdk-agent.js +1 -1
  25. package/dist/sdk-coding.d.ts +4543 -14
  26. package/dist/sdk-coding.js +1 -1
  27. package/dist/sdk-llm.d.ts +209 -10
  28. package/dist/sdk-llm.js +1 -1
  29. package/dist/sdk-repl.d.ts +2694 -13
  30. package/dist/sdk-repl.js +1 -1
  31. package/dist/sdk-skills.d.ts +487 -11
  32. package/dist/sdk-skills.js +1 -1
  33. package/dist/types-chunks/bash-prefix-extractor.d-B2iliwdi.d.ts +2432 -0
  34. package/dist/types-chunks/capability.d-BxNgd1-c.d.ts +368 -0
  35. package/dist/types-chunks/cost-tracker.d-C4dMlQuV.d.ts +342 -0
  36. package/dist/types-chunks/history-cleanup.d-q1vAvCss.d.ts +1266 -0
  37. package/dist/types-chunks/instance-discovery.d-DZhp77vb.d.ts +1217 -0
  38. package/dist/types-chunks/resolver.d-BwD6TKz7.d.ts +262 -0
  39. package/dist/types-chunks/storage.d-Bv9T99Qu.d.ts +584 -0
  40. package/dist/types-chunks/types.d-C5mHR87z.d.ts +119 -0
  41. package/package.json +8 -2
  42. package/dist/acp_events.d.ts +0 -109
  43. package/dist/acp_logger.d.ts +0 -20
  44. package/dist/acp_server.d.ts +0 -92
  45. package/dist/chunks/chunk-4E76FLZ3.js +0 -2
  46. package/dist/chunks/chunk-7LQ2NCHF.js +0 -1221
  47. package/dist/chunks/chunk-N2VZ2MJF.js +0 -11
  48. package/dist/chunks/chunk-WEEQZYZS.js +0 -460
  49. package/dist/chunks/chunk-XI75LZIO.js +0 -30
  50. package/dist/chunks/compaction-config-YL4SWWII.js +0 -2
  51. package/dist/chunks/dist-AMUYI7R5.js +0 -2
  52. package/dist/cli_commands.d.ts +0 -17
  53. package/dist/cli_option_helpers.d.ts +0 -49
  54. package/dist/cli_option_helpers.test.d.ts +0 -1
  55. package/dist/constructed_cli.d.ts +0 -82
  56. package/dist/constructed_cli.test.d.ts +0 -1
  57. package/dist/kodax_cli.d.ts +0 -7
  58. package/dist/self_modify_cli.d.ts +0 -81
  59. package/dist/self_modify_cli.test.d.ts +0 -9
  60. package/dist/skill_cli.d.ts +0 -15
  61. 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 Dy,B as Ny,C as Hy,a as Q,c as Er,j as wi,k as Bn,l as Ti,m as co,n as $y,o as Oy,p as xl,q as Pf,r as wl,s as Lf,t as $f,u as Of,w as Df,x as Nf,y as ar,z as lo}from"./chunk-SF7WD7E5.js";import{a as Tl}from"./chunk-HUAU4KB3.js";import{$b as Sy,Ac as ky,Ad as _f,Bc as Ry,Bd as Ay,Cd as _y,Ha as hy,Ib as mi,Kb as dn,Mb as vt,Ob as pi,P as fy,Pb as gi,Q as pl,Qb as xy,Qd as Py,Rb as hi,S as na,Sb as yi,T as my,Tb as xi,Ub as hl,Vb as so,Wb as wy,Xb as Af,Yb as ra,Zb as Ty,c as Rf,d as ta,e as ly,ed as oa,g as Ef,ke as Ly,mb as gl,ne as yl,pa as py,pb as yy,qa as Mf,ra as gy,xd as Ey,yd as My,zc as sr}from"./chunk-7LQ2NCHF.js";import{Da as dy,ia as di,ja as fi,k as io,la as uy}from"./chunk-N2VZ2MJF.js";import{B as Iy,g as Cy,h as by,i as vy,v as ir,w as ao}from"./chunk-SONW6AC7.js";import{$ as cy,Q as ml,j as oo,ja as ci,ka as li,la as ui}from"./chunk-XI75LZIO.js";import{a as i,b as pv,c as kf,d as gv}from"./chunk-4E76FLZ3.js";var vw=kf((IB,bw)=>{"use strict";bw.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 _w=kf((RB,Aw)=>{"use strict";var Mw="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",Iw=new RegExp("^"+Mw+"$"),kw="|&;()<> \\t",WR='"((\\\\"|[^"])*?)"',UR="'((\\\\'|[^'])*?)'",jR=/^#$/,Rw="'",Ew='"',Mm="$",To="",GR=4294967296;for(Am=0;Am<4;Am++)To+=(GR*Math.random()).toString(16);var Am,KR=new RegExp("^"+To);function VR(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(VR,"matchAll");function zR(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+To+JSON.stringify(r)+To:t+r}i(zR,"getVar");function XR(e,t,n){n||(n={});var r=n.escape||"\\",o="(\\"+r+`['"`+kw+`]|[^\\s'"`+kw+"])+",s=new RegExp(["("+Mw+")","("+o+"|"+WR+"|"+UR+")+"].join("|"),"g"),a=VR(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(Iw.test(u))return{op:u};var m=!1,p=!1,g="",y=!1,T;function x(){T+=1;var L,$,j=u.charAt(T);if(j==="{"){if(T+=1,u.charAt(T)==="}")throw new Error("Bad substitution: "+u.slice(T-2,T+1));if(L=u.indexOf("}",T),L<0)throw new Error("Bad substitution: "+u.slice(T));$=u.slice(T,L),T=L}else if(/[*@#?$!_-]/.test(j))$=j,T+=1;else{var D=u.slice(T);L=D.match(/[^\w\d_]/),L?($=D.slice(0,L.index),T+=L.index-1):($=D,T=u.length)}return zR(t,"",$)}for(i(x,"parseEnvVar"),T=0;T<u.length;T++){var b=u.charAt(T);if(y=y||!m&&(b==="*"||b==="?"),p)g+=b,p=!1;else if(m)b===m?m=!1:m==Rw?g+=b:b===r?(T+=1,b=u.charAt(T),b===Ew||b===r||b===Mm?g+=b:g+=r+b):b===Mm?g+=x():g+=b;else if(b===Ew||b===Rw)m=b;else{if(Iw.test(b))return{op:u};if(jR.test(b)){c=!0;var I={comment:e.slice(l.index+T+1)};return g.length?[g,I]:[I]}else b===r?p=!0:b===Mm?g+=x():g+=b}}return y?{op:"glob",pattern:g}:g}).reduce(function(l,u){return typeof u>"u"?l:l.concat(u)},[])}i(XR,"parseInternal");Aw.exports=i(function(t,n,r){var o=XR(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("("+To+".*?"+To+")","g"));return c.length===1?s.concat(c[0]):s.concat(c.filter(Boolean).map(function(l){return KR.test(l)?JSON.parse(l.split(To)[1]):l}))},[])},"parse")});var Pw=kf(_m=>{"use strict";_m.quote=vw();_m.parse=_w()});import{spawnSync as hv}from"node:child_process";function Sl(e){return e==="1"||e?.toLowerCase()==="true"}i(Sl,"isTruthyEnv");function By(e){return e==="0"||e?.toLowerCase()==="false"}i(By,"isFalseyEnv");function Si(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}i(Si,"isVsCodeTerminalHostEnv");function Ci(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}i(Ci,"hasCursorUpViewportYankRisk");function yv(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}i(yv,"isSshSession");function ia(e={}){let t=e.env??process.env;return Sl(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&yv(t)}i(ia,"isRemoteConptyHost");function bi(e={}){let t=e.env??process.env;return Ci(e)||Si(t)}i(bi,"hasMainScreenRenderScrollRisk");function xv(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}i(xv,"isTmuxControlModeEnvHeuristic");var cr;function sa(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(xv(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(cr!==void 0||(cr=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return cr;try{let o=hv("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});o.status===0&&(cr=o.stdout.trim()==="1")}catch{cr=!1}return cr}i(sa,"isTmuxControlMode");function Hf(){cr=void 0}i(Hf,"resetTmuxControlModeProbeForTesting");function uo(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":sa(e)?"tmux_control_mode":Si(t)?"xtermjs_host":ia(e)?"remote_conpty_host":Ci(e)?"degraded_vt":"native_vt"}i(uo,"detectTerminalRenderHost");var fo=uo;function vi(e={}){let t=e.env??process.env;if(Sl(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}i(vi,"resolveConfiguredTuiRendererMode");function mo(e={}){let t=vi(e);if(t==="legacy"||t==="owned")return t;let n=uo(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}i(mo,"resolveEffectiveTuiRendererMode");function Cl(e={}){let t=e.env??process.env;if(Sl(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=vi({env:t});if(n==="legacy"||n==="owned")return"ink";let r=uo(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}i(Cl,"resolveInteractiveSurfacePreference");var Fy={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0};function po(e,t="owned",n={}){let r=n.env??process.env;return By(r.KODAX_FULLSCREEN)?Fy:wv(e,t)}i(po,"resolveFullscreenPolicy");function wv(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 Fy;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}i(wv,"buildFullscreenPolicy");function Ii(e,t={}){let n=t.rendererMode??"owned",r=po(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(Ii,"getTerminalHostCapabilities");function bl(e={}){return mo(e)==="owned"}i(bl,"isOwnedRendererPreferred");function vl(e={}){let t=e.env??process.env;return Sl(t.KODAX_FORCE_CLASSIC_REPL)&&!By(t.KODAX_FORCE_CLASSIC_REPL)}i(vl,"isClassicReplForced");var ki=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}},Bf=1,Ff=2,Tv=1e3,Wy;function Il(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return Wy??=new Intl.Segmenter("en",{granularity:"grapheme"}),Wy}i(Il,"getGraphemeSegmenter");function en(e){if(!e)return 0;let t=Il();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}i(en,"getCodePointLength");function Fn(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(Fn,"isWideChar");function Wn(e){if(!e)return 0;let t=0,n=Il();if(n)for(let r of n.segment(e))t+=Fn(r.segment)?Ff:Bf;else for(let r of e)t+=Fn(r)?Ff:Bf;return t}i(Wn,"getVisualWidth");function Sv(e,t){if(!e||t<0)return"";let n=Il();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(Sv,"getCharAtCodePoint");function Gt(e){if(!e)return[];let t=Il();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}i(Gt,"splitByCodePoints");function Cv(e,t,n){return Gt(e).slice(t,n).join("")}i(Cv,"sliceByCodePoints");function Uy(e,t){let n=Math.max(0,t),r=Gt(e),o=0,s=0;for(;o<r.length;){let a=Fn(r[o])?Ff:Bf;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(Uy,"splitAtVisualColumn");function aa(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=Fn(u)?2:1;if(c+m>s)break;a+=u,c+=m}return n&&a.length<e.length&&(a+=r),a}i(aa,"truncateByVisualWidth");var Wf=new ki(Tv);function Uf(e){let t=Wf.get(e);if(t!==void 0)return t;let n=Wn(e);return Wf.set(e,n),n}i(Uf,"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,y=u,T=-1;for(let x=u;x<m.length;x++){let b=m[x],I=Fn(b)?2:1;if(g+I>t){T>=0&&x-u>0?(p=m.slice(u,T).join(""),g=m.slice(u,T).reduce((L,$)=>L+(Fn($)?2:1),0),y=T):p.length===0&&I>t&&(p=b,g=I,y=x+1);break}p+=b,g+=I,y=x+1,b===" "&&(T=x+1)}if(p.length>0||o.length===0){let x=u,b=o.length;o.push(p),s[c].push([b,x]),a.push([c,x])}u=y}}return{visualLines:o,logicalToVisualMap:s,visualToLogicalMap:a}}i(Kt,"calculateVisualLayout");function jf(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[y,T]of a)if(T<=s)c=[y,T];else break;let[l,u]=c??a[0],m=r[l]??"",p=Math.max(0,s-u),g=Wn(Cv(m,0,p));return[l,g]}i(jf,"calculateVisualCursorFromLayout");var Gf={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"]}},jy={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 Gy={dark:Gf,minimal:jy};function te(e="dark"){return Gy[e]??Gf}i(te,"getTheme");function S1(){return Object.keys(Gy)}i(S1,"getThemeNames");import{jsx as Lt,jsxs as mn,Fragment as bR}from"react/jsx-runtime";import{useMemo as ru}from"react";import{jsx as uw}from"react/jsx-runtime";import{createContext as Zk,useContext as xo,useEffect as Wi,useMemo as lw,useState as eR,useCallback as dw,useRef as ql}from"react";import{Stream as Dk}from"node:stream";import Kf,{forwardRef as Iv,useContext as kv}from"react";import{createContext as bv}from"react";var Ri=bv({isScreenReaderEnabled:!1});import{createContext as vv}from"react";var kl=vv(void 0);var Ky=Iv(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":o,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=kv(Ri),u=n?Kf.createElement("ink-text",null,n):void 0;if(l&&r)return null;let m=Kf.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?Kf.createElement(kl.Provider,{value:t},m):m});Ky.displayName="Box";var fn=Ky;import Av,{useContext as Vy}from"react";import Ei from"chalk";import Mr from"chalk";var Rv=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,Ev=/^ansi256\(\s?(\d+)\s?\)$/;function Mv(e){return e in Mr}i(Mv,"isNamedColor");function En(e,t,n){if(!t)return e;if(Mv(t)){let r=Mr;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"?Mr.hex(t)(e):Mr.bgHex(t)(e);if(t.startsWith("ansi256")){let r=Ev.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?Mr.ansi256(o)(e):Mr.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=Rv.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?Mr.rgb(o,s,a)(e):Mr.bgRgb(o,s,a)(e)}return e}i(En,"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}=Vy(Ri),y=Vy(kl),T=g&&m?m:u;if(T==null)return null;let x=i(b=>{let I=b;n&&(I=Ei.dim(I)),e&&(I=En(I,e,"foreground"));let L=t??y;return L&&(I=En(I,L,"background")),r&&(I=Ei.bold(I)),o&&(I=Ei.italic(I)),s&&(I=Ei.underline(I)),a&&(I=Ei.strikethrough(I)),c&&(I=Ei.inverse(I)),I},"transform");return g&&p?null:Av.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:x},g&&m?m:u)}i(Vt,"Text");import _v,{useLayoutEffect as Pv,useMemo as zy,useState as Lv}from"react";function Vf({items:e,children:t,style:n}){let[r,o]=Lv(0),s=zy(()=>e.slice(r),[e,r]);Pv(()=>{o(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=zy(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return _v.createElement("ink-box",{internal_static:!0,style:c},a)}i(Vf,"Static");import Fi from"node:process";import qx from"react";import{throttle as yk}from"es-toolkit/compat";import fr from"ansi-escapes";import Pr from"is-in-ci";import xk from"auto-bind";import{onExit as wk}from"signal-exit";import Tk from"patch-console";import{LegacyRoot as Sk,ConcurrentRoot as Ck}from"react-reconciler/constants.js";import bk from"yoga-layout";import vk from"wrap-ansi";import Ik from"terminal-size";import $v from"node:process";var Rl=i(()=>$v.env.DEV==="true","isDev");import aI from"react-reconciler";import{DefaultEventPriority as cI,NoEventPriority as lx}from"react-reconciler/constants.js";import*as Ar from"scheduler";import ix from"yoga-layout";import{createContext as lI}from"react";import Yv from"yoga-layout";import Ov from"widest-line";var Xy=new Map,Dv=i(e=>{if(e.length===0)return{width:0,height:0};let t=Xy.get(e);if(t)return t;let n=Ov(e),r=e.split(`
3
- `).length,o={width:n,height:r};return Xy.set(e,o),o},"measureText"),zf=Dv;import Nv from"wrap-ansi";import Hv from"cli-truncate";var Yy={},Bv=i((e,t,n)=>{let r=e+String(t)+String(n),o=Yy[r];if(o)return o;let s=e;if(n==="wrap"&&(s=Nv(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=Hv(e,t,{position:a})}return Yy[r]=s,s},"wrapText"),El=Bv;var Fv=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),Wv=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),Uv=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),Jy=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"),Zy=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),qy=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!Fv(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!Wv(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!Uv(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),Qy=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"),Gv=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!Jy(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"),Kv=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"),Vv=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"),Xf=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(Zy(t))return!0;return!1},"hasAnsiControlCharacters"),Mi=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"),ex=i(e=>{if(!Xf(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 Mi(t,e,n,r);if(a==="["){let u=qy(e,r+2);if(u===void 0)return Mi(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=Kv(a);if(c!==void 0){let u=Qy(e,r+2,c.allowBellTerminator);if(u===void 0)return Mi(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=Gv(e,r+1);if(l===void 0){if(Jy(a))return Mi(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=qy(e,r+1);if(a===void 0)return Mi(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=Vv(o);if(s!==void 0){let a=Qy(e,r+1,s.allowBellTerminator);if(a===void 0)return Mi(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(Zy(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 zv=/^[\d:;]*$/,Xv=i(e=>{if(!Xf(e))return e;let t="";for(let n of ex(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&zv.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),tx=Xv;var nx=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=nx(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return tx(t)},"squashTextNodes"),ca=nx;var Ml=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:Yv.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(qv.bind(null,t)),t},"createNode"),Al=i((e,t)=>{t.parentNode&&la(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")&&_l(e)},"appendChildNode"),Yf=i((e,t,n)=>{t.parentNode&&la(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")&&_l(e)},"insertBeforeNode"),la=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")&&_l(e)},"removeChildNode"),qf=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),Qf=i((e,t)=>{e.style=t},"setStyle"),rx=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return ua(t,e),t},"createTextNode"),qv=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:ca(e),r=zf(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=El(n,t,o);return zf(s)},"measureTextNode"),ox=i(e=>{if(e?.parentNode)return e.yogaNode??ox(e.parentNode)},"findClosestYogaNode"),_l=i(e=>{ox(e)?.markDirty()},"markNodeAsDirty"),ua=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,_l(e)},"setTextNodeValue");import ge from"yoga-layout";var Jv=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"),Zv=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"),eI=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"),tI=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"),nI=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"),rI=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?ge.DISPLAY_FLEX:ge.DISPLAY_NONE)},"applyDisplayStyles"),oI=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"),iI=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"),sI=i((e,t={})=>{Jv(e,t),Zv(e,t),eI(e,t),tI(e,t),nI(e,t),rI(e,t),oI(e,t),iI(e,t)},"styles"),Jf=sI;if(Rl())try{await import("./devtools-MOFU7YQF.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 sx=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"),ax=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Pl=lx,Zf,cx={name:void 0,version:void 0},lr=aI({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=Ml(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){Qf(s,c),s.yogaNode&&Jf(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){Zf=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}qf(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 rx(e)},resetTextContent(){},hideTextInstance(e){ua(e,"")},unhideTextInstance(e,t){ua(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(ix.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(ix.DISPLAY_FLEX)},appendInitialChild:Al,appendChild:Al,insertBefore:Yf,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:Ar.unstable_scheduleCallback,cancelCallback:Ar.unstable_cancelCallback,shouldYield:Ar.unstable_shouldYield,now:Ar.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:Al,insertInContainerBefore:Yf,removeChildFromContainer(e,t){la(e,t),ax(t.yogaNode)},commitUpdate(e,t,n,r){Zf&&e.internal_static&&(Zf.isStaticDirty=!0);let o=sx(n,r),s=sx(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){Qf(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}qf(e,a,c)}s&&e.yogaNode&&Jf(e.yogaNode,s)}},commitTextUpdate(e,t,n){ua(e,n)},removeChild(e,t){la(e,t),ax(t.yogaNode)},setCurrentUpdatePriority(e){Pl=e},getCurrentUpdatePriority:i(()=>Pl,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Pl!==lx?Pl:cI},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:lI(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:cx.name,rendererVersion:cx.version});import pI from"widest-line";import gI from"indent-string";import Ai from"yoga-layout";import Ll from"yoga-layout";var uI=i(e=>e.getComputedWidth()-e.getComputedPadding(Ll.EDGE_LEFT)-e.getComputedPadding(Ll.EDGE_RIGHT)-e.getComputedBorder(Ll.EDGE_LEFT)-e.getComputedBorder(Ll.EDGE_RIGHT),"getMaxWidth"),ux=uI;import dI from"cli-boxes";import $l from"chalk";var fI=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?dI[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,y=n.style.borderLeftDimColor??n.style.borderDimColor,T=n.style.borderRightDimColor??n.style.borderDimColor,x=n.style.borderTop!==!1,b=n.style.borderBottom!==!1,I=n.style.borderLeft!==!1,L=n.style.borderRight!==!1,$=o-(I?1:0)-(L?1:0),j=x?En((I?a.topLeft:"")+a.top.repeat($)+(L?a.topRight:""),c,"foreground"):void 0;x&&p&&(j=$l.dim(j));let D=s;x&&(D-=1),b&&(D-=1);let S=(En(a.left,u,"foreground")+`
12
- `).repeat(D);y&&(S=$l.dim(S));let J=(En(a.right,m,"foreground")+`
13
- `).repeat(D);T&&(J=$l.dim(J));let ce=b?En((I?a.bottomLeft:"")+a.bottom.repeat($)+(L?a.bottomRight:""),l,"foreground"):void 0;b&&g&&(ce=$l.dim(ce));let Te=x?1:0;j&&r.write(e,t,j,{transformers:[]}),I&&r.write(e,t+Te,S,{transformers:[]}),L&&r.write(e+o-1,t+Te,J,{transformers:[]}),ce&&r.write(e,t+s-1,ce,{transformers:[]})}},"renderBorder"),dx=fI;var mI=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=En(" ".repeat(m),n.style.backgroundColor,"background");for(let y=0;y<p;y++)r.write(e+a,t+l+y,g,{transformers:[]})},"renderBackground"),fx=mI;var hI=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
14
- `.repeat(o)+gI(t,r)}return t},"applyPaddingToText"),Ol=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===Ai.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=ca(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=>Ol(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"),mx=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()===Ai.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=ca(e);if(g.length>0){let y=pI(g),T=ux(c);if(y>T){let x=e.style.textWrap??"wrap";g=El(g,T,x)}g=hI(e,g),t.write(l,u,g,{transformers:m})}return}let p=!1;if(e.nodeName==="ink-box"){fx(l,u,e,t),dx(l,u,e,t);let g=e.style.overflowX==="hidden"||e.style.overflow==="hidden",y=e.style.overflowY==="hidden"||e.style.overflow==="hidden";if(g||y){let T=g?l+c.getComputedBorder(Ai.EDGE_LEFT):void 0,x=g?l+c.getComputedWidth()-c.getComputedBorder(Ai.EDGE_RIGHT):void 0,b=y?u+c.getComputedBorder(Ai.EDGE_TOP):void 0,I=y?u+c.getComputedHeight()-c.getComputedBorder(Ai.EDGE_BOTTOM):void 0;t.clip({x1:T,x2:x,y1:b,y2:I}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let g of e.childNodes)mx(g,t,{offsetX:l,offsetY:u,transformers:m,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),em=mx;import yI from"slice-ansi";import xI from"string-width";import{styledCharsFromTokens as wI,styledCharsToString as TI,tokenize as SI}from"@alcalzone/ansi-tokenize";var tm=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=wI(SI(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=xI(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}},_i=class{static{i(this,"Output")}width;height;operations=[];caches=new tm;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 y=this.caches.getWidestLine(o);if(a+y<u.x1||a>u.x2)continue}if(g){let y=l.length;if(c+y<u.y1||c>u.y2)continue}if(p&&(l=l.map(y=>{let T=a<u.x1?u.x1-a:0,x=this.caches.getStringWidth(y),b=a+x>u.x2?u.x2-a:x;return yI(y,T,b)}),a<u.x1&&(a=u.x1)),g){let y=c<u.y1?u.y1-c:0,T=l.length,x=c+T>u.y2?u.y2-c:T;l=l.slice(y,x),c<u.y1&&(c=u.y1)}}let m=0;for(let[p,g]of l.entries()){let y=t[c+m];if(!y)continue;for(let b of s)g=b(g,p);let T=this.caches.getStyledChars(g),x=a;for(let b of T){y[x]=b;let I=Math.max(1,this.caches.getStringWidth(b.value));if(I>1)for(let L=1;L<I;L++)y[x+L]={type:"char",value:"",fullWidth:!1,styles:b.styles};x+=I}m++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let o=r.filter(s=>s!==void 0);return TI(o).trimEnd()}).join(`
18
- `),height:t.length}}};var ur={Single:0,Wide:1,SpacerTail:2},Li={char:" ",width:ur.Single,style:"",hyperlink:void 0};function Dl(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(Li);return{width:e,height:t,cells:n}}i(Dl,"createScreen");function Pi(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}i(Pi,"cellAt");function px(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(px,"setCellAt");function*Nl(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=Pi(e,s,o),c=Pi(t,s,o);CI(a,c)||(yield{x:s,y:o,prev:a,next:c})}}i(Nl,"diffEach");function CI(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(CI,"cellsEqual");var nm="\x1B]8;";function bI(e){return e.endsWith("\x07")?e.slice(0,-1):e}i(bI,"stripOsc8Terminator");function vI(e){if(!e.startsWith(nm))return;let t=e.slice(nm.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),o=bI(r);return o.length>0?o:void 0}i(vI,"parseOsc8Url");function II(e){if(e.value==="")return{char:"",width:ur.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(nm)){let o=vI(r.code);o!==void 0&&(n=o)}else t+=r.code;return{char:e.value,width:e.fullWidth?ur.Wide:ur.Single,style:t,hyperlink:n}}i(II,"styledCharToCell");function gx(e){let t=e.getGrid(),n=e.width,r=e.height,o=Dl(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=II(m);p.char===Li.char&&p.width===Li.width&&p.style===Li.style&&p.hyperlink===Li.hyperlink||(o=px(o,u,a,p))}}return o}i(gx,"outputToScreen");var kI=i((e,t,n)=>{if(e.yogaNode){if(t){let p=Ol(e,{skipStaticElements:!0}),g=p===""?0:p.split(`
19
- `).length,y="";return e.staticNode&&(y=Ol(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:g,staticOutput:y?`${y}
20
- `:"",frame:void 0}}let r=new _i({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});em(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new _i({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),em(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=gx(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"),hx=kI;function Un(...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(Un,"csi");function yx(e=1){return e===0?"":Un(e,"A")}i(yx,"cursorUp");function RI(e=1){return e===0?"":Un(e,"B")}i(RI,"cursorDown");function EI(e=1){return e===0?"":Un(e,"C")}i(EI,"cursorForward");function MI(e=1){return e===0?"":Un(e,"D")}i(MI,"cursorBack");function xx(e){return Un(e,"G")}i(xx,"cursorTo");var AI=Un("G"),wx=Un("H");function Tx(e,t){let n="";return e<0?n+=MI(-e):e>0&&(n+=EI(e)),t<0?n+=yx(-t):t>0&&(n+=RI(t)),n}i(Tx,"cursorMove");var _I=Un(2,"K");function Sx(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=_I,n<e-1&&(t+=yx(1));return t+=AI,t}i(Sx,"eraseLines");var cD=Un("r"),Hl=Un(0,"m");function Cx(e){return`\x1B]${e.join(";")}\x07`}i(Cx,"osc");function PI(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(PI,"osc8Id");function da(e,t){if(!e)return fa;let n={id:PI(e),...t??{}},r=Object.entries(n).map(([o,s])=>`${o}=${s}`).join(":");return Cx(["8",r,e])}i(da,"link");var fa=Cx(["8","",""]);function rm(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=Pi(t,c,s);!l||l.width===ur.SpacerTail||(l.hyperlink!==o&&(o!==void 0&&(a+=fa),l.hyperlink!==void 0&&(a+=da(l.hyperlink)),o=l.hyperlink),l.style!==r&&(r!==""&&(a+=Hl),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}o!==void 0&&(a+=fa,o=void 0),r!==""&&(a+=Hl,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
22
- `)}]}i(rm,"renderFullFrame");var LI=Object.freeze([]),$I=Object.freeze([]);function $i(e,t){if(e===t)return{patches:LI,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:Hl}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}i($i,"transitionStyle");function Bl(e,t){let n=$i(e,t),r="";for(let o of n.patches)o.type==="stdout"&&(r+=o.content);return{str:r,current:n.current}}i(Bl,"transitionStyleStr");function go(e,t){if(e===t)return{patches:$I,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:fa}),t!==void 0&&n.push({type:"stdout",content:da(t)}),{patches:n,current:t}}i(go,"transitionHyperlink");function bx(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(bx,"needsWidthCompensation");var Oi=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}},_r={type:"carriageReturn"},ma={type:"stdout",content:`
23
- `};function Fl(e,t,n){let r=t.width===ur.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&&bx(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(Fl,"writeCellWithStyleStr");function pa(e,t,n){e.txn(r=>{let o=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[_r,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:s!==0?[[_r,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:[[{type:"cursorMove",x:o,y:s}],{dx:o,dy:s}]})}i(pa,"moveCursorTo");function Wl(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]=_r;for(let g=0;g<u;g++)p[1+g]=ma;return[p,{dx:-m.x,dy:u}]})}for(let u=0;u<t.screen.width;u++){let m=Pi(t.screen,u,a);if(!m||m.width===ur.SpacerTail||m.char===" "&&m.style===""&&m.hyperlink===void 0)continue;pa(e,u,a);let p=go(s,m.hyperlink);for(let y of p.patches)e.txn(()=>[[y],{dx:0,dy:0}]);s=p.current;let g=Bl(o,m.style);Fl(e,m,g.str)&&(o=g.current)}let c=$i(o,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);o=c.current;let l=go(s,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}]);s=l.current,e.txn(u=>[[_r,ma],{dx:-u.x,dy:1}])}if(o!==""||s!==void 0){let a=$i(o,"");for(let l of a.patches)e.txn(()=>[[l],{dx:0,dy:0}]);let c=go(s,void 0);for(let l of c.patches)e.txn(()=>[[l],{dx:0,dy:0}])}}i(Wl,"renderFrameSlice");function om(e,t){let n="";for(let r=0;r<e.width;r++){let o=Pi(e,r,t);n+=o?.char??" "}return n.trimEnd()}i(om,"readLine");function Ul(e,t){let n=new Oi({x:0,y:0},e.viewport.width);Wl(n,e,0,e.screen.height);let r=[{type:"clearTerminal",reason:t}];for(let o of n.diff)r.push(o);return r}i(Ul,"fullResetSequence_CAUSES_FLICKER");function im(e,t){let n=e.cursor.y>=e.screen.height,r=t.screen.height>e.screen.height,o=t.screen.height<e.screen.height,s=n&&e.screen.height>=e.viewport.height,a=t.screen.height<=e.viewport.height,c=s?1:0;return{viewportY:r?Math.max(0,e.screen.height-e.viewport.height+c):Math.max(e.screen.height,t.screen.height)-t.viewport.height+c,cursorAtBottom:n,growing:r,shrinking:o,prevHadScrollback:s,nextFitsViewport:a}}i(im,"computeViewportState");function vx(e,t,n){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let r=im(e,t);if(r.prevHadScrollback&&r.nextFitsViewport&&r.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&r.cursorAtBottom&&!r.growing){let s=e.screen.height-e.viewport.height+1;for(let a of Nl(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(vx,"shouldFullReset");function Ix(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}i(Ix,"shouldSkipDiff");var jl=class{static{i(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n){if(!this.options.isTTY)return rm(n);let r=vx(t,n,om);return r.reset?Ul(n,r.reason):HI(t,n)}reset(){}};function sm(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}i(sm,"emitPatches");function kx(e,t,n){if(t!==""){let r=$i(t,"");sm(e,r.patches)}if(n!==void 0){let r=go(n,void 0);sm(e,r.patches)}return{style:"",hyperlink:void 0}}i(kx,"resetStyleAndHyperlink");function OI(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(OI,"applyShrink");function DI(e,t,n,r){let o="",s,a=!1;for(let c of Nl(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(!Ix(m,p,g)){if(u<r.viewportY){a=!0;break}if(pa(e,l,u),p){let y=go(s,p.hyperlink);sm(e,y.patches),s=y.current;let T=Bl(o,p.style);Fl(e,p,T.str)&&(o=T.current)}else if(m){let y=kx(e,o,s);o=y.style,s=y.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:o,currentHyperlink:s,needsFullReset:a}}i(DI,"diffPass");function NI(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]=_r;for(let a=0;a<r;a++)s[1+a]=ma;return[s,{dx:-n.x,dy:r}]}let o=t.cursor.y-n.y;return o!==0||n.x!==t.cursor.x?[[_r,{type:"cursorMove",x:t.cursor.x,y:o}],{dx:t.cursor.x-n.x,dy:o}]:[[],{dx:0,dy:0}]}):pa(e,t.cursor.x,t.cursor.y)}i(NI,"restoreCursor");function HI(e,t){let n=im(e,t),r=new Oi(e.cursor,t.viewport.width);n.shrinking&&OI(r,e,t);let o=DI(r,e,t,n);return o.needsFullReset?Ul(t,"offscreen"):(kx(r,o.currentStyle,o.currentHyperlink),n.growing&&Wl(r,t,e.screen.height,t.screen.height),NI(r,t),r.diff)}i(HI,"renderIncremental");var BI="\x1B[?25l",FI="\x1B[?25h",WI=`\x1B[2J${wx}`;function UI(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return BI;case"cursorShow":return FI;case"cursorMove":return Tx(e.x,e.y);case"cursorTo":return xx(e.col);case"clear":return Sx(e.count);case"clearTerminal":return WI;case"hyperlink":return da(e.uri)}}i(UI,"patchToBytes");function Gl(e,t){let n="";for(let r of t)n+=UI(r);n.length>0&&e.write(n)}i(Gl,"applyDiff");function Rx(e,t){if(t===void 0)return!1;let n=e.cellLogUpdate.render(e.prevFrame,t);return Gl(e.stdout,n),e.prevFrame=t,!0}i(Rx,"applyCellFrame");function ga(e,t){return{screen:Dl(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}i(ga,"emptyFrame");import jI from"is-in-ci";var Di="\x1B[?2026h",ho="\x1B[?2026l";function Ni(e){return"isTTY"in e&&e.isTTY===!0&&!jI}i(Ni,"shouldSynchronize");var GI=new WeakMap,Ex=GI;import{EventEmitter as uk}from"node:events";import dk from"node:process";import yo,{useState as lm,useRef as Hi,useCallback as dt,useMemo as Bi,useEffect as Vx}from"react";import fk from"cli-cursor";var KI=i(e=>e>=48&&e<=63,"isCsiParameterByte"),VI=i(e=>e>=32&&e<=47,"isCsiIntermediateByte"),Ax=i(e=>e>=64&&e<=126,"isCsiFinalByte");function zI(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(!(KI(s)||VI(s))&&!(s===91&&o===r))return Ax(s)?{sequence:e.slice(t,o+1),nextIndex:o+1}:void 0}return"pending"}i(zI,"parseCsiSequence");function XI(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let o=e.codePointAt(r-1);if(!(o===void 0||!Ax(o)))return{sequence:e.slice(t,r),nextIndex:r}}i(XI,"parseSs3Sequence");function Mx(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return zI(e,t,n);if(r==="O")return XI(e,t,n)}i(Mx,"parseControlSequence");function YI(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(YI,"parseEscapedCodePoint");function qI(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=Mx(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=Mx(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=YI(e,o);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}i(qI,"parseKeypresses");function Kl(){let e="";return{push(t){let n=qI(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(Kl,"createInputParser");import{createContext as QI}from"react";var _x=QI({exit(){}});_x.displayName="InternalAppContext";var Px=_x;import{EventEmitter as JI}from"node:events";import{createContext as ZI}from"react";var ek={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},Lx=ZI({stdin:ek,internal_eventEmitter:new JI,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});Lx.displayName="InternalStdinContext";var $x=Lx;import{createContext as tk}from"react";var nk={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},Ox=tk({stdout:nk,write(){}});Ox.displayName="InternalStdoutContext";var Dx=Ox;import{createContext as rk}from"react";var ok={isTTY:!1,write(){return!0},on(){},off(){}},Nx=rk({stderr:ok,write(){}});Nx.displayName="InternalStderrContext";var Hx=Nx;import{createContext as ik}from"react";var Bx=ik({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});Bx.displayName="InternalFocusContext";var Fx=Bx;import{createContext as sk}from"react";var Wx=sk({setCursorPosition(){}});Wx.displayName="InternalCursorContext";var Ux=Wx;import ck,{PureComponent as lk}from"react";import*as Vl from"node:fs";import{cwd as Kx}from"node:process";import ht from"react";import jx from"stack-utils";import ak from"code-excerpt";var am=i(e=>e?.replace(`file://${Kx()}/`,""),"cleanupPath"),Gx=new jx({cwd:Kx(),internals:jx.nodeInternals()});function cm({error:e}){let t=e.stack?e.stack.split(`
24
- `).slice(1):void 0,n=t?Gx.parseLine(t[0]):void 0,r=am(n?.file),o,s=0;if(r&&n?.line&&Vl.existsSync(r)){let a=Vl.readFileSync(r,"utf8");if(o=ak(a,n.line),o)for(let{line:c}of o)s=Math.max(s,String(c).length)}return ht.createElement(fn,{flexDirection:"column",padding:1},ht.createElement(fn,null,ht.createElement(Vt,{backgroundColor:"red",color:"white"}," ","ERROR"," "),ht.createElement(Vt,null," ",e.message)),n&&r&&ht.createElement(fn,{marginTop:1},ht.createElement(Vt,{dimColor:!0},r,":",n.line,":",n.column)),n&&o&&ht.createElement(fn,{marginTop:1,flexDirection:"column"},o.map(({line:a,value:c})=>ht.createElement(fn,{key:a},ht.createElement(fn,{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(fn,{marginTop:1,flexDirection:"column"},e.stack.split(`
25
- `).slice(1).map(a=>{let c=Gx.parseLine(a);return c?ht.createElement(fn,{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 ${am(c.file)??""} line ${c.line} column ${c.column}`}," ","(",am(c.file)??"",":",c.line,":",c.column,")")):ht.createElement(fn,{key:a},ht.createElement(Vt,{dimColor:!0},"- "),ht.createElement(Vt,{dimColor:!0,bold:!0},a,"\\t"," "))})))}i(cm,"ErrorOverview");var ha=class extends lk{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?ck.createElement(cm,{error:this.state.error}):this.props.children}};var mk=" ",pk="\x1B[Z",gk="\x1B";function zx({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:o,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,m]=lm(!0),[p,g]=lm(void 0),[,y]=lm([]),T=Hi(0),x=Hi(0),b=Hi(new uk);b.current.setMaxListeners(1/0);let I=Hi(void 0),L=Hi(Kl()),$=Hi(void 0),j=dt(()=>{$.current&&(clearImmediate($.current),$.current=void 0)},[]),D=t.isTTY,S=dt(()=>{I.current&&(t.removeListener("readable",I.current),I.current=void 0)},[t]),J=dt(()=>{t.setRawMode(!1),S(),t.unref(),x.current=0,L.current.reset(),j()},[t,S,j]),ce=dt(A=>{D&&x.current>0&&J(),c(A)},[D,J,c]),Te=dt(A=>{if(A===""&&a){ce();return}A===gk&&g(_=>_&&void 0)},[a,ce]),B=dt(A=>{Te(A),b.current.emit("input",A)},[Te]),X=dt(()=>{j(),$.current=setImmediate(()=>{$.current=void 0;let A=L.current.flushPendingEscape();A&&B(A)})},[j,B]),v=dt(()=>{j();let A;for(;(A=t.read())!==null;){let _=L.current.push(A);for(let P of _)B(P)}L.current.hasPendingEscape()&&X()},[t,B,j,X]),M=dt(A=>{if(!D)throw t===dk.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){x.current===0&&(t.ref(),t.setRawMode(!0),I.current=v,t.addListener("readable",v)),x.current++;return}x.current!==0&&--x.current===0&&J()},[D,t,v,J]),Z=dt((A,_)=>{let P=A.findIndex(Y=>Y.id===_);for(let Y=P+1;Y<A.length;Y++){let we=A[Y];if(we?.isActive)return we.id}},[]),Ce=dt((A,_)=>{let P=A.findIndex(Y=>Y.id===_);for(let Y=P-1;Y>=0;Y--){let we=A[Y];if(we?.isActive)return we.id}},[]),de=dt(()=>{y(A=>(g(_=>{let P=A.find(we=>we.isActive)?.id;return Z(A,_)??P}),A))},[Z]),Be=dt(()=>{y(A=>(g(_=>{let P=A.findLast(we=>we.isActive)?.id;return Ce(A,_)??P}),A))},[Ce]);Vx(()=>{let A=i(P=>{!u||T.current===0||(P===mk&&de(),P===pk&&Be())},"handleTabNavigation");b.current.on("input",A);let _=b.current;return()=>{_.off("input",A)}},[u,de,Be]);let se=dt(()=>{m(!0)},[]),ie=dt(()=>{m(!1)},[]),ne=dt(A=>{y(_=>(_.some(Y=>Y?.id===A)&&g(A),_))},[]),V=dt((A,{autoFocus:_})=>{y(P=>(T.current=P.length+1,[...P,{id:A,isActive:!0}])),_&&g(P=>P??A)},[]),xe=dt(A=>{g(_=>_===A?void 0:_),y(_=>{let P=_.filter(Y=>Y.id!==A);return T.current=P.length,P})},[]),ot=dt(A=>{y(_=>_.map(P=>P.id!==A?P:{id:A,isActive:!0}))},[]),be=dt(A=>{g(_=>_===A?void 0:_),y(_=>_.map(P=>P.id!==A?P:{id:A,isActive:!1}))},[]);Vx(()=>()=>{fk.show(n),D&&x.current>0&&J()},[n,D,J]);let ve=Bi(()=>({exit:ce}),[ce]),$e=Bi(()=>({stdin:t,setRawMode:M,isRawModeSupported:D,internal_exitOnCtrlC:a,internal_eventEmitter:b.current}),[t,M,D,a]),Se=Bi(()=>({stdout:n,write:o}),[n,o]),pt=Bi(()=>({stderr:r,write:s}),[r,s]),Je=Bi(()=>({setCursorPosition:l}),[l]),qe=Bi(()=>({activeId:p,add:V,remove:xe,activate:ot,deactivate:be,enableFocus:se,disableFocus:ie,focusNext:de,focusPrevious:Be,focus:ne}),[p,V,xe,ot,be,se,ie,de,Be,ne]);return yo.createElement(Px.Provider,{value:ve},yo.createElement($x.Provider,{value:$e},yo.createElement(Dx.Provider,{value:Se},yo.createElement(Hx.Provider,{value:pt},yo.createElement(Fx.Provider,{value:qe},yo.createElement(Ux.Provider,{value:Je},yo.createElement(ha,{onError:ce},e)))))))}i(zx,"App");zx.displayName="InternalApp";var Xx=zx;var hk={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function Yx(e){let t=0;for(let n of e)t|=hk[n];return t}i(Yx,"resolveFlags");var dr={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var zl=i(()=>{},"noop"),kk=27,Rk=91,Ek=63,Mk=117,Ak=48,_k=57,Pk=i(e=>e>=Ak&&e<=_k,"isDigitByte"),Qx=i((e,t)=>{if(e[t]!==kk||e[t+1]!==Rk||e[t+2]!==Ek)return;let n=t+3,r=n;for(;n<e.length&&Pk(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===Mk)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),Lk=i(e=>{for(let t=0;t<e.length;t++)if(Qx(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),$k=i(e=>{let t=[],n=0;for(;n<e.length;){let r=Qx(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),um=i(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),Ok=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){xk(this),this.options=t,this.rootNode=Ml("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??Fi.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=yk(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 jl({isTTY:!!t.stdout.isTTY}),this.prevFrame=ga(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?Ck:Sk;this.container=lr.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=wk(this.unmount,{alwaysLast:!1}),Rl()&&lr.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),Pr||(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:Ik()?.columns??80,"getTerminalWidth");resized=i(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){let n=this.lastOutputHeight>0?fr.eraseLines(this.lastOutputHeight):"";n.length>0&&this.options.stdout.write(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=ga(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(um(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=ga(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);Gl(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,bk.DIRECTION_LTR)},"calculateLayout");onRender=i(()=>{if(this.hasPendingThrottledRender=!1,this.isUnmounted)return;!this.cursorHidden&&!Pr&&!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}=hx(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(Pr){c&&this.options.stdout.write(s),this.lastOutput=r,this.lastOutputToRender=r+`
29
- `,this.lastOutputHeight=o;return}if(this.isScreenReaderEnabled){let p=Ni(this.options.stdout);if(p&&this.options.stdout.write(Di),c){let T=this.lastOutputHeight>0?fr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(T+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){p&&this.options.stdout.write(ho);return}let g=this.getTerminalWidth(),y=vk(r,g,{trim:!1,hard:!0});if(c)this.options.stdout.write(y);else{let T=this.lastOutputHeight>0?fr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(T+y)}this.lastOutput=r,this.lastOutputToRender=y,this.lastOutputHeight=y===""?0:y.split(`
30
- `).length,p&&this.options.stdout.write(ho);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=Ni(this.options.stdout);p&&this.options.stdout.write(Di);let g=this.fullStaticOutput+m;if(this.altScreenActive){let y=this.lastOutputHeight>0?fr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(y+g)}else this.options.stdout.write(fr.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?g:m,this.lastOutputHeight=o,this.invalidateCellFrame(),p&&this.options.stdout.write(ho);return}if(c){let p=Ni(this.options.stdout);p&&this.options.stdout.write(Di);let g=this.lastOutputHeight>0?fr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(g+s),this.invalidateCellFrame(),this.applyCellFrame(a),p&&this.options.stdout.write(ho)}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=Rx(n,t);return this.prevFrame=n.prevFrame,r},"applyCellFrame");invalidateCellFrame=i(()=>{this.cellLogUpdate.reset(),this.prevFrame=ga(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");render(t){let n=qx.createElement(Ri.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},qx.createElement(Xx,{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?lr.updateContainer(n,this.container,null,zl):(lr.updateContainerSync(n,this.container,null,zl),lr.flushSyncWork())}writeToStdout(t){if(this.isUnmounted)return;if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(Pr){this.options.stdout.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.options.stdout.write(t),this.invalidateCellFrame();return}let n=Ni(this.options.stdout);n&&this.options.stdout.write(Di);let r=this.lastOutputHeight>0?fr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(r+t),this.restoreLastOutput(),n&&this.options.stdout.write(ho)}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(Pr){this.options.stderr.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.options.stderr.write(t),this.invalidateCellFrame();return}let n=Ni(this.options.stdout);n&&this.options.stdout.write(Di);let r=this.lastOutputHeight>0?fr.eraseLines(this.lastOutputHeight):"";r.length>0&&this.options.stdout.write(r),this.options.stderr.write(t),this.restoreLastOutput(),n&&this.options.stdout.write(ho)}unmount(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(Fi.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{}Pr&&this.options.stdout.write(this.lastOutput+`
32
- `)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?lr.updateContainer(null,this.container,null,zl):(lr.updateContainerSync(null,this.container,null,zl),lr.flushSyncWork()),Ex.delete(this.options.stdout);let{exitResult:s}=this,a=i(()=>{um(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!um(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()},Fi.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!Pr&&!this.options.debug){let t=this.lastOutputHeight>0?fr.eraseLines(this.lastOutputHeight):"";t.length>0&&this.options.stdout.write(t),this.invalidateCellFrame()}}patchConsole(){this.options.debug||(this.restoreConsole=Tk((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=Fi.env.TERM??"",s=Fi.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in Fi.env||o==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!Pr&&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=$k(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);Lk(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[>${Yx(t)}u`),this.kittyProtocolEnabled=!0}},Jx=Ok;var ya=class{static{i(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new Jx(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 Xl=new WeakMap,Nk={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},Hk={isTTY:!1,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},Bk={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function Fk(e={}){return e instanceof Dk?{stdout:e}:e}i(Fk,"getOptions");function Wk(e,t,n){let r=Xl.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(),Xl.set(e,r)),r}i(Wk,"getInstance");function Yl(e){return Xl.get(e)}i(Yl,"getRendererInstance");function dm(e,t){let n={stdout:Nk,stdin:Bk,stderr:Hk,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...Fk(t)},r=Wk(n.stdout,()=>new ya(n),n.concurrent??!1);return r.render(e),{rerender:r.render,unmount(){r.unmount()},waitUntilExit:r.waitUntilExit,cleanup:i(()=>{Xl.delete(n.stdout)},"cleanup"),clear:r.clear}}i(dm,"render");var Zx=fn,ew=Vt,tw=Vf;import{Buffer as jk}from"node:buffer";var Gk=/^(?:\x1b)([a-zA-Z0-9])$/,Kk=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,rw={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"},ow=[...Object.values(rw),"backspace"],Vk=i(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),zk=i(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),iw=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,Xk=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,Yk={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},qk={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"},nw={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"},sw=i(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),fm=i(e=>sw(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function aw(e){return e===3?"release":e===2?"repeat":"press"}i(aw,"resolveEventType");function cw(e){return{ctrl:!!(e&dr.ctrl),shift:!!(e&dr.shift),meta:!!(e&dr.meta),option:!!(e&dr.alt),super:!!(e&dr.super),hyper:!!(e&dr.hyper),capsLock:!!(e&dr.capsLock),numLock:!!(e&dr.numLock)}}i(cw,"parseKittyModifiers");function Qk(e){let t=iw.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(!sw(n))return null;let a;s&&(a=s.split(":").map(u=>fm(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):nw[n]?(c=nw[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=fm(n).toLowerCase(),l=!0),l&&!a&&(a=fm(n)),{name:c,...cw(r),eventType:aw(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}i(Qk,"parseKittyKeypress");function Jk(e){let t=Xk.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==="~"?qk[n]:Yk[s];return a?{name:a,...cw(r),eventType:aw(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}i(Jk,"parseKittySpecialKey");function mm(e=""){let t=e,n;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="");let r=Qk(t);if(r)return r;let o=Jk(t);if(o)return o;if(iw.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=Gk.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=Kk.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=rw[c]??"",s.shift=Vk(c)||s.shift,s.ctrl=zk(c)||s.ctrl}return s}i(mm,"parseKeypress");var tR=50;function Ql(e){return{columns:e?.columns??80,rows:e?.rows??24}}i(Ql,"resolveTerminalSize");var Lr=Zk(null),pm={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")};var fw={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function nR(e){for(let t of e)if(t.rawMode)return!0;return!1}i(nR,"hasRawModeSubscribers");function rR({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&&nR(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(rR,"createTerminalInputController");var oR=i(({children:e,runtime:t})=>{let[n,r]=eR(()=>t.terminalSize);Wi(()=>{if(r(Ql(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=i(()=>{r(Ql(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let o=dw(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=lw(()=>rR({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);Wi(()=>()=>{s.dispose()},[s]);let a=lw(()=>({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 uw(Lr.Provider,{value:a,children:e})},"TuiRuntimeProvider");function iR(e){let t=e?.stdout??pm,n=e?.stdin??fw,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:Ql(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(iR,"createRuntimeValue");function Jl(e,t){let n=iR(t),r=dm(uw(oR,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}i(Jl,"render");var k=Zx,C=ew,Ui=tw;function sR(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&&ow.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(sR,"createCompatKeypress");function Zl(e,t={}){let{isActive:n=!0}=t,r=ql(e),o=ql(null),s=ql(null);Wi(()=>{r.current=e},[e]),Wi(()=>{if(!n){o.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return o.current=Kl(),()=>{o.current?.reset(),o.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=dw(c=>{let{input:l,key:u}=sR(mm(c));l==="c"&&u.ctrl||r.current(l,u)},[]);wa(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)},tR))},{isActive:n,rawMode:!0})}i(Zl,"useInput");function jn(){return{stdout:xo(Lr)?.stdout??pm}}i(jn,"useStdout");function xa(){let e=xo(Lr),t=e?.stdin??fw,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}i(xa,"useStdin");function $r(){return{exit:xo(Lr)?.exit??(()=>{})}}i($r,"useApp");function ji(){return xo(Lr)?.stdout??pm}i(ji,"useTerminalOutput");function Gi(){let e=ji();return xo(Lr)?.terminalSize??Ql(e)}i(Gi,"useTerminalSize");function Ki(){let e=ji();return xo(Lr)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}i(Ki,"useTerminalWrite");function wa(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,o=xo(Lr),{stdin:s,setRawMode:a,isRawModeSupported:c}=xa(),l=ql(e);Wi(()=>{l.current=e},[e]),Wi(()=>{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(wa,"useTerminalInput");import{jsx as fR}from"react/jsx-runtime";import{useInsertionEffect as mR,useMemo as pR}from"react";var aR="\x1B[?1049h",cR="\x1B[?1049l";var lR="\x1B[2J",uR="\x1B[?1000h\x1B[?1002h\x1B[?1006h",dR="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function eu(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return aR+(n?lR:"")+"\x1B[H"+(t?uR:"")}i(eu,"buildAlternateScreenEnterSequence");function tu(e={}){return(e.mouseTracking!==!1?dR:"")+cR}i(tu,"buildAlternateScreenExitSequence");var gm=i(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let o=ji(),{rows:s}=Gi(),a=Ki(),c=pR(()=>n&&o.isTTY===!0,[n,o]);return mR(()=>{if(!c)return;let l=Yl(o);if(l?.setShellMode?.("virtual",t),l?.beginShellTransition?.("enter-alt-screen"),!!a(eu({mouseTracking:t,clearOnEnter:r})))return l?.setAltScreenActive?.(!0,t),()=>{l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),l?.setAltScreenActive?.(!1),a(tu({mouseTracking:t}))}},[r,c,t,o,a]),fR(k,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as Or,jsxs as hw}from"react/jsx-runtime";import{jsx as gR}from"react/jsx-runtime";import hR,{useEffect as hm,useImperativeHandle as yR,useMemo as xR,useRef as ym,useCallback as xm,useState as wR}from"react";function mw(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:wm(t,t.scrollTop)}}i(mw,"normalizeScrollSnapshot");function pw(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(pw,"areSnapshotsEqual");function TR(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(TR,"areWindowsEqual");function wm(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(wm,"clampScrollTop");function gw(e){let t=Math.max(0,e.viewportHeight),n=wm(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(gw,"resolveScrollWindow");function SR(e){let t=wm(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}i(SR,"resolveNativeScrollTop");var Tm=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:y})=>{let T=ym(null),x=ym(new Set),b=ym(mw({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l})),[I,L]=wR(()=>gw(b.current)),$=xm(()=>{for(let B of x.current)B()},[]),j=xm((B,X=!0)=>{let v=b.current,M=mw(B),Z=gw(M);return b.current=M,L(Ce=>TR(Ce,Z)?Ce:Z),X&&!pw(v,M)&&$(),{previous:v,snapshot:M,window:Z,changed:!pw(v,M)}},[$]);hm(()=>{let B=b.current,X={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:B.clampMin,clampMax:B.clampMax,sticky:l},v=j(X);v.previous.sticky!==l&&p?.(l),v.window.scrollTop!==s&&m?.(v.window.scrollTop)},[j,p,m,a,s,l,c]);let D=xm(()=>{let B=T.current;if(!B)return;let X=typeof B.scrollHeight=="number"?Math.max(0,Math.floor(B.scrollHeight)):void 0,v=typeof B.scrollViewportHeight=="number"?Math.max(0,Math.floor(B.scrollViewportHeight)):void 0,M=typeof B.scrollViewportTop=="number"?Math.max(0,Math.floor(B.scrollViewportTop)):void 0;if(X===void 0||v===void 0||M===void 0)return;let Z=Math.max(0,X-v-M),Ce=j({...b.current,scrollTop:Z,scrollHeight:X,viewportHeight:v});Ce.changed&&Ce.window.scrollTop!==Ce.previous.scrollTop&&m?.(Ce.window.scrollTop)},[j,m]);hm(()=>{D()},[D]);let S=xR(()=>({scrollTo(B){let X=j({...b.current,scrollTop:B,pendingDelta:0,sticky:!1});X.previous.sticky!==!1&&p?.(!1),m?.(X.window.scrollTop)},scrollBy(B){let X=j({...b.current,scrollTop:b.current.scrollTop+B,pendingDelta:b.current.pendingDelta+Math.floor(B),sticky:!1});X.previous.sticky!==!1&&p?.(!1),m?.(X.window.scrollTop)},scrollToElement(B,X=0){let v=j({...b.current,scrollTop:B-X,pendingDelta:0,sticky:!1});v.previous.sticky!==!1&&p?.(!1),m?.(v.window.scrollTop)},scrollToBottom(){let B=j({...b.current,scrollTop:0,pendingDelta:0,sticky:!0});m?.(B.window.scrollTop),B.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return b.current.scrollTop},getPendingDelta(){return b.current.pendingDelta},getScrollHeight(){return T.current?.scrollHeight??b.current.scrollHeight},getViewportHeight(){return T.current?.scrollViewportHeight??I.viewportHeight},getViewportTop(){return T.current?.scrollViewportTop??I.viewportTop},isSticky(){return b.current.sticky},subscribe(B){return x.current.add(B),()=>{x.current.delete(B)}},setClampBounds(B,X){let v=j({...b.current,clampMin:B,clampMax:X});v.window.scrollTop!==v.previous.scrollTop&&m?.(v.window.scrollTop)}}),[j,m,p]);yR(u,()=>S,[S]),hm(()=>{g?.(I)},[g,I]);let J=y?y(I):e,ce=Math.max(0,c+o),Te=SR(b.current);return hR.createElement("ink-box",{ref:T,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:ce,paddingTop:o,overflowX:"visible",overflowY:"scroll"},scrollTop:Te,scrollHeight:b.current.scrollHeight,scrollViewportHeight:b.current.viewportHeight,scrollViewportTop:I.viewportTop,pendingScrollDelta:b.current.pendingDelta,virtualScrollWindowed:!!y,...b.current.clampMin!==void 0?{scrollClampMin:b.current.clampMin}:{},...b.current.clampMax!==void 0?{scrollClampMax:b.current.clampMax}:{},...l?{stickyScroll:!0}:{}},gR(k,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:J}))},"ScrollBox");var CR=80;function Ta(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}i(Ta,"resolveFullscreenChromeSlotText");function nu(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:CR)-2);return Math.max(1,Kt(e.split(`
34
- `),n,0,0).visualLines.length)}i(nu,"measureFullscreenChromeSlotRows");var Sm=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:y,onScrollTopChange:T,onStickyChange:x,onWindowChange:b})=>{let I=i((Te,B)=>B?Or(k,{paddingX:1,children:Or(C,{dimColor:Te?.tone!=="accent",children:B})}):null,"renderChromeSlot"),L=Ta(a),$=Ta(c),j=nu(L,l),D=I(a,L),S=s?null:I(c,$),J=Math.max(0,e?t:0),ce=Math.max(0,p-j-J);return hw(k,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?Or(k,{flexDirection:"column",flexShrink:0,children:e}):null,hw(k,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[Or(Tm,{width:l,flexGrow:1,flexShrink:1,paddingTop:j,scrollTop:u,scrollHeight:m,viewportHeight:ce,stickyScroll:g,scrollRef:y,onScrollTopChange:T,onStickyChange:x,onWindowChange:b,renderWindow:r,children:n}),D?Or(k,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:D}):null,S?Or(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:S}):null,s?Or(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),Or(k,{flexDirection:"column",flexShrink:0,children:o})]})},"FullscreenLayout");import vR from"string-width";var IR=200;function kR(e){let t=Math.min(IR,Math.max(1,e));return"-".repeat(t)}i(kR,"generateDivider");function RR(){return Gi().columns}i(RR,"useTerminalWidth");var Cm=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=ru(()=>te(u),[u]),g=RR(),y=m??g,T=vR(r)+1,x=ru(()=>{let S=Math.max(20,y-T);return Kt(e,S,t,n)},[e,y,t,n,T]),b=ru(()=>{if(!x)return null;let[S,J]=jf(x,[t,n]);return{row:S,col:J}},[x,t,n]),I=kR(y),L=s&&a,$=c&&e.some(S=>S.length>0),j=x,D=b;return mn(k,{flexDirection:"column",width:m,children:[Lt(C,{dimColor:!0,children:I}),$?Lt(k,{children:Lt(C,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,j.visualLines.length===0||j.visualLines.length===1&&j.visualLines[0]===""?mn(k,{children:[mn(C,{color:p.colors.primary,children:[r," "]}),L?mn(bR,{children:[Lt(C,{backgroundColor:p.colors.primary,color:"#000000",children:" "}),Lt(C,{dimColor:!0,children:o})]}):Lt(C,{dimColor:!0,children:o})]}):j.visualLines.map((S,J)=>{let ce=J===D.row,Te=J===0?r:" ".repeat(T-1);if(ce&&L){let{before:B,current:X,after:v}=Uy(S,D.col),M=X||" ";return mn(k,{children:[mn(C,{color:p.colors.primary,children:[Te," "]}),Lt(C,{color:p.colors.text,children:B}),Lt(C,{backgroundColor:p.colors.primary,color:"#000000",children:M}),Lt(C,{color:p.colors.text,children:v})]},J)}return mn(k,{children:[mn(C,{color:p.colors.dim,children:[Te," "]}),Lt(C,{color:p.colors.text,children:S})]},J)}),Lt(C,{dimColor:!0,children:I})]})},"TextInput"),ER=i(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:o=!0,theme:s="dark"})=>{let a=ru(()=>te(s),[s]);if(!e)return mn(k,{children:[mn(C,{color:a.colors.primary,children:[n," "]}),r&&Lt(C,{dimColor:!0,children:r}),o&&Lt(C,{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 mn(k,{children:[mn(C,{color:a.colors.primary,children:[n," "]}),Lt(C,{color:a.colors.text,children:l}),Lt(C,{backgroundColor:a.colors.primary,color:"#000000",children:u}),Lt(C,{color:a.colors.text,children:m})]})},"SingleLineTextInput");var bm={"[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"}},MR=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,AR=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function _R(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}i(_R,"parseMouseButton");function PR(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}i(PR,"parseModifier");function ou(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(AR);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:_R(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(MR);if(s){let[,l,u,m]=s,p=m||"~",y=bm[o];if(y)return Object.assign(n,y),n;let T="["+l+p+"]",x=bm[T];if(x&&x.name){if(n.name=x.name,u){let b=parseInt(u,10)-1,I=PR(b);Object.assign(n,I)}return n}}let c=bm[o];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),u=ou(l);return n.name=u.name,n}}return n}i(ou,"parseKeypress");var Sa=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=ou(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:r}=t;this.buffer=r;let o=ou(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 yw(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(yw,"isFunctionKey");function LR(e){return e.ctrl||e.meta||yw(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}i(LR,"isPrintable");function $R(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($R,"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 gB={[O.Scheduled]:"\u25CB",[O.Validating]:"\u25CC",[O.AwaitingApproval]:"?",[O.Executing]:"\u25CB",[O.Success]:"\u2713",[O.Error]:"\u2717",[O.Cancelled]:"-"},$t;(function(e){e[e.Low=-100]="Low",e[e.Normal=0]="Normal",e[e.High=100]="High",e[e.Critical=200]="Critical"})($t||($t={}));var vm={streamingState:tn.Idle,currentResponse:"",history:[],pendingToolCalls:[],sessionId:"",provider:"",model:"",isLoading:!1};import OR,{createContext as DR,useContext as NR,useEffect as xw,useCallback as HR,useRef as Im}from"react";var BR=50;function km(){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(km,"createKeypressManager");var ww=DR(null);function iu({children:e,enabled:t=!0}){let{stdout:n}=jn(),r=Im(km()),o=Im(null),s=Im(null),a=HR(c=>{t&&r.current.dispatch(c)},[t]);return xw(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new Sa;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]),wa(c=>{t&&(s.current&&clearTimeout(s.current),o.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{o.current?.feed("",!0)},BR)))},{isActive:t,rawMode:!0}),OR.createElement(ww.Provider,{value:r.current},e)}i(iu,"KeypressProvider");function Rm(){let e=NR(ww);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}i(Rm,"useKeypressManager");function nn(e,t,n=[]){let r=Rm(),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?$t.High:$t.Normal:u??$t.Normal}else a=typeof e=="boolean"?e?$t.High:$t.Normal:e,s=t,c=!0;xw(()=>c?r.register(a,s):void 0,[r,a,c,...o?[]:n])}i(nn,"useKeypress");function pn(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(pn,"createKeyMatcher");var Tw={isEnter:pn({name:"return"}),isEscape:pn({name:"escape"}),isCtrlC:pn({name:"c",ctrl:!0}),isCtrlD:pn({name:"d",ctrl:!0}),isUp:pn({name:"up"}),isDown:pn({name:"down"}),isLeft:pn({name:"left"}),isRight:pn({name:"right"}),isBackspace:pn({name:"backspace"}),isDelete:pn({name:"delete"}),isTab:pn({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 Ca=["plan","accept-edits","auto","auto-in-project"];function zt(e){return e==="auto"||e==="auto-in-project"}i(zt,"isAutoMode");function Vi(e){switch(e){case"plan":return"Plan";case"accept-edits":return"Edits";case"auto":case"auto-in-project":return"Auto"}}i(Vi,"permissionModeDisplayName");var FR='[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 su(e=console.warn){let t=!1;return()=>{t||(t=!0,e(FR))}}i(su,"createAutoInProjectDeprecationEmitter");var gn=new Set(["write","edit"]),Sw=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"]),Cw=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 wo(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(wo,"computeConfirmTools");function Em(e){return e!==void 0&&Ca.includes(e)}i(Em,"isPermissionMode");function Gn(e,t){return Em(e)?e:t}i(Gn,"normalizePermissionMode");import au from"fs";import yt from"path";import va from"os";var Ow=gv(Pw(),1);var Lw=new Set(["/dev/null","nul","NUL"]);function Pm(e){return Lw.has(e)||Lw.has(e.toLowerCase())}i(Pm,"isNullDevice");function ba(e){let t=e.trim();if(!t)return{statements:[],unparseable:!1};if(t.includes("`"))return{statements:[],unparseable:!0};let n;try{n=(0,Ow.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 y=g.op;if(y==="&&"||y==="||"||y===";"){m(y);continue}if(y==="|"){u();continue}if(y==="&"){let T=n[p+1];if(T!==void 0&&typeof T!="string"&&"op"in T&&(T.op===">"||T.op===">>")){let x=n[p+2];if(typeof x!="string"){l=!0,p+=1;continue}a.push($w(`&${T.op}`,x)),p+=2;continue}l=!0;continue}if(qR(y)){let T=null,x=s[s.length-1];x!==void 0&&/^[0-9]+$/.test(x)&&(T=x,s.pop());let b=n[p+1];if(typeof b!="string"){l=!0;continue}a.push($w(T?`${T}${y}`:y,b)),p+=1;continue}if(y==="glob"){let T=g.pattern;typeof T=="string"?s.push(T):l=!0;continue}l=!0;continue}if("comment"in g)break;l=!0}return m(null),{statements:r,unparseable:l}}i(ba,"parseBashCommand");var YR=new Set([">",">>","<","<<","<<<","&>","&>>"]),Dw=/^([0-9]+|&)(>>?|<<?)$/;function qR(e){return YR.has(e)||Dw.test(e)}i(qR,"isRedirectionOp");function $w(e,t){let n=null,r=e,o=Dw.exec(e);return o&&(n=o[1],r=o[2]),{op:e,fd:n,append:r===">>"||e==="&>>",input:r==="<"||r==="<<"||e==="<<<",target:t}}i($w,"parseRedirection");var JR=yt.join(".agent","plan_mode_doc.md"),cu=new Map,lu=null;function ZR(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of Cw)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(ZR,"isSingleBashReadCommand");var eE=/^[a-zA-Z0-9]+$/;function tE(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(!eE.test(r))return!1;return n}i(tE,"isHelpCommand");function Mn(e){if(!e||!e.trim())return!1;if(tE(e))return!0;let t=e.trim().replace(/\\\r?\n/g," "),n=ba(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||!Pm(c.target))return!1;let a=s.argv.join(" ");if(a&&!(r&&s.argv[0]?.toLowerCase()==="cd"&&s.argv.length>=2)&&!ZR(a))return!1}}return!0}i(Mn,"isBashReadCommand");function $m(e){let t=e.trim();return t?Mn(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($m,"getDirectShellBypassBlockReason");var Hw=new Set(["remove-item","set-content","add-content","out-file","new-item","copy-item","move-item","rename-item","ni"]);function An(e){if(!e||!e.trim())return!1;let t=ba(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 Sw)if(c===s||a!==null&&c===a)return!0}for(let s of o)if(Hw.has(s))return!0;for(let s of r.redirections)if(!s.input&&!Pm(s.target))return!0}return!1}i(An,"isBashWriteCommand");function Om(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(Om,"parseAllowedToolPattern");function nE(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e.startsWith(n)}return e===t}i(nE,"matchesBashPatternLegacy");function rE(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e===n}return e===t}i(rE,"matchesBashPatternByExtractedPrefix");async function Dr(e,t,n,r,o){if(e.toLowerCase()!=="bash")return!1;let s=t.command??"",a=[];for(let c of n){let l=Om(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&&rE(c.value,l))return!0;return!1}for(let{pattern:c}of a)if(c&&nE(s,c))return!0;return!1}i(Dr,"isToolCallAllowed");function du(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(du,"generateSavePattern");function Kn(e,t){try{let n=yt.resolve(e),r=yt.resolve(t),o=di(),s=yt.join(r,".kodax");return zi(n,s)||zi(n,o)?!0:!(zi(n,r)||Ww().some(c=>zi(n,c)))}catch{return!1}}i(Kn,"isAlwaysConfirmPath");function Nw(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"&&oE.test(e)):!!(e.startsWith(".")&&/[/\\]/.test(e))}i(Nw,"looksLikePath");var oE=/^\/[A-Za-z][A-Za-z0-9]*(?::[A-Za-z0-9]+)?$/;function iE(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(iE,"legacyRegexPathScan");function fu(e){let t=new Set,n=ba(e);if(!n.unparseable)for(let r of n.statements)for(let o of r.stages){for(let s of o.argv)Nw(s)&&t.add(s);for(let s of o.redirections)Nw(s.target)&&t.add(s.target)}for(let r of iE(e))t.add(r);return Array.from(t)}i(fu,"extractPathsFromCommand");function Dm(e,t){let n=fu(e);for(let r of n)if(Kn(r,t))return!0;return!1}i(Dm,"isCommandOnProtectedPath");function uu(e){let t=yt.normalize(e);return process.platform==="win32"?t.toLowerCase():t}i(uu,"normalizePathForComparison");function sE(e,t){return uu(e)===uu(t)}i(sE,"pathsEqual");function zi(e,t){let n=uu(e),r=uu(t);return n===r||n.startsWith(r+yt.sep)}i(zi,"isPathInsideDirectory");function mu(e,t){try{let n=yt.resolve(t),r=yt.resolve(n,Fw(Bw(e)));return zi(r,n)}catch{return!1}}i(mu,"isPathInsideProject");function aE(e){let t=e.match(/[A-Za-z]:[\\/][^\s;|&<>(){}'"]+|\/[^\s;|&<>(){}'"]+/g);return t?t.filter(n=>!/^(?:\/dev\/|\/proc\/)/i.test(n)):[]}i(aE,"collectAbsolutePathCandidates");function Nm(e){let t=yt.resolve(e),n=cu.get(t);if(n)return n;if(au.existsSync(t)){let c=au.realpathSync.native(t);return cu.set(t,c),c}let r=[],o=t;for(;!au.existsSync(o);){let c=yt.dirname(o);if(c===o)return cu.set(t,t),t;r.unshift(yt.basename(o)),o=c}let s=au.realpathSync.native(o),a=yt.join(s,...r);return cu.set(t,a),a}i(Nm,"resolveExistingPathPrefix");function Bw(e){return e==="~"?va.homedir():e.startsWith(`~${yt.sep}`)||e.startsWith("~/")||e.startsWith("~\\")?yt.join(va.homedir(),e.slice(2)):e}i(Bw,"expandHomeDirectory");function Fw(e){let t=va.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(Fw,"expandSystemTempAlias");function cE(e,t){let n=yt.resolve(t??process.cwd()),r=Fw(Bw(e)),o=yt.isAbsolute(r)?yt.resolve(r):yt.resolve(n,r);return Nm(o)}i(cE,"resolvePermissionPath");function Ww(){if(lu)return lu;let e=new Set,t=[va.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(Nm(n))}catch{}return lu=Array.from(e),lu}i(Ww,"getSystemTempDirectories");function Hm(e){let t=Nm(e??process.cwd());return{projectPlanDoc:yt.join(t,JR),systemTempDirs:Ww()}}i(Hm,"getPlanModeAllowedWritablePaths");function Lm(e,t){let n=cE(e,t),{projectPlanDoc:r,systemTempDirs:o}=Hm(t);return sE(n,r)?!0:o.some(s=>zi(n,s))}i(Lm,"isPlanModeAllowedPath");function lE(e){let{projectPlanDoc:t,systemTempDirs:n}=Hm(e),r=n[0]??va.tmpdir();return`${t} or the system temp directory (${r})`}i(lE,"formatPlanModeAllowedLocations");var uE=new Set(["-a","--append","-i","--ignore-interrupts"]);function dE(e){let t=[];for(let n=1;n<e.argv.length;n+=1){let r=e.argv[n];uE.has(r)||r.startsWith("-")||t.push(r)}return t}i(dE,"collectTeeTargets");function fE(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(fE,"collectPowerShellWriteTargets");function So(e){let t=new Set,n=i(o=>{let s=o?.trim();s&&t.add(s)},"pushTarget");for(let o of fu(e))n(o);let r=ba(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 dE(s))n(c);else if(Hw.has(a))for(let c of fE(s))n(c)}}return Array.from(t)}i(So,"collectBashWriteTargets");function Bm(e,t){if(!An(e))return{dangerous:!1};let n=new Set([...So(e),...aE(e)]);for(let r of n)if(!mu(r,t))return{dangerous:!0,reason:`Command may modify file outside project: ${r}`};return{dangerous:!1}}i(Bm,"getBashOutsideProjectWriteRisk");function mr(e,t,n){let r=lE(n);if(gn.has(e)){let o=typeof t.path=="string"?t.path:"";return o?Lm(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(!An(o))return null;let s=So(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=>!Lm(c,n));return a?`[Blocked] Plan mode only allows bash write operations in ${r}. Blocked target: ${a}`:null}return null}i(mr,"getPlanModeBlockReason");import Nr from"node:path";function Xi(e,t){try{let n=Nr.resolve(e),r=Nr.resolve(t);return n===r?!0:n.startsWith(r+Nr.sep)}catch{return!1}}i(Xi,"isPathUnder");function mE(){try{return di()}catch{return}}i(mE,"safeGetAgentConfigHome");function Uw(e,t){let n=mE();if(n&&Xi(e,n))return"user-kodax";let r=Nr.join(Nr.resolve(t),".kodax");if(Xi(e,r))return"project-kodax"}i(Uw,"resolveProtectedZone");function pE(){let e=new Set;try{let t=pv("node:os");e.add(t.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(pE,"getSystemTempDirs");var gE=new Set(["bash"]),Ia={toolNames:gE,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=pE(),c=Nr.resolve(t);for(let l of fu(n)){let u;try{u=Nr.resolve(t,l)}catch{continue}let m=Uw(u,t);if(m){o.has(u)||(o.add(u),r.push({kind:"protected_path",path:l,zone:m}));continue}if(Kn(l,t)){let p=a.some(y=>Xi(u,y)),g=Xi(u,c);!p&&!g&&!s.has(u)&&(s.add(u),r.push({kind:"outside_project",path:l}))}}for(let l of So(n)){let u;try{u=Nr.resolve(t,l)}catch{continue}Uw(u,t)||Xi(u,c)||a.some(g=>Xi(u,g))||r.push({kind:"shell_redirect_outside",target:l})}return r}};function Ea(e){return e.type==="tool_summary"?{type:"event",text:e.text,icon:"tool"}:e}i(Ea,"seedToHistoryItem");var hE="[Thinking]",yE="[/Thinking]",xE="Untitled Session",jw=50,wE=60,Kw="...",Vw=["[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:"],zw=[/(?:^|\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:/],TE=/(^|\r?\n)\[Thinking\]\r?\n([\s\S]*?)\r?\n\[\/Thinking\](?=\r?\n|$)/g;function SE(e){let t=-1;for(let n of Vw){let r=e.indexOf(n);r>=0&&(t===-1||r<t)&&(t=r)}for(let n of zw){let r=n.exec(e);r&&r.index>=0&&(t===-1||r.index<t)&&(t=r.index)}return t}i(SE,"findControlPlaneCutIndex");function CE(e){return Vw.some(t=>e.includes(t))||zw.some(t=>t.test(e))}i(CE,"hasControlPlaneSignal");function Xw(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(Xw,"collectTextBlocks");function bE(e){return typeof e=="string"?e:Array.isArray(e)?Xw(e).join(`
40
- `):""}i(bE,"extractAssistantTextOnly");function Ra(e,t,n){n.trim().length!==0&&e.push({type:t,text:n})}i(Ra,"pushSeed");function Gw(e){return e.replace(/^\n+/,"").replace(/\n+$/,"")}i(Gw,"stripLegacyTagBoundaryNewlines");function vE(e){let t=e.name,n=e.input;if(!n)return`\u26A1 ${t}`;let r=t==="bash"?ka(String(n.command??"")):t==="read"||t==="write"||t==="edit"?ka(String(n.file_path??n.path??"")):t==="grep"||t==="glob"?ka(String(n.pattern??"")):t==="web_search"||t==="web_fetch"?ka(String(n.query??n.url??"")):void 0;return r?`\u26A1 ${t}(${r})`:`\u26A1 ${t}`}i(vE,"formatToolUseSummary");function ka(e,t=60){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t)}...`:n}i(ka,"truncateToolHint");function IE(e){if(!e.includes(hE)||!e.includes(yE))return e.trim().length>0?[{type:"assistant",text:e}]:[];let t=[],n=0;for(let r of e.matchAll(TE)){let o=r.index??-1,s=r[1]??"",a=r[2]??"";if(o<0)continue;let c=o+s.length;Ra(t,"assistant",Gw(e.slice(n,c))),Ra(t,"thinking",a),n=o+r[0].length}return Ra(t,"assistant",Gw(e.slice(n))),t.length===0?e.trim().length>0?[{type:"assistant",text:e}]:[]:t}i(IE,"parseLegacyAssistantContent");function kE(e){if(typeof e=="string")return IE(e);if(!Array.isArray(e))return[];let t=[],n=[],r=i(()=>{n.length!==0&&(Ra(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&&Ra(t,"thinking",String(o.thinking));break;case"tool_use":if(r(),"name"in o){let s=vE(o);s&&t.push({type:"tool_summary",text:s})}break;case"tool_result":case"redacted_thinking":break;default:break}return r(),t}i(kE,"extractAssistantHistorySeeds");var RE=["You are the Scout role","You are the Generator role","You are the Planner role","You are the Evaluator role"],EE=/\r?\n?\`\`\`kodax[\w-]*[\s\S]*?\`\`\`\s*/g;function ME(e){return RE.some(t=>e.includes(t))}i(ME,"isManagedWorkerPrompt");function AE(e){return e.replace(EE,"").trim()}i(AE,"stripManagedProtocolBlocks");function Ma(e){switch(e.role){case"assistant":return kE(e.content).map(n=>({...n,text:AE(n.text)})).filter(n=>n.text.length>0);case"user":{if(e._synthetic)return[];let t=Aa(e.content);return t.trim().length===0||ME(t)?[]:[{type:"user",text:t}]}case"system":return[];default:return[]}}i(Ma,"extractHistorySeedsFromMessage");function Aa(e){return typeof e=="string"?e:Array.isArray(e)?Xw(e).join(`
42
- `):""}i(Aa,"extractTextContent");function _E(e){let t=e.replace(/\s+/g," ").trim();return t?t.length>jw?`${t.slice(0,jw)}${Kw}`:t:xE}i(_E,"formatSessionTitle");function _a(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.role!=="assistant")continue;let r=bE(n.content);if(r)return r}return""}i(_a,"extractLastAssistantText");function Yw(e,t,n,r){let o=[_a(e),t.trim(),n?.trim()??"",r?.trim()??""];for(let s of o){let a=Co(s);if(a)return a}return""}i(Yw,"resolveCompletedAssistantText");function Co(e){let t=e.trim();if(!t)return"";let n=SE(t);return n===0?"":(n>0?t.slice(0,n):t).trim()}i(Co,"sanitizeUserFacingAssistantText");function qw(e){let t=e.trim();return t.length>0&&Co(t).length===0&&CE(t)}i(qw,"isControlPlaneOnlyAssistantText");function Yi(e){let t=e.find(r=>r.role==="user"),n=t?Aa(t.content):"";return _E(n)}i(Yi,"extractTitle");function PE(e,t=wE){let n=e.replace(/\n/g," "),r=n.length>t?Kw:"";return n.slice(0,t)+r}i(PE,"formatMessagePreview");import d from"chalk";import pu from"fs";import Jw from"path";var gu=fi("config.json");function Zw(){return Jw.join(process.cwd(),".kodax","config.local.json")}i(Zw,"getProjectConfigFile");function hu(e=process.env){let n=Pa(gu).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=Qw(n.classifierModel),l=Qw(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(hu,"loadAutoModeSettings");function Qw(e){if(typeof e!="string")return;let t=e.trim();return t.length===0?void 0:t}i(Qw,"nonEmptyString");function Pa(e){try{if(pu.existsSync(e))return JSON.parse(pu.readFileSync(e,"utf-8"))}catch{}return{}}i(Pa,"readJsonFile");function eT(e,t){pu.mkdirSync(Jw.dirname(e),{recursive:!0}),pu.writeFileSync(e,JSON.stringify(t,null,2))}i(eT,"writeJsonFile");function La(e){let t=Pa(gu);eT(gu,{...t,permissionMode:e})}i(La,"savePermissionModeUser");function qi(){let e=Pa(gu),t=Pa(Zw()),n=e.alwaysAllowTools??[],r=t.alwaysAllowTools??[];return[...new Set([...n,...r])]}i(qi,"loadAlwaysAllowTools");function yu(e,t,n=!1){let r=du(e,t,n);if(!r)return;let o=Zw(),s=Pa(o),a=s.alwaysAllowTools??[];a.includes(r)||eT(o,{...s,alwaysAllowTools:[...a,r]})}i(yu,"saveAlwaysAllowToolPattern");var Qi=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}},LE=new Qi;import hn from"chalk";import{Buffer as oT}from"node:buffer";import{spawn as $E}from"node:child_process";import tT from"node:process";var bo="\x1B",OE="\x07",Fm=`${bo}\\`;function nT(e,t){return e.SSH_CONNECTION?!1:t==="win32"||t==="darwin"||t==="linux"}i(nT,"shouldPreferNativeClipboard");function DE(e,t){let n=oT.from(e,"utf8").toString("base64"),r=t.TERM==="xterm-kitty"?Fm:OE,o=`${bo}]52;c;${n}${r}`;return t.TMUX?`${bo}Ptmux;${o.replaceAll(bo,`${bo}${bo}`)}${Fm}`:t.STY?`${bo}P${o}${Fm}`:o}i(DE,"buildOscSequence");async function xu(e,t,n){return new Promise((r,o)=>{let s=$E(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(xu,"execClipboardCommand");function NE(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=oT.from(e,"utf8");return[["powershell",["-NoProfile","-NonInteractive","-Command",t],n],["pwsh",["-NoProfile","-NonInteractive","-Command",t],n],["cmd",["/c","chcp 65001 >nul & clip"],n]]}i(NE,"buildWindowsClipboardCandidates");async function rT(e,t,n){if(t.SSH_CONNECTION)return!1;switch(n){case"win32":{let r=NE(e);for(let[o,s,a]of r)try{if(await xu(o,s,a))return!0}catch{}return!1}case"darwin":return xu("pbcopy",[],e);case"linux":{let r=[["wl-copy",[]],["xclip",["-selection","clipboard"]],["xsel",["--clipboard","--input"]]];for(let[o,s]of r)try{if(await xu(o,s,e))return!0}catch{}return!1}default:return!1}}i(rT,"tryNativeClipboard");async function HE(e,t){if(!t.TMUX)return!1;let n=t.LC_TERMINAL==="iTerm2"?["load-buffer","-"]:["load-buffer","-w","-"];try{return await xu("tmux",n,e)}catch{return!1}}i(HE,"tryTmuxClipboard");async function vo(e,t={}){let n=t.env??tT.env,r=t.platform??tT.platform,o=e.trimEnd(),s=DE(o,n);if(!o)throw new Error("Nothing to copy.");if(nT(n,r))try{if(await rT(o,n,r))return{path:"native"}}catch{}if(await HE(o,n))return{path:"tmux-buffer"};if(t.terminalWrite?.(s))return{path:"osc52"};if(!nT(n,r))try{if(await rT(o,n,r))return{path:"native"}}catch{}throw new Error("Unable to access any clipboard path.")}i(vo,"copyTextToClipboard");var Wm={name:"copy",description:"Copy last assistant message to clipboard",usage:"/copy",handler:i(async(e,t)=>{let n=_a(t.messages);if(!n){console.log(hn.yellow(`
43
- No assistant message found to copy.`)),console.log(hn.dim("The assistant needs to respond first before you can copy its message."));return}try{await vo(n);let r=n.length>50?n.slice(0,50)+"...":n;console.log(hn.green(`
44
- Copied to clipboard!`)),console.log(hn.dim(`Preview: ${r}`))}catch(r){let o=r instanceof Error?r.message:String(r);console.log(hn.red(`
45
- Failed to copy to clipboard: ${o}`)),console.log(hn.dim("You may need to check clipboard permissions or manually copy the message."))}},"handler"),detailedHelp:i(()=>{console.log(hn.bold(`
46
- /copy - Copy Last Assistant Message
47
- `)),console.log("Usage:"),console.log(hn.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(hn.dim(" User: Explain how async/await works")),console.log(hn.dim(" AI: [responds with explanation]")),console.log(hn.cyan(" /copy")+hn.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 Um={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 Tu(e){let t=e.match(/\r\n|\r|\n/g);return t?t.length:0}i(Tu,"getPastedTextRefNumLines");function BE(e,t){return t===0?`[Pasted text #${e}]`:`[Pasted text #${e} +${t} lines]`}i(BE,"formatPastedTextRef");function FE(e,t){return`[...Truncated text #${e} +${t} lines...]`}i(FE,"formatTruncatedTextRef");var WE=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;function UE(e){let t=[],n=new RegExp(WE.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(UE,"parseReferences");function jE(e,t){let n=UE(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(jE,"expandPastedTextRefs");var GE=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]$/,KE=/^\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/;function VE(e,t){if(t>=e.length)return!0;let n=e[t];return!n||/\s/.test(n)}i(VE,"isAtWordBoundaryAfter");function zE(e,t){if(t===0)return!0;let n=e[t-1];return!n||/\s/.test(n)}i(zE,"isAtWordBoundaryBefore");function Su(e,t){if(t<=0||!VE(e,t))return null;let r=e.slice(0,t).match(GE);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(Su,"findPlaceholderBeforeCursor");function Cu(e,t){if(t>=e.length||!zE(e,t))return null;let r=e.slice(t).match(KE);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(Cu,"findPlaceholderAfterCursor");function iT(e){return e.length>800||Tu(e)>2}i(iT,"shouldReplacePasteWithPlaceholder");function sT(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=Tu(a),l=FE(t,c);return{truncatedText:o+l+s,placeholderContent:a}}i(sT,"maybeTruncateLongInput");var jm=class{static{i(this,"PasteStore")}contents=new Map;nextId=1;registerText(t){let n=this.nextId++,r=Tu(t);return this.contents.set(n,{id:n,type:"text",content:t}),{id:n,placeholder:BE(n,r),numLines:r}}registerTruncatedText(t){let n=this.nextId++,r=Tu(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 jE(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())}},wu=null;function aT(){return wu===null&&(wu=new jm),wu}i(aT,"getOrCreateModulePasteStore");function bu(){return wu??void 0}i(bu,"getActivePasteStore");import{createHash as XE}from"node:crypto";import{mkdir as YE,readdir as qE,readFile as QE,stat as JE,unlink as ZE,writeFile as eM}from"node:fs/promises";import*as Gm from"node:path";var tM="paste-cache",nM=720*60*60*1e3;function Km(){return fi(tM)}i(Km,"getPasteCacheDir");function cT(e){return Gm.join(Km(),`${e}.txt`)}i(cT,"getPastePath");function lT(e){return XE("sha256").update(e).digest("hex").slice(0,16)}i(lT,"hashPastedText");async function uT(e,t){try{let n=Km();return await YE(n,{recursive:!0}),await eM(cT(e),t,{encoding:"utf8",mode:384}),!0}catch{return!1}}i(uT,"storePastedText");async function vu(e){try{return await QE(cT(e),{encoding:"utf8"})}catch{return null}}i(vu,"retrievePastedText");async function dT(e=nM){let t=Km(),n=Date.now()-e,r=0,o=0,s;try{s=await qE(t)}catch{return{scanned:r,removed:o}}for(let a of s){if(!a.endsWith(".txt"))continue;r+=1;let c=Gm.join(t,a);try{(await JE(c)).mtimeMs<n&&(await ZE(c),o+=1)}catch{}}return{scanned:r,removed:o}}i(dT,"cleanupOldPastes");import*as Qm from"path";import*as fT from"os";function rM(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i(rM,"escapeRegExp");function oM(e,t){if(!e)return;let n=e.trim();if(!n.startsWith("/"))return;let r=new RegExp(`^/${rM(t)}(?:\\s+)?`,"i"),o=n.replace(r,"").trim();return o.length>0?o:void 0}i(oM,"deriveArgumentHintFromUsage");function Vm(e,t="builtin"){return{...e,source:e.source??t,userInvocable:e.userInvocable??!0,disableModelInvocation:e.disableModelInvocation??!1,argumentHint:e.argumentHint??oM(e.usage,e.name)}}i(Vm,"toCommandDefinition");function zm(e){for(let t of Xm)try{let n=Vm(t,"builtin");e.register(n)}catch(n){console.error(`Failed to register command "${t.name}":`,n)}}i(zm,"registerBuiltinCommands");import*as pr from"fs";import*as Io from"path";function iM(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(iM,"normalizeAliases");function sM(e){if(e==="critical"||e==="high"||e==="medium"||e==="low")return e}i(sM,"normalizePriority");function aM(e){return{disableModelInvocation:e["disable-model-invocation"]===!0,userInvocable:e["user-invocable"]!==!1,allowedTools:by(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:vy(e.hooks),frontmatter:e}}i(aM,"buildExecutionMetadata");function cM(e,t){try{let n=pr.readFileSync(e,"utf-8"),[r,o]=Cy(n),s=r??{},a=Io.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:iM(s.aliases),priority:sM(s.priority),content:o.trim(),location:t,path:e,frontmatter:s,execution:aM(s)}}catch(n){console.error(`Error parsing command file ${e}:`,n);return}}i(cM,"parseCommandFile");function Ym(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(!pr.existsSync(s))continue;let c=Io.resolve(s);try{c=pr.realpathSync.native?.(s)??pr.realpathSync(s)}catch{c=Io.resolve(s)}if(!n.has(c)){n.add(c);try{let l=pr.readdirSync(s);for(let u of l){if(!u.endsWith(".md"))continue;let m=Io.join(s,u),p=cM(m,a);p&&t.push(p)}}catch(l){console.error(`Error scanning directory ${s}:`,l)}}}return t}i(Ym,"discoverCommands");function qm(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(qm,"registerDiscoveredCommands");function mT(e,t){zm(e);try{let n=fT.homedir(),r=t??process.cwd(),o=Ym([{path:Qm.join(r,".kodax","commands"),location:"project"},{path:fi("commands"),location:"user"},{path:Qm.join(n,".agents","commands"),location:"user"}]);qm(o,e)}catch(n){console.error("Failed to discover commands:",n)}}i(mT,"registerAllCommands");import{execFile as lM}from"child_process";import uM from"fs";import Jm from"path";import{promisify as dM}from"util";var fM=dM(lM);function Hr(e){if(!(!e||!e.trim()))return Jm.resolve(e).replace(/\\/g,"/")}i(Hr,"normalizePath");async function $a(e,t){try{let{stdout:n}=await fM("git",t,{cwd:e,windowsHide:!0,maxBuffer:1048576}),r=n.trim();return r||void 0}catch{return}}i($a,"gitStdout");function mM(e){let t=Hr(e);if(t)return Jm.posix.basename(t)===".git"?Jm.posix.dirname(t):t}i(mM,"deriveCanonicalRepoRoot");async function Ji(e={}){let t=Hr(e.cwd??process.cwd())??process.cwd().replace(/\\/g,"/"),n=Hr(await $a(t,["rev-parse","--show-toplevel"])),r=await $a(n??t,["rev-parse","--path-format=absolute","--git-common-dir"])??await $a(n??t,["rev-parse","--git-common-dir"]),o=await $a(n??t,["branch","--show-current"])??await $a(n??t,["rev-parse","--abbrev-ref","HEAD"]);return{canonicalRepoRoot:mM(r)??n,workspaceRoot:n,executionCwd:t,branch:o&&o!=="HEAD"?o:void 0,workspaceKind:e.workspaceKind??"detected"}}i(Ji,"inspectWorkspaceRuntime");function Iu(e,t){return!e?.canonicalRepoRoot||!t?.canonicalRepoRoot?!1:Hr(e.canonicalRepoRoot)===Hr(t.canonicalRepoRoot)}i(Iu,"isSameCanonicalRepo");function pT(e){return!!(e?.workspaceRoot&&uM.existsSync(e.workspaceRoot))}i(pT,"workspaceExists");function Oa(e){let t=Hr(e.runtimeInfo?.workspaceRoot??e.gitRoot),n=Hr(e.runtimeInfo?.executionCwd??t),r=Hr(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(Oa,"resolveSessionRuntimeInfo");function yn(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(yn,"formatWorkspaceTruth");function pM(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(pM,"summarizeAgentsFiles");function gM(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(gM,"createManualCompactionConfig");function Zm(e){e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace unchanged: ${yn(e.runtimeInfo)}`)):console.log(d.dim(" Workspace unchanged."))}i(Zm,"printWorkspaceUnchangedNote");var Xm=[{name:"help",aliases:["h","?"],description:"Show all available commands",usage:"/help [command]",handler:i(async e=>{e.length>0?kM(e[0]):IM()},"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=bu();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 vu(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 Tl(t.gitRoot),s=r.provider,a=ci(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??io(t.messages),m=gM(o,u,l);console.log(d.dim(`
87
- [Compacting conversation...]`)),n.startCompacting?.();try{let p=await Ty(t.messages,m,a,l,c,void 0,u,ky,Ry);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=pM(o),a=sr(),c=a?Zi(a).loadedExtensions.length:0,l=a?Zi(a).failures.length:0,u=0,m=0;if(a){await a.reloadExtensions({continueOnError:!0});let p=Zi(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=sr();if(!e){console.log(d.yellow(`
102
- [No active extension runtime]
103
- `));return}let t=Zi(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=PM(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 RM(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=sr();if(!t){console.log(d.yellow(`
108
- [No extension runtime active \u2014 MCP is not available]`));return}let r=Zi(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 na({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace,probePremium:!0});wT(s);return}if(o==="warm"){let s=await my({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});vM(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=TM(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=ku({mode:s},{repoIntelligenceMode:s},n,r);ko(`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=SM(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=ku({trace:a},{repoIntelligenceTrace:a},n,r);ko(`Repo intelligence trace: ${a?"on":"off"}`,c);return}if(o==="endpoint"){if(e.length===1){let c=await na({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=gT(e[1]),a=ku({endpoint:s},{repointelEndpoint:s??void 0},n,r);ko(`Repointel endpoint: ${s??"default"}`,a);return}if(o==="bin"){if(e.length===1){let c=await na({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=gT(e.slice(1).join(" ")),a=ku({bin:s},{repointelBin:s??void 0},n,r);ko(`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=Gn(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];Ca.includes(o)?(r.permissionMode=o,n.setPermissionMode?.(o),La(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]`)),Zm(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]`)),Zm(t)):(await n.deleteSession?.(e[0]),console.log(d.green(`
172
- [Session deleted: ${e[0]}]`)),Zm(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=Df().providerModels;if(e.length===0){console.log(d.bold(`
175
- Available Providers:
176
- `));let c=Of(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(` ! ${Pf(l.capabilityProfile)}`));let y=Ti(l.name,o),T=p?r.model:null;for(let x of y){let I=p&&(T===x||!T&&x===l.model)?d.cyan(">"):" ";console.log(` ${I} ${x}`)}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=Ti(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}ar({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(!li(l)){console.log(d.red(`
183
- [Unknown provider: ${l}]`)),console.log(d.dim(`Available: ${ui().join(", ")}
184
- `));return}let m=Ti(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}ar({provider:l,model:u}),n.switchProvider?.(l,u),console.log(d.cyan(`
187
- [Switched to ${l}/${u}] (saved)`));return}let a=s;li(a)?(ar({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: ${ui().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(!li(s)){console.log(d.red(`
193
- [Unknown provider: ${s}]`)),console.log(d.dim(`Available: ${ui().join(", ")}
194
- `));return}let c=Oy(s,a);if(!c){console.log(d.red(`
195
- [Provider details unavailable: ${s}]`)),console.log();return}let l=Hy(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: ${Dy(c.sourceKind)}`)),console.log(),console.log(d.bold("Capability Matrix:"));for(let u of Ny(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=co(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(Lf(s))}`)),console.log(d.dim(`Actual execution: ${$f(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"||oo.includes(o)){let s=o==="on"?"auto":o==="off"?"off":o,a=hT(s,n,r);ko(`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=co(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(Lf(a))}`)),console.log(d.dim(`Actual execution: ${$f(r.reasoningMode,a)}`)),console.log(d.dim(`Usage: /reasoning off|auto|quick|balanced|deep
207
- `));return}let o=e[0].toLowerCase();if(!oo.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=hT(o,n,r);ko(`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=CM(s,n,r);ko(`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"),La("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 xT(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 xT(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")},Wm,Um],hM={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 yM(e){let t=Ru();return e.map(n=>t.get(n)).filter(n=>n!==void 0).filter(n=>n.userInvocable!==!1)}i(yM,"getCommandsForCategory");function xM(e){return e!=="off"}i(xM,"reasoningModeToLegacyThinking");var wM=["auto","off","oss","premium-shared","premium-native"];function TM(e){return e&&wM.includes(e)?e:null}i(TM,"normalizeRepoIntelligenceMode");function gT(e){let t=e?.trim();return!t||t==="default"||t==="reset"||t==="clear"?null:t}i(gT,"normalizeRuntimeOverride");function SM(e,t){return e?e==="toggle"?!t:e==="on"||e==="true"||e==="1"?!0:e==="off"||e==="false"||e==="0"?!1:null:null}i(SM,"resolveToggleFlag");function ep(e){try{return ar(e),{saved:!0}}catch(t){return{saved:!1,error:t instanceof Error?t:new Error(String(t))}}}i(ep,"persistUserConfig");function ko(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(ko,"printPersistedCommandStatus");function hT(e,t,n){let r=xM(e),o=ep({reasoningMode:e,thinking:r});return t.setReasoningMode?t.setReasoningMode(e):(n.reasoningMode=e,n.thinking=r),o}i(hT,"applyReasoningMode");function CM(e,t,n){let r=ep({agentMode:e});return t.setAgentMode?t.setAgentMode(e):n.agentMode=e,r}i(CM,"applyAgentMode");function ku(e,t,n,r){let o=ep(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(ku,"applyRepoIntelligenceRuntimeConfig");function bM(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(bM,"formatRepoIntelligenceSummary");function wT(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(wT,"printRepoIntelligenceInspection");function vM(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`)),wT(e)}i(vM,"printRepoIntelligenceWarmResult");function yT(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(yT,"printCommandSection");function IM(){console.log(d.bold(`
232
- Available Commands:
233
- `));let e=Ru(),t=new Set;for(let[r,o]of Object.entries(hM)){let s=yM(o);if(s.length!==0){for(let a of s)t.add(a.name.toLowerCase());yT(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 MM()){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"])yT(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(IM,"printHelp");function kM(e){Ro.size===0&&tp();let t=Ro.get(e.toLowerCase());if(!t){let n=TT(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: ${AM(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(kM,"printDetailedHelp");async function RM(e,t,n=[]){let r=n[0]?.toLowerCase(),o=e.contextTokenSnapshot?.currentTokens??io(e.messages),s=e.contextTokenSnapshot?.source??"estimate",a=$y(t.provider),c=xl(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=Pf(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 na({mode:t.repoIntelligenceMode,trace:t.repoIntelligenceTrace});console.log(d.dim(` Repo Intel: ${d.cyan(bM(l))}`)),e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace: ${d.cyan(yn(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(RM,"printStatus");async function xT(e,t){let n=ir(t.gitRoot);n.size===0&&await ao(t.gitRoot),EM(n.listUserInvocable())}i(xT,"handleSkillNamespaceCommand");function EM(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(EM,"printSkillsListPiMonoStyle");var Ro=new Qi;function tp(e){Ro.size>0||mT(Ro,e)}i(tp,"initCommandRegistry");function Ru(e){return tp(e),Ro}i(Ru,"getCommandRegistry");function MM(){return sr()?.listCommands().filter(t=>t.metadata?.userInvocable!==!1)??[]}i(MM,"getActiveExtensionCommands");function TT(e){let t=sr(),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(TT,"getActiveExtensionCommand");function AM(e){return e.usage??`/${e.name}`}i(AM,"formatExtensionCommandUsage");function _M(e){return Array.isArray(e)?e.map(t=>String(t)).join(", "):e&&typeof e=="object"?JSON.stringify(e):String(e)}i(_M,"formatExtensionDiagnosticValue");function PM(e){if(!e)return;let t=Object.entries(e).filter(([,n])=>n!==void 0).map(([n,r])=>`${n}=${_M(r)}`);return t.length>0?t.join(" | "):void 0}i(PM,"formatExtensionDiagnosticMetadata");function Zi(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(Zi,"getExtensionRuntimeDiagnostics");function LM(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(LM,"toExtensionInvocationRequest");async function $M(e,t,n){let r=sr();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(()=>Zi(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=LM(e,o);return s?{invocation:s}:!0}i($M,"executeExtensionCommand");function es(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(es,"parseCommand");async function ts(e,t,n,r){if(Ro.size===0&&tp(t.gitRoot),e.skillInvocation)return await OM({command:e.skillInvocation.name,args:e.args},t);let o=Ro.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=TT(e.command);if(s)try{return await $M(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(ts,"executeCommand");async function OM(e,t){let n=ir(t.gitRoot),r=e.command,o=e.args.join(" ");n.size===0&&await ao(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 Iy(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(OM,"executeSkillCommand");import{jsx as qM}from"react/jsx-runtime";import{useState as QM,useEffect as RT,useCallback as Fr,useMemo as ET,createContext as JM,useContext as MT}from"react";import*as Eu from"fs";import*as np from"path";function Br(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(Br,"findCommandSlashIndex");var Eo=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:np.join(c,s.slice(0,l)),m=l===-1?s:s.slice(l+1);try{let g=(await this.readdir(u)).filter(y=>y.toLowerCase().startsWith(m.toLowerCase()));for(let y of g){let T=np.join(u,y),x=await this.isDirectory(T),b=l===-1?y:s.slice(0,l+1)+y;a.push({text:"@"+b+(x?"/":""),display:y+(x?"/":""),description:x?"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=>{Eu.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=>{Eu.stat(t,(r,o)=>{n(!r&&o.isDirectory())})})}},Da=class{static{i(this,"CommandCompleter")}commands;constructor(){this.commands=new Map,this.loadCommands()}loadCommands(){for(let n of Ru().getAll())n.userInvocable!==!1&&this.commands.set(n.name,{description:n.description,aliases:n.aliases??[]});let t=sr();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=Br(r);return o===-1?!1:!r.slice(o).includes(" ")}async getCompletions(t,n){let r=t.slice(0,n),o=Br(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 ST(e){let t=new Eo(e),n=new Da;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(ST,"createCompleter");var Na=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=ir(this.gitRoot);return n.size===0&&await ao(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 DM=[{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"}],Mu=[{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"}],CT=Mu.slice(2).concat([{name:"off",description:"Disable reasoning",type:"enum"}]);function NM(e){if(e&&e.includes("/")){let t=e.indexOf("/"),n=e.slice(0,t),r=e.slice(t+1);if(li(n))try{return Ti(n).filter(s=>!r||s.toLowerCase().includes(r.toLowerCase())).map(s=>({name:`${n}/${s}`,description:s,type:"enum"}))}catch{}return[]}return ui().map(t=>({name:t,description:`Switch to ${t} provider`,type:"enum"}))}i(NM,"getModelArgs");var bT=[{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"}],rp=[{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"}],op=[{name:"all",description:"Delete ALL sessions",type:"enum"}],HM=[{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"}],BM=[{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"}],FM=[{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"}],vT=[{name:"default",description:"Clear the override and use the default value again",type:"enum"}];function WM(e){let[t=""]=e,n=t.toLowerCase(),r=e.length===1&&e[0]===""?0:e.length;return r<=1?HM:r>2?[]:n==="mode"?BM:n==="trace"?FM:n==="endpoint"?[...vT,{name:fy,description:"Default local repointel daemon endpoint",type:"string"}]:n==="bin"?vT:[]}i(WM,"getRepointelArgs");var UM=new Map([["mode",DM],["thinking",Mu],["think",Mu],["t",Mu],["reasoning",CT],["reason",CT],["plan",bT],["p",bT],["status",rp],["info",rp],["ctx",rp],["delete",op],["rm",op],["del",op]]),jM=new Set(["model","m"]),GM=new Set(["repointel","ri"]);function ip(e,t,n=[]){let r=e.toLowerCase();return jM.has(r)?NM(t):GM.has(r)?WM(n):UM.get(r)??[]}i(ip,"getCommandArguments");var Au=class{static{i(this,"ArgumentCompleter")}canComplete(t,n){let r=t.slice(0,n),o=Br(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 ip(c).length>0}async getCompletions(t,n){let r=t.slice(0,n),o=Br(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=ip(c,p,u);if(!g||g.length===0)return[];let y=new Set(u.slice(0,-1).map(x=>x.toLowerCase()));return g.filter(x=>!y.has(x.name.toLowerCase())).filter(x=>!p||x.name.includes("/")?!0:x.name.toLowerCase().includes(p)).map(x=>({text:x.name,display:x.name,description:x.description,type:"argument"})).sort((x,b)=>{let I=x.display.toLowerCase().startsWith(p),L=b.display.toLowerCase().startsWith(p);return I&&!L?-1:!I&&L?1:x.display.length-b.display.length})}};function KM(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=VM(t,a);return o+=c,{matched:!0,score:o,highlights:a}}i(KM,"fuzzyMatch");function VM(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(VM,"calculateWordBoundaryBonus");function zM(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}i(zM,"prefixMatch");function XM(e,t){if(zM(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{...KM(e,t),isPrefix:!1}}i(XM,"combinedMatch");function IT(e,t,n=0){return e?t.map(r=>{let o=XM(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(IT,"sortCandidatesCombined");var YM={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},sp=class{static{i(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...YM,...t},this.completers=[new Na(this.options.gitRoot),new Au,new Da,new Eo(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 Na)?.setGitRoot(this.options.gitRoot),r){let o=this.completers.findIndex(s=>s instanceof Eo);o!==-1&&(this.completers[o]=new Eo(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=Br(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 IT(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=Br(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 kT(e){return new sp(e)}i(kT,"createAutocompleteProvider");var ap=JM(null);function cp({children:e,cwd:t,gitRoot:n}){let r=_u({cwd:t,gitRoot:n,enabled:!0});return qM(ap.Provider,{value:r,children:e})}i(cp,"AutocompleteContextProvider");function Mo(){return MT(ap)}i(Mo,"useAutocompleteContext");function ZM(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(ZM,"completionToSuggestion");function _u(e={}){let t=MT(ap);return t&&!e.cwd&&!e.gitRoot?t:eA(e)}i(_u,"useAutocomplete");function eA(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,o=ET(()=>kT({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:8}),[]);RT(()=>{o.updateOptions({cwd:t,gitRoot:n})},[o,t,n]);let[s,a]=QM({visible:!1,selectedIndex:0,completions:[],loading:!1});RT(()=>o.subscribe(I=>{a(I)}),[o]);let c=ET(()=>s.completions.map((b,I)=>ZM(b,I)),[s.completions]),l=Fr((b,I)=>{if(!r){o.cancel();return}o.handleInput(b,I)},[o,r]),u=Fr(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),m=Fr(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),p=Fr(()=>{s.visible&&o.selectPrevious()},[o,s.visible]),g=Fr(()=>{s.visible&&o.selectNext()},[o,s.visible]),y=Fr(()=>{s.visible&&o.cancel()},[o,s.visible]),T=Fr(()=>{o.cancel()},[o]),x=Fr(()=>o,[o]);return{state:s,suggestions:c,handleInput:l,handleTab:u,handleEnter:m,handleUp:p,handleDown:g,handleEscape:y,cancel:T,getProvider:x}}i(eA,"useAutocompleteImpl");import{useCallback as Ha,useRef as AT}from"react";var xn=[];function lp(e={}){let{maxSize:t=1e3,onSave:n}=e,r=AT(-1),o=AT(""),s=Ha((m,p)=>{if(!m.trim())return;if(xn[xn.length-1]?.text!==m){let y={text:m,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};xn.push(y),xn.length>t&&xn.splice(0,xn.length-t),n?.(y)}r.current=-1,o.current=""},[t,n]),a=Ha(()=>xn.length===0?null:r.current===-1?(r.current=xn.length-1,xn[r.current]??null):r.current>0?(r.current--,xn[r.current]??null):null,[]),c=Ha(()=>r.current===-1?null:r.current<xn.length-1?(r.current++,xn[r.current]??null):(r.current=-1,{text:o.current,timestamp:Date.now()}),[]),l=Ha(()=>{r.current=-1,o.current=""},[]),u=Ha(m=>{r.current===-1&&(o.current=m)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}i(lp,"useInputHistory");function Xt(e,t,n){return Gt(e).slice(t,n).join("")}i(Xt,"sliceByCodePoints");var Ba=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 Wn(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=Xt(t,0,this._cursor.col);return{row:this._cursor.row,col:Wn(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=Gt(t)[this._cursor.col];return r?Fn(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=Fn(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 tA,useCallback as St,useRef as up,useEffect as nA}from"react";function dp(e={}){let{initialValue:t="",onTextChange:n}=e,r=up(null),o=up(null),s=up(null),[a,c]=tA({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new Ba,t&&r.current.setText(t)),o.current===null&&(o.current=aT());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]),y=St((v,M,Z)=>{l.replaceRange(v,M,Z),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),T=St((v,M)=>{let Z=M?.paste??!1;if(Z&&iT(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]),x=St(()=>{l.newline(),m({isPasting:!1,editingMode:"typing"})},[l,m]),b=St(()=>{let v=l.getAbsoluteOffset(),M=Su(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=Cu(l.text,v);M?l.replaceRange(M.start,M.end,""):l.delete(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),L=St(v=>{l.move(v),m()},[l,m]),$=St(()=>{l.clear(),m({isPasting:!1,editingMode:"idle"})},[l,m]),j=St(()=>{let v=l.undo();return v&&m(),v},[l,m]),D=St(()=>{let v=l.redo();return v&&m(),v},[l,m]),S=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]),Te=St(()=>{l.killLineLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),B=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 nA(()=>()=>{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:y,insert:T,newline:x,backspace:b,delete:I,move:L,moveToEnd:S,moveToOffset:J,killLineRight:ce,killLineLeft:Te,deleteWordLeft:B,clear:$,undo:j,redo:D}}i(dp,"useTextBuffer");import{jsx as Ao,jsxs as Lu}from"react/jsx-runtime";import{useState as $T}from"react";import{useCallback as Pu,useEffect as fp,useRef as mp}from"react";function _T(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(_T,"buildAutocompleteReplacement");var oA=500;function PT(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}i(PT,"shouldUseHistoryNavigation");function iA(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<oA?"clear-input":"arm-clear":"pass-through"}i(iA,"resolvePromptEscapeBehavior");function sA(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(sA,"resolvePromptEnterBehavior");function aA(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(aA,"resolvePromptEditingCommand");function LT({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:o,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onHistoryRecall:l,onPopPendingInputs:u}){let m=mp(0),{add:p,navigateUp:g,navigateDown:y,reset:T,saveTempInput:x}=lp(),{buffer:b,text:I,cursor:L,lines:$,isPasting:j,editingMode:D,pasteStore:S,resetTransientState:J,setText:ce,replaceRange:Te,clear:B,move:X,moveToOffset:v,insert:M,backspace:Z,newline:Ce,delete:de,undo:Be,redo:se,killLineRight:ie,killLineLeft:ne,deleteWordLeft:V}=dp({initialValue:r,onTextChange:c}),xe=mp(0);fp(()=>{if(j)return;if(I.length<=1e4){xe.current=0;return}if(I.length===xe.current)return;let q=S.peekNextId(),{truncatedText:Oe,placeholderContent:he}=sT(I,q);he&&(S.registerTruncatedText(he),xe.current=Oe.length,ce(Oe))},[I,j,S,ce]);let ot=Mo(),be=_u({cwd:o,gitRoot:s,enabled:a}),{state:ve,suggestions:$e,handleInput:Se,handleTab:pt,handleEnter:Je,handleUp:qe,handleDown:A,handleEscape:_}=ot??be;fp(()=>{n||(m.current=0,J(),ve.visible&&_())},[ve.visible,n,_,J]);let P=mp(I);fp(()=>{a&&I!==P.current&&(P.current=I,Se(I,b.getAbsoluteOffset()))},[a,b,Se,I]);let Y=Pu(q=>{if(!q?.text)return;let Oe=_T(I,b.getAbsoluteOffset(),q),he=I.slice(0,Oe.start)+Oe.replacement+I.slice(Oe.end);return Te(Oe.start,Oe.end,Oe.replacement),he},[b,Te,I]),we=Pu(q=>{let Oe=q??I;if(!Oe.trim())return;let he=S.expand(Oe),Me=new Set,G=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let yr of Oe.matchAll(G)){let xr=Number.parseInt(yr[2]??"0",10);Number.isFinite(xr)&&xr>0&&Me.add(xr)}let lt=[];for(let yr of Me){let xr=S.get(yr);xr&&lt.push(xr)}p(Oe,{pastedContents:lt}),e({displayText:Oe,fullText:he,pastedContents:lt}),B()},[p,B,e,S,I]),Ve=Pu(q=>{if(q){if(q.pastedContents&&q.pastedContents.length>0){for(let Oe of q.pastedContents)S.adopt(Oe);l?.({text:q.text,pastedContents:[...q.pastedContents]})}ce(q.text)}},[l,S,ce]),Ie=Pu(q=>{if(!n)return!1;let Oe=ve.visible&&$e.length>0;if(q.name==="tab"&&Oe){let Me=pt();return Me&&Y(Me),!0}if(q.ctrl&&q.name==="c")return I.length>0?(B(),T()):t?.(),!0;if(q.name==="escape")switch(iA({isAutocompleteVisible:Oe,hasText:I.length>0,timeSinceLastEscapeMs:Date.now()-m.current})){case"cancel-autocomplete":return _(),m.current=0,!0;case"clear-input":return m.current=0,B(),T(),!0;case"arm-clear":return m.current=Date.now(),!0;default:return!1}if(q.name==="up"){if(Oe)return qe(),!0;if(q.ctrl)return X("up"),!0;if(I.length===0&&u){let Me=u();if(typeof Me=="string"&&Me.length>0)return ce(Me),!0}if(PT(L.row,$.length,"up")){x(I);let Me=g();Ve(Me)}else X("up");return!0}if(q.name==="down"){if(Oe)return A(),!0;if(q.ctrl)return X("down"),!0;if(PT(L.row,$.length,"down")){let Me=y();Ve(Me)}else X("down");return!0}if(q.name==="left"){let Me=b.getAbsoluteOffset(),G=Su(b.text,Me);return G?v(G.start):X("left"),!0}if(q.name==="right"){let Me=b.getAbsoluteOffset(),G=Cu(b.text,Me);return G?v(G.end):X("right"),!0}if(q.name==="home")return X("home"),!0;if(q.name==="end")return X("end"),!0;let he=aA(q);if(he)switch(he){case"move-home":return X("home"),!0;case"move-end":return X("end"),!0;case"undo":return Be(),!0;case"redo":return se(),!0;case"kill-line-right":return ie(),!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(sA({keyName:q.name,ctrl:q.ctrl,shift:q.shift,isAutocompleteVisible:Oe,isLineContinuation:!!$[L.row]?.endsWith("\\"),isPasting:j})){case"accept-completion-and-submit":{let G=Je();if(G){let lt=Y(G);we(lt)}else we();return!0}case"newline":return Ce(),!0;case"line-continuation":return Z(),Ce(),!0;default:return we(),!0}return q.insertable&&!q.ctrl&&!q.meta?(M(q.sequence,q.isPasted?{paste:!0}:void 0),!0):!1},[Y,p,ve.visible,Z,b,B,L.row,de,n,A,_,qe,Je,Ve,pt,$,ne,ie,X,v,y,g,Ce,t,u,se,T,x,ce,we,$e.length,I.length,V,j,Be]);return{text:I,cursor:L,lines:$,isPasting:j,terminalFocused:n,editingMode:D,handleKey:Ie}}i(LT,"usePromptInputController");var ns=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}=$r(),{cursor:g,lines:y,handleKey:T,isPasting:x,terminalFocused:b,editingMode:I}=LT({onSubmit:e,onExit:p,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:u,onInputChange:m,onHistoryRecall:t,onPopPendingInputs:n});return nn($t.High,L=>T(L),[T]),Ao(k,{flexDirection:"column",children:Ao(Cm,{lines:y,cursorRow:g.row,cursorCol:g.col,prompt:o,placeholder:r,focus:s,terminalFocused:b,isPasting:x,editingMode:I,theme:"dark"})})},"InputPrompt"),cA=i(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,o]=$T(""),[s,a]=$T(0);nn($t.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(""),y=[...r].slice(s).join("");return o(g+y),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(""),y=[...r].slice(s).join("");return o(g+p.sequence+y),a(s+1),!0}return!1},[r,s,e]);let c=te("dark");if(!r)return Lu(k,{children:[Lu(C,{color:c.colors.primary,children:[n," "]}),t&&Ao(C,{dimColor:!0,children:t}),Ao(C,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",m=[...r].slice(s+1).join("");return Lu(k,{children:[Lu(C,{color:c.colors.primary,children:[n," "]}),Ao(C,{children:l}),Ao(C,{backgroundColor:c.colors.primary,color:"#000000",children:u}),Ao(C,{children:m})]})},"SimpleInputPrompt");import{jsx as st,jsxs as It}from"react/jsx-runtime";import{useMemo as Fa,useState as DT,useEffect as NT}from"react";var OT=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],wn=i(({color:e,theme:t})=>{let n=t??Fa(()=>te("dark"),[]),[r,o]=DT(0);NT(()=>{let a=setInterval(()=>{o(c=>(c+1)%OT.length)},80);return()=>clearInterval(a)},[]);let s=e??n.colors.accent;return st(C,{color:s,children:OT[r]})},"Spinner"),HT=i(({label:e,dotCount:t=3,theme:n})=>{let r=n??Fa(()=>te("dark"),[]),[o,s]=DT(1);NT(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(o);return It(k,{children:[e&&st(C,{color:r.colors.text,children:e}),st(C,{color:r.colors.accent,children:a})]})},"DotsIndicator"),BT=i(({progress:e,label:t,width:n=20,theme:r})=>{let o=r??Fa(()=>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&&st(k,{marginBottom:1,children:st(C,{color:o.colors.text,children:t})}),It(k,{children:[st(C,{color:o.colors.primary,children:l}),st(C,{dimColor:!0,children:u}),It(C,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),lA=i(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??Fa(()=>te("dark"),[]),o=e??"Thinking";return It(k,{children:[t&&st(k,{marginRight:1,children:st(wn,{theme:r})}),It(C,{color:r.colors.accent,children:[o,"\u2026"]})]})},"ThinkingIndicator"),uA=i(({message:e,subMessage:t,progress:n,type:r="spinner",compact:o=!1,theme:s})=>{let a=s??Fa(()=>te("dark"),[]),c=e??"Loading";return o?It(k,{children:[st(wn,{theme:a}),It(C,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?It(k,{flexDirection:"column",children:[st(BT,{progress:n,label:c,theme:a}),t&&st(k,{marginTop:1,children:st(C,{dimColor:!0,children:t})})]}):r==="dots"?It(k,{flexDirection:"column",children:[st(HT,{label:c,theme:a}),t&&st(k,{marginTop:1,children:st(C,{dimColor:!0,children:t})})]}):r==="simple"?It(k,{flexDirection:"column",children:[It(C,{color:a.colors.accent,children:[c,"\u2026"]}),t&&st(k,{marginTop:1,children:st(C,{dimColor:!0,children:t})}),n!==void 0&&st(k,{marginTop:1,children:It(C,{dimColor:!0,children:[n,"%"]})})]}):It(k,{flexDirection:"column",children:[It(k,{children:[st(wn,{theme:a}),It(C,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&It(C,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&st(k,{marginTop:1,children:st(C,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as le,jsxs as De,Fragment as Ip}from"react/jsx-runtime";import{useEffect as lS,useMemo as Xn,memo as rn}from"react";function Ue(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}i(Ue,"truncateValue");function FT(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}i(FT,"extractFirstMeaningfulLine");function jT(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(jT,"splitDisplayToolName");function $u(e){let{rolePrefix:t,toolLabel:n}=jT(e);return t?`${t} ${n}`:n}i($u,"normalizeDisplayToolName");function gp(e){return jT(e).toolLabel}i(gp,"stripRolePrefix");function Ou(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}i(Ou,"asRecord");function GT(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(GT,"readString");function xt(e,...t){for(let n of t){let r=GT(e?.[n]);if(r)return r}}i(xt,"readFirstString");function Vn(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(Vn,"readNumber");function KT(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(KT,"readStringArray");function dA(e){if(typeof e=="string")return e.trim()||void 0;let t=Ou(e);if(t)return GT(t.preview)??void 0}i(dA,"extractPreview");function WT(e){if(e)try{return Ou(JSON.parse(e))}catch{return}}i(WT,"parsePreviewRecord");function _e(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}i(_e,"extractFieldFromPreview");function zn(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}i(zn,"extractNumberFromPreview");function VT(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(VT,"extractPathsFromPreview");function fA(e){let t=dA(e);if(typeof e=="string")return{record:WT(t),preview:t};let n=Ou(e),r=WT(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}i(fA,"resolveInputRecord");function rs(e,t,n,r=!1){let o=xt(t,"path","target_path","targetPath")??_e(n,"path")??_e(n,"target_path")??_e(n,"targetPath"),s=KT(t?.paths)??VT(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(rs,"pushPathSummary");function os(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}i(os,"pushNumericSummary");function pp(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(pp,"pushRangeSummary");function mA(e,t){let{record:n,preview:r}=fA(t),o=gp(e).toLowerCase(),s=[];if(o.includes("changed_diff_bundle")){let a=KT(n?.paths)??VT(r);a?.length?(s.push(a.length===1?Ue(a[0]):`${a.length} files`),a.length>1&&s.push(Ue(a[0]))):rs(s,n,r,!0);let c=Vn(n?.limit_per_path)??Vn(n?.limitPerPath)??zn(r,"limit_per_path")??zn(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),pp(s,n,r),s}if(o.includes("changed_diff"))return rs(s,n,r),os(s,"offset",Vn(n?.offset)??zn(r,"offset")),os(s,"limit",Vn(n?.limit)??zn(r,"limit")),pp(s,n,r),s;if(o==="read"||o.includes("read_"))return rs(s,n,r),os(s,"offset",Vn(n?.offset)??zn(r,"offset")),os(s,"limit",Vn(n?.limit)??zn(r,"limit")),s;if(o.includes("changed_scope"))return rs(s,n,r,!0),pp(s,n,r),s;if(o.includes("repo_overview"))return rs(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=Ou(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=Vn(n?.limit)??zn(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=Vn(n?.limit)??zn(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 rs(s,n,r,!0),os(s,"offset",Vn(n?.offset)??zn(r,"offset")),os(s,"limit",Vn(n?.limit)??zn(r,"limit")),s}i(mA,"summarizeToolDetails");function zT(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(zT,"extractChangedDiffRange");function pA(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}i(pA,"extractDiffPreviewLine");function gA(e){let t=[],n=zT(e);if(n){let[o,s]=n.split("/");t.push(s?`Diff range: ${o} of ${s}`:`Diff range: ${n}`)}let r=pA(e);return r&&t.push(`Preview: ${Ue(r,220)}`),t}i(gA,"formatChangedDiffExplanation");function hA(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(hA,"formatChangedDiffBundleExplanation");function XT(e,t){if(!t)return[];let n=gp(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=zT(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(XT,"summarizeToolOutputDetails");function hp(e,t){let n=$u(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}i(hp,"formatToolDetailSummary");function yA(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(yA,"formatDuration");function xA(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(xA,"formatToolStatusDetail");function UT(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(UT,"formatToolProgressExplanation");function yp(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}i(yp,"resolveToolExplanationTone");function wA(e){let t=FT(e.error),n=typeof e.output=="string"?FT(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(wA,"formatToolFailureExplanation");function xp(e){if(typeof e.output!="string"||!e.output.trim())return UT(e);let t=gp(e.name).toLowerCase();return e.status===O.Error?wA(e):e.status!==O.Success?UT(e):t.includes("changed_diff_bundle")?hA(e.output):t.includes("changed_diff")?gA(e.output):[]}i(xp,"formatToolResultExplanation");function wp(e,t){return hp(e,mA(e,t))}i(wp,"formatToolSummary");function Du(e){let t=typeof e.output=="string"?XT(e.name,e.output):[],n=t.length>0?hp(e.name,t):wp(e.name,e.input),r=xA(e),o=yA(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(Du,"formatToolCallInlineText");function Nu(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?XT(n.name,n.output):[],o=r.length>0?hp(n.name,r):wp(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(Nu,"collapseToolCalls");function Wa(e){let t=Du(e.tool);return e.count>1?`${t} x${e.count}`:t}i(Wa,"formatCollapsedToolInlineText");function Hu(e,t,n){let r=wp(e,t);return r!==$u(e)?`[Tools] ${r}`:n>0?`[Tools] ${$u(e)} (${n} chars)`:`[Tools] ${$u(e)}`}i(Hu,"formatLiveToolLabel");function Tp(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(Tp,"countNewlines");function Bu(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=Tp(e),l=Tp(s),u=Tp(a),m=Math.max(0,c-l-u);return`${s}
262
- \u2026 +${m} lines \u2026
263
- ${a}`}i(Bu,"truncateUserMessageForDisplay");var YT=400,TA="... (thinking truncated; press Ctrl+O to inspect full reasoning)",qT=2e5,SA="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",QT=1e5;function CA(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(CA,"normalizeManagedLiveActivityLabel");function Fu(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Fu,"formatTimestamp");function JT(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(JT,"getToolStatusIcon");function ZT(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(ZT,"getToolStatusColor");function bA(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(bA,"wrapText");function Sp(e,t,n,r=!1){if(n||r)return e.length>qT?`${e.slice(0,qT)}
265
-
266
- ${SA}`:e;let o=e.split(/\r?\n/),s=o.length>t,a=s?o.slice(0,t).join(`
267
- `):e,c=a.length>YT,l=c?a.slice(0,YT):a;return!s&&!c?e:`${l}
268
-
269
- ${TA}`}i(Sp,"buildThinkingPreview");function vA(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user")return t;return 0}i(vA,"findActiveRoundStartIndex");function Pe(e,t,n,r,o){let s=bA(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 Ua(e,t){e.push({key:t,text:" "})}i(Ua,"pushBlankRow");function ft(e,t=0){return Math.max(20,e-t)}i(ft,"getBodyWidth");function IA(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(IA,"buildToolInputPreview");function kA(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(kA,"formatHarnessProfileShort");function RA(e,t,n,r,o,s=!1,a=!1){if(Pe(e,`${t}-tool-${n.id}-main`,`${JT(n.status)} ${Wa({tool:n,count:r})}`,ft(o,2),{color:ZT(n.status),indent:2,bold:n.status===O.Executing}),xp(n).forEach((l,u)=>{let m=yp(l);Pe(e,`${t}-tool-${n.id}-explanation-${u}`,l,ft(o,4),{color:m,indent:4})}),s){let l=IA(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(RA,"buildToolRows");function EA(e,t,n,r){let o=n.status===O.Executing,s=o?"":`${JT(n.status)} `;Pe(e,`${t}-tool-${n.id}-main`,`${s}${Wa({tool:n,count:1})}`,ft(r,2),{color:ZT(n.status),indent:2,bold:o,spinner:o}),xp(n).forEach((c,l)=>{let u=yp(c);Pe(e,`${t}-tool-${n.id}-explanation-${l}`,c,ft(r,4),{color:u,indent:4})})}i(EA,"buildLiveToolRows");function eS(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:y=[],currentIteration:T=1,isCompacting:x=!1,managedAgentMode:b,managedPhase:I,managedHarnessProfile:L,managedWorkerTitle:$,managedRound:j,managedMaxRounds:D,lastLiveActivityLabel:S,currentTodoActiveForm:J,showFullThinking:ce=!1,showDetailedTools:Te=!1,showAllContent:B=!1,showLiveProgressRows:X=!0}=e,v=[];for(let M of t)switch(M.type){case"user":Pe(v,`${M.id}-header`,`You [${Fu(M.timestamp)}]`,n,{color:"primary",bold:!0,itemId:M.id}),Pe(v,`${M.id}-body`,Bu(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=B?M.text:M.compactText??M.text;Pe(v,`${M.id}-header`,`Assistant [${Fu(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 [${Fu(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 [${Fu(M.timestamp)}]`,n,{color:"accent",bold:!0,itemId:M.id}),Nu(M.tools).forEach(Z=>RA(v,M.id,Z.tool,Z.count,n,Te,B)),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"thinking":{let Z=B?Sp(M.text,o,ce,B):M.compactText??Sp(M.text,o,ce,B);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"} ${B?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??">"} ${B?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&&y.length>0&&(y.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}),Ua(v,`iteration-${M.iteration}-blank`)}),Pe(v,"iteration-current-header",`\u2500\u2500 Round ${T} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),Ua(v,"iteration-current-blank")),r&&c){let M=Sp(c,o,ce,B);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}),Ua(v,"thinking-stream-blank")}if(r){let M="Thinking",Z="",Ce=kA(L),de=CA(S,$),Be=$??"Scout",se=I==="routing"?`[${b?b.toUpperCase():"AMA"} Routing] `:I==="preflight"?`[${b?b.toUpperCase():"AMA"} ${Be}] `:L?`[${b?b.toUpperCase():"AMA"} ${Ce??L}${$?` - ${$}`:""}] `:"",ie=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,xe=m.filter(be=>be.status===O.Cancelled).length,ot=m.length>0&&(ie>0||!l);if(x)M="Compacting";else if(ot){let be=[];if(ie>0&&be.push(`${ie} running`),ne>0&&be.push(`${ne} done`),V>0&&be.push(`${V} error`),xe>0&&be.push(`${xe} cancelled`),be.length===0&&be.push(`${m.length} tools`),Pe(v,"loading-tools-header",`${se}[Tools] ${be.join(", ")}`,n,{color:"primary",bold:!0,spinner:ie>0}),m.forEach(ve=>{EA(v,"loading-tools",ve,n)}),Ua(v,"loading-tools-blank"),ie>0&&!l&&!X)return v}else if(J)Z=se||"[Plan] ",M=J;else if(u)Z=se||"[Tool] ",M=de?.startsWith("[Tools]")?de:Hu(u,g,p);else if(s){Z=se||"[Thinking] ";let be=j&&D&&j>1?` round ${j}/${D}`:"";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}),Ua(v,"streaming-blank"))}return v}i(eS,"buildTranscriptRows");function MA(e,t,n=1e3,r=!1,o=!1){return is(e,t,n,r,void 0,o)}i(MA,"buildStaticTranscriptSections");function is(e,t,n=1e3,r=!1,o,s=!1){return e.map(a=>({key:a.id,rows:eS({items:[a],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:r||!!o?.has(a.id)})}))}i(is,"buildHistoryItemTranscriptSections");function AA(e,t){return{key:e,rows:eS(t)}}i(AA,"buildDynamicTranscriptSection");function ss(e){let{items:t,viewportWidth:n,maxLines:r=1e3,windowed:o=!1,showDetailedTools:s=!1,showAllContent:a=!1,expandedItemKeys:c,...l}=e,u=vA(t),m=o?[]:t.slice(0,u),p=o?t:t.slice(u),g=o?[]:MA(m,n,r,s,a),y=is(p,n,r,s,c,a),T=AA("active-pending",{...l,items:[],managedLiveEvents:[],lastLiveActivityLabel:l.lastLiveActivityLabel,viewportWidth:n,maxLines:r,showAllContent:a,showDetailedTools:s,expandedItemKeys:c}),x=T.rows.length>0?[T]:[];return{staticSections:g,sections:y,rows:_o(y),previewSections:x,previewRows:_o(x)}}i(ss,"buildTranscriptRenderModel");function _o(e){return e.flatMap(t=>t.rows)}i(_o,"flattenTranscriptSections");function Cp(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:_o(t),previewSections:[...e.previewSections],previewRows:_o(e.previewSections)}}i(Cp,"materializeTranscriptRenderModel");function tS(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?vp(e,a,c):e}i(tS,"resolveVisibleTranscriptRows");var _A=200,PA=50,bp=30;function nS(e,t,n=_A,r=PA){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(nS,"computeTranscriptCapStart");function rS(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(rS,"sliceHistoryToRecentRounds");function vp(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(vp,"getVisibleTranscriptRows");function oS(e,t,n){if(!t||!n||n<=0)return 0;let r=_o(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(oS,"resolveScrollOffsetForTranscriptItem");function iS(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(iS,"resolveTranscriptColor");var sS=new ki(500);function LA(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+=Uf(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}i(LA,"buildTranscriptTextMetrics");function ja(e){let t=sS.get(e);if(t)return t;let n=LA(e);return sS.set(e,n),n}i(ja,"getTranscriptTextMetrics");function Wr(e){return ja(e).length}i(Wr,"getTranscriptTextLength");function aS(e){return ja(e).displayWidth}i(aS,"getTranscriptTextDisplayWidth");function Wu(e,t){let n=ja(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}i(Wu,"charAtTranscriptText");function as(e,t,n){let r=ja(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(as,"sliceTranscriptText");function cS(e,t){let n=ja(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(cS,"resolveTranscriptTextIndexAtVisualColumn");function Uu(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Uu,"formatTimestamp");function $A(e,t){let n=e.split(`
271
- `),r=n.slice(0,t),o=n.length>t;return{lines:r,hasMore:o}}i($A,"truncateLines");function OA(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(OA,"getToolStatusIcon");function DA(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(DA,"getToolStatusColor");var NA=rn(({item:e,theme:t})=>{let n=Xn(()=>Bu(e.text),[e.text]);return De(k,{flexDirection:"column",marginBottom:1,children:[De(k,{children:[le(C,{color:t.colors.primary,bold:!0,children:"You"}),De(C,{dimColor:!0,children:[" [",Uu(e.timestamp),"]"]})]}),le(k,{marginLeft:2,children:le(C,{color:t.colors.text,children:n})})]})}),HA=rn(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:o,hasMore:s}=$A(r,n);return De(k,{flexDirection:"column",marginBottom:1,children:[De(k,{children:[le(C,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&De(Ip,{children:[le(C,{children:" "}),le(wn,{color:t.colors.accent})]}),De(C,{dimColor:!0,children:[" [",Uu(e.timestamp),"]"]})]}),De(k,{marginLeft:2,flexDirection:"column",children:[o.map((a,c)=>le(C,{color:t.colors.text,children:a||" "},c)),s&&De(C,{dimColor:!0,children:["... (",r.split(`
272
- `).length-n," more lines)"]})]})]})}),BA=rn(({item:e,theme:t})=>De(k,{flexDirection:"column",marginBottom:1,children:[De(k,{children:[le(C,{color:t.colors.dim,bold:!0,children:"System"}),De(C,{dimColor:!0,children:[" [",Uu(e.timestamp),"]"]})]}),le(k,{marginLeft:2,children:le(C,{dimColor:!0,children:e.text})})]})),FA=rn(({tool:e,count:t=1,theme:n})=>{let r=OA(e.status),o=DA(e.status,n);return De(k,{flexDirection:"column",marginLeft:2,children:[De(k,{children:[De(C,{color:o,children:[r," "]}),le(C,{color:n.colors.text,bold:!0,children:Wa({tool:e,count:t})})]}),e.error&&le(k,{marginLeft:2,children:le(C,{color:n.colors.error,children:e.error})})]})}),WA=rn(({item:e,theme:t})=>{let n=Nu(e.tools);return De(k,{flexDirection:"column",marginBottom:1,children:[De(k,{children:[le(C,{color:t.colors.accent,bold:!0,children:"Tools"}),De(C,{dimColor:!0,children:[" [",Uu(e.timestamp),"]"]})]}),n.map(r=>le(FA,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),UA=rn(({item:e,theme:t})=>De(k,{flexDirection:"column",marginBottom:1,children:[le(k,{children:le(C,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),le(k,{marginLeft:2,children:le(C,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),jA=rn(({item:e,theme:t})=>De(k,{flexDirection:"column",marginBottom:1,children:[le(k,{children:De(C,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),le(k,{marginLeft:2,children:le(C,{color:t.colors.error,children:e.text})})]})),GA=rn(({item:e,theme:t})=>le(k,{flexDirection:"column",marginBottom:1,children:De(C,{color:t.colors.text,children:[le(C,{color:t.colors.accent,bold:!0,children:e.icon??">"}),le(C,{children:" "}),e.compactText??e.text]})})),KA=rn(({item:e,theme:t})=>le(k,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:De(C,{color:t.colors.info,children:[De(C,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),VA=rn(({item:e,theme:t})=>De(k,{flexDirection:"column",marginBottom:1,children:[le(k,{children:De(C,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),le(k,{marginLeft:2,children:le(C,{dimColor:!0,children:e.text})})]})),zA=rn(({item:e,theme:t,maxLines:n=1e3})=>{let r=Xn(()=>te("dark"),[]),o=t??r;switch(e.type){case"user":return le(NA,{item:e,theme:o});case"assistant":return le(HA,{item:e,theme:o,maxLines:n});case"system":return le(BA,{item:e,theme:o});case"tool_group":return le(WA,{item:e,theme:o});case"thinking":return le(UA,{item:e,theme:o});case"error":return le(jA,{item:e,theme:o});case"event":return le(GA,{item:e,theme:o});case"info":return le(KA,{item:e,theme:o});case"hint":return le(VA,{item:e,theme:o});default:return le(k,{children:le(C,{dimColor:!0,children:"Unknown item type"})})}}),uS=rn(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:o})=>{let s=iS(t,e.color),a=e.text===" "?"":e.text,c=a||" ",l=o&&a?as(a,o.start,o.end):"",u=o&&a?as(a,0,o.start):a,m=o&&a?as(a,o.end):"",p=r&&!o,g=!p&&e.color==="dim",y={bold:e.bold||p,italic:e.italic,dimColor:g};return De(k,{marginLeft:e.indent??0,children:[e.spinner&&n&&De(Ip,{children:[le(wn,{color:t.colors.accent,theme:t}),le(C,{children:" "})]}),le(C,{color:p?t.colors.accent:s,...y,children:o&&a?De(Ip,{children:[u?le(C,{color:p?t.colors.accent:s,...y,children:u}):null,le(C,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:l}),m?le(C,{color:p?t.colors.accent:s,...y,children:m}):null]}):c})]})}),XA=rn(({section:e,theme:t,animateSpinners:n=!0})=>le(k,{flexDirection:"column",children:e.rows.map(r=>le(uS,{row:r,theme:t,animateSpinners:n},r.key))})),Po=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:y=!1,agentMode:T,managedPhase:x,managedHarnessProfile:b,managedWorkerTitle:I,managedRound:L,managedMaxRounds:$,managedGlobalWorkBudget:j,managedBudgetUsage:D,managedBudgetApprovalRequired:S,lastLiveActivityLabel:J,viewportRows:ce,viewportWidth:Te,scrollOffset:B=0,animateSpinners:X=!0,windowed:v=!1,showFullThinking:M=!1,showDetailedTools:Z=!1,showAllContent:Ce=!1,showLiveProgressRows:de=!0,selectedItemId:Be,expandedItemKeys:se,onMetricsChange:ie,onVisibleRowsChange:ne,rendererWindow:V,selectedTextRanges:xe,transcriptModel:ot,visibleRowsOverride:be})=>{let ve=Xn(()=>te("dark"),[]),{stdout:$e}=jn(),Se=Te??$e?.columns??80,pt=Xn(()=>ot??ss({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:y,managedAgentMode:T,managedPhase:x,managedHarnessProfile:b,managedWorkerTitle:I,managedRound:L,managedMaxRounds:$,managedGlobalWorkBudget:j,managedBudgetUsage:D,managedBudgetApprovalRequired:S,lastLiveActivityLabel:J,windowed:v,showFullThinking:M,showDetailedTools:Z,showAllContent:Ce,showLiveProgressRows:de,expandedItemKeys:se}),[ot,e,Se,t,n,r,o,s,a,c,l,u,m,p,g,y,T,x,b,I,L,$,j,D,S,J,v,M,Z,Ce,de,se]),Je=pt.staticSections,qe=pt.rows,A=pt.previewRows,_=Xn(()=>[...qe,...A],[A,qe]),Y=!(_.length>0)&&e.length===0&&!t,we=Xn(()=>v||V||be?_:qe,[_,V,qe,be,v]),Ve=Xn(()=>be||tS(we,{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:B,windowed:v}),[V,B,ce,be,v,we]),Ie=Xn(()=>be||v||V?Ve:_,[_,V,Ve,be,v]),q=Xn(()=>_,[_]),Oe=V?Math.max(0,V.viewportHeight):ce;return lS(()=>{ie?.({scrollHeight:_.length,viewportHeight:V?Math.max(0,V.viewportHeight):Oe??_.length})},[_.length,Oe,ie,V]),lS(()=>{ne?.({rows:Ie,allRows:q})},[q,ne,Ie]),Y?le(k,{paddingY:1,children:le(C,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):De(k,{flexDirection:"column",children:[!v&&Je.length>0&&le(Ui,{items:Je,children:i(he=>le(XA,{section:he,theme:ve,animateSpinners:X},he.key),"children")}),Ie.map(he=>le(uS,{row:he,theme:ve,animateSpinners:X,selectedItem:Be?he.key.startsWith(`${Be}-`):!1,selectionRange:xe?.get(he.key)},he.key))]})},"MessageList");var YA=i(({role:e,content:t})=>{let n=Xn(()=>te("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return De(k,{flexDirection:"column",marginBottom:1,children:[le(C,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),le(C,{children:t})]})},"SimpleMessageDisplay");import{jsx as Rp,jsxs as Vu}from"react/jsx-runtime";import m_,{useMemo as Ep}from"react";var qA="\u{1F504}",QA="\u2588",JA="\u2592",ZA="\u2192",e_=" \xB7 ";function t_(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(t_,"formatReasoningModeShort");function n_(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(n_,"formatReasoningCapabilityShort");function r_(e){switch(e){case"off":return"dim";case"quick":return"green";case"balanced":return"yellow";case"deep":return"magenta";default:return"cyan"}}i(r_,"getReasoningColor");function dS(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(dS,"formatTokenCount");function o_(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${QA.repeat(t)}${JA.repeat(n)}`}i(o_,"createMiniProgressBar");function i_(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(i_,"getContextColor");function s_(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(s_,"getPermissionModeColor");function a_(e,t){let n=Vi(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}i(a_,"buildPermissionModeText");function c_(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(c_,"formatToolAction");function l_(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(l_,"formatHarnessProfileShort");function ju(e,t){return t&&t>0?`${e} (${t} chars)`:e}i(ju,"formatThinkingStatus");function Gu(e,t,n){let r=c_(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}i(Gu,"formatToolStatus");function kp({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 - ${Gu(t,s,a)}`:n?ju("Routing",r):"Routing";if(c==="preflight"){let y=u??"Scout";return g?`${y} - ${g}`:t?`${y} - ${Gu(t,s,a)}`:n?ju(y,r):y}if(l){let T=`${l_(l)}${u?` - ${u}`:""}`;if(m===!0&&!g&&!t&&!n){let x=p??0,b=x>1?`waiting for ${x} children`:x===1?"waiting for 1 child":"idle - resuming";return`${T} - ${b}`}return g?`${T} - ${g}`:t?`${T} - ${Gu(t,s,a)}`:n?ju(T,r):T}if(g)return g;if(t)return Gu(t,s,a);if(n)return ju("Thinking",r)}i(kp,"buildBusyStatusText");function u_({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(u_,"resolveIterationSegments");function d_(e){if(e.length!==0)return`${qA} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(e_)}`}i(d_,"formatLabeledIterationStatus");function f_(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:y,isCompacting:T,toolInputCharCount:x,toolInputContent:b,currentIteration:I,maxIter:L,contextUsage:$,showBusyStatus:j=!0,managedPhase:D,managedHarnessProfile:S,managedWorkerTitle:J,managedRound:ce,managedMaxRounds:Te,managedGlobalWorkBudget:B,managedBudgetUsage:X,managedIdleWaiting:v,managedIdleWaitingPendingCount:M}=e,Z=[{id:"agent-mode",text:`KodaX - ${r.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:a_(n,e.autoModeEngine),color:s_(n)}],Ce=t_(g),de=n_(y);Z.push({id:"reasoning-mode",text:y?`${Ce}/${de}`:Ce,color:r_(g)});let Be=u_({agentMode:r,managedPhase:D,managedHarnessProfile:S,managedRound:ce,managedMaxRounds:Te,managedGlobalWorkBudget:B,managedBudgetUsage:X,currentIteration:I,maxIter:L}),se=d_(Be);if(se){let ne=Math.max(...Be.map(xe=>xe.current/xe.max)),V="green";ne>=.8?V="red":ne>=.5&&(V="yellow"),Z.push({id:"iteration-status",text:se,color:V})}Z.push({id:"session-id",text:t,color:"dim"});let ie=j?kp({activeToolCount:l,currentTool:c,isThinkingActive:m,thinkingCharCount:p,isCompacting:T,toolInputCharCount:x,toolInputContent:b,managedPhase:D,managedHarnessProfile:S,managedWorkerTitle:J,managedIdleWaiting:v,managedIdleWaitingPendingCount:M}):void 0;if(ie&&Z.push({id:"busy-status",text:ie,color:"dim"}),Z.push({id:"provider-model",text:`${o}/${s}`,color:"secondary"}),$&&$.contextWindow!==0){let ne=Math.round($.currentTokens/$.contextWindow*100),V=dS($.currentTokens),xe=dS($.contextWindow),ot=o_(ne);Z.push({id:"context-usage",text:`${V}/${xe} ${ot} ${ne}%`,color:i_($.currentTokens,$.contextWindow,$.triggerPercent)})}return a&&Z.push({id:"token-usage",text:`${a.input}${ZA}${a.output} (${a.total})`,color:"dim"}),Z}i(f_,"buildStatusBarSegments");function Ku(e){let t=f_(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}i(Ku,"buildStatusBarViewModel");function p_(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(p_,"resolveViewModelSegmentColor");var cs=i(({viewModel:e,...t})=>{let n=Ep(()=>te("dark"),[]),r=Ep(()=>e??Ku(t),[t,e]);return Rp(k,{paddingX:1,children:r.segments.map((o,s)=>Vu(m_.Fragment,{children:[Rp(C,{color:p_(o,n),bold:o.bold,children:o.text}),s<r.segments.length-1?Rp(C,{dimColor:!0,children:" | "}):null]},o.id))})},"StatusBar"),g_=i(({permissionMode:e,provider:t,model:n})=>{let r=Ep(()=>te("dark"),[]);return Vu(k,{children:[Vu(C,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),Vu(C,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as Ur,jsxs as Yu}from"react/jsx-runtime";import{useState as Mp,useCallback as zu,useMemo as fS}from"react";function Xu(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(Xu,"generateId");function h_(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(h_,"messageToHistoryItem");var y_=i(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:o="ama"})=>{let{stdout:s}=jn(),a=fS(()=>te("dark"),[]),[c,l]=Mp({messages:[],isLoading:!1,sessionId:Xu()}),[u,m]=Mp(null),[p,g]=Mp(),y=zu(async I=>{if(!I.trim())return;let L={id:Xu(),role:"user",content:I,timestamp:Date.now()};l($=>({...$,messages:[...$.messages,L],isLoading:!0}));try{await n(I)}catch($){let j={id:Xu(),role:"system",content:`Error: ${$ instanceof Error?$.message:"Unknown error"}`,timestamp:Date.now()};l(D=>({...D,messages:[...D.messages,j],isLoading:!1}))}finally{l($=>({...$,isLoading:!1}))}},[n]),T=zu((I,L)=>{let $={id:Xu(),role:I,content:L,timestamp:Date.now()};l(j=>({...j,messages:[...j.messages,$]}))},[]),x=zu((I,L)=>{m({input:I,output:L,total:I+L})},[]),b=zu(I=>{g(I)},[]);return Yu(k,{flexDirection:"column",children:[Ur(k,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:Ur(Po,{items:c.messages.map(h_),isLoading:c.isLoading})}),Ur(k,{flexShrink:0,children:Ur(ns,{onSubmit:i(I=>y(I.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),Ur(k,{flexShrink:0,children:Ur(cs,{sessionId:c.sessionId,permissionMode:r,agentMode:o,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),x_=i(({model:e,provider:t,onInput:n})=>{let r=fS(()=>te("dark"),[]);return Yu(k,{flexDirection:"column",children:[Yu(k,{marginBottom:1,children:[Ur(C,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),Yu(C,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),Ur(ns,{onSubmit:i(o=>n(o.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as w_}from"react/jsx-runtime";var Ap=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:y,onScrollTopChange:T,onStickyChange:x,onWindowChange:b})=>w_(Sm,{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:y,onScrollTopChange:T,onStickyChange:x,onWindowChange:b}),"FullscreenTranscriptLayout");import{jsx as mS}from"react/jsx-runtime";function ls({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(ls,"buildMessageActionsText");var _p=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=ls({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:r,selectionNavigation:o,matchNavigation:s,dismissAction:a});return l?mS(k,{paddingX:1,children:mS(C,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as pS}from"react/jsx-runtime";function Pp({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(Pp,"buildMessageSelectorText");var T_=i(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let o=te("dark"),s=Pp({itemSummary:e,itemKind:t,position:n,detailState:r});return s?pS(k,{paddingX:1,children:pS(C,{color:o.colors.dim,children:s})}):null},"MessageSelector");import{jsx as us,jsxs as S_}from"react/jsx-runtime";import{useMemo as gS}from"react";function qu(e,t){return Math.max(1,Kt(e.length>0?e.split(`
273
- `):[""],Math.max(1,t),0,0).visualLines.length)}i(qu,"countWrappedRows");var Lp=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,y=m?.copyOnSelect??!1,T=t?.toggleDetail??!1,x=t?.navigationCapabilities?.selection??!1,b=n?.statusText,I=n?.matches?.length??0,L=n?.surface,$=o.viewportWidth??80,j=Math.max(1,$-2),D=n?.query?.trim()?"close-search":a||p||g||T||x?"clear":void 0,S=Pp({itemSummary:a,itemKind:l,position:c,detailState:u}),J=gS(()=>ls({copyMessage:p,copyToolInput:g,copyOnSelect:y,toggleDetail:T,selectionNavigation:x,matchNavigation:!!b&&I>0,dismissAction:D}),[p,g,x,T,D,I,b,y]),ce=gS(()=>{if(!s)return 0;let B=0;return e?.hintText&&(B+=qu(e.hintText,j)),S&&(B+=qu(S,j)),J&&(B+=qu(J,j)),b&&(B+=qu(b,j)),L&&(B+=1),B},[J,e?.hintText,j,s,b,L,S]),Te=typeof o.viewportRows=="number"?Math.max(1,o.viewportRows-ce):o.viewportRows;return S_(k,{flexDirection:"column",flexGrow:o.windowed?0:1,children:[s&&e?.hintText?us(k,{paddingX:1,children:us(C,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||g||y||T||x||I>0)?us(_p,{copyMessage:p,copyToolInput:g,copyOnSelect:y,toggleDetail:T,selectionNavigation:x,matchNavigation:!!b&&I>0,dismissAction:D}):null,s&&b?us(k,{paddingX:1,children:us(C,{dimColor:!0,children:b})}):null,s?L:null,us(Po,{...o,viewportRows:Te})]})},"TranscriptViewport");import{jsx as hS}from"react/jsx-runtime";var $p=i(e=>hS(k,{flexDirection:"column",children:hS(ns,{...e})}),"PromptComposer");import{jsx as Lo,jsxs as Qu}from"react/jsx-runtime";import yS from"react";var xS=" \xB7 ",Ju=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=te("dark");return t.length===0?null:Lo(k,{flexGrow:1,children:t.map((r,o)=>Qu(yS.Fragment,{children:[Lo(C,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?Lo(C,{dimColor:!0,children:xS}):null]},r.id))})},"PromptFooterLeftSide"),Zu=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=te("dark");return t.length===0?null:Lo(k,{justifyContent:"flex-end",children:t.map((r,o)=>Qu(yS.Fragment,{children:[Lo(C,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?Lo(C,{dimColor:!0,children:xS}):null]},r.id))})},"PromptFooterRightSide"),ed=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:y})=>Qu(k,{flexDirection:"column",children:[e||t?Qu(k,{paddingX:1,children:[Lo(k,{flexGrow:1,children:e}),t]}):null,n,r,o,s,a,c,l,u,y,m,p,g]}),"PromptFooter");import{jsx as Op,jsxs as wS}from"react/jsx-runtime";var Dp=i(({sections:e,title:t="Help"})=>{let n=te("dark"),r=e.filter(o=>o.items.length>0);return r.length===0?null:wS(k,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[Op(C,{color:n.colors.accent,bold:!0,children:t}),r.map(o=>wS(k,{flexDirection:"column",children:[Op(C,{color:n.colors.primary,bold:!0,children:o.title}),Op(C,{dimColor:!0,children:o.items.map(s=>s.label).join(" | ")})]},o.id))]})},"PromptHelpMenu");import{jsx as TS}from"react/jsx-runtime";import{createContext as SS,useContext as CS,useReducer as C_,useCallback as Ot,useMemo as b_}from"react";var v_=150;function td(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(td,"generateId");function Np(e){return{...e,id:td(),timestamp:Date.now()}}i(Np,"createHistoryItem");function Hp(e){return{...e,id:td(),startTime:Date.now()}}i(Hp,"createToolCall");function I_(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<=v_)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{...vm,sessionId:e.sessionId};default:return e}}i(I_,"uiReducer");var bS=SS(null),vS=SS(null);function nd({children:e,initialState:t}){let[n,r]=C_(I_,{...vm,...t}),o=Ot(D=>{r({type:"SET_STREAMING_STATE",payload:D})},[]),s=Ot(D=>{r({type:"APPEND_TO_RESPONSE",payload:D})},[]),a=Ot(()=>{r({type:"CLEAR_RESPONSE"})},[]),c=Ot(D=>{let S=Np(D);r({type:"ADD_HISTORY_ITEM",payload:S})},[]),l=Ot((D,S)=>{r({type:"UPDATE_HISTORY_ITEM",payload:{id:D,updates:S}})},[]),u=Ot(()=>{r({type:"CLEAR_HISTORY"})},[]),m=Ot(D=>{let S=Hp(D);return r({type:"ADD_TOOL_CALL",payload:S}),S.id},[]),p=Ot((D,S)=>{r({type:"UPDATE_TOOL_CALL",payload:{id:D,updates:S}})},[]),g=Ot(()=>{r({type:"CLEAR_TOOL_CALLS"})},[]),y=Ot(D=>{r({type:"SET_SESSION_ID",payload:D})},[]),T=Ot(D=>{r({type:"SET_MODE",payload:D})},[]),x=Ot(D=>{r({type:"SET_PROVIDER",payload:D})},[]),b=Ot(D=>{r({type:"SET_MODEL",payload:D})},[]),I=Ot(D=>{r({type:"SET_TOKEN_USAGE",payload:D})},[]),L=Ot(D=>{r({type:"SET_ERROR",payload:D})},[]),$=Ot(D=>{r({type:"SET_LOADING",payload:D})},[]),j=b_(()=>({setStreamingState:o,appendToResponse:s,clearResponse:a,addHistoryItem:c,updateHistoryItem:l,clearHistory:u,addToolCall:m,updateToolCall:p,clearToolCalls:g,setSessionId:y,setMode:T,setProvider:x,setModel:b,setTokenUsage:I,setError:L,setLoading:$}),[o,s,a,c,l,u,m,p,g,y,T,x,b,I,L,$]);return TS(bS.Provider,{value:n,children:TS(vS.Provider,{value:j,children:e})})}i(nd,"UIStateProvider");function Ga(){let e=CS(bS);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}i(Ga,"useUIState");function Ka(){let e=CS(vS);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}i(Ka,"useUIActions");function IS(){let e=Ga(),t=Ka();return{state:e,actions:t}}i(IS,"useUI");function Bp(){return te()}i(Bp,"useTheme");import{jsxs as jr,jsx as rd,Fragment as k_}from"react/jsx-runtime";import{useMemo as R_}from"react";var E_=80,M_=7,A_={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function __(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(__,"getVisibleRange");function P_({suggestion:e,isSelected:t,width:n}){let r=Bp(),o=e.icon||e.type&&A_[e.type]||"",s=o?Wn(o)+1:0,a=Wn(e.displayText||e.text),c=e.description?Wn(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,m=Math.max(0,u),p=aa(e.displayText||e.text,l),g=e.description?aa(e.description,m):"";return jr(k,{children:[o&&jr(C,{color:t?r.colors.accent:r.colors.dim,children:[o," "]}),rd(C,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),g&&jr(k_,{children:[rd(C,{children:" "}),rd(C,{color:r.colors.dim,children:aa(e.description||"",m)})]}),t&&jr(C,{color:r.colors.accent,children:[" ","\u25C0"]})]})}i(P_,"SuggestionItem");function od({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=M_,width:o=E_,showCount:s=!1}){let a=Bp();if(!n||e.length===0)return null;let{start:c,end:l}=R_(()=>__(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return jr(k,{flexDirection:"column",marginLeft:2,children:[c>0&&jr(C,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((m,p)=>{let y=c+p===t;return rd(P_,{suggestion:m,isSelected:y,width:o},m.id)}),l<e.length&&jr(C,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&jr(C,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}i(od,"SuggestionsDisplay");import{jsx as ds,jsxs as L_}from"react/jsx-runtime";var Fp=i(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let o=Mo(),s=te("dark");if(n)return null;if(!o)return e?ds(k,{height:8}):null;let{state:a,suggestions:c}=o;return a.visible&&c.length>0?r==="overlay"?L_(k,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[ds(C,{color:s.colors.accent,bold:!0,children:"Suggestions"}),ds(od,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):ds(k,{height:8,children:ds(od,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?ds(k,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as _n,jsx as Tn,Fragment as Wp}from"react/jsx-runtime";import $_,{useEffect as O_,useState as D_}from"react";var fs=15,kS=Math.max(1,fs-2),Up=i(({confirm:e,request:t})=>e?_n(k,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[_n(C,{color:"yellow",bold:!0,children:[Q("dialog.confirm")," ",e.prompt]}),e.planContent?Tn(N_,{content:e.planContent}):null,e.instruction?Tn(C,{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(Wp,{children:[_n(C,{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(Wp,{children:[c>0?Tn(C,{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,y=t.selectedIndices?.includes(p)??!1,T=g?"\u276F ":" ",x=y?" \u2713":"",b=u.description?` - ${u.description}`:"";return Tn(C,{color:g?"cyan":void 0,dimColor:!g,children:`${T}${u.label}${b}${x}`},`${u.value}-${p}`)}),l>0?Tn(C,{dimColor:!0,children:Q("select.more_below",{count:l})}):null]})})(),Tn(C,{dimColor:!0,children:t.multiSelect?Q("select.multiselect_hint"):Q("select.navigate_hint")})]}):_n(Wp,{children:[_n(C,{color:"cyan",bold:!0,children:[Q("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0?Tn(C,{dimColor:!0,children:`${Q("input.default")} ${t.defaultValue}`}):null,Tn(C,{dimColor:!0,children:`${Q("input.value")} ${t.buffer||Q("input.type_response")}`}),Tn(C,{dimColor:!0,children:Q("select.confirm_hint")})]}),t.error?Tn(C,{color:"red",children:t.error}):null]}):null,"DialogSurface"),N_=i(({content:e})=>{let t=$_.useMemo(()=>e.split(`
274
- `),[e]),n=t.length,r=n>fs,[o,s]=D_(0);O_(()=>{s(u=>{let m=Math.max(0,n-fs);return u>m?m:u})},[n]),Zl((u,m)=>{if(!r)return;let p=Math.max(0,n-fs);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-kS)):m.pageDown&&s(g=>Math.min(p,g+kS))},{isActive:!0});let a=t.slice(o,o+fs),c=o,l=Math.max(0,n-o-fs);return _n(k,{flexDirection:"column",marginTop:1,children:[r&&c>0?_n(C,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((u,m)=>Tn(C,{children:u},`plan-line-${o+m}`)),r&&l>0?_n(C,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,r?Tn(C,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as Va,jsx as H_}from"react/jsx-runtime";function RS(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}i(RS,"normalizePendingPreview");function id(e){if(e.length===0)return;let t=RS(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(id,"formatPendingInputsSummary");function ES(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:RS(n)}))}i(ES,"formatPendingInputsLines");var jp=i(({pendingInputs:e})=>{let t=ES(e);if(t.length===0)return null;let n=te("dark");return Va(k,{flexDirection:"column",children:[t.map(r=>Va(k,{children:[Va(C,{color:n.colors.hint,children:["\u23F3"," "]}),Va(C,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),H_(k,{children:Va(C,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as MS}from"react/jsx-runtime";function B_(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}i(B_,"resolveNotificationColor");var sd=i(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=te("dark");return t.length===0?null:MS(k,{flexDirection:"column",paddingX:1,children:t.map(r=>MS(C,{color:B_(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as AS}from"react/jsx-runtime";var Gp=i(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=te("dark");return AS(k,{flexDirection:"column",paddingX:1,children:t.map((r,o)=>AS(C,{color:n.colors.dim,children:r},`${r}-${o}`))})},"StatusNoticesSurface");import{jsxs as _S,jsx as F_}from"react/jsx-runtime";var ad=i(({text:e})=>{let t=e?.trim();if(!t)return null;let n=te("dark");return _S(k,{paddingX:1,children:[_S(C,{color:n.colors.hint,children:["\u22EF"," "]}),F_(C,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as $o,jsxs as W_}from"react/jsx-runtime";function PS({text:e,accent:t=!1,selected:n=!1}){let r=te("dark");return $o(k,{marginRight:1,children:$o(C,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}i(PS,"Pill");var cd=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:W_(k,{flexDirection:"row",paddingX:1,children:[r?$o(k,{marginRight:1,children:$o(wn,{})}):null,o.map(s=>$o(PS,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?$o(PS,{text:t}):null,n?$o(C,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import LS,{createContext as $S,useContext as OS,useReducer as U_,useCallback as We,useRef as j_,useEffect as G_}from"react";function za(e){let t=uy();t.dequeue({maxPriority:"user"});for(let n of e)t.enqueue({priority:"user",mode:"prompt",content:n})}i(za,"syncPendingInputsToQueue");var Kp={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 Vp(){let e={...Kp},t=new Set,n="",r="",o=0,s=null,a=!1,c=80,l=i(()=>{for(let p of t)p(e)},"notify"),u=i(()=>{if(s&&(clearTimeout(s),s=null),n||r||o>0){let g=e.thinkingContent+r,y=r?g.length:e.thinkingCharCount+o;e={...e,currentResponse:e.currentResponse+n,thinkingContent:g,thinkingCharCount:y,...r||o>0?{isThinking:!0}:{}},n="",r="",o=0,l()}},"flushPendingUpdates"),m=i(()=>{s||(s=setTimeout(u,c))},"scheduleFlush");return{getState:i(()=>e,"getState"),setState:i(p=>{u(),e={...e,state:p},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(()=>{u(),e={...e,state:tn.Idle,abortController:void 0},l()},"stopStreaming"),appendResponse:i(p=>{a||(n+=p,m())},"appendResponse"),clearResponse:i(()=>{u(),e={...e,currentResponse:""},l()},"clearResponse"),setError:i(p=>{u(),e={...e,error:p,state:p?tn.Idle:e.state},l()},"setError"),abort:i(p=>{a=!0,u(),e.abortController?.abort(),n="",r="",o=0,s&&(clearTimeout(s),s=null),e={...e,state:tn.Idle,abortController:void 0,pendingInputs:p?.preservePendingInputs?e.pendingInputs:[]},l()},"abort"),reset:i(()=>{a=!0,u(),e.abortController?.abort(),n="",r="",o=0,s&&(clearTimeout(s),s=null),e={...Kp},a=!1,l()},"reset"),isStreaming:i(()=>e.state===tn.Responding||e.state===tn.WaitingForConfirmation,"isStreaming"),subscribe:i(p=>(t.add(p),()=>{t.delete(p)}),"subscribe"),startThinking:i(()=>{u(),e={...e,isThinking:!0,thinkingCharCount:0,thinkingContent:""},l()},"startThinking"),appendThinkingChars:i(p=>{a||(o+=p,m())},"appendThinkingChars"),appendThinkingContent:i(p=>{a||(r+=p,m())},"appendThinkingContent"),stopThinking:i(()=>{u(),e={...e,isThinking:!1,thinkingCharCount:0},l()},"stopThinking"),clearThinkingContent:i(()=>{u(),e={...e,isThinking:!1,thinkingCharCount:0,thinkingContent:""},l()},"clearThinkingContent"),setCurrentTool:i(p=>{u(),e={...e,currentTool:p,toolInputCharCount:0,toolInputContent:""},l()},"setCurrentTool"),appendToolInputChars:i(p=>{e={...e,toolInputCharCount:e.toolInputCharCount+p},l()},"appendToolInputChars"),appendToolInputContent:i(p=>{e.toolInputContent.length<240&&(e={...e,toolInputContent:(e.toolInputContent+p).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(p=>{u(),e.thinkingContent||e.currentResponse?e={...e,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:p}:e={...e,currentIteration:p},l()},"startNewIteration"),clearIterationHistory:i(()=>{u(),e={...e,iterationHistory:[],currentIteration:1,maxIter:Kp.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},l()},"clearIterationHistory"),setMaxIter:i(p=>{u(),e={...e,maxIter:p},l()},"setMaxIter"),startCompacting:i(()=>{u(),e={...e,isCompacting:!0},l()},"startCompacting"),stopCompacting:i(()=>{u(),e={...e,isCompacting:!1},l()},"stopCompacting"),addPendingInput:i(p=>{let g=p.trim();!g||e.pendingInputs.length>=5||(u(),e={...e,pendingInputs:[...e.pendingInputs,g]},za(e.pendingInputs),l())},"addPendingInput"),removeLastPendingInput:i(()=>{e.pendingInputs.length!==0&&(u(),e={...e,pendingInputs:e.pendingInputs.slice(0,-1)},za(e.pendingInputs),l())},"removeLastPendingInput"),shiftPendingInput:i(()=>{if(e.pendingInputs.length===0)return;u();let[p,...g]=e.pendingInputs;return e={...e,pendingInputs:g},za(e.pendingInputs),l(),p},"shiftPendingInput"),clearPendingInputs:i(()=>{e.pendingInputs.length!==0&&(u(),e={...e,pendingInputs:[]},za(e.pendingInputs),l())},"clearPendingInputs"),consumePendingInputs:i(()=>{if(e.pendingInputs.length===0)return[];u();let p=e.pendingInputs;return e={...e,pendingInputs:[]},za(e.pendingInputs),l(),p},"consumePendingInputs")}}i(Vp,"createStreamingManager");var DS=$S(null),NS=$S(null);function ld({children:e,onStateChange:t}){let n=j_(Vp()),[,r]=U_(se=>se+1,0);G_(()=>n.current.subscribe(ie=>{r(),t?.(ie)}),[t]);let o=We(()=>{n.current.startStreaming()},[]),s=We(()=>{n.current.stopStreaming()},[]),a=We(se=>{n.current.appendResponse(se)},[]),c=We(()=>{n.current.clearResponse()},[]),l=We(se=>{n.current.setError(se)},[]),u=We(se=>{n.current.abort(se)},[]),m=We(()=>{n.current.reset()},[]),p=We(()=>{n.current.startThinking()},[]),g=We(se=>{n.current.appendThinkingChars(se)},[]),y=We(se=>{n.current.appendThinkingContent(se)},[]),T=We(()=>{n.current.stopThinking()},[]),x=We(()=>{n.current.clearThinkingContent()},[]),b=We(se=>{n.current.setCurrentTool(se)},[]),I=We(se=>{n.current.appendToolInputChars(se)},[]),L=We(se=>{n.current.appendToolInputContent(se)},[]),$=We(()=>{n.current.clearToolInputContent()},[]),j=We(()=>n.current.getSignal(),[]),D=We(()=>n.current.getFullResponse(),[]),S=We(()=>n.current.getThinkingContent(),[]),J=We(se=>{n.current.startNewIteration(se)},[]),ce=We(()=>{n.current.clearIterationHistory()},[]),Te=We(se=>{n.current.setMaxIter(se)},[]),B=We(()=>{n.current.startCompacting()},[]),X=We(()=>{n.current.stopCompacting()},[]),v=We(se=>{n.current.addPendingInput(se)},[]),M=We(()=>{n.current.removeLastPendingInput()},[]),Z=We(()=>n.current.shiftPendingInput(),[]),Ce=We(()=>{n.current.clearPendingInputs()},[]),de=We(()=>n.current.consumePendingInputs(),[]),Be={startStreaming:o,stopStreaming:s,appendResponse:a,clearResponse:c,setError:l,abort:u,reset:m,startThinking:p,appendThinkingChars:g,appendThinkingContent:y,stopThinking:T,clearThinkingContent:x,setCurrentTool:b,appendToolInputChars:I,appendToolInputContent:L,clearToolInputContent:$,getSignal:j,getFullResponse:D,getThinkingContent:S,startNewIteration:J,clearIterationHistory:ce,setMaxIter:Te,startCompacting:B,stopCompacting:X,addPendingInput:v,removeLastPendingInput:M,shiftPendingInput:Z,clearPendingInputs:Ce,consumePendingInputs:de};return LS.createElement(DS.Provider,{value:n.current.getState()},LS.createElement(NS.Provider,{value:Be},e))}i(ld,"StreamingProvider");function Ya(){let e=OS(DS);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}i(Ya,"useStreamingState");function qa(){let e=OS(NS);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}i(qa,"useStreamingActions");function HS(){let e=Ya(),t=qa(),n=e.state===tn.Responding||e.state===tn.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}i(HS,"useStreaming");import{useCallback as K_,useRef as V_}from"react";var z_=500;function X_(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:o=!0}=e,s=V_(0),{exit:a}=$r(),c=K_(l=>{if(!o)return!1;if(l.name==="escape"){let u=Date.now(),m=u-s.current<z_;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(X_,"useKeypress");function Y_(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(Y_,"createKeyMatcher");async function Qa(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??Ja(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}i(Qa,"createInteractiveContext");function Ja(){let e=new Date,t=e.toISOString().split("T")[0].replace(/-/g,""),n=e.toTimeString().split(" ")[0].replace(/:/g,"");return`${t}_${n}`}i(Ja,"generateSessionId");function Yn(e){e.lastAccessed=new Date().toISOString()}i(Yn,"touchContext");var ms=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:dn(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=pi(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=gi(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=xi(o.lineage,n);if(!s)return null;let a=r?.sessionId??await mi(),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??hi(r.lineage);if(!o)return null;let s=yi(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?so(r.lineage):r.messages.length}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function q_(){return new ms}i(q_,"createMemorySessionStorage");import*as BS from"child_process";import*as FS from"util";import ud from"chalk";var Q_=FS.promisify(BS.exec),J_={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function dd(e,t={}){let n={...J_,...t},r=e.trim(),o=$m(r);if(o)return o.startsWith("[Blocked]")&&(console.log(ud.yellow(`
275
- ${o}`)),console.log()),o;try{console.log(ud.dim(`
276
- [Executing: ${r}]`));let{stdout:s,stderr:a}=await Q_(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(ud.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(ud.red(`
283
- [Shell Error: ${c}]`)),console.log(),`[Shell command failed: ${r}]
284
-
285
- Error: ${c}`}}i(dd,"executeShellCommand");async function zp(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return dd(n,t)}return e}i(zp,"processSpecialSyntax");function Z_(e){return e.trim().startsWith("!")}i(Z_,"isShellCommand");function eP(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}i(eP,"isShellCommandSuccess");function Za(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}i(Za,"isShellCommandHandled");function fd(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(fd,"createRetryHistoryItem");function Xp(e,t,n,r){e(fd(t,n,r))}i(Xp,"emitRetryHistoryItem");function md(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(md,"createRecoveryHistoryItem");function Yp(e,t){e(md(t))}i(Yp,"emitRecoveryHistoryItem");import{jsx as oe,jsxs as jt,Fragment as zL}from"react/jsx-runtime";import Db,{useState as Ne,useCallback as K,useRef as fe,useEffect as He,useMemo as ue,useDeferredValue as XL}from"react";import{jsx as qn,Fragment as tP,jsxs as pd}from"react/jsx-runtime";var qp=" | ",WS=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(),y=l?.trim(),T=u?.trim(),x=e?p?`Search /${p}`:"Search":"Transcript",b=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,L=e&&s>0?`${Math.max(0,o)}/${s}`:void 0,$=e&&g||y,j=!!($||T);return pd(k,{flexDirection:"column",children:[pd(k,{paddingX:1,children:[qn(C,{color:m.colors.dim,children:x}),qn(C,{dimColor:!0,children:qp}),qn(C,{color:m.colors.dim,children:b}),L||I?qn(k,{flexGrow:1}):null,L?pd(tP,{children:[qn(C,{dimColor:!0,children:L}),I?qn(C,{dimColor:!0,children:qp}):null]}):null,I?qn(C,{color:m.colors.accent,bold:!0,children:I}):null]}),j?pd(k,{paddingX:1,children:[$?qn(C,{color:m.colors.dim,children:$}):null,$&&T?qn(C,{dimColor:!0,children:qp}):null,T?qn(C,{color:m.colors.accent,bold:!0,children:T}):null]}):null]})},"TranscriptModeFooter");import{jsx as nP,jsxs as rP}from"react/jsx-runtime";var US=i(({banner:e,...t})=>rP(k,{flexDirection:"column",children:[e,nP(Po,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as oP,jsxs as iP}from"react/jsx-runtime";var jS=i(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...o})=>iP(k,{flexDirection:"column",children:[e,oP(Lp,{...o,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as sP,jsx as aP}from"react/jsx-runtime";var GS=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 aP(k,{paddingX:1,backgroundColor:r.colors.inputBackground,children:sP(C,{color:o,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as Gr,Fragment as cP,jsxs as Qp}from"react/jsx-runtime";var lP=" \u23BF ";function uP(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(uP,"resolveSymbolColor");var dP=i(({row:e})=>{let t=uP(e.symbolColor),n=e.kind!=="item";return Qp(k,{flexDirection:"row",children:[Gr(C,{color:t,bold:e.isActive,children:e.symbol}),Gr(C,{children:" "}),Gr(C,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?Qp(cP,{children:[Gr(C,{children:" "}),Gr(C,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),KS=i(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=te("dark").colors.dim;return Qp(k,{flexDirection:"row",children:[Gr(C,{color:t,children:lP}),Gr(k,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>Gr(dP,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");function fP(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(fP,"symbolForStatus");function mP(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(mP,"pickAnchorIndex");function pP(e){let{symbol:t,color:n}=fP(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(pP,"buildItemRow");function gP(e){return{kind:"summary_done",symbol:"\u2713",symbolColor:"green",text:`${e} done`,isActive:!1}}i(gP,"buildDoneSummary");function Jp(e){return{kind:"summary_pending",symbol:"\u2610",symbolColor:"dim",text:`+${e} more`,isActive:!1}}i(Jp,"buildPendingSummary");function hP(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}i(hP,"pickFailedToPromote");function yP(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(yP,"decideWindow");function VS(e,t){let n=e.length,r=e.reduce((y,T)=>T.status==="completed"?y+1:y,0),o=i((y,T)=>({shouldRender:T,rows:y,completedCount:r,totalCount:n}),"baseVm");if(n<1)return o([],!1);t.now,t.lastAllCompletedAt;let s=mP(e),a=yP(e,s),c=new Set(a.visibleIdx),l=hP(e,c),u=[...a.visibleIdx],m=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let y=-1;for(let T=u.length-1;T>=0;T--){let x=u[T];if(x!==s&&e[x].status==="pending"){y=T;break}}if(y>=0){let T=u[y];u[y]=l,p+=1,u.sort((I,L)=>I-L);let x=u[0],b=0;for(let I=0;I<x;I++)e[I].status==="completed"&&b++;m=b}}let g=[];m>0&&g.push(gP(m));for(let y of u)g.push(pP(e[y]));if(p>0&&g.push(Jp(p)),g.length>6)for(;g.length>6;){let y=!1;for(let T=g.length-1;T>=0;T--){let x=g[T];if(x.kind==="item"&&!x.isActive){g.splice(T,1);let b=g[g.length-1];if(b&&b.kind==="summary_pending"){let I=/\+(\d+) more/.exec(b.text),L=I?Number.parseInt(I[1],10)+1:1;g[g.length-1]=Jp(L)}else g.push(Jp(1));y=!0;break}}if(!y)break}return o(g,!0)}i(VS,"buildTodoPlanViewModel");function zS(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(zS,"buildFooterHeaderViewModel");function xP(e){return xl(e.provider,e.model,"off",{longRunning:!0})}i(xP,"evaluateSessionTransitionPolicy");function wP(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(wP,"formatSessionTransitionGuardMessage");function Oo(e,t,n){let r=xP(e);if(!r||r.status==="allow")return!0;let[o,...s]=wP(t,r);return n(r.status,o,s),r.status!=="block"}i(Oo,"enforceSessionTransitionGuard");function TP(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(TP,"summarizeEntry");function XS(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} ${TP(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,m)=>{XS(u,l,m===e.children.length-1,r)})}i(XS,"formatNode");function gd(e){let t=[];return e.forEach((n,r)=>{XS(n,"",r===e.length-1,t)}),t}i(gd,"formatSessionTree");var SP=100,CP=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,qS=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,QS=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,JS=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function ps(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(ps,"readString");function Dt(e,t,n){n&&e.push({label:t,value:n})}i(Dt,"pushField");function bP(e){return e.replace(/\s+/g," ").trim()}i(bP,"normalizeWhitespace");function vP(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(vP,"truncateMiddle");function IP(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(IP,"maskSensitiveSegments");function YS(e){return vP(IP(bP(e)),SP)}i(YS,"summarizeCommand");function kP(e){return Mn(e)?Q("intent.read"):qS.test(e)?Q("intent.delete"):QS.test(e)?Q("intent.deps"):An(e)||JS.test(e)?Q("intent.modify"):Q("intent.execute")}i(kP,"classifyShellIntent");function RP(e){let t=[];return qS.test(e)?t.push(Q("risk.destructive")):QS.test(e)?t.push(Q("risk.deps")):An(e)||JS.test(e)?t.push(Q("risk.modify")):Mn(e)||t.push(Q("risk.unknown")),CP.test(e)&&t.push(Q("risk.network")),t}i(RP,"classifyShellRisks");function EP(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}i(EP,"readSignals");function MP(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(MP,"scopeFromSignals");function AP(e){if(e._outsideProject===!0)return Q("scope.outside");if(e._alwaysConfirm===!0)return Q("scope.protected")}i(AP,"scopeFromMarkers");function _P(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(_P,"risksFromSignals");var PP={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function LP(e){return Q(PP[e])}i(LP,"localizeFieldLabel");function gs(e,t){return{title:e,fields:t,details:t.map(n=>`${LP(n.label)}: ${n.value}`)}}i(gs,"buildDisplayFromFields");function hd(e,t){if(e==="confirm"){let l=ps(t._message);if(l)return gs(l,[])}if(e==="exit_plan_mode"){let l=ps(t.plan),u="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:u,fields:[],details:l.split(`
286
- `)}:gs(u,[])}let n=[],r=ps(t.path),o=ps(t.command),s=ps(t._reason)??ps(t.justification),a=EP(t._classifierSignals),c=MP(a)??AP(t);switch(Dt(n,"Reason",s),e){case"bash":case"shell_command":{if(o){Dt(n,"Intent",kP(o)),Dt(n,"Scope",c);let l=_P(a),u=l.length>0?l:RP(o);u.length>0&&Dt(n,"Risk",u.join("; ")),Dt(n,"Summary",YS(o))}else Dt(n,"Scope",c);return gs(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),gs(Q("tool.write.title"),n);case"edit":return Dt(n,"Intent",Q("intent.edit_file")),Dt(n,"Target",r),Dt(n,"Scope",c),gs(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",YS(o)),gs(Q("tool.generic.title",{tool:e}),n)}}i(hd,"buildToolConfirmationDisplay");function ZS(e,t){let n=hd(e,t);return n.details.length>0?`${n.title}
287
- ${n.details.join(`
288
- `)}`:n.title}i(ZS,"buildToolConfirmationPrompt");async function yd(e){let t=await Py({userKodaxDir:py(),projectRoot:e.projectRoot}),n;return{getGuardrail:i(()=>n||(n=Ly({rules:t.merged,claudeMd:gy(e.getAgentsFiles()),getToolProjection:i(o=>(gl(o)??yy(o))?.toClassifierInput,"getToolProjection"),resolveProvider:i(o=>{try{return ci(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(yd,"bootstrapAutoMode");var Zp=[" \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 Ke from"chalk";var xd=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 ")}},Qn=i(()=>xd.getInstance(),"getShortcutsRegistry");var hs=[{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 $P,useCallback as OP,useRef as DP}from"react";function gr(e,t,n={}){let{context:r,isActive:o=!0}=n,s=Qn(),a=DP(t);a.current=t,$P(()=>(s.setHandler(e,(...u)=>a.current(...u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=OP(u=>{if(!o)return!1;let p=s.getAllShortcuts().find(x=>x.definition.id===e);if(!p)return!1;let g=r??p.definition.context,y=g==="global"?"input":g,T=s.findMatchingShortcut(u,y);return T&&T.definition.id===e?a.current()===!0:!1},[s,e,o,r]),l=NP(e,s);nn(c,{isActive:o,priority:l})}i(gr,"useShortcut");function NP(e,t){let r=t.getAllShortcuts().find(o=>o.definition.id===e);return r?r.definition.priority:0}i(NP,"getShortcutPriority");import HP,{createContext as BP,useContext as FP,useState as eC,useCallback as eg}from"react";var tC=BP(null);function tg({children:e,initialContext:t="input"}){let[n,r]=eC(!1),[o,s]=eC(t);Qn().registerAll(hs);let c=eg(()=>{r(p=>!p)},[]),l=eg(()=>{let g=Qn().getAllShortcuts(),y={global:[],mode:[],navigation:[],editing:[]};for(let T of g){let x=T.definition.category;y[x]||(y[x]=[]),y[x].push(T)}return y},[]),u=eg(()=>Qn().getShortcutsByContext(o),[o]),m={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:o,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return HP.createElement(tC.Provider,{value:m},e)}i(tg,"ShortcutsProvider");function ng(){let e=FP(tC);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}i(ng,"useShortcutsContext");import WP from"chalk";function rg({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:y,canOpenTranscriptSearch:T=!0,isInteractiveDialogActive:x=!1,onSetAgentMode:b,onSetPermissionMode:I,isInputEmpty:L,onSavePermissionMode:$}){return gr("interrupt",()=>n?(r(),o(),s(),a(void 0),c(!1),console.log(WP.yellow(`
289
- [Interrupted]`)),!0):!1,{isActive:n}),gr("showHelp",()=>x?!1:L?(l(),!0):!1,{isActive:L}),gr("toggleThinking",()=>{if(x)return!1;let j=oo.indexOf(e.reasoningMode),D=oo[(j+1)%oo.length],S=D!=="off";return t(J=>({...J,thinking:S,reasoningMode:D})),ar({reasoningMode:D,thinking:S}),p?.(D),m?.(S),u(!1),!0}),gr("toggleTranscriptMode",()=>x?!1:(g?.(),u(!1),!0)),gr("openTranscriptSearch",()=>x||!T?!1:(y?.(),u(!1),!0)),gr("togglePermissionMode",()=>{if(x)return!1;let j=["plan","accept-edits","auto-in-project"],S=(j.indexOf(e.permissionMode)+1)%j.length,J=j[S];return t(ce=>({...ce,permissionMode:J})),I?.(J),$?.(J),u(!1),!0}),gr("toggleAgentMode",()=>{if(x)return!1;let j=e.agentMode==="ama"?"sa":"ama";return t(D=>({...D,agentMode:j})),ar({agentMode:j}),b?.(j),u(!1),!0}),null}i(rg,"GlobalShortcuts");import{exec as UP}from"child_process";import{promisify as jP}from"util";var GP=jP(UP),KP={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function nC(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(nC,"splitTopLevelCommaList");function VP(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:nC(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=KP[o[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=o[2]?nC(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(VP,"parseAllowedTools");function zP(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}i(zP,"wildcardToRegExp");function rC(e,t){return zP(e).test(t)}i(rC,"matchesPattern");function oC(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=>rC(a,o)))}i(oC,"isToolAllowed");function XP(e,t){return e.matcher?rC(e.matcher,t):!0}i(XP,"hookMatches");function YP(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(YP,"formatManualOutput");function qP(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(qP,"resolveModelOverride");async function QP(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(!oC(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 GP(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(QP,"executeHookCommand");async function ys(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(!XP(u,n))continue;let m=await QP(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(ys,"runHooks");async function wd(e,t,n,r){if(t.disableModelInvocation)return{mode:"manual",manualOutput:YP(t),finalize:i(async()=>{},"finalize")};let o=e.events??{},s=VP(t.allowedTools),a=qP(e.provider,t.model),c=!1,l=i(async b=>{if(r(b),!(c||!t.hooks?.Notification?.length)){c=!0;try{await ys(t.hooks,"Notification",b,{displayName:t.displayName,source:t.source,path:t.path,message:b},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 ys(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 ys(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(b=>typeof b=="string"&&b.trim().length>0),g=[p.length>0?p.join(`
293
-
294
- `):void 0,t.prompt,`User request: ${n}`].filter(b=>typeof b=="string"&&b.trim().length>0),y={...o,beforeToolExecute:i(async(b,I)=>oC(s,b,I)?(await ys(t.hooks,"PreToolUse",b,{tool:b,input:I,displayName:t.displayName,source:t.source,path:t.path},l,o,s)).allow===!1?(await l(`[Blocked] PreToolUse hook blocked '${b}' for ${t.displayName}`),!1):o.beforeToolExecute?await o.beforeToolExecute(b,I):!0:(await l(`[Blocked] Tool '${b}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:i(b=>{o.onToolResult?.(b),ys(t.hooks,"PostToolUse",b.name,{...b,displayName:t.displayName,source:t.source,path:t.path},l,o,s)},"onToolResult")},T=!1,x=i(async b=>{T||(T=!0,await ys(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:b?.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:y},finalize:x}}i(wd,"prepareInvocationExecution");import{appendFileSync as JP,mkdirSync as ZP,writeFileSync as eL}from"node:fs";import{join as sC}from"node:path";import iC from"node:v8";var sg=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),ag=sg>=1,cg=di(),aC=sC(cg,"memory-diag.log"),og=0,ig=!1;function cC(){if(!ig)try{ZP(cg,{recursive:!0}),ig=!0}catch{ig=!0}}i(cC,"ensureLogDir");function tL(e){cC();try{JP(aC,e+`
297
- `)}catch{}}i(tL,"writeLog");function mt(e){return`${(e/1024/1024).toFixed(2)}MB`}i(mt,"formatMB");function nL(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}i(nL,"tryGC");function Ct(e){return e?e.length*2:0}i(Ct,"strBytes");function Do(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+=Do(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+=Do(o,t+1);return n}return 16}i(Do,"estimateJsonBytes");function lC(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+=lC(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+=Do(t.input));for(let[o,s]of Object.entries(t))r.has(o)||(n+=o.length*2+Do(s));return n}i(lC,"estimateBlockBytes");function lg(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+=lC(n);return t}return 200}i(lg,"estimateMessageBytes");function Td(e){let t=128;switch(t+=Ct(e.id)+Ct(e.parentId??void 0)+Ct(e.timestamp),e.type){case"message":return t+lg(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+=Do(e.details)),e.memorySeed!==void 0&&(t+=Do(e.memorySeed)),t;case"branch_summary":return t+=Ct(e.summary),t+=Ct(e.fromId),e.details!==void 0&&(t+=Do(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(Td,"estimateEntryBytes");function rL(e){let t={},n=[];for(let o=0;o<e.length;o++){let s=e[o],a=lg(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(rL,"buildMessageBreakdown");function Sd(){return ag}i(Sd,"memDiagEnabled");function Cd(e,t){if(!ag)return;e==="turn-start"&&og++;let n=process.memoryUsage(),r=new Date().toISOString(),o=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${og} 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=iC.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)'),nL()){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(sg>=2)try{let u=sC(cg,`heap-turn${og}-${e}.heapsnapshot`);iC.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}tL(s.join(`
298
- `))}i(Cd,"memDiagSnapshot");function bd(e,t,n){let r=rL(e),o=new Set(e),s=0,a=0,c=0,l=0,u=0,m=0,p=0,g=0,y=t?.entries??[];for(let I of y)switch(I.type){case"message":g++,o.has(I.message)||(c++,a+=lg(I.message));break;case"compaction":l++,s+=Td(I);break;case"branch_summary":u++,s+=Td(I);break;case"label":m++,s+=Td(I);break;case"archive_marker":p++,s+=Td(I);break}let T=0;for(let I of n.historyItems)T+=Ct(I.text);let x=0;for(let I of n.foregroundItems)x+=Ct(I.text);let b=0;for(let I of n.persistedUiHistory)b+=Ct(I.text);return{messageCount:e.length,messageBytes:r.totalBytes,biggestMessages:r.biggest,lineageEntryCount:y.length,lineageMessageEntryCount:g,lineageCompactionCount:l,lineageBranchSummaryCount:u,lineageLabelCount:m,lineageArchiveMarkerCount:p,lineageNonMessageBytes:s,lineageOrphanMessageBytes:a,lineageOrphanMessageCount:c,historyItemCount:n.historyItems.length,historyTextBytes:T,foregroundItemCount:n.foregroundItems.length,foregroundTextBytes:x,streamingResponseBytes:Ct(n.streamingResponse),streamingThinkingBytes:Ct(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:b}}i(bd,"buildMemDiagBreakdown");function uC(){if(ag){cC();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${sg} 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
- `);eL(aC,t+`
300
- `)}catch{}}}i(uC,"memDiagReset");import oL from"node:fs";import dg from"node:path";var iL={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},sL=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function aL(e){return iL[dg.extname(e).toLowerCase()]}i(aL,"resolveImageMediaType");var ug="[Image unavailable]";function cL(e){return`[Image #${e}]`}i(cL,"buildImageAnchor");function ec(e,t){let n=[],r=[],o=new Set,s=new Map,a=new Set,c=[],l=0;for(let m of e.matchAll(sL)){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 y=aL(g);if(!y){c.push(m[0]),l=p+m[0].length;continue}let T=dg.resolve(t,g);try{if(!oL.statSync(T).isFile()){a.has(T)||(r.push(`[Image input skipped] ${g} is not a file.`),a.add(T)),c.push(ug),l=p+m[0].length;continue}}catch{a.has(T)||(r.push(`[Image input missing] ${g} was not found from ${t}.`),a.add(T)),c.push(ug),l=p+m[0].length;continue}if(!o.has(T)){o.add(T);let x=cL(n.length+1);s.set(T,x),n.push({kind:"image",path:T,mediaType:y,source:"user-inline",description:`Attached image ${dg.basename(T)}`})}c.push(s.get(T)??ug),l=p+m[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:Sy(u,n),inputArtifacts:n,warnings:r}}i(ec,"preparePromptInputArtifacts");function dC(e){let t=lL(e.stage),n=uL(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}i(dC,"createRepoIntelTraceHistoryItem");function lL(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(lL,"stageDisplayName");function uL(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(`${dL(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?fL(e.summary):t.join(" \xB7 ")}i(uL,"buildRepoIntelDetailLine");function dL(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(dL,"formatTokens");function fL(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}i(fL,"stripSummaryStagePrefix");function mL(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(mL,"formatHarnessProfileShort");function fC(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(fC,"mergeLiveThinkingContent");function tc(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,r=mL(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(tc,"formatManagedTaskBreadcrumb");function mC(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(mC,"buildManagedRunContext");var pL=["global","mode","navigation","editing"],gL={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},hL={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},yL={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 xL(e){let t=Qn(),n=t.getAllShortcuts().find(o=>o.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let r=hs.find(o=>o.id===e);if(r?.defaultBindings?.length)return t.formatBindings(r.defaultBindings)}i(xL,"resolveShortcutBindingLabel");function wL(e){return`${xL(e.id)??e.id} ${e.name}`}i(wL,"buildMenuItemLabel");function TL(e){return Qn().getAllShortcuts().find(r=>r.definition.id===e)?.definition??hs.find(r=>r.id===e)}i(TL,"resolveShortcutDefinition");function vd(){return[...pL.map(t=>{let n=gL[t].map(r=>TL(r)).filter(r=>!!r).map(r=>({id:r.id,label:wL(r)}));return{id:t,title:hL[t],items:n}}).filter(t=>t.items.length>0),yL]}i(vd,"buildHelpMenuSections");var fg=2,pC=1,gC=4;function Ye(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(Ye,"wrapLineCount");function SL(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(SL,"calculateInputPromptRows");function hC(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:y,suggestionsMode:T="inline",showHelp:x,statusBarText:b,confirmPrompt:I,confirmInstruction:L,uiRequest:$,dialogMode:j="inline",historySearch:D,maxVisibleSelectOptions:S=5,reviewHint:J,todoSurfaceRows:ce=0,activityBarVisible:Te=!1}=e,B=Math.max(0,Math.floor(ce)),X=a?Ye(a,Math.max(1,n-2)):0,v=c?Ye(c,Math.max(1,n-2)):0,M=Te?Math.max(1,v):v,Z=l?Ye(l,Math.max(1,n-2)):0,Ce=u?Ye(u,Math.max(1,n-2)):0,de=m?Ye(m,Math.max(1,n-2)):0,Be=p?Ye(p,Math.max(1,n-2)):0,se=g?Ye(g,Math.max(1,n-2)):0,ie=SL(o,n,s),ne=y?8:0,V=x?pC+gC+vd().reduce((P,Y)=>P+Ye(Y.title,Math.max(1,n-fg))+Ye(Y.items.map(we=>we.label).join(" | "),Math.max(1,n-fg)),0):0,xe=Ye(b,Math.max(1,n-2)),ot=0;if(I&&L){let P=Math.max(1,n-4);ot=3+Ye(`[Confirm] ${I}`,P)+Ye(L,P)}let be=0,ve=0;if($){let P=Math.max(1,n-4);$.kind==="select"?(ve=Math.min(S,$.options.length),be=3+Ye(`[Select] ${$.title}`,P)+$.options.slice(0,ve).reduce((Y,we,Ve)=>Y+Ye(`${Ve+1}. ${we.label}${we.description?` - ${we.description}`:""}`,P),0)+($.options.length>ve?2:0)+Ye(`Choice: ${$.buffer||"(type a number)"}`,P)+1+($.error?Ye($.error,P):0)):be=3+Ye(`[Input] ${$.prompt}`,P)+($.defaultValue!==void 0?Ye(`Default: ${$.defaultValue}`,P):0)+Ye(`Value: ${$.buffer||"(type your response)"}`,P)+1+($.error?Ye($.error,P):0)}let $e=0;if(D){let P=Math.max(1,n-4);$e=3+Ye(`Query: ${D.query||"(type to search)"}`,P)+(D.matchCount===0?Ye("No matches yet",P):Ye(`${Math.max(1,D.matchCount)} matches`,P)+Ye(D.selectedExcerpt||"",P))+1}let Se=J?Ye(J,Math.max(1,n-2)):0,pt=X+M+B+Z+Ce+de+ie+V+Be+Se+(T==="inline"?ne:0)+(j==="inline"?ot+be+$e:0),Je=(T==="overlay"?ne:0)+(j==="overlay"?ot+be+$e:0),qe=pt+se+xe,A=Math.max(1,t-qe);return{messageRows:A,reservedBottomRows:qe,headerRows:X,activityRows:M,pendingInputRows:Z,stashNoticeRows:Ce,notificationRows:de,workStripRows:se,inputRows:ie,suggestionsRows:ne,helpRows:V,statusNoticeRows:Be,statusRows:xe,confirmRows:ot,uiRequestRows:be,historySearchRows:$e,footerRows:pt,overlayRows:Je,visibleSelectOptions:ve,reviewHintRows:Se,todoSurfaceRows:B,slots:[{name:"transcript",rows:A},{name:"footer",rows:pt},{name:"overlay",rows:Je},{name:"status",rows:xe},{name:"task-bar",rows:se}]}}i(hC,"calculateViewportBudget");function yC(e,t={}){let n=Ii(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(yC,"createTranscriptDisplayState");function xC(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(xC,"enterTranscriptMode");function wC(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(wC,"exitTranscriptMode");function TC(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}i(TC,"setTranscriptPendingLiveUpdates");function SC(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}i(SC,"setTranscriptScrollAnchor");function CC(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(CC,"jumpTranscriptToLatest");function bC(e,t){return{...e,stickyPromptVisible:t}}i(bC,"setTranscriptStickyPromptVisible");function xs(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}i(xs,"setTranscriptSelectedItem");function vC(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(vC,"openTranscriptSearch");function IC(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}i(IC,"closeTranscriptSearch");function kC(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}i(kC,"setTranscriptSearchMatchIndex");function RC(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}i(RC,"shouldWindowTranscript");function EC(e){return e.surface==="transcript"}i(EC,"shouldPauseLiveTranscript");function mg(e){return e.supportsSelection}i(mg,"ownsTranscriptSelectionPath");function Id(e,t,n){if(!(!mg(e)||!n))return t.includes(n)?n:void 0}i(Id,"resolveTranscriptSelectedItemId");function MC(e){return e.supportsSelection&&e.supportsCopyOnSelect}i(MC,"supportsPassiveTranscriptCopyOnSelect");function AC(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(AC,"buildTranscriptBrowseHint");var _C="Slash commands cannot be queued mid-task. Press Esc to abort the current task, then run the command.",PC="slash-guard";function LC(e){return e.trimStart().startsWith("/")}i(LC,"isSlashCommandText");var CL=`
303
-
304
- ---
305
-
306
- `;async function $C(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(CL),await s?.(c),l=await n(c)}}i($C,"runQueuedPromptSequence");function DC(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}i(DC,"hasTranscriptInputActivity");function bL(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}i(bL,"shouldHandleManagedTranscriptMouse");function OC(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}i(OC,"shouldHandleManagedTranscriptWheel");function NC(e){if(bL({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"?OC({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?OC({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(NC,"resolveTranscriptPointerAction");function vL(e){return e.isTranscriptMode&&e.hasTextSelection}i(vL,"shouldDeferInterruptToTranscriptSelectionCopy");function HC(e){return e.ctrl&&e.keyName==="c"?vL({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(HC,"resolveStreamingInterruptAction");function BC(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(BC,"resolveTranscriptKeyboardAction");function FC(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(FC,"executeTranscriptKeyboardAction");function No(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(No,"stripAnsi");function IL(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
307
- `)}i(IL,"serializeToolGroup");function kL(e){switch(e.type){case"thinking":return null;case"user":return`user: ${No(e.text)}`;case"assistant":return`assistant: ${No(e.text)}`;case"system":return`system: ${No(e.text)}`;case"info":return`info: ${No(e.text)}`;case"error":return`error: ${No(e.text)}`;case"event":return`event: ${No(e.text)}`;case"hint":return`hint: ${No(e.text)}`;case"tool_group":return IL(e);default:return e}}i(kL,"serializeOne");function RL(e){let t=[];for(let n of e){let r=kL(n);r!==null&&r!==""&&t.push(r)}return t.join(`
308
-
309
- `)}i(RL,"serializeTranscriptForScrollback");function WC(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:o}=e,s=RL(t);r(),s.length>0&&n(`${s}
310
- `),o()}i(WC,"dumpTranscriptToNativeScrollback");function EL(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(EL,"buildSearchText");function ML(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(ML,"buildExcerpt");function UC(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:EL(t)}))}i(UC,"createTranscriptSearchIndex");function jC(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:ML(o,t.trim())}]:[]}):[]}i(jC,"searchTranscriptIndex");function pg(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(pg,"stepTranscriptSearchMatch");function GC(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(GC,"buildTranscriptSearchSummary");function KC(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(KC,"resolveTranscriptSearchMatchIndex");function VC(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:AL(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(VC,"buildTranscriptSelectionSummary");function AL(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}i(AL,"summarizeToolGroup");function zC(e){return e.map(t=>t.id)}i(zC,"getSelectableTranscriptItemIds");function XC(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(XC,"moveTranscriptSelection");function gg(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(gg,"buildTranscriptCopyText");function YC(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(YC,"buildTranscriptToolInputCopyText");import{useCallback as nc,useRef as _L,useState as qC}from"react";function QC(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:o,isTranscriptMode:s,historySearchQuery:a}=e,c=AC(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(QC,"buildTranscriptChromeModel");function JC(e){return Math.max(1,e-2)}i(JC,"resolveTranscriptPageSize");function ZC(e){return Math.max(3,Math.floor(e/4))}i(ZC,"resolveTranscriptWheelStep");function PL(e,t){return Math.max(0,e+t)}i(PL,"incrementTranscriptScrollOffset");function eb(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}i(eb,"clampTranscriptScrollOffset");function tb(){let e=_L(null),[t,n]=qC(0),[r,o]=qC(!0),s=nc(m=>{n(Math.max(0,m))},[]),a=nc(m=>{o(m)},[]),c=nc(m=>{if(e.current){e.current.scrollTo(m);return}n(Math.max(0,m)),o(m===0)},[]),l=nc(m=>{if(e.current){e.current.scrollBy(m);return}n(p=>PL(p,m)),o(!1)},[]),u=nc(()=>{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(tb,"useTranscriptViewportScrollController");function nb(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??is(t,r,o,u,l)).find(T=>T.key===a);if(!p||p.rows.length===0)return!1;let g=new Set(c.map(T=>T.key)),y=Math.max(0,s??0);return y>0&&p.rows.length<=y?p.rows.every(T=>g.has(T.key)):g.has(p.rows[0]?.key??"")}i(nb,"isTranscriptItemVisible");function rb(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:o,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,u=n?.sections??is(t,r,o,l,c);return oS(u,a,s)}i(rb,"resolveTranscriptSelectionOffset");function ob(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??is(t,o,s,u,l),g=n?.rows??_o(p),T=vp(g,a,c)[0]?.key,x=T?p.find(b=>b.rows.some(I=>I.key===T)):void 0;if(x?.key)return x.key}return t[t.length-1]?.id}i(ob,"resolveTranscriptSearchAnchorItemId");function ib(e){let t=Ta(e.stickyHeader),n=nu(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}i(ib,"resolveTranscriptOwnedWindowGeometry");function LL(e){return e.text===" "?"":e.text}i(LL,"normalizeTranscriptRowText");function hg(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}i(hg,"buildTranscriptRowIndexByKey");function $L(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}i($L,"resolveTranscriptTextStartColumn");function sb(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??hg(t.allRows??e),o=e.map((s,a)=>{let c=LL(s),l=$L(s,t),u=Wr(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+aS(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(sb,"buildTranscriptScreenBuffer");function OL(e,t){let n=Math.max(1,Math.floor(t));return cS(e.text,n-e.textStartColumn)}i(OL,"clampTextColumn");function yg(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:OL(e,t)}}}i(yg,"toHit");function xg(e,t,n){let r=e.rows.find(o=>o.screenRow===t);return r?yg(r,n):void 0}i(xg,"hitTestTranscriptScreen");function wg(e,t,n){if(e.rows.length!==0)return t<=e.topRow?yg(e.rows[0],n):t>=e.bottomRow?yg(e.rows[e.rows.length-1],n):xg(e,t,n)}i(wg,"clampTranscriptScreenHit");function ab(e){return e.text===" "?"":e.text}i(ab,"normalizeTranscriptRowText");function cb(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(cb,"comparePoints");function lb(e,t,n,r={}){if(e.length===0)return;let[o,s]=cb(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=cb(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:Wr(ab(u))}:s,g=new Map,y=[],T=0;for(let x=m.modelRowIndex;x<=p.modelRowIndex;x+=1){let b=e[x];if(!b)continue;let I=ab(b),L=Wr(I),$=x===m.modelRowIndex?m.column:0,j=x===p.modelRowIndex?p.column:L,D=Math.max(0,Math.min($,L)),S=Math.max(D,Math.min(j,L)),J=as(I,D,S);S>D&&(g.set(b.key,{start:D,end:S}),T+=S-D),y.push(J)}if(g.size!==0)return{anchor:t,focus:n,rowRanges:g,rowCount:y.length,charCount:T,text:y.join(`
319
- `)}}i(lb,"buildTranscriptScreenSelection");function ub(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(ub,"buildTranscriptScreenSelectionSummary");function db(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}i(db,"resolveTranscriptDragEdgeScrollDirection");function kd(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}i(kd,"toSelectOptions");function Tg(e){return e.question}i(Tg,"getAskUserDialogTitle");function DL(e){switch(e){case"confirm":return Q("waiting.confirm");case"select":return Q("waiting.select");case"input":return Q("waiting.input")}}i(DL,"formatPromptWaitingText");function fb(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(fb,"buildPromptPlaceholderText");function mb(e){if(e.isTranscriptMode)return;if(e.waitingReason)return{kind:"waiting",text:DL(e.waitingReason),showSpinner:!1};if(!e.isLoading)return;let t=kp({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(mb,"buildPromptActivityViewModel");function pb(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(pb,"buildSurfaceStatusBarProps");function gb(e){let t=mg(e.state),n=t?Id(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&&MC(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}i(gb,"buildTranscriptSelectionRuntimeState");function hb(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(hb,"buildTranscriptSelectionViewModel");function yb(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}i(yb,"buildTranscriptSearchViewModel");function NL(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}i(NL,"clampTranscriptSearchSelectedIndex");function HL(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(HL,"buildTranscriptSearchDetailText");function xb(e){let t=NL(e.matches.length,e.selectedIndex),n=GC(e.matches,t),r=HL({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:yb({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}i(xb,"buildTranscriptSearchChrome");function BL(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}i(BL,"buildDefaultTranscriptSecondaryText");function wb(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(wb,"buildFooterNotifications");function Tb(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(Tb,"buildBaseFooterNotices");function Sb(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}i(Sb,"buildStashNoticeText");function Cb(e){return[...e]}i(Cb,"buildPromptFooterNotices");function FL(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?BL(e.showAllActive):n.join(" | ")}i(FL,"buildTranscriptFooterSecondaryText");function WL(e){let t=[];return e&&t.push(e),t}i(WL,"buildTranscriptFooterBudgetNotices");function bb(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,o=ub(e.textSelection),s=e.textSelection?ls({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?ls({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=FL({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:o,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:o,actionSummary:s,secondaryText:a,budgetNotices:WL(a)}}i(bb,"buildTranscriptFooterViewModel");import{jsx as Qz,jsxs as Jz}from"react/jsx-runtime";function vb(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(vb,"formatAmaWorkStripText");function Ib(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}i(Ib,"stripLiveActivityPrefix");function kb(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?Ib(Hu(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?Ib(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(kb,"buildBackgroundTaskViewModel");function Rb(e,t){if(!(!t||!e||e.agentMode!=="ama"))return vb(e.childFanoutClass,e.childFanoutCount)}i(Rb,"buildAmaWorkStripFromStatus");function Sg(e){let t=Rb(e.status,e.isLoading);return{workStripText:t,backgroundTask:kb({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(Sg,"buildAmaSummaryViewModel");function Cg(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}i(Cg,"captureTranscriptSnapshot");function Eb(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(Eb,"countPendingTranscriptUpdates");function Mb(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}i(Mb,"resolveTranscriptSurfaceItems");function Ab(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(Ab,"buildPromptSurfaceItems");function _b(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}i(_b,"resolveFullscreenShellMode");function UL(e,t){return e.enabled&&_b(e,t)==="virtual"}i(UL,"shouldUseRendererViewportShell");function Pb(e,t){let n=_b(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(Pb,"resolveTranscriptInteractionPolicy");function Lb(e,t,n){return UL(e,t)?t==="transcript"||n:!1}i(Lb,"shouldOwnTranscriptViewport");var jL=500,GL=1,KL=/[\p{L}\p{N}_/.\-+~\\]/u;function VL(e){return e.text===" "?"":e.text}i(VL,"normalizeTranscriptRowText");function $b(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i($b,"comparePoints");function bg(e){return e===""||/\s/.test(e)?0:KL.test(e)?1:2}i(bg,"charClass");function Ob(e){let t=e.timeoutMs??jL,n=e.distance??GL,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(Ob,"resolveTranscriptMultiClickState");function Rd(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let o=VL(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:Wr(o)}};let s=Wr(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=bg(Wu(o,a)),l=a,u=a+1;for(;l>0&&bg(Wu(o,l-1))===c;)l-=1;for(;u<s&&bg(Wu(o,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}i(Rd,"resolveTranscriptSelectionSpanAt");function vg(e,t){return $b(t.end,e.start)<0?{anchor:e.end,focus:t.start}:$b(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}i(vg,"extendTranscriptSelectionSpan");var Nb="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 Ig(e,t){if(zt(e))return[t.getGuardrail()]}i(Ig,"buildAutoModeGuardrails");function YL(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}i(YL,"resolveInitialReasoningMode");function Hb(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()??"",y=m.includes("Orchestration cancelled"),T=p.includes("Orchestration cancelled"),x=!g||p==="No textual output produced.";return u.status!=="completed"&&(y||T||x)||(y||T)&&x},"isInterruptedCancellation"),r=QL(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?Co(m):"",y=p?Co(p):"",T=u.role==="scout"?y?`Scout completed: ${y}`:"Scout completed.":y;return{entry:u,text:y||g||T}}).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(Hb,"buildManagedTaskTranscriptItems");function qL(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(qL,"buildManagedTranscriptCompactText");function Kb(e){return e===`[${Q("managed.completed")}]`||e===`[${Q("managed.completed.blocked")}]`||e===`[${Q("managed.completed.continuation")}]`}i(Kb,"isCompletionTranscriptItem");function Bb(e){let t=qL(e);return{type:"event",icon:Kb(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}i(Bb,"toManagedTranscriptEventItem");function Ho(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(Ho,"toCreatableHistoryItem");function QL(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(QL,"buildManagedTaskRoutingTranscript");function JL(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(JL,"truncateToolPreview");function ZL(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(ZL,"truncateToolOutputPreview");function Mg(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(Mg,"formatManagedLiveActivityLabel");function Kr(e,t){return Mg(`[Tools] ${Du(e)}`,t)??`[Tools] ${Du(e)}`}i(Kr,"formatManagedLiveToolLabel");function kg(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(kg,"areManagedLiveItemsEquivalent");function e$(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(e$,"localizeManagedCompletionSummary");function t$(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&&!Ad)return r;let p=m?`[${e$(s)}]`:void 0,g=p??s,y=p??a;return r.push({item:{id:c,type:"event",timestamp:l,text:y,icon:o.kind==="warning"?"!":m?"\u2713":">",...g!==y?{compactText:g}:{}},persistToHistory:u}),r},[]);if(e.phase==="completed"&&!Ad)return[];let t=tc(e),n=tc(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(t$,"buildManagedLiveEventDrafts");function Vb(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}i(Vb,"stripToolRolePrefix");function Fb(e){return Vb(e).toLowerCase()}i(Fb,"normalizeToolNameForMatch");function Ag(e){return qw(e)?"":Co(e).trim()}i(Ag,"sanitizeInterruptedAssistantText");function Wb(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}i(Wb,"isForegroundManagedStreamingStatus");function n$(e,t,n){let r=[],o=n?.infoItems??[],s=_g({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=Ag(t);return a&&r.push({type:"assistant",text:`${a}
322
-
323
- [Interrupted]`}),r}i(n$,"buildInterruptedPersistenceItems");function _g({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(_g,"buildRoundHistoryItems");function zb(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(zb,"toPersistedUiHistoryItem");var Ub=150,jb=50,Ad=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function Bo(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>jb){let r=t[t.length-jb]??0;n=e.slice(r)}if(n.length>Ub){let r=n.slice(-Ub),o=r.findIndex(s=>s.type==="user");n=o>0?r.slice(o):r}return[...n]}i(Bo,"trimPersistedUiHistorySnapshot");function ws(e){if(e)return Bo(e)}i(ws,"normalizePersistedUiHistory");function Gb(e){return Bo(e.map(t=>zb(t)).filter(t=>!!t))}i(Gb,"serializeUiHistorySnapshot");function r$(e){return e.map(t=>zb(t)).filter(t=>!!t)}i(r$,"serializeCreatableHistoryItems");function Ed(e,t){return t.length===0?Bo(e):Bo([...e,...r$(t)])}i(Ed,"appendPersistedUiHistorySnapshot");function Md(e,t,n){console.log((e==="block"?Ke.red:Ke.yellow)(t)),n.forEach(r=>console.log(Ke.dim(r)))}i(Md,"logSessionTransitionGuard");var Rg=i(({config:e,sessionId:t,workingDir:n,terminalWidth:r,compactionInfo:o})=>{let s=te("dark"),a=e.model??Bn(e.provider)??e.provider,c=co(e.provider,e.model),l=wl(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:[Zp.map((g,y)=>oe(C,{color:s.colors.primary,children:g},y)),jt(k,{children:[jt(C,{bold:!0,color:s.colors.text,children:[" v",wi]}),oe(C,{dimColor:!0,children:" | "}),jt(C,{color:s.colors.success,children:[e.provider,"/",a]}),oe(C,{dimColor:!0,children:` [${l}]`}),oe(C,{dimColor:!0,children:" | "}),oe(C,{color:s.colors.primary,children:e.agentMode.toUpperCase()}),oe(C,{dimColor:!0,children:" | "}),oe(C,{color:s.colors.accent,children:e.permissionMode}),e.reasoningMode!=="off"&&oe(C,{color:s.colors.warning,children:` +reason:${e.reasoningMode}`})]}),o&&jt(k,{children:[oe(C,{dimColor:!0,children:" Context: "}),jt(C,{dimColor:!0,children:[m,"k"]}),oe(C,{dimColor:!0,children:" | Compaction: "}),oe(C,{color:o.enabled?s.colors.success:void 0,dimColor:!o.enabled,children:o.enabled?"on":"off"}),oe(C,{dimColor:!0,children:` @ ${o.triggerPercent}% (${p}k)`})]}),jt(C,{dimColor:!0,children:[" ","-".repeat(u)]}),jt(k,{children:[oe(C,{dimColor:!0,children:" Session: "}),oe(C,{color:s.colors.accent,children:t}),oe(C,{dimColor:!0,children:" | Working: "}),oe(C,{dimColor:!0,children:n})]}),jt(C,{dimColor:!0,children:[" ","-".repeat(u)]})]})},"Banner");function o$(e){let t=e.config.model??Bn(e.config.provider)??e.config.provider,n=co(e.config.provider,e.config.model),r=wl(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${wi} | ${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(T=>{let x=Kt(T.length>0?T.split(`
324
- `):[""],Math.max(1,e.terminalWidth),0,0);return x.visualLines.length>0?x.visualLines:[""]},"wrapBannerLine"),y=i((T,x,b)=>{g(x).forEach((I,L)=>{p.push({key:`${T}-${L}`,text:I,...b})})},"pushLineRows");return Zp.forEach((T,x)=>{y(`banner-logo-${x}`,T,{color:"primary"})}),y("banner-version",c,{color:"text",bold:!0}),l&&y("banner-compaction",l,{color:"dim"}),y("banner-divider-top",m,{color:"dim"}),y("banner-session",u,{color:"dim"}),y("banner-divider-bottom",m,{color:"dim"}),p.push({key:"banner-blank",text:" "}),{key:"banner",rows:p}}i(o$,"buildBannerTranscriptSection");function Eg(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}i(Eg,"prependTranscriptSection");var i$=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:y}=$r(),{stdout:T}=jn(),{stdin:x,setRawMode:b,isRawModeSupported:I}=xa(),L=Ki(),{history:$}=Ga(),j=Db.useRef(null),D=Db.useRef(My()),{addHistoryItem:S,clearHistory:J,setSessionId:ce}=Ka(),Te=fe($),B=fe(Gb($));He(()=>{Te.current=$,B.current=Gb($)},[$]),He(()=>{uC()},[]),He(()=>{dT()},[]);let X=T.columns||80,v=Ya(),M=fe(v);He(()=>{M.current=v},[v]);let{startStreaming:Z,stopStreaming:Ce,abort:de,startThinking:Be,appendThinkingChars:se,appendThinkingContent:ie,stopThinking:ne,clearThinkingContent:V,setCurrentTool:xe,appendToolInputChars:ot,appendToolInputContent:be,clearToolInputContent:ve,clearResponse:$e,appendResponse:Se,getSignal:pt,getFullResponse:Je,getThinkingContent:qe,startNewIteration:A,clearIterationHistory:_,startCompacting:P,stopCompacting:Y,setMaxIter:we,addPendingInput:Ve,removeLastPendingInput:Ie,shiftPendingInput:q,consumePendingInputs:Oe}=qa(),[he,Me]=Ne(!1),[G,lt]=Ne(t),[yr,xr]=Ne(!0),[Hd,a1]=Ne(!0),[mc,pc]=Ne(0),[Bd,bs]=Ne(!1),[jg,Zn]=Ne(null),_0=ue(()=>fo(),[]),gc=fe(null),hc=fe(null),Gg=fe(Promise.resolve()),yc=fe(null),zr=fe({requested:!1,uiHistoryOverride:void 0}),vs=fe(null),Is=fe(!1),ks=fe(null),[Fd,xc]=Ne(!0),[Wd,wc]=Ne(""),[Le,$n]=Ne(()=>yC(_0,{rendererMode:o})),[Nt,Ud]=Ne(!1),[P0,L0]=Ne(0),{scrollRef:$0,scrollOffset:Sn,sticky:jd,setScrollOffset:O0,handleScrollTopChange:D0,handleStickyChange:N0,scrollTo:Tc,scrollBy:Sc,scrollToBottom:Cc}=tb(),Gd=fe(null),bc=fe(null),Rs=fe([]),vc=fe([]),Wo=fe(null),Cn=fe(null),Kg=fe({time:0,row:-1,column:-1,count:0}),[Ic,Kd]=Ne(void 0),[Xr,Vd]=Ne(void 0),[Uo,Vg]=Ne(void 0),[Qt,H0]=Ne(()=>new Set),[zd,zg]=Ne(null),[kt,Xg]=Ne(null),[W,Xd]=Ne(null),[kc,wr]=Ne([]),jo=ue(()=>{for(let f of kc)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}},[kc]),[c1,Es]=Ne([]),[Ms,B0]=Ne([]),[Rc,ct]=Ne(void 0),[Yr,Ec]=Ne(void 0),Ze=fe(null),Yd=fe(null),qr=fe([]),Go=fe([]),sn=fe([]),et=fe({}),ut=fe({activeToolGroupTools:[]}),Yg=fe(0),Mc=fe({itemId:void 0,kind:"thinking",pendingText:""}),bn=fe(null),F0=80,W0=20,U0=fe(null),Ac=ue(()=>[...$,...Ms],[$,Ms]),j0=ue(()=>{let f=nS(Ac,U0);return f===0?Ac:Ac.slice(f)},[Ac]),qd=XL(j0),Qd=ue(()=>rS(qd,W0),[qd]),As=qd,Rt=fe(null),On=fe(null),Dn=fe([]),Et=fe([]),[Qr,G0]=Ne([]),er=fe([]),an=K(f=>{er.current=f,G0(f)},[]),qg=K(f=>{qr.current=f,Es(f)},[]),Ko=K(f=>{sn.current=f,B0(f)},[]),Qg=K(f=>{let h=f([...sn.current]);Ko(h)},[Ko]),Jg=K(f=>{f.length!==0&&Ko([...sn.current,...f])},[Ko]),_c=K(f=>{let h=ut.current,w=h.activeToolGroupTools.some(R=>R.status===O.Executing);ut.current={...f?.clearOwner?{}:{workerId:h.workerId,workerTitle:h.workerTitle},...w?{activeToolGroupItemId:h.activeToolGroupItemId,activeToolGroupTools:h.activeToolGroupTools}:{activeToolGroupTools:[]}},f?.clearOwner&&(et.current={})},[]),_s=K(()=>{Mc.current={itemId:void 0,kind:"thinking",pendingText:""},bn.current&&(clearTimeout(bn.current),bn.current=null),_c({clearOwner:!0}),Ko([])},[_c,Ko]),Pc=K(f=>(Yg.current+=1,`managed-foreground-${f}-${Yg.current}`),[]),vn=K(f=>(Jg([f]),f.id),[Jg]),Jr=K((f,h)=>{et.current.workerId?vn({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()}):S(f)},[S,vn]),Tr=K((f,h)=>{if(!f)return;let w;return Qg(R=>R.map(E=>E.id!==f?E:(w=h(E),w))),w},[Qg]),Vo=K((f,h)=>{let w=ut.current;if(w.activeKind===f){if(f==="thinking"&&w.activeThinkingItemId)return w.activeThinkingItemId;if(f==="assistant"&&w.activeAssistantItemId)return w.activeAssistantItemId;if(f==="tool_group"&&w.activeToolGroupItemId)return w.activeToolGroupItemId}let R=Date.now(),E=h?.trim()?`[${h.trim()}] `:"",H=w.activeToolGroupTools.some(z=>z.status===O.Executing);if(f==="thinking"){let z=vn({id:Pc("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=vn({id:Pc("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 N=vn({id:Pc("tool_group"),type:"tool_group",timestamp:R,tools:[]});return ut.current={...ut.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:N,activeToolGroupTools:[]},N},[vn,Pc]),Sr=K(()=>{bn.current&&(clearTimeout(bn.current),bn.current=null);let f=Mc.current;if(!f.pendingText||!f.itemId)return;let h=f.pendingText,w=f.itemId,R=f.kind;f.pendingText="",Tr(w,E=>E.type!==R?E:{...E,text:`${E.text}${h}`})},[Tr]),Zg=K(()=>{bn.current||(bn.current=setTimeout(Sr,F0))},[Sr]),Lc=K((f,h)=>{if(!h)return;let w=ut.current.workerTitle,R=Vo(f,w),E=Mc.current;E.itemId===R&&E.kind===f?E.pendingText+=h:(Sr(),E.itemId=R,E.kind=f,E.pendingText=h),Zg()},[Vo,Sr,Zg]),eh=K(f=>{let h=f.trim();if(!h)return;let w=Mc.current;w.kind==="thinking"&&w.pendingText&&(w.pendingText="",bn.current&&(clearTimeout(bn.current),bn.current=null));let R=ut.current.workerTitle?.trim(),E=R?`[${R}] ${h}`:h,H=Vo("thinking",ut.current.workerTitle);Tr(H,N=>N.type==="thinking"?{...N,text:E}:N)},[Vo,Tr]),In=K(f=>{Sr();let h=ut.current;if(h.activeToolGroupItemId&&h.activeToolGroupTools.some(N=>N.id===f.id)){let N=h.activeToolGroupTools.map(re=>re.id===f.id?f:re),z=N.every(re=>re.status===O.Success||re.status===O.Error||re.status===O.Cancelled);ut.current={...h,...z?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:N}},Tr(h.activeToolGroupItemId,re=>re.type==="tool_group"?{...re,tools:N}:re);return}let w=sn.current;for(let N=w.length-1;N>=0;N-=1){let z=w[N];if(z.type!=="tool_group"||!z.tools.some(ye=>ye.id===f.id))continue;let re=z.tools.map(ye=>ye.id===f.id?f:ye);Tr(z.id,ye=>ye.type==="tool_group"?{...ye,tools:re}:ye);return}let R=Vo("tool_group",h.workerTitle),H=h.activeKind==="tool_group"&&h.activeToolGroupItemId===R?h.activeToolGroupTools.some(N=>N.id===f.id)?h.activeToolGroupTools.map(N=>N.id===f.id?f:N):[...h.activeToolGroupTools,f]:[f];ut.current={...ut.current,activeKind:"tool_group",activeToolGroupItemId:R,activeToolGroupTools:H},Tr(R,N=>N.type==="tool_group"?{...N,tools:H}:N)},[Vo,Tr,Sr]),K0=K(f=>{Sr();let h=ut.current,w=h.activeToolGroupTools.some(H=>H.status===O.Executing),R=er.current.filter(H=>H.status===O.Executing),E=new Set(R.map(H=>H.id));ut.current={workerId:f?.workerId,workerTitle:f?.workerTitle,...w?{activeToolGroupItemId:h.activeToolGroupItemId,activeToolGroupTools:h.activeToolGroupTools}:{activeToolGroupTools:[]}},et.current={workerId:f?.workerId,workerTitle:f?.workerTitle},Dn.current=[],Et.current=Et.current.filter(H=>E.has(H.id)),an(R),ve(),xe(void 0),ne(),V(),$e(),ct(void 0)},[Sr,ve,$e,V,xe,an,ct,ne]),V0=K(f=>{if(f.length===0)return[];let h=[],w=[...qr.current],R=[...Go.current];for(let E of f){let H=E.item,N=w.findIndex(z=>z.id===H.id);if(N>=0){let z=w[N];kg(z,H)||(w=w.map((re,ye)=>ye===N?{...H,timestamp:z.timestamp}:re))}else w=[...w,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];kg(re,H)||(R=R.map((ye,it)=>it===z?{...H,timestamp:re.timestamp}:ye))}else R=[...R,H].slice(-48)}}return Go.current=R,(h.length>0||w.some((E,H)=>!kg(E,qr.current[H]??E)||E.id!==qr.current[H]?.id))&&qg(w),h},[qg]),$c=K(f=>{if(Et.current.findIndex(w=>w.id===f.id)===-1){Et.current=[...Et.current,f];return}Et.current=Et.current.map(w=>w.id===f.id?f:w)},[]),Cr=K(f=>{let h=er.current.filter(w=>w.status===O.Executing);if(h.length!==0){if(f){let w=Fb(f);for(let R=h.length-1;R>=0;R-=1){let E=h[R];if(Fb(E.name)===w)return E}}return h[h.length-1]}},[]),zo=K(()=>{let f=Cr();xe(f?Vb(f.name):void 0)},[Cr,xe]),th=K(f=>($c(f),an([...er.current.filter(h=>h.id!==f.id),f]),zo(),f),[an,zo,$c]),Xo=K((f,h)=>{let w=er.current.find(E=>E.id===f);if(!w)return null;let R=h(w);return $c(R),an(er.current.map(E=>E.id===f?R:E)),zo(),R},[an,zo,$c]),nh=K((f,h,w)=>{if(f){let E=Xo(f,w);if(E)return E}let R=Cr(h);return R?Xo(R.id,w):null},[Cr,Xo]),Oc=K((f,h,w,R,E)=>{let H=f??Cr(E)?.id;return H?Xo(H,N=>({...N,status:h,endTime:Date.now(),error:w,output:R})):null},[Cr,Xo]),Ps=K((f,h)=>{let w=Date.now(),R=new Map;for(let E of er.current){if(E.status!==O.Executing)continue;let H=h(E);R.set(E.id,{...E,status:f,endTime:w,...H})}return R.size===0?[]:(Et.current=Et.current.map(E=>R.get(E.id)??E),an(er.current.map(E=>R.get(E.id)??E)),zo(),[...R.values()])},[an,zo]),br=K(()=>{an([])},[an]),{showHelp:rh,toggleHelp:z0,setShowHelp:oh}=ng(),X0=K(f=>{wc(f),xc(f.trim().length===0)},[]),Dc=Mo(),ih=ue(()=>Dc?Dc.state.visible&&Dc.suggestions.length>0:!1,[Dc]),[Ls,sh]=Ne(!1),ah=fe(mc),$s=K(()=>{Rt.current&&(clearTimeout(Rt.current),Rt.current=null),On.current&&(clearTimeout(On.current),On.current=null)},[]);He(()=>{ih&&!Ls&&sh(!0)},[ih,Ls]),He(()=>{mc!==ah.current&&(ah.current=mc,Ls&&sh(!1))},[mc,Ls]);let[ze,Nc]=Ne(null),Zr=fe(null),[Ae,kn]=Ne(null),Hc=fe(null),Bc=fe(Ae);Bc.current=Ae;let[Ht,Yo]=Ne(""),[Fc,Rn]=Ne(0),Jd=fe(""),Os=fe(void 0),ch=ue(()=>{if(!c)return;let{contextWindow:f,triggerPercent:h}=c;return{currentTokens:jg??n.contextTokenSnapshot?.currentTokens??io(n.messages),contextWindow:f,triggerPercent:h}},[n.messages,n.contextTokenSnapshot,c,jg]),Ds=ue(()=>{if(!ze)return;let f=!!ze.input._alwaysConfirm,h=G.permissionMode==="accept-edits"&&!f;return f?Q("confirm.instruction.protected"):h?Q("confirm.instruction.always"):Q("confirm.instruction.basic")},[ze,G.permissionMode]),tt=Le.searchMode==="history",ee=Le.surface==="transcript",vr=!!ze||!!Ae||tt,Bt=ee?Nt?QT:1e3:12,Ir=Pb(s,Le.surface),lh=Ir.shellMode,Zd=Ir.usesAlternateScreenShell,qo=Ir.usesRendererViewportShell,Wc=Ir.usesRendererMouseTracking,uh=Ir.usesManagedMouseClicks,dh=Ir.usesManagedMouseWheel,ef=Ir.usesManagedSelection,gt=Lb(s,Le.surface,RC(Le)),fh=EC(Le),Uc=Ls&&!ee,mh=K(()=>Cg({items:As,managedLiveEvents:[],isLoading:he,isThinking:v.isThinking,thinkingCharCount:v.thinkingCharCount,thinkingContent:v.thinkingContent,currentResponse:v.currentResponse,currentTool:v.currentTool,activeToolCalls:Qr,toolInputCharCount:v.toolInputCharCount,toolInputContent:v.toolInputContent,lastLiveActivityLabel:Rc,workStripText:Yr,iterationHistory:v.iterationHistory,currentIteration:v.currentIteration,isCompacting:v.isCompacting}),[As,he,v.isThinking,v.thinkingCharCount,v.thinkingContent,v.currentResponse,v.currentTool,Qr,v.toolInputCharCount,v.toolInputContent,Rc,Yr,v.iterationHistory,v.currentIteration,v.isCompacting]);He(()=>{if(ee){zg(f=>f??mh());return}zg(null)},[mh,ee]);let Ns=ue(()=>Eb({isTranscriptMode:ee,snapshot:zd,currentItemsLength:As.length,currentManagedLiveEventsLength:0,isLoading:he,currentResponse:v.currentResponse,thinkingContent:v.thinkingContent,activeToolCallsLength:Qr.length}),[Qr.length,he,ee,As.length,v.currentResponse,v.thinkingContent,zd]),Mt=ee?zd:null,tf=ue(()=>Ab(Qd),[Qd]),Y0=ue(()=>!!(Ms.length>0||Wb(W)),[Ms.length,W]),jc=Ms.length>0,At=s.streamingPreview&&Y0,Hs=Mb({surface:"transcript",snapshot:Mt,promptItems:Qd,transcriptItems:As}),Bs=ue(()=>!ee||Nt||Hs.length<=bp?Hs:Hs.slice(-bp),[Hs,ee,Nt]),nt=Mt?.isLoading??he,Xe=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?[]:Qr,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:At?Rc: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??Qr,toolInputCharCount:At?0:Mt?.toolInputCharCount??v.toolInputCharCount,toolInputContent:At?"":Mt?.toolInputContent??v.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:Mt?.lastLiveActivityLabel??Rc,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},tr=ee?Xr:Ic,ph=!!Ic,gh=K(()=>Cg({items:tf,managedLiveEvents:[],isLoading:he,isThinking:Xe.isThinking,thinkingCharCount:Xe.thinkingCharCount,thinkingContent:Xe.thinkingContent,currentResponse:Xe.currentResponse,currentTool:Xe.currentTool,activeToolCalls:Xe.activeToolCalls,toolInputCharCount:Xe.toolInputCharCount,toolInputContent:Xe.toolInputContent,lastLiveActivityLabel:Xe.lastLiveActivityLabel,iterationHistory:Xe.iterationHistory,currentIteration:Xe.currentIteration,isCompacting:Xe.isCompacting}),[he,tf,Xe.activeToolCalls,Xe.currentIteration,Xe.currentResponse,Xe.currentTool,Xe.isCompacting,Xe.isThinking,Xe.iterationHistory,Xe.lastLiveActivityLabel,Xe.thinkingCharCount,Xe.thinkingContent,Xe.toolInputCharCount,Xe.toolInputContent]);He(()=>{if(!ph){Xg(null);return}Xg(f=>f??gh())},[gh,ph]);let Fs=kt?.items??tf,Ft=kt?.isLoading??he,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}:Xe,bt=ee?Bs:Fs,Nn=ee?nt:Ft,Fe=ee?me:ke,hh=Ft&&!v.currentResponse&&!v.thinkingContent&&Qr.length===0,eo=ue(()=>({config:G,sessionId:n.sessionId,workingDir:e.context?.gitRoot||process.cwd(),terminalWidth:X,compactionInfo:c??void 0}),[c,n.sessionId,G,e.context?.gitRoot,X]),Qo=ue(()=>s.enabled&&Hd?o$(eo):void 0,[eo,s.enabled,Hd]),Gc=ue(()=>Eg(Cp(ss({items:Fs,viewportWidth:X,isLoading:Ft,maxLines:Bt,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:G.agentMode,managedPhase:Ft?W?.phase:void 0,managedHarnessProfile:Ft?W?.harnessProfile:void 0,managedWorkerTitle:Ft?W?.activeWorkerTitle:void 0,managedRound:Ft?W?.currentRound:void 0,managedMaxRounds:Ft?W?.maxRounds:void 0,managedGlobalWorkBudget:Ft?W?.globalWorkBudget:void 0,managedBudgetUsage:Ft?W?.budgetUsage:void 0,managedBudgetApprovalRequired:Ft?W?.budgetApprovalRequired:void 0,lastLiveActivityLabel:ke.lastLiveActivityLabel,currentTodoActiveForm:jo,windowed:!1,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:hh})),Qo),[G.agentMode,Fs,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,W?.activeWorkerTitle,W?.budgetApprovalRequired,W?.budgetUsage,W?.currentRound,W?.globalWorkBudget,W?.harnessProfile,W?.maxRounds,W?.phase,hh,Qo,X,Bt,jo]),Kc=ue(()=>{if(!(!ee||qo))return Eg(Cp(ss({items:Bs,viewportWidth:X,isLoading:nt,maxLines:Bt,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:G.agentMode,managedPhase:nt?W?.phase:void 0,managedHarnessProfile:nt?W?.harnessProfile:void 0,managedWorkerTitle:nt?W?.activeWorkerTitle:void 0,managedRound:nt?W?.currentRound:void 0,managedMaxRounds:nt?W?.maxRounds:void 0,managedGlobalWorkBudget:nt?W?.globalWorkBudget:void 0,managedBudgetUsage:nt?W?.budgetUsage:void 0,managedBudgetApprovalRequired:nt?W?.budgetApprovalRequired:void 0,lastLiveActivityLabel:me.lastLiveActivityLabel,currentTodoActiveForm:jo,windowed:!1,showFullThinking:!0,showDetailedTools:Nt,showAllContent:Nt,showLiveProgressRows:!jc,expandedItemKeys:Qt})),Qo)},[G.agentMode,Qt,jc,Qo,ee,W?.activeWorkerTitle,W?.budgetApprovalRequired,W?.budgetUsage,W?.currentRound,W?.globalWorkBudget,W?.harnessProfile,W?.maxRounds,W?.phase,X,nt,Bs,Bt,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,qo,jo]),Ws=ue(()=>{if(gt)return ee?Eg(ss({items:bt,viewportWidth:X,isLoading:Nn,maxLines:Bt,isThinking:Fe.isThinking,thinkingCharCount:Fe.thinkingCharCount,thinkingContent:Fe.thinkingContent,streamingResponse:Fe.currentResponse,currentTool:Fe.currentTool,activeToolCalls:Fe.activeToolCalls,toolInputCharCount:Fe.toolInputCharCount,toolInputContent:Fe.toolInputContent,iterationHistory:Fe.iterationHistory,currentIteration:Fe.currentIteration,isCompacting:Fe.isCompacting,managedAgentMode:G.agentMode,managedPhase:Nn?W?.phase:void 0,managedHarnessProfile:Nn?W?.harnessProfile:void 0,managedWorkerTitle:Nn?W?.activeWorkerTitle:void 0,managedRound:Nn?W?.currentRound:void 0,managedMaxRounds:Nn?W?.maxRounds:void 0,managedGlobalWorkBudget:Nn?W?.globalWorkBudget:void 0,managedBudgetUsage:Nn?W?.budgetUsage:void 0,managedBudgetApprovalRequired:Nn?W?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Fe.lastLiveActivityLabel,currentTodoActiveForm:jo,windowed:!0,showFullThinking:ee,showDetailedTools:Nt,showAllContent:Nt,showLiveProgressRows:ee&&!jc,expandedItemKeys:ee?Qt:void 0}),Qo):Gc},[G.agentMode,Nn,bt,jc,Qo,Fe.activeToolCalls,Fe.currentIteration,Fe.currentResponse,Fe.currentTool,Fe.isCompacting,Fe.isThinking,Fe.iterationHistory,Fe.lastLiveActivityLabel,Fe.thinkingCharCount,Fe.thinkingContent,Fe.toolInputCharCount,Fe.toolInputContent,Qt,ee,W?.activeWorkerTitle,W?.budgetApprovalRequired,W?.budgetUsage,W?.currentRound,W?.globalWorkBudget,W?.harnessProfile,W?.maxRounds,W?.phase,Gc,he,ee,X,Bt,gt,Nt,jo]),Hn=ue(()=>Ws??Kc,[Ws,Kc]),Us=ue(()=>Sg({status:W,isLoading:he,agentMode:G.agentMode}),[G.agentMode,he,W]).workStripText,js=Mt?.workStripText??Yr,Jo=ue(()=>Sg({status:W,isLoading:he,agentMode:G.agentMode,parallelTextOverride:js}),[G.agentMode,js,he,W]),to=ue(()=>zC(bt),[bt]),je=ue(()=>Id(Le,to,Le.selectedItemId),[to,Le]),Jt=ue(()=>bt.find(f=>f.id===je),[bt,je]),yh=ue(()=>({...Le,supportsSelection:Le.supportsSelection&&gt,supportsCopyOnSelect:Le.supportsCopyOnSelect&&gt}),[Le,gt]),cn=ue(()=>gb({state:yh,selectableItemIds:to,selectedItemId:je,selectedItemType:Jt?.type,isExpanded:je?Qt.has(je):!1}),[Qt,to,Jt?.type,je,yh]),xh=cn.selectionEnabled,wh=cn.copyCapabilities.copyOnSelect,u1=cn.selectedItemIndex,Th=ue(()=>VC(Jt),[Jt]),Vc=ue(()=>UC(bt),[bt]),Tt=ue(()=>jC(Vc,Ht),[Vc,Ht]),zc=ue(()=>xb({isHistorySearchActive:tt,historySearchQuery:Ht,matches:Tt,selectedIndex:Fc,anchorItemId:Le.searchAnchorItemId,useOverlaySurface:Le.supportsOverlaySurface&&Le.supportsSearchViewport&&gt}),[Tt,Ht,Fc,tt,Le.searchAnchorItemId,Le.supportsOverlaySurface,Le.supportsSearchViewport,gt]),kr=zc.clampedSelectedIndex,Sh=zc.statusText,nf=zc.detailText,Ch=zc.searchState,d1=cn.detailState==="expanded",Xc=cn.selectionEnabled&&to.length>0&&!tr,Zo=cn.copyCapabilities.message,Yc=cn.copyCapabilities.toolInput,qc=cn.toggleDetail;He(()=>{if(Us){if(On.current&&(clearTimeout(On.current),On.current=null),Yr===Us)return;if(Yr){Rt.current&&(clearTimeout(Rt.current),Rt.current=null),Ec(Us);return}Rt.current&&clearTimeout(Rt.current),Rt.current=setTimeout(()=>{Ec(Us),Rt.current=null},400);return}if(!Yr){Rt.current&&(clearTimeout(Rt.current),Rt.current=null);return}Rt.current&&(clearTimeout(Rt.current),Rt.current=null),On.current&&clearTimeout(On.current),On.current=setTimeout(()=>{Ec(void 0),On.current=null},300)},[$s,Us,Yr]),He(()=>()=>{$s()},[$s]);let Rr=ue(()=>QC({state:Le,ownsViewport:gt,isAwaitingUserInteraction:vr,isHistorySearchActive:tt,isTranscriptMode:ee,historySearchQuery:Ht}),[Ht,vr,tt,ee,Le,gt]);He(()=>{$n(f=>{let h=SC(f,Sn);return h=TC(h,Ns),h=bC(h,s.enabled&&gt?!jd||tt||vr:ee||tt||vr),h=kC(h,kr),h})},[kr,s.enabled,Sn,vr,tt,ee,Ns,gt,jd]),He(()=>{Fc!==kr&&Rn(kr)},[kr,Fc]),He(()=>{if(!tt){Jd.current=Ht;return}if(Ht===Jd.current)return;Jd.current=Ht;let f=KC(Vc,Tt,Le.searchAnchorItemId);Rn(f)},[Tt,Ht,tt,Le.searchAnchorItemId,Vc]);let bh=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},Gs=ee?nt:Ft,[rf,of]=Ne(()=>zt(G.permissionMode)?l.getGuardrail().getEngine():void 0),Qc=ue(()=>pb({sessionId:n.sessionId,permissionMode:G.permissionMode,agentMode:G.agentMode,provider:G.provider,model:G.model??Bn(G.provider)??G.provider,thinking:G.thinking,reasoningMode:G.reasoningMode,reasoningCapability:wl(co(G.provider,G.model)),isTranscriptMode:ee,streamingState:bh,maxIter:v.maxIter,contextUsage:ch,isLoading:Gs,managedState:{phase:W?.phase,harnessProfile:W?.harnessProfile,workerTitle:W?.activeWorkerTitle,round:W?.currentRound,maxRounds:W?.maxRounds,globalWorkBudget:W?.globalWorkBudget,budgetUsage:W?.budgetUsage,budgetApprovalRequired:W?.budgetApprovalRequired,idleWaiting:W?.idleWaiting,idleWaitingPendingCount:W?.idleWaitingPendingCount},autoModeEngine:rf}),[n.sessionId,G.permissionMode,G.agentMode,G.provider,G.model,G.thinking,G.reasoningMode,ee,bh,v.maxIter,ch,Gs,W?.phase,W?.harnessProfile,W?.activeWorkerTitle,W?.currentRound,W?.maxRounds,W?.globalWorkBudget,W?.budgetUsage,W?.budgetApprovalRequired,W?.idleWaiting,W?.idleWaitingPendingCount,rf]),sf=ze?"confirm":Ae?.kind,no=ue(()=>mb({isTranscriptMode:ee,isLoading:Gs,streamingState:ke,managedState:Gs?{phase:W?.phase,harnessProfile:W?.harnessProfile,workerTitle:W?.activeWorkerTitle}:void 0,waitingReason:sf}),[ke.activeToolCalls,ke.currentTool,ke.isCompacting,ke.isThinking,ke.thinkingCharCount,ke.toolInputCharCount,ke.toolInputContent,ee,W?.activeWorkerTitle,W?.harnessProfile,W?.phase,sf,Gs]),af=no?.text,nr=ue(()=>VS(kc,{now:Date.now(),lastAllCompletedAt:null}),[kc]),vh=fe(!1);He(()=>{vh.current&&!he&&wr(f=>f.length>0?[]:f),vh.current=he},[he]);let cf=ue(()=>Ku(Qc),[Qc]),Ih=ue(()=>cf,[cf]),kh=Ih.text,q0=ue(()=>id(v.pendingInputs),[v.pendingInputs]),lf=ue(()=>zS({isHistorySearchActive:tt,isTranscriptMode:ee,pendingInputCount:v.pendingInputs.length,buffering:Le.buffering,pendingLiveUpdates:Ns}),[tt,ee,Ns,v.pendingInputs.length,Le.buffering]),Rh=lf.leftItems,Eh=lf.rightItems,Mh=lf.summary,Jc=ue(()=>Tb({historySearchQuery:Ht,pendingInputCount:v.pendingInputs.length}),[Ht,v.pendingInputs.length]),Zc=ue(()=>wb({historySearchQuery:Ht,isHistorySearchActive:tt,historySearchMatchCount:Tt.length,pendingInputCount:v.pendingInputs.length,maxPendingInputs:5}),[Tt.length,Ht,tt,v.pendingInputs.length]),Ah=ue(()=>Zc.map(f=>f.text).join(" | "),[Zc]),el=ue(()=>Sb({inputText:Wd,isTranscriptMode:ee,isHistorySearchActive:tt}),[Wd,tt,ee]),_h=Le.supportsOverlaySurface&&Le.supportsSearchViewport&&gt,tl=ue(()=>hb({runtime:cn,itemSummary:Th}),[Th,cn]),uf=ue(()=>Cb(Jc),[Jc]),Ph=ue(()=>bb({textSelection:tr,selectionState:tl,isHistorySearchActive:tt,historySearchDetailText:nf,historySearchHasMatches:!!Sh&&Tt.length>0,showAllActive:Nt,baseFooterNotices:Jc}),[tr,Jc,nf,Tt.length,Sh,tt,Nt,tl]),Q0=Ph.secondaryText,J0=Ph.budgetNotices,Lh=ee?J0:uf,$h=T.rows??24,Oh=ee?"":Wd,Dh=ee?void 0:q0,Nh=js,Hh=ee?!1:rh,Wt=ue(()=>hC({terminalRows:$h,terminalWidth:X,windowedTranscript:qo,inputText:Oh,footerHeaderText:Mh,activitySummary:ee?void 0:af,activityBarVisible:ee?!1:!!af||he&&nr.shouldRender,todoSurfaceRows:ee?0:he&&nr.shouldRender?nr.rows.length:0,pendingInputSummary:Dh,stashNoticeSummary:el,notificationSummary:Ah,statusNoticeSummary:Lh.join(" | "),workStripText:Nh,suggestionsReserved:Uc,suggestionsMode:"inline",showHelp:Hh,statusBarText:kh,confirmPrompt:ze?.prompt,confirmInstruction:Ds,dialogMode:"inline",reviewHint:s.enabled&&gt?void 0:Rr.browseHintText,uiRequest:Ae?Ae.kind==="select"?{kind:"select",title:Ae.title,options:Ae.options.map(f=>({label:f.label,description:f.description})),buffer:Ae.buffer,error:Ae.error}:{kind:"input",prompt:Ae.prompt,defaultValue:Ae.defaultValue,buffer:Ae.buffer,error:Ae.error}:null}),[$h,X,Oh,Mh,af,Dh,el,Ah,Lh,Nh,Uc,_h,Hh,kh,ze,Ds,s.enabled,Rr.browseHintText,gt,Ae]),Z0=ue(()=>oe(Fp,{reserveSpace:Uc,width:X,hidden:ee,mode:"inline"}),[Uc,X,ee,_h]),Ks=ue(()=>JC(Wt.messageRows),[Wt.messageRows]),Bh=ue(()=>ZC(Ks),[Ks]),ei=!fh&&s.transcriptSpinnerAnimation,Vs=Hn?Hn.rows.length+Hn.previewRows.length:P0,nl=K(f=>{Hn||L0(f.scrollHeight)},[Hn]),zs=K(f=>ib({window:f,stickyHeader:Rr.stickyHeader,width:X,topChromeRows:0}),[X,Rr.stickyHeader]),ti=K((f=Rs.current,h=vc.current,w=Gd.current?zs(Gd.current):bc.current)=>{if(!w||f.length===0){Wo.current=null;return}bc.current=w,Wo.current=sb(f,{allRows:h,rowIndexByKey:hg(h),topOffsetRows:w.topOffsetRows,viewportHeight:w.contentWindow.viewportHeight,animateSpinners:ei})},[zs,ei]),Xs=K(()=>{let f=bc.current;return f?.contentWindow.viewportHeight&&f.contentWindow.viewportHeight>0?f.contentWindow.viewportHeight:Wt.messageRows},[Wt.messageRows]),ev=K(f=>{Gd.current=f;let h=zs(f);bc.current=h,ti(Rs.current,vc.current,h)},[ti,zs]),rl=K(f=>{Rs.current=f.rows,vc.current=f.allRows,ti(f.rows,f.allRows)},[ti]),_t=K(()=>{Cn.current=null,Kd(void 0),Vd(void 0)},[]),df=K(()=>{_t(),$n(f=>xs(f,void 0))},[_t]);He(()=>{ti()},[ti]),He(()=>{O0(f=>eb(f,Vs,Wt.messageRows))},[Vs,Wt.messageRows]),He(()=>{if(!Uo)return;let f=setTimeout(()=>{Vg(void 0)},2e3);return()=>{clearTimeout(f)}},[Uo]);let rr=K((f,h="success")=>{let w=f?.trim();w&&Vg({text:w,tone:h})},[]),ni=K((f,h)=>{let w=h instanceof Error?h.message:String(h);return`${f}: ${w}`},[]),ol=K(async f=>{let h=f??tr;if(!h)return!1;let w=h.text.trimEnd();if(!w)return!1;try{return await vo(w,{terminalWrite:L}),rr(`Copied ${h.rowCount} selected line${h.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(R){return rr(ni("Failed to copy transcript selection",R),"warning"),!1}},[tr,ni,rr,L]),ri=K(f=>{if(!f||nb({items:bt,renderModel:Hn,terminalWidth:X,transcriptMaxLines:Bt,viewportRows:Xs(),itemId:f,visibleRows:Rs.current,expandedItemKeys:Qt,showDetailedTools:!1}))return;let h=rb({items:bt,renderModel:Hn,terminalWidth:X,transcriptMaxLines:Bt,viewportRows:Xs(),itemId:f,expandedItemKeys:Qt,showDetailedTools:!1});Tc(h)},[bt,X,Bt,Hn,Qt,Xs,Tc,Rs]),Fh=K(f=>{$n(h=>xs(h,f)),f&&ri(f)},[ri]),ff=K(f=>{f&&ri(f)},[ri]),Wh=K(f=>{if(!Xc)return;let h=XC(to,je,f);h&&Fh(h)},[Xc,to,je,Fh]),Uh=K(()=>{!qc||!je||(H0(f=>{let h=new Set(f);return h.has(je)?h.delete(je):h.add(je),h}),ri(je))},[ri,qc,je]),jh=K(async()=>{if(!Zo||!Jt)return;let f=gg(Jt);if(f)try{await vo(f,{terminalWrite:L}),rr("Copied selected transcript entry to clipboard.","success")}catch(h){rr(ni("Failed to copy transcript entry",h),"warning")}},[ni,Zo,Jt,rr,L]),Gh=K(async()=>{if(!Yc||!Jt)return;let f=YC(Jt);if(f)try{await vo(f,{terminalWrite:L}),rr("Copied selected tool args to clipboard.","success")}catch(h){rr(ni("Failed to copy tool args",h),"warning")}},[ni,Yc,Jt,rr,L]),Ys=K(()=>vc.current,[]),Kh=K((f,h)=>{if(!s.enabled||!gt)return;let w=Wo.current;return w?xg(w,f,h):void 0},[s.enabled,gt]),oi=K((f,h,w)=>{let R=Ys(),E=lb(R,f,h,{animateSpinners:ei,selectFullRowOnCollapsed:w?.selectFullRowOnCollapsed});ee?Vd(E):Kd(E);let H=R[Math.max(0,Math.min(h.modelRowIndex,R.length-1))];return w?.updateSelectedItem&&H?.itemId&&$n(N=>xs(N,H.itemId)),E},[ee,Ys,ei]),Vh=K((f,h)=>{if(!f)return;Cn.current=null;let w={...f,focus:h?.focusPoint??f.focus};if(!(w.mode!=="char"||w.didDrag)){_t();return}let E=oi(w.anchor,w.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!E){_t();return}return h?.copySelection!==!1&&ol(E),E},[_t,ol,oi]),mf=K(()=>{if(!ee||!bt.length||ze||Ae)return;_t();let f=ob({items:bt,selectedItemId:je,renderModel:Hn,terminalWidth:X,transcriptMaxLines:Bt,viewportRows:Xs(),scrollOffset:Sn,expandedItemKeys:Qt,showDetailedTools:!1,preferViewportAnchor:!0});$n(h=>vC(h,{anchorItemId:f,initialMatchIndex:0})),Yo(""),Rn(0)},[ze,bt,Qt,Sn,ee,je,Hn,X,Bt,Ae,Xs,_t]),pf=K(()=>{$n(f=>IC(f)),Yo(""),Rn(0),_t()},[_t]),il=K(()=>{!tt||Tt.length===0||Rn(-1)},[Tt.length,tt]),zh=ue(()=>{if(!ze)return null;if(ze.tool==="exit_plan_mode"){let f=typeof ze.input.plan=="string"?ze.input.plan:void 0;return{prompt:ze.prompt.split(`
325
- `,1)[0]??ze.prompt,instruction:Ds,planContent:f}}return{prompt:ze.prompt,instruction:Ds}},[Ds,ze]),Xh=ue(()=>Ae?Ae.kind==="select"?{kind:"select",title:Ae.title,options:Ae.options,buffer:Ae.buffer,error:Ae.error,visibleSelectOptions:Wt.visibleSelectOptions,focusedIndex:Ae.focusedIndex,selectedIndices:Ae.selectedIndices,multiSelect:Ae.multiSelect}:{kind:"input",prompt:Ae.prompt,defaultValue:Ae.defaultValue,buffer:Ae.buffer,error:Ae.error}:null,[Ae,Wt.visibleSelectOptions]),tv=ue(()=>oe(Up,{confirm:zh,request:Xh}),[zh,Xh]),gf=ue(()=>{if(Uo)return oe(GS,{text:Uo.text,tone:Uo.tone})},[Uo]),hf=ue(()=>{if(gf)return oe(k,{flexDirection:"column",width:"100%",children:gf})},[gf]),sl=K(()=>{$n(f=>CC(wC(f))),Ud(!1),Cc(),Yo(""),Rn(0),_t()},[_t,Cc]),Yh=K(()=>{ee&&Ud(f=>!f)},[ee]),nv=K(()=>{if(ee){sl();return}Ud(!1),$n(f=>xC(f)),Yo(""),Rn(0),_t()},[_t,sl,ee]);He(()=>{xh||!Le.selectedItemId||$n(f=>xs(f,void 0))},[xh,Le.selectedItemId]),He(()=>{if(!ee||!Zo||!wh){Os.current=void 0;return}if(Xr||!je||!Jt)return;if(!Os.current){Os.current=je;return}if(Os.current===je)return;Os.current=je;let f=gg(Jt);f&&vo(f,{terminalWrite:L}).catch(()=>{})},[ee,Jt,je,Zo,wh,Xr,L]),He(()=>{if(T?.isTTY!==!0)return;let f=Yl(T);f?.setShellMode?.(lh,Wc),Zd||f?.setAltScreenActive?.(!1)},[lh,T,Zd,Wc]);let Ge=fe({...e,thinking:G.thinking,reasoningMode:G.reasoningMode,agentMode:G.agentMode,context:{...e.context,repoIntelligenceMode:G.repoIntelligenceMode,repoIntelligenceTrace:G.repoIntelligenceTrace,toolConstructionMode:!0},session:{...e.session,id:n.sessionId},guardrails:Ig(G.permissionMode,l)}),ln=fe(G.permissionMode);He(()=>{ln.current=G.permissionMode},[G.permissionMode]);let qh=fe(qi()),yf=fe(G);He(()=>{yf.current=G},[G]);let xf=fe(null);xf.current===null&&(xf.current=yl({getProvider:i(()=>ci(yf.current.provider),"getProvider"),getModel:i(()=>yf.current.model??"","getModel")}));let Qh=fe(su());He(()=>{G.permissionMode==="auto-in-project"&&Qh.current()},[]);let wf=K(f=>{lt(h=>({...h,permissionMode:f})),ln.current=f,Ge.current={...Ge.current,guardrails:Ig(f,l)},of(zt(f)?l.getGuardrail().getEngine():void 0),f==="auto-in-project"&&Qh.current()},[l]),Jh=fe(v.pendingInputs),Qe=fe(!1),qs=fe(0),al=K(()=>{if(Is.current)return;let f=Yd.current?.trim(),h=Te.current.length>0?Te.current[Te.current.length-1]:void 0,w=h&&"text"in h&&typeof h.text=="string"?h.text.trim():void 0,E=sn.current.length>0?[...sn.current.map(H=>Ho(H)),...f&&f!==w?[{type:"info",text:f}]:[]]:[...sn.current.map(H=>Ho(H)),...n$(qe(),Je(),{toolCalls:Et.current,toolNames:Dn.current,infoItems:f&&f!==w?[f]:[]})];E.length!==0&&(Is.current=!0,vs.current?.(E))},[Je,qe]);He(()=>{Jh.current=v.pendingInputs},[v.pendingInputs]);let Zh=K(()=>{Qe.current=!0,de(),Ce(),ne(),V(),ve(),$e(),xe(void 0),br(),ct(void 0),_s(),qr.current=[],Go.current=[],Es([]),Me(!1)},[de,$e,V,ve,br,_s,xe,Es,Me,ct,Ce,ne]),cl=fe(0),rv=500;nn($t.Critical,f=>{if(!he)return!1;switch(HC({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ee,isAwaitingUserInteraction:vr,isInputEmpty:Fd,pendingInputCount:v.pendingInputs.length,hasTranscriptTextSelection:!!Xr,timeSinceLastEscapeMs:Date.now()-cl.current,doubleEscapeIntervalMs:rv}).kind){case"interrupt":return cl.current=0,al(),Zh(),!0;case"pop-pending-input":return Ie(),cl.current=0,!0;case"arm-double-escape":return cl.current=Date.now(),!0;default:break}return!1},[he,ee,vr,Fd,v.pendingInputs.length,Ie,al,Zh]),nn($t.Critical,f=>{let h=DC({itemsLength:bt.length,currentResponse:Fe.currentResponse,thinkingContent:Fe.thinkingContent,activeToolCallsLength:Fe.activeToolCalls.length}),w=NC({keyName:f.name,hasTranscript:h,historyScrollOffset:Sn,reviewPageSize:Ks,reviewWheelStep:Bh,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:uh,supportsMouseTracking:Le.supportsMouseTracking,usesRendererMouseTracking:Wc,usesManagedMouseWheel:dh,supportsWheelHistory:Le.supportsWheelHistory});if(w.kind==="mouse-phase"){let E=f.mouse;if(!E)return!1;w.phase==="press"&&Cn.current&&Vh(Cn.current);let H=Kh(E.row,E.column);if(w.phase==="press"){if(!H||!h)return tr||je?(df(),!0):(_t(),!1);let N=Ob({previous:Kg.current,time:Date.now(),row:E.row,column:E.column});Kg.current=N;let z=N.count>=3?"line":N.count===2?"word":"char";if(il(),$n(re=>xs(re,void 0)),ee?Vd(void 0):Kd(void 0),z!=="char"){let re=Rd(Ys(),H.point,z);if(re)return Cn.current={anchor:re.start,focus:re.end,didDrag:!1,mode:z,anchorSpan:re},oi(re.start,re.end,{updateSelectedItem:!1}),!0}return Cn.current={anchor:H.point,focus:H.point,didDrag:!1,mode:"char"},!0}if(!Cn.current)return!1;if(w.phase==="drag"){let N=Wo.current,z=N?db(N,E.row):0;z!==0&&Sc(z);let re=H??(N?wg(N,E.row,E.column):void 0);if(!re)return!1;let ye=Cn.current;if(ye.mode!=="char"&&ye.anchorSpan){let it=Rd(Ys(),re.point,ye.mode);if(!it)return!1;let Pt=vg(ye.anchorSpan,it);return Cn.current={...ye,anchor:Pt.anchor,focus:Pt.focus,didDrag:!0},oi(Pt.anchor,Pt.focus,{updateSelectedItem:!1}),!0}return Cn.current={...ye,focus:re.point,didDrag:!0},oi(ye.anchor,re.point,{updateSelectedItem:!1}),!0}if(w.phase==="release"){let N=Cn.current,z=N.focus,ye=(H??(Wo.current?wg(Wo.current,E.row,E.column):void 0))?.point??z;if(N.mode!=="char"&&N.anchorSpan){let it=Rd(Ys(),ye,N.mode);if(it){let Pt=vg(N.anchorSpan,it);N.anchor=Pt.anchor,ye=Pt.focus}}return Vh(N,{focusPoint:ye}),!0}}if(w.kind==="scroll-by")return il(),Sc(w.delta),!0;if(w.kind==="consume")return!0;let R=BC({key:f,isTranscriptMode:ee,isHistorySearchActive:tt,historySearchMatchCount:Tt.length,hasTextSelection:!!tr,hasFocusedItem:!!je,canCopySelectedItem:Zo,canCopySelectedToolInput:Yc,canToggleSelectedDetail:qc,canCycleTranscriptSelection:Xc});return FC({action:R,hasTranscript:h,isTranscriptMode:ee,pageScrollDelta:Ks,disarmHistorySearchSelection:il,scrollTranscriptBy:Sc,closeHistorySearchSurface:pf,backspaceHistorySearchQuery:i(()=>{Yo(E=>E.slice(0,-1)),Rn(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:i(E=>{Rn(H=>pg(Tt.length,H,E))},"stepHistorySearchSelection"),submitHistorySearchSelection:i(()=>{let E=Tt[kr];E&&(ff(E.itemId),pf())},"submitHistorySearchSelection"),appendHistorySearchQuery:i(E=>{Yo(H=>H+E),Rn(0)},"appendHistorySearchQuery"),openHistorySearchSurface:mf,clearTranscriptSelectionFocus:df,exitTranscriptModeSurface:sl,toggleTranscriptShowAll:Yh,scrollTranscriptHome:i(()=>{Tc(Math.max(0,Vs-Wt.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:i(()=>{Cc(),_t()},"scrollTranscriptToBottom"),cycleTranscriptSelection:Wh,copySelectedTranscriptText:i(()=>{ol()},"copySelectedTranscriptText"),copySelectedTranscriptItem:i(()=>{jh()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:i(()=>{Gh()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:Uh,navigateSearchMatch:i(E=>{Rn(H=>{let N=pg(Tt.length,H,E),z=Tt[N];return z&&ff(z.itemId),N})},"navigateSearchMatch"),dumpTranscriptToScrollback:i(()=>{WC({items:bt,exitAltScreen:i(()=>{L(tu({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:i(E=>{L(E)},"writeToScrollback"),enterAltScreen:i(()=>{L(eu({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[ee,bt,Fe.currentResponse,Fe.thinkingContent,Fe.activeToolCalls,Sn,Vs,Ks,Bh,je,df,sl,Yh,Le,Sc,Tc,Cc,Xc,kr,_t,ol,Tt,mf,pf,il,Wh,Zo,jh,Yc,Gh,qc,Uh,ff,tr,Kh,Le.supportsMouseTracking,Xr,uh,dh,ef,qo,Wc,oi,Wt.messageRows]),nn(f=>{if(!ze)return!1;let h=f.sequence.trim().toLowerCase(),w=!!ze.input._alwaysConfirm,R=G.permissionMode==="accept-edits"&&!w,E=i(H=>{let N=`${Q("dialog.confirm")} ${ze.prompt}
326
- \u2192 ${Q(`confirm.result.${H}`)}`;!!et.current.workerId?vn({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:N,timestamp:Date.now()}):S({type:"info",text:N})},"recordConfirmResult");return h==="y"||h==="yes"?(E("approved"),Nc(null),Zr.current?.({confirmed:!0}),Zr.current=null,!0):R&&(h==="a"||h==="always")?(E("approved_always"),Nc(null),Zr.current?.({confirmed:!0,always:!0}),Zr.current=null,!0):h==="n"||h==="no"||f.name==="escape"?(E("denied"),Nc(null),Zr.current?.({confirmed:!1}),Zr.current=null,!0):f.insertable||f.name==="return"},{isActive:!!ze,priority:$t.Critical});let ll=K(f=>{kn(null),Hc.current?.(f),Hc.current=null},[]),ii=K((f,h,w)=>h.length===0?Promise.resolve(void 0):new Promise(R=>{Hc.current=R,kn({kind:"select",title:f,options:h,buffer:"",focusedIndex:0,selectedIndices:[],multiSelect:w})}),[]),ov=K((f,h)=>ii(f,h.map(w=>({label:w,value:w}))),[ii]),ey=K(async f=>{let h=f.options?kd(f.options):[];return await ii(Tg(f),h,f.multiSelect)??Ef},[ii]);He(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:h}=await import("./construction-bootstrap-XSE7ZABG.js");f||h(ey)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:h}=await import("./construction-bootstrap-XSE7ZABG.js");h(null)})()}},[ey]);let ty=K((f,h)=>new Promise(w=>{Hc.current=w,kn({kind:"input",prompt:f,defaultValue:h,buffer:""})}),[]);nn(f=>{let h=Bc.current;if(!h)return!1;if(f.name==="escape")return ll(void 0),!0;if(h.kind==="select"){let w=h.options.length;if(f.name==="up"||f.sequence==="k")return kn(R=>R&&R.kind==="select"?{...R,focusedIndex:(R.focusedIndex-1+w)%w,error:void 0}:R),!0;if(f.name==="down"||f.sequence==="j")return kn(R=>R&&R.kind==="select"?{...R,focusedIndex:(R.focusedIndex+1)%w,error:void 0}:R),!0;if(f.sequence===" "&&h.multiSelect)return kn(R=>{if(!R||R.kind!=="select")return R;let E=R.focusedIndex,H=R.selectedIndices.includes(E)?R.selectedIndices.filter(N=>N!==E):[...R.selectedIndices,E];return{...R,selectedIndices:H,error:void 0}}),!0;if(f.name==="return"){let R=Bc.current;if(!R||R.kind!=="select")return!1;if(R.multiSelect){if(R.selectedIndices.length===0)return kn(H=>H&&H.kind==="select"?{...H,error:Q("select.multiselect_empty")}:H),!0;let E=R.selectedIndices.sort((H,N)=>H-N).map(H=>R.options[H]?.value).filter(Boolean).join(", ");ll(E)}else ll(R.options[R.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(f.sequence)){let R=Number.parseInt(f.sequence,10)-1;if(R>=0&&R<w)return h.multiSelect?kn(E=>{if(!E||E.kind!=="select")return E;let H=E.selectedIndices.includes(R)?E.selectedIndices.filter(N=>N!==R):[...E.selectedIndices,R];return{...E,focusedIndex:R,selectedIndices:H,error:void 0}}):kn(E=>E&&E.kind==="select"?{...E,focusedIndex:R,error:void 0}:E),!0}return!1}if(f.name==="return"){let w=Bc.current;if(!w||w.kind!=="input")return!1;let R=w.buffer.trim();return ll(R===""?w.defaultValue??void 0:R),!0}return f.name==="backspace"||f.name==="delete"?(kn(w=>w&&w.kind==="input"?{...w,buffer:w.buffer.slice(0,-1),error:void 0}:w),!0):(f.insertable||f.isPasted===!0)&&!f.ctrl&&!f.meta?(kn(w=>w&&w.kind==="input"?{...w,buffer:w.buffer+f.sequence,error:void 0}:w),!0):!1},{isActive:!!Ae,priority:$t.Critical}),He(()=>{if(n.messages.length>0&&$.length===0){if(n.uiHistory?.length){let f=Bo(n.uiHistory);f.length!==n.uiHistory.length&&(n.uiHistory=f);for(let h of f)S({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=Ma(f);for(let w of h)S(Ea(w))}}},[n.messages,n.uiHistory,$.length,S]),He(()=>{ao(n.gitRoot)},[n.gitRoot]);let Tf=K(()=>({onThinkingDelta:i(f=>{Qe.current||(v.currentTool&&(xe(void 0),ve()),ct(Mg(Ze.current?.activeWorkerTitle?`[${Ze.current.activeWorkerTitle}] [Thinking]`:"[Thinking]",Ze.current?.activeWorkerTitle)),se(f.length),ie(f),et.current.workerId&&Lc("thinking",f))},"onThinkingDelta"),onThinkingEnd:i(f=>{if(Qe.current)return;let h=qe(),w=fC(h,f);w&&w!==h&&(V(),Be(),se(w.length),ie(w)),et.current.workerId&&eh(w),ne()},"onThinkingEnd"),onTextDelta:i(f=>{Qe.current||(v.currentTool&&(xe(void 0),ve()),ne(),ct(void 0),Se(f),et.current.workerId&&Lc("assistant",f))},"onTextDelta"),onToolUseStart:i(f=>{if(Qe.current)return;Dn.current.includes(f.name)||(Dn.current=[...Dn.current,f.name]);let h=Ze.current?.activeWorkerTitle?`[${Ze.current.activeWorkerTitle}] `:"",w={id:f.id,name:`${h}${f.name}`,status:O.Executing,startTime:Date.now(),input:f.input};th(w),et.current.workerId&&In(w),ct(Kr(w,Ze.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:i((f,h,w)=>{if(Qe.current)return;ot(h.length),be(h);let R=nh(w?.toolId,f,E=>{let H=E.preview??"",N=JL(`${H}${h}`);return{...E,preview:N||void 0,input:E.input?N?{...E.input,preview:N}:{...E.input}:N?{preview:N}:void 0}});R&&(et.current.workerId&&In(R),ct(Kr(R,Ze.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:i(f=>{if(Qe.current)return;let h=typeof f.content=="string"?f.content:String(f.content??""),w=ZL(h);if(/^\[(?:Tool Error|Error)\]/.test(h)){let E=Oc(f.id,O.Error,w,w,f.name);E&&(et.current.workerId&&In(E),ct(Kr(E,Ze.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(h)){let E=Oc(f.id,O.Cancelled,void 0,w,f.name);E&&(et.current.workerId&&In(E),ct(Kr(E,Ze.current?.activeWorkerTitle)));return}let R=Oc(f.id,O.Success,void 0,w||void 0,f.name);R&&(et.current.workerId&&In(R),ct(Kr(R,Ze.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:i(f=>{if(Qe.current)return;let h=f.message.length>100?f.message.slice(0,97)+"...":f.message,w=Xo(f.id,R=>({...R,preview:h,progressLines:[...(R.progressLines??[]).slice(-4),h]}));w&&et.current.workerId&&In(w),ct(h)},"onToolProgress"),onStreamEnd:i(()=>{if(Qe.current)return;let f=Ps(O.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),h=f[f.length-1];et.current.workerId&&f.forEach(w=>In(w)),h&&ct(Kr(h,Ze.current?.activeWorkerTitle)),ne(),ve(),xe(void 0)},"onStreamEnd"),hasPendingInputs:i(()=>Jh.current.length>0,"hasPendingInputs"),onError:i(f=>{let h=Cr();h?.name&&ct(Kr(h,Ze.current?.activeWorkerTitle));let w=Ps(O.Error,()=>({error:f.message,output:void 0})),R=w[w.length-1];et.current.workerId&&w.forEach(it=>In(it)),R&&ct(Kr(R,Ze.current?.activeWorkerTitle));let E=ly(f),H=["Transient","Permanent","Tool Call ID","User Abort"];if(E.category===ta.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===ta.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===ta.TRANSIENT?z.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):E.category===ta.TOOL_CALL_ID&&z.push(" \u2705 Session cleaned, ready to continue");let re=z.join(`
327
- `);!!et.current.workerId?vn({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:re,timestamp:Date.now()}):S({type:"error",text:re})},"onError"),onRetry:i((f,h,w)=>{if(Qe.current)return;if(!!et.current.workerId){let E=fd(f,h,w);vn({...E,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else Xp(S,f,h,w)},"onRetry"),onProviderRecovery:i(f=>{if(Qe.current)return;let h=!!et.current.workerId,w=Je().trim();if(w&&(h?Lc("assistant",w):S({type:"assistant",text:w})),$e(),V(),ne(),ve(),xe(void 0),br(),ct(void 0),h){let R=md(f);vn({...R,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else Yp(S,f)},"onProviderRecovery"),onManagedTaskStatus:i(f=>{if(Qe.current)return;let h=et.current;if(Wb(f)){if(h.workerId&&h.workerId!==f.activeWorkerId)K0({workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle});else if(h.workerId!==f.activeWorkerId){let N=ut.current,z=N.activeToolGroupTools.some(re=>re.status===O.Executing);ut.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle,...z?{activeToolGroupItemId:N.activeToolGroupItemId,activeToolGroupTools:N.activeToolGroupTools}:{activeToolGroupTools:[]}},et.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle}}}Ze.current=f,Xd(f);let w=t$(f);V0(w);let R=tc(f),H=tc(f,{expanded:!0})??R;H&&(Yd.current=H)},"onManagedTaskStatus"),onProviderRateLimit:i((f,h,w)=>{Qe.current||Jr({type:"info",icon:"\u23F3",text:`[Rate Limit] Retrying in ${w/1e3}s (${f}/${h})...`},"ratelimit")},"onProviderRateLimit"),onRetryAfter:i(f=>{if(Qe.current)return;let h=Math.round(f.waitMs/1e3),w=f.source==="exponential-backoff"?"no-header \u2192 backoff":f.source,R=f.reason==="overloaded"?"Overloaded":"Rate limited";Jr({type:"info",icon:"\u23F3",text:`[${R}] (${f.provider}) \u2014 retrying in ${h}s [${w}] (${f.attempt}/${f.maxAttempts})`},"ratelimit")},"onRetryAfter"),onRepoIntelligenceTrace:i(f=>{Qe.current||Jr(dC(f),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:i(f=>{Qe.current||wr(f)},"onTodoUpdate"),onScoutSuspiciousCompletion:i(f=>{Qe.current||Ad&&Jr({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&&we(h),Ze.current?.globalWorkBudget){let ye={...Ze.current,budgetUsage:Math.min(Ze.current.globalWorkBudget,(Ze.current.budgetUsage??0)+1)};Ze.current=ye,Xd(ye)}let w=f>1?qe().trim():"",R=f>1?Ag(Je()):"",E=f>1?[...Dn.current]:[],H=f>1?[...Et.current]:[],N=!!et.current.workerId;A(f),N&&_c({clearOwner:!1});let z=er.current.filter(ye=>ye.status===O.Executing),re=new Set(z.map(ye=>ye.id));if(Dn.current=[],Et.current=Et.current.filter(ye=>re.has(ye.id)),an(z),ve(),xe(void 0),ct(Mg(Ze.current?.activeWorkerTitle?`[Thinking] [${Ze.current.activeWorkerTitle}]`:void 0,Ze.current?.activeWorkerTitle)),Be(),f>1&&!N){let ye=_g({thinking:w,response:R,toolCalls:H,toolNames:E});if(vs.current)vs.current(ye);else for(let it of ye)S(it)}},"onIterationStart"),beforeToolExecute:i(async(f,h)=>{let w=ln.current,R=wo(w),E=qh.current,H=n.gitRoot;if(Ay(D.current,f,h))return`[Skipped] Previously denied operation. ${_y(D.current)}`;if(w==="plan"&&(gn.has(f)||f==="undo"))return`[Blocked] Tool '${f}' is not allowed in plan mode (read-only). ${Nb}`;if(w==="plan"&&f==="bash"){let N=h.command??"";if(An(N))return`[Blocked] Bash write operation not allowed in plan mode: ${N.slice(0,50)}... ${Nb}`}if(f==="bash"){let N=h.command??"";if(Mn(N))return!0}if(zt(w)&&rf==="llm")return!0;if(f==="bash"){let N=h.command??"",z=Ey(N);if(z.level==="dangerous"){let re=await ro(f,{...h,_dangerousCommand:!0});return re.confirmed?re.confirmed:(D.current=_f(D.current,f,h,z.reason),`[Blocked] Dangerous command requires confirmation: ${z.reason}`)}}if(H){let N=!1;if(gn.has(f)){let z=h.path;z&&Kn(z,H)&&(N=!0)}if(f==="bash"){let z=h.command;z&&Dm(z,H)&&(N=!0)}if(N){let z=await ro(f,{...h,_alwaysConfirm:!0});if(ln.current==="plan"&&(gn.has(f)||f==="undo"))return!1;if(ln.current==="plan"&&f==="bash"){let re=h.command??"";if(An(re))return!1}return z.confirmed}}if(R.has(f)){if(w==="accept-edits"&&f==="bash"&&await Dr(f,h,E,xf.current??void 0))return!0;let N=await ro(f,h);if(ln.current==="plan"&&(gn.has(f)||f==="undo"))return!1;if(ln.current==="plan"&&f==="bash"){let z=h.command??"";if(An(z))return!1}if(!N.confirmed)return S({type:"info",text:Q("cancelled")}),D.current=_f(D.current,f,h),!1;N.always&&w==="accept-edits"&&(yu(f,h,!1),qh.current=qi())}return!0},"beforeToolExecute"),askUser:i(async f=>{let h=f.options?kd(f.options):[],w=await ii(Tg(f),h,f.multiSelect);return w===void 0?Ef:w},"askUser"),exitPlanMode:i(async f=>ln.current!=="plan"?"not-in-plan-mode":(await ro("exit_plan_mode",{plan:f})).confirmed?(wf("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:i(async f=>{let h=f.questions,w={},R="__back__",E=0;for(;E<h.length;){let H=h[E],N=kd(H.options);E>0&&N.push({label:Q("select.back_prev"),value:R});let z=`[${E+1}/${h.length}] ${H.question}`,re=await ii(z,N,H.multiSelect);if(re===void 0)return;if(re===R){E--;continue}w[H.question]=re,E++}return w},"askUserMulti"),askUserInput:i(async f=>ty(f.question,f.default),"askUserInput"),onCompactStart:i(()=>{P()},"onCompactStart"),onCompactStats:i(f=>{gc.current=f.tokensBefore,Zn(f.tokensAfter)},"onCompactStats"),onCompactedMessages:i((f,h)=>{n.messages=f,h?.artifactLedger&&h.artifactLedger.length>0&&(n.artifactLedger=ra(n.artifactLedger??[],h.artifactLedger)),n.lineage=h?.anchor?xy(n.lineage,f,h.anchor,h.postCompactAttachments??[]):dn(f,n.lineage);let w=io(f);n.contextTokenSnapshot={currentTokens:w,baselineEstimatedTokens:w,source:"estimate"},Yn(n),Zn(w),hc.current?.().catch(()=>{})},"onCompactedMessages"),onCompact:i(f=>{Y();let h=gc.current??f;gc.current=null;let w=Math.round(h/1e3);Jr({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${w}k tokens)`},"compact")},"onCompact"),onCompactEnd:i(()=>{gc.current=null,Y()},"onCompactEnd"),onIterationEnd:i(f=>{f.scope!=="worker"&&(n.contextTokenSnapshot=f.contextTokenSnapshot),Zn(f.tokenCount)},"onIterationEnd")}),[se,ie,ne,Se,xe,ot,be,ve,A,Be,G,n,P,Y,S,V,qe,Je,_c,ct,Lc,eh,In,th,nh,Oc,Ps,Cr,br,an,v.currentTool]),ro=i((f,h)=>{let w=ZS(f,h);return new Promise(R=>{Zr.current=R,Nc({tool:f,input:h,prompt:w})})},"showConfirmDialog");He(()=>(u(async(f,h,w)=>(await ro(f.name,{...f.input,_reason:`[auto-mode] ${h}`,...w&&w.length>0?{_classifierSignals:w}:{}})).confirmed?"allow":"block"),m(f=>{of(f)}),()=>{u(null),m(null)}),[]),He(()=>{p(G)},[G,p]);let Qs=i(async(f,h,w=n.lineage?vt(n.lineage,n.lineage.activeEntryId):n.messages,R)=>{let E={...Tf(),getCostReport:j},N=ir(n.gitRoot).getSystemPromptSnippet(),z=mC(f.context,n.gitRoot,n.contextTokenSnapshot,N);R&&R.length>0&&(z.inputArtifacts=[...R]),z.planModeBlockCheck=(re,ye)=>ln.current!=="plan"?null:mr(re,ye,n.gitRoot??process.cwd());try{return await oa({...f,session:{...f.session,initialMessages:w},context:z,events:E,abortSignal:pt()},h)}finally{hy()}},"runAgentRound"),or=K(f=>{let h=dn([...f],n.lineage);return n.lineage=h,h},[n]),Js=K(async f=>{if(n.messages.length===0)return;let h=Yi(n.messages),w=Bo(f??B.current);B.current=w,n.title=h,n.uiHistory=w;let R=n.lineage??or(n.messages);n.lineage=R;let E={messages:n.messages,title:h,gitRoot:n.gitRoot??"",uiHistory:w,lineage:R,artifactLedger:n.artifactLedger};"appendSessionDelta"in r&&typeof r.appendSessionDelta=="function"?await r.appendSessionDelta(n.sessionId,E):await r.save(n.sessionId,E),Sd()&&Cd("persist",bd(n.messages,R,{historyItems:Te.current,foregroundItems:sn.current,streamingResponse:M.current.currentResponse,streamingThinking:M.current.thinkingContent,persistedUiHistory:B.current}))},[n,or,r]),Sf=K(()=>{if(yc.current)return yc.current;let f=(async()=>{try{for(;zr.current.requested;){zr.current.requested=!1;let h=zr.current.uiHistoryOverride;zr.current.uiHistoryOverride=void 0,await Js(h)}}finally{yc.current=null,zr.current.requested&&Sf()}})();return yc.current=f,Gg.current=f,f},[Js]),si=K(f=>{if(f!==void 0){let h=Bo(f);B.current=h,zr.current.uiHistoryOverride=h}return zr.current.requested=!0,Sf()},[Sf]),iv=K(async()=>{if(ks.current)return ks.current;let f=(async()=>{Qe.current=!0,de(),Ce(),ne(),V(),ve(),$e(),xe(void 0),Me(!1),await Gg.current.catch(()=>{}),await hc.current?.().catch(()=>{}),xr(!1),I&&x?.isRaw&&b(!1),x?.pause?.(),x?.unref?.(),y(),a()})();return ks.current=f.finally(()=>{ks.current=null}),ks.current},[de,$e,V,ve,y,I,a,xe,Me,b,x,Ce,ne]);He(()=>(hc.current=si,()=>{hc.current=null}),[si]);let ny=K(f=>{if(f.length===0)return;let h=Ed(B.current,f);B.current=h,si(h)},[si]),Zs=K(f=>{if(f.length!==0){for(let h of f)S(h);ny(f)}},[S,ny]),ul=K(f=>{if(f.length!==0){for(let h of f)S(h);B.current=Ed(B.current,f)}},[S]);He(()=>(vs.current=Zs,()=>{vs.current=null}),[Zs]);let ry=K(async f=>{n.messages=f.messages,n.contextTokenSnapshot=f.contextTokenSnapshot,or(f.messages);let h=f.success===!1&&!f.interrupted,w=qe().trim(),R=Yw(f.messages,Je(),f.managedTask?.verdict.summary,f.lastText),E=[...sn.current],H=E.length>0,N=H&&E.some(pe=>pe.type==="assistant"&&"text"in pe&&Co(String(pe.text??"")).length>0),z=!h&&R&&!N,re=[...Go.current],ye=h?[]:re.length===0?Ad?Hb(f):Hb(f).filter(pe=>!Kb(pe)):[],it=H?[]:_g({thinking:w,response:void 0,toolCalls:Et.current,toolNames:Dn.current}),Pt=[...E.map(pe=>Ho(pe)),...it,...h?[]:re.map(pe=>Ho(pe)),...ye.map(pe=>Bb(pe)),...z?[{type:"assistant",text:f.interrupted?`${R}
328
-
329
- [Interrupted]`:R}]:!R&&!N&&!f.interrupted&&!h?[{type:"info",text:"[No response text was produced for this round]"}]:[]],ea=Ed(B.current,Pt);V(),$e();for(let pe of E)S(Ho(pe));for(let pe of it)S(pe);if(!h){for(let pe of ye)S(Bb(pe));for(let pe of re)S(Ho(pe))}z?S({type:"assistant",text:f.interrupted?`${R}
330
-
331
- [Interrupted]`:R}):!R&&!N&&!f.interrupted&&!h&&S({type:"info",text:"[No response text was produced for this round]"}),Dn.current=[],Et.current=[],br(),ve(),xe(void 0),ct(void 0),_s(),qr.current=[],Go.current=[],Es([]),_(),si(ea).catch(()=>{})},[S,_,ve,$e,V,n,Je,qe,si,or,br,_s,xe,ct,v.currentIteration]),dl=K(async f=>{let h=f.trim();h&&(S({type:"user",text:h}),pc(w=>w+1),Yn(n))},[S,n]),fl=K(async(f,h)=>{let w=qs.current;Qe.current=!1,Is.current=!1,bs(!0);try{return await $C({initialPrompt:f,runRound:h,shiftPendingPrompt:q,onRoundComplete:i(async R=>{qs.current===w&&await ry(R)},"onRoundComplete"),onBeforeQueuedRound:i(async R=>{Qe.current=!1,Is.current=!1,await dl(R)},"onBeforeQueuedRound"),shouldContinue:i(R=>!Qe.current&&R.success!==!1,"shouldContinue")})}finally{bs(!1)}},[ry,q,dl]),Cf=K(async()=>{let f=q();if(!f||!f.trim())return;let h=f.trim();await dl(h),await fl(h,async w=>Qs(Ge.current,w))},[Qs,fl,q,dl]),bf=K(f=>{let h=f[f.length-1];if(h?.role!=="assistant")return;let w=Ma(h);for(let R of w)S(Ea(R))},[S]),oy=K(async(f,h)=>{let w=await wd({...Ge.current,provider:G.provider,thinking:G.thinking,reasoningMode:G.reasoningMode},f,h,R=>S({type:"info",text:R}));if(w.mode==="manual"){w.manualOutput&&S({type:"info",text:w.manualOutput}),await w.finalize();return}if(!w.prompt||!w.options){await w.finalize();return}bs(!0);try{let R=w.mode==="fork"?[]:n.lineage?vt(n.lineage,n.lineage.activeEntryId):n.messages,E=qs.current,H=await Qs(w.options,w.prompt,R);if(qs.current!==E)await w.finalize();else{let N=B.current,z=[];if(w.mode==="fork"){let re=H.messages.find(it=>it.role==="user");re&&n.messages.push(re);let ye=H.messages.slice().reverse().find(it=>it.role==="assistant");if(ye){n.messages.push({role:"assistant",content:ye.content}),or(n.messages);for(let it of Ma(ye)){let Pt=Ea(it);S(Pt),z.push(Pt)}}}else{n.messages=H.messages,n.contextTokenSnapshot=H.contextTokenSnapshot,or(H.messages),bf(H.messages);let re=H.messages[H.messages.length-1];if(re?.role==="assistant")for(let ye of Ma(re))z.push(Ea(ye))}await Js(Ed(N,z)),Sd()&&Cd("round-end",bd(n.messages,n.lineage,{historyItems:Te.current,foregroundItems:sn.current,streamingResponse:M.current.currentResponse,streamingThinking:M.current.thinkingContent,persistedUiHistory:B.current})),await w.finalize()}}catch(R){let E=R instanceof Error?R:new Error(String(R));throw await w.finalize(E),bs(!1),E}bs(!1),await Cf()},[S,bf,n,G.provider,G.thinking,Cf,Js,or,Qs]),sv=K(async f=>{for(let h of f.pastedContents)if(h.type==="text"&&!h.content&&h.contentHash)try{let w=await vu(h.contentHash);w&&(h.content=w)}catch{}},[]),av=K(async f=>{let{displayText:h,fullText:w,pastedContents:R}=f;if(!w.trim()||!yr||ze||Ae)return;for(let pe of R){if(pe.type!=="text"||pe.content.length<1024)continue;let Ee=lT(pe.content);uT(Ee,pe.content)}if(oh(!1),he){if(!Bd)return;if(v.pendingInputs.length>=5){Jr({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(LC(w)){Jr({type:"info",icon:"\u26A0",text:_C},PC);return}let pe=v.currentTool;if(pe&&gl(pe)?.interruptBehavior==="cancel"){Ve(w),de({preservePendingInputs:!0}),wc(""),xc(!0),pc(Zt=>Zt+1),Yn(n);return}Ve(w),wc(""),xc(!0),pc(Ee=>Ee+1),Yn(n);return}let E=Ag(Je()),H=sn.current.map(pe=>Ho(pe)),N=H.length>0;H.length>0&&ul(H),!N&&E&&ul([{type:"assistant",text:E+`
332
-
333
- [Interrupted]`}]),ul([{type:"user",text:h}]),wc(""),xc(!0),pc(pe=>pe+1),Sd()&&Cd("turn-start",bd(n.messages,n.lineage,{historyItems:Te.current,foregroundItems:sn.current,streamingResponse:M.current.currentResponse,streamingThinking:M.current.thinkingContent,persistedUiHistory:B.current})),Me(!0),Qe.current=!1,Is.current=!1,++qs.current,Xd(null),Ze.current=null,Yd.current=null,ct(void 0),_s(),qr.current=[],Go.current=[],Es([]),$s(),Ec(void 0),Dn.current=[],Et.current=[],br(),$e(),ve(),xe(void 0),_(),Z(),Yn(n),await new Promise(pe=>setTimeout(pe,50));let z=es(w.trim());if(z){let pe={exit:iv,saveSession:i(async()=>{if(n.messages.length>0){let F=Yi(n.messages);n.title=F;let ae=n.lineage??or(n.messages);n.lineage=ae,await r.save(n.sessionId,{messages:n.messages,title:F,gitRoot:n.gitRoot??"",uiHistory:B.current,lineage:ae,artifactLedger:n.artifactLedger})}},"saveSession"),startNewSession:i(()=>{let F=Ja(),ae=new Date().toISOString();n.sessionId=F,n.title="",n.uiHistory=[],n.contextTokenSnapshot=void 0,n.lineage=void 0,n.artifactLedger=void 0,B.current=[],n.createdAt=ae,n.lastAccessed=ae,Ge.current.session={...Ge.current.session,id:F},Zn(null),J(),wr([]),bu()?.reset(),ce(F)},"startNewSession"),loadSession:i(async F=>{let ae=await r.load(F);return ae?Oo(G,"Resuming a saved session",Md)?(n.messages=ae.messages,n.uiHistory=ws(ae.uiHistory),n.lineage=ae.lineage,n.artifactLedger=ae.artifactLedger,n.title=ae.title,n.sessionId=F,n.contextTokenSnapshot=void 0,B.current=n.uiHistory??[],Zn(null),J(),wr([]),ce(F),console.log(Ke.green(`[Session loaded: ${F}]`)),"loaded"):"blocked":"missing"},"loadSession"),listSessions:i(async()=>{let F=await r.list(n.gitRoot??void 0);if(F.length===0){console.log(Ke.dim(`
334
- [No saved sessions]`));return}console.log(Ke.bold(`
335
- Recent Sessions:
336
- `));for(let ae of F.slice(0,10))console.log(` ${Ke.cyan(ae.id)} ${Ke.dim(`(${ae.msgCount} messages)`)} ${ae.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:i(()=>{n.uiHistory=[],J(),wr([])},"clearHistory"),printHistory:i(()=>{if(n.messages.length===0){console.log(Ke.dim(`
337
- [No conversation history]`));return}console.log(Ke.bold(`
338
- Conversation History:
339
- `));let F=n.messages.slice(-20);for(let ae=0;ae<F.length;ae++){let Re=F[ae],ai=Ke.cyan(Re.role.padEnd(10)),ay=Aa(Re.content),fv=ay.slice(0,60).replace(/\n/g," "),mv=ay.length>60?"...":"";console.log(` ${(ae+1).toString().padStart(2)}. ${ai} ${fv}${mv}`)}console.log()},"printHistory"),switchProvider:i((F,ae)=>{lt(Re=>({...Re,provider:F,model:ae})),Ge.current.provider=F,Ge.current.model=ae},"switchProvider"),setThinking:i(F=>{let ae=F?"auto":"off";lt(Re=>({...Re,thinking:F,reasoningMode:ae})),Ge.current.thinking=F,Ge.current.reasoningMode=ae},"setThinking"),setReasoningMode:i(F=>{let ae=F!=="off";lt(Re=>({...Re,thinking:ae,reasoningMode:F})),Ge.current.thinking=ae,Ge.current.reasoningMode=F},"setReasoningMode"),setAgentMode:i(F=>{lt(ae=>({...ae,agentMode:F})),Ge.current.agentMode=F},"setAgentMode"),setPermissionMode:i(F=>{wf(F)},"setPermissionMode"),setRepoIntelligenceRuntime:i(F=>{lt(ae=>({...ae,...F.mode!==void 0?{repoIntelligenceMode:F.mode}:{},...F.endpoint!==void 0?{repointelEndpoint:F.endpoint??void 0}:{},...F.bin!==void 0?{repointelBin:F.bin??void 0}:{},...F.trace!==void 0?{repoIntelligenceTrace:F.trace}:{}})),F.mode!==void 0&&(process.env.KODAX_REPO_INTELLIGENCE_MODE=F.mode,Ge.current.context={...Ge.current.context,repoIntelligenceMode:F.mode}),F.trace!==void 0&&(F.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,Ge.current.context={...Ge.current.context,repoIntelligenceTrace:F.trace}),F.endpoint!==void 0&&(F.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=F.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),F.bin!==void 0&&(F.bin?process.env.KODAX_REPOINTEL_BIN=F.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:i(async F=>{await r.delete?.(F)},"deleteSession"),deleteAllSessions:i(async()=>{await r.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let F=await r.getLineage?.(n.sessionId);if(!F){console.log(Ke.dim(`
340
- [No session tree available for this session]`));return}let ae=gd(hl(F));console.log(Ke.bold(`
341
- Session Tree:
342
- `)),ae.forEach(Re=>console.log(` ${Re}`)),console.log()},"printSessionTree"),switchSessionBranch:i(async F=>{if(!Oo(G,"Switching session branches",Md))return"blocked";let Re=await r.setActiveEntry?.(n.sessionId,F,{summarizeCurrentBranch:!0});return Re?(n.messages=Re.messages,n.uiHistory=ws(Re.uiHistory),n.title=Re.title,n.contextTokenSnapshot=void 0,B.current=n.uiHistory??[],Zn(null),J(),wr([]),console.log(Ke.green(`
343
- [Switched to tree entry: ${F}]`)),console.log(Ke.dim(` Messages: ${Re.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(F,ae)=>{if(!await r.setLabel?.(n.sessionId,F,ae))return!1;let ai=ae&&ae.trim()?`checkpoint label set: ${ae.trim()}`:"checkpoint label cleared";return console.log(Ke.green(`
344
- [${ai}]`)),!0},"labelSessionBranch"),forkSession:i(async F=>{if(!Oo(G,"Forking a session branch",Md))return"blocked";let Re=await r.fork?.(n.sessionId,F);if(!Re)return"failed";n.sessionId=Re.sessionId,n.messages=Re.data.messages,n.uiHistory=ws(Re.data.uiHistory),n.title=Re.data.title,n.contextTokenSnapshot=void 0,B.current=n.uiHistory??[];let ai=new Date().toISOString();return n.createdAt=ai,n.lastAccessed=ai,Ge.current.session={...Ge.current.session,id:Re.sessionId},Zn(null),J(),wr([]),ce(Re.sessionId),console.log(Ke.green(`
345
- [Forked session: ${Re.sessionId}]`)),console.log(Ke.dim(` Messages: ${Re.data.messages.length}`)),"forked"},"forkSession"),rewindSession:i(async F=>{if(!Oo(G,"Rewinding session",Md))return"blocked";let Re=await r.rewind?.(n.sessionId,F);return Re?(n.messages=Re.messages,n.uiHistory=ws(Re.uiHistory),n.title=Re.title,n.contextTokenSnapshot=void 0,B.current=n.uiHistory??[],Zn(null),J(),wr([]),console.log(Ke.green(`
346
- [Rewound session${F?` to ${F}`:" to previous turn"}]`)),console.log(Ke.dim(` Messages: ${Re.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>j.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(zt(ln.current))return l.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(F=>{zt(ln.current)&&(l.getGuardrail().setEngine(F),of(F))},"setAutoModeEngine"),createKodaXOptions:i(()=>({...Ge.current,provider:G.provider,model:G.model,thinking:G.thinking,reasoningMode:G.reasoningMode,agentMode:G.agentMode,guardrails:Ig(ln.current,l),events:Tf()}),"createKodaXOptions"),reloadAgentsFiles:i(async()=>{let F=await Mf({cwd:process.cwd(),projectRoot:n.gitRoot??void 0});return g(F),F},"reloadAgentsFiles"),startCompacting:i(()=>{P()},"startCompacting"),stopCompacting:i(()=>{Y()},"stopCompacting"),confirm:i(async F=>(await ro("confirm",{_alwaysConfirm:!0,_message:F})).confirmed,"confirm"),ui:{select:i(async(F,ae)=>ov(F,ae),"select"),confirm:i(async F=>(await ro("confirm",{_alwaysConfirm:!0,_message:F})).confirmed,"confirm"),input:i(async(F,ae)=>ty(F,ae),"input")}},Ee=[],Zt=console.log;console.log=(...F)=>{let ae=F.map(Re=>typeof Re=="string"?Re:String(Re)).join(" ");Ee.push(ae)};let un;try{let F=await ts(z,n,pe,G);typeof F=="object"&&F!==null&&"invocation"in F&&(un=F.invocation)}finally{console.log=Zt}if(Ee.length>0&&S({type:"info",text:Ee.join(`
347
- `)}),un){Me(!1),Ce(),Me(!0),Z(),Be();try{await oy(un,w.trim())}catch(F){let ae=F instanceof Error?F:new Error(String(F)),Re=ae.name==="AbortError"||ae.message.includes("aborted")||ae.message.includes("ABORTED");console.log=Zt,Re?al():Zs([{type:"error",text:ae.message}])}finally{Me(!1),Ce(),V()}return}Me(!1),Ce();return}let re=await zp(w.trim());if(w.trim().startsWith("!")&&Za(re)){Me(!1),Ce();return}let ye=Ge.current.context?.executionCwd??process.cwd(),it=i(pe=>{pe.length!==0&&Zs(pe.map(Ee=>({type:"info",text:Ee})))},"emitArtifactWarnings");Be();let Pt=[],ea=console.log;console.log=(...pe)=>{let Ee=pe.map(Zt=>typeof Zt=="string"?Zt:String(Zt)).join(" ");Pt.push(Ee)};try{await fl(re,async pe=>{let Ee=ec(pe,Ge.current.context?.executionCwd??process.cwd());return it(Ee.warnings),Qs(Ge.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=ea,al();else{let un=Ee.message;Ee.message.includes("rate limit")||Ee.message.includes("Rate limit")?un=`[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")?un=`[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")?un=`[Network Error] ${Ee.message}
350
- Suggestion: Check your internet connection`:(Ee.message.includes("token")||Ee.message.includes("context too long"))&&(un=`[Context Error] ${Ee.message}
351
- Suggestion: Use /clear to start fresh`),console.log=ea,et.current.workerId?vn({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:un,timestamp:Date.now()}):Zs([{type:"error",text:un}])}}finally{if(console.log=ea,Pt.length>0){let Ee=Pt.filter((Zt,un,F)=>F.indexOf(Zt)===un);S({type:"info",text:Ee.join(`
352
- `)})}if(!Qe.current){let Ee=Ps(O.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));Ee.length>0&&et.current.workerId&&Ee.forEach(Zt=>In(Zt))}Me(!1),Ce(),$e(),V();let pe=io(n.messages);n.contextTokenSnapshot={currentTokens:pe,baselineEstimatedTokens:pe,source:"estimate"},Zn(pe)}},[yr,n,G,Bd,v.pendingInputs.length,r,ze,Ae,y,a,S,J,Z,Ce,$e,Tf,oy,pt,Je,qe,ul,bf,Js,or,fl,Cf,P,Y,br,Ps,In,$s]),cv=oe(ed,{left:oe(Ju,{items:Rh}),right:oe(Zu,{items:Eh}),queued:oe(jp,{pendingInputs:v.pendingInputs}),stashNotice:oe(ad,{text:el}),notifications:oe(sd,{notifications:Zc}),inlineNotices:uf.length>0?oe(Gp,{notices:uf}):void 0,activityBar:no||he&&nr.shouldRender?jt(k,{paddingX:1,flexDirection:"row",children:[jt(k,{flexGrow:1,children:[no?.showSpinner?oe(wn,{color:te("dark").colors.accent}):null,no?jt(C,{color:no.kind==="waiting"?te("dark").colors.warning:te("dark").colors.accent,children:[no.showSpinner?" ":"",no.text]}):null]}),he&&nr.shouldRender?oe(C,{dimColor:!0,children:`${nr.completedCount}/${nr.totalCount} completed`}):null]}):void 0,todoSurface:he&&nr.shouldRender?oe(k,{paddingX:1,children:oe(KS,{viewModel:nr})}):void 0,composer:oe($p,{onSubmit:av,onHistoryRecall:sv,onPopPendingInputs:i(()=>{let f=Oe();if(f.length!==0)return f.join(`
353
- ---
354
- `)},"onPopPendingInputs"),prompt:">",placeholder:fb({isLoading:he,canQueueFollowUps:Bd,waitingReason:sf}),focus:!ze&&!Ae&&!tt,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:X0}),inlineSuggestions:Z0,helpSurface:rh?oe(Dp,{sections:vd()}):void 0,taskBar:js?oe(cd,{items:Jo.backgroundTask.items,overflowLabel:Jo.backgroundTask.overflowLabel,ctaHint:Jo.backgroundTask.ctaHint,showSpinner:he}):void 0,statusLine:oe(k,{children:oe(cs,{...Qc,viewModel:Ih})}),inlineDialogs:tv}),lv=oe(ed,{left:oe(Ju,{items:Rh}),right:oe(Zu,{items:Eh}),stashNotice:oe(ad,{text:el}),notifications:oe(sd,{notifications:Zc}),composer:oe(WS,{searchActive:tt,selectionActive:!!(tr||je),showAllActive:Nt,searchQuery:Ht,searchCurrent:Tt.length>0?kr+1:0,searchCount:Tt.length,searchDetailText:nf,pendingLiveUpdates:Ns,secondaryText:Q0}),taskBar:js?oe(cd,{items:Jo.backgroundTask.items,overflowLabel:Jo.backgroundTask.overflowLabel,ctaHint:Jo.backgroundTask.ctaHint,showSpinner:nt}):void 0,statusLine:oe(k,{children:oe(cs,{...Qc,viewModel:cf})})}),vf=K(f=>oe(US,{banner:f?.bannerVisible?oe(Rg,{...eo}):void 0,items:Fs,isLoading:Ft,viewportRows:Wt.messageRows,viewportWidth:X,scrollOffset:Sn,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Ws:Gc,maxLines:Bt,selectedTextRanges:ef?Ic?.rowRanges:void 0,onMetricsChange:nl,onVisibleRowsChange:rl}),[eo,Fs,Ft,nl,rl,Sn,Gc,X,Bt,Ic?.rowRanges,Wt.messageRows,ef]),If=K(f=>oe(jS,{banner:f?.bannerVisible?oe(Rg,{...eo}):void 0,items:Bs,browse:{hintText:Rr.browseHintText},selection:tl,search:Ch,isLoading:nt,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:G.agentMode,managedPhase:nt?W?.phase:void 0,managedHarnessProfile:nt?W?.harnessProfile:void 0,managedWorkerTitle:nt?W?.activeWorkerTitle:void 0,managedRound:nt?W?.currentRound:void 0,managedMaxRounds:nt?W?.maxRounds:void 0,managedGlobalWorkBudget:nt?W?.globalWorkBudget:void 0,managedBudgetUsage:nt?W?.budgetUsage:void 0,managedBudgetApprovalRequired:nt?W?.budgetApprovalRequired:void 0,lastLiveActivityLabel:me.lastLiveActivityLabel,viewportRows:Wt.messageRows,viewportWidth:X,scrollOffset:Sn,windowed:!!f?.windowed,animateSpinners:!!f?.rendererWindow&&ei,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Ws:Kc,maxLines:Bt,showDetailedTools:Nt,showAllContent:Nt,selectedItemId:cn.selectionEnabled?je:void 0,selectedTextRanges:Xr?.rowRanges,expandedItemKeys:cn.selectionEnabled?Qt:void 0,onMetricsChange:nl,onVisibleRowsChange:rl}),[eo,G.agentMode,nt,Qt,s.transcriptSpinnerAnimation,nl,rl,Sn,fh,W?.activeWorkerTitle,W?.budgetApprovalRequired,W?.budgetUsage,W?.currentRound,W?.globalWorkBudget,W?.harnessProfile,W?.maxRounds,W?.phase,Ws,Kc,Rr.browseHintText,je,tl,X,ei,Bs,Bt,me.activeToolCalls,me.currentIteration,me.currentResponse,me.currentTool,me.isCompacting,me.isThinking,me.iterationHistory,me.lastLiveActivityLabel,me.thinkingCharCount,me.thinkingContent,me.toolInputCharCount,me.toolInputContent,Xr?.rowRanges,Ch,Nt,Wt.messageRows]),uv=ee?If({bannerVisible:!1,windowed:gt}):vf({bannerVisible:!1}),iy=ee?lv:cv,dv=s.enabled&&qo,sy=jt(k,{flexDirection:"column",width:X,flexShrink:0,flexGrow:dv?1:0,children:[oe(rg,{currentConfig:G,setCurrentConfig:lt,isLoading:he,abort:de,stopThinking:ne,clearThinkingContent:V,setCurrentTool:xe,setIsLoading:Me,onToggleHelp:z0,setShowHelp:oh,onSetThinking:i(f=>{Ge.current.thinking=f},"onSetThinking"),onSetReasoningMode:i(f=>{Ge.current.reasoningMode=f,Ge.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:nv,onOpenTranscriptSearch:mf,canOpenTranscriptSearch:ee&&!ze&&!Ae,isInteractiveDialogActive:!!(ze||Ae),onSetAgentMode:i(f=>{Ge.current.agentMode=f},"onSetAgentMode"),onSetPermissionMode:i(f=>{wf(f)},"onSetPermissionMode"),isInputEmpty:Fd,onSavePermissionMode:La}),Hd&&(s.enabled?null:oe(Ui,{items:[1],children:i(()=>oe(Rg,{...eo},"banner"),"children")})),qo?oe(Ap,{width:X,stickyHeader:Rr.stickyHeader,jumpToLatest:Rr.jumpToLatest,transcript:!s.enabled||!gt?ee?If({bannerVisible:!1}):vf({bannerVisible:!1}):void 0,renderTranscriptWindow:s.enabled&&gt?f=>(()=>{let w=zs(f).contentWindow;return ee?If({bannerVisible:!1,windowed:!0,rendererWindow:w}):vf({bannerVisible:!1,rendererWindow:w})})():void 0,overlay:hf,scrollTop:Sn,scrollHeight:Vs,viewportHeight:Wt.messageRows,stickyScroll:!ee&&!vr&&jd,scrollRef:$0,onWindowChange:ev,onScrollTopChange:D0,onStickyChange:N0,footer:iy}):jt(zL,{children:[jt(k,{flexDirection:"column",flexGrow:1,children:[uv,hf?oe(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:hf}):null]}),iy]})]});return Zd?oe(gm,{mouseTracking:Ir.usesRendererMouseTracking,children:sy}):sy},"InkREPLInner"),s$=i(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return oe(nd,{children:oe(ld,{children:oe(iu,{children:oe(tg,{children:oe(cp,{cwd:t,gitRoot:n,children:oe(i$,{...e})})})})})})},"InkREPL");function a$(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}i(a$,"isRawModeSupported");async function Pg(e){if(!a$())throw new Rf("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 ms,n=fo(),r=mo(),o=po(n,r),{prepareRuntimeConfig:s,getGitRoot:a}=await import("./utils-3HW4KOGE.js"),{loadCompactionConfig:c}=await import("./compaction-config-YL4SWWII.js"),{resolveProvider:l}=await import("./dist-AMUYI7R5.js"),u=s(),m=e.provider??u.provider??ml,p=e.model??u.model,g=YL(e,u),y=e.agentMode??u.agentMode??"ama",T=g!=="off",x=Gn(u.permissionMode,"accept-edits")??"accept-edits",b=pl(),I=u.repoIntelligenceTrace===!0,L={provider:m,model:p,thinking:T,reasoningMode:g,agentMode:y,permissionMode:x,repoIntelligenceMode:b.mode,repointelEndpoint:b.endpoint,repointelBin:b.bin,repoIntelligenceTrace:I},$=e.session?.id,j=[],D,S,J,ce="",Te=await a().catch(()=>null)??void 0;try{let{bootstrapConstructionRuntime:ie}=await import("./construction-bootstrap-XSE7ZABG.js"),ne=await ie(Te??process.cwd());if(ne.loaded>0||ne.failed>0||ne.tampered>0){let V=ne.failed>0?`; ${ne.failed} failed (see warnings above)`:"",xe=ne.tampered>0?`; ${ne.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";console.log(Ke.dim(`[Constructed] Rehydrated ${ne.loaded} active tool(s)${V}${xe}.`))}}catch(ie){console.warn(Ke.yellow(`[Constructed] Bootstrap failed: ${ie.message}. Self-construction disabled this session.`))}let B;try{let ie=await c(Te),ne=l(m);B={contextWindow:ie.contextWindow??ne.getContextWindow?.()??2e5,triggerPercent:ie.triggerPercent,enabled:ie.enabled}}catch{}if(e.session?.id&&!e.session.resume){let ie=await t.load(e.session.id);ie&&(j=ie.messages,D=ws(ie.uiHistory),S=ie.lineage,J=ie.artifactLedger,ce=ie.title,$=e.session.id,console.log(Ke.green(`[Session loaded: ${e.session.id}]`)))}else if(e.session?.resume||e.session?.autoResume){let ie=await t.list(Te);if(ie.length>0){let ne=ie[0];if(ne){let V=await t.load(ne.id);V&&(j=V.messages,D=ws(V.uiHistory),S=V.lineage,J=V.artifactLedger,ce=V.title,$=ne.id,console.log(Ke.green(`[Continuing session: ${ne.id}]`)))}}}let X=await Qa({sessionId:$,gitRoot:Te,existingMessages:j,existingUiHistory:D,existingLineage:S,existingArtifactLedger:J});X.title=ce;let M={current:await Mf({cwd:process.cwd(),projectRoot:Te??void 0})},Z={current:null},Ce={current:null},de={current:L},Be=hu(),se=await yd({askUser:i(async(ie,ne,V)=>{let xe=Z.current;return xe?xe(ie,ne,V):"block"},"askUser"),projectRoot:Te??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((ie,ne)=>{ie==="warn"?console.warn(Ke.yellow(ne)):console.log(Ke.dim(ne))},"log"),onEngineChange:i(ie=>{Ce.current?.(ie)},"onEngineChange"),extraCollectors:[Ia]});try{let ie=process.stdout,ne=process.stdin,V=!1,{waitUntilExit:xe,cleanup:ot}=Jl(oe(s$,{options:e,config:L,context:X,storage:t,compactionInfo:B,rendererMode:r,fullscreenPolicy:o,autoModeBootstrap:se,setAutoModeAskUser:i(ve=>{Z.current=ve},"setAutoModeAskUser"),setAutoModeEngineChange:i(ve=>{Ce.current=ve},"setAutoModeEngineChange"),setCurrentConfigRef:i(ve=>{de.current=ve},"setCurrentConfigRef"),onAgentsFilesReload:i(ve=>{M.current=ve},"onAgentsFilesReload"),onExit:i(()=>{V=!0},"onExit")}),{stdout:ie,stdin:ne,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:o.enabled?o.promptShell:"main-screen"});await xe(),ot(),ne.isTTY===!0&&typeof ne.setRawMode=="function"&&ne.isRaw&&ne.setRawMode(!1),ne.pause?.(),ne.unref?.(),V&&console.log(Ke.dim(`
355
- [Exiting KodaX...]`));let be=e.hardExitOnClose??process.env.VITEST!=="true";if(V&&be){let ve=process.exitCode??0,$e=!1,Se=i(()=>{$e||($e=!0,process.exit(ve))},"requestProcessExit");setTimeout(Se,0).unref?.(),ie.write("",Se);return}}catch(ie){throw ie instanceof Error&&ie.message.includes("Raw mode")?new Rf("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):ie}}i(Pg,"runInkInteractiveMode");import on from"chalk";var Xb=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Yb=["\x1B[36m","\x1B[35m","\x1B[34m"],oc=null,Ts=!1;function rc(){let e=0,t=0,n=!1,r="Thinking...",o=i(()=>{if(n)return;let c=Yb[t%Yb.length],l="\x1B[0m",u=Xb[e%Xb.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 oc=a,a}i(rc,"startWaitingDots");function c$(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=rc()),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||(Ts||(process.stdout.write(`
356
- `),Ts=!0),t=rc()),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())&&(Ts||(process.stdout.write(`
357
- `),Ts=!0,r=!1),t=rc(),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(()=>{oc&&!oc.isStopped()&&oc.stop(),oc=null,Ts=!1,r&&(console.log(),r=!1),(!t||t.isStopped())&&(t=rc(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:i((s,a)=>{t&&!t.isStopped()&&t.stop(),Ts=!1,r=!1,console.log(on.magenta(`
358
- [Assistant]`)),t=rc()},"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(c$,"createCliEvents");function rt(e,t){e.write(`${JSON.stringify(t)}
363
- `)}i(rt,"writeJsonLine");function l$(e){return{type:"error",name:e.name,message:e.message,stack:e.stack}}i(l$,"serializeError");function u$(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:i(r=>{rt(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId})},"onSessionStart"),onIterationStart:i((r,o)=>{rt(t,{type:"iteration.start",iter:r,maxIter:o})},"onIterationStart"),onIterationEnd:i(r=>{rt(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=>{rt(t,{type:"text.delta",text:r})},"onTextDelta"),onThinkingDelta:i(r=>{rt(t,{type:"thinking.delta",text:r})},"onThinkingDelta"),onThinkingEnd:i(r=>{rt(t,{type:"thinking.end",thinking:r})},"onThinkingEnd"),onToolUseStart:i(r=>{rt(t,{type:"tool.start",id:r.id,name:r.name,input:r.input})},"onToolUseStart"),onToolInputDelta:i((r,o,s)=>{rt(t,{type:"tool.input.delta",toolName:r,partialJson:o,toolId:s?.toolId})},"onToolInputDelta"),onToolResult:i(r=>{rt(t,{type:"tool.result",id:r.id,name:r.name,content:r.content})},"onToolResult"),onStreamEnd:i(()=>{rt(t,{type:"stream.end"})},"onStreamEnd"),onCompactStart:i(()=>{rt(t,{type:"compact.start"})},"onCompactStart"),onCompact:i(r=>{rt(t,{type:"compact.finish",estimatedTokens:r})},"onCompact"),onCompactStats:i(r=>{rt(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter})},"onCompactStats"),onCompactEnd:i(()=>{rt(t,{type:"compact.end"})},"onCompactEnd"),onRetry:i((r,o,s)=>{rt(t,{type:"retry",reason:r,attempt:o,maxAttempts:s})},"onRetry"),onProviderRecovery:i(r=>{rt(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)=>{rt(t,{type:"provider.rate_limit",attempt:r,maxRetries:o,delayMs:s})},"onProviderRateLimit"),onRepoIntelligenceTrace:i(r=>{rt(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace})},"onRepoIntelligenceTrace"),onToolProgress:i(r=>{rt(t,{type:"tool.progress",id:r.id,message:r.message})},"onToolProgress"),onManagedTaskStatus:i(r=>{rt(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=>{rt(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview})},"onScoutSuspiciousCompletion"),onComplete:i(()=>{rt(t,{type:"complete"})},"onComplete"),onError:i(r=>{rt(n,l$(r))},"onError")}}i(u$,"createJsonEvents");import{jsx as at,jsxs as Yt}from"react/jsx-runtime";import g$,{useMemo as ic}from"react";var Lg=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,qb=/^---\s+(.+)$/;function Qb(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 y=t[g];if(!s){let b=qb.exec(y);if(b){let I=Math.min(g+3,t.length-1),L=!1;for(let $=g+1;$<=I;$++)if(t[$]?.startsWith("+++ ")||Lg.test(t[$]??"")){L=!0;break}if(L){m(),s=!0,a=b[1]??null,c=a,o.push(y);continue}}if(Lg.test(y)){m(),s=!0,o.push(y);continue}r.push(y);continue}let T=qb.exec(y);if(T){let b=Math.min(g+3,t.length-1),I=!1;for(let L=g+1;L<=b;L++)if(t[L]?.startsWith("+++ ")||Lg.test(t[L]??"")){I=!0;break}if(I){p(),c=T[1]??null,o.push(y);continue}}let x=y[0];if(x==="+"||x==="-"||x===" "||x==="@"||y===""){x==="+"&&!y.startsWith("+++ ")&&l++,x==="-"&&!y.startsWith("--- ")&&u++,o.push(y);continue}p(),s=!1,a=null,r.push(y)}return p(),m(),n}i(Qb,"parseUnifiedDiff");function Jb(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}i(Jb,"containsUnifiedDiff");import{jsxs as Ss,jsx as d$}from"react/jsx-runtime";import f$ from"react";function m$(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(m$,"classifyLine");function p$(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(p$,"colorFor");var $g=f$.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(m$),m=`(${t>0?`+${t}`:"\xB10"} ${n>0?`-${n}`:""})`.trim();if(l.length>a)return Ss(k,{flexDirection:"column",marginLeft:4,children:[r&&Ss(C,{dimColor:!0,children:[r," ",m]}),Ss(C,{dimColor:!0,children:["[diff too large to render inline \u2014 ",l.length," lines, ",t,"+ / ",n,"-]"]})]});let p,g=0;if(l.length>s){let y=Math.floor(s/2),T=u.slice(0,y),x=u.slice(-y);g=l.length-T.length-x.length,p=[...T,{text:"",kind:"context"},...x]}else p=u;return Ss(k,{flexDirection:"column",marginLeft:4,children:[r&&Ss(C,{dimColor:!0,children:[r," ",m]}),p.map((y,T)=>{if(T===Math.floor(s/2)&&g>0&&y.kind==="context"&&y.text==="")return Ss(C,{dimColor:!0,children:["... ",g," lines collapsed ..."]},`collapse-${T}`);let b=p$(y.kind,c);return d$(C,{color:b,children:y.text||" "},T)})]})});$g.displayName="DiffHunk";function Zb(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(Zb,"getStatusIcon");function e0(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(e0,"getStatusColor");function h$(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(h$,"formatDuration");function y$(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}i(y$,"formatInputSummary");var x$=i(({status:e,theme:t})=>{let n=t??ic(()=>te("dark"),[]),r=Zb(e),o=e0(e,n);return at(C,{color:o,children:r})},"ToolStatusBadge"),t0=i(({progress:e,width:t=20,theme:n})=>{let r=n??ic(()=>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:[at(C,{color:r.colors.primary,children:c}),at(C,{dimColor:!0,children:l}),Yt(C,{children:[" ",o,"%"]})]})},"ToolProgressBar"),n0=i(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??ic(()=>te("dark"),[]),o=Zb(e.status),s=e0(e.status,r),a=y$(e.input),c=h$(e.startTime,e.endTime);return t?Yt(k,{children:[Yt(C,{color:s,children:[o," "]}),at(C,{color:r.colors.text,children:e.name})]}):Yt(k,{flexDirection:"column",marginLeft:2,children:[Yt(k,{children:[Yt(C,{color:s,children:[o," "]}),at(C,{color:r.colors.text,bold:!0,children:e.name}),a&&Yt(C,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===O.Executing&&at(k,{marginLeft:2,children:at(t0,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===O.Executing&&at(k,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>at(C,{dimColor:!0,children:l},u))}),e.error&&at(k,{marginLeft:2,children:at(C,{color:r.colors.error,children:e.error})}),e.status===O.Success&&typeof e.output=="string"&&e.output.length>0&&at(r0,{output:e.output,theme:r}),c&&e.status!==O.Executing&&at(k,{marginLeft:2,children:Yt(C,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),r0=g$.memo(({output:e,theme:t})=>{if(!Jb(e))return at(k,{marginLeft:2,children:at(C,{dimColor:!0,children:e})});let n=Qb(e);return at(k,{flexDirection:"column",marginLeft:2,children:n.map((r,o)=>r.kind==="text"?at(C,{dimColor:!0,children:r.text},o):at($g,{text:r.text,addedLines:r.addedLines,removedLines:r.removedLines,filePath:r.filePath,theme:t},o))})});r0.displayName="ToolOutputBlock";var w$=i(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let o=r??ic(()=>te("dark"),[]);if(e.length===0)return null;let s=ic(()=>{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 at(k,{flexDirection:"column",marginBottom:1,children:Yt(k,{children:[at(C,{color:o.colors.accent,bold:!0,children:a}),Yt(C,{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:[at(C,{color:o.colors.accent,bold:!0,children:a}),Yt(C,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>at(n0,{tool:c,theme:o},c.id))]})},"ToolGroup");import{jsxs as o0,jsx as T$}from"react/jsx-runtime";var S$=i(({pendingInputs:e})=>{let t=id(e);if(!t)return null;let n=te("dark");return o0(k,{children:[o0(C,{color:n.colors.hint,children:["\u23F3"," "]}),T$(C,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as i0 from"child_process";var sc;function C$(){if(process.platform!=="win32")return null;if(sc!==void 0)return sc;try{sc=i0.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{sc=null}return sc}i(C$,"detectWindowsCodePage");function _d(){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(_d,"supportsTrueColor");function s0(){if(_d())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}i(s0,"supports256Colors");function hr(){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:C$()==="65001":!0}i(hr,"supportsUnicode");function a0(){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(a0,"supportsEmoji");function c0(){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(c0,"getTerminalWidth");function l0(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}i(l0,"isScreenReader");function b$(){return process.stdout?.isTTY??!1}i(b$,"isTTY");function v$(){return{trueColor:_d(),colors256:s0(),unicode:hr(),emoji:a0(),tty:b$(),columns:c0(),screenReader:l0()}}i(v$,"detectTerminalCapabilities");var ac=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 I$(e){let t=new ac;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(I$,"withCapture");function k$(e){let t=new ac;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(k$,"withCaptureSync");import*as y0 from"readline";import*as x0 from"child_process";import*as fc from"path";import*as dc from"fs";import*as w0 from"os";import U from"chalk";import Pn from"chalk";var R$=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],E$=[{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 M$(e,t=!0){return e.map(n=>{let r=Pn.dim(`[${n.key}]`);return t?`${r} ${Pn.cyan(n.label)} ${Pn.dim(`- ${n.description}`)}`:`${r} ${n.label}`}).join(" ")}i(M$,"formatOptions");function Cs(){return process.stdout.columns??80}i(Cs,"getTerminalWidth");function A$(){return hr()}i(A$,"supportsUnicode");function _$(){let e=A$();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(_$,"getSymbols");async function P$(e,t){let{message:n,default:r,options:o,showDescription:s=!0}=t,a=o??R$,c=M$(a,s);console.log(),console.log(Pn.cyan(`? ${n}`));let l=Cs();if(c.length>l-4)for(let u of a){let m=Pn.dim(` [${u.key}]`);console.log(`${m} ${Pn.cyan(u.label)}`),s&&console.log(Pn.dim(` ${u.description}`))}else console.log(Pn.dim(` ${c}`));return new Promise(u=>{let m=r?` (${r})`:"";e.question(Pn.dim(` Choose${m}: `),p=>{let g=p.trim().toLowerCase()||r||"",y=a.find(T=>T.key===g||T.value===g||T.label.toLowerCase()===g);u(y?y.value:g===""?"no":g)})})}i(P$,"confirmEnhanced");async function cc(e,t,n,r){let{isOutsideProject:o=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits"}=r??{},c=_$(),l,u,m={...n,...o?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},p=hd(t,m),g=p.details.map(T=>` ${Pn.dim(T)}`);o||s?(l=`${Pn.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"?E$:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let y=await P$(e,{message:l,default:"n",options:u});return y==="always"?{confirmed:!0,always:!0}:{confirmed:y==="yes"}}i(cc,"confirmToolExecution");import qt from"chalk";var Pd=/\x1b\[[0-9;]*m/g,Jn={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 L$(e,t){if(t<=0)return"";let n="",r=0,o=0;for(;o<e.length&&r<t;){Pd.lastIndex=o;let s=Pd.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(L$,"truncateAnsi");function u0(e){return Pd.lastIndex=0,e.replace(Pd,"")}i(u0,"stripAnsi");function $$(e,t=Cs()){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=Vi(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 u0(l).length>u&&(l=`${L$(l,Math.max(0,u-3))}...`),l}i($$,"buildStatusBarContent");var Ld=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=Cs(),n=$$(this.state,t),r=n+" ".repeat(Math.max(0,t-u0(n).length));process.stdout.write(Jn.SAVE_CURSOR+Jn.MOVE_TO_BOTTOM+Jn.CLEAR_LINE+Jn.REVERSE+r+Jn.RESET+Jn.RESTORE_CURSOR)}clear(){process.stdout.write(Jn.SAVE_CURSOR+Jn.MOVE_TO_BOTTOM+Jn.CLEAR_LINE+Jn.RESTORE_CURSOR)}};function d0(e,t,n,r,o="off"){return{sessionId:e,permissionMode:t,reasoningMode:o,provider:n,model:r}}i(d0,"createStatusBarState");function f0(){if(!process.stdout.isTTY||bi())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(f0,"supportsStatusBar");import HY from"chalk";function m0(){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(m0,"getUnicodeSymbols");function Og(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}i(Og,"getAsciiSymbols");var p0={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:hr()?m0():Og(),spinner:{frames:hr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},O$={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:hr()?m0():Og(),spinner:{frames:hr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},D$={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:Og(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},N$={dark:p0,light:O$,minimal:D$},g0=p0;function uc(){return g0}i(uc,"getCurrentTheme");function lc(e){let t=N$[e];return t?(g0=t,!0):!1}i(lc,"setTheme");function H$(){if(!process.stdout.isTTY){lc("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){lc("dark");return}lc("dark")}i(H$,"autoSelectTheme");H$();var $d=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 Ng=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t),o=dn(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=pi(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=gi(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=xi(o.data.lineage,n);if(!s)return null;let a=r?.sessionId??await mi(),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??hi(r.data.lineage);if(!o)return null;let s=yi(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?so(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 Dg(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(Dg,"applyRuntimeContext");function B$(e){e?.workspaceRoot&&(console.log(U.dim(` Workspace: ${yn(e)}`)),console.log(U.dim(` Use /status workspace for runtime details.
373
- `)))}i(B$,"printWorkspaceEntryNotice");function F$(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}i(F$,"resolveInitialReasoningMode");var Hg={current:null};async function W$(e){let t=await Ji({cwd:process.cwd()}),n=t.workspaceRoot??await lo()??void 0,r=e.storage??new Ng,o=Nf(),s=e.provider??o.provider??ml,a=e.model??o.model,c=F$(e,o),l=e.agentMode??o.agentMode??"ama",u=c!=="off",m=Gn(o.permissionMode,"accept-edits")??"accept-edits",p=su();m==="auto-in-project"&&p();let g=pl(),y=o.theme;y&&lc(y);let T=uc(),x={provider:s,model:a,thinking:u,reasoningMode:c,agentMode:l,permissionMode:m,repoIntelligenceMode:g.mode,repointelEndpoint:g.endpoint,repointelBin:g.bin,repoIntelligenceTrace:g.trace},b=m,I=qi(),L=0,$="",j=!1,D=500,S=await Qa({sessionId:e.session?.id,gitRoot:n,runtimeInfo:t}),J=i(A=>Oo(x,A,(_,P,Y)=>{console.log((_==="block"?U.red:U.yellow)(`
374
- ${P}`));for(let we of Y)console.log(U.dim(we));console.log()}),"guardSessionTransition"),ce=await Tl(n??void 0),{resolveProvider:Te}=await import("./dist-AMUYI7R5.js"),B=Te(x.provider),X=ce.contextWindow??B.getEffectiveContextWindow?.(x.model)??B.getContextWindow?.()??2e5,{loadAgentsFiles:v}=await import("./dist-AMUYI7R5.js"),M=i(async()=>v({cwd:process.cwd(),projectRoot:S.gitRoot??void 0}),"reloadAgentsFiles"),Z=await M();K$(x,x.permissionMode,{contextWindow:X,triggerPercent:ce.triggerPercent,enabled:ce.enabled},Z),B$(t);let Ce=ST(()=>S.gitRoot??process.cwd()),de=y0.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=hu(),se=await yd({askUser:i(async(A,_,P)=>(await cc(de,A.name,{...A.input,...P&&P.length>0?{_classifierSignals:P}:{}},{permissionMode:b,reason:`[auto-mode] ${_}`})).confirmed?"allow":"block","askUser"),projectRoot:n??process.cwd(),getAgentsFiles:i(()=>Z,"getAgentsFiles"),getCurrentProviderName:i(()=>x.provider,"getCurrentProviderName"),getCurrentModel:i(()=>x.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>b,"getCurrentPermissionMode"),autoModeSettings:Be,log:i((A,_)=>{A==="warn"?console.warn(U.yellow(_)):console.log(U.dim(_))},"log"),onEngineChange:i(A=>{zt(b)&&V?.update({autoModeEngine:A})},"onEngineChange"),extraCollectors:[Ia]}),ie=yl({getProvider:i(()=>Te(x.provider),"getProvider"),getModel:i(()=>x.model??"","getModel")}),ne=x.model??Bn(x.provider)??x.provider,V=null;f0()&&(V=new Ld(d0(S.sessionId,x.permissionMode,x.provider,ne,x.reasoningMode)),zt(b)&&V.update({autoModeEngine:se.getGuardrail().getEngine()}));let xe=`
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`,ot=i(()=>{console.log(U.dim(xe))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(A,_)=>{if(_&&_.name==="escape"){let P=Date.now();P-L<D&&$&&(j=!0,console.log(U.dim(`
383
- [Opening editor with last message...]`)),de.pause()),L=P}});let ve=ir(n).getSystemPromptSnippet(),$e=!0,Se={...e,reasoningMode:c,thinking:u,context:{...e.context,gitRoot:n,executionCwd:t.executionCwd,repoIntelligenceMode:g.mode,repoIntelligenceTrace:g.trace,skillsPrompt:ve},session:{...e.session,id:S.sessionId}};Hg.current=null;let pt={exit:i(()=>{$e=!1,de.close()},"exit"),saveSession:i(async()=>{if(S.messages.length>0){let A=Od(S.messages);S.title=A,await r.save(S.sessionId,{messages:S.messages,title:A,gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo,artifactLedger:S.artifactLedger})}},"saveSession"),startNewSession:i(()=>{S.sessionId=Ja(),S.title="",S.contextTokenSnapshot=void 0,S.artifactLedger=void 0,S.createdAt=new Date().toISOString(),S.lastAccessed=S.createdAt,Dg(S,Se,t),Se.session={...Se.session,id:S.sessionId},V?.update({sessionId:S.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 Ji({cwd:process.cwd()}),Y=Oa(_),we=Y??P;return Y?.workspaceRoot&&!pT(Y)?(console.log(U.yellow(`
384
- [Saved workspace unavailable]`)),console.log(U.dim(` Session workspace: ${yn(Y)}`)),console.log(U.dim(` Falling back to current workspace: ${yn(P)}`)),we=P):Y?.workspaceRoot&&P.workspaceRoot&&Y.workspaceRoot!==P.workspaceRoot&&(console.log(U.cyan(`
385
- [Loading sibling workspace session]`)),console.log(U.dim(` Current workspace: ${yn(P)}`)),console.log(U.dim(` Session workspace: ${yn(Y)}`))),S.messages=_.messages,S.title=_.title,S.sessionId=A,S.contextTokenSnapshot=void 0,S.artifactLedger=_.artifactLedger,S.lastAccessed=new Date().toISOString(),Dg(S,Se,we),Se.session={...Se.session,id:A},V?.update({sessionId:A,messageCount:_.messages.length}),console.log(U.green(`
386
- [Loaded session: ${A}]`)),console.log(U.dim(` Messages: ${_.messages.length}`)),S.runtimeInfo?.workspaceRoot&&console.log(U.dim(` Workspace: ${yn(S.runtimeInfo)}`)),"loaded"}return"missing"},"loadSession"),listSessions:i(async()=>{let A=await r.list(S.gitRoot??void 0);if(A.length===0){console.log(U.dim(`
387
- [No saved sessions]`));return}console.log(U.bold(`
388
- Recent Sessions:
389
- `)),S.runtimeInfo?.workspaceRoot&&(console.log(U.dim(` Current workspace: ${yn(S.runtimeInfo)}`)),console.log());for(let _ of A.slice(0,10))if(console.log(` ${U.cyan(_.id)} ${U.dim(`(${_.msgCount} messages)`)} ${_.title.slice(0,40)}`),_.runtimeInfo?.workspaceRoot){let Y=S.runtimeInfo?.workspaceRoot===_.runtimeInfo.workspaceRoot?" (current workspace)":"";console.log(U.dim(` workspace: ${yn(_.runtimeInfo)}${Y}`))}console.log()},"listSessions"),clearHistory:i(()=>{S.messages=[],S.contextTokenSnapshot=void 0},"clearHistory"),printHistory:i(()=>{if(S.messages.length===0){console.log(U.dim(`
390
- [No conversation history]`));return}console.log(U.bold(`
391
- Conversation History:
392
- `));let A=S.messages.slice(-20);for(let _=0;_<A.length;_++){let P=A[_],Y=U.cyan(P.role.padEnd(10)),we=typeof P.content=="string"?P.content:"[Complex content]",Ve=we.slice(0,60).replace(/\n/g," "),Ie=we.length>60?"...":"";console.log(` ${(_+1).toString().padStart(2)}. ${Y} ${Ve}${Ie}`)}console.log()},"printHistory"),switchProvider:i((A,_)=>{x.provider=A,x.model=_,Se.provider=A,Se.model=_;let P=_??Bn(A);if(!P)try{P=cy(A)?.getModel()??A}catch{P=A}V?.update({provider:A,model:P})},"switchProvider"),setThinking:i(A=>{x.thinking=A,Se.thinking=A,x.reasoningMode=A?"auto":"off",Se.reasoningMode=x.reasoningMode,V?.update({reasoningMode:x.reasoningMode})},"setThinking"),setReasoningMode:i(A=>{let _=A!=="off";x.reasoningMode=A,x.thinking=_,Se.reasoningMode=A,Se.thinking=_,V?.update({reasoningMode:A})},"setReasoningMode"),setPermissionMode:i(A=>{x.permissionMode=A,b=A;let _=zt(A)?se.getGuardrail().getEngine():void 0;V?.update({permissionMode:A,autoModeEngine:_}),A==="auto-in-project"&&p()},"setPermissionMode"),setRepoIntelligenceRuntime:i(A=>{A.mode!==void 0&&(x.repoIntelligenceMode=A.mode,process.env.KODAX_REPO_INTELLIGENCE_MODE=A.mode,Se.context={...Se.context,repoIntelligenceMode:A.mode}),A.trace!==void 0&&(x.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&&(x.repointelEndpoint=A.endpoint??void 0,A.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=A.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),A.bin!==void 0&&(x.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?.(S.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let A=await r.getLineage?.(S.sessionId);if(!A){console.log(U.dim(`
393
- [No session tree available for this session]`));return}let _=gd(hl(A));console.log(U.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?.(S.sessionId,A,{summarizeCurrentBranch:!0});return _?(S.messages=_.messages,S.title=_.title,S.contextTokenSnapshot=void 0,V?.update({messageCount:S.messages.length}),console.log(U.green(`
396
- [Switched to tree entry: ${A}]`)),console.log(U.dim(` Messages: ${_.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(A,_)=>{if(!await r.setLabel?.(S.sessionId,A,_))return!1;let Y=_&&_.trim()?`checkpoint label set: ${_.trim()}`:"checkpoint label cleared";return console.log(U.green(`
397
- [${Y}]`)),!0},"labelSessionBranch"),forkSession:i(async A=>{if(!J("Forking a session branch"))return"blocked";let _=await r.fork?.(S.sessionId,A);return _?(S.sessionId=_.sessionId,S.messages=_.data.messages,S.title=_.data.title,S.contextTokenSnapshot=void 0,S.createdAt=new Date().toISOString(),S.lastAccessed=S.createdAt,Dg(S,Se,Oa(_.data)??S.runtimeInfo),Se.session={...Se.session,id:_.sessionId},V?.update({sessionId:_.sessionId,messageCount:S.messages.length}),console.log(U.green(`
398
- [Forked session: ${_.sessionId}]`)),console.log(U.dim(` Messages: ${_.data.messages.length}`)),"forked"):"failed"},"forkSession"),rewindSession:i(async A=>{if(!J("Rewinding session"))return"blocked";let _=await r.rewind?.(S.sessionId,A);return _?(S.messages=_.messages,S.title=_.title,S.contextTokenSnapshot=void 0,S.lastAccessed=new Date().toISOString(),V?.update({messageCount:S.messages.length}),console.log(U.green(`
399
- [Rewound session${A?` to ${A}`:" to previous turn"}]`)),console.log(U.dim(` Messages: ${_.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>Hg.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(zt(b))return se.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(A=>{zt(b)&&(se.getGuardrail().setEngine(A),V?.update({permissionMode:b}))},"setAutoModeEngine"),createKodaXOptions:i(()=>{let A=i((P,Y)=>b!=="plan"?null:mr(P,Y,n??process.cwd()),"planModeBlockCheck"),_=zt(b)?[se.getGuardrail()]:void 0;return{...Se,provider:x.provider,model:x.model,thinking:x.thinking,reasoningMode:x.reasoningMode,guardrails:_,context:{...Se.context,planModeBlockCheck:A},events:{...Se.events,exitPlanMode:i(async P=>b!=="plan"?"not-in-plan-mode":(await cc(de,"exit_plan_mode",{plan:P},{isProtectedPath:!1,permissionMode:b})).confirmed?(x.permissionMode="accept-edits",b="accept-edits",V?.update({permissionMode:"accept-edits"}),!0):!1,"exitPlanMode"),beforeToolExecute:i(async(P,Y)=>{let we=b,Ve=wo(we);if(we==="plan"){let Ie=mr(P,Y,n??process.cwd());if(Ie)return console.log(U.yellow(Ie)),`${Ie} 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 Ie=Y.command??"";if(Mn(Ie))return!0}if(n&&gn.has(P)){let Ie=Y.path;if(Ie&&Kn(Ie,n))return(await cc(de,P,Y,{isProtectedPath:!0,permissionMode:we})).confirmed?!0:(console.log(U.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(Ve.has(P)){if(we==="accept-edits"&&P==="bash"&&await Dr(P,Y,I,ie))return!0;let Ie=await cc(de,P,Y,{isOutsideProject:Y._outsideProject===!0,reason:Y._reason,permissionMode:we});if(!Ie.confirmed)return console.log(U.dim("[Cancelled] Operation cancelled by user")),!1;Ie.always&&we==="accept-edits"&&(yu(P,Y,!1),I=qi())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:i(async()=>(Z=await M(),Z),"reloadAgentsFiles"),readline:de,ui:new $d(de)};de.on("SIGINT",async()=>{console.log(U.dim(`
400
-
401
- [Press /exit to quit]`)),de.prompt()});let Je=i(()=>{V?.hide(),de.close()},"cleanup");process.on("exit",Je),process.on("SIGTERM",Je);let qe=i(async(A,_)=>{if(!A||typeof A!="object"||!A.invocation)return;let P=await wd({...Se,provider:x.provider,thinking:x.thinking,reasoningMode:x.reasoningMode},A.invocation,_,Y=>console.log(U.dim(`
402
- ${Y}`)));if(P.mode==="manual"){P.manualOutput&&console.log(U.yellow(`
403
- ${P.manualOutput}
404
- `)),await P.finalize();return}if(!P.prompt||!P.options){await P.finalize();return}try{let Y=P.mode==="fork"?[]:S.messages,we=await h0(P.options,S,P.prompt,Y);if(P.mode==="fork"){let Ve=_a(we.messages);Ve.trim()&&(console.log(`
405
- ${Ve}
406
- `),S.messages.push({role:"assistant",content:Ve}))}else S.messages=we.messages,S.contextTokenSnapshot=we.contextTokenSnapshot;if(V?.update({messageCount:S.messages.length}),S.messages.length>0){let Ve=Od(S.messages);S.title=Ve,await r.save(S.sessionId,{messages:S.messages,title:Ve,gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo})}await P.finalize()}catch(Y){throw await P.finalize(Y instanceof Error?Y:new Error(String(Y))),Y}},"handleCommandResult");for(;$e;){if(j&&$){j=!1,de.resume();let Ie=await T0($);if(Ie&&Ie.trim()&&Ie!==$){console.log(U.dim(`
407
- [Edited message ready to send]`));let q=Ie.trim();Yn(S);let Oe=es(q);if(Oe){let G=await ts(Oe,S,pt,x);await qe(G,q);continue}let he=await Bg(q);if(q.startsWith("!")&&Za(he))continue;let Me=ec(he,Se.context?.executionCwd??process.cwd());for(let G of Me.warnings)console.log(U.yellow(`
408
- ${G}`));S.messages.push({role:"user",content:Me.messageContent}),$=q,V?.update({messageCount:S.messages.length});try{let G=await oa({...Se,provider:x.provider,thinking:x.thinking,reasoningMode:x.reasoningMode,session:{...Se.session,initialMessages:S.lineage?vt(S.lineage,S.lineage.activeEntryId):S.messages},context:{...Se.context,taskSurface:"repl",planModeBlockCheck:i((lt,yr)=>b!=="plan"?null:mr(lt,yr,n??process.cwd()),"planModeBlockCheck"),...Me.inputArtifacts.length>0?{inputArtifacts:Me.inputArtifacts}:{}}},he);if(S.messages=G.messages,S.contextTokenSnapshot=G.contextTokenSnapshot,S.artifactLedger=ra(S.artifactLedger??[],G.artifactLedger??Af(G.messages)),S.messages.length>0){let lt=Od(S.messages);S.title=lt,await r.save(S.sessionId,{messages:S.messages,title:lt,gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo,artifactLedger:S.artifactLedger})}}catch(G){let lt=G instanceof Error?G:new Error(String(G));S.messages.pop(),console.log(U.red(`
409
- [Error] ${lt.message}`))}continue}else Ie===$&&console.log(U.dim(`
410
- [No changes made, continuing...]`))}let A=U$(x.permissionMode,x),_=await j$(de,A);if(!$e)break;let P=_.trim();if(!P)continue;Yn(S);let Y=es(P);if(Y){let Ie=await ts(Y,S,pt,x);await qe(Ie,P);continue}let we=await Bg(P);if(P.startsWith("!")&&Za(we))continue;let Ve=ec(we,Se.context?.executionCwd??process.cwd());for(let Ie of Ve.warnings)console.log(U.yellow(`
411
- ${Ie}`));S.messages.push({role:"user",content:Ve.messageContent}),$=P,V?.update({messageCount:S.messages.length});try{let Ie=await h0(Se,S,we,S.messages,Ve.inputArtifacts);if(S.messages=Ie.messages,S.contextTokenSnapshot=Ie.contextTokenSnapshot,S.artifactLedger=ra(S.artifactLedger??[],Ie.artifactLedger??Af(Ie.messages)),V?.update({messageCount:S.messages.length}),S.messages.length>0){let q=Od(S.messages);S.title=q,await r.save(S.sessionId,{messages:S.messages,title:q,gitRoot:S.gitRoot??"",runtimeInfo:S.runtimeInfo,artifactLedger:S.artifactLedger})}}catch(Ie){let q=Ie instanceof Error?Ie:new Error(String(Ie));S.messages.pop(),q.message.includes("rate limit")||q.message.includes("Rate limit")?(console.log(U.yellow(`
412
- [Rate Limit] ${q.message}`)),console.log(U.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
413
- `))):q.message.includes("API key")||q.message.includes("not configured")?(console.log(U.red(`
414
- [Configuration Error] ${q.message}`)),console.log(U.dim(`Suggestion: Set the required API key environment variable
415
- `))):q.message.includes("network")||q.message.includes("ECONNREFUSED")||q.message.includes("ETIMEDOUT")?(console.log(U.red(`
416
- [Network Error] ${q.message}`)),console.log(U.dim(`Suggestion: Check your internet connection and try again
417
- `))):q.message.includes("token")||q.message.includes("context too long")?(console.log(U.yellow(`
418
- [Context Error] ${q.message}`)),console.log(U.dim(`Suggestion: Use /clear to start a fresh conversation
419
- `))):(console.log(U.red(`
420
- [Error] ${q.message}`)),console.log(U.dim(`Your message was not sent. Please try again.
421
- `)))}}}i(W$,"runInteractiveMode");function U$(e,t){let n=uc(),r=e==="plan"?U.hex(n.colors.warning):U.hex(n.colors.success),o=t.model??Bn(t.provider)??t.provider,s=Cs();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?U.hex(n.colors.dim)(`[${c}]`):"";return r(`kodax:${e}${l}> `)}let a=t.reasoningMode!=="off"?U.hex(n.colors.info)(`[reason:${t.reasoningMode}]`):"";return r(`kodax:${e} (${t.provider}:${o})${a}> `)}i(U$,"getPrompt");async function j$(e,t){let n=uc(),r=[],o=await new Promise(a=>{e.question(t,a)});if(o===""||o.toLowerCase()==="/e")return await T0(r.join(`
422
- `));for(r.push(o);G$(r.join(`
423
- `));){let a=U.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(j$,"askInput");async function T0(e){let t=fc.join(w0.tmpdir(),"kodax"),n=fc.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await dc.promises.mkdir(t,{recursive:!0}),await dc.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=fc.basename(r);console.log(U.yellow(`
426
- [Security] Editor path sanitized: ${a}`)),r=a}console.log(U.dim(`
427
- [Opening editor: ${r}]`));let o=process.platform==="win32"&&(r.toLowerCase()==="notepad"||r.toLowerCase()==="notepad.exe");return console.log(o?U.dim(`Note: Please close Notepad manually after editing to continue.
428
- `):U.dim(`Save and close the editor to continue...
429
- `)),x0.spawnSync(r,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await dc.promises.readFile(n,"utf-8")).trim()}catch(r){let o=r instanceof Error?r:new Error(String(r));return console.log(U.red(`
430
- [Editor Error] ${o.message}`)),e}finally{try{await dc.promises.unlink(n)}catch{}}}i(T0,"openExternalEditor");function G$(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(G$,"needsContinuation");async function Bg(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 dd(n,{cwd:process.cwd()})}return e}i(Bg,"processSpecialSyntax");async function h0(e,t,n,r=t.messages,o){let s={...e.events??{},getCostReport:Hg};return oa({...e,events:s,session:{...e.session,initialMessages:r},context:{...e.context,contextTokenSnapshot:t.contextTokenSnapshot,taskSurface:"repl",...o&&o.length>0?{inputArtifacts:[...o]}:{}}},n)}i(h0,"runAgentRound");function Od(e){return Yi(e)}i(Od,"extractTitle");function K$(e,t,n,r){let o=uc(),s=e.model??Bn(e.provider)??e.provider;if(console.log(U.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(U.hex(o.colors.text)(`
438
- v${wi} | AI Coding Agent | ${e.provider}:${s}`)),console.log(U.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(U.hex(o.colors.dim)(" Mode: ")+U.hex(o.colors.primary)(t)+U.hex(o.colors.dim)(" | Reasoning: ")+(e.reasoningMode==="off"?U.hex(o.colors.dim)("off"):U.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?U.hex(o.colors.success)("on"):U.hex(o.colors.dim)("off");console.log(U.hex(o.colors.dim)(` Context: ${c}k | Compaction: `)+u+U.hex(o.colors.dim)(` @ ${n.triggerPercent}% (${l}k)`))}if(console.log(U.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(U.hex(o.colors.dim)(" Project Rules: ")+U.hex(o.colors.success)(`${c} rule file(s) loaded`)),console.log(U.hex(o.colors.dim)(` Use /reload to refresh rules
441
- `))}console.log(U.hex(o.colors.dim)(" Quick tips:")),console.log(U.hex(o.colors.primary)(" /help ")+U.hex(o.colors.dim)("Show all commands")),console.log(U.hex(o.colors.primary)(" /mode ")+U.hex(o.colors.dim)("Switch permission mode")),console.log(U.hex(o.colors.primary)(" /clear ")+U.hex(o.colors.dim)("Clear conversation")),console.log(U.hex(o.colors.primary)(" @path ")+U.hex(o.colors.dim)("Attach image to context")),console.log(U.hex(o.colors.primary)(" !cmd ")+U.hex(o.colors.dim)("Run read-only shell command")),console.log(U.hex(o.colors.dim)(`
442
- Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
443
- `))}i(K$,"printStartupBanner");import Ln from"fs/promises";import Dd from"fs";import Nd from"path";import v0 from"chalk";var V$=new Set(["user","assistant","system"]);function wt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(wt,"isRecord");function Fo(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(Fo);if(!wt(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(Fo)}i(Fo,"isKodaXJsonValue");function S0(e){return wt(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||Fo(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}i(S0,"isKodaXExtensionSessionRecord");function C0(e){return wt(e)?Object.values(e).every(t=>wt(t)?Object.values(t).every(Fo):!1):!1}i(C0,"isKodaXExtensionSessionState");function z$(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(z$,"isKodaXContentBlock");function Fg(e){return!wt(e)||typeof e.role!="string"||!V$.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(z$)}i(Fg,"isKodaXMessage");function b0(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(b0,"isSessionErrorMetadata");function X$(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(X$,"isKodaXSessionUiHistoryItem");function Wg(e){return Array.isArray(e)&&e.every(X$)}i(Wg,"isKodaXSessionUiHistory");function Y$(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||Wg(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")}i(Y$,"isPersistedMetaUpdateLine");function I0(e,t){t!==0&&process.stderr.write(`[KodaX] Skipped ${t} malformed session record(s) from ${Nd.basename(e)}.
444
- `)}i(I0,"warnMalformedSessionData");function Vr(e){process.stderr.write(`${e}
445
- `)}i(Vr,"writeStorageNotice");function k0(e){return{_type:"extension_record",...e}}i(k0,"toExtensionRecordLine");function R0(e){return{_type:"lineage_entry",entry:e}}i(R0,"toLineageEntryLine");function E0(e){return{_type:"artifact_ledger_entry",entry:e}}i(E0,"toArtifactLedgerLine");function q$(e){return wt(e)&&e._type==="extension_record"&&S0(e)}i(q$,"isPersistedExtensionRecordLine");function Q$(e){return wt(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"}i(Q$,"hasEntryBase");function J$(e){if(!Q$(e))return!1;let t=e;switch(t.type){case"message":return Fg(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||Fo(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(J$,"isKodaXSessionEntry");function Z$(e){return wt(e)&&e._type==="lineage_entry"&&J$(e.entry)}i(Z$,"isPersistedLineageEntryLine");function e1(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||Fo(e.metadata))}i(e1,"isKodaXSessionArtifactLedgerEntry");function t1(e){return wt(e)&&e._type==="artifact_ledger_entry"&&e1(e.entry)}i(t1,"isPersistedArtifactLedgerLine");function A0(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(A0,"isKodaXSessionRuntimeInfo");function M0(e,t){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase()===t.toLowerCase():e===t}i(M0,"pathsEqual");function n1(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(n1,"getLastNavigableEntryId");function r1(e){if(e.lineageEntries.length>0)return{version:2,activeEntryId:e.meta?.activeEntryId??n1(e.lineageEntries),entries:e.lineageEntries};if(e.legacyMessages.length!==0)return dn(e.legacyMessages)}i(r1,"buildLineage");function o1(e){let t=r1(e);return{createdAt:e.meta?.createdAt,data:{messages:t?vt(t):[...e.legacyMessages],title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",runtimeInfo:A0(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:Wg(e.meta?.uiHistory)?e.meta.uiHistory.map(n=>({...n})):void 0,errorMetadata:b0(e.meta?.errorMetadata)?{...e.meta.errorMetadata}:void 0,extensionState:C0(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(o1,"buildSessionData");function i1(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?so(n):t.messages.length}}i(i1,"createSessionMeta");async function s1(e){if(!Dd.existsSync(e))return null;let n=(await Ln.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(Y$(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(Z$(a)){r.lineageEntries.push(a.entry);continue}if(t1(a)){r.artifactLedger.push(a.entry);continue}if(q$(a)){r.extensionRecords.push({id:a.id,extensionId:a.extensionId,type:a.type,ts:a.ts,data:a.data,dedupeKey:a.dedupeKey});continue}if(Fg(a)){r.legacyMessages.push(a);continue}r.malformedCount+=1}catch{r.malformedCount+=1}return r}i(s1,"readPersistedSessionFile");var Ug=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 Nd.join(Er,`${t}.jsonl`)}getArchiveFilePath(t){return Nd.join(Er,`${t}.archive.jsonl`)}async readSession(t){let n=this.getSessionFilePath(t),r=await s1(n);return r?(I0(n,r.malformedCount),o1(r)):null}async writeSessionInternal(t,n,r){await Ln.mkdir(Er,{recursive:!0});let o=this.getSessionFilePath(t),s=`${o}.${process.pid}.${Date.now()}.tmp`,a=n.lineage??dn(n.messages),c=i1(t,n,a,r);try{let l=await Ln.open(s,"w");try{await l.write(JSON.stringify(c)+`
447
- `);for(let u of a.entries)await l.write(JSON.stringify(R0(u))+`
448
- `);for(let u of n.artifactLedger??[])await l.write(JSON.stringify(E0(u))+`
449
- `);for(let u of n.extensionRecords??[])await l.write(JSON.stringify(k0(u))+`
450
- `)}finally{await l.close()}await Ln.rename(s,o)}finally{Dd.existsSync(s)&&await Ln.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??dn(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(!Dd.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(R0(p)));for(let p of c)u.push(JSON.stringify(E0(p)));for(let p of l)u.push(JSON.stringify(k0(p)));let m={_type:"meta_update",title:n.title,activeEntryId:n.lineage.activeEntryId,activeMessageCount:so(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 Ln.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}=wy(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 Ln.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 lo(),c=await Ji(),l=Oa(r);if((c.canonicalRepoRoot&&l?.canonicalRepoRoot&&!Iu(c,l)||a&&r.gitRoot&&a!==r.gitRoot&&!Iu(c,{canonicalRepoRoot:r.gitRoot}))&&(Vr(v0.yellow(`
456
- [Warning] Session project mismatch:`)),c.workspaceRoot&&Vr(` Current workspace: ${c.workspaceRoot}`),l?.workspaceRoot&&Vr(` Session workspace: ${l.workspaceRoot}`),c.canonicalRepoRoot&&Vr(` Current repo: ${c.canonicalRepoRoot}`),l?.canonicalRepoRoot?Vr(` Session repo: ${l.canonicalRepoRoot}`):r.gitRoot&&Vr(` Session repo: ${r.gitRoot}`),Vr(` Continuing anyway...
457
- `)),r.errorMetadata?.consecutiveErrors&&r.errorMetadata.consecutiveErrors>0){let m=dy(r.messages);if(m!==r.messages){Vr(v0.cyan("[Session Recovery] Cleaned incomplete tool calls from previous session"));let p={...r,messages:m,errorMetadata:{...r.errorMetadata,consecutiveErrors:0},lineage:dn(m,r.lineage)};return await this.serializedWrite(t,async()=>{await this.writeSessionInternal(t,p,o),this.syncAppendState(t,p)}),p}}return I0(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=pi(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??hi(o.data.lineage);if(!s)return;let a=yi(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=gi(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=xi(s.data.lineage,n);if(!a)return;let c=r?.sessionId??await mi(),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 Ln.mkdir(Er,{recursive:!0});let n=t??await lo(),r=await Ji({cwd:n??process.cwd()}),o=(await Ln.readdir(Er)).filter(a=>a.endsWith(".jsonl")),s=[];for(let a of o)try{let c=(await Ln.readFile(Nd.join(Er,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=A0(u.runtimeInfo)?u.runtimeInfo:void 0,g=u.scope==="managed-task-worker"?"managed-task-worker":"user";if(n){let b=Iu(r,p),I=p?.workspaceRoot?M0(p.workspaceRoot,r.workspaceRoot??""):M0(m,n);if(!b&&!I)continue}if(g!=="user")continue;let y=c.split(`
459
- `).length,T=typeof u.extensionRecordCount=="number"&&u.extensionRecordCount>0?u.extensionRecordCount:0,x=typeof u.activeMessageCount=="number"&&u.activeMessageCount>=0?u.activeMessageCount:Math.max(0,y-1-T);s.push({id:a.replace(".jsonl",""),title:typeof u.title=="string"?u.title:"",msgCount:x,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);Dd.existsSync(n)&&await Ln.unlink(n)}async deleteAll(t){let n=t??await lo(),r=await this.list(n??void 0);for(let o of r)await this.delete(o.id)}};export{Si as a,Ci as b,ia as c,bi as d,sa as e,Hf as f,uo as g,fo as h,vi as i,mo as j,Cl as k,po as l,Ii as m,bl as n,vl as o,ki as p,en as q,Fn as r,Wn as s,Sv as t,Gt as u,aa as v,Wf as w,Uf as x,Kt as y,jf as z,Gf as A,jy as B,Gy as C,te as D,S1 as E,Cm as F,ER as G,ou as H,Sa as I,yw as J,LR as K,$R as L,tn as M,O as N,gB as O,$t as P,vm as Q,km as R,iu as S,Rm as T,Tw as U,Ca as V,Vi as W,wo as X,Em as Y,Gn as Z,Mn as _,An as $,Dr as aa,du as ba,Kn as ca,mu as da,So as ea,Bm as fa,mr as ga,Aa as ha,Yi as ia,PE as ja,Xm as ka,es as la,ts as ma,cp as na,Mo as oa,_u as pa,lp as qa,Ba as ra,dp as sa,ns as ta,cA as ua,wn as va,HT as wa,BT as xa,lA as ya,uA as za,zA as Aa,Po as Ba,YA as Ca,cs as Da,g_ as Ea,y_ as Fa,x_ as Ga,Ap as Ha,_p as Ia,T_ as Ja,Lp as Ka,$p as La,Ju as Ma,Zu as Na,ed as Oa,Dp as Pa,td as Qa,Np as Ra,Hp as Sa,nd as Ta,Ga as Ua,Ka as Va,IS as Wa,od as Xa,Fp as Ya,Up as Za,jp as _a,sd as $a,Gp as ab,ad as bb,cd as cb,Vp as db,ld as eb,Ya as fb,qa as gb,HS as hb,X_ as ib,Y_ as jb,Qa as kb,Yn as lb,ms as mb,q_ as nb,dd as ob,Z_ as pb,eP as qb,fd as rb,Xp as sb,md as tb,Yp as ub,Pg as vb,c$ as wb,u$ as xb,x$ as yb,t0 as zb,n0 as Ab,w$ as Bb,S$ as Cb,_d as Db,s0 as Eb,hr as Fb,a0 as Gb,c0 as Hb,l0 as Ib,v$ as Jb,ac as Kb,I$ as Lb,k$ as Mb,W$ as Nb,Bg as Ob,Ug as Pb};