@easbot/tui 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs ADDED
@@ -0,0 +1,45 @@
1
+ 'use strict';var child_process=require('child_process'),J=require('fs'),He=require('os'),ae=require('path'),getEastAsianWidth=require('get-east-asian-width'),marked=require('marked'),events=require('events'),Ls=require('koffi');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var J__namespace=/*#__PURE__*/_interopNamespace(J);var He__namespace=/*#__PURE__*/_interopNamespace(He);var ae__namespace=/*#__PURE__*/_interopNamespace(ae);var Ls__default=/*#__PURE__*/_interopDefault(Ls);var Rt=Object.defineProperty;var Bt=(n,e,t)=>e in n?Rt(n,e,{enumerable:true,configurable:true,writable:true,value:t}):n[e]=t;var c=(n,e,t)=>Bt(n,typeof e!="symbol"?e+"":e,t);function et(n,e){let t=n.toLowerCase(),s=e.toLowerCase(),i=u=>{if(u.length===0)return {matches:true,score:0};if(u.length>s.length)return {matches:false,score:0};let f=0,p=0,d=-1,m=0;for(let g=0;g<s.length&&f<u.length;g++)if(s[g]===u[f]){let y=g===0||/[\s\-_./:]/.test(s[g-1]);d===g-1?(m++,p-=m*5):(m=0,d>=0&&(p+=(g-d-1)*2)),y&&(p-=10),p+=g*.1,d=g,f++;}return f<u.length?{matches:false,score:0}:{matches:true,score:p}},r=i(t);if(r.matches)return r;let o=t.match(/^(?<letters>[a-z]+)(?<digits>[0-9]+)$/),l=t.match(/^(?<digits>[0-9]+)(?<letters>[a-z]+)$/),a=o?`${o.groups?.digits??""}${o.groups?.letters??""}`:l?`${l.groups?.letters??""}${l.groups?.digits??""}`:"";if(!a)return r;let h=i(a);return h.matches?{matches:true,score:h.score+5}:r}function ce(n,e,t){if(!e.trim())return n;let s=e.trim().split(/\s+/).filter(r=>r.length>0);if(s.length===0)return n;let i=[];for(let r of n){let o=t(r),l=0,a=true;for(let h of s){let u=et(h,o);if(u.matches)l+=u.score;else {a=false;break}}a&&i.push({item:r,totalScore:l});}return i.sort((r,o)=>r.totalScore-o.totalScore),i.map(r=>r.item)}var at=new Set([" "," ",'"',"'","="]);function it(n){for(let e=n.length-1;e>=0;e-=1)if(at.has(n[e]??""))return e;return -1}function Dt(n){let e=false,t=-1;for(let s=0;s<n.length;s+=1)n[s]==='"'&&(e=!e,e&&(t=s));return e?t:null}function nt(n,e){return e===0||at.has(n[e-1]??"")}function rt(n){let e=Dt(n);return e===null?null:e>0&&n[e-1]==="@"?nt(n,e-1)?n.slice(e-1):null:nt(n,e)?n.slice(e):null}function ot(n){return n.startsWith('@"')?{rawPrefix:n.slice(2),isAtPrefix:true,isQuotedPrefix:true}:n.startsWith('"')?{rawPrefix:n.slice(1),isAtPrefix:false,isQuotedPrefix:true}:n.startsWith("@")?{rawPrefix:n.slice(1),isAtPrefix:true,isQuotedPrefix:false}:{rawPrefix:n,isAtPrefix:false,isQuotedPrefix:false}}function lt(n,e){let t=e.isQuotedPrefix||n.includes(" "),s=e.isAtPrefix?"@":"";return t?`${`${s}"`}${n}"`:`${s}${n}`}function Ft(n,e,t,s){let i=["--base-directory",n,"--max-results",String(s),"--type","f","--type","d","--full-path","--hidden","--exclude",".git","--exclude",".git/*","--exclude",".git/**"];t&&i.push(t);let r=child_process.spawnSync(e,i,{encoding:"utf-8",stdio:["pipe","pipe","pipe"],maxBuffer:10*1024*1024});if(r.status!==0||!r.stdout)return [];let o=r.stdout.trim().split(`
2
+ `).filter(Boolean),l=[];for(let a of o){let h=a.endsWith("/")?a.slice(0,-1):a;if(h===".git"||h.startsWith(".git/")||h.includes("/.git/"))continue;let u=a.endsWith("/");l.push({path:a,isDirectory:u});}return l}var $e=class{constructor(e=[],t=process.cwd(),s=null){c(this,"commands");c(this,"basePath");c(this,"fdPath");this.commands=e,this.basePath=t,this.fdPath=s;}getSuggestions(e,t,s){let r=(e[t]||"").slice(0,s),o=this.extractAtPrefix(r);if(o){let{rawPrefix:a,isQuotedPrefix:h}=ot(o),u=this.getFuzzyFileSuggestions(a,{isQuotedPrefix:h});return u.length===0?null:{items:u,prefix:o}}if(r.startsWith("/")){let a=r.indexOf(" ");if(a===-1){let h=r.slice(1),u=this.commands.map(p=>({name:"name"in p?p.name:p.value,label:"name"in p?p.name:p.label,description:p.description})),f=ce(u,h,p=>p.name).map(p=>({value:p.name,label:p.label,...p.description&&{description:p.description}}));return f.length===0?null:{items:f,prefix:r}}else {let h=r.slice(1,a),u=r.slice(a+1),f=this.commands.find(d=>("name"in d?d.name:d.value)===h);if(!f||!("getArgumentCompletions"in f)||!f.getArgumentCompletions)return null;let p=f.getArgumentCompletions(u);return !p||p.length===0?null:{items:p,prefix:u}}}let l=this.extractPathPrefix(r,false);if(l!==null){let a=this.getFileSuggestions(l);return a.length===0?null:a.length===1&&a[0]?.value===l&&!l.endsWith("/")?{items:a,prefix:l}:{items:a,prefix:l}}return null}applyCompletion(e,t,s,i,r){let o=e[t]||"",l=o.slice(0,s-r.length),a=o.slice(s),h=r.startsWith('"')||r.startsWith('@"'),u=a.startsWith('"'),f=i.value.endsWith('"'),p=h&&f&&u?a.slice(1):a;if(r.startsWith("/")&&l.trim()===""&&!r.slice(1).includes("/")){let x=`${l}/${i.value} ${p}`,b=[...e];return b[t]=x,{lines:b,cursorLine:t,cursorCol:l.length+i.value.length+2}}if(r.startsWith("@")){let x=i.label.endsWith("/"),b=x?"":" ",P=`${l+i.value}${b}${p}`,B=[...e];B[t]=P;let T=i.value.endsWith('"'),S=x&&T?i.value.length-1:i.value.length;return {lines:B,cursorLine:t,cursorCol:l.length+S+b.length}}let m=o.slice(0,s);if(m.includes("/")&&m.includes(" ")){let x=l+i.value+p,b=[...e];b[t]=x;let P=i.label.endsWith("/"),B=i.value.endsWith('"'),T=P&&B?i.value.length-1:i.value.length;return {lines:b,cursorLine:t,cursorCol:l.length+T}}let g=l+i.value+p,y=[...e];y[t]=g;let L=i.label.endsWith("/"),C=i.value.endsWith('"'),A=L&&C?i.value.length-1:i.value.length;return {lines:y,cursorLine:t,cursorCol:l.length+A}}extractAtPrefix(e){let t=rt(e);if(t?.startsWith('@"'))return t;let s=it(e),i=s===-1?0:s+1;return e[i]==="@"?e.slice(i):null}extractPathPrefix(e,t=false){let s=rt(e);if(s)return s;let i=it(e),r=i===-1?e:e.slice(i+1);return t||r.includes("/")||r.startsWith(".")||r.startsWith("~/")||r===""&&e.endsWith(" ")?r:null}expandHomePath(e){if(e.startsWith("~/")){let t=ae.join(He.homedir(),e.slice(2));return e.endsWith("/")&&!t.endsWith("/")?`${t}/`:t}else if(e==="~")return He.homedir();return e}resolveScopedFuzzyQuery(e){let t=e.lastIndexOf("/");if(t===-1)return null;let s=e.slice(0,t+1),i=e.slice(t+1),r;s.startsWith("~/")?r=this.expandHomePath(s):s.startsWith("/")?r=s:r=ae.join(this.basePath,s);try{if(!J.statSync(r).isDirectory())return null}catch{return null}return {baseDir:r,query:i,displayBase:s}}scopedPathForDisplay(e,t){return e==="/"?`/${t}`:`${e}${t}`}getFileSuggestions(e){try{let t,s,{rawPrefix:i,isAtPrefix:r,isQuotedPrefix:o}=ot(e),l=i;if(l.startsWith("~")&&(l=this.expandHomePath(l)),i===""||i==="./"||i==="../"||i==="~"||i==="~/"||i==="/"||r&&i==="")i.startsWith("~")||l.startsWith("/")?t=l:t=ae.join(this.basePath,l),s="";else if(i.endsWith("/"))i.startsWith("~")||l.startsWith("/")?t=l:t=ae.join(this.basePath,l),s="";else {let f=ae.dirname(l),p=ae.basename(l);i.startsWith("~")||l.startsWith("/")?t=f:t=ae.join(this.basePath,f),s=p;}let h=J.readdirSync(t,{withFileTypes:!0}),u=[];for(let f of h){if(!f.name.toLowerCase().startsWith(s.toLowerCase()))continue;let p=f.isDirectory();if(!p&&f.isSymbolicLink())try{let C=ae.join(t,f.name);p=J.statSync(C).isDirectory();}catch{}let d,m=f.name,g=i;if(g.endsWith("/"))d=g+m;else if(g.includes("/"))if(g.startsWith("~/")){let C=g.slice(2),A=ae.dirname(C);d=`~/${A==="."?m:ae.join(A,m)}`;}else if(g.startsWith("/")){let C=ae.dirname(g);C==="/"?d=`/${m}`:d=`${C}/${m}`;}else d=ae.join(ae.dirname(g),m);else g.startsWith("~")?d=`~/${m}`:d=m;let y=p?`${d}/`:d,L=lt(y,{isDirectory:p,isAtPrefix:r,isQuotedPrefix:o});u.push({value:L,label:m+(p?"/":"")});}return u.sort((f,p)=>{let d=f.value.endsWith("/"),m=p.value.endsWith("/");return d&&!m?-1:!d&&m?1:f.label.localeCompare(p.label)}),u}catch{return []}}scoreEntry(e,t,s){let r=ae.basename(e).toLowerCase(),o=t.toLowerCase(),l=0;return r===o?l=100:r.startsWith(o)?l=80:r.includes(o)?l=50:e.toLowerCase().includes(o)&&(l=30),s&&l>0&&(l+=10),l}getFuzzyFileSuggestions(e,t){if(!this.fdPath)return [];try{let s=this.resolveScopedFuzzyQuery(e),i=s?.baseDir??this.basePath,r=s?.query??e,l=Ft(i,this.fdPath,r,100).map(u=>({...u,score:r?this.scoreEntry(u.path,r,u.isDirectory):1})).filter(u=>u.score>0);l.sort((u,f)=>f.score-u.score);let a=l.slice(0,20),h=[];for(let{path:u,isDirectory:f}of a){let p=f?u.slice(0,-1):u,d=s?this.scopedPathForDisplay(s.displayBase,p):p,m=ae.basename(p),g=f?`${d}/`:d,y=lt(g,{isDirectory:f,isAtPrefix:!0,isQuotedPrefix:t.isQuotedPrefix});h.push({value:y,label:m+(f?"/":""),description:d});}return h}catch{return []}}getForceFileSuggestions(e,t,s){let r=(e[t]||"").slice(0,s);if(r.trim().startsWith("/")&&!r.trim().includes(" "))return null;let o=this.extractPathPrefix(r,true);if(o!==null){let l=this.getFileSuggestions(o);return l.length===0?null:{items:l,prefix:o}}return null}shouldTriggerFileCompletion(e,t,s){let r=(e[t]||"").slice(0,s);return !(r.trim().startsWith("/")&&!r.trim().includes(" "))}};var re=new Intl.Segmenter(void 0,{granularity:"grapheme"});function ye(){return re}function Vt(n){let e=n.codePointAt(0);return e>=126976&&e<=130047||e>=8960&&e<=9215||e>=9728&&e<=10175||e>=11088&&e<=11093||n.includes("\uFE0F")||n.length>2}var Ut=new RegExp("^(?:\\p{Default_Ignorable_Code_Point}|\\p{Control}|\\p{Mark}|\\p{Surrogate})+$","v"),_t=new RegExp("^[\\p{Default_Ignorable_Code_Point}\\p{Control}\\p{Format}\\p{Mark}\\p{Surrogate}]+","v"),Ht=new RegExp("^\\p{RGI_Emoji}$","v"),Nt=512,ue=new Map;function Re(n){if(Ut.test(n))return 0;if(Vt(n)&&Ht.test(n))return 2;let t=n.replace(_t,"").codePointAt(0);if(t===void 0)return 0;let s=getEastAsianWidth.eastAsianWidth(t);if(n.length>1)for(let i of n.slice(1)){let r=i.codePointAt(0);r>=65280&&r<=65519&&(s+=getEastAsianWidth.eastAsianWidth(r));}return s}function w(n){if(n.length===0)return 0;let e=true;for(let r=0;r<n.length;r++){let o=n.charCodeAt(r);if(o<32||o>126){e=false;break}}if(e)return n.length;let t=ue.get(n);if(t!==void 0)return t;let s=n;n.includes(" ")&&(s=s.replace(/\t/g," ")),s.includes("\x1B")&&(s=s.replace(/\x1b\[[0-9;]*[mGKHJ]/g,""),s=s.replace(/\x1b\]8;;[^\x07]*\x07/g,""),s=s.replace(/\x1b_[^\x07\x1b]*(?:\x07|\x1b\\)/g,""));let i=0;for(let{segment:r}of re.segment(s))i+=Re(r);if(ue.size>=Nt){let r=ue.keys().next().value;r!==void 0&&ue.delete(r);}return ue.set(n,i),i}function z(n,e){if(e>=n.length||n[e]!=="\x1B")return null;let t=n[e+1];if(t==="["){let s=e+2;for(;s<n.length&&!/[mGKHJ]/.test(n[s]);)s++;return s<n.length?{code:n.substring(e,s+1),length:s+1-e}:null}if(t==="]"){let s=e+2;for(;s<n.length;){if(n[s]==="\x07")return {code:n.substring(e,s+1),length:s+1-e};if(n[s]==="\x1B"&&n[s+1]==="\\")return {code:n.substring(e,s+2),length:s+2-e};s++;}return null}if(t==="_"){let s=e+2;for(;s<n.length;){if(n[s]==="\x07")return {code:n.substring(e,s+1),length:s+1-e};if(n[s]==="\x1B"&&n[s+1]==="\\")return {code:n.substring(e,s+2),length:s+2-e};s++;}return null}return null}var fe=class{constructor(){c(this,"bold",false);c(this,"dim",false);c(this,"italic",false);c(this,"underline",false);c(this,"blink",false);c(this,"inverse",false);c(this,"hidden",false);c(this,"strikethrough",false);c(this,"fgColor",null);c(this,"bgColor",null);}process(e){if(!e.endsWith("m"))return;let t=e.match(/\x1b\[([\d;]*)m/);if(!t)return;let s=t[1];if(s===""||s==="0"){this.reset();return}let i=(s??"").split(";"),r=0;for(;r<i.length;){let o=Number.parseInt(i[r]??"0",10);if(o===38||o===48){if(i[r+1]==="5"&&i[r+2]!==void 0){let l=`${i[r]};${i[r+1]};${i[r+2]}`;o===38?this.fgColor=l:this.bgColor=l,r+=3;continue}else if(i[r+1]==="2"&&i[r+4]!==void 0){let l=`${i[r]};${i[r+1]};${i[r+2]};${i[r+3]};${i[r+4]}`;o===38?this.fgColor=l:this.bgColor=l,r+=5;continue}}switch(o){case 0:this.reset();break;case 1:this.bold=true;break;case 2:this.dim=true;break;case 3:this.italic=true;break;case 4:this.underline=true;break;case 5:this.blink=true;break;case 7:this.inverse=true;break;case 8:this.hidden=true;break;case 9:this.strikethrough=true;break;case 21:this.bold=false;break;case 22:this.bold=false,this.dim=false;break;case 23:this.italic=false;break;case 24:this.underline=false;break;case 25:this.blink=false;break;case 27:this.inverse=false;break;case 28:this.hidden=false;break;case 29:this.strikethrough=false;break;case 39:this.fgColor=null;break;case 49:this.bgColor=null;break;default:o>=30&&o<=37||o>=90&&o<=97?this.fgColor=String(o):(o>=40&&o<=47||o>=100&&o<=107)&&(this.bgColor=String(o));break}r++;}}reset(){this.bold=false,this.dim=false,this.italic=false,this.underline=false,this.blink=false,this.inverse=false,this.hidden=false,this.strikethrough=false,this.fgColor=null,this.bgColor=null;}clear(){this.reset();}getActiveCodes(){let e=[];return this.bold&&e.push("1"),this.dim&&e.push("2"),this.italic&&e.push("3"),this.underline&&e.push("4"),this.blink&&e.push("5"),this.inverse&&e.push("7"),this.hidden&&e.push("8"),this.strikethrough&&e.push("9"),this.fgColor&&e.push(this.fgColor),this.bgColor&&e.push(this.bgColor),e.length===0?"":`\x1B[${e.join(";")}m`}hasActiveCodes(){return this.bold||this.dim||this.italic||this.underline||this.blink||this.inverse||this.hidden||this.strikethrough||this.fgColor!==null||this.bgColor!==null}getLineEndReset(){return this.underline?"\x1B[24m":""}};function ct(n,e){let t=0;for(;t<n.length;){let s=z(n,t);s?(e.process(s.code),t+=s.length):t++;}}function qt(n){let e=[],t="",s="",i=false,r=0;for(;r<n.length;){let o=z(n,r);if(o){s+=o.code,r+=o.length;continue}let l=n[r],a=l===" ";a!==i&&t&&(e.push(t),t=""),s&&(t+=s,s=""),i=a,t+=l,r++;}return s&&(t+=s),t&&e.push(t),e}function j(n,e){if(!n)return [""];let t=n.split(`
3
+ `),s=[],i=new fe;for(let r of t){let o=s.length>0?i.getActiveCodes():"";s.push(...zt(o+r,e)),ct(r,i);}return s.length>0?s:[""]}function zt(n,e){if(!n)return [""];if(w(n)<=e)return [n];let s=[],i=new fe,r=qt(n),o="",l=0;for(let a of r){let h=w(a),u=a.trim()==="";if(h>e&&!u){if(o){let d=i.getLineEndReset();d&&(o+=d),s.push(o),o="",l=0;}let p=Gt(a,e,i);s.push(...p.slice(0,-1)),o=p[p.length-1]??"",l=w(o);continue}if(l+h>e&&l>0){let p=o.trimEnd(),d=i.getLineEndReset();d&&(p+=d),s.push(p),u?(o=i.getActiveCodes(),l=0):(o=i.getActiveCodes()+a,l=h);}else o+=a,l+=h;ct(a,i);}return o&&s.push(o),s.length>0?s.map(a=>a.trimEnd()):[""]}var jt=/[(){}[\]<>.,;:'"!?+\-=*/\\|&%^$#@~`]/;function F(n){return /\s/.test(n)}function V(n){return jt.test(n)}function Gt(n,e,t){let s=[],i=t.getActiveCodes(),r=0,o=0,l=[];for(;o<n.length;){let a=z(n,o);if(a)l.push({type:"ansi",value:a.code}),o+=a.length;else {let h=o;for(;h<n.length&&!z(n,h);)h++;let u=n.slice(o,h);for(let f of re.segment(u))l.push({type:"grapheme",value:f.segment});o=h;}}for(let a of l){if(a.type==="ansi"){i+=a.value,t.process(a.value);continue}let h=a.value;if(!h)continue;let u=w(h);if(r+u>e){let f=t.getLineEndReset();f&&(i+=f),s.push(i),i=t.getActiveCodes(),r=0;}i+=h,r+=u;}return i&&s.push(i),s.length>0?s:[""]}function X(n,e,t){let s=w(n),i=Math.max(0,e-s),r=" ".repeat(i),o=n+r;return t(o)}function O(n,e,t="...",s=false){let i=w(n);if(i<=e)return s?n+" ".repeat(e-i):n;let r=w(t),o=e-r;if(o<=0)return t.substring(0,e);let l=0,a=[];for(;l<n.length;){let p=z(n,l);if(p)a.push({type:"ansi",value:p.code}),l+=p.length;else {let d=l;for(;d<n.length&&!z(n,d);)d++;let m=n.slice(l,d);for(let g of re.segment(m))a.push({type:"grapheme",value:g.segment});l=d;}}let h="",u=0;for(let p of a){if(p.type==="ansi"){h+=p.value;continue}let d=p.value;if(!d)continue;let m=w(d);if(u+m>o)break;h+=d,u+=m;}let f=`${h}\x1B[0m${t}`;if(s){let p=w(f);return f+" ".repeat(Math.max(0,e-p))}return f}function de(n,e,t,s=false){return Be(n,e,t,s).text}function Be(n,e,t,s=false){if(t<=0)return {text:"",width:0};let i=e+t,r="",o=0,l=0,a=0,h="";for(;a<n.length;){let u=z(n,a);if(u){l>=e&&l<i?r+=u.code:l<e&&(h+=u.code),a+=u.length;continue}let f=a;for(;f<n.length&&!z(n,f);)f++;for(let{segment:p}of re.segment(n.slice(a,f))){let d=Re(p),m=l>=e&&l<i,g=!s||l+d<=i;if(m&&g&&(h&&(r+=h,h=""),r+=p,o+=d),l+=d,l>=i)break}if(a=f,l>=i)break}return {text:r,width:o}}var Ee=new fe;function ut(n,e,t,s,i=false){let r="",o=0,l="",a=0,h=0,u=0,f="",p=false,d=t+s;for(Ee.clear();u<n.length;){let m=z(n,u);if(m){Ee.process(m.code),h<e?f+=m.code:h>=t&&h<d&&p&&(l+=m.code),u+=m.length;continue}let g=u;for(;g<n.length&&!z(n,g);)g++;for(let{segment:y}of re.segment(n.slice(u,g))){let L=Re(y);if(h<e?(f&&(r+=f,f=""),r+=y,o+=L):h>=t&&h<d&&(!i||h+L<=d)&&(p||(l+=Ee.getActiveCodes(),p=true),l+=y,a+=L),h+=L,s<=0?h>=e:h>=d)break}if(u=g,s<=0?h>=e:h>=d)break}return {before:r,beforeWidth:o,after:l,afterWidth:a}}var Oe=class{constructor(e=1,t=1,s){c(this,"children",[]);c(this,"paddingX");c(this,"paddingY");c(this,"bgFn");c(this,"cache");this.paddingX=e,this.paddingY=t,this.bgFn=s;}addChild(e){this.children.push(e),this.invalidateCache();}removeChild(e){let t=this.children.indexOf(e);t!==-1&&(this.children.splice(t,1),this.invalidateCache());}clear(){this.children=[],this.invalidateCache();}setBgFn(e){this.bgFn=e;}invalidateCache(){this.cache=void 0;}matchCache(e,t,s){let i=this.cache;return !!i&&i.width===e&&i.bgSample===s&&i.childLines.length===t.length&&i.childLines.every((r,o)=>r===t[o])}invalidate(){this.invalidateCache();for(let e of this.children)e.invalidate?.();}render(e){if(this.children.length===0)return [];let t=Math.max(1,e-this.paddingX*2),s=" ".repeat(this.paddingX),i=[];for(let l of this.children){let a=l.render(t);for(let h of a)i.push(s+h);}if(i.length===0)return [];let r=this.bgFn?this.bgFn("test"):void 0;if(this.matchCache(e,i,r))return this.cache.lines;let o=[];for(let l=0;l<this.paddingY;l++)o.push(this.applyBg("",e));for(let l of i)o.push(this.applyBg(l,e));for(let l=0;l<this.paddingY;l++)o.push(this.applyBg("",e));return this.cache={childLines:i,width:e,bgSample:r,lines:o},o}applyBg(e,t){let s=w(e),i=Math.max(0,t-s),r=e+" ".repeat(i);return this.bgFn?X(r,t,this.bgFn):r}};var D=false;function pe(n){D=n;}function Yt(){return D}var Qt={escape:"escape",esc:"esc",enter:"enter",return:"return",tab:"tab",space:"space",backspace:"backspace",delete:"delete",insert:"insert",clear:"clear",home:"home",end:"end",pageUp:"pageUp",pageDown:"pageDown",up:"up",down:"down",left:"left",right:"right",f1:"f1",f2:"f2",f3:"f3",f4:"f4",f5:"f5",f6:"f6",f7:"f7",f8:"f8",f9:"f9",f10:"f10",f11:"f11",f12:"f12",backtick:"`",hyphen:"-",equals:"=",leftbracket:"[",rightbracket:"]",backslash:"\\",semicolon:";",quote:"'",comma:",",period:".",slash:"/",exclamation:"!",at:"@",hash:"#",dollar:"$",percent:"%",caret:"^",ampersand:"&",asterisk:"*",leftparen:"(",rightparen:")",underscore:"_",plus:"+",pipe:"|",tilde:"~",leftbrace:"{",rightbrace:"}",colon:":",lessthan:"<",greaterthan:">",question:"?",ctrl:n=>`ctrl+${n}`,shift:n=>`shift+${n}`,alt:n=>`alt+${n}`,ctrlShift:n=>`ctrl+shift+${n}`,shiftCtrl:n=>`shift+ctrl+${n}`,ctrlAlt:n=>`ctrl+alt+${n}`,altCtrl:n=>`alt+ctrl+${n}`,shiftAlt:n=>`shift+alt+${n}`,altShift:n=>`alt+shift+${n}`,ctrlShiftAlt:n=>`ctrl+shift+alt+${n}`},Ie=new Set(["`","-","=","[","]","\\",";","'",",",".","/","!","@","#","$","%","^","&","*","(",")","_","+","|","~","{","}",":","<",">","?"]),W={shift:1,alt:2,ctrl:4},E={escape:27,tab:9,enter:13,space:32,backspace:127,kpEnter:57414},K={up:-1,down:-2,right:-3,left:-4},$={delete:-10,insert:-11,pageUp:-12,pageDown:-13,home:-14,end:-15},N={up:["\x1B[A","\x1BOA"],down:["\x1B[B","\x1BOB"],right:["\x1B[C","\x1BOC"],left:["\x1B[D","\x1BOD"],home:["\x1B[H","\x1BOH","\x1B[1~","\x1B[7~"],end:["\x1B[F","\x1BOF","\x1B[4~","\x1B[8~"],insert:["\x1B[2~"],delete:["\x1B[3~"],pageUp:["\x1B[5~","\x1B[[5~"],pageDown:["\x1B[6~","\x1B[[6~"],clear:["\x1B[E","\x1BOE"],f1:["\x1BOP","\x1B[11~","\x1B[[A"],f2:["\x1BOQ","\x1B[12~","\x1B[[B"],f3:["\x1BOR","\x1B[13~","\x1B[[C"],f4:["\x1BOS","\x1B[14~","\x1B[[D"],f5:["\x1B[15~","\x1B[[E"],f6:["\x1B[17~"],f7:["\x1B[18~"],f8:["\x1B[19~"],f9:["\x1B[20~"],f10:["\x1B[21~"],f11:["\x1B[23~"],f12:["\x1B[24~"]},Xt={up:["\x1B[a"],down:["\x1B[b"],right:["\x1B[c"],left:["\x1B[d"],clear:["\x1B[e"],insert:["\x1B[2$"],delete:["\x1B[3$"],pageUp:["\x1B[5$"],pageDown:["\x1B[6$"],home:["\x1B[7$"],end:["\x1B[8$"]},Jt={up:["\x1BOa"],down:["\x1BOb"],right:["\x1BOc"],left:["\x1BOd"],clear:["\x1BOe"],insert:["\x1B[2^"],delete:["\x1B[3^"],pageUp:["\x1B[5^"],pageDown:["\x1B[6^"],home:["\x1B[7^"],end:["\x1B[8^"]},Zt={"\x1BOA":"up","\x1BOB":"down","\x1BOC":"right","\x1BOD":"left","\x1BOH":"home","\x1BOF":"end","\x1B[E":"clear","\x1BOE":"clear","\x1BOe":"ctrl+clear","\x1B[e":"shift+clear","\x1B[2~":"insert","\x1B[2$":"shift+insert","\x1B[2^":"ctrl+insert","\x1B[3$":"shift+delete","\x1B[3^":"ctrl+delete","\x1B[[5~":"pageUp","\x1B[[6~":"pageDown","\x1B[a":"shift+up","\x1B[b":"shift+down","\x1B[c":"shift+right","\x1B[d":"shift+left","\x1BOa":"ctrl+up","\x1BOb":"ctrl+down","\x1BOc":"ctrl+right","\x1BOd":"ctrl+left","\x1B[5$":"shift+pageUp","\x1B[6$":"shift+pageDown","\x1B[7$":"shift+home","\x1B[8$":"shift+end","\x1B[5^":"ctrl+pageUp","\x1B[6^":"ctrl+pageDown","\x1B[7^":"ctrl+home","\x1B[8^":"ctrl+end","\x1BOP":"f1","\x1BOQ":"f2","\x1BOR":"f3","\x1BOS":"f4","\x1B[11~":"f1","\x1B[12~":"f2","\x1B[13~":"f3","\x1B[14~":"f4","\x1B[[A":"f1","\x1B[[B":"f2","\x1B[[C":"f3","\x1B[[D":"f4","\x1B[[E":"f5","\x1B[15~":"f5","\x1B[17~":"f6","\x1B[18~":"f7","\x1B[19~":"f8","\x1B[20~":"f9","\x1B[21~":"f10","\x1B[23~":"f11","\x1B[24~":"f12","\x1Bb":"alt+left","\x1Bf":"alt+right","\x1Bp":"alt+up","\x1Bn":"alt+down"},U=(n,e)=>e.includes(n),H=(n,e,t)=>t===W.shift?U(n,Xt[e]):t===W.ctrl?U(n,Jt[e]):false;function De(n){return n.includes("\x1B[200~")?false:!!(n.includes(":3u")||n.includes(":3~")||n.includes(":3A")||n.includes(":3B")||n.includes(":3C")||n.includes(":3D")||n.includes(":3H")||n.includes(":3F"))}function es(n){return n.includes("\x1B[200~")?false:!!(n.includes(":2u")||n.includes(":2~")||n.includes(":2A")||n.includes(":2B")||n.includes(":2C")||n.includes(":2D")||n.includes(":2H")||n.includes(":2F"))}function we(n){if(!n)return "press";let e=parseInt(n,10);return e===2?"repeat":e===3?"release":"press"}function dt(n){let e=n.match(/^\x1b\[(\d+)(?::(\d*))?(?::(\d+))?(?:;(\d+))?(?::(\d+))?u$/);if(e){let r=parseInt(e[1],10),o=e[2]&&e[2].length>0?parseInt(e[2],10):void 0,l=e[3]?parseInt(e[3],10):void 0,a=e[4]?parseInt(e[4],10):1,h=we(e[5]);return {codepoint:r,shiftedKey:o,baseLayoutKey:l,modifier:a-1,eventType:h}}let t=n.match(/^\x1b\[1;(\d+)(?::(\d+))?([ABCD])$/);if(t){let r=parseInt(t[1],10),o=we(t[2]),l={A:-1,B:-2,C:-3,D:-4};return {codepoint:l[t[3]],modifier:r-1,eventType:o}}let s=n.match(/^\x1b\[(\d+)(?:;(\d+))?(?::(\d+))?~$/);if(s){let r=parseInt(s[1],10),o=s[2]?parseInt(s[2],10):1,l=we(s[3]),h={2:$.insert,3:$.delete,5:$.pageUp,6:$.pageDown,7:$.home,8:$.end}[r];if(h!==void 0)return {codepoint:h,modifier:o-1,eventType:l}}let i=n.match(/^\x1b\[1;(\d+)(?::(\d+))?([HF])$/);if(i){let r=parseInt(i[1],10),o=we(i[2]),l=i[3]==="H"?$.home:$.end;return {codepoint:l,modifier:r-1,eventType:o}}return null}function I(n,e,t){let s=dt(n);if(!s)return false;let i=s.modifier&-193,r=t&-193;if(i!==r)return false;if(s.codepoint===e)return true;if(s.baseLayoutKey!==void 0&&s.baseLayoutKey===e){let o=s.codepoint,l=o>=97&&o<=122,a=Ie.has(String.fromCharCode(o));if(!l&&!a)return true}return false}function ft(n,e,t){let s=n.match(/^\x1b\[27;(\d+);(\d+)~$/);if(!s)return false;let i=parseInt(s[1],10),r=parseInt(s[2],10),o=i-1;return r===e&&o===t}function ts(n){let e=n.toLowerCase(),t=e.charCodeAt(0);return t>=97&&t<=122||e==="["||e==="\\"||e==="]"||e==="_"?String.fromCharCode(t&31):e==="-"?"":null}function ss(n){let e=n.toLowerCase().split("+"),t=e[e.length-1];return t?{key:t,ctrl:e.includes("ctrl"),shift:e.includes("shift"),alt:e.includes("alt")}:null}function G(n,e){let t=ss(e);if(!t)return false;let{key:s,ctrl:i,shift:r,alt:o}=t,l=0;switch(r&&(l|=W.shift),o&&(l|=W.alt),i&&(l|=W.ctrl),s){case "escape":case "esc":return l!==0?false:n==="\x1B"||I(n,E.escape,0);case "space":return !D&&(i&&!o&&!r&&n==="\0"||o&&!i&&!r&&n==="\x1B ")?true:l===0?n===" "||I(n,E.space,0):I(n,E.space,l);case "tab":return r&&!i&&!o?n==="\x1B[Z"||I(n,E.tab,W.shift):l===0?n===" "||I(n,E.tab,0):I(n,E.tab,l);case "enter":case "return":return r&&!i&&!o?I(n,E.enter,W.shift)||I(n,E.kpEnter,W.shift)||ft(n,E.enter,W.shift)?true:D?n==="\x1B\r"||n===`
4
+ `:false:o&&!i&&!r?I(n,E.enter,W.alt)||I(n,E.kpEnter,W.alt)||ft(n,E.enter,W.alt)?true:D?false:n==="\x1B\r":l===0?n==="\r"||!D&&n===`
5
+ `||n==="\x1BOM"||I(n,E.enter,0)||I(n,E.kpEnter,0):I(n,E.enter,l)||I(n,E.kpEnter,l);case "backspace":return o&&!i&&!r?n==="\x1B\x7F"||n==="\x1B\b"?true:I(n,E.backspace,W.alt):l===0?n==="\x7F"||n==="\b"||I(n,E.backspace,0):I(n,E.backspace,l);case "insert":return l===0?U(n,N.insert)||I(n,$.insert,0):H(n,"insert",l)?true:I(n,$.insert,l);case "delete":return l===0?U(n,N.delete)||I(n,$.delete,0):H(n,"delete",l)?true:I(n,$.delete,l);case "clear":return l===0?U(n,N.clear):H(n,"clear",l);case "home":return l===0?U(n,N.home)||I(n,$.home,0):H(n,"home",l)?true:I(n,$.home,l);case "end":return l===0?U(n,N.end)||I(n,$.end,0):H(n,"end",l)?true:I(n,$.end,l);case "pageup":return l===0?U(n,N.pageUp)||I(n,$.pageUp,0):H(n,"pageUp",l)?true:I(n,$.pageUp,l);case "pagedown":return l===0?U(n,N.pageDown)||I(n,$.pageDown,0):H(n,"pageDown",l)?true:I(n,$.pageDown,l);case "up":return o&&!i&&!r?n==="\x1Bp"||I(n,K.up,W.alt):l===0?U(n,N.up)||I(n,K.up,0):H(n,"up",l)?true:I(n,K.up,l);case "down":return o&&!i&&!r?n==="\x1Bn"||I(n,K.down,W.alt):l===0?U(n,N.down)||I(n,K.down,0):H(n,"down",l)?true:I(n,K.down,l);case "left":return o&&!i&&!r?n==="\x1B[1;3D"||!D&&n==="\x1BB"||n==="\x1Bb"||I(n,K.left,W.alt):i&&!o&&!r?n==="\x1B[1;5D"||H(n,"left",W.ctrl)||I(n,K.left,W.ctrl):l===0?U(n,N.left)||I(n,K.left,0):H(n,"left",l)?true:I(n,K.left,l);case "right":return o&&!i&&!r?n==="\x1B[1;3C"||!D&&n==="\x1BF"||n==="\x1Bf"||I(n,K.right,W.alt):i&&!o&&!r?n==="\x1B[1;5C"||H(n,"right",W.ctrl)||I(n,K.right,W.ctrl):l===0?U(n,N.right)||I(n,K.right,0):H(n,"right",l)?true:I(n,K.right,l);case "f1":case "f2":case "f3":case "f4":case "f5":case "f6":case "f7":case "f8":case "f9":case "f10":case "f11":case "f12":return l!==0?false:U(n,N[s])}if(s.length===1&&(s>="a"&&s<="z"||Ie.has(s))){let a=s.charCodeAt(0),h=ts(s);return i&&o&&!r&&!D&&h?n===`\x1B${h}`:o&&!i&&!r&&!D&&s>="a"&&s<="z"&&n===`\x1B${s}`?true:i&&!r&&!o?h&&n===h?true:I(n,a,W.ctrl):i&&r&&!o?I(n,a,W.shift+W.ctrl):r&&!i&&!o?n===s.toUpperCase()?true:I(n,a,W.shift):l!==0?I(n,a,l):n===s||I(n,a,0)}return false}function is(n){let e=dt(n);if(e){let{codepoint:s,baseLayoutKey:i,modifier:r}=e,o=[],l=r&-193;l&W.shift&&o.push("shift"),l&W.ctrl&&o.push("ctrl"),l&W.alt&&o.push("alt");let a=s>=97&&s<=122,h=Ie.has(String.fromCharCode(s)),u=a||h?s:i??s,f;if(u===E.escape?f="escape":u===E.tab?f="tab":u===E.enter||u===E.kpEnter?f="enter":u===E.space?f="space":u===E.backspace?f="backspace":u===$.delete?f="delete":u===$.insert?f="insert":u===$.home?f="home":u===$.end?f="end":u===$.pageUp?f="pageUp":u===$.pageDown?f="pageDown":u===K.up?f="up":u===K.down?f="down":u===K.left?f="left":u===K.right?f="right":(u>=97&&u<=122||Ie.has(String.fromCharCode(u)))&&(f=String.fromCharCode(u)),f)return o.length>0?`${o.join("+")}+${f}`:f}if(D&&(n==="\x1B\r"||n===`
6
+ `))return "shift+enter";let t=Zt[n];if(t)return t;if(n==="\x1B")return "escape";if(n==="")return "ctrl+\\";if(n==="")return "ctrl+]";if(n==="")return "ctrl+-";if(n==="\x1B\x1B")return "ctrl+alt+[";if(n==="\x1B")return "ctrl+alt+\\";if(n==="\x1B")return "ctrl+alt+]";if(n==="\x1B")return "ctrl+alt+-";if(n===" ")return "tab";if(n==="\r"||!D&&n===`
7
+ `||n==="\x1BOM")return "enter";if(n==="\0")return "ctrl+space";if(n===" ")return "space";if(n==="\x7F"||n==="\b")return "backspace";if(n==="\x1B[Z")return "shift+tab";if(!D&&n==="\x1B\r")return "alt+enter";if(!D&&n==="\x1B ")return "alt+space";if(n==="\x1B\x7F"||n==="\x1B\b")return "alt+backspace";if(!D&&n==="\x1BB")return "alt+left";if(!D&&n==="\x1BF")return "alt+right";if(!D&&n.length===2&&n[0]==="\x1B"){let s=n.charCodeAt(1);if(s>=1&&s<=26)return `ctrl+alt+${String.fromCharCode(s+96)}`;if(s>=97&&s<=122)return `alt+${String.fromCharCode(s)}`}if(n==="\x1B[A")return "up";if(n==="\x1B[B")return "down";if(n==="\x1B[C")return "right";if(n==="\x1B[D")return "left";if(n==="\x1B[H"||n==="\x1BOH")return "home";if(n==="\x1B[F"||n==="\x1BOF")return "end";if(n==="\x1B[3~")return "delete";if(n==="\x1B[5~")return "pageUp";if(n==="\x1B[6~")return "pageDown";if(n.length===1){let s=n.charCodeAt(0);if(s>=1&&s<=26)return `ctrl+${String.fromCharCode(s+96)}`;if(s>=32&&s<=126)return n}}var pt={cursorUp:"up",cursorDown:"down",cursorLeft:["left","ctrl+b"],cursorRight:["right","ctrl+f"],cursorWordLeft:["alt+left","ctrl+left","alt+b"],cursorWordRight:["alt+right","ctrl+right","alt+f"],cursorLineStart:["home","ctrl+a"],cursorLineEnd:["end","ctrl+e"],jumpForward:"ctrl+]",jumpBackward:"ctrl+alt+]",pageUp:"pageUp",pageDown:"pageDown",deleteCharBackward:"backspace",deleteCharForward:["delete","ctrl+d"],deleteWordBackward:["ctrl+w","alt+backspace"],deleteWordForward:["alt+d","alt+delete"],deleteToLineStart:"ctrl+u",deleteToLineEnd:"ctrl+k",newLine:"shift+enter",submit:"enter",tab:"tab",selectUp:"up",selectDown:"down",selectPageUp:"pageUp",selectPageDown:"pageDown",selectConfirm:"enter",selectCancel:["escape","ctrl+c"],copy:"ctrl+c",yank:"ctrl+y",yankPop:"alt+y",undo:"ctrl+-",expandTools:"ctrl+o",toggleSessionPath:"ctrl+p",toggleSessionSort:"ctrl+s",renameSession:"ctrl+r",deleteSession:"ctrl+d",deleteSessionNoninvasive:"ctrl+backspace"},ke=class{constructor(e={}){c(this,"actionToKeys");this.actionToKeys=new Map,this.buildMaps(e);}buildMaps(e){this.actionToKeys.clear();for(let[t,s]of Object.entries(pt)){let i=Array.isArray(s)?s:[s];this.actionToKeys.set(t,[...i]);}for(let[t,s]of Object.entries(e)){if(s===void 0)continue;let i=Array.isArray(s)?s:[s];this.actionToKeys.set(t,i);}}matches(e,t){let s=this.actionToKeys.get(t);if(!s)return false;for(let i of s)if(G(e,i))return true;return false}getKeys(e){return this.actionToKeys.get(e)??[]}setConfig(e){this.buildMaps(e);}},Se=null;function q(){return Se||(Se=new ke),Se}function ns(n){Se=n;}var me=class{constructor(e="",t=1,s=1,i){c(this,"text");c(this,"paddingX");c(this,"paddingY");c(this,"customBgFn");c(this,"cachedText");c(this,"cachedWidth");c(this,"cachedLines");this.text=e,this.paddingX=t,this.paddingY=s,this.customBgFn=i;}setText(e){this.text=e,this.cachedText=void 0,this.cachedWidth=void 0,this.cachedLines=void 0;}setCustomBgFn(e){this.customBgFn=e,this.cachedText=void 0,this.cachedWidth=void 0,this.cachedLines=void 0;}invalidate(){this.cachedText=void 0,this.cachedWidth=void 0,this.cachedLines=void 0;}render(e){if(this.cachedLines&&this.cachedText===this.text&&this.cachedWidth===e)return this.cachedLines;if(!this.text||this.text.trim()===""){let f=[];return this.cachedText=this.text,this.cachedWidth=e,this.cachedLines=f,f}let t=this.text.replace(/\t/g," "),s=Math.max(1,e-this.paddingX*2),i=j(t,s),r=" ".repeat(this.paddingX),o=" ".repeat(this.paddingX),l=[];for(let f of i){let p=r+f+o;if(this.customBgFn)l.push(X(p,e,this.customBgFn));else {let d=w(p),m=Math.max(0,e-d);l.push(p+" ".repeat(m));}}let a=" ".repeat(e),h=[];for(let f=0;f<this.paddingY;f++){let p=this.customBgFn?X(a,e,this.customBgFn):a;h.push(p);}let u=[...h,...l,...h];return this.cachedText=this.text,this.cachedWidth=e,this.cachedLines=u,u.length>0?u:[""]}};var ge=class extends me{constructor(t,s,i,r="Loading..."){super("",1,0);this.spinnerColorFn=s;this.messageColorFn=i;this.message=r;c(this,"frames",["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]);c(this,"currentFrame",0);c(this,"intervalId",null);c(this,"ui",null);this.ui=t,this.start();}render(t){return ["",...super.render(t)]}start(){this.updateDisplay(),this.intervalId=setInterval(()=>{this.currentFrame=(this.currentFrame+1)%this.frames.length,this.updateDisplay();},80);}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null);}setMessage(t){this.message=t,this.updateDisplay();}updateDisplay(){let t=this.frames[this.currentFrame]??"";this.setText(`${this.spinnerColorFn(t)} ${this.messageColorFn(this.message??"")}`),this.ui&&this.ui.requestRender();}};var Fe=class extends ge{constructor(){super(...arguments);c(this,"abortController",new AbortController);c(this,"onAbort");}get signal(){return this.abortController.signal}get aborted(){return this.abortController.signal.aborted}handleInput(t){q().matches(t,"selectCancel")&&(this.abortController.abort(),this.onAbort?.());}dispose(){this.stop();}};var oe=class{constructor(){c(this,"ring",[]);}push(e,t){if(e)if(t.accumulate&&this.ring.length>0){let s=this.ring.pop();this.ring.push(t.prepend?e+s:s+e);}else this.ring.push(e);}peek(){return this.ring.length>0?this.ring[this.ring.length-1]:void 0}rotate(){if(this.ring.length>1){let e=this.ring.pop();this.ring.unshift(e);}}get length(){return this.ring.length}};var Te=null,xt={widthPx:9,heightPx:18};function bt(){return xt}function Ve(n){xt=n;}function vt(){let n=process.env.TERM_PROGRAM?.toLowerCase()||"",e=process.env.TERM?.toLowerCase()||"",t=process.env.COLORTERM?.toLowerCase()||"";return process.env.KITTY_WINDOW_ID||n==="kitty"?{images:"kitty",trueColor:true,hyperlinks:true}:n==="ghostty"||e.includes("ghostty")||process.env.GHOSTTY_RESOURCES_DIR?{images:"kitty",trueColor:true,hyperlinks:true}:process.env.WEZTERM_PANE||n==="wezterm"?{images:"kitty",trueColor:true,hyperlinks:true}:process.env.ITERM_SESSION_ID||n==="iterm.app"?{images:"iterm2",trueColor:true,hyperlinks:true}:n==="vscode"?{images:null,trueColor:true,hyperlinks:true}:n==="alacritty"?{images:null,trueColor:true,hyperlinks:true}:{images:null,trueColor:t==="truecolor"||t==="24bit",hyperlinks:true}}function le(){return Te||(Te=vt()),Te}function rs(){Te=null;}var mt="\x1B_G",gt="\x1B]1337;File=";function te(n){return n.startsWith(mt)||n.startsWith(gt)?true:n.includes(mt)||n.includes(gt)}function os(){return Math.floor(Math.random()*4294967294)+1}function Ct(n,e={}){let s=["a=T","f=100","q=2"];if(e.columns&&s.push(`c=${e.columns}`),e.rows&&s.push(`r=${e.rows}`),e.imageId&&s.push(`i=${e.imageId}`),n.length<=4096)return `\x1B_G${s.join(",")};${n}\x1B\\`;let i=[],r=0,o=true;for(;r<n.length;){let l=n.slice(r,r+4096),a=r+4096>=n.length;o?(i.push(`\x1B_G${s.join(",")},m=1;${l}\x1B\\`),o=false):a?i.push(`\x1B_Gm=0;${l}\x1B\\`):i.push(`\x1B_Gm=1;${l}\x1B\\`),r+=4096;}return i.join("")}function ls(n){return `\x1B_Ga=d,d=I,i=${n}\x1B\\`}function as(){return "\x1B_Ga=d,d=A\x1B\\"}function yt(n,e={}){let t=[`inline=${e.inline!==false?1:0}`];if(e.width!==void 0&&t.push(`width=${e.width}`),e.height!==void 0&&t.push(`height=${e.height}`),e.name){let s=Buffer.from(e.name).toString("base64");t.push(`name=${s}`);}return e.preserveAspectRatio===false&&t.push("preserveAspectRatio=0"),`\x1B]1337;File=${t.join(";")}:${n}\x07`}function Lt(n,e,t={widthPx:9,heightPx:18}){let i=e*t.widthPx/n.widthPx,r=n.heightPx*i,o=Math.ceil(r/t.heightPx);return Math.max(1,o)}function wt(n){try{let e=Buffer.from(n,"base64");if(e.length<24||e[0]!==137||e[1]!==80||e[2]!==78||e[3]!==71)return null;let t=e.readUInt32BE(16),s=e.readUInt32BE(20);return {widthPx:t,heightPx:s}}catch{return null}}function It(n){try{let e=Buffer.from(n,"base64");if(e.length<2||e[0]!==255||e[1]!==216)return null;let t=2;for(;t<e.length-9;){if(e[t]!==255){t++;continue}let s=e[t+1];if(s!==void 0&&s>=192&&s<=194){let r=e.readUInt16BE(t+5);return {widthPx:e.readUInt16BE(t+7),heightPx:r}}if(t+3>=e.length)return null;let i=e.readUInt16BE(t+2);if(i<2)return null;t+=2+i;}return null}catch{return null}}function St(n){try{let e=Buffer.from(n,"base64");if(e.length<10)return null;let t=e.slice(0,6).toString("ascii");if(t!=="GIF87a"&&t!=="GIF89a")return null;let s=e.readUInt16LE(6),i=e.readUInt16LE(8);return {widthPx:s,heightPx:i}}catch{return null}}function kt(n){try{let e=Buffer.from(n,"base64");if(e.length<30)return null;let t=e.slice(0,4).toString("ascii"),s=e.slice(8,12).toString("ascii");if(t!=="RIFF"||s!=="WEBP")return null;let i=e.slice(12,16).toString("ascii");if(i==="VP8 "){if(e.length<30)return null;let r=e.readUInt16LE(26)&16383,o=e.readUInt16LE(28)&16383;return {widthPx:r,heightPx:o}}else if(i==="VP8L"){if(e.length<25)return null;let r=e.readUInt32LE(21),o=(r&16383)+1,l=(r>>14&16383)+1;return {widthPx:o,heightPx:l}}else if(i==="VP8X"){if(e.length<30)return null;let r=((e[24]??0)|(e[25]??0)<<8|(e[26]??0)<<16)+1,o=((e[27]??0)|(e[28]??0)<<8|(e[29]??0)<<16)+1;return {widthPx:r,heightPx:o}}return null}catch{return null}}function Ue(n,e){return e==="image/png"?wt(n):e==="image/jpeg"?It(n):e==="image/gif"?St(n):e==="image/webp"?kt(n):null}function _e(n,e,t={}){let s=le();if(!s.images)return null;let i=t.maxWidthCells??80,r=Lt(e,i,bt());return s.images==="kitty"?{sequence:Ct(n,{columns:i,rows:r,imageId:t.imageId}),rows:r,imageId:t.imageId}:s.images==="iterm2"?{sequence:yt(n,{width:i,height:"auto",preserveAspectRatio:t.preserveAspectRatio??true}),rows:r}:null}function Ae(n,e,t){let s=[];return t&&s.push(t),s.push(`[${n}]`),e&&s.push(`${e.widthPx}x${e.heightPx}`),`[Image: ${s.join(" ")}]`}function Ne(n){return n!==null&&"focused"in n}var se="\x1B_pi:c\x07";function Tt(n,e){if(n===void 0)return;if(typeof n=="number")return n;let t=n.match(/^(\d+(?:\.\d+)?)%$/);if(t)return Math.floor(e*parseFloat(t[1]??"0")/100)}var Pe=class{constructor(){c(this,"children",[]);}addChild(e){this.children.push(e);}removeChild(e){let t=this.children.indexOf(e);t!==-1&&this.children.splice(t,1);}clear(){this.children=[];}invalidate(){for(let e of this.children)e.invalidate?.();}render(e){let t=[];for(let s of this.children)t.push(...s.render(e));return t}},xe=class xe extends Pe{constructor(t,s){super();c(this,"terminal");c(this,"previousLines",[]);c(this,"previousWidth",0);c(this,"focusedComponent",null);c(this,"inputListeners",new Set);c(this,"onDebug");c(this,"renderRequested",false);c(this,"cursorRow",0);c(this,"hardwareCursorRow",0);c(this,"inputBuffer","");c(this,"cellSizeQueryPending",false);c(this,"showHardwareCursor",process.env.PI_HARDWARE_CURSOR==="1");c(this,"clearOnShrink",process.env.PI_CLEAR_ON_SHRINK==="1");c(this,"maxLinesRendered",0);c(this,"previousViewportTop",0);c(this,"fullRedrawCount",0);c(this,"stopped",false);c(this,"overlayStack",[]);this.terminal=t,s!==void 0&&(this.showHardwareCursor=s);}get fullRedraws(){return this.fullRedrawCount}getShowHardwareCursor(){return this.showHardwareCursor}setShowHardwareCursor(t){this.showHardwareCursor!==t&&(this.showHardwareCursor=t,t||this.terminal.hideCursor(),this.requestRender());}getClearOnShrink(){return this.clearOnShrink}setClearOnShrink(t){this.clearOnShrink=t;}setFocus(t){Ne(this.focusedComponent)&&(this.focusedComponent.focused=false),this.focusedComponent=t,Ne(t)&&(t.focused=true);}showOverlay(t,s){let i={component:t,options:s,preFocus:this.focusedComponent,hidden:false};return this.overlayStack.push(i),this.isOverlayVisible(i)&&this.setFocus(t),this.terminal.hideCursor(),this.requestRender(),{hide:()=>{let r=this.overlayStack.indexOf(i);if(r!==-1){if(this.overlayStack.splice(r,1),this.focusedComponent===t){let o=this.getTopmostVisibleOverlay();this.setFocus(o?.component??i.preFocus);}this.overlayStack.length===0&&this.terminal.hideCursor(),this.requestRender();}},setHidden:r=>{if(i.hidden!==r){if(i.hidden=r,r){if(this.focusedComponent===t){let o=this.getTopmostVisibleOverlay();this.setFocus(o?.component??i.preFocus);}}else this.isOverlayVisible(i)&&this.setFocus(t);this.requestRender();}},isHidden:()=>i.hidden}}hideOverlay(){let t=this.overlayStack.pop();if(!t)return;let s=this.getTopmostVisibleOverlay();this.setFocus(s?.component??t.preFocus),this.overlayStack.length===0&&this.terminal.hideCursor(),this.requestRender();}hasOverlay(){return this.overlayStack.some(t=>this.isOverlayVisible(t))}isOverlayVisible(t){return t.hidden?false:t.options?.visible?t.options.visible(this.terminal.columns,this.terminal.rows):true}getTopmostVisibleOverlay(){for(let t=this.overlayStack.length-1;t>=0;t--){let s=this.overlayStack[t];if(s&&this.isOverlayVisible(s))return this.overlayStack[t]}}invalidate(){super.invalidate();for(let t of this.overlayStack)t.component.invalidate?.();}start(){this.stopped=false,this.terminal.start(t=>this.handleInput(t),()=>this.requestRender()),this.terminal.hideCursor(),this.queryCellSize(),this.requestRender();}addInputListener(t){return this.inputListeners.add(t),()=>{this.inputListeners.delete(t);}}removeInputListener(t){this.inputListeners.delete(t);}queryCellSize(){le().images&&(this.cellSizeQueryPending=true,this.terminal.write("\x1B[16t"));}stop(){if(this.stopped=true,this.previousLines.length>0){let s=this.previousLines.length-this.hardwareCursorRow;s>0?this.terminal.write(`\x1B[${s}B`):s<0&&this.terminal.write(`\x1B[${-s}A`),this.terminal.write(`\r
8
+ `);}this.terminal.showCursor(),this.terminal.stop();}requestRender(t=false){t&&(this.previousLines=[],this.previousWidth=-1,this.cursorRow=0,this.hardwareCursorRow=0,this.maxLinesRendered=0,this.previousViewportTop=0),!this.renderRequested&&(this.renderRequested=true,process.nextTick(()=>{this.renderRequested=false,this.doRender();}));}handleInput(t){if(this.inputListeners.size>0){let i=t;for(let r of this.inputListeners){let o=r(i);if(o?.consume)return;o?.data!==void 0&&(i=o.data);}if(i.length===0)return;t=i;}if(this.cellSizeQueryPending){this.inputBuffer+=t;let i=this.parseCellSizeResponse();if(i.length===0)return;t=i;}if(G(t,"shift+ctrl+d")&&this.onDebug){this.onDebug();return}let s=this.overlayStack.find(i=>i.component===this.focusedComponent);if(s&&!this.isOverlayVisible(s)){let i=this.getTopmostVisibleOverlay();i?this.setFocus(i.component):this.setFocus(s.preFocus);}if(this.focusedComponent?.handleInput){if(De(t)&&!this.focusedComponent.wantsKeyRelease)return;this.focusedComponent.handleInput(t),this.requestRender();}}parseCellSizeResponse(){let t=/\x1b\[6;(\d+);(\d+)t/,s=this.inputBuffer.match(t);if(s){let o=parseInt(s[1]??"0",10),l=parseInt(s[2]??"0",10);o>0&&l>0&&(Ve({widthPx:l,heightPx:o}),this.invalidate(),this.requestRender()),this.inputBuffer=this.inputBuffer.replace(t,""),this.cellSizeQueryPending=false;}if(/\x1b(\[6?;?[\d;]*)?$/.test(this.inputBuffer)){let o=this.inputBuffer[this.inputBuffer.length-1];if(o&&!/[a-zA-Z~]/.test(o))return ""}let r=this.inputBuffer;return this.inputBuffer="",this.cellSizeQueryPending=false,r}resolveOverlayLayout(t,s,i,r){let o=t??{},l=typeof o.margin=="number"?{top:o.margin,right:o.margin,bottom:o.margin,left:o.margin}:o.margin??{},a=Math.max(0,l.top??0),h=Math.max(0,l.right??0),u=Math.max(0,l.bottom??0),f=Math.max(0,l.left??0),p=Math.max(1,i-f-h),d=Math.max(1,r-a-u),m=Tt(o.width,i)??Math.min(80,p);o.minWidth!==void 0&&(m=Math.max(m,o.minWidth)),m=Math.max(1,Math.min(m,p));let g=Tt(o.maxHeight,r);g!==void 0&&(g=Math.max(1,Math.min(g,d)));let y=g!==void 0?Math.min(s,g):s,L,C;if(o.row!==void 0)if(typeof o.row=="string"){let A=o.row.match(/^(\d+(?:\.\d+)?)%$/);if(A){let x=Math.max(0,d-y),b=parseFloat(A[1]??"0")/100;L=a+Math.floor(x*b);}else L=this.resolveAnchorRow("center",y,d,a);}else L=o.row;else {let A=o.anchor??"center";L=this.resolveAnchorRow(A,y,d,a);}if(o.col!==void 0)if(typeof o.col=="string"){let A=o.col.match(/^(\d+(?:\.\d+)?)%$/);if(A){let x=Math.max(0,p-m),b=parseFloat(A[1]??"0")/100;C=f+Math.floor(x*b);}else C=this.resolveAnchorCol("center",m,p,f);}else C=o.col;else {let A=o.anchor??"center";C=this.resolveAnchorCol(A,m,p,f);}return o.offsetY!==void 0&&(L+=o.offsetY),o.offsetX!==void 0&&(C+=o.offsetX),L=Math.max(a,Math.min(L,r-u-y)),C=Math.max(f,Math.min(C,i-h-m)),{width:m,row:L,col:C,maxHeight:g}}resolveAnchorRow(t,s,i,r){switch(t){case "top-left":case "top-center":case "top-right":return r;case "bottom-left":case "bottom-center":case "bottom-right":return r+i-s;case "left-center":case "center":case "right-center":return r+Math.floor((i-s)/2)}}resolveAnchorCol(t,s,i,r){switch(t){case "top-left":case "left-center":case "bottom-left":return r;case "top-right":case "right-center":case "bottom-right":return r+i-s;case "top-center":case "center":case "bottom-center":return r+Math.floor((i-s)/2)}}compositeOverlays(t,s,i){if(this.overlayStack.length===0)return t;let r=[...t],o=[],l=r.length;for(let f of this.overlayStack){if(!this.isOverlayVisible(f))continue;let{component:p,options:d}=f,{width:m,maxHeight:g}=this.resolveOverlayLayout(d,0,s,i),y=p.render(m);g!==void 0&&y.length>g&&(y=y.slice(0,g));let{row:L,col:C}=this.resolveOverlayLayout(d,y.length,s,i);o.push({overlayLines:y,row:L,col:C,w:m}),l=Math.max(l,L+y.length);}let a=Math.max(this.maxLinesRendered,l);for(;r.length<a;)r.push("");let h=Math.max(0,a-i),u=new Set;for(let{overlayLines:f,row:p,col:d,w:m}of o)for(let g=0;g<f.length;g++){let y=h+p+g;if(y>=0&&y<r.length){let L=w(f[g]??"")>m?de(f[g]??"",0,m,true):f[g]??"";r[y]=this.compositeLineAt(r[y]??"",L,d,m,s),u.add(y);}}for(let f of u)w(r[f]??"")>s&&(r[f]=de(r[f]??"",0,s,true));return r}applyLineResets(t){let s=xe.SEGMENT_RESET;for(let i=0;i<t.length;i++){let r=t[i];r&&!te(r)&&(t[i]=r+s);}return t}compositeLineAt(t,s,i,r,o){if(te(t))return t;let l=i+r,a=ut(t,i,l,o-l,true),h=Be(s,0,r,true),u=Math.max(0,i-a.beforeWidth),f=Math.max(0,r-h.width),p=Math.max(i,a.beforeWidth),d=Math.max(r,h.width),m=Math.max(0,o-p-d),g=Math.max(0,m-a.afterWidth),y=xe.SEGMENT_RESET,L=a.before+" ".repeat(u)+y+h.text+" ".repeat(f)+y+a.after+" ".repeat(g);return w(L)<=o?L:de(L,0,o,true)}extractCursorPosition(t,s){let i=Math.max(0,t.length-s);for(let r=t.length-1;r>=i;r--){let o=t[r],l=(o??"").indexOf(se);if(l!==-1){let a=(o??"").slice(0,l),h=w(a);return t[r]=(o??"").slice(0,l)+(o??"").slice(l+se.length),{row:r,col:h}}}return null}doRender(){if(this.stopped)return;let t=this.terminal.columns,s=this.terminal.rows,i=Math.max(0,this.maxLinesRendered-s),r=this.previousViewportTop,o=this.hardwareCursorRow,l=v=>{let k=o-r;return v-i-k},a=this.render(t);this.overlayStack.length>0&&(a=this.compositeOverlays(a,t,s));let h=this.extractCursorPosition(a,s);a=this.applyLineResets(a);let u=this.previousWidth!==0&&this.previousWidth!==t,f=v=>{this.fullRedrawCount+=1;let k="\x1B[?2026h";v&&(k+="\x1B[3J\x1B[2J\x1B[H");for(let M=0;M<a.length;M++)M>0&&(k+=`\r
9
+ `),k+=a[M];k+="\x1B[?2026l",this.terminal.write(k),this.cursorRow=Math.max(0,a.length-1),this.hardwareCursorRow=this.cursorRow,v?this.maxLinesRendered=a.length:this.maxLinesRendered=Math.max(this.maxLinesRendered,a.length),this.previousViewportTop=Math.max(0,this.maxLinesRendered-s),this.positionHardwareCursor(h,a.length),this.previousLines=a,this.previousWidth=t;},p=process.env.PI_DEBUG_REDRAW==="1",d=v=>{if(!p)return;let k=ae__namespace.join(He__namespace.homedir(),".pi","agent","pi-debug.log"),M=`[${new Date().toISOString()}] fullRender: ${v} (prev=${this.previousLines.length}, new=${a.length}, height=${s})
10
+ `;J__namespace.appendFileSync(k,M);};if(this.previousLines.length===0&&!u){d("first render"),f(false);return}if(u){d(`width changed (${this.previousWidth} -> ${t})`),f(true);return}if(this.clearOnShrink&&a.length<this.maxLinesRendered&&this.overlayStack.length===0){d(`clearOnShrink (maxLinesRendered=${this.maxLinesRendered})`),f(true);return}let m=-1,g=-1,y=Math.max(a.length,this.previousLines.length);for(let v=0;v<y;v++){let k=v<this.previousLines.length?this.previousLines[v]:"",M=v<a.length?a[v]:"";k!==M&&(m===-1&&(m=v),g=v);}let L=a.length>this.previousLines.length;L&&(m===-1&&(m=this.previousLines.length),g=a.length-1);let C=L&&m===this.previousLines.length&&m>0;if(m===-1){this.positionHardwareCursor(h,a.length),this.previousViewportTop=Math.max(0,this.maxLinesRendered-s);return}if(m>=a.length){if(this.previousLines.length>a.length){let v="\x1B[?2026h",k=Math.max(0,a.length-1),M=l(k);M>0?v+=`\x1B[${M}B`:M<0&&(v+=`\x1B[${-M}A`),v+="\r";let _=this.previousLines.length-a.length;if(_>s){d(`extraLines > height (${_} > ${s})`),f(true);return}_>0&&(v+="\x1B[1B");for(let ee=0;ee<_;ee++)v+="\r\x1B[2K",ee<_-1&&(v+="\x1B[1B");_>0&&(v+=`\x1B[${_}A`),v+="\x1B[?2026l",this.terminal.write(v),this.cursorRow=k,this.hardwareCursorRow=k;}this.positionHardwareCursor(h,a.length),this.previousLines=a,this.previousWidth=t,this.previousViewportTop=Math.max(0,this.maxLinesRendered-s);return}let A=Math.max(0,this.previousLines.length-s);if(m<A){d(`firstChanged < viewportTop (${m} < ${A})`),f(true);return}let x="\x1B[?2026h",b=r+s-1,P=C?m-1:m;if(P>b){let v=Math.max(0,Math.min(s-1,o-r)),k=s-1-v;k>0&&(x+=`\x1B[${k}B`);let M=P-b;x+=`\r
11
+ `.repeat(M),r+=M,i+=M,o=P;}let B=l(P);B>0?x+=`\x1B[${B}B`:B<0&&(x+=`\x1B[${-B}A`),x+=C?`\r
12
+ `:"\r";let T=Math.min(g,a.length-1);for(let v=m;v<=T;v++){v>m&&(x+=`\r
13
+ `),x+="\x1B[2K";let k=a[v];if(!(k?te(k):false)&&k&&w(k)>t){let _=ae__namespace.join(He__namespace.homedir(),".pi","agent","pi-crash.log"),ee=[`Crash at ${new Date().toISOString()}`,`Terminal width: ${t}`,`Line ${v} visible width: ${w(k??"")}`,"","=== All rendered lines ===",...a.map((Ze,Et)=>`[${Et}] (w=${w(Ze)}) ${Ze}`),""].join(`
14
+ `);J__namespace.mkdirSync(ae__namespace.dirname(_),{recursive:true}),J__namespace.writeFileSync(_,ee),this.stop();let $t=[`Rendered line ${v} exceeds terminal width (${w(k??"")} > ${t}).`,"","This is likely caused by a custom TUI component not truncating its output.","Use visibleWidth() to measure and truncateToWidth() to truncate lines.","",`Debug log written to: ${_}`].join(`
15
+ `);throw new Error($t)}x+=k;}let S=T;if(this.previousLines.length>a.length){if(T<a.length-1){let k=a.length-1-T;x+=`\x1B[${k}B`,S=a.length-1;}let v=this.previousLines.length-a.length;for(let k=a.length;k<this.previousLines.length;k++)x+=`\r
16
+ \x1B[2K`;x+=`\x1B[${v}A`;}if(x+="\x1B[?2026l",process.env.PI_TUI_DEBUG==="1"){let v="/tmp/tui";J__namespace.mkdirSync(v,{recursive:true});let k=ae__namespace.join(v,`render-${Date.now()}-${Math.random().toString(36).slice(2)}.log`),M=[`firstChanged: ${m}`,`viewportTop: ${i}`,`cursorRow: ${this.cursorRow}`,`height: ${s}`,`lineDiff: ${B}`,`hardwareCursorRow: ${o}`,`renderEnd: ${T}`,`finalCursorRow: ${S}`,`cursorPos: ${JSON.stringify(h)}`,`newLines.length: ${a.length}`,`previousLines.length: ${this.previousLines.length}`,"","=== newLines ===",JSON.stringify(a,null,2),"","=== previousLines ===",JSON.stringify(this.previousLines,null,2),"","=== buffer ===",JSON.stringify(x)].join(`
17
+ `);J__namespace.writeFileSync(k,M);}this.terminal.write(x),this.cursorRow=Math.max(0,a.length-1),this.hardwareCursorRow=S,this.maxLinesRendered=Math.max(this.maxLinesRendered,a.length),this.previousViewportTop=Math.max(0,this.maxLinesRendered-s),this.positionHardwareCursor(h,a.length),this.previousLines=a,this.previousWidth=t;}positionHardwareCursor(t,s){if(!t||s<=0){this.terminal.hideCursor();return}let i=Math.max(0,Math.min(t.row,s-1)),r=Math.max(0,t.col),o=i-this.hardwareCursorRow,l="";o>0?l+=`\x1B[${o}B`:o<0&&(l+=`\x1B[${-o}A`),l+=`\x1B[${r+1}G`,l&&this.terminal.write(l),this.hardwareCursorRow=i,this.showHardwareCursor?this.terminal.showCursor():this.terminal.hideCursor();}};c(xe,"SEGMENT_RESET","\x1B[0m\x1B]8;;\x07");var qe=xe;var he=class{constructor(){c(this,"stack",[]);}push(e){this.stack.push(structuredClone(e));}pop(){return this.stack.pop()}clear(){this.stack.length=0;}get length(){return this.stack.length}};var hs=n=>n.replace(/[\r\n]+/g," ").trim(),ie=class{constructor(e,t,s){c(this,"items",[]);c(this,"filteredItems",[]);c(this,"selectedIndex",0);c(this,"maxVisible",5);c(this,"theme");c(this,"onSelect");c(this,"onCancel");c(this,"onSelectionChange");this.items=e,this.filteredItems=e,this.maxVisible=t,this.theme=s;}setFilter(e){this.filteredItems=this.items.filter(t=>t.value.toLowerCase().startsWith(e.toLowerCase())),this.selectedIndex=0;}setSelectedIndex(e){this.selectedIndex=Math.max(0,Math.min(e,this.filteredItems.length-1));}invalidate(){}render(e){let t=[];if(this.filteredItems.length===0)return t.push(this.theme.noMatch(" No matching commands")),t;let s=Math.max(0,Math.min(this.selectedIndex-Math.floor(this.maxVisible/2),this.filteredItems.length-this.maxVisible)),i=Math.min(s+this.maxVisible,this.filteredItems.length);for(let r=s;r<i;r++){let o=this.filteredItems[r];if(!o)continue;let l=r===this.selectedIndex,a=o.description?hs(o.description):void 0,h="";if(l){let f=o.label||o.value;if(a&&e>40){let p=Math.min(30,e-2-4),d=O(f,p,""),m=" ".repeat(Math.max(1,32-d.length)),g=2+d.length+m.length,y=e-g-2;if(y>10){let L=O(a,y,"");h=this.theme.selectedText(`\u2192 ${d}${m}${L}`);}else {let L=e-2-2;h=this.theme.selectedText(`\u2192 ${O(f,L,"")}`);}}else {let p=e-2-2;h=this.theme.selectedText(`\u2192 ${O(f,p,"")}`);}}else {let u=o.label||o.value,f=" ";if(a&&e>40){let p=Math.min(30,e-f.length-4),d=O(u,p,""),m=" ".repeat(Math.max(1,32-d.length)),g=f.length+d.length+m.length,y=e-g-2;if(y>10){let L=O(a,y,""),C=this.theme.description(m+L);h=f+d+C;}else {let L=e-f.length-2;h=f+O(u,L,"");}}else {let p=e-f.length-2;h=f+O(u,p,"");}}t.push(h);}if(s>0||i<this.filteredItems.length){let r=` (${this.selectedIndex+1}/${this.filteredItems.length})`;t.push(this.theme.scrollInfo(O(r,e-2,"")));}return t}handleInput(e){let t=q();if(t.matches(e,"selectUp"))this.selectedIndex=this.selectedIndex===0?this.filteredItems.length-1:this.selectedIndex-1,this.notifySelectionChange();else if(t.matches(e,"selectDown"))this.selectedIndex=this.selectedIndex===this.filteredItems.length-1?0:this.selectedIndex+1,this.notifySelectionChange();else if(t.matches(e,"selectConfirm")){let s=this.filteredItems[this.selectedIndex];s&&this.onSelect&&this.onSelect(s);}else t.matches(e,"selectCancel")&&this.onCancel&&this.onCancel();}notifySelectionChange(){let e=this.filteredItems[this.selectedIndex];e&&this.onSelectionChange&&this.onSelectionChange(e);}getSelectedItem(){return this.filteredItems[this.selectedIndex]||null}};var Z=ye();function At(n,e){if(!n||e<=0)return [{text:"",startIndex:0,endIndex:0}];if(w(n)<=e)return [{text:n,startIndex:0,endIndex:n.length}];let s=[],i=[...Z.segment(n)],r=0,o=0,l=-1,a=0;for(let h=0;h<i.length;h++){let u=i[h],f=u.segment,p=w(f),d=u.index,m=F(f);r+p>e&&(l>=0?(s.push({text:n.slice(o,l),startIndex:o,endIndex:l}),o=l,r-=a):o<d&&(s.push({text:n.slice(o,d),startIndex:o,endIndex:d}),o=d,r=0),l=-1),r+=p;let g=i[h+1];m&&g&&!F(g.segment)&&(l=g.index,a=r);}return s.push({text:n.slice(o),startIndex:o,endIndex:n.length}),s}var cs=/^\x1b\[(\d+)(?::(\d*))?(?::(\d+))?(?:;(\d+))?(?::(\d+))?u$/,us=1,fs=2,ds=4;function ps(n){let e=n.match(cs);if(!e)return;let t=Number.parseInt(e[1]??"",10);if(!Number.isFinite(t))return;let s=e[2]&&e[2].length>0?Number.parseInt(e[2],10):void 0,i=e[4]?Number.parseInt(e[4],10):1,r=Number.isFinite(i)?i-1:0;if(r&(fs|ds))return;let o=t;if(r&us&&typeof s=="number"&&(o=s),!(!Number.isFinite(o)||o<32))try{return String.fromCodePoint(o)}catch{return}}var ze=class{constructor(e,t,s={}){c(this,"state",{lines:[""],cursorLine:0,cursorCol:0});c(this,"focused",false);c(this,"tui");c(this,"theme");c(this,"paddingX",0);c(this,"lastWidth",80);c(this,"scrollOffset",0);c(this,"borderColor");c(this,"autocompleteProvider");c(this,"autocompleteList");c(this,"autocompleteState",null);c(this,"autocompletePrefix","");c(this,"autocompleteMaxVisible",5);c(this,"pastes",new Map);c(this,"pasteCounter",0);c(this,"pasteBuffer","");c(this,"isInPaste",false);c(this,"history",[]);c(this,"historyIndex",-1);c(this,"killRing",new oe);c(this,"lastAction",null);c(this,"jumpMode",null);c(this,"preferredVisualCol",null);c(this,"undoStack",new he);c(this,"onSubmit");c(this,"onChange");c(this,"disableSubmit",false);this.tui=e,this.theme=t,this.borderColor=t.borderColor;let i=s.paddingX??0;this.paddingX=Number.isFinite(i)?Math.max(0,Math.floor(i)):0;let r=s.autocompleteMaxVisible??5;this.autocompleteMaxVisible=Number.isFinite(r)?Math.max(3,Math.min(20,Math.floor(r))):5;}getPaddingX(){return this.paddingX}setPaddingX(e){let t=Number.isFinite(e)?Math.max(0,Math.floor(e)):0;this.paddingX!==t&&(this.paddingX=t,this.tui.requestRender());}getAutocompleteMaxVisible(){return this.autocompleteMaxVisible}setAutocompleteMaxVisible(e){let t=Number.isFinite(e)?Math.max(3,Math.min(20,Math.floor(e))):5;this.autocompleteMaxVisible!==t&&(this.autocompleteMaxVisible=t,this.tui.requestRender());}setAutocompleteProvider(e){this.autocompleteProvider=e;}addToHistory(e){let t=e.trim();t&&(this.history.length>0&&this.history[0]===t||(this.history.unshift(t),this.history.length>100&&this.history.pop()));}isEditorEmpty(){return this.state.lines.length===1&&this.state.lines[0]===""}isOnFirstVisualLine(){let e=this.buildVisualLineMap(this.lastWidth);return this.findCurrentVisualLine(e)===0}isOnLastVisualLine(){let e=this.buildVisualLineMap(this.lastWidth);return this.findCurrentVisualLine(e)===e.length-1}navigateHistory(e){if(this.lastAction=null,this.history.length===0)return;let t=this.historyIndex-e;t<-1||t>=this.history.length||(this.historyIndex===-1&&t>=0&&this.pushUndoSnapshot(),this.historyIndex=t,this.historyIndex===-1?this.setTextInternal(""):this.setTextInternal(this.history[this.historyIndex]||""));}setTextInternal(e){let t=e.replace(/\r\n/g,`
18
+ `).replace(/\r/g,`
19
+ `).split(`
20
+ `);this.state.lines=t.length===0?[""]:t,this.state.cursorLine=this.state.lines.length-1,this.setCursorCol(this.state.lines[this.state.cursorLine]?.length||0),this.scrollOffset=0,this.onChange&&this.onChange(this.getText());}invalidate(){}render(e){let t=Math.max(0,Math.floor((e-1)/2)),s=Math.min(this.paddingX,t),i=Math.max(1,e-s*2),r=Math.max(1,i-(s?0:1));this.lastWidth=r;let o=this.borderColor("\u2500"),l=this.layoutText(r),a=this.tui.terminal.rows,h=Math.max(5,Math.floor(a*.3)),u=l.findIndex(C=>C.hasCursor);u===-1&&(u=0),u<this.scrollOffset?this.scrollOffset=u:u>=this.scrollOffset+h&&(this.scrollOffset=u-h+1);let f=Math.max(0,l.length-h);this.scrollOffset=Math.max(0,Math.min(this.scrollOffset,f));let p=l.slice(this.scrollOffset,this.scrollOffset+h),d=[],m=" ".repeat(s),g=m;if(this.scrollOffset>0){let C=`\u2500\u2500\u2500 \u2191 ${this.scrollOffset} more `,A=e-w(C);d.push(this.borderColor(C+"\u2500".repeat(Math.max(0,A))));}else d.push(o.repeat(e));let y=this.focused&&!this.autocompleteState;for(let C of p){let A=C.text,x=w(C.text),b=false;if(C.hasCursor&&C.cursorPos!==void 0){let T=A.slice(0,C.cursorPos),S=A.slice(C.cursorPos),v=y?se:"";if(S.length>0){let M=[...Z.segment(S)][0]?.segment||"",_=S.slice(M.length),ee=`\x1B[7m${M}\x1B[0m`;A=T+v+ee+_;}else A=T+v+"\x1B[7m \x1B[0m",x=x+1,x>i&&s>0&&(b=true);}let P=" ".repeat(Math.max(0,i-x)),B=b?g.slice(1):g;d.push(`${m}${A}${P}${B}`);}let L=l.length-(this.scrollOffset+p.length);if(L>0){let C=`\u2500\u2500\u2500 \u2193 ${L} more `,A=e-w(C);d.push(this.borderColor(C+"\u2500".repeat(Math.max(0,A))));}else d.push(o.repeat(e));if(this.autocompleteState&&this.autocompleteList){let C=this.autocompleteList.render(i);for(let A of C){let x=w(A),b=" ".repeat(Math.max(0,i-x));d.push(`${m}${A}${b}${g}`);}}return d}handleInput(e){let t=q();if(this.jumpMode!==null){if(t.matches(e,"jumpForward")||t.matches(e,"jumpBackward")){this.jumpMode=null;return}if(e.charCodeAt(0)>=32){let i=this.jumpMode;this.jumpMode=null,this.jumpToChar(e,i);return}this.jumpMode=null;}if(e.includes("\x1B[200~")&&(this.isInPaste=true,this.pasteBuffer="",e=e.replace("\x1B[200~","")),this.isInPaste){this.pasteBuffer+=e;let i=this.pasteBuffer.indexOf("\x1B[201~");if(i!==-1){let r=this.pasteBuffer.substring(0,i);r.length>0&&this.handlePaste(r),this.isInPaste=false;let o=this.pasteBuffer.substring(i+6);this.pasteBuffer="",o.length>0&&this.handleInput(o);return}return}if(t.matches(e,"copy"))return;if(t.matches(e,"undo")){this.undo();return}if(this.autocompleteState&&this.autocompleteList){if(t.matches(e,"selectCancel")){this.cancelAutocomplete();return}if(t.matches(e,"selectUp")||t.matches(e,"selectDown")){this.autocompleteList.handleInput(e);return}if(t.matches(e,"tab")){let i=this.autocompleteList.getSelectedItem();if(i&&this.autocompleteProvider){this.pushUndoSnapshot(),this.lastAction=null;let r=this.autocompleteProvider.applyCompletion(this.state.lines,this.state.cursorLine,this.state.cursorCol,i,this.autocompletePrefix);this.state.lines=r.lines,this.state.cursorLine=r.cursorLine,this.setCursorCol(r.cursorCol),this.cancelAutocomplete(),this.onChange&&this.onChange(this.getText());}return}if(t.matches(e,"selectConfirm")){let i=this.autocompleteList.getSelectedItem();if(i&&this.autocompleteProvider){this.pushUndoSnapshot(),this.lastAction=null;let r=this.autocompleteProvider.applyCompletion(this.state.lines,this.state.cursorLine,this.state.cursorCol,i,this.autocompletePrefix);if(this.state.lines=r.lines,this.state.cursorLine=r.cursorLine,this.setCursorCol(r.cursorCol),this.autocompletePrefix.startsWith("/"))this.cancelAutocomplete();else {this.cancelAutocomplete(),this.onChange&&this.onChange(this.getText());return}}}}if(t.matches(e,"tab")&&!this.autocompleteState){this.handleTabCompletion();return}if(t.matches(e,"deleteToLineEnd")){this.deleteToEndOfLine();return}if(t.matches(e,"deleteToLineStart")){this.deleteToStartOfLine();return}if(t.matches(e,"deleteWordBackward")){this.deleteWordBackwards();return}if(t.matches(e,"deleteWordForward")){this.deleteWordForward();return}if(t.matches(e,"deleteCharBackward")||G(e,"shift+backspace")){this.handleBackspace();return}if(t.matches(e,"deleteCharForward")||G(e,"shift+delete")){this.handleForwardDelete();return}if(t.matches(e,"yank")){this.yank();return}if(t.matches(e,"yankPop")){this.yankPop();return}if(t.matches(e,"cursorLineStart")){this.moveToLineStart();return}if(t.matches(e,"cursorLineEnd")){this.moveToLineEnd();return}if(t.matches(e,"cursorWordLeft")){this.moveWordBackwards();return}if(t.matches(e,"cursorWordRight")){this.moveWordForwards();return}if(t.matches(e,"newLine")||e.charCodeAt(0)===10&&e.length>1||e==="\x1B\r"||e==="\x1B[13;2~"||e.length>1&&e.includes("\x1B")&&e.includes("\r")||e===`
21
+ `&&e.length===1){if(this.shouldSubmitOnBackslashEnter(e,t)){this.handleBackspace(),this.submitValue();return}this.addNewLine();return}if(t.matches(e,"submit")){if(this.disableSubmit)return;let i=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol>0&&i[this.state.cursorCol-1]==="\\"){this.handleBackspace(),this.addNewLine();return}this.submitValue();return}if(t.matches(e,"cursorUp")){this.isEditorEmpty()?this.navigateHistory(-1):this.historyIndex>-1&&this.isOnFirstVisualLine()?this.navigateHistory(-1):this.isOnFirstVisualLine()?this.moveToLineStart():this.moveCursor(-1,0);return}if(t.matches(e,"cursorDown")){this.historyIndex>-1&&this.isOnLastVisualLine()?this.navigateHistory(1):this.isOnLastVisualLine()?this.moveToLineEnd():this.moveCursor(1,0);return}if(t.matches(e,"cursorRight")){this.moveCursor(0,1);return}if(t.matches(e,"cursorLeft")){this.moveCursor(0,-1);return}if(t.matches(e,"pageUp")){this.pageScroll(-1);return}if(t.matches(e,"pageDown")){this.pageScroll(1);return}if(t.matches(e,"jumpForward")){this.jumpMode="forward";return}if(t.matches(e,"jumpBackward")){this.jumpMode="backward";return}if(G(e,"shift+space")){this.insertCharacter(" ");return}let s=ps(e);if(s!==void 0){this.insertCharacter(s);return}e.charCodeAt(0)>=32&&this.insertCharacter(e);}layoutText(e){let t=[];if(this.state.lines.length===0||this.state.lines.length===1&&this.state.lines[0]==="")return t.push({text:"",hasCursor:true,cursorPos:0}),t;for(let s=0;s<this.state.lines.length;s++){let i=this.state.lines[s]||"",r=s===this.state.cursorLine;if(w(i)<=e)r?t.push({text:i,hasCursor:true,cursorPos:this.state.cursorCol}):t.push({text:i,hasCursor:false});else {let l=At(i,e);for(let a=0;a<l.length;a++){let h=l[a];if(!h)continue;let u=this.state.cursorCol,f=a===l.length-1,p=false,d=0;r&&(f?(p=u>=h.startIndex,d=u-h.startIndex):(p=u>=h.startIndex&&u<h.endIndex,p&&(d=u-h.startIndex,d>h.text.length&&(d=h.text.length)))),p?t.push({text:h.text,hasCursor:true,cursorPos:d}):t.push({text:h.text,hasCursor:false});}}}return t}getText(){return this.state.lines.join(`
22
+ `)}getExpandedText(){let e=this.state.lines.join(`
23
+ `);for(let[t,s]of this.pastes){let i=new RegExp(`\\[paste #${t}( (\\+\\d+ lines|\\d+ chars))?\\]`,"g");e=e.replace(i,s);}return e}getLines(){return [...this.state.lines]}getCursor(){return {line:this.state.cursorLine,col:this.state.cursorCol}}setText(e){this.lastAction=null,this.historyIndex=-1,this.getText()!==e&&this.pushUndoSnapshot(),this.setTextInternal(e);}insertTextAtCursor(e){e&&(this.pushUndoSnapshot(),this.lastAction=null,this.historyIndex=-1,this.insertTextAtCursorInternal(e));}insertTextAtCursorInternal(e){if(!e)return;let t=e.replace(/\r\n/g,`
24
+ `).replace(/\r/g,`
25
+ `),s=t.split(`
26
+ `),i=this.state.lines[this.state.cursorLine]||"",r=i.slice(0,this.state.cursorCol),o=i.slice(this.state.cursorCol);s.length===1?(this.state.lines[this.state.cursorLine]=r+t+o,this.setCursorCol(this.state.cursorCol+t.length)):(this.state.lines=[...this.state.lines.slice(0,this.state.cursorLine),r+s[0],...s.slice(1,-1),s[s.length-1]+o,...this.state.lines.slice(this.state.cursorLine+1)],this.state.cursorLine+=s.length-1,this.setCursorCol((s[s.length-1]||"").length)),this.onChange&&this.onChange(this.getText());}insertCharacter(e,t){this.historyIndex=-1,t||((F(e)||this.lastAction!=="type-word")&&this.pushUndoSnapshot(),this.lastAction="type-word");let s=this.state.lines[this.state.cursorLine]||"",i=s.slice(0,this.state.cursorCol),r=s.slice(this.state.cursorCol);if(this.state.lines[this.state.cursorLine]=i+e+r,this.setCursorCol(this.state.cursorCol+e.length),this.onChange&&this.onChange(this.getText()),this.autocompleteState)this.updateAutocomplete();else if(e==="/"&&this.isAtStartOfMessage())this.tryTriggerAutocomplete();else if(e==="@"){let l=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol),a=l[l.length-2];(l.length===1||a===" "||a===" ")&&this.tryTriggerAutocomplete();}else if(/[a-zA-Z0-9.\-_]/.test(e)){let l=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);this.isInSlashCommandContext(l)?this.tryTriggerAutocomplete():l.match(/(?:^|[\s])@[^\s]*$/)&&this.tryTriggerAutocomplete();}}handlePaste(e){this.historyIndex=-1,this.lastAction=null,this.pushUndoSnapshot();let i=e.replace(/\r\n/g,`
27
+ `).replace(/\r/g,`
28
+ `).replace(/\t/g," ").split("").filter(l=>l===`
29
+ `||l.charCodeAt(0)>=32).join("");if(/^[/~.]/.test(i)){let l=this.state.lines[this.state.cursorLine]||"",a=this.state.cursorCol>0?l[this.state.cursorCol-1]:"";a&&/\w/.test(a)&&(i=` ${i}`);}let r=i.split(`
30
+ `),o=i.length;if(r.length>10||o>1e3){this.pasteCounter++;let l=this.pasteCounter;this.pastes.set(l,i);let a=r.length>10?`[paste #${l} +${r.length} lines]`:`[paste #${l} ${o} chars]`;this.insertTextAtCursorInternal(a);return}if(r.length===1){for(let l of i)this.insertCharacter(l,true);return}this.insertTextAtCursorInternal(i);}addNewLine(){this.historyIndex=-1,this.lastAction=null,this.pushUndoSnapshot();let e=this.state.lines[this.state.cursorLine]||"",t=e.slice(0,this.state.cursorCol),s=e.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=t,this.state.lines.splice(this.state.cursorLine+1,0,s),this.state.cursorLine++,this.setCursorCol(0),this.onChange&&this.onChange(this.getText());}shouldSubmitOnBackslashEnter(e,t){if(this.disableSubmit||!G(e,"enter"))return false;let s=t.getKeys("submit");if(!(s.includes("shift+enter")||s.includes("shift+return")))return false;let r=this.state.lines[this.state.cursorLine]||"";return this.state.cursorCol>0&&r[this.state.cursorCol-1]==="\\"}submitValue(){let e=this.state.lines.join(`
31
+ `).trim();for(let[t,s]of this.pastes){let i=new RegExp(`\\[paste #${t}( (\\+\\d+ lines|\\d+ chars))?\\]`,"g");e=e.replace(i,s);}this.state={lines:[""],cursorLine:0,cursorCol:0},this.pastes.clear(),this.pasteCounter=0,this.historyIndex=-1,this.scrollOffset=0,this.undoStack.clear(),this.lastAction=null,this.onChange&&this.onChange(""),this.onSubmit&&this.onSubmit(e);}handleBackspace(){if(this.historyIndex=-1,this.lastAction=null,this.state.cursorCol>0){this.pushUndoSnapshot();let e=this.state.lines[this.state.cursorLine]||"",t=e.slice(0,this.state.cursorCol),s=[...Z.segment(t)],i=s[s.length-1],r=i?i.segment.length:1,o=e.slice(0,this.state.cursorCol-r),l=e.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=o+l,this.setCursorCol(this.state.cursorCol-r);}else if(this.state.cursorLine>0){this.pushUndoSnapshot();let e=this.state.lines[this.state.cursorLine]||"",t=this.state.lines[this.state.cursorLine-1]||"";this.state.lines[this.state.cursorLine-1]=t+e,this.state.lines.splice(this.state.cursorLine,1),this.state.cursorLine--,this.setCursorCol(t.length);}if(this.onChange&&this.onChange(this.getText()),this.autocompleteState)this.updateAutocomplete();else {let t=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);this.isInSlashCommandContext(t)?this.tryTriggerAutocomplete():t.match(/(?:^|[\s])@[^\s]*$/)&&this.tryTriggerAutocomplete();}}setCursorCol(e){this.state.cursorCol=e,this.preferredVisualCol=null;}moveToVisualLine(e,t,s){let i=e[t],r=e[s];if(i&&r){let o=this.state.cursorCol-i.startCol,a=t===e.length-1||e[t+1]?.logicalLine!==i.logicalLine?i.length:Math.max(0,i.length-1),u=s===e.length-1||e[s+1]?.logicalLine!==r.logicalLine?r.length:Math.max(0,r.length-1),f=this.computeVerticalMoveColumn(o,a,u);this.state.cursorLine=r.logicalLine;let p=r.startCol+f,d=this.state.lines[r.logicalLine]||"";this.state.cursorCol=Math.min(p,d.length);}}computeVerticalMoveColumn(e,t,s){let i=this.preferredVisualCol!==null,r=e<t,o=s<e;if(!i||r)return o?(this.preferredVisualCol=e,s):(this.preferredVisualCol=null,e);let l=s<this.preferredVisualCol;if(o||l)return s;let a=this.preferredVisualCol;return this.preferredVisualCol=null,a}moveToLineStart(){this.lastAction=null,this.setCursorCol(0);}moveToLineEnd(){this.lastAction=null;let e=this.state.lines[this.state.cursorLine]||"";this.setCursorCol(e.length);}deleteToStartOfLine(){this.historyIndex=-1;let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol>0){this.pushUndoSnapshot();let t=e.slice(0,this.state.cursorCol);this.killRing.push(t,{prepend:true,accumulate:this.lastAction==="kill"}),this.lastAction="kill",this.state.lines[this.state.cursorLine]=e.slice(this.state.cursorCol),this.setCursorCol(0);}else if(this.state.cursorLine>0){this.pushUndoSnapshot(),this.killRing.push(`
32
+ `,{prepend:true,accumulate:this.lastAction==="kill"}),this.lastAction="kill";let t=this.state.lines[this.state.cursorLine-1]||"";this.state.lines[this.state.cursorLine-1]=t+e,this.state.lines.splice(this.state.cursorLine,1),this.state.cursorLine--,this.setCursorCol(t.length);}this.onChange&&this.onChange(this.getText());}deleteToEndOfLine(){this.historyIndex=-1;let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol<e.length){this.pushUndoSnapshot();let t=e.slice(this.state.cursorCol);this.killRing.push(t,{prepend:false,accumulate:this.lastAction==="kill"}),this.lastAction="kill",this.state.lines[this.state.cursorLine]=e.slice(0,this.state.cursorCol);}else if(this.state.cursorLine<this.state.lines.length-1){this.pushUndoSnapshot(),this.killRing.push(`
33
+ `,{prepend:false,accumulate:this.lastAction==="kill"}),this.lastAction="kill";let t=this.state.lines[this.state.cursorLine+1]||"";this.state.lines[this.state.cursorLine]=e+t,this.state.lines.splice(this.state.cursorLine+1,1);}this.onChange&&this.onChange(this.getText());}deleteWordBackwards(){this.historyIndex=-1;let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol===0){if(this.state.cursorLine>0){this.pushUndoSnapshot(),this.killRing.push(`
34
+ `,{prepend:true,accumulate:this.lastAction==="kill"}),this.lastAction="kill";let t=this.state.lines[this.state.cursorLine-1]||"";this.state.lines[this.state.cursorLine-1]=t+e,this.state.lines.splice(this.state.cursorLine,1),this.state.cursorLine--,this.setCursorCol(t.length);}}else {this.pushUndoSnapshot();let t=this.lastAction==="kill",s=this.state.cursorCol;this.moveWordBackwards();let i=this.state.cursorCol;this.setCursorCol(s);let r=e.slice(i,this.state.cursorCol);this.killRing.push(r,{prepend:true,accumulate:t}),this.lastAction="kill",this.state.lines[this.state.cursorLine]=e.slice(0,i)+e.slice(this.state.cursorCol),this.setCursorCol(i);}this.onChange&&this.onChange(this.getText());}deleteWordForward(){this.historyIndex=-1;let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol>=e.length){if(this.state.cursorLine<this.state.lines.length-1){this.pushUndoSnapshot(),this.killRing.push(`
35
+ `,{prepend:false,accumulate:this.lastAction==="kill"}),this.lastAction="kill";let t=this.state.lines[this.state.cursorLine+1]||"";this.state.lines[this.state.cursorLine]=e+t,this.state.lines.splice(this.state.cursorLine+1,1);}}else {this.pushUndoSnapshot();let t=this.lastAction==="kill",s=this.state.cursorCol;this.moveWordForwards();let i=this.state.cursorCol;this.setCursorCol(s);let r=e.slice(this.state.cursorCol,i);this.killRing.push(r,{prepend:false,accumulate:t}),this.lastAction="kill",this.state.lines[this.state.cursorLine]=e.slice(0,this.state.cursorCol)+e.slice(i);}this.onChange&&this.onChange(this.getText());}handleForwardDelete(){this.historyIndex=-1,this.lastAction=null;let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol<e.length){this.pushUndoSnapshot();let t=e.slice(this.state.cursorCol),i=[...Z.segment(t)][0],r=i?i.segment.length:1,o=e.slice(0,this.state.cursorCol),l=e.slice(this.state.cursorCol+r);this.state.lines[this.state.cursorLine]=o+l;}else if(this.state.cursorLine<this.state.lines.length-1){this.pushUndoSnapshot();let t=this.state.lines[this.state.cursorLine+1]||"";this.state.lines[this.state.cursorLine]=e+t,this.state.lines.splice(this.state.cursorLine+1,1);}if(this.onChange&&this.onChange(this.getText()),this.autocompleteState)this.updateAutocomplete();else {let s=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);this.isInSlashCommandContext(s)?this.tryTriggerAutocomplete():s.match(/(?:^|[\s])@[^\s]*$/)&&this.tryTriggerAutocomplete();}}buildVisualLineMap(e){let t=[];for(let s=0;s<this.state.lines.length;s++){let i=this.state.lines[s]||"",r=w(i);if(i.length===0)t.push({logicalLine:s,startCol:0,length:0});else if(r<=e)t.push({logicalLine:s,startCol:0,length:i.length});else {let o=At(i,e);for(let l of o)t.push({logicalLine:s,startCol:l.startIndex,length:l.endIndex-l.startIndex});}}return t}findCurrentVisualLine(e){for(let t=0;t<e.length;t++){let s=e[t];if(s&&s.logicalLine===this.state.cursorLine){let i=this.state.cursorCol-s.startCol,r=t===e.length-1||e[t+1]?.logicalLine!==s.logicalLine;if(i>=0&&(i<s.length||r&&i<=s.length))return t}}return e.length-1}moveCursor(e,t){this.lastAction=null;let s=this.buildVisualLineMap(this.lastWidth),i=this.findCurrentVisualLine(s);if(e!==0){let r=i+e;r>=0&&r<s.length&&this.moveToVisualLine(s,i,r);}if(t!==0){let r=this.state.lines[this.state.cursorLine]||"";if(t>0)if(this.state.cursorCol<r.length){let o=r.slice(this.state.cursorCol),a=[...Z.segment(o)][0];this.setCursorCol(this.state.cursorCol+(a?a.segment.length:1));}else if(this.state.cursorLine<this.state.lines.length-1)this.state.cursorLine++,this.setCursorCol(0);else {let o=s[i];o&&(this.preferredVisualCol=this.state.cursorCol-o.startCol);}else if(this.state.cursorCol>0){let o=r.slice(0,this.state.cursorCol),l=[...Z.segment(o)],a=l[l.length-1];this.setCursorCol(this.state.cursorCol-(a?a.segment.length:1));}else if(this.state.cursorLine>0){this.state.cursorLine--;let o=this.state.lines[this.state.cursorLine]||"";this.setCursorCol(o.length);}}}pageScroll(e){this.lastAction=null;let t=this.tui.terminal.rows,s=Math.max(5,Math.floor(t*.3)),i=this.buildVisualLineMap(this.lastWidth),r=this.findCurrentVisualLine(i),o=Math.max(0,Math.min(i.length-1,r+e*s));this.moveToVisualLine(i,r,o);}moveWordBackwards(){this.lastAction=null;let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol===0){if(this.state.cursorLine>0){this.state.cursorLine--;let r=this.state.lines[this.state.cursorLine]||"";this.setCursorCol(r.length);}return}let t=e.slice(0,this.state.cursorCol),s=[...Z.segment(t)],i=this.state.cursorCol;for(;s.length>0&&F(s[s.length-1]?.segment||"");)i-=s.pop()?.segment.length||0;if(s.length>0){let r=s[s.length-1]?.segment||"";if(V(r))for(;s.length>0&&V(s[s.length-1]?.segment||"");)i-=s.pop()?.segment.length||0;else for(;s.length>0&&!F(s[s.length-1]?.segment||"")&&!V(s[s.length-1]?.segment||"");)i-=s.pop()?.segment.length||0;}this.setCursorCol(i);}yank(){if(this.killRing.length===0)return;this.pushUndoSnapshot();let e=this.killRing.peek();this.insertYankedText(e),this.lastAction="yank";}yankPop(){if(this.lastAction!=="yank"||this.killRing.length<=1)return;this.pushUndoSnapshot(),this.deleteYankedText(),this.killRing.rotate();let e=this.killRing.peek();this.insertYankedText(e),this.lastAction="yank";}insertYankedText(e){this.historyIndex=-1;let t=e.split(`
36
+ `);if(t.length===1){let s=this.state.lines[this.state.cursorLine]||"",i=s.slice(0,this.state.cursorCol),r=s.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=i+e+r,this.setCursorCol(this.state.cursorCol+e.length);}else {let s=this.state.lines[this.state.cursorLine]||"",i=s.slice(0,this.state.cursorCol),r=s.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=i+(t[0]||"");for(let l=1;l<t.length-1;l++)this.state.lines.splice(this.state.cursorLine+l,0,t[l]||"");let o=this.state.cursorLine+t.length-1;this.state.lines.splice(o,0,(t[t.length-1]||"")+r),this.state.cursorLine=o,this.setCursorCol((t[t.length-1]||"").length);}this.onChange&&this.onChange(this.getText());}deleteYankedText(){let e=this.killRing.peek();if(!e)return;let t=e.split(`
37
+ `);if(t.length===1){let s=this.state.lines[this.state.cursorLine]||"",i=e.length,r=s.slice(0,this.state.cursorCol-i),o=s.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=r+o,this.setCursorCol(this.state.cursorCol-i);}else {let s=this.state.cursorLine-(t.length-1),i=(this.state.lines[s]||"").length-(t[0]||"").length,r=(this.state.lines[this.state.cursorLine]||"").slice(this.state.cursorCol),o=(this.state.lines[s]||"").slice(0,i);this.state.lines.splice(s,t.length,o+r),this.state.cursorLine=s,this.setCursorCol(i);}this.onChange&&this.onChange(this.getText());}pushUndoSnapshot(){this.undoStack.push(this.state);}undo(){this.historyIndex=-1;let e=this.undoStack.pop();e&&(Object.assign(this.state,e),this.lastAction=null,this.preferredVisualCol=null,this.onChange&&this.onChange(this.getText()));}jumpToChar(e,t){this.lastAction=null;let s=t==="forward",i=this.state.lines,r=s?i.length:-1,o=s?1:-1;for(let l=this.state.cursorLine;l!==r;l+=o){let a=i[l]||"",u=l===this.state.cursorLine?s?this.state.cursorCol+1:this.state.cursorCol-1:void 0,f=s?a.indexOf(e,u):a.lastIndexOf(e,u);if(f!==-1){this.state.cursorLine=l,this.setCursorCol(f);return}}}moveWordForwards(){this.lastAction=null;let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol>=e.length){this.state.cursorLine<this.state.lines.length-1&&(this.state.cursorLine++,this.setCursorCol(0));return}let t=e.slice(this.state.cursorCol),i=Z.segment(t)[Symbol.iterator](),r=i.next(),o=this.state.cursorCol;for(;!r.done&&F(r.value.segment);)o+=r.value.segment.length,r=i.next();if(!r.done){let l=r.value.segment;if(V(l))for(;!r.done&&V(r.value.segment);)o+=r.value.segment.length,r=i.next();else for(;!r.done&&!F(r.value.segment)&&!V(r.value.segment);)o+=r.value.segment.length,r=i.next();}this.setCursorCol(o);}isSlashMenuAllowed(){return this.state.cursorLine===0}isAtStartOfMessage(){if(!this.isSlashMenuAllowed())return false;let t=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);return t.trim()===""||t.trim()==="/"}isInSlashCommandContext(e){return this.isSlashMenuAllowed()&&e.trimStart().startsWith("/")}tryTriggerAutocomplete(e=false){if(!this.autocompleteProvider)return;if(e){let s=this.autocompleteProvider;if(!(!s.shouldTriggerFileCompletion||s.shouldTriggerFileCompletion(this.state.lines,this.state.cursorLine,this.state.cursorCol)))return}let t=this.autocompleteProvider.getSuggestions(this.state.lines,this.state.cursorLine,this.state.cursorCol);t&&t.items.length>0?(this.autocompletePrefix=t.prefix,this.autocompleteList=new ie(t.items,this.autocompleteMaxVisible,this.theme.selectList),this.autocompleteState="regular"):this.cancelAutocomplete();}handleTabCompletion(){if(!this.autocompleteProvider)return;let t=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);this.isInSlashCommandContext(t)&&!t.trimStart().includes(" ")?this.handleSlashCommandCompletion():this.forceFileAutocomplete(true);}handleSlashCommandCompletion(){this.tryTriggerAutocomplete(true);}forceFileAutocomplete(e=false){if(!this.autocompleteProvider)return;let t=this.autocompleteProvider;if(typeof t.getForceFileSuggestions!="function"){this.tryTriggerAutocomplete(true);return}let s=t.getForceFileSuggestions(this.state.lines,this.state.cursorLine,this.state.cursorCol);if(s&&s.items.length>0){if(e&&s.items.length===1){let i=s.items[0];this.pushUndoSnapshot(),this.lastAction=null;let r=this.autocompleteProvider.applyCompletion(this.state.lines,this.state.cursorLine,this.state.cursorCol,i,s.prefix);this.state.lines=r.lines,this.state.cursorLine=r.cursorLine,this.setCursorCol(r.cursorCol),this.onChange&&this.onChange(this.getText());return}this.autocompletePrefix=s.prefix,this.autocompleteList=new ie(s.items,this.autocompleteMaxVisible,this.theme.selectList),this.autocompleteState="force";}else this.cancelAutocomplete();}cancelAutocomplete(){this.autocompleteState=null,this.autocompleteList=void 0,this.autocompletePrefix="";}isShowingAutocomplete(){return this.autocompleteState!==null}updateAutocomplete(){if(!this.autocompleteState||!this.autocompleteProvider)return;if(this.autocompleteState==="force"){this.forceFileAutocomplete();return}let e=this.autocompleteProvider.getSuggestions(this.state.lines,this.state.cursorLine,this.state.cursorCol);e&&e.items.length>0?(this.autocompletePrefix=e.prefix,this.autocompleteList=new ie(e.items,this.autocompleteMaxVisible,this.theme.selectList)):this.cancelAutocomplete();}};var je=class{constructor(e,t,s,i={},r){c(this,"base64Data");c(this,"mimeType");c(this,"dimensions");c(this,"theme");c(this,"options");c(this,"imageId");c(this,"cachedLines");c(this,"cachedWidth");this.base64Data=e,this.mimeType=t,this.theme=s,this.options=i,this.dimensions=r||Ue(e,t)||{widthPx:800,heightPx:600},this.imageId=i.imageId;}getImageId(){return this.imageId}invalidate(){this.cachedLines=void 0,this.cachedWidth=void 0;}render(e){if(this.cachedLines&&this.cachedWidth===e)return this.cachedLines;let t=Math.min(e-2,this.options.maxWidthCells??60),s=le(),i;if(s.images){let r=_e(this.base64Data,this.dimensions,{maxWidthCells:t,imageId:this.imageId});if(r){r.imageId&&(this.imageId=r.imageId),i=[];for(let l=0;l<r.rows-1;l++)i.push("");let o=r.rows>1?`\x1B[${r.rows-1}A`:"";i.push(o+r.sequence);}else {let o=Ae(this.mimeType,this.dimensions,this.options.filename);i=[this.theme.fallbackColor(o)];}}else {let r=Ae(this.mimeType,this.dimensions,this.options.filename);i=[this.theme.fallbackColor(r)];}return this.cachedLines=i,this.cachedWidth=e,i}};var ne=ye(),be=class{constructor(){c(this,"value","");c(this,"cursor",0);c(this,"onSubmit");c(this,"onEscape");c(this,"focused",false);c(this,"pasteBuffer","");c(this,"isInPaste",false);c(this,"killRing",new oe);c(this,"lastAction",null);c(this,"undoStack",new he);}getValue(){return this.value}setValue(e){this.value=e,this.cursor=Math.min(this.cursor,e.length);}handleInput(e){if(e.includes("\x1B[200~")&&(this.isInPaste=true,this.pasteBuffer="",e=e.replace("\x1B[200~","")),this.isInPaste){this.pasteBuffer+=e;let i=this.pasteBuffer.indexOf("\x1B[201~");if(i!==-1){let r=this.pasteBuffer.substring(0,i);this.handlePaste(r),this.isInPaste=false;let o=this.pasteBuffer.substring(i+6);this.pasteBuffer="",o&&this.handleInput(o);}return}let t=q();if(t.matches(e,"selectCancel")){this.onEscape&&this.onEscape();return}if(t.matches(e,"undo")){this.undo();return}if(t.matches(e,"submit")||e===`
38
+ `){this.onSubmit&&this.onSubmit(this.value);return}if(t.matches(e,"deleteCharBackward")){this.handleBackspace();return}if(t.matches(e,"deleteCharForward")){this.handleForwardDelete();return}if(t.matches(e,"deleteWordBackward")){this.deleteWordBackwards();return}if(t.matches(e,"deleteWordForward")){this.deleteWordForward();return}if(t.matches(e,"deleteToLineStart")){this.deleteToLineStart();return}if(t.matches(e,"deleteToLineEnd")){this.deleteToLineEnd();return}if(t.matches(e,"yank")){this.yank();return}if(t.matches(e,"yankPop")){this.yankPop();return}if(t.matches(e,"cursorLeft")){if(this.lastAction=null,this.cursor>0){let i=this.value.slice(0,this.cursor),r=[...ne.segment(i)],o=r[r.length-1];this.cursor-=o?o.segment.length:1;}return}if(t.matches(e,"cursorRight")){if(this.lastAction=null,this.cursor<this.value.length){let i=this.value.slice(this.cursor),o=[...ne.segment(i)][0];this.cursor+=o?o.segment.length:1;}return}if(t.matches(e,"cursorLineStart")){this.lastAction=null,this.cursor=0;return}if(t.matches(e,"cursorLineEnd")){this.lastAction=null,this.cursor=this.value.length;return}if(t.matches(e,"cursorWordLeft")){this.moveWordBackwards();return}if(t.matches(e,"cursorWordRight")){this.moveWordForwards();return}[...e].some(i=>{let r=i.charCodeAt(0);return r<32||r===127||r>=128&&r<=159})||this.insertCharacter(e);}insertCharacter(e){(F(e)||this.lastAction!=="type-word")&&this.pushUndo(),this.lastAction="type-word",this.value=this.value.slice(0,this.cursor)+e+this.value.slice(this.cursor),this.cursor+=e.length;}handleBackspace(){if(this.lastAction=null,this.cursor>0){this.pushUndo();let e=this.value.slice(0,this.cursor),t=[...ne.segment(e)],s=t[t.length-1],i=s?s.segment.length:1;this.value=this.value.slice(0,this.cursor-i)+this.value.slice(this.cursor),this.cursor-=i;}}handleForwardDelete(){if(this.lastAction=null,this.cursor<this.value.length){this.pushUndo();let e=this.value.slice(this.cursor),s=[...ne.segment(e)][0],i=s?s.segment.length:1;this.value=this.value.slice(0,this.cursor)+this.value.slice(this.cursor+i);}}deleteToLineStart(){if(this.cursor===0)return;this.pushUndo();let e=this.value.slice(0,this.cursor);this.killRing.push(e,{prepend:true,accumulate:this.lastAction==="kill"}),this.lastAction="kill",this.value=this.value.slice(this.cursor),this.cursor=0;}deleteToLineEnd(){if(this.cursor>=this.value.length)return;this.pushUndo();let e=this.value.slice(this.cursor);this.killRing.push(e,{prepend:false,accumulate:this.lastAction==="kill"}),this.lastAction="kill",this.value=this.value.slice(0,this.cursor);}deleteWordBackwards(){if(this.cursor===0)return;let e=this.lastAction==="kill";this.pushUndo();let t=this.cursor;this.moveWordBackwards();let s=this.cursor;this.cursor=t;let i=this.value.slice(s,this.cursor);this.killRing.push(i,{prepend:true,accumulate:e}),this.lastAction="kill",this.value=this.value.slice(0,s)+this.value.slice(this.cursor),this.cursor=s;}deleteWordForward(){if(this.cursor>=this.value.length)return;let e=this.lastAction==="kill";this.pushUndo();let t=this.cursor;this.moveWordForwards();let s=this.cursor;this.cursor=t;let i=this.value.slice(this.cursor,s);this.killRing.push(i,{prepend:false,accumulate:e}),this.lastAction="kill",this.value=this.value.slice(0,this.cursor)+this.value.slice(s);}yank(){let e=this.killRing.peek();e&&(this.pushUndo(),this.value=this.value.slice(0,this.cursor)+e+this.value.slice(this.cursor),this.cursor+=e.length,this.lastAction="yank");}yankPop(){if(this.lastAction!=="yank"||this.killRing.length<=1)return;this.pushUndo();let e=this.killRing.peek()||"";this.value=this.value.slice(0,this.cursor-e.length)+this.value.slice(this.cursor),this.cursor-=e.length,this.killRing.rotate();let t=this.killRing.peek()||"";this.value=this.value.slice(0,this.cursor)+t+this.value.slice(this.cursor),this.cursor+=t.length,this.lastAction="yank";}pushUndo(){this.undoStack.push({value:this.value,cursor:this.cursor});}undo(){let e=this.undoStack.pop();e&&(this.value=e.value,this.cursor=e.cursor,this.lastAction=null);}moveWordBackwards(){if(this.cursor===0)return;this.lastAction=null;let e=this.value.slice(0,this.cursor),t=[...ne.segment(e)];for(;t.length>0&&F(t[t.length-1]?.segment||"");)this.cursor-=t.pop()?.segment.length||0;if(t.length>0){let s=t[t.length-1]?.segment||"";if(V(s))for(;t.length>0&&V(t[t.length-1]?.segment||"");)this.cursor-=t.pop()?.segment.length||0;else for(;t.length>0&&!F(t[t.length-1]?.segment||"")&&!V(t[t.length-1]?.segment||"");)this.cursor-=t.pop()?.segment.length||0;}}moveWordForwards(){if(this.cursor>=this.value.length)return;this.lastAction=null;let e=this.value.slice(this.cursor),s=ne.segment(e)[Symbol.iterator](),i=s.next();for(;!i.done&&F(i.value.segment);)this.cursor+=i.value.segment.length,i=s.next();if(!i.done){let r=i.value.segment;if(V(r))for(;!i.done&&V(i.value.segment);)this.cursor+=i.value.segment.length,i=s.next();else for(;!i.done&&!F(i.value.segment)&&!V(i.value.segment);)this.cursor+=i.value.segment.length,i=s.next();}}handlePaste(e){this.lastAction=null,this.pushUndo();let t=e.replace(/\r\n/g,"").replace(/\r/g,"").replace(/\n/g,"");this.value=this.value.slice(0,this.cursor)+t+this.value.slice(this.cursor),this.cursor+=t.length;}invalidate(){}render(e){let s=e-2;if(s<=0)return ["> "];let i="",r=this.cursor;if(this.value.length<s)i=this.value;else {let L=this.cursor===this.value.length?s-1:s,C=Math.floor(L/2),A=b=>{for(;b<this.value.length;){let P=this.value.charCodeAt(b);if(P>=56320&&P<57344){b++;continue}break}return b},x=b=>{for(;b>0;){let P=this.value.charCodeAt(b-1);if(P>=55296&&P<56320){b--;continue}break}return b};if(this.cursor<C)i=this.value.slice(0,x(L)),r=this.cursor;else if(this.cursor>this.value.length-C){let b=A(this.value.length-L);i=this.value.slice(b),r=this.cursor-b;}else {let b=A(this.cursor-C);i=this.value.slice(b,x(b+L)),r=C;}}let l=[...ne.segment(i.slice(r))][0],a=i.slice(0,r),h=l?.segment??" ",u=i.slice(r+h.length),f=this.focused?se:"",p=`\x1B[7m${h}\x1B[27m`,d=a+f+p+u,m=w(d),g=" ".repeat(Math.max(0,s-m));return ["> "+d+g]}};var Ge=class{constructor(e,t,s,i,r){c(this,"text");c(this,"paddingX");c(this,"paddingY");c(this,"defaultTextStyle");c(this,"theme");c(this,"defaultStylePrefix");c(this,"cachedText");c(this,"cachedWidth");c(this,"cachedLines");this.text=e,this.paddingX=t,this.paddingY=s,this.theme=i,this.defaultTextStyle=r;}setText(e){this.text=e,this.invalidate();}invalidate(){this.cachedText=void 0,this.cachedWidth=void 0,this.cachedLines=void 0;}render(e){if(this.cachedLines&&this.cachedText===this.text&&this.cachedWidth===e)return this.cachedLines;let t=Math.max(1,e-this.paddingX*2);if(!this.text||this.text.trim()===""){let m=[];return this.cachedText=this.text,this.cachedWidth=e,this.cachedLines=m,m}let s=this.text.replace(/\t/g," "),i=marked.marked.lexer(s),r=[];for(let m=0;m<i.length;m++){let g=i[m];if(!g)continue;let y=i[m+1],L=this.renderToken(g,t,y?.type);r.push(...L);}let o=[];for(let m of r)te(m)?o.push(m):o.push(...j(m,t));let l=" ".repeat(this.paddingX),a=" ".repeat(this.paddingX),h=this.defaultTextStyle?.bgColor,u=[];for(let m of o){if(te(m)){u.push(m);continue}let g=l+m+a;if(h)u.push(X(g,e,h));else {let y=w(g),L=Math.max(0,e-y);u.push(g+" ".repeat(L));}}let f=" ".repeat(e),p=[];for(let m=0;m<this.paddingY;m++){let g=h?X(f,e,h):f;p.push(g);}let d=[...p,...u,...p];return this.cachedText=this.text,this.cachedWidth=e,this.cachedLines=d,d.length>0?d:[""]}applyDefaultStyle(e){if(!this.defaultTextStyle)return e;let t=e;return this.defaultTextStyle.color&&(t=this.defaultTextStyle.color(t)),this.defaultTextStyle.bold&&(t=this.theme.bold(t)),this.defaultTextStyle.italic&&(t=this.theme.italic(t)),this.defaultTextStyle.strikethrough&&(t=this.theme.strikethrough(t)),this.defaultTextStyle.underline&&(t=this.theme.underline(t)),t}getDefaultStylePrefix(){if(!this.defaultTextStyle)return "";if(this.defaultStylePrefix!==void 0)return this.defaultStylePrefix;let e="\0",t=e;this.defaultTextStyle.color&&(t=this.defaultTextStyle.color(t)),this.defaultTextStyle.bold&&(t=this.theme.bold(t)),this.defaultTextStyle.italic&&(t=this.theme.italic(t)),this.defaultTextStyle.strikethrough&&(t=this.theme.strikethrough(t)),this.defaultTextStyle.underline&&(t=this.theme.underline(t));let s=t.indexOf(e);return this.defaultStylePrefix=s>=0?t.slice(0,s):"",this.defaultStylePrefix}getStylePrefix(e){let s=e("\0"),i=s.indexOf("\0");return i>=0?s.slice(0,i):""}getDefaultInlineStyleContext(){return {applyText:e=>this.applyDefaultStyle(e),stylePrefix:this.getDefaultStylePrefix()}}renderToken(e,t,s){let i=[];switch(e.type){case "heading":{let r=e.depth,o=`${"#".repeat(r)} `,l=this.renderInlineTokens(e.tokens||[]),a;r===1?a=this.theme.heading(this.theme.bold(this.theme.underline(l))):r===2?a=this.theme.heading(this.theme.bold(l)):a=this.theme.heading(this.theme.bold(o+l)),i.push(a),s!=="space"&&i.push("");break}case "paragraph":{let r=this.renderInlineTokens(e.tokens||[]);i.push(r),s&&s!=="list"&&s!=="space"&&i.push("");break}case "code":{let r=this.theme.codeBlockIndent??" ";if(i.push(this.theme.codeBlockBorder(`\`\`\`${e.lang||""}`)),this.theme.highlightCode){let o=this.theme.highlightCode(e.text,e.lang);for(let l of o)i.push(`${r}${l}`);}else {let o=e.text.split(`
39
+ `);for(let l of o)i.push(`${r}${this.theme.codeBlock(l)}`);}i.push(this.theme.codeBlockBorder("```")),s!=="space"&&i.push("");break}case "list":{let r=this.renderList(e,0);i.push(...r);break}case "table":{let r=this.renderTable(e,t);i.push(...r);break}case "blockquote":{let r=u=>this.theme.quote(this.theme.italic(u)),o={applyText:r,stylePrefix:this.getStylePrefix(r)},a=this.renderInlineTokens(e.tokens||[],o).split(`
40
+ `),h=Math.max(1,t-2);for(let u of a){let f=j(u,h);for(let p of f)i.push(this.theme.quoteBorder("\u2502 ")+p);}s!=="space"&&i.push("");break}case "hr":i.push(this.theme.hr("\u2500".repeat(Math.min(t,80)))),s!=="space"&&i.push("");break;case "html":"raw"in e&&typeof e.raw=="string"&&i.push(this.applyDefaultStyle(e.raw.trim()));break;case "space":i.push("");break;default:"text"in e&&typeof e.text=="string"&&i.push(e.text);}return i}renderInlineTokens(e,t){let s="",i=t??this.getDefaultInlineStyleContext(),{applyText:r,stylePrefix:o}=i,l=a=>a.split(`
41
+ `).map(u=>r(u)).join(`
42
+ `);for(let a of e)switch(a.type){case "text":a.tokens&&a.tokens.length>0?s+=this.renderInlineTokens(a.tokens,i):s+=l(a.text);break;case "paragraph":s+=this.renderInlineTokens(a.tokens||[],i);break;case "strong":{let h=this.renderInlineTokens(a.tokens||[],i);s+=this.theme.bold(h)+o;break}case "em":{let h=this.renderInlineTokens(a.tokens||[],i);s+=this.theme.italic(h)+o;break}case "codespan":s+=this.theme.code(a.text)+o;break;case "link":{let h=this.renderInlineTokens(a.tokens||[],i),u=a.href.startsWith("mailto:")?a.href.slice(7):a.href;a.text===a.href||a.text===u?s+=this.theme.link(this.theme.underline(h))+o:s+=this.theme.link(this.theme.underline(h))+this.theme.linkUrl(` (${a.href})`)+o;break}case "br":s+=`
43
+ `;break;case "del":{let h=this.renderInlineTokens(a.tokens||[],i);s+=this.theme.strikethrough(h)+o;break}case "html":"raw"in a&&typeof a.raw=="string"&&(s+=l(a.raw));break;default:"text"in a&&typeof a.text=="string"&&(s+=l(a.text));}return s}renderList(e,t){let s=[],i=" ".repeat(t),r=e.start??1;for(let o=0;o<e.items.length;o++){let l=e.items[o],a=e.ordered?`${r+o}. `:"- ",h=this.renderListItem(l.tokens||[],t);if(h.length>0){let u=h[0]??"";/^\s+\x1b\[36m[-\d]/.test(u)?s.push(u):s.push(i+this.theme.listBullet(a)+u);for(let p=1;p<h.length;p++){let d=h[p]??"";/^\s+\x1b\[36m[-\d]/.test(d)?s.push(d):s.push(`${i} ${d}`);}}else s.push(i+this.theme.listBullet(a));}return s}renderListItem(e,t){let s=[];for(let i of e)if(i.type==="list"){let r=this.renderList(i,t+1);s.push(...r);}else if(i.type==="text"){let r=i.tokens&&i.tokens.length>0?this.renderInlineTokens(i.tokens):i.text||"";s.push(r);}else if(i.type==="paragraph"){let r=this.renderInlineTokens(i.tokens||[]);s.push(r);}else if(i.type==="code"){let r=this.theme.codeBlockIndent??" ";if(s.push(this.theme.codeBlockBorder(`\`\`\`${i.lang||""}`)),this.theme.highlightCode){let o=this.theme.highlightCode(i.text,i.lang);for(let l of o)s.push(`${r}${l}`);}else {let o=i.text.split(`
44
+ `);for(let l of o)s.push(`${r}${this.theme.codeBlock(l)}`);}s.push(this.theme.codeBlockBorder("```"));}else {let r=this.renderInlineTokens([i]);r&&s.push(r);}return s}getLongestWordWidth(e,t){let s=e.split(/\s+/).filter(r=>r.length>0),i=0;for(let r of s)i=Math.max(i,w(r));return t===void 0?i:Math.min(i,t)}wrapCellText(e,t){return j(e,Math.max(1,t))}renderTable(e,t){let s=[],i=e.header.length;if(i===0)return s;let r=3*i+1,o=t-r;if(o<i){let x=e.raw?j(e.raw,t):[];return x.push(""),x}let l=30,a=[],h=[];for(let x=0;x<i;x++){let b=this.renderInlineTokens(e.header[x].tokens||[]);a[x]=w(b),h[x]=Math.max(1,this.getLongestWordWidth(b,l));}for(let x of e.rows)for(let b=0;b<x.length;b++){let P=this.renderInlineTokens(x[b].tokens||[]);a[b]=Math.max(a[b]||0,w(P)),h[b]=Math.max(h[b]||1,this.getLongestWordWidth(P,l));}let u=h,f=u.reduce((x,b)=>x+b,0);if(f>o){u=new Array(i).fill(1);let x=o-i;if(x>0){let b=h.reduce((S,v)=>S+Math.max(0,v-1),0),P=h.map(S=>{let v=Math.max(0,S-1);return b>0?Math.floor(v/b*x):0});for(let S=0;S<i;S++){let v=u[S];v!==void 0&&(u[S]=v+(P[S]??0));}let B=P.reduce((S,v)=>S+v,0),T=x-B;for(let S=0;T>0&&S<i;S++){let v=u[S];v!==void 0&&(u[S]=v+1),T--;}}f=u.reduce((b,P)=>b+P,0);}let p=a.reduce((x,b)=>x+b,0)+r,d;if(p<=t)d=a.map((x,b)=>Math.max(x,u[b]??0));else {let x=a.reduce((T,S,v)=>T+Math.max(0,S-(u[v]??0)),0),b=Math.max(0,o-f);d=u.map((T,S)=>{let v=a[S],k=Math.max(0,(v??0)-T),M=0;return x>0&&(M=Math.floor(k/x*b)),T+M});let P=d.reduce((T,S)=>T+S,0),B=o-P;for(;B>0;){let T=false;for(let S=0;S<i&&B>0;S++)if((d[S]??0)<(a[S]??0)){let v=d[S];v!==void 0&&(d[S]=v+1),B--,T=true;}if(!T)break}}let m=d.map(x=>"\u2500".repeat(x));s.push(`\u250C\u2500${m.join("\u2500\u252C\u2500")}\u2500\u2510`);let g=e.header.map((x,b)=>{let P=this.renderInlineTokens(x.tokens||[]);return this.wrapCellText(P,d[b]??0)}),y=Math.max(...g.map(x=>x.length));for(let x=0;x<y;x++){let b=g.map((P,B)=>{let T=P[x]||"",S=T+" ".repeat(Math.max(0,(d[B]??0)-w(T)));return this.theme.bold(S)});s.push(`\u2502 ${b.join(" \u2502 ")} \u2502`);}let C=`\u251C\u2500${d.map(x=>"\u2500".repeat(x)).join("\u2500\u253C\u2500")}\u2500\u2524`;s.push(C);for(let x=0;x<e.rows.length;x++){let P=(e.rows[x]??[]).map((T,S)=>{let v=this.renderInlineTokens(T.tokens||[]);return this.wrapCellText(v,d[S]??0)}),B=Math.max(...P.map(T=>T.length));for(let T=0;T<B;T++){let S=P.map((v,k)=>{let M=v[T]||"";return M+" ".repeat(Math.max(0,(d[k]??0)-w(M)))});s.push(`\u2502 ${S.join(" \u2502 ")} \u2502`);}x<e.rows.length-1&&s.push(C);}let A=d.map(x=>"\u2500".repeat(x));return s.push(`\u2514\u2500${A.join("\u2500\u2534\u2500")}\u2500\u2518`),s.push(""),s}};var Ye=class{constructor(e,t,s,i,r,o={}){c(this,"items");c(this,"filteredItems");c(this,"theme");c(this,"selectedIndex",0);c(this,"maxVisible");c(this,"onChange");c(this,"onCancel");c(this,"searchInput");c(this,"searchEnabled");c(this,"submenuComponent",null);c(this,"submenuItemIndex",null);this.items=e,this.filteredItems=e,this.maxVisible=t,this.theme=s,this.onChange=i,this.onCancel=r,this.searchEnabled=o.enableSearch??false,this.searchEnabled&&(this.searchInput=new be);}updateValue(e,t){let s=this.items.find(i=>i.id===e);s&&(s.currentValue=t??"");}invalidate(){this.submenuComponent?.invalidate?.();}render(e){return this.submenuComponent?this.submenuComponent.render(e):this.renderMainList(e)}renderMainList(e){let t=[];if(this.searchEnabled&&this.searchInput&&(t.push(...this.searchInput.render(e)),t.push("")),this.items.length===0)return t.push(this.theme.hint(" No settings available")),this.searchEnabled&&this.addHintLine(t,e),t;let s=this.searchEnabled?this.filteredItems:this.items;if(s.length===0)return t.push(O(this.theme.hint(" No matching settings"),e)),this.addHintLine(t,e),t;let i=Math.max(0,Math.min(this.selectedIndex-Math.floor(this.maxVisible/2),s.length-this.maxVisible)),r=Math.min(i+this.maxVisible,s.length),o=Math.min(30,Math.max(...this.items.map(a=>w(a.label))));for(let a=i;a<r;a++){let h=s[a];if(!h)continue;let u=a===this.selectedIndex,f=u?this.theme.cursor:" ",p=w(f),d=h.label+" ".repeat(Math.max(0,o-w(h.label))),m=this.theme.label(d,u),g=" ",y=p+o+w(g),L=e-y-2,C=this.theme.value(O(h.currentValue,L,""),u);t.push(O(f+m+g+C,e));}if(i>0||r<s.length){let a=` (${this.selectedIndex+1}/${s.length})`;t.push(this.theme.hint(O(a,e-2,"")));}let l=s[this.selectedIndex];if(l?.description){t.push("");let a=j(l.description,e-4);for(let h of a)t.push(this.theme.description(` ${h}`));}return this.addHintLine(t,e),t}handleInput(e){if(this.submenuComponent){this.submenuComponent.handleInput?.(e);return}let t=q(),s=this.searchEnabled?this.filteredItems:this.items;if(t.matches(e,"selectUp")){if(s.length===0)return;this.selectedIndex=this.selectedIndex===0?s.length-1:this.selectedIndex-1;}else if(t.matches(e,"selectDown")){if(s.length===0)return;this.selectedIndex=this.selectedIndex===s.length-1?0:this.selectedIndex+1;}else if(t.matches(e,"selectConfirm")||e===" ")this.activateItem();else if(t.matches(e,"selectCancel"))this.onCancel();else if(this.searchEnabled&&this.searchInput){let i=e.replace(/ /g,"");if(!i)return;this.searchInput.handleInput(i),this.applyFilter(this.searchInput.getValue());}}activateItem(){let e=this.searchEnabled?this.filteredItems[this.selectedIndex]:this.items[this.selectedIndex];if(e){if(e.submenu)this.submenuItemIndex=this.selectedIndex,this.submenuComponent=e.submenu(e.currentValue,t=>{t!==void 0&&(e.currentValue=t,this.onChange(e.id,t)),this.closeSubmenu();});else if(e.values&&e.values.length>0){let s=(e.values.indexOf(e.currentValue)+1)%e.values.length,i=e.values[s];i!==void 0&&(e.currentValue=i,this.onChange(e.id,i));}}}closeSubmenu(){this.submenuComponent=null,this.submenuItemIndex!==null&&(this.selectedIndex=this.submenuItemIndex,this.submenuItemIndex=null);}applyFilter(e){this.filteredItems=ce(this.items,e,t=>t.label),this.selectedIndex=0;}addHintLine(e,t){e.push(""),e.push(O(this.theme.hint(this.searchEnabled?" Type to search \xB7 Enter/Space to change \xB7 Esc to cancel":" Enter/Space to change \xB7 Esc to cancel"),t));}};var Qe=class{constructor(e=1){c(this,"lines");this.lines=e;}setLines(e){this.lines=e;}invalidate(){}render(e){let t=[];for(let s=0;s<this.lines;s++)t.push("");return t}};var Xe=class{constructor(e,t=0,s=0){c(this,"text");c(this,"paddingX");c(this,"paddingY");this.text=e,this.paddingX=t,this.paddingY=s;}invalidate(){}render(e){let t=[],s=" ".repeat(e);for(let m=0;m<this.paddingY;m++)t.push(s);let i=Math.max(1,e-this.paddingX*2),r=this.text,o=this.text.indexOf(`
45
+ `);o!==-1&&(r=this.text.substring(0,o));let l=O(r,i),a=" ".repeat(this.paddingX),h=" ".repeat(this.paddingX),u=a+l+h,f=w(u),p=Math.max(0,e-f),d=u+" ".repeat(p);t.push(d);for(let m=0;m<this.paddingY;m++)t.push(s);return t}};var Y="\x1B",Pt="\x1B[200~",Me="\x1B[201~";function xs(n){if(!n.startsWith(Y))return "not-escape";if(n.length===1)return "incomplete";let e=n.slice(1);return e.startsWith("[")?e.startsWith("[M")?n.length>=6?"complete":"incomplete":bs(n):e.startsWith("]")?vs(n):e.startsWith("P")?Cs(n):e.startsWith("_")?ys(n):e.startsWith("O")?e.length>=2?"complete":"incomplete":(e.length===1,"complete")}function bs(n){if(!n.startsWith(`${Y}[`))return "complete";if(n.length<3)return "incomplete";let e=n.slice(2),t=e[e.length-1],s=t?.charCodeAt(0)??0;if(s>=64&&s<=126){if(e.startsWith("<")){if(/^<\d+;\d+;\d+[Mm]$/.test(e))return "complete";if(t==="M"||t==="m"){let r=e.slice(1,-1).split(";");if(r.length===3&&r.every(o=>/^\d+$/.test(o)))return "complete"}return "incomplete"}return "complete"}return "incomplete"}function vs(n){return !n.startsWith(`${Y}]`)||n.endsWith(`${Y}\\`)||n.endsWith("\x07")?"complete":"incomplete"}function Cs(n){return !n.startsWith(`${Y}P`)||n.endsWith(`${Y}\\`)?"complete":"incomplete"}function ys(n){return !n.startsWith(`${Y}_`)||n.endsWith(`${Y}\\`)?"complete":"incomplete"}function Mt(n){let e=[],t=0;for(;t<n.length;){let s=n.slice(t);if(s.startsWith(Y)){let i=1;for(;i<=s.length;){let r=s.slice(0,i),o=xs(r);if(o==="complete"){e.push(r),t+=i;break}else if(o==="incomplete")i++;else {e.push(r),t+=i;break}}if(i>s.length)return {sequences:e,remainder:s}}else e.push(s[0]),t++;}return {sequences:e,remainder:""}}var ve=class extends events.EventEmitter{constructor(t={}){super();c(this,"buffer","");c(this,"timeout",null);c(this,"timeoutMs");c(this,"pasteMode",false);c(this,"pasteBuffer","");this.timeoutMs=t.timeout??10;}process(t){this.timeout&&(clearTimeout(this.timeout),this.timeout=null);let s;if(Buffer.isBuffer(t))if(t.length===1&&t[0]>127){let o=t[0]-128;s=`\x1B${String.fromCharCode(o)}`;}else s=t.toString();else s=t;if(s.length===0&&this.buffer.length===0){this.emit("data","");return}if(this.buffer+=s,this.pasteMode){this.pasteBuffer+=this.buffer,this.buffer="";let o=this.pasteBuffer.indexOf(Me);if(o!==-1){let l=this.pasteBuffer.slice(0,o),a=this.pasteBuffer.slice(o+Me.length);this.pasteMode=false,this.pasteBuffer="",this.emit("paste",l),a.length>0&&this.process(a);}return}let i=this.buffer.indexOf(Pt);if(i!==-1){if(i>0){let l=this.buffer.slice(0,i),a=Mt(l);for(let h of a.sequences)this.emit("data",h);}this.buffer=this.buffer.slice(i+Pt.length),this.pasteMode=true,this.pasteBuffer=this.buffer,this.buffer="";let o=this.pasteBuffer.indexOf(Me);if(o!==-1){let l=this.pasteBuffer.slice(0,o),a=this.pasteBuffer.slice(o+Me.length);this.pasteMode=false,this.pasteBuffer="",this.emit("paste",l),a.length>0&&this.process(a);}return}let r=Mt(this.buffer);this.buffer=r.remainder;for(let o of r.sequences)this.emit("data",o);this.buffer.length>0&&(this.timeout=setTimeout(()=>{let o=this.flush();for(let l of o)this.emit("data",l);},this.timeoutMs));}flush(){if(this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.buffer.length===0)return [];let t=[this.buffer];return this.buffer="",t}clear(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.buffer="",this.pasteMode=false,this.pasteBuffer="";}getBuffer(){return this.buffer}destroy(){this.clear();}};var Je=class{constructor(){c(this,"wasRaw",false);c(this,"inputHandler");c(this,"resizeHandler");c(this,"_kittyProtocolActive",false);c(this,"stdinBuffer");c(this,"stdinDataHandler");c(this,"writeLogPath",process.env.PI_TUI_WRITE_LOG||"");}get kittyProtocolActive(){return this._kittyProtocolActive}start(e,t){this.inputHandler=e,this.resizeHandler=t,this.wasRaw=process.stdin.isRaw||false,process.stdin.setRawMode&&process.stdin.setRawMode(true),process.stdin.setEncoding("utf8"),process.stdin.resume(),process.stdout.write("\x1B[?2004h"),process.stdout.on("resize",this.resizeHandler),process.platform!=="win32"&&process.kill(process.pid,"SIGWINCH"),this.enableWindowsVTInput(),this.queryAndEnableKittyProtocol();}setupStdinBuffer(){this.stdinBuffer=new ve({timeout:10});let e=/^\x1b\[\?(\d+)u$/;this.stdinBuffer.on("data",t=>{if(!this._kittyProtocolActive&&t.match(e)){this._kittyProtocolActive=true,pe(true),process.stdout.write("\x1B[>7u");return}this.inputHandler&&this.inputHandler(t);}),this.stdinBuffer.on("paste",t=>{this.inputHandler&&this.inputHandler(`\x1B[200~${t}\x1B[201~`);}),this.stdinDataHandler=t=>{this.stdinBuffer.process(t);};}queryAndEnableKittyProtocol(){this.setupStdinBuffer(),process.stdin.on("data",this.stdinDataHandler),process.stdout.write("\x1B[?u");}enableWindowsVTInput(){if(process.platform==="win32")try{let e=Ls__default.default.load("kernel32.dll"),t=e.func("void* __stdcall GetStdHandle(int)"),s=e.func("bool __stdcall GetConsoleMode(void*, _Out_ uint32_t*)"),i=e.func("bool __stdcall SetConsoleMode(void*, uint32_t)"),r=-10,o=512,l=t(r),a=new Uint32Array(1);s(l,a),i(l,a[0]|o);}catch{}}async drainInput(e=1e3,t=50){this._kittyProtocolActive&&(process.stdout.write("\x1B[<u"),this._kittyProtocolActive=false,pe(false));let s=this.inputHandler;this.inputHandler=void 0;let i=Date.now(),r=()=>{i=Date.now();};process.stdin.on("data",r);let o=Date.now()+e;try{for(;;){let l=Date.now(),a=o-l;if(a<=0||l-i>=t)break;await new Promise(h=>setTimeout(h,Math.min(t,a)));}}finally{process.stdin.removeListener("data",r),this.inputHandler=s;}}stop(){process.stdout.write("\x1B[?2004l"),this._kittyProtocolActive&&(process.stdout.write("\x1B[<u"),this._kittyProtocolActive=false,pe(false)),this.stdinBuffer&&(this.stdinBuffer.destroy(),this.stdinBuffer=void 0),this.stdinDataHandler&&(process.stdin.removeListener("data",this.stdinDataHandler),this.stdinDataHandler=void 0),this.inputHandler=void 0,this.resizeHandler&&(process.stdout.removeListener("resize",this.resizeHandler),this.resizeHandler=void 0),process.stdin.pause(),process.stdin.setRawMode&&process.stdin.setRawMode(this.wasRaw);}write(e){if(process.stdout.write(e),this.writeLogPath)try{J__namespace.appendFileSync(this.writeLogPath,e,{encoding:"utf8"});}catch{}}get columns(){return process.stdout.columns||80}get rows(){return process.stdout.rows||24}moveBy(e){e>0?process.stdout.write(`\x1B[${e}B`):e<0&&process.stdout.write(`\x1B[${-e}A`);}hideCursor(){process.stdout.write("\x1B[?25l");}showCursor(){process.stdout.write("\x1B[?25h");}clearLine(){process.stdout.write("\x1B[K");}clearFromCursor(){process.stdout.write("\x1B[J");}clearScreen(){process.stdout.write("\x1B[2J\x1B[H");}setTitle(e){process.stdout.write(`\x1B]0;${e}\x07`);}};exports.Box=Oe;exports.CURSOR_MARKER=se;exports.CancellableLoader=Fe;exports.CombinedAutocompleteProvider=$e;exports.Container=Pe;exports.DEFAULT_EDITOR_KEYBINDINGS=pt;exports.Editor=ze;exports.EditorKeybindingsManager=ke;exports.Image=je;exports.Input=be;exports.Key=Qt;exports.Loader=ge;exports.Markdown=Ge;exports.ProcessTerminal=Je;exports.SelectList=ie;exports.SettingsList=Ye;exports.Spacer=Qe;exports.StdinBuffer=ve;exports.TUI=qe;exports.Text=me;exports.TruncatedText=Xe;exports.allocateImageId=os;exports.calculateImageRows=Lt;exports.deleteAllKittyImages=as;exports.deleteKittyImage=ls;exports.detectCapabilities=vt;exports.encodeITerm2=yt;exports.encodeKitty=Ct;exports.fuzzyFilter=ce;exports.fuzzyMatch=et;exports.getCapabilities=le;exports.getCellDimensions=bt;exports.getEditorKeybindings=q;exports.getGifDimensions=St;exports.getImageDimensions=Ue;exports.getJpegDimensions=It;exports.getPngDimensions=wt;exports.getWebpDimensions=kt;exports.imageFallback=Ae;exports.isFocusable=Ne;exports.isKeyRelease=De;exports.isKeyRepeat=es;exports.isKittyProtocolActive=Yt;exports.matchesKey=G;exports.parseKey=is;exports.renderImage=_e;exports.resetCapabilitiesCache=rs;exports.setCellDimensions=Ve;exports.setEditorKeybindings=ns;exports.setKittyProtocolActive=pe;exports.sliceByColumn=de;exports.truncateToWidth=O;exports.visibleWidth=w;exports.wrapTextWithAnsi=j;