@sourcegraph/amp 0.0.1759204900-gfe19a6 → 0.0.1759219286-g0d79d3
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/main.js +8 -8
- package/package.json +1 -1
package/dist/main.js
CHANGED
@@ -5440,7 +5440,7 @@ See https://ampcode.com/manual#toolboxes`);return Q[0]||oj}function mJ6(J,Q){let
|
|
5440
5440
|
`);J.command("use").argument("<tool-name>","The tool to invoke").summary("Invoke a tool with arguments or JSON input from stdin").description(Z).option("--only <field>","Extract only the specified field from the result").allowUnknownOption(!0).allowExcessArguments(!0).action(async function(X,Y,K){let q=K.optsWithGlobals(),G=await Q(K,q),z=0;await G.mcpService.initialized;let U=K.args.slice(1),F;if(fJ6()){let W=[];for await(let H of process.stdin)W.push(H);F=Buffer.concat(W).toString("utf-8").trim()}await xJ6({toolName:X,rawArgs:U,stdinInput:F,only:Y.only,threadDeps:G,stdout:process.stdout,stderr:process.stderr,exit:(W)=>{z=W}}),await G.asyncDispose(),G.cleanupTerminal(),process.exit(z)})}var uJ6=p(()=>{vS();FV();AJ6();IJ6();$J6();hJ6()});function pJ6(J){let Q=J.trim();if(Q==="quit"||Q==="exit")return"/quit";return J}import H29 from"node:fs";import dJ6 from"node:path";function cJ6(J){let Q=J.trim().replace(/^["']|["']$/g,"");if(Q=Q.replace(/\\(.)/g,"$1"),!/\.(png|jpe?g|gif|webp)$/i.test(Q))return null;if(!dJ6.isAbsolute(Q))return null;return a.debug("Extracted image path",{original:J,extracted:Q}),Q}function lJ6(J){try{let Q=dJ6.extname(J).toLowerCase(),Z=Oo1(Q);if(!Z)return a.warn("Unsupported image file extension",{ext:Q}),null;try{let X=H29.readFileSync(J);return B29(X,Z)}catch(X){a.error(`Failed to read image file ${J}:`,X)}}catch(Q){a.error("Error handling image file path",{imagePath:J,error:Q})}return null}function B29(J,Q){if(J.length>BR)return a.warn(`Image file too large: ${J.length} bytes (max: ${BR})`),null;return{type:"image",source:{type:"base64",data:J.toString("base64"),mediaType:Q}}}var iJ6=p(()=>{D0();$N()});function nJ6(J){return J.kind==="executable"}function aJ6(J){return J.kind==="markdown"}import{spawn as D29}from"node:child_process";import{promises as M29}from"node:fs";async function nb1(J,Q,Z,X={}){let{timeoutMs:Y=rJ6,signal:K}=X;try{let q=await Z.getCommand(J);if(!q)return{success:!1,output:"",error:`Command '${J}' not found`};if(!await Z.isCommandAvailable(J))return{success:!1,output:"",error:`Command '${J}' is not available for execution`};if(a.debug("Executing command",{commandName:J,filePath:q.filePath,args:Q}),aJ6(q))return await V29(q,Q);else if(nJ6(q))return await N29(q,Q,Y,K);else return{success:!1,output:"",error:"Unsupported command type"}}catch(q){return a.error("Failed to execute command",{commandName:J,error:q}),{success:!1,output:"",error:q instanceof Error?q.message:"Unknown error occurred"}}}async function V29(J,Q){try{if(Q.length>0)return{success:!1,output:"",error:"Markdown commands do not accept arguments"};let Z=await M29.readFile(J.filePath,"utf8");return{success:!0,output:(Z.length>OH?Z.slice(0,OH)+`
|
5441
5441
|
... (output truncated at ${OH} characters)`:Z).trim(),exitCode:0}}catch(Z){return{success:!1,output:"",error:Z instanceof Error?Z.message:"Failed to read markdown file"}}}async function N29(J,Q,Z=rJ6,X){return new Promise((Y)=>{let[K,q]=L29(J,Q);a.debug("Spawning command",{spawnCommand:K,spawnArgs:q.slice(0,10),filePath:J.filePath,timeoutMs:Z});let G=Mo1(X),z=!1,U=setTimeout(()=>{z=!0,G.abort(),a.warn("Command execution timed out",{commandName:J.name,timeoutMs:Z})},Z),F=D29(K,q,{stdio:["pipe","pipe","pipe"],signal:G.signal,detached:!0}),W=[],H=[],D=0;F.stdout?.on("data",(M)=>{let V=M.toString();if(D+=V.length,D<=OH)W.push(V);else{let N=OH-(D-V.length);if(N>0)W.push(V.slice(0,N))}}),F.stderr?.on("data",(M)=>{let V=M.toString();if(D+=V.length,D<=OH)H.push(V);else{let N=OH-(D-V.length);if(N>0)H.push(V.slice(0,N))}}),F.on("close",(M)=>{if(clearTimeout(U),z){Y({success:!1,output:W.join(""),error:`Command timed out after ${Z}ms`,exitCode:void 0});return}if(G.signal.aborted){Y({success:!1,output:W.join(""),error:"The command was aborted",exitCode:M??void 0});return}let V=M===0||M===1,N=W.join(""),L=H.join(""),O=N;if(!V&&!N.trim()&&L.trim())O=L;else if(L.trim())O+=N?`
|
5442
5442
|
${L}`:L;if(D>OH)O+=`
|
5443
|
-
... (output truncated at ${OH} characters)`;Y({success:V,output:O.trim(),error:!V?L.trim()||"Command failed":void 0,exitCode:M??void 0})}),F.on("error",(M)=>{clearTimeout(U);let V=M.message;if(z)V=`Command timed out after ${Z}ms`;else if(M.message.includes("operation was aborted")||M.name==="AbortError")V="The command was aborted";Y({success:!1,output:W.join(""),error:V})})})}function L29(J,Q){let{filePath:Z,interpreter:X,extension:Y}=J;if(process.platform==="win32")return A29(Z,X?[...X]:null,Y,Q);else return O29(Z,X?[...X]:null,Y,Q)}function O29(J,Q,Z,X){if(Q&&Q.length>0&&Q[0])return[Q[0],[...Q.slice(1),J,...X]];else return[J,X]}function A29(J,Q,Z,X){if(Q&&Q.length>0&&Q[0])return[Q[0],[...Q.slice(1),J,...X]];switch(Z.toLowerCase()){case".bat":case".cmd":return["cmd.exe",["/c",J,...X]];case".ps1":return["powershell.exe",["-ExecutionPolicy","Bypass","-File",J,...X]];case".exe":return[J,X];default:return[J,X]}}var OH=50000,rJ6=300000;var sJ6=p(()=>{WR();D0()});var oJ6=p(()=>{sJ6();mJ1()});var C41,Sz2,vz2,kz2,_z2,bz2,xz2,yz2,fz2,hz2,hm,gz2,mz2,uz2,pz2,dz2;var tJ6=p(()=>{C41=globalThis.window?.document!==void 0,Sz2=globalThis.process?.versions?.node!==void 0,vz2=globalThis.process?.versions?.bun!==void 0,kz2=globalThis.Deno?.version?.deno!==void 0,_z2=globalThis.process?.versions?.electron!==void 0,bz2=globalThis.navigator?.userAgent?.includes("jsdom")===!0,xz2=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,yz2=typeof DedicatedWorkerGlobalScope<"u"&&globalThis instanceof DedicatedWorkerGlobalScope,fz2=typeof SharedWorkerGlobalScope<"u"&&globalThis instanceof SharedWorkerGlobalScope,hz2=typeof ServiceWorkerGlobalScope<"u"&&globalThis instanceof ServiceWorkerGlobalScope,hm=globalThis.navigator?.userAgentData?.platform,gz2=hm==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",mz2=hm==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",uz2=hm==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",pz2=hm==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),dz2=hm==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android"});var S41={};N6(S41,{scrollUp:()=>m29,scrollDown:()=>u29,link:()=>n29,image:()=>a29,iTerm:()=>r29,exitAlternativeScreen:()=>l29,eraseUp:()=>g29,eraseStartLine:()=>f29,eraseScreen:()=>ab1,eraseLines:()=>x29,eraseLine:()=>ZQ6,eraseEndLine:()=>y29,eraseDown:()=>h29,enterAlternativeScreen:()=>c29,cursorUp:()=>JQ6,cursorTo:()=>w29,cursorShow:()=>b29,cursorSavePosition:()=>T29,cursorRestorePosition:()=>C29,cursorPrevLine:()=>k29,cursorNextLine:()=>v29,cursorMove:()=>I29,cursorLeft:()=>QQ6,cursorHide:()=>_29,cursorGetPosition:()=>S29,cursorForward:()=>$29,cursorDown:()=>E29,cursorBackward:()=>P29,clearTerminal:()=>d29,clearScreen:()=>p29,beep:()=>i29});import rb1 from"node:process";var U2="\x1B[",mm="\x1B]",$T="\x07",gm=";",eJ6,j29,R29,w29=(J,Q)=>{if(typeof J!=="number")throw TypeError("The `x` argument is required");if(typeof Q!=="number")return U2+(J+1)+"G";return U2+(Q+1)+gm+(J+1)+"H"},I29=(J,Q)=>{if(typeof J!=="number")throw TypeError("The `x` argument is required");let Z="";if(J<0)Z+=U2+-J+"D";else if(J>0)Z+=U2+J+"C";if(Q<0)Z+=U2+-Q+"A";else if(Q>0)Z+=U2+Q+"B";return Z},JQ6=(J=1)=>U2+J+"A",E29=(J=1)=>U2+J+"B",$29=(J=1)=>U2+J+"C",P29=(J=1)=>U2+J+"D",QQ6,T29,C29,S29,v29,k29,_29,b29,x29=(J)=>{let Q="";for(let Z=0;Z<J;Z++)Q+=ZQ6+(Z<J-1?JQ6():"");if(J)Q+=QQ6;return Q},y29,f29,ZQ6,h29,g29,ab1,m29,u29,p29="\x1Bc",d29,c29,l29,i29,n29=(J,Q)=>[mm,"8",gm,gm,Q,$T,J,mm,"8",gm,gm,$T].join(""),a29=(J,Q={})=>{let Z=`${mm}1337;File=inline=1`;if(Q.width)Z+=`;width=${Q.width}`;if(Q.height)Z+=`;height=${Q.height}`;if(Q.preserveAspectRatio===!1)Z+=";preserveAspectRatio=0";return Z+":"+Buffer.from(J).toString("base64")+$T},r29;var sb1=p(()=>{tJ6();eJ6=!C41&&rb1.env.TERM_PROGRAM==="Apple_Terminal",j29=!C41&&rb1.platform==="win32",R29=C41?()=>{throw Error("`process.cwd()` only works in Node.js, not the browser.")}:rb1.cwd,QQ6=U2+"G",T29=eJ6?"\x1B7":U2+"s",C29=eJ6?"\x1B8":U2+"u",S29=U2+"6n",v29=U2+"E",k29=U2+"F",_29=U2+"?25l",b29=U2+"?25h",y29=U2+"K",f29=U2+"1K",ZQ6=U2+"2K",h29=U2+"J",g29=U2+"1J",ab1=U2+"2J",m29=U2+"S",u29=U2+"T",d29=j29?`${ab1}${U2}0f`:`${ab1}${U2}3J${U2}H`,c29=U2+"?1049h",l29=U2+"?1049l",i29=$T,r29={setCwd:(J=R29())=>`${mm}50;CurrentDir=${J}${$T}`,annotation(J,Q={}){let Z=`${mm}1337;`,X=Q.x!==void 0,Y=Q.y!==void 0;if((X||Y)&&!(X&&Y&&Q.length!==void 0))throw Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");if(J=J.replaceAll("|",""),Z+=Q.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",Q.length>0)Z+=(X?[J,Q.length,Q.x,Q.y]:[Q.length,J]).join("|");else Z+=J;return Z+$T}}});var XQ6=p(()=>{sb1();sb1()});var ob1=e((rz2,YQ6)=>{YQ6.exports=(J,Q=process.argv)=>{let Z=J.startsWith("-")?"":J.length===1?"-":"--",X=Q.indexOf(Z+J),Y=Q.indexOf("--");return X!==-1&&(Y===-1||X<Y)}});var GQ6=e((sz2,qQ6)=>{var s29=o1("os"),KQ6=o1("tty"),kK=ob1(),{env:s5}=process,AV;if(kK("no-color")||kK("no-colors")||kK("color=false")||kK("color=never"))AV=0;else if(kK("color")||kK("colors")||kK("color=true")||kK("color=always"))AV=1;if("FORCE_COLOR"in s5)if(s5.FORCE_COLOR==="true")AV=1;else if(s5.FORCE_COLOR==="false")AV=0;else AV=s5.FORCE_COLOR.length===0?1:Math.min(parseInt(s5.FORCE_COLOR,10),3);function tb1(J){if(J===0)return!1;return{level:J,hasBasic:!0,has256:J>=2,has16m:J>=3}}function eb1(J,Q){if(AV===0)return 0;if(kK("color=16m")||kK("color=full")||kK("color=truecolor"))return 3;if(kK("color=256"))return 2;if(J&&!Q&&AV===void 0)return 0;let Z=AV||0;if(s5.TERM==="dumb")return Z;if(process.platform==="win32"){let X=s29.release().split(".");if(Number(X[0])>=10&&Number(X[2])>=10586)return Number(X[2])>=14931?3:2;return 1}if("CI"in s5){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((X)=>(X in s5))||s5.CI_NAME==="codeship")return 1;return Z}if("TEAMCITY_VERSION"in s5)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(s5.TEAMCITY_VERSION)?1:0;if(s5.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in s5){let X=parseInt((s5.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(s5.TERM_PROGRAM){case"iTerm.app":return X>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(s5.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(s5.TERM))return 1;if("COLORTERM"in s5)return 1;return Z}function o29(J){let Q=eb1(J,J&&J.isTTY);return tb1(Q)}qQ6.exports={supportsColor:o29,stdout:tb1(eb1(!0,KQ6.isatty(1))),stderr:tb1(eb1(!0,KQ6.isatty(2)))}});var FQ6=e((oz2,UQ6)=>{var t29=GQ6(),PT=ob1();function zQ6(J){if(/^\d{3,4}$/.test(J)){let Z=/(\d{1,2})(\d{2})/.exec(J)||[];return{major:0,minor:parseInt(Z[1],10),patch:parseInt(Z[2],10)}}let Q=(J||"").split(".").map((Z)=>parseInt(Z,10));return{major:Q[0],minor:Q[1],patch:Q[2]}}function Jx1(J){let{CI:Q,FORCE_HYPERLINK:Z,NETLIFY:X,TEAMCITY_VERSION:Y,TERM_PROGRAM:K,TERM_PROGRAM_VERSION:q,VTE_VERSION:G,TERM:z}=process.env;if(Z)return!(Z.length>0&&parseInt(Z,10)===0);if(PT("no-hyperlink")||PT("no-hyperlinks")||PT("hyperlink=false")||PT("hyperlink=never"))return!1;if(PT("hyperlink=true")||PT("hyperlink=always"))return!0;if(X)return!0;if(!t29.supportsColor(J))return!1;if(J&&!J.isTTY)return!1;if("WT_SESSION"in process.env)return!0;if(process.platform==="win32")return!1;if(Q)return!1;if(Y)return!1;if(K){let U=zQ6(q||"");switch(K){case"iTerm.app":if(U.major===3)return U.minor>=1;return U.major>3;case"WezTerm":return U.major>=20200620;case"vscode":return U.major>1||U.major===1&&U.minor>=72;case"ghostty":return!0}}if(G){if(G==="0.50.0")return!1;let U=zQ6(G);return U.major>0||U.minor>=50}switch(z){case"alacritty":return!0}return!1}UQ6.exports={supportsHyperlink:Jx1,stdout:Jx1(process.stdout),stderr:Jx1(process.stderr)}});function jV(J,Q,{target:Z="stdout",...X}={}){if(!v41.default[Z]){if(X.fallback===!1)return J;return typeof X.fallback==="function"?X.fallback(J,Q):`${J} (${Q})`}return S41.link(J,Q)}var v41;var WQ6=p(()=>{XQ6();v41=m6(FQ6(),1);jV.isSupported=v41.default.stdout;jV.stderr=(J,Q,Z={})=>jV(J,Q,{target:"stderr",...Z});jV.stderr.isSupported=v41.default.stderr});class Qx1{enabled;commandCounts=new Map;timer=null;bufferTimeMs=1e4;constructor(J){this.enabled=J;this.startTimer()}startTimer(){this.timer=setInterval(()=>{this.flushEvents()},this.bufferTimeMs)}async flushEvents(){if(this.commandCounts.size===0||!await this.enabled())return;let J=Array.from(this.commandCounts.entries()).map(([Q,Z])=>({feature:"cli.command",action:Q,source:{client:"cli",clientVersion:"0.0.1759204900-gfe19a6"},parameters:{metadata:{count:Z}},timestamp:Date.now()*1000}));this.commandCounts.clear();try{let Q=JSON.stringify(J);await U10(Q)}catch(Q){a.error("Failed to export command telemetry events",Q)}}async submit(J){if(!await this.enabled()||this.timer===null)return;let Q=this.commandCounts.get(J)||0;this.commandCounts.set(J,Q+1)}async dispose(){if(await this.flushEvents(),this.timer!==null)clearInterval(this.timer),this.timer=null}}var HQ6=p(()=>{D0();$B()});class GY{message;name;constructor(J){this.message=J;this.name="InformationMessage"}}function BQ6(J){if(J instanceof k41)return{title:"Cannot compact thread",description:"Thread has no messages to compact.",type:"error"};if(J instanceof GY)return{title:"Info",description:J.message,type:"info"};return a.warn("Unknown error type encountered",{name:J.name,message:J.message,stack:J.stack}),{title:"Error",description:J.message||"An unexpected error occurred.",type:"error"}}var k41;var Zx1=p(()=>{D0();k41=class k41 extends Error{constructor(J="Thread has no messages to compact"){super(J);this.name="NoMessagesToCompactError"}}});import{execSync as DQ6}from"node:child_process";import{rmdir as e29}from"node:fs/promises";import{tmpdir as J49}from"node:os";import MQ6 from"node:path";import{mkdtemp as Q49,readFile as Z49,unlink as X49,writeFile as wU2}from"fs/promises";class Xx1{commands;customRegistry;latestCustom=[];telemetrySubmitter;constructor(J=zC()){this.customRegistry=J,this._initBaseCommands(!1),this.customRegistry.commands.subscribe((Q)=>this.latestCustom=Q),this.telemetrySubmitter=new Qx1(async()=>{try{return(await A9()).settings["experimental.cli.commandTelemetry.enabled"]===!0}catch{return!1}}),Z2.pipe(g0((Q)=>Q.settings["internal.modes"]),d8()).subscribe((Q)=>{this._initBaseCommands(Q??!1)})}_initBaseCommands(J){if(this.commands={...Y49},J)Object.assign(this.commands,K49)}async execute(J,Q,Z=[],X){this.telemetrySubmitter.submit(J).catch((G)=>{a.debug("Failed to submit command telemetry",G)});let Y=this.commands[J];if(Y)return Y.execute(Q,Z);let K=this.latestCustom.find((G)=>G.name===J),q=await nb1(J,Z,this.customRegistry,{signal:X});if(q.success)if(K?.kind==="markdown"){Q.editorDispatch({type:"set-input",input:q.output});return}else{Q.worker.handle({type:"user:message",message:{content:[{type:"text",text:q.output}]}});return}return Error(q.error??`Command '${J}' failed`)}query(J,Q,Z){let X=J.toLowerCase(),Y=Object.values(this.commands).filter((q)=>q.name.toLowerCase().includes(X)).filter((q)=>{if(!Q||!q.isVisible)return!0;return q.isVisible(Q,Z)}),K=this.latestCustom.filter((q)=>q.available&&q.name.toLowerCase().includes(X)).map((q)=>({name:q.name,description:"Custom command",requiresArgs:q.kind==="executable",execute:(G,z)=>this.execute(q.name,G,z??[])}));return[...Y,...K]}async cleanup(){await this.telemetrySubmitter.dispose()}get(J){let Q=this.commands[J];if(Q)return Q;let Z=this.latestCustom.find((X)=>X.name===J);return{name:J,description:"Custom command",requiresArgs:Z?.kind==="executable",execute:(X,Y)=>this.execute(J,X,Y??[])}}}var Y49,K49;var VQ6=p(()=>{oJ6();D0();D4();UC();gw();u4();dU();pb1();$B();KD();X8();n0();WQ6();w41();db1();HQ6();Zx1();Y49={"generate-agent-file":{name:"generate-agent-file",description:`Generate an ${f5} file in the current workspace`,execute:async(J,Q)=>{J.worker.handle({type:"user:message",message:{content:[{type:"text",text:CY0}]}});return}},compact:{name:"compact",description:"Compact the thread. Optional: /compact [message] to queue a message after compaction",execute:async(J,Q)=>{if(J.thread.messages.length===0)return new k41;if(Q&&Q.length>0){let X=[{type:"text",text:Q.join(" ").trim()}],Y=J.takeImageAttachments?.()??[];if(Y.length>0)X.push(...Y);J.worker.handle({type:"user:message-queue:enqueue",message:{content:X}})}try{await J.worker.summarizeThread()}catch(Z){return Z instanceof Error?Z:Error("Failed to compact thread")}}},editor:{name:"editor",description:"Open $EDITOR to write a prompt",launchesWindow:!0,execute:async(J,Q)=>{try{let Z=process.env.EDITOR||process.env.VISUAL||"nano",X=await Q49(MQ6.join(J49(),"amp-edit-")),Y=MQ6.join(X,"message.amp.md");DQ6(`${Z} "${Y}"`,{stdio:"inherit"}),process.stdout.write("\x1B[?25l");try{let q=(await Z49(Y,"utf-8")).trim();if(q)J.editorDispatch({type:"set-input",input:q})}catch(K){if(K?.code==="ENOENT")return;return a.error("Failed to read temporary file",K),Error("Failed to read editor content")}try{await X49(Y),await e29(X)}catch(K){a.warn("Failed to clean up temporary file",K)}return}catch(Z){return a.error("Failed to open editor",Z),Error("Failed to open editor")}}},help:{name:"help",description:"Show help and hotkeys",execute:async(J,Q)=>{J.openHelp();return}},permissions:{name:"permissions",description:"Edit permission rules in $EDITOR, or `/permissions off|on` to toggle for this session",launchesWindow:!0,execute:async(J,Q)=>{if(Q&&Q.length>0){let Y=Q[0]?.trim().toLowerCase();switch(Y){case"on":try{return gU("dangerouslyAllowAll",!1),new GY("Amp is now following permissions rules for this session")}catch(K){return a.error("Failed to set dangerously allow all setting",K),Error("Failed to enable permissions for this session")}case"off":try{return gU("dangerouslyAllowAll",!0),new GY("Permissions disabled for this session - you will NOT be asked for confirmation before Amp runs a command.")}catch(K){return a.error("Failed to set dangerously allow all setting",K),Error("Failed to disable permissions for this session")}case"edit":break;default:return Error(`Invalid option: ${Y}. Use: on, off, or edit (or no argument for edit)`)}}let Z=await IT();if(Z===null)return Error("No editor found, please set $EDITOR to edit permissions");let X="";try{let Y={stdin:process.stdin,stdout:process.stdout,stderr:{write:(K)=>{return X=K.toString(),!0}},exit:(K)=>{if(K!==0)throw a.error("editPermissions exited with status",K),Error(X)},settingsFile:J.settingsFilePath,resolveEditor:IT};await P41(Y);return}catch(Y){a.error("failed to open permissions editor:",Y);let K=Y instanceof Error?`: ${Y.message}`:"";return Error(`Failed to open ${Z}${K}`)}finally{process.stdout.write("\x1B[?25l")}}},new:{name:"new",description:"Start a new thread",execute:async(J,Q)=>{try{await J.startNewThread();return}catch(Z){return a.error("Failed to start new thread",Z),Error("Failed to start new thread")}},isVisible:(J)=>J.messages.length!==0},continue:{name:"continue",description:"Continue an existing thread",requiresArgs:!1,requiresPicker:!0,execute:async(J,Q)=>{try{if(Q&&Q.length>0){let Z=Q[0]?.trim();if(!Z)return Error("Invalid thread ID provided");return await J.switchToThread(Z),new GY(`Switched to existing thread: ${Z}`)}await J.pickAndContinueThread();return}catch(Z){return a.error("Failed to continue thread",Z),Error("Failed to continue thread")}}},queue:{name:"queue",description:"Queue a message to send when inference completes. If no inference running, sends immediately.",requiresArgs:!0,execute:async(J,Q)=>{if(!Q||Q.length===0)return Error("Queue command requires a message argument. Usage: /queue <message>");let X=[{type:"text",text:Q.join(" ").trim()}],Y=J.takeImageAttachments?.()??[];if(Y.length>0)X.push(...Y);J.worker.handle({type:"user:message-queue:enqueue",message:{content:X}})}},dequeue:{name:"dequeue",description:"Dequeue all messages and restore them to the prompt editor",execute:async(J,Q)=>{let Z=J.thread.queuedMessages??[];if(Z.length===0)return;let Y=Z.map((K)=>{return K.queuedMessage.content.filter((G)=>G.type==="text").map((G)=>G.text).join("").trim()}).filter(Boolean).join(`
|
5443
|
+
... (output truncated at ${OH} characters)`;Y({success:V,output:O.trim(),error:!V?L.trim()||"Command failed":void 0,exitCode:M??void 0})}),F.on("error",(M)=>{clearTimeout(U);let V=M.message;if(z)V=`Command timed out after ${Z}ms`;else if(M.message.includes("operation was aborted")||M.name==="AbortError")V="The command was aborted";Y({success:!1,output:W.join(""),error:V})})})}function L29(J,Q){let{filePath:Z,interpreter:X,extension:Y}=J;if(process.platform==="win32")return A29(Z,X?[...X]:null,Y,Q);else return O29(Z,X?[...X]:null,Y,Q)}function O29(J,Q,Z,X){if(Q&&Q.length>0&&Q[0])return[Q[0],[...Q.slice(1),J,...X]];else return[J,X]}function A29(J,Q,Z,X){if(Q&&Q.length>0&&Q[0])return[Q[0],[...Q.slice(1),J,...X]];switch(Z.toLowerCase()){case".bat":case".cmd":return["cmd.exe",["/c",J,...X]];case".ps1":return["powershell.exe",["-ExecutionPolicy","Bypass","-File",J,...X]];case".exe":return[J,X];default:return[J,X]}}var OH=50000,rJ6=300000;var sJ6=p(()=>{WR();D0()});var oJ6=p(()=>{sJ6();mJ1()});var C41,Sz2,vz2,kz2,_z2,bz2,xz2,yz2,fz2,hz2,hm,gz2,mz2,uz2,pz2,dz2;var tJ6=p(()=>{C41=globalThis.window?.document!==void 0,Sz2=globalThis.process?.versions?.node!==void 0,vz2=globalThis.process?.versions?.bun!==void 0,kz2=globalThis.Deno?.version?.deno!==void 0,_z2=globalThis.process?.versions?.electron!==void 0,bz2=globalThis.navigator?.userAgent?.includes("jsdom")===!0,xz2=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,yz2=typeof DedicatedWorkerGlobalScope<"u"&&globalThis instanceof DedicatedWorkerGlobalScope,fz2=typeof SharedWorkerGlobalScope<"u"&&globalThis instanceof SharedWorkerGlobalScope,hz2=typeof ServiceWorkerGlobalScope<"u"&&globalThis instanceof ServiceWorkerGlobalScope,hm=globalThis.navigator?.userAgentData?.platform,gz2=hm==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",mz2=hm==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",uz2=hm==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",pz2=hm==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),dz2=hm==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android"});var S41={};N6(S41,{scrollUp:()=>m29,scrollDown:()=>u29,link:()=>n29,image:()=>a29,iTerm:()=>r29,exitAlternativeScreen:()=>l29,eraseUp:()=>g29,eraseStartLine:()=>f29,eraseScreen:()=>ab1,eraseLines:()=>x29,eraseLine:()=>ZQ6,eraseEndLine:()=>y29,eraseDown:()=>h29,enterAlternativeScreen:()=>c29,cursorUp:()=>JQ6,cursorTo:()=>w29,cursorShow:()=>b29,cursorSavePosition:()=>T29,cursorRestorePosition:()=>C29,cursorPrevLine:()=>k29,cursorNextLine:()=>v29,cursorMove:()=>I29,cursorLeft:()=>QQ6,cursorHide:()=>_29,cursorGetPosition:()=>S29,cursorForward:()=>$29,cursorDown:()=>E29,cursorBackward:()=>P29,clearTerminal:()=>d29,clearScreen:()=>p29,beep:()=>i29});import rb1 from"node:process";var U2="\x1B[",mm="\x1B]",$T="\x07",gm=";",eJ6,j29,R29,w29=(J,Q)=>{if(typeof J!=="number")throw TypeError("The `x` argument is required");if(typeof Q!=="number")return U2+(J+1)+"G";return U2+(Q+1)+gm+(J+1)+"H"},I29=(J,Q)=>{if(typeof J!=="number")throw TypeError("The `x` argument is required");let Z="";if(J<0)Z+=U2+-J+"D";else if(J>0)Z+=U2+J+"C";if(Q<0)Z+=U2+-Q+"A";else if(Q>0)Z+=U2+Q+"B";return Z},JQ6=(J=1)=>U2+J+"A",E29=(J=1)=>U2+J+"B",$29=(J=1)=>U2+J+"C",P29=(J=1)=>U2+J+"D",QQ6,T29,C29,S29,v29,k29,_29,b29,x29=(J)=>{let Q="";for(let Z=0;Z<J;Z++)Q+=ZQ6+(Z<J-1?JQ6():"");if(J)Q+=QQ6;return Q},y29,f29,ZQ6,h29,g29,ab1,m29,u29,p29="\x1Bc",d29,c29,l29,i29,n29=(J,Q)=>[mm,"8",gm,gm,Q,$T,J,mm,"8",gm,gm,$T].join(""),a29=(J,Q={})=>{let Z=`${mm}1337;File=inline=1`;if(Q.width)Z+=`;width=${Q.width}`;if(Q.height)Z+=`;height=${Q.height}`;if(Q.preserveAspectRatio===!1)Z+=";preserveAspectRatio=0";return Z+":"+Buffer.from(J).toString("base64")+$T},r29;var sb1=p(()=>{tJ6();eJ6=!C41&&rb1.env.TERM_PROGRAM==="Apple_Terminal",j29=!C41&&rb1.platform==="win32",R29=C41?()=>{throw Error("`process.cwd()` only works in Node.js, not the browser.")}:rb1.cwd,QQ6=U2+"G",T29=eJ6?"\x1B7":U2+"s",C29=eJ6?"\x1B8":U2+"u",S29=U2+"6n",v29=U2+"E",k29=U2+"F",_29=U2+"?25l",b29=U2+"?25h",y29=U2+"K",f29=U2+"1K",ZQ6=U2+"2K",h29=U2+"J",g29=U2+"1J",ab1=U2+"2J",m29=U2+"S",u29=U2+"T",d29=j29?`${ab1}${U2}0f`:`${ab1}${U2}3J${U2}H`,c29=U2+"?1049h",l29=U2+"?1049l",i29=$T,r29={setCwd:(J=R29())=>`${mm}50;CurrentDir=${J}${$T}`,annotation(J,Q={}){let Z=`${mm}1337;`,X=Q.x!==void 0,Y=Q.y!==void 0;if((X||Y)&&!(X&&Y&&Q.length!==void 0))throw Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");if(J=J.replaceAll("|",""),Z+=Q.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",Q.length>0)Z+=(X?[J,Q.length,Q.x,Q.y]:[Q.length,J]).join("|");else Z+=J;return Z+$T}}});var XQ6=p(()=>{sb1();sb1()});var ob1=e((rz2,YQ6)=>{YQ6.exports=(J,Q=process.argv)=>{let Z=J.startsWith("-")?"":J.length===1?"-":"--",X=Q.indexOf(Z+J),Y=Q.indexOf("--");return X!==-1&&(Y===-1||X<Y)}});var GQ6=e((sz2,qQ6)=>{var s29=o1("os"),KQ6=o1("tty"),kK=ob1(),{env:s5}=process,AV;if(kK("no-color")||kK("no-colors")||kK("color=false")||kK("color=never"))AV=0;else if(kK("color")||kK("colors")||kK("color=true")||kK("color=always"))AV=1;if("FORCE_COLOR"in s5)if(s5.FORCE_COLOR==="true")AV=1;else if(s5.FORCE_COLOR==="false")AV=0;else AV=s5.FORCE_COLOR.length===0?1:Math.min(parseInt(s5.FORCE_COLOR,10),3);function tb1(J){if(J===0)return!1;return{level:J,hasBasic:!0,has256:J>=2,has16m:J>=3}}function eb1(J,Q){if(AV===0)return 0;if(kK("color=16m")||kK("color=full")||kK("color=truecolor"))return 3;if(kK("color=256"))return 2;if(J&&!Q&&AV===void 0)return 0;let Z=AV||0;if(s5.TERM==="dumb")return Z;if(process.platform==="win32"){let X=s29.release().split(".");if(Number(X[0])>=10&&Number(X[2])>=10586)return Number(X[2])>=14931?3:2;return 1}if("CI"in s5){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((X)=>(X in s5))||s5.CI_NAME==="codeship")return 1;return Z}if("TEAMCITY_VERSION"in s5)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(s5.TEAMCITY_VERSION)?1:0;if(s5.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in s5){let X=parseInt((s5.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(s5.TERM_PROGRAM){case"iTerm.app":return X>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(s5.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(s5.TERM))return 1;if("COLORTERM"in s5)return 1;return Z}function o29(J){let Q=eb1(J,J&&J.isTTY);return tb1(Q)}qQ6.exports={supportsColor:o29,stdout:tb1(eb1(!0,KQ6.isatty(1))),stderr:tb1(eb1(!0,KQ6.isatty(2)))}});var FQ6=e((oz2,UQ6)=>{var t29=GQ6(),PT=ob1();function zQ6(J){if(/^\d{3,4}$/.test(J)){let Z=/(\d{1,2})(\d{2})/.exec(J)||[];return{major:0,minor:parseInt(Z[1],10),patch:parseInt(Z[2],10)}}let Q=(J||"").split(".").map((Z)=>parseInt(Z,10));return{major:Q[0],minor:Q[1],patch:Q[2]}}function Jx1(J){let{CI:Q,FORCE_HYPERLINK:Z,NETLIFY:X,TEAMCITY_VERSION:Y,TERM_PROGRAM:K,TERM_PROGRAM_VERSION:q,VTE_VERSION:G,TERM:z}=process.env;if(Z)return!(Z.length>0&&parseInt(Z,10)===0);if(PT("no-hyperlink")||PT("no-hyperlinks")||PT("hyperlink=false")||PT("hyperlink=never"))return!1;if(PT("hyperlink=true")||PT("hyperlink=always"))return!0;if(X)return!0;if(!t29.supportsColor(J))return!1;if(J&&!J.isTTY)return!1;if("WT_SESSION"in process.env)return!0;if(process.platform==="win32")return!1;if(Q)return!1;if(Y)return!1;if(K){let U=zQ6(q||"");switch(K){case"iTerm.app":if(U.major===3)return U.minor>=1;return U.major>3;case"WezTerm":return U.major>=20200620;case"vscode":return U.major>1||U.major===1&&U.minor>=72;case"ghostty":return!0}}if(G){if(G==="0.50.0")return!1;let U=zQ6(G);return U.major>0||U.minor>=50}switch(z){case"alacritty":return!0}return!1}UQ6.exports={supportsHyperlink:Jx1,stdout:Jx1(process.stdout),stderr:Jx1(process.stderr)}});function jV(J,Q,{target:Z="stdout",...X}={}){if(!v41.default[Z]){if(X.fallback===!1)return J;return typeof X.fallback==="function"?X.fallback(J,Q):`${J} (${Q})`}return S41.link(J,Q)}var v41;var WQ6=p(()=>{XQ6();v41=m6(FQ6(),1);jV.isSupported=v41.default.stdout;jV.stderr=(J,Q,Z={})=>jV(J,Q,{target:"stderr",...Z});jV.stderr.isSupported=v41.default.stderr});class Qx1{enabled;commandCounts=new Map;timer=null;bufferTimeMs=1e4;constructor(J){this.enabled=J;this.startTimer()}startTimer(){this.timer=setInterval(()=>{this.flushEvents()},this.bufferTimeMs)}async flushEvents(){if(this.commandCounts.size===0||!await this.enabled())return;let J=Array.from(this.commandCounts.entries()).map(([Q,Z])=>({feature:"cli.command",action:Q,source:{client:"cli",clientVersion:"0.0.1759219286-g0d79d3"},parameters:{metadata:{count:Z}},timestamp:Date.now()*1000}));this.commandCounts.clear();try{let Q=JSON.stringify(J);await U10(Q)}catch(Q){a.error("Failed to export command telemetry events",Q)}}async submit(J){if(!await this.enabled()||this.timer===null)return;let Q=this.commandCounts.get(J)||0;this.commandCounts.set(J,Q+1)}async dispose(){if(await this.flushEvents(),this.timer!==null)clearInterval(this.timer),this.timer=null}}var HQ6=p(()=>{D0();$B()});class GY{message;name;constructor(J){this.message=J;this.name="InformationMessage"}}function BQ6(J){if(J instanceof k41)return{title:"Cannot compact thread",description:"Thread has no messages to compact.",type:"error"};if(J instanceof GY)return{title:"Info",description:J.message,type:"info"};return a.warn("Unknown error type encountered",{name:J.name,message:J.message,stack:J.stack}),{title:"Error",description:J.message||"An unexpected error occurred.",type:"error"}}var k41;var Zx1=p(()=>{D0();k41=class k41 extends Error{constructor(J="Thread has no messages to compact"){super(J);this.name="NoMessagesToCompactError"}}});import{execSync as DQ6}from"node:child_process";import{rmdir as e29}from"node:fs/promises";import{tmpdir as J49}from"node:os";import MQ6 from"node:path";import{mkdtemp as Q49,readFile as Z49,unlink as X49,writeFile as wU2}from"fs/promises";class Xx1{commands;customRegistry;latestCustom=[];telemetrySubmitter;constructor(J=zC()){this.customRegistry=J,this._initBaseCommands(!1),this.customRegistry.commands.subscribe((Q)=>this.latestCustom=Q),this.telemetrySubmitter=new Qx1(async()=>{try{return(await A9()).settings["experimental.cli.commandTelemetry.enabled"]===!0}catch{return!1}}),Z2.pipe(g0((Q)=>Q.settings["internal.modes"]),d8()).subscribe((Q)=>{this._initBaseCommands(Q??!1)})}_initBaseCommands(J){if(this.commands={...Y49},J)Object.assign(this.commands,K49)}async execute(J,Q,Z=[],X){this.telemetrySubmitter.submit(J).catch((G)=>{a.debug("Failed to submit command telemetry",G)});let Y=this.commands[J];if(Y)return Y.execute(Q,Z);let K=this.latestCustom.find((G)=>G.name===J),q=await nb1(J,Z,this.customRegistry,{signal:X});if(q.success)if(K?.kind==="markdown"){Q.editorDispatch({type:"set-input",input:q.output});return}else{Q.worker.handle({type:"user:message",message:{content:[{type:"text",text:q.output}]}});return}return Error(q.error??`Command '${J}' failed`)}query(J,Q,Z){let X=J.toLowerCase(),Y=Object.values(this.commands).filter((q)=>q.name.toLowerCase().includes(X)).filter((q)=>{if(!Q||!q.isVisible)return!0;return q.isVisible(Q,Z)}),K=this.latestCustom.filter((q)=>q.available&&q.name.toLowerCase().includes(X)).map((q)=>({name:q.name,description:"Custom command",requiresArgs:q.kind==="executable",execute:(G,z)=>this.execute(q.name,G,z??[])}));return[...Y,...K]}async cleanup(){await this.telemetrySubmitter.dispose()}get(J){let Q=this.commands[J];if(Q)return Q;let Z=this.latestCustom.find((X)=>X.name===J);return{name:J,description:"Custom command",requiresArgs:Z?.kind==="executable",execute:(X,Y)=>this.execute(J,X,Y??[])}}}var Y49,K49;var VQ6=p(()=>{oJ6();D0();D4();UC();gw();u4();dU();pb1();$B();KD();X8();n0();WQ6();w41();db1();HQ6();Zx1();Y49={"generate-agent-file":{name:"generate-agent-file",description:`Generate an ${f5} file in the current workspace`,execute:async(J,Q)=>{J.worker.handle({type:"user:message",message:{content:[{type:"text",text:CY0}]}});return}},compact:{name:"compact",description:"Compact the thread. Optional: /compact [message] to queue a message after compaction",execute:async(J,Q)=>{if(J.thread.messages.length===0)return new k41;if(Q&&Q.length>0){let X=[{type:"text",text:Q.join(" ").trim()}],Y=J.takeImageAttachments?.()??[];if(Y.length>0)X.push(...Y);J.worker.handle({type:"user:message-queue:enqueue",message:{content:X}})}try{await J.worker.summarizeThread()}catch(Z){return Z instanceof Error?Z:Error("Failed to compact thread")}}},editor:{name:"editor",description:"Open $EDITOR to write a prompt",launchesWindow:!0,execute:async(J,Q)=>{try{let Z=process.env.EDITOR||process.env.VISUAL||"nano",X=await Q49(MQ6.join(J49(),"amp-edit-")),Y=MQ6.join(X,"message.amp.md");DQ6(`${Z} "${Y}"`,{stdio:"inherit"}),process.stdout.write("\x1B[?25l");try{let q=(await Z49(Y,"utf-8")).trim();if(q)J.editorDispatch({type:"set-input",input:q})}catch(K){if(K?.code==="ENOENT")return;return a.error("Failed to read temporary file",K),Error("Failed to read editor content")}try{await X49(Y),await e29(X)}catch(K){a.warn("Failed to clean up temporary file",K)}return}catch(Z){return a.error("Failed to open editor",Z),Error("Failed to open editor")}}},help:{name:"help",description:"Show help and hotkeys",execute:async(J,Q)=>{J.openHelp();return}},permissions:{name:"permissions",description:"Edit permission rules in $EDITOR, or `/permissions off|on` to toggle for this session",launchesWindow:!0,execute:async(J,Q)=>{if(Q&&Q.length>0){let Y=Q[0]?.trim().toLowerCase();switch(Y){case"on":try{return gU("dangerouslyAllowAll",!1),new GY("Amp is now following permissions rules for this session")}catch(K){return a.error("Failed to set dangerously allow all setting",K),Error("Failed to enable permissions for this session")}case"off":try{return gU("dangerouslyAllowAll",!0),new GY("Permissions disabled for this session - you will NOT be asked for confirmation before Amp runs a command.")}catch(K){return a.error("Failed to set dangerously allow all setting",K),Error("Failed to disable permissions for this session")}case"edit":break;default:return Error(`Invalid option: ${Y}. Use: on, off, or edit (or no argument for edit)`)}}let Z=await IT();if(Z===null)return Error("No editor found, please set $EDITOR to edit permissions");let X="";try{let Y={stdin:process.stdin,stdout:process.stdout,stderr:{write:(K)=>{return X=K.toString(),!0}},exit:(K)=>{if(K!==0)throw a.error("editPermissions exited with status",K),Error(X)},settingsFile:J.settingsFilePath,resolveEditor:IT};await P41(Y);return}catch(Y){a.error("failed to open permissions editor:",Y);let K=Y instanceof Error?`: ${Y.message}`:"";return Error(`Failed to open ${Z}${K}`)}finally{process.stdout.write("\x1B[?25l")}}},new:{name:"new",description:"Start a new thread",execute:async(J,Q)=>{try{await J.startNewThread();return}catch(Z){return a.error("Failed to start new thread",Z),Error("Failed to start new thread")}},isVisible:(J)=>J.messages.length!==0},continue:{name:"continue",description:"Continue an existing thread",requiresArgs:!1,requiresPicker:!0,execute:async(J,Q)=>{try{if(Q&&Q.length>0){let Z=Q[0]?.trim();if(!Z)return Error("Invalid thread ID provided");return await J.switchToThread(Z),new GY(`Switched to existing thread: ${Z}`)}await J.pickAndContinueThread();return}catch(Z){return a.error("Failed to continue thread",Z),Error("Failed to continue thread")}}},queue:{name:"queue",description:"Queue a message to send when inference completes. If no inference running, sends immediately.",requiresArgs:!0,execute:async(J,Q)=>{if(!Q||Q.length===0)return Error("Queue command requires a message argument. Usage: /queue <message>");let X=[{type:"text",text:Q.join(" ").trim()}],Y=J.takeImageAttachments?.()??[];if(Y.length>0)X.push(...Y);J.worker.handle({type:"user:message-queue:enqueue",message:{content:X}})}},dequeue:{name:"dequeue",description:"Dequeue all messages and restore them to the prompt editor",execute:async(J,Q)=>{let Z=J.thread.queuedMessages??[];if(Z.length===0)return;let Y=Z.map((K)=>{return K.queuedMessage.content.filter((G)=>G.type==="text").map((G)=>G.text).join("").trim()}).filter(Boolean).join(`
|
5444
5444
|
`).trim();await J.worker.handle({type:"user:message-queue:discard"}),J.editorDispatch({type:"set-input",input:Y})},isVisible:(J)=>(J.queuedMessages?.length??0)>0},share:{name:"share",description:"Set thread visibility - `/share private|workspace|group|public`",execute:async(J,Q)=>{let{thread:Z,threadSyncService:X,ampURL:Y}=J;if(!Q||Q.length===0)return Error("Please specify a visibility option: private, workspace, group, or public");let K=dv(new URL(Y),Z.id).toString(),G=`Thread URL: ${jV(K,K,{fallback:()=>K})}`,z=Q[0]?.trim().toLowerCase(),U;switch(z){case"private":U={visibility:"private",sharedGroupIDs:[]};break;case"workspace":U={visibility:"thread_workspace_shared"};break;case"group":U={visibility:"private",sharedGroupIDs:[],shareWithAllCreatorGroups:!0};break;case"public":U={visibility:"public"};break;default:return Error(`Invalid visibility option: ${z}. Use: private, workspace, group, or public`)}try{return await X.updateThreadMeta(Z.id,U),new GY(`${G}
|
5445
5445
|
|
5446
5446
|
This thread's visibility has been updated to: ${z}`)}catch(F){let W=F instanceof Error?F.message:String(F);if(W.includes("no-workspace"))return Error("You are not a member of any workspace.");if(W.includes("groups-disabled"))return Error("The groups feature is not enabled for this workspace.");if(W.includes("no-groups"))return Error("You are not a member of any groups.");return a.error("Unexpected failure to update thread visibility",F),Error(`Failed to update thread visibility for ${Z.id}`)}}},browser:{name:"browser",description:"Open the current thread in your browser",requiresArgs:!1,execute:async(J,Q)=>{let{thread:Z,ampURL:X}=J,Y=dv(new URL(X),Z.id).toString();try{return await wT(Y),new GY("Thread opened in browser")}catch(K){a.error("Failed to open browser",{error:K});let q=jV(Y,Y,{fallback:()=>Y});return new GY(`Could not open browser automatically. Thread URL: ${q}`)}},isVisible:(J)=>J.messages.length!==0},settings:{name:"settings",description:"Open CLI settings file in $EDITOR",launchesWindow:!0,execute:async(J)=>{let Q=await IT();if(Q===null)return Error("No editor found, please set $EDITOR to edit settings");try{DQ6(`${Q} "${J.settingsFilePath}"`,{stdio:"inherit"}),process.stdout.write("\x1B[?25l");return}catch(Z){return a.error("Failed to open settings in editor",Z),Error(`Failed to open ${Q}`)}}},"agent-files":{name:"agent-files",description:"List AGENTS.md guidance files in use for the current thread",execute:async(J)=>{try{let Q=await J.getGuidanceFiles();if(Q.length===0)return new GY("No guidance files are currently in use for this thread.");let Z=Q.length,X=`Agent ${VX(Z,"File")} (${Z}):`,Y=Q.map((K)=>` • ${QJ(DX(K.uri))} (${K.type})`).join(`
|
@@ -5450,7 +5450,7 @@ ${Y}`)}catch(Q){return a.error("Failed to get guidance files",Q),Error("Failed t
|
|
5450
5450
|
Available modes: ${U}`)}let Y=Q[0]?.trim();if(!Y)return Error("Mode value cannot be empty");let K=Y,q=fC.map((z)=>z.mode);if(!aU.includes(K))return Error(`Invalid mode: ${K}. Valid modes: ${q.join(", ")}`);await J.settingsStorage.set("experimental.agentMode",K);let G=CQ1(K);return new GY(`Mode set to: ${K}${G?` - ${G}`:""}`)}catch(Z){return a.error("Failed to access agent mode setting",Z),Error("Failed to access agent mode setting")}}}}});import{execFile as b41}from"node:child_process";import{platform as NQ6}from"node:os";import{promisify as q49}from"node:util";class LQ6{capabilities=null;pendingReadPromise=null;readResolve=null;readTimeout=null;setCapabilities(J){this.capabilities=J}isOsc52Supported(){return this.capabilities?.osc52??!1}async commandExists(J){try{return await _41("which",[J]),!0}catch{return!1}}async writeToPbcopy(J){try{let Q=b41("pbcopy");return Q.stdin?.write(J),Q.stdin?.end(),await new Promise((Z,X)=>{Q.on("close",(Y)=>{if(Y===0)Z();else X(Error(`pbcopy exited with code ${Y}`))})}),!0}catch{return!1}}async writeToWlCopy(J){try{let Q=b41("wl-copy");return Q.stdin?.write(J),Q.stdin?.end(),await new Promise((Z,X)=>{Q.on("close",(Y)=>{if(Y===0)Z();else X(Error(`wl-copy exited with code ${Y}`))})}),!0}catch{return!1}}async writeToXclip(J){try{let Q=b41("xclip",["-selection","clipboard"]);return Q.stdin?.write(J),Q.stdin?.end(),await new Promise((Z,X)=>{Q.on("close",(Y)=>{if(Y===0)Z();else X(Error(`xclip exited with code ${Y}`))})}),!0}catch{return!1}}async readFromOSC52(){if(!this.isOsc52Supported())return null;if(this.pendingReadPromise)return this.pendingReadPromise;this.pendingReadPromise=new Promise((Q)=>{this.readResolve=Q,this.readTimeout=setTimeout(()=>{this.readResolve=null,this.pendingReadPromise=null,Q(null)},2000),process.stdout.write(z49)});let J=await this.pendingReadPromise;return this.pendingReadPromise=null,J}handleOSC52Response(J){if(this.readResolve&&this.readTimeout){clearTimeout(this.readTimeout),this.readTimeout=null;try{let Q=Buffer.from(J,"base64").toString("utf8");this.readResolve(Q)}catch{this.readResolve(null)}this.readResolve=null,this.pendingReadPromise=null}}async readFromPbpaste(){try{let{stdout:J}=await _41("pbpaste");return J}catch{return null}}async readFromWlPaste(){try{let{stdout:J}=await _41("wl-paste",["--no-newline"]);return J}catch{return null}}async readFromXclip(){try{let{stdout:J}=await _41("xclip",["-selection","clipboard","-o"]);return J}catch{return null}}async readText(){if(this.isOsc52Supported()){let Q=await this.readFromOSC52();if(Q!==null)return Q}if(NQ6()==="darwin"){let Q=await this.readFromPbpaste();if(Q!==null)return Q}else{if(await this.commandExists("wl-paste")){let Q=await this.readFromWlPaste();if(Q!==null)return Q}if(await this.commandExists("xclip")){let Q=await this.readFromXclip();if(Q!==null)return Q}}return null}async writeText(J){if(this.isOsc52Supported()){let Z=Buffer.from(J).toString("base64"),X=G49(Z);process.stdout.write(X);return}if(NQ6()==="darwin"){if(await this.writeToPbcopy(J))return}else{if(await this.commandExists("wl-copy")&&await this.writeToWlCopy(J))return;if(await this.commandExists("xclip")&&await this.writeToXclip(J))return}}}var _41,G49=(J)=>`\x1B]52;c;${J}\x1B\\`,z49="\x1B]52;c;?\x1B\\",AG;var TT=p(()=>{_41=q49(b41);AG=new LQ6});function U49(J){let Q=(J&4)!==0,Z=(J&8)!==0,X=(J&16)!==0,Y=(J&32)!==0,K=J&-61,q="unknown";switch(K){case 0:q="left";break;case 1:q="middle";break;case 2:q="right";break;case 64:q="wheel_up";break;case 65:q="wheel_down";break;default:q="unknown";break}return{button:q,modifiers:{shift:Q,ctrl:X,alt:Z,meta:!1},motion:Y}}function um(J,Q,Z,X){let Y=U49(J.button),K;if(Y.button==="wheel_up"||Y.button==="wheel_down")K="scroll";else if(Y.motion)K="move";else if(J.pressed)K="press";else K="release";let q,G;if(Q&&Z&&X)q=(J.x-1)/Z,G=(J.y-1)/X;else q=J.x-1,G=J.y-1;return{type:"mouse",action:K,button:Y.button,x:q,y:G,modifiers:Y.modifiers,drag:Y.motion&&J.pressed}}var R5;var CT=p(()=>{R5={DEFAULT:"default",POINTER:"pointer",TEXT:"text",WAIT:"wait",CROSSHAIR:"crosshair",HELP:"help",MOVE:"move",NOT_ALLOWED:"not-allowed",PROGRESS:"progress",CELL:"cell",CONTEXT_MENU:"context-menu",COPY:"copy",ALIAS:"alias",ZOOM_IN:"zoom-in",ZOOM_OUT:"zoom-out",GRAB:"grab",GRABBING:"grabbing",N_RESIZE:"n-resize",S_RESIZE:"s-resize",E_RESIZE:"e-resize",W_RESIZE:"w-resize",NE_RESIZE:"ne-resize",NW_RESIZE:"nw-resize",SE_RESIZE:"se-resize",SW_RESIZE:"sw-resize",COL_RESIZE:"col-resize",ROW_RESIZE:"row-resize"}});function g9(J=" ",Q={},Z=1,X){return{char:J,style:{...Q},width:Z,hyperlink:X}}function F49(J,Q){return J.char===Q.char&&J.width===Q.width&&W49(J.style,Q.style)&&x41(J.hyperlink,Q.hyperlink)}function W49(J,Q){return OQ6(J.fg,Q.fg)&&OQ6(J.bg,Q.bg)&&J.bold===Q.bold&&J.italic===Q.italic&&J.underline===Q.underline&&J.strikethrough===Q.strikethrough&&J.reverse===Q.reverse&&J.dim===Q.dim}function x41(J,Q){if(J===Q)return!0;if(J===void 0||Q===void 0)return!1;return J.uri===Q.uri&&J.id===Q.id}function OQ6(J,Q){if(J===Q)return!0;if(J===void 0||Q===void 0)return!1;if(J.type!==Q.type)return!1;if(J.alpha!==Q.alpha)return!1;switch(J.type){case"default":return!0;case"index":return Q.value===J.value;case"rgb":{let Z=Q.value;return Z.r===J.value.r&&Z.g===J.value.g&&Z.b===J.value.b}default:return!1}}function AQ6(J){switch(J.type){case"rgb":return J.value;case"index":return{0:{r:0,g:0,b:0},1:{r:128,g:0,b:0},2:{r:0,g:128,b:0},3:{r:128,g:128,b:0},4:{r:0,g:0,b:128},5:{r:128,g:0,b:128},6:{r:0,g:128,b:128},7:{r:192,g:192,b:192},8:{r:128,g:128,b:128},9:{r:255,g:0,b:0},10:{r:0,g:255,b:0},11:{r:255,g:255,b:0},12:{r:0,g:0,b:255},13:{r:255,g:0,b:255},14:{r:0,g:255,b:255},15:{r:255,g:255,b:255}}[J.value]||{r:128,g:128,b:128};case"default":return null;default:return null}}function jQ6(J,Q){let Z=J.alpha??1;if(Z>=1)return J;if(Z<=0)return Q;let X=AQ6(J),Y=AQ6(Q);if(!X||!Y)return Z>0.5?J:Q;let K=Math.round(X.r*Z+Y.r*(1-Z)),q=Math.round(X.g*Z+Y.g*(1-Z)),G=Math.round(X.b*Z+Y.b*(1-Z));return{type:"rgb",value:{r:Math.max(0,Math.min(255,K)),g:Math.max(0,Math.min(255,q)),b:Math.max(0,Math.min(255,G))}}}function H49(J,Q){let Z={...Q};if(J.fg)if(Q.fg)Z.fg=jQ6(J.fg,Q.fg);else Z.fg=J.fg;if(J.bg)if(J.bg.alpha===0){if(Q.bg)Z.bg=Q.bg}else if(Q.bg)Z.bg=jQ6(J.bg,Q.bg);else Z.bg=J.bg;if(J.bold!==void 0)Z.bold=J.bold;if(J.italic!==void 0)Z.italic=J.italic;if(J.underline!==void 0)Z.underline=J.underline;if(J.strikethrough!==void 0)Z.strikethrough=J.strikethrough;if(J.reverse!==void 0)Z.reverse=J.reverse;if(J.dim!==void 0)Z.dim=J.dim;return Z}class Yx1{cells;width;height;constructor(J,Q){this.width=J,this.height=Q,this.cells=[],this.resize(J,Q)}getSize(){return{width:this.width,height:this.height}}resize(J,Q){this.width=J,this.height=Q,this.cells=Array(Q).fill(null).map(()=>Array(J).fill(null).map(()=>AH))}getCell(J,Q){if(J<0||J>=this.width||Q<0||Q>=this.height)return null;return this.cells[Q]?.[J]||null}setCell(J,Q,Z){if(J<0||J>=this.width||Q<0||Q>=this.height)return;if(Z.style.fg&&Z.style.fg.alpha!==void 0&&Z.style.fg.alpha<1||Z.style.bg&&Z.style.bg.alpha!==void 0&&Z.style.bg.alpha<1){let Y=this.cells[Q]?.[J]||AH,K=H49(Z.style,Y.style);if(this.cells[Q])this.cells[Q][J]={char:Z.char,style:K,width:Z.width}}else if(this.cells[Q])this.cells[Q][J]={...Z,style:{...Z.style}};if(Z.width>1){for(let Y=1;Y<Z.width;Y++)if(J+Y<this.width&&this.cells[Q])this.cells[Q][J+Y]=AH}}setChar(J,Q,Z,X,Y){this.setCell(J,Q,g9(Z,X,Y))}clear(){for(let J=0;J<this.height;J++)for(let Q=0;Q<this.width;Q++){let Z=this.cells[J];if(Z)Z[Q]=AH}}fill(J,Q,Z,X,Y=" ",K={}){let q=g9(Y,K);for(let G=0;G<X;G++)for(let z=0;z<Z;z++)this.setCell(J+z,Q+G,q)}copyTo(J){let{width:Q,height:Z}=J.getSize();for(let X=0;X<Math.min(this.height,Z);X++)for(let Y=0;Y<Math.min(this.width,Q);Y++){let K=this.getCell(Y,X);if(K)J.setCell(Y,X,K)}}getCells(){return this.cells.map((J)=>J.map((Q)=>({...Q,style:{...Q.style}})))}setCursor(J,Q){}clearCursor(){}setCursorShape(J){}markForRefresh(){}}class dm{frontBuffer;backBuffer;width;height;needsFullRefresh=!1;cursorPosition=null;cursorVisible=!1;cursorShape=0;constructor(J=80,Q=24){this.width=J,this.height=Q,this.frontBuffer=new Yx1(J,Q),this.backBuffer=new Yx1(J,Q)}getSize(){return{width:this.width,height:this.height}}resize(J,Q){this.width=J,this.height=Q,this.frontBuffer.resize(J,Q),this.backBuffer.resize(J,Q)}getBuffer(){return this.backBuffer}getCell(J,Q){return this.backBuffer.getCell(J,Q)}setCell(J,Q,Z){this.backBuffer.setCell(J,Q,Z)}setChar(J,Q,Z,X,Y){this.backBuffer.setChar(J,Q,Z,X,Y)}clear(){this.backBuffer.clear()}fill(J,Q,Z,X,Y=" ",K={}){this.backBuffer.fill(J,Q,Z,X,Y,K)}present(){let J=this.frontBuffer;this.frontBuffer=this.backBuffer,this.backBuffer=J,this.processWideCharacters()}processWideCharacters(){for(let J=0;J<this.height;J++)for(let Q=0;Q<this.width;Q++){let Z=this.frontBuffer.getCell(Q,J);if(Z&&Z.width>1){for(let X=1;X<Z.width;X++)if(Q+X<this.width)this.frontBuffer.setCell(Q+X,J,AH)}}}getDiff(){let J=[];if(this.needsFullRefresh){for(let Q=0;Q<this.height;Q++)for(let Z=0;Z<this.width;Z++){let X=this.backBuffer.getCell(Z,Q);if(J.push({x:Z,y:Q,cell:X||AH}),X&&X.width>1)Z+=X.width-1}return this.needsFullRefresh=!1,J}for(let Q=0;Q<this.height;Q++)for(let Z=0;Z<this.width;Z++){let X=this.frontBuffer.getCell(Z,Q),Y=this.backBuffer.getCell(Z,Q);if(X===AH&&Y===AH)continue;if(!X||!Y||!F49(X,Y)){if(J.push({x:Z,y:Q,cell:Y||AH}),Y&&(Y.char.length>1||/[\u{1F000}-\u{1FFFF}]/u.test(Y.char)));if(Y&&Y.width>1)Z+=Y.width-1}else if(Y.char.length>1||/[\u{1F000}-\u{1FFFF}]/u.test(Y.char)){if(Y.width>1)Z+=Y.width-1}}return J}getFrontBuffer(){return this.frontBuffer}getBackBuffer(){return this.backBuffer}markForRefresh(){this.needsFullRefresh=!0}setCursor(J,Q){this.cursorPosition={x:J,y:Q},this.cursorVisible=!0}clearCursor(){this.cursorPosition=null,this.cursorVisible=!1}getCursor(){return this.cursorPosition}isCursorVisible(){return this.cursorVisible}setCursorShape(J){this.cursorShape=J}getCursorShape(){return this.cursorShape}}function D49(){return`amp-${++B49}`}function RQ6(J,Q){return{uri:J,id:Q??D49()}}function wQ6(J){return`\x1B]8;id=${J.id};${J.uri}\x1B\\`}function y41(){return"\x1B]8;;\x1B\\"}var pm=4,d1,AH,B49=0;var z9=p(()=>{d1={default(J){return J!==void 0?{type:"default",alpha:J}:{type:"default"}},index(J,Q){return Q!==void 0?{type:"index",value:J,alpha:Q}:{type:"index",value:J}},rgb(J,Q,Z,X){return X!==void 0?{type:"rgb",value:{r:J,g:Q,b:Z},alpha:X}:{type:"rgb",value:{r:J,g:Q,b:Z}}},transparent(){return{type:"default",alpha:0}},black:{type:"index",value:0},red:{type:"index",value:1},green:{type:"index",value:2},yellow:{type:"index",value:3},blue:{type:"index",value:4},magenta:{type:"index",value:5},cyan:{type:"index",value:6},white:{type:"index",value:7},brightWhite:{type:"index",value:15}};AH=g9(" ",{})});function M49(J){return/\p{Extended_Pictographic}/u.test(J)}function V49(J){return J>=9632&&J<=9727||J>=9728&&J<=9983&&!(J>=9728&&J<=9983&&(J===9728||J===9729||J===9889||J===10052||J===9924||J===9925))||J>=8592&&J<=8703||J===10006}function N49(J){return/\p{M}/u.test(J)}function L49(J,Q=!0){if(!J)return 0;let Z=Array.from(J);if(Q){let X=0;for(let Y=0;Y<Z.length;Y++){let K=Z[Y];if(!K)continue;let q=K.codePointAt(0);if(!q)continue;let G=EQ6(q);if(G!==0){if(Y+1<Z.length){let U=Z[Y+1]?.codePointAt(0);if(U===65038)G=1;else if(U===65039)G=2}if(X===0){X=G;break}}}return X}else{let X=0;for(let Y of Z){if(!Y)continue;let K=Y.codePointAt(0);if(!K)continue;X+=EQ6(K)}return X}}function EQ6(J){if(J===9)return pm;if(N49(String.fromCodePoint(J))||J===8205||J>=65024&&J<=65039||J>=917760&&J<=917999||J>=127995&&J<=127999)return 0;if(O49(J)){if(V49(J))return 1;return 2}if(A49(J))return 2;return 1}function O49(J){let Q=String.fromCodePoint(J);return M49(Q)}function A49(J){return J>=19968&&J<=40959||J>=13312&&J<=19903||J>=131072&&J<=173791||J>=173824&&J<=177983||J>=177984&&J<=178207||J>=178208&&J<=183983||J>=183984&&J<=191471||J>=44032&&J<=55215||J>=12352&&J<=12447||J>=12448&&J<=12543||J>=12784&&J<=12799||J>=65280&&J<=65519||J>=12288&&J<=12351||J>=65281&&J<=65376||J===9001||J===9002||J>=127462&&J<=127487}function f4(J,Q=!0){let Z=IQ6.get(J);if(Z!==void 0)return Z;let X=L49(J,Q);return IQ6.set(J,X),X}function D2(J){try{if(!Kx1)Kx1=new Intl.Segmenter("en",{granularity:"grapheme"});return Array.from(Kx1.segment(J),(Q)=>Q.segment)}catch(Q){return Array.from(J)}}function zY(J,Q=!0){let Z=0,X=D2(J);for(let Y of X)Z+=f4(Y,Q);return Z}function qx1(J,Q,Z=!0,X="…"){if(Q<=0)return"";let Y=0,K="",q=D2(J);for(let G of q){let z=f4(G,Z);if(Y+z>Q){let U=zY(X,Z);if(Y+U<=Q)K+=X;break}K+=G,Y+=z}return K}var IQ6,Kx1=null;var jH=p(()=>{z9();IQ6=new Map});var $Q6=()=>{};var ST,PQ6;var Gx1=p(()=>{ST={ground:{...Object.fromEntries(Array.from({length:32},(J,Q)=>[Q,{nextState:"ground",action:"execute"}])),...Object.fromEntries(Array.from({length:95},(J,Q)=>[Q+32,{nextState:"ground",action:"print"}])),127:{nextState:"ground",action:"execute"},...Object.fromEntries(Array.from({length:128},(J,Q)=>[Q+128,{nextState:"ground",action:"print"}])),27:{nextState:"escape",action:"clear"}},escape:{...Object.fromEntries(Array.from({length:32},(J,Q)=>[Q,{nextState:"escape",action:"execute"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+32,{nextState:"escape_intermediate",action:"collect"}])),...Object.fromEntries(Array.from({length:63},(J,Q)=>[Q+64,{nextState:"ground",action:"esc_dispatch"}])),91:{nextState:"csi_entry",action:"clear"},80:{nextState:"dcs_entry",action:"clear"},93:{nextState:"osc_string",action:"osc_start"},88:{nextState:"sos_pm_apc_string",action:"ignore"},94:{nextState:"sos_pm_apc_string",action:"ignore"},95:{nextState:"sos_pm_apc_string",action:"ignore"},79:{nextState:"escape_intermediate",action:"collect"},127:{nextState:"ground",action:"esc_dispatch"}},escape_intermediate:{...Object.fromEntries(Array.from({length:32},(J,Q)=>[Q,{nextState:"escape_intermediate",action:"execute"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+32,{nextState:"escape_intermediate",action:"collect"}])),...Object.fromEntries(Array.from({length:63},(J,Q)=>[Q+64,{nextState:"ground",action:"esc_dispatch"}])),127:{nextState:"escape_intermediate",action:"ignore"}},csi_entry:{...Object.fromEntries(Array.from({length:32},(J,Q)=>[Q,{nextState:"csi_entry",action:"execute"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+32,{nextState:"csi_intermediate",action:"collect"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+48,{nextState:"csi_param",action:"param"}])),...Object.fromEntries(Array.from({length:4},(J,Q)=>[Q+60,{nextState:"csi_param",action:"collect"}])),...Object.fromEntries(Array.from({length:63},(J,Q)=>[Q+64,{nextState:"ground",action:"csi_dispatch"}])),127:{nextState:"csi_entry",action:"ignore"}},csi_param:{...Object.fromEntries(Array.from({length:32},(J,Q)=>[Q,{nextState:"csi_param",action:"execute"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+32,{nextState:"csi_intermediate",action:"collect"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+48,{nextState:"csi_param",action:"param"}])),58:{nextState:"csi_param",action:"param"},...Object.fromEntries(Array.from({length:4},(J,Q)=>[Q+60,{nextState:"csi_ignore",action:"ignore"}])),...Object.fromEntries(Array.from({length:63},(J,Q)=>[Q+64,{nextState:"ground",action:"csi_dispatch"}])),127:{nextState:"csi_param",action:"ignore"}},csi_intermediate:{...Object.fromEntries(Array.from({length:32},(J,Q)=>[Q,{nextState:"csi_intermediate",action:"execute"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+32,{nextState:"csi_intermediate",action:"collect"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+48,{nextState:"csi_ignore",action:"ignore"}])),...Object.fromEntries(Array.from({length:63},(J,Q)=>[Q+64,{nextState:"ground",action:"csi_dispatch"}])),127:{nextState:"csi_intermediate",action:"ignore"}},csi_ignore:{...Object.fromEntries(Array.from({length:32},(J,Q)=>[Q,{nextState:"csi_ignore",action:"execute"}])),...Object.fromEntries(Array.from({length:64},(J,Q)=>[Q+32,{nextState:"csi_ignore",action:"ignore"}])),...Object.fromEntries(Array.from({length:63},(J,Q)=>[Q+64,{nextState:"ground",action:"ignore"}])),127:{nextState:"csi_ignore",action:"ignore"}},dcs_entry:{...Object.fromEntries(Array.from({length:32},(J,Q)=>[Q,{nextState:"dcs_entry",action:"ignore"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+32,{nextState:"dcs_intermediate",action:"collect"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+48,{nextState:"dcs_param",action:"param"}])),...Object.fromEntries(Array.from({length:4},(J,Q)=>[Q+60,{nextState:"dcs_param",action:"collect"}])),...Object.fromEntries(Array.from({length:63},(J,Q)=>[Q+64,{nextState:"dcs_passthrough",action:"hook"}])),127:{nextState:"dcs_entry",action:"ignore"}},dcs_param:{...Object.fromEntries(Array.from({length:32},(J,Q)=>[Q,{nextState:"dcs_param",action:"ignore"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+32,{nextState:"dcs_intermediate",action:"collect"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+48,{nextState:"dcs_param",action:"param"}])),58:{nextState:"dcs_param",action:"param"},...Object.fromEntries(Array.from({length:4},(J,Q)=>[Q+60,{nextState:"dcs_ignore",action:"ignore"}])),...Object.fromEntries(Array.from({length:63},(J,Q)=>[Q+64,{nextState:"dcs_passthrough",action:"hook"}])),127:{nextState:"dcs_param",action:"ignore"}},dcs_intermediate:{...Object.fromEntries(Array.from({length:32},(J,Q)=>[Q,{nextState:"dcs_intermediate",action:"ignore"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+32,{nextState:"dcs_intermediate",action:"collect"}])),...Object.fromEntries(Array.from({length:16},(J,Q)=>[Q+48,{nextState:"dcs_ignore",action:"ignore"}])),...Object.fromEntries(Array.from({length:63},(J,Q)=>[Q+64,{nextState:"dcs_passthrough",action:"hook"}])),127:{nextState:"dcs_intermediate",action:"ignore"}},dcs_passthrough:{156:{nextState:"ground",action:"unhook"},27:{nextState:"ground",action:"unhook"},...Object.fromEntries(Array.from({length:256},(J,Q)=>{if(Q===156||Q===27)return[Q,void 0];return[Q,{nextState:"dcs_passthrough",action:"put"}]}).filter(([,J])=>J!==void 0))},dcs_ignore:{...Object.fromEntries(Array.from({length:256},(J,Q)=>[Q,{nextState:"dcs_ignore",action:"ignore"}])),156:{nextState:"ground",action:"ignore"},27:{nextState:"escape",action:"clear"}},osc_string:{...Object.fromEntries(Array.from({length:32},(J,Q)=>[Q,{nextState:"osc_string",action:"ignore"}])),...Object.fromEntries(Array.from({length:128},(J,Q)=>[Q+32,{nextState:"osc_string",action:"osc_put"}])),7:{nextState:"ground",action:"osc_end"},156:{nextState:"ground",action:"osc_end"},27:{nextState:"escape",action:"clear"}},sos_pm_apc_string:{...Object.fromEntries(Array.from({length:256},(J,Q)=>[Q,{nextState:"sos_pm_apc_string",action:"ignore"}])),156:{nextState:"ground",action:"ignore"},27:{nextState:"escape",action:"clear"}}},PQ6={24:{nextState:"ground",action:"execute"},26:{nextState:"ground",action:"execute"},27:{nextState:"escape",action:"clear"}};Object.keys(ST).forEach((J)=>{let Q=J;if(Q==="dcs_passthrough"){let{27:Z,...X}=PQ6;Object.assign(ST[Q],X)}else Object.assign(ST[Q],PQ6)})});class cm{context;eventHandlers=[];constructor(){this.context={state:"ground",private:[],intermediates:[],final:"",params:[],paramBuffer:[],subparamBuffer:[],currentSubparams:[],oscData:[],dcsData:[],printBuffer:[],textBuffer:"",oscEscSeen:!1,dcsEscSeen:!1}}onEvent(J){this.eventHandlers.push(J)}offEvent(J){let Q=this.eventHandlers.indexOf(J);if(Q!==-1)this.eventHandlers.splice(Q,1)}parse(J){let Q=typeof J==="string"?this.stringToBytes(J):J;for(let Z of Q)this.processByte(Z)}flush(){this.flushPrintBuffer(),this.flushTextBuffer()}stringToBytes(J){return new TextEncoder().encode(J)}processByte(J){if(this.context.state==="osc_string"&&J===27){this.context.oscEscSeen=!0;return}if(this.context.oscEscSeen&&J===92){this.context.oscEscSeen=!1,this.performAction("osc_end",J),this.context.state="ground";return}if(this.context.oscEscSeen){this.context.oscEscSeen=!1,this.performAction("clear",27),this.context.state="escape";let Z=ST["escape"][J];if(Z)this.performAction(Z.action,J),this.context.state=Z.nextState;return}let Q=ST[this.context.state][J];if(!Q)return;if(this.performAction(Q.action,J),this.context.state==="ground"&&Q.nextState!=="ground")this.flushTextBuffer();this.context.state=Q.nextState}performAction(J,Q){if(this.context.dcsEscSeen&&Q===92){this.context.dcsEscSeen=!1;return}if(this.context.dcsEscSeen)this.context.dcsEscSeen=!1;switch(J){case"ignore":break;case"print":this.addToPrintBuffer(Q);break;case"execute":this.flushTextBuffer(),this.emitEvent({type:"execute",code:Q});break;case"clear":this.flushTextBuffer(),this.context.private.length=0,this.context.intermediates.length=0,this.context.final="",this.context.params=[],this.context.oscEscSeen=!1,this.context.paramBuffer.length=0,this.context.subparamBuffer.length=0,this.context.currentSubparams=[],this.context.oscData.length=0,this.context.dcsData.length=0;break;case"collect":if(Q>=60&&Q<=63)this.context.private.push(String.fromCharCode(Q));else this.context.intermediates.push(String.fromCharCode(Q));break;case"param":if(Q>=48&&Q<=57)if(this.context.currentSubparams.length>0)this.context.subparamBuffer.push(String.fromCharCode(Q));else this.context.paramBuffer.push(String.fromCharCode(Q));else if(Q===59)this.finishParameter();else if(Q===58)this.finishSubparameter();break;case"esc_dispatch":this.emitEvent({type:"escape",intermediates:this.context.intermediates.join(""),final:String.fromCharCode(Q)});break;case"csi_dispatch":this.finishParameter(),this.emitEvent({type:"csi",private:this.context.private.join(""),intermediates:this.context.intermediates.join(""),final:String.fromCharCode(Q),params:[...this.context.params]});break;case"hook":this.finishParameter(),this.context.dcsData.length=0,this.context.final=String.fromCharCode(Q);break;case"put":this.context.dcsData.push(String.fromCharCode(Q));break;case"unhook":this.emitEvent({type:"dcs",private:this.context.private.join(""),intermediates:this.context.intermediates.join(""),final:this.context.final,params:[...this.context.params],data:this.context.dcsData.join("")}),this.context.dcsEscSeen=Q===27;break;case"osc_start":this.context.oscData.length=0,this.context.oscEscSeen=!1;break;case"osc_put":this.context.oscData.push(String.fromCharCode(Q));break;case"osc_end":this.emitEvent({type:"osc",data:this.context.oscData.join("")});break}}finishSubparameter(){if(this.context.currentSubparams.length===0)if(this.context.paramBuffer.length>0){let J=parseInt(this.context.paramBuffer.join(""),10);this.context.currentSubparams.push(isNaN(J)?0:J),this.context.paramBuffer.length=0}else this.context.currentSubparams.push(0);else if(this.context.subparamBuffer.length>0){let J=parseInt(this.context.subparamBuffer.join(""),10);this.context.currentSubparams.push(isNaN(J)?0:J),this.context.subparamBuffer.length=0}else this.context.currentSubparams.push(0)}finishParameter(){if(this.context.currentSubparams.length>0){this.finishSubparameter();let[J,...Q]=this.context.currentSubparams,Z={value:J??0};if(Q.length>0)Z.subparams=Q;this.context.params.push(Z),this.context.currentSubparams=[]}else if(this.context.paramBuffer.length>0){let J=parseInt(this.context.paramBuffer.join(""),10);this.context.params.push({value:isNaN(J)?0:J}),this.context.paramBuffer.length=0}else this.context.params.push({value:0})}addToPrintBuffer(J){this.context.printBuffer.push(J),this.tryEmitGraphemes()}tryEmitAccumulatedGraphemes(){if(this.context.textBuffer.length>1000){this.flushTextBuffer();return}if(this.context.flushTimeout)clearTimeout(this.context.flushTimeout);this.context.flushTimeout=setTimeout(()=>{if(this.context.textBuffer.length>0)this.flushTextBuffer()},1)}tryEmitGraphemes(){if(this.context.printBuffer.length===0)return;let J=0,Q=this.context.printBuffer;for(let Z=0;Z<Q.length;Z++){let X=Q[Z];if(X===void 0)continue;if(X<128)J=Z+1;else if((X&224)===192){let Y=Q[Z+1];if(Z+1<Q.length&&Y!==void 0&&(Y&192)===128)J=Z+2,Z++;else break}else if((X&240)===224){let Y=Q[Z+1],K=Q[Z+2];if(Z+2<Q.length&&Y!==void 0&&(Y&192)===128&&K!==void 0&&(K&192)===128)J=Z+3,Z+=2;else break}else if((X&248)===240){let Y=Q[Z+1],K=Q[Z+2],q=Q[Z+3];if(Z+3<Q.length&&Y!==void 0&&(Y&192)===128&&K!==void 0&&(K&192)===128&&q!==void 0&&(q&192)===128)J=Z+4,Z+=3;else break}else if((X&192)===128){this.emitEvent({type:"print",grapheme:"�"}),this.context.printBuffer.splice(0,Z+1),this.tryEmitGraphemes();return}else{this.emitEvent({type:"print",grapheme:"�"}),this.context.printBuffer.splice(0,Z+1),this.tryEmitGraphemes();return}}if(J>0){let Z=new Uint8Array(Q.slice(0,J)),Y=new TextDecoder("utf-8",{fatal:!1}).decode(Z);if(this.context.textBuffer+=Y,this.tryEmitAccumulatedGraphemes(),this.context.printBuffer.splice(0,J),this.context.printBuffer.length>0)this.tryEmitGraphemes()}}flushPrintBuffer(){if(this.context.printBuffer.length>0){let J=new Uint8Array(this.context.printBuffer),Z=new TextDecoder("utf-8",{fatal:!1}).decode(J);if(Z.length>0)this.context.textBuffer+=Z}this.context.printBuffer=[]}flushTextBuffer(){if(this.context.flushTimeout)clearTimeout(this.context.flushTimeout),delete this.context.flushTimeout;if(this.context.textBuffer.length>0){let J=D2(this.context.textBuffer);for(let Q of J)this.emitEvent({type:"print",grapheme:Q});this.context.textBuffer=""}}emitEvent(J){for(let Q of this.eventHandlers)Q(J)}reset(){this.flushPrintBuffer(),this.flushTextBuffer(),this.context={state:"ground",private:[],intermediates:[],final:"",params:[],paramBuffer:[],subparamBuffer:[],currentSubparams:[],oscData:[],dcsData:[],printBuffer:[],textBuffer:"",oscEscSeen:!1,dcsEscSeen:!1}}getState(){return this.context.state}}var zx1=p(()=>{jH();Gx1()});var TQ6,lm;var CQ6=p(()=>{zx1();TQ6={57348:"Insert",57349:"Delete",57350:"ArrowLeft",57351:"ArrowRight",57352:"ArrowUp",57353:"ArrowDown",57354:"PageUp",57355:"PageDown",57356:"Home",57357:"End",57358:"CapsLock",57359:"ScrollLock",57360:"NumLock",57361:"PrintScreen",57362:"Pause",57363:"ContextMenu",57364:"F1",57365:"F2",57366:"F3",57367:"F4",57368:"F5",57369:"F6",57370:"F7",57371:"F8",57372:"F9",57373:"F10",57374:"F11",57375:"F12",57376:"F13",57377:"F14",57378:"F15",57379:"F16",57380:"F17",57381:"F18",57382:"F19",57383:"F20",57384:"F21",57385:"F22",57386:"F23",57387:"F24",57388:"F25",57389:"F26",57390:"F27",57391:"F28",57392:"F29",57393:"F30",57394:"F31",57395:"F32",57396:"F33",57397:"F34",57398:"F35",57399:"0",57400:"1",57401:"2",57402:"3",57403:"4",57404:"5",57405:"6",57406:"7",57407:"8",57408:"9",57409:".",57410:"/",57411:"*",57412:"-",57413:"+",57414:"Enter",57415:"=",57416:",",57417:"ArrowLeft",57418:"ArrowRight",57419:"ArrowUp",57420:"ArrowDown",57421:"PageUp",57422:"PageDown",57423:"Home",57424:"End",57425:"Insert",57426:"Delete",57427:"Clear",57428:"MediaPlay",57429:"MediaPause",57430:"MediaPlayPause",57431:"MediaReverse",57432:"MediaStop",57433:"MediaFastForward",57434:"MediaRewind",57435:"MediaTrackNext",57436:"MediaTrackPrevious",57437:"MediaRecord",57438:"AudioVolumeDown",57439:"AudioVolumeUp",57440:"AudioVolumeMute",57441:"ShiftLeft",57442:"ControlLeft",57443:"AltLeft",57444:"MetaLeft",57445:"HyperLeft",57446:"MetaLeft",57447:"ShiftRight",57448:"ControlRight",57449:"AltRight",57450:"MetaRight",57451:"HyperRight",57452:"MetaRight",57453:"AltGraph",57454:"ISOLevel5Shift"};lm=class lm{lexer;keyHandlers=[];deviceAttributesHandlers=[];decrqssHandlers=[];dcsHandlers=[];oscHandlers=[];pasteHandlers=[];sgrMouseHandlers=[];mouseHandlers=[];focusHandlers=[];resizeHandlers=[];escapeTimeout=null;ESCAPE_TIMEOUT_MS=25;pendingEscape=!1;sgrToMouseConverter=um;inPaste=!1;pasteBuffer="";constructor(){this.lexer=new cm,this.lexer.onEvent(this.handleLexicalEvent.bind(this))}onEvent(J){this.lexer.onEvent(J)}offEvent(J){this.lexer.offEvent(J)}onKey(J){this.keyHandlers.push(J)}offKey(J){let Q=this.keyHandlers.indexOf(J);if(Q!==-1)this.keyHandlers.splice(Q,1)}onDeviceAttributes(J){this.deviceAttributesHandlers.push(J)}onDecrqss(J){this.decrqssHandlers.push(J)}onDcs(J){this.dcsHandlers.push(J)}onOsc(J){this.oscHandlers.push(J)}onPaste(J){this.pasteHandlers.push(J)}onSgrMouse(J){this.sgrMouseHandlers.push(J)}onMouse(J){this.mouseHandlers.push(J)}onFocus(J){this.focusHandlers.push(J)}onResize(J){this.resizeHandlers.push(J)}setSgrToMouseConverter(J){this.sgrToMouseConverter=J}parse(J){if(this.isStandaloneEscape(J)){if(this.escapeTimeout)clearTimeout(this.escapeTimeout),this.escapeTimeout=null;this.scheduleEscapeTimeout(),this.lexer.parse(J);return}if(this.escapeTimeout)clearTimeout(this.escapeTimeout),this.escapeTimeout=null,this.pendingEscape=!1;this.lexer.parse(J)}isStandaloneEscape(J){if(typeof J==="string")return J.length===1&&J.charCodeAt(0)===27;else return J.length===1&&J[0]===27}scheduleEscapeTimeout(){this.pendingEscape=!0,this.escapeTimeout=setTimeout(()=>{this.pendingEscape=!1,this.lexer.reset();let J={type:"key",key:"Escape",shiftKey:!1,ctrlKey:!1,altKey:!1,metaKey:!1};this.emitKeyEvent(J),this.escapeTimeout=null},this.ESCAPE_TIMEOUT_MS)}clearEscapeTimeout(){if(this.escapeTimeout)clearTimeout(this.escapeTimeout),this.escapeTimeout=null;this.pendingEscape=!1}flush(){this.lexer.flush()}reset(){this.clearEscapeTimeout(),this.lexer.reset()}handleLexicalEvent(J){switch(J.type){case"print":this.handlePrintEvent(J);break;case"execute":this.handleExecuteEvent(J);break;case"csi":this.handleCsiEvent(J);break;case"dcs":this.handleDcsEvent(J);break;case"osc":this.handleOscEvent(J);break;case"escape":this.handleEscapeEvent(J);break}}handlePrintEvent(J){if(this.inPaste){this.pasteBuffer+=J.grapheme;return}if(this.pendingEscape){this.clearEscapeTimeout();let Z={type:"key",key:J.grapheme,shiftKey:this.isShifted(J.grapheme),ctrlKey:!1,altKey:!0,metaKey:!1};this.emitKeyEvent(Z);return}let Q={type:"key",key:J.grapheme,shiftKey:this.isShifted(J.grapheme),ctrlKey:!1,altKey:!1,metaKey:!1};this.emitKeyEvent(Q)}handleExecuteEvent(J){if(this.inPaste)switch(J.code){case 10:this.pasteBuffer+=`
|
5451
5451
|
`;return;case 13:this.pasteBuffer+="\r";return;case 9:this.pasteBuffer+="\t";return}if(J.code===10){let Z={type:"key",key:"Enter",shiftKey:!0,ctrlKey:!1,altKey:!1,metaKey:!1};this.emitKeyEvent(Z);return}let Q=this.controlCharacterToGrapheme(J.code);if(Q){let Z={type:"key",key:Q,shiftKey:!1,ctrlKey:this.isControlCharacter(J.code)&&J.code!==127&&J.code!==8&&J.code!==9&&J.code!==10&&J.code!==13&&J.code!==27,altKey:!1,metaKey:!1};this.emitKeyEvent(Z)}}controlCharacterToGrapheme(J){switch(J){case 8:return"Backspace";case 9:return"Tab";case 10:return"Enter";case 13:return"Enter";case 27:return"Escape";case 127:return"Backspace";case 0:return"@";case 1:return"a";case 2:return"b";case 3:return"c";case 4:return"d";case 5:return"e";case 6:return"f";case 7:return"g";case 11:return"k";case 12:return"l";case 14:return"n";case 15:return"o";case 16:return"p";case 17:return"q";case 18:return"r";case 19:return"s";case 20:return"t";case 21:return"u";case 22:return"v";case 23:return"w";case 24:return"x";case 25:return"y";case 26:return"z";default:return null}}isControlCharacter(J){return J>=0&&J<=26||J===27||J===127}handleEscapeEvent(J){this.clearEscapeTimeout();let Q=this.escapeToKey(J);if(Q)this.emitKeyEvent(Q)}handleDcsEvent(J){for(let Q of this.dcsHandlers)Q(J)}handleOscEvent(J){for(let Q of this.oscHandlers)Q(J)}handleCsiEvent(J){if(this.clearEscapeTimeout(),this.handleBracketedPaste(J))return;let Q=this.csiToFocus(J);if(Q){this.emitFocusEvent(Q);return}let Z=this.csiToDeviceAttributes(J);if(Z){this.emitDeviceAttributesEvent(Z);return}let X=this.csiToDecrqss(J);if(X){this.emitDecrqssEvent(X);return}let Y=this.csiToKittyKeyboardResponse(J);if(Y){this.emitDecrqssEvent(Y);return}let K=this.csiToInBandResize(J);if(K){this.emitResizeEvent(K);return}let q=this.csiToSgrMouse(J);if(q){this.emitSgrMouseEvent(q);let z=this.sgrToMouseConverter(q);this.emitMouseEvent(z);return}let G=this.csiToKey(J);if(G)this.emitKeyEvent(G)}escapeToKey(J){if(J.intermediates==="O"){if(J.final==="P")return this.createKeyEvent("F1");if(J.final==="Q")return this.createKeyEvent("F2");if(J.final==="R")return this.createKeyEvent("F3");if(J.final==="S")return this.createKeyEvent("F4")}if(J.intermediates===""&&J.final.length===1){let Q=J.final.charCodeAt(0);if(Q>=32&&Q<=126)return{type:"key",key:J.final,shiftKey:this.isShifted(J.final),ctrlKey:!1,altKey:!0,metaKey:!1};else if(Q==127)return{type:"key",key:"Backspace",shiftKey:!1,ctrlKey:!1,altKey:!0,metaKey:!1}}return null}csiToKey(J){let{final:Q,params:Z}=J;if(Z.length===0||Z.length===1&&Z[0]?.value===0)Z=[{value:1}];let X=null,Y={shift:!1,ctrl:!1,alt:!1,meta:!1},K=1,q="";if(Z.length>=1){let G=Z[0]?.value??1;if(G===1&&Q==="Z")X="Tab",Y.shift=!0;else X=this.getSpecialKey(G,Q)??this.unicodeToKey(G)}if(Z.length>=2){let G=Z[1]?.value??1;Y=this.parseModifiers(G)}if(Z.length>=3){let G=Z[2]?.value??1;if(Q==="u")K=G-1;else if(Q==="~"&&Z[0]?.value===27)X=this.unicodeToKey(G)}if(K!==1&&K!==0)return null;if(!X)return null;if(q===""&&Y.shift&&!Y.ctrl&&!Y.alt&&!Y.meta){let G=this.keyToUnicode(X);if(G&&G>=32&&G<=126)q=X.toUpperCase()}return this.createKeyEventWithModifiers(X,Y,q)}parseModifiers(J){if(J===0||J===1)return{shift:!1,ctrl:!1,alt:!1,meta:!1};let Q=J-1;return{shift:(Q&1)!==0,alt:(Q&2)!==0,ctrl:(Q&4)!==0,meta:(Q&8)!==0}}unicodeToKey(J){if(J===13)return"Enter";if(J===9)return"Tab";if(J===27)return"Escape";if(J===127)return"Backspace";if(J===32)return" ";if(J>=1&&J<=26)return String.fromCharCode(J+96);if(TQ6[J])return TQ6[J];if(J>=32&&J<=126)return String.fromCharCode(J);if(J>126)try{return String.fromCharCode(J)}catch{return null}return null}createKeyEvent(J){return{type:"key",key:J,shiftKey:!1,ctrlKey:!1,altKey:!1,metaKey:!1}}createKeyEventWithModifiers(J,Q,Z){return{type:"key",key:J,shiftKey:Q.shift,ctrlKey:Q.ctrl,altKey:Q.alt,metaKey:Q.meta}}static SPECIAL_KEYS=new Map([["1:A","ArrowUp"],["1:B","ArrowDown"],["1:C","ArrowRight"],["1:D","ArrowLeft"],["1:H","Home"],["1:F","End"],["1:P","F1"],["1:Q","F2"],["1:R","F3"],["1:S","F4"],["1:~","Home"],["2:~","Insert"],["3:~","Delete"],["4:~","End"],["5:~","PageUp"],["6:~","PageDown"],["7:~","Home"],["8:~","End"],["9:~","Tab"],["11:~","F1"],["12:~","F2"],["13:~","F3"],["14:~","F4"],["15:~","F5"],["17:~","F6"],["18:~","F7"],["19:~","F8"],["20:~","F9"],["21:~","F10"],["23:~","F11"],["24:~","F12"]]);getSpecialKey(J,Q){let Z=`${J}:${Q}`;return lm.SPECIAL_KEYS.get(Z)||null}keyToUnicode(J){if(J.length===1)return J.charCodeAt(0);switch(J){case"Enter":return 13;case"Tab":return 9;case"Escape":return 27;case"Backspace":return 127;case" ":return 32}return null}isShifted(J){return J!==J.toLowerCase()}emitKeyEvent(J){for(let Q of this.keyHandlers)Q(J)}csiToDeviceAttributes(J){if(J.final==="c"&&J.private==="?"){let Q=0,Z=[];if(J.params.length>0){Q=J.params[0]?.value||0;let X=J.params.slice(1);if(X.length>0&&X[X.length-1]?.value===0)X=X.slice(0,-1);Z=X.map((Y)=>Y.value)}return{type:"device_attributes_primary",primary:Q,secondary:Z}}return null}csiToDecrqss(J){if(J.final==="y"&&J.intermediates.includes("$")){if(J.params.length>=2){let Q=`?${J.params[0]?.value||0}`,Z=String(J.params[1]?.value||0);return{type:"decrqss_response",request:Q,response:Z}}}return null}csiToKittyKeyboardResponse(J){if(J.final==="u"&&J.private==="?"){if(J.params.length>=1)return{type:"decrqss_response",request:"u",response:(J.params[0]?.value||0)>0?"1":"0"}}return null}emitDeviceAttributesEvent(J){for(let Q of this.deviceAttributesHandlers)Q(J)}csiToSgrMouse(J){if((J.final==="M"||J.final==="m")&&J.private==="<"){if(J.params.length>=3){let Q=J.params[0]?.value||0,Z=J.params[1]?.value||1,X=J.params[2]?.value||1,Y=Q&-61,K=J.final==="M"&&Y!==3;return{type:"sgr_mouse",button:Q,x:Z,y:X,pressed:K}}}return null}emitDecrqssEvent(J){for(let Q of this.decrqssHandlers)Q(J)}emitSgrMouseEvent(J){for(let Q of this.sgrMouseHandlers)Q(J)}emitMouseEvent(J){for(let Q of this.mouseHandlers)Q(J)}csiToFocus(J){if(J.intermediates===""&&(J.final==="I"||J.final==="O"))return{type:"focus",focused:J.final==="I"};return null}csiToInBandResize(J){if(J.final==="t"&&J.params.length>=5&&J.params[0]?.value===48){let Q=J.params[1]?.value||0,Z=J.params[2]?.value||0,X=J.params[3]?.value||0,Y=J.params[4]?.value||0;return{type:"resize",width:Z,height:Q,pixelWidth:Y,pixelHeight:X}}return null}emitFocusEvent(J){for(let Q of this.focusHandlers)Q(J)}emitResizeEvent(J){for(let Q of this.resizeHandlers)Q(J)}handleBracketedPaste(J){if(J.final==="~"&&J.params.length===1){let Q=J.params[0]?.value;if(Q===200)return this.inPaste=!0,this.pasteBuffer="",!0;else if(Q===201){if(this.inPaste)this.inPaste=!1,this.emitPasteEvent({type:"paste",text:this.pasteBuffer}),this.pasteBuffer="";return!0}}return!1}emitPasteEvent(J){for(let Q of this.pasteHandlers)Q(J)}}});var Ux1=p(()=>{CQ6();Gx1();$Q6()});function j49(J){return J.replace(/\r\n|\r/g,`
|
5452
5452
|
`)}function R49(J){return J.replace(/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\u007F-\u009F]/g,"")}function SQ6(J){let Q=J;return Q=j49(Q),Q=R49(Q),Q}class Fx1{parts=[];append(...J){this.parts.push(...J)}toString(){return this.parts.join("")}reset(){this.parts.length=0}get length(){return this.parts.length}get isEmpty(){return this.parts.length===0}}function k49(J,Q,Z){let X=`${J},${Q},${Z}`,Y=bQ6.get(X);if(Y!==void 0)return Y;let K=16,q=1/0;for(let G=0;G<_Q6.length;G++){let[z,U,F]=_Q6[G],W=(J-z)**2+(Q-U)**2+(Z-F)**2;if(W<q)q=W,K=G+16}return bQ6.set(X,K),K}function a49(J){return x49+(J?f49:"")}function r49(){return y49+h49}function Hx1(J){return i49(J)}function mQ6(){return fQ6}function Bx1(){return hQ6}function uQ6(){return gQ6}function xQ6(J,Q,Z){if(!J)return"";switch(J.type){case"default":return A8+(Q?"39":"49")+"m";case"index":return A8+`${Q?"38":"48"};5;${J.value}m`;case"rgb":{if(Z&&!Z.canRgb){let{r:G,g:z,b:U}=J.value,F=k49(G,z,U);return A8+`${Q?"38":"48"};5;${F}m`}let X=Q?"38":"48",{r:Y,g:K,b:q}=J.value;return A8+`${X};2;${Y};${K};${q}m`}default:return""}}function s49(J,Q,Z){let X="";if(J.fg!==Q.fg){if(J.fg===void 0&&Q.fg!==void 0)X+=A8+"39m";else X+=xQ6(J.fg,!0,Z);Q.fg=J.fg}if(J.bg!==Q.bg){if(J.bg===void 0&&Q.bg!==void 0)X+=A8+"49m";else X+=xQ6(J.bg,!1,Z);Q.bg=J.bg}if(J.bold!==Q.bold)X+=J.bold?A8+"1m":A8+"22m",Q.bold=J.bold;if(J.italic!==Q.italic)X+=J.italic?A8+"3m":A8+"23m",Q.italic=J.italic;if(J.underline!==Q.underline)X+=J.underline?A8+"4m":A8+"24m",Q.underline=J.underline;if(J.strikethrough!==Q.strikethrough)X+=J.strikethrough?A8+"9m":A8+"29m",Q.strikethrough=J.strikethrough;if(J.reverse!==Q.reverse)X+=J.reverse?A8+"7m":A8+"27m",Q.reverse=J.reverse;if(J.dim!==Q.dim)X+=J.dim?A8+"2m":A8+"22m",Q.dim=J.dim;return X}function o49(J,Q){let Z="";if(!x41(J,Q.hyperlink)){if(Q.hyperlink)Z+=y41();if(J)Z+=wQ6(J);Q.hyperlink=J}return Z}function yQ6(J,Q){if(J===Q)return!0;if(J===void 0||Q===void 0)return!1;if(J.type!==Q.type)return!1;switch(J.type){case"default":return!0;case"index":return Q.value===J.value;case"rgb":{let Z=Q.value;return Z.r===J.value.r&&Z.g===J.value.g&&Z.b===J.value.b}default:return!1}}function t49(J,Q){return yQ6(J.fg,Q.fg)&&yQ6(J.bg,Q.bg)&&J.bold===Q.bold&&J.italic===Q.italic&&J.underline===Q.underline&&J.strikethrough===Q.strikethrough&&J.reverse===Q.reverse&&J.dim===Q.dim}class Dx1{capabilities;currentStyle={};currentX=0;currentY=0;constructor(J){this.capabilities=J}updateCapabilities(J){this.capabilities=J}render(J){if(J.length===0)return"";let Q=this.batchDiffs(J),Z=new Fx1;for(let X of Q){if(this.currentX!==X.x||this.currentY!==X.y)Z.append(kQ6(X.y,X.x)),this.currentX=X.x,this.currentY=X.y;Z.append(s49(X.style,this.currentStyle,this.capabilities)),Z.append(o49(X.hyperlink,this.currentStyle)),Z.append(X.chars.join("")),this.currentX+=X.totalWidth}return Z.toString()}clearScreen(){return this.currentX=0,this.currentY=0,this.currentStyle={},vQ6+y41()+P49+I49}hideCursor(){return E49}showCursor(){return $49}setCursorShape(J){if(this.capabilities?.supportsCursorShape===!1)return"";return n49(J)}reset(){return this.currentStyle={},vQ6+y41()}moveTo(J,Q){return this.currentX=J,this.currentY=Q,kQ6(Q,J)}batchDiffs(J){if(J.length===0)return[];let Q=[],Z=null;for(let X of J)if(Z&&Z.y===X.y&&Z.x+Z.totalWidth===X.x&&t49(Z.style,X.cell.style)&&x41(Z.hyperlink,X.cell.hyperlink)){let K=X.cell.char==="\t"?" ".repeat(pm):X.cell.char;Z.chars.push(K),Z.totalWidth+=X.cell.width}else{let K=X.cell.char==="\t"?" ".repeat(pm):X.cell.char;Z={x:X.x,y:X.y,chars:[K],style:X.cell.style,hyperlink:X.cell.hyperlink,totalWidth:X.cell.width},Q.push(Z)}return Q}getCursorPosition(){return{x:this.currentX,y:this.currentY}}resetState(){this.currentStyle={},this.currentX=0,this.currentY=0}startSync(){return T49}endSync(){return C49}enterAltScreen(){return _49}exitAltScreen(){return b49}resetCursor(){return w49}enableMouse(J=!1){return a49(J)}disableMouse(){return r49()}enableEmojiWidth(){return g49}disableEmojiWidth(){return m49}enableInBandResize(){return u49}disableInBandResize(){return p49}enableBracketedPaste(){return S49}disableBracketedPaste(){return v49}enableKittyKeyboard(){return d49}disableKittyKeyboard(){return c49}setMouseShape(J){return l49(J)}setProgressBarIndeterminate(){return fQ6}setProgressBarOff(){return hQ6}setProgressBarPaused(){return gQ6}}var RH="\x1B",A8="\x1B[",vQ6,w49,kQ6=(J,Q)=>A8+`${J+1};${Q+1}H`,I49,E49,$49,P49,T49,C49,S49,v49,_Q6,bQ6,_49,b49,x49,y49,f49,h49,g49,m49,u49,p49,d49,c49,l49=(J)=>RH+`]22;${J}`+RH+"\\",i49=(J)=>RH+`]0;${J}\x07`,fQ6,hQ6,gQ6,n49=(J)=>A8+`${J} q`,Wx1;var im=p(()=>{z9();vQ6=A8+"0m",w49=A8+"m",I49=A8+"H",E49=A8+"?25l",$49=A8+"?25h",P49=A8+"2J",T49=A8+"?2026h",C49=A8+"?2026l",S49=A8+"?2004h",v49=A8+"?2004l",_Q6=[...Array.from({length:216},(J,Q)=>{let Z=Math.floor(Q/36),X=Math.floor(Q%36/6),Y=Q%6,K=(q)=>q===0?0:55+q*40;return[K(Z),K(X),K(Y)]}),...Array.from({length:24},(J,Q)=>{let Z=8+Q*10;return[Z,Z,Z]})],bQ6=new Map;_49=A8+"?1049h",b49=A8+"?1049l",x49=A8+"?1002h"+A8+"?1003h"+A8+"?1004h"+A8+"?1006h",y49=A8+"?1002l"+A8+"?1003l"+A8+"?1004l"+A8+"?1006l",f49=A8+"?1016h",h49=A8+"?1016l",g49=A8+"?2027h",m49=A8+"?2027l",u49=A8+"?2048h",p49=A8+"?2048l",d49=A8+">1u",c49=A8+"<u",fQ6=RH+"]9;4;3"+RH+"\\",hQ6=RH+"]9;4;0"+RH+"\\",gQ6=RH+"]9;4;4"+RH+"\\",Wx1={DEFAULT:0,BLINKING_BLOCK:1,STEADY_BLOCK:2,BLINKING_UNDERLINE:3,STEADY_UNDERLINE:4,BLINKING_BAR:5,STEADY_BAR:6}});function Mx1(){let J=e49();if(J)return J;let Q=J79();if(Q)return{...Q,pixelWidth:0,pixelHeight:0};return null}function e49(){try{let J=(()=>{throw new Error("Cannot require module "+"ffi-napi");})(),Q=(()=>{throw new Error("Cannot require module "+"ref-napi");})(),X=(()=>{throw new Error("Cannot require module "+"ref-struct-di");})()(Q)({ws_row:Q.types.ushort,ws_col:Q.types.ushort,ws_xpixel:Q.types.ushort,ws_ypixel:Q.types.ushort}),Y=J.Library("libc",{ioctl:["int",["int","ulong","pointer"]]}),K=process.platform==="darwin"?1074295912:21523,q=new X;if(Y.ioctl(process.stdout.fd,K,q.ref())===0)return{rows:q.ws_row,columns:q.ws_col,pixelWidth:q.ws_xpixel,pixelHeight:q.ws_ypixel};return null}catch(J){return null}}function J79(){try{if(process.stdout.isTTY&&process.stdout.columns&&process.stdout.rows)return{columns:process.stdout.columns,rows:process.stdout.rows};let J=process.stdin;if(process.stdin.isTTY&&J.columns&&J.rows)return{columns:J.columns,rows:J.rows};let Q=process.stdout;if(typeof Q.getWindowSize==="function"){let Z=Q.getWindowSize();if(Z[0]>0&&Z[1]>0)return{columns:Z[0],rows:Z[1]}}return null}catch(J){return null}}class f41{capabilities={syncOutput:!1,emojiWidth:!1,pixelMouse:!1,pixelDimensions:!1,xtversion:null,canRgb:this.detectRgbSupport(),supportsCursorShape:this.detectCursorShapeSupport(),animationSupport:this.detectAnimationSupport(),kittyKeyboard:!1,osc52:!1,scrollStep:()=>this.getScrollStep()};complete=!1;inbandPixelData=null;processDecrqss(J,Q){if(J==="?2026")this.capabilities.syncOutput=Q==="1"||Q==="2";if(J==="?2027")this.capabilities.emojiWidth=Q==="1"||Q==="2";if(J==="?1016")this.capabilities.pixelMouse=Q==="1"||Q==="2";if(J==="u")this.capabilities.kittyKeyboard=!0;return!1}processDeviceAttributes(J,Q){if(this.checkPixelDimensions(),this.detectJetBrains())this.capabilities.emojiWidth=!0;return this.complete=!0,!0}processXtversion(J){return this.capabilities.xtversion=J,!1}processXtgettcap(J,Q){if(J.toLowerCase()==="4d73")this.capabilities.osc52=Q.length>0;return!1}updateInbandPixelData(J,Q,Z,X){if(Z&&X&&Z>0&&X>0)this.inbandPixelData={pixelWidth:Z,pixelHeight:X,columns:J,rows:Q},this.capabilities.pixelDimensions=!0}checkPixelDimensions(){if(this.inbandPixelData){this.capabilities.pixelDimensions=!0;return}let J=Mx1();this.capabilities.pixelDimensions=!!(J&&J.pixelWidth>0&&J.pixelHeight>0)}isComplete(){return this.complete}getCapabilities(){return{...this.capabilities}}shouldUsePixelMouse(){return this.capabilities.pixelMouse&&this.capabilities.pixelDimensions}getPixelDimensions(){if(this.inbandPixelData)return this.inbandPixelData;let J=Mx1();if(J&&J.pixelWidth>0&&J.pixelHeight>0)return{pixelWidth:J.pixelWidth,pixelHeight:J.pixelHeight,columns:J.columns,rows:J.rows};return null}getPendingQueries(){return this.complete?[]:["\x1B[c"]}detectRgbSupport(){if(process.env.TERM_PROGRAM==="Apple_Terminal")return!1;return!0}detectCursorShapeSupport(){return!this.detectEmacs()&&!this.detectJetBrains()}detectAnimationSupport(){if(this.detectEmacs())return"disabled";if(this.detectSSH()||this.detectJetBrains())return"slow";return"fast"}detectEmacs(){return!!process.env.INSIDE_EMACS}detectJetBrains(){return process.env.TERMINAL_EMULATOR?.includes("JetBrains")??!1}detectSSH(){return!!(process.env.SSH_CLIENT||process.env.SSH_TTY||process.env.SSH_CONNECTION)}getScrollStep(){if(this.capabilities.xtversion?.startsWith("ghostty"))return 1;if(LG())return 1;return 3}}var pQ6;var Vx1=p(()=>{pQ6=[{sequence:"\x1B[?2026$p",description:"Query synchronized output support"},{sequence:"\x1B[?2027$p",description:"Query emoji width mode support"},{sequence:"\x1B[?1016$p",description:"Query pixel mouse mode support"},{sequence:"\x1B[?u",description:"Query Kitty keyboard protocol support"},{sequence:"\x1B[>0q",description:"Query terminal version (XTVERSION)"},{sequence:"\x1BP+q4d73\x1B\\",description:"Query OSC 52 clipboard support (XTGETTCAP Ms)"},{sequence:"\x1B[c",description:"Device Attributes (DA1)",isFinal:!0}]});class dQ6{eventBuffer=[];bufferTimer=null;filterDirection=null;lastEventTime=0;onEmitEvent=()=>{};constructor(J){this.onEmitEvent=J}handleWheelEvent(J){if(J.button!=="wheel_up"&&J.button!=="wheel_down")return!0;let Q=Date.now();if(this.filterDirection!==null)if(Q-this.lastEventTime>Z79)this.filterDirection=null;else return this.lastEventTime=Q,J.button===this.filterDirection;if(this.lastEventTime=Q,this.eventBuffer.push(J),!this.bufferTimer)this.bufferTimer=setTimeout(()=>{this.processBuffer()},Q79);return!1}processBuffer(){if(this.bufferTimer=null,this.eventBuffer.length===0)return;if(this.eventBuffer.some((Q)=>Q.button==="wheel_down")){this.filterDirection="wheel_down";for(let Q of this.eventBuffer)if(Q.button==="wheel_down")this.onEmitEvent(Q)}else{this.filterDirection="wheel_up";for(let Q of this.eventBuffer)this.onEmitEvent(Q)}this.eventBuffer=[]}}class Nx1{parser=null;initialized=!1;inAltScreen=!1;suspended=!1;stdin=process.stdin;screen;renderer;queryParser=null;capabilities=null;capabilityPromise=null;capabilityResolve=null;capabilityTimeout=null;terminalSize={width:80,height:24};jetBrainsWheelFilter;keyHandlers=[];mouseHandlers=[];resizeHandlers=[];focusHandlers=[];pasteHandlers=[];capabilityHandlers=[];boundHandleResize=this.handleResize.bind(this);boundCleanup=this.cleanup.bind(this);boundHandleResume=this.handleResume.bind(this);resizeDebounceTimer=null;pendingResize=!1;constructor(){this.screen=new dm(80,24),this.renderer=new Dx1,this.jetBrainsWheelFilter=new dQ6((J)=>{for(let Q of this.mouseHandlers)Q(J)})}setStdin(J){if(this.initialized)throw Error("Cannot change stdin after TUI is initialized");this.stdin=J}init(){if(this.initialized)throw Error("TUI is already initialized");try{if(vT(this.stdin))this.stdin.setRawMode(!0);else if(process.env.AMP_DEBUG)a.warn("Warning: stdin is not a TTY or using custom stdin");this.parser=new lm,this.parser.onKey(this.handleKeyEvent.bind(this)),this.parser.onPaste(this.handlePasteEvent.bind(this)),this.parser.onOsc(this.handleOscEvent.bind(this)),this.queryParser=new f41,this.parser.onDeviceAttributes((J)=>{if(this.queryParser&&this.initialized){if(this.queryParser.processDeviceAttributes(J.primary,J.secondary))this.finishInitialization()}}),this.parser.onDecrqss((J)=>{if(this.queryParser&&this.initialized)this.queryParser.processDecrqss(J.request,J.response)}),this.parser.onDcs((J)=>{if(this.queryParser&&this.initialized){if(J.final==="|"&&J.private===">")this.queryParser.processXtversion(J.data);if(J.final==="r"&&J.intermediates==="+"&&J.params.length>0&&J.params[0]?.value===1)this.parseXtgettcapResponse(J.data)}}),this.parser.onMouse((J)=>{if(LG()&&!this.jetBrainsWheelFilter.handleWheelEvent(J))return;for(let Q of this.mouseHandlers)Q(J)}),this.parser.onFocus((J)=>{for(let Q of this.focusHandlers)Q(J)}),this.parser.onResize((J)=>{this.handleInbandResize(J)}),this.stdin.on("data",(J)=>{this.parser?.parse(J)}),this.stdin.resume(),process.on("SIGWINCH",this.boundHandleResize),this.updateTerminalSize(),this.screen.resize(this.terminalSize.width,this.terminalSize.height),this.setupCleanupHandlers(),this.initialized=!0,this.enableMouse(),this.enableBracketedPaste(),this.createCapabilityPromise(),this.startCapabilityDetection()}catch(J){throw this.deinit(),J}}deinit(){if(this.initialized){let J="";if(J+=this.renderer.reset()+this.renderer.disableMouse()+this.renderer.disableEmojiWidth()+this.renderer.disableInBandResize()+this.renderer.disableBracketedPaste()+this.renderer.disableKittyKeyboard()+this.renderer.setCursorShape(0)+this.renderer.showCursor(),this.capabilities?.xtversion?.startsWith("ghostty"))J+=this.renderer.setProgressBarOff();if(this.inAltScreen)J+=this.renderer.exitAltScreen(),this.inAltScreen=!1;process.stdout.write(J)}if(this.resizeDebounceTimer)clearTimeout(this.resizeDebounceTimer),this.resizeDebounceTimer=null;if(this.capabilityTimeout)clearTimeout(this.capabilityTimeout),this.capabilityTimeout=null;if(this.keyHandlers.length=0,this.mouseHandlers.length=0,this.resizeHandlers.length=0,this.focusHandlers.length=0,this.pasteHandlers.length=0,this.capabilityHandlers.length=0,process.removeListener("SIGWINCH",this.boundHandleResize),process.removeListener("SIGINT",this.boundCleanup),process.removeListener("SIGTERM",this.boundCleanup),process.removeListener("exit",this.boundCleanup),process.removeListener("SIGCONT",this.boundHandleResume),this.stdin.removeAllListeners("data"),this.stdin.pause(),vT(this.stdin))try{this.stdin.setRawMode(!1)}catch(J){}this.parser=null,this.queryParser=null,this.capabilities=null,this.capabilityPromise=null,this.capabilityResolve=null,this.initialized=!1}onKey(J){this.keyHandlers.push(J)}offKey(J){let Q=this.keyHandlers.indexOf(J);if(Q!==-1)this.keyHandlers.splice(Q,1)}onMouse(J){this.mouseHandlers.push(J)}offMouse(J){let Q=this.mouseHandlers.indexOf(J);if(Q!==-1)this.mouseHandlers.splice(Q,1)}onResize(J){this.resizeHandlers.push(J)}offResize(J){let Q=this.resizeHandlers.indexOf(J);if(Q!==-1)this.resizeHandlers.splice(Q,1)}onFocus(J){this.focusHandlers.push(J)}offFocus(J){let Q=this.focusHandlers.indexOf(J);if(Q!==-1)this.focusHandlers.splice(Q,1)}onPaste(J){this.pasteHandlers.push(J)}offPaste(J){let Q=this.pasteHandlers.indexOf(J);if(Q!==-1)this.pasteHandlers.splice(Q,1)}onCapabilities(J){this.capabilityHandlers.push(J)}offCapabilities(J){let Q=this.capabilityHandlers.indexOf(J);if(Q!==-1)this.capabilityHandlers.splice(Q,1)}isInitialized(){return this.initialized}getCapabilities(){return this.capabilities}async waitForCapabilities(J=1000){if(!this.initialized)throw Error("TUI is not initialized");if(this.capabilities)return this.capabilities;if(!this.capabilityPromise)throw Error("Capability detection not started");return this.capabilityPromise}getSize(){return{...this.terminalSize}}getScreen(){return this.screen}render(){if(!this.initialized)throw Error("TUI not initialized");if(this.suspended)return;let J=this.screen.getDiff(),Q=this.screen.getCursor();if(J.length>0||Q!==null){let X="";X+=this.renderer.startSync(),X+=this.renderer.hideCursor(),X+=this.renderer.reset(),X+=this.renderer.moveTo(0,0);let Y=this.renderer.render(J);if(X+=Y,Q&&this.screen.isCursorVisible())X+=this.renderer.moveTo(Q.x,Q.y),X+=this.renderer.setCursorShape(this.screen.getCursorShape()),X+=this.renderer.showCursor();else X+=this.renderer.hideCursor();X+=this.renderer.endSync(),process.stdout.write(X),this.screen.present()}}clearScreen(){let J=this.renderer.clearScreen()+this.renderer.hideCursor();process.stdout.write(J),this.renderer.resetState()}showCursor(){process.stdout.write(this.renderer.showCursor())}hideCursor(){process.stdout.write(this.renderer.hideCursor())}setCursor(J,Q){this.screen.setCursor(J,Q)}clearCursor(){this.screen.clearCursor()}setCursorShape(J){this.screen.setCursorShape(J)}setMouseCursor(J){let Q=`\x1B]22;${J}\x07`;process.stdout.write(Q)}resetMouseCursor(){this.setMouseCursor(R5.DEFAULT)}enableBracketedPaste(){process.stdout.write(this.renderer.enableBracketedPaste())}disableBracketedPaste(){process.stdout.write(this.renderer.disableBracketedPaste())}enableKittyKeyboard(){process.stdout.write(this.renderer.enableKittyKeyboard())}disableKittyKeyboard(){process.stdout.write(this.renderer.disableKittyKeyboard())}async writeClipboard(J){return AG.writeText(J)}get clipboard(){return AG}enterAltScreen(){if(!this.initialized)throw Error("TUI not initialized");if(!this.inAltScreen)process.stdout.write(this.renderer.enterAltScreen()),this.inAltScreen=!0}exitAltScreen(){if(this.inAltScreen)process.stdout.write(this.renderer.exitAltScreen()),this.inAltScreen=!1}isInAltScreen(){return this.inAltScreen}enableMouse(){if(this.initialized){let J=this.queryParser?.shouldUsePixelMouse()??!1,Q=this.renderer.enableMouse(J);process.stdout.write(Q)}}disableMouse(){if(this.initialized)process.stdout.write(this.renderer.disableMouse())}enableEmojiWidth(){if(this.initialized){let J=this.renderer.enableEmojiWidth();process.stdout.write(J)}}disableEmojiWidth(){if(this.initialized)process.stdout.write(this.renderer.disableEmojiWidth())}enableInBandResize(){if(this.initialized){let J=this.renderer.enableInBandResize();process.stdout.write(J)}}disableInBandResize(){if(this.initialized)process.stdout.write(this.renderer.disableInBandResize())}setMouseShape(J){if(this.initialized)process.stdout.write(this.renderer.setMouseShape(J))}suspend(){if(!this.initialized||this.suspended)return;if(this.disableMouse(),this.disableEmojiWidth(),this.disableInBandResize(),this.disableBracketedPaste(),this.disableKittyKeyboard(),this.exitAltScreen(),this.stdin.pause(),vT(this.stdin))this.stdin.setRawMode(!1);if(this.suspended=!0,process.stdout.isTTY)process.stdout.uncork()}resume(){if(!this.initialized||!this.suspended)return;if(vT(this.stdin))this.stdin.setRawMode(!0);if(this.stdin.resume(),this.parser)this.parser.reset();if(this.enterAltScreen(),this.enableMouse(),this.enableBracketedPaste(),this.capabilities?.emojiWidth)this.enableEmojiWidth();if(this.capabilities?.kittyKeyboard)this.enableKittyKeyboard();this.enableInBandResize(),this.screen.markForRefresh(),this.suspended=!1}isSuspended(){return this.suspended}handleSuspend(){if(!this.initialized||this.suspended)return;if(process.platform==="win32")return;this.suspend();try{process.kill(0,"SIGTSTP"),a.debug(`Successfully suspended process ${process.pid}`)}catch(J){a.debug(`Failed to suspend process ${process.pid}: ${J}`)}}handleResume(){if(!this.initialized||!this.suspended)return;this.resume(),setImmediate(()=>{if(this.initialized&&!this.suspended)this.render()})}updateTerminalSize(){if(!vT(this.stdin)){this.terminalSize={width:80,height:24};return}try{if(process.stdout.isTTY&&process.stdout.columns&&process.stdout.rows){this.terminalSize={width:process.stdout.columns,height:process.stdout.rows};return}let J=process.stdout.getWindowSize();if(J[0]>0&&J[1]>0){this.terminalSize={width:J[0],height:J[1]};return}}catch(J){}}handleKeyEvent(J){for(let Q of this.keyHandlers)Q(J)}handlePasteEvent(J){let Q={type:"paste",text:SQ6(J.text)};for(let Z of this.pasteHandlers)Z(Q)}handleOscEvent(J){if(J.data.startsWith("52;c;")){let Q=J.data.slice(5);if(Q&&Q!=="?")AG.handleOSC52Response(Q)}}createCapabilityPromise(){this.capabilityPromise=new Promise((J)=>{this.capabilityResolve=J})}startCapabilityDetection(){if(!vT(this.stdin)){if(this.capabilityResolve)this.capabilityResolve(null);return}if(this.queryParser=new f41,process.env.TERM_PROGRAM==="Apple_Terminal"){let J={syncOutput:!1,emojiWidth:!1,pixelMouse:!1,pixelDimensions:!1,xtversion:null,canRgb:!1,supportsCursorShape:!0,animationSupport:"fast",kittyKeyboard:!1,osc52:!1,scrollStep:()=>3};this.capabilities=J;let Q={type:"capability",capabilities:this.capabilities};this.renderer.updateCapabilities(this.capabilities);for(let Z of this.capabilityHandlers)Z(Q);if(this.capabilityResolve)this.capabilityResolve(J),this.capabilityResolve=null;return}for(let J of pQ6)process.stdout.write(J.sequence);this.capabilityTimeout=setTimeout(()=>{if(!this.capabilities&&this.capabilityResolve&&this.queryParser)this.finishInitialization()},2000)}finishInitialization(){if(!this.initialized||!this.queryParser||this.capabilities)return;if(this.capabilities=this.queryParser.getCapabilities(),this.capabilityTimeout)clearTimeout(this.capabilityTimeout),this.capabilityTimeout=null;let J={type:"capability",capabilities:this.capabilities};this.renderer.updateCapabilities(this.capabilities);for(let Q of this.capabilityHandlers)Q(J);if(this.capabilityResolve)a.info("Terminal capabilities detected:",this.capabilities),this.capabilityResolve(this.capabilities),this.capabilityResolve=null;if(this.queryParser.shouldUsePixelMouse()){let Q=this.queryParser.getPixelDimensions();if(Q){let Z=Q.pixelWidth/Q.columns,X=Q.pixelHeight/Q.rows;this.parser?.setSgrToMouseConverter((Y)=>um(Y,!0,Z,X))}}if(this.capabilities.emojiWidth)this.enableEmojiWidth();if(this.capabilities.kittyKeyboard)this.enableKittyKeyboard();this.enableInBandResize(),AG.setCapabilities(this.capabilities)}parseXtgettcapResponse(J){if(!this.queryParser)return;let Q=J.indexOf("=");if(Q!==-1){let Z=J.slice(0,Q),X=J.slice(Q+1);if(this.queryParser.processXtgettcap(Z,X))this.finishInitialization()}}handleResize(){if(this.pendingResize=!0,this.resizeDebounceTimer)clearTimeout(this.resizeDebounceTimer);this.resizeDebounceTimer=setTimeout(()=>{this.processResize()},10)}handleInbandResize(J){if(this.terminalSize={width:J.width,height:J.height},this.queryParser&&J.pixelWidth&&J.pixelHeight){let Q=this.queryParser.shouldUsePixelMouse();this.queryParser.updateInbandPixelData(J.width,J.height,J.pixelWidth,J.pixelHeight);let Z=this.queryParser.shouldUsePixelMouse();if(!Q&&Z)this.disableMouse(),this.enableMouse();if(Z){let X=J.pixelWidth/J.width,Y=J.pixelHeight/J.height;this.parser?.setSgrToMouseConverter((K)=>um(K,!0,X,Y))}}this.screen.resize(J.width,J.height),setImmediate(()=>{for(let Q of this.resizeHandlers)try{Q(J)}catch(Z){a.error("Error in resize handler:",Z)}})}processResize(){if(!this.pendingResize||!this.initialized)return;let J={...this.terminalSize};if(this.updateTerminalSize(),J.width===this.terminalSize.width&&J.height===this.terminalSize.height){this.pendingResize=!1;return}this.finishResize(),this.pendingResize=!1}finishResize(){this.screen.resize(this.terminalSize.width,this.terminalSize.height);let J={type:"resize",width:this.terminalSize.width,height:this.terminalSize.height};setImmediate(()=>{for(let Q of this.resizeHandlers)try{Q(J)}catch(Z){a.error("Error in resize handler:",Z)}})}setupCleanupHandlers(){process.setMaxListeners(0),process.on("SIGINT",this.boundCleanup),process.on("SIGTERM",this.boundCleanup),process.on("exit",this.boundCleanup),process.on("SIGCONT",this.boundHandleResume)}cleanup(){try{this.deinit()}catch{}}}function vT(J){return"isTTY"in J&&J.isTTY===!0&&typeof J.setRawMode==="function"}var Q79=50,Z79=200;var cQ6=p(()=>{D0();TT();CT();Ux1();im();z9();Vx1()});function lQ6(){try{if(process.stdout.write("\x1B[?1002l"),process.stdout.write("\x1B[?1003l"),process.stdout.write("\x1B[?1004l"),process.stdout.write("\x1B[?1006l"),process.stdout.write("\x1B[?1016l"),process.stdout.write("\x1B[?2004l"),process.stdout.write("\x1B[?2031l"),process.stdout.write("\x1B[?2048l"),process.stdout.write("\x1B[<u"),process.stdout.write("\x1B[?1049l"),process.stdout.write("\x1B[0 q"),process.stdout.write("\x1B[?25h"),process.stdout.write("\x1B[999;1H"),process.stdout.write("\x1B[0m"),!process.env.TERM_PROGRAM?.startsWith("iTerm"))process.stdout.write("\x1B]9;4;0\x1B\\")}catch(J){}}function K8(J,...Q){if(!J){let Z=Q.join(" "),X=Error(Z);a.error("TUI Assert failed",{assertion:Z,stackTrace:X.stack,meta:Q});let Y=process.env.AMP_DEBUG,K=process.env.VITEST;if(Y||K)lQ6(),console.error("FATAL TUI ERROR:",Z),console.error("Stack trace:",X.stack),console.error("Context:",{meta:Q}),process.exit(1)}}var I4=p(()=>{D0()});class XZ{static _instance;_frameCallbacks=new Map;_postFrameCallbacks=[];_frameScheduled=!1;_frameInProgress=!1;_lastFrameTime=0;TARGET_FPS=60;FRAME_TIME=1000/this.TARGET_FPS;_stats={lastFrameTime:0,phaseStats:{["build"]:{lastTime:0},["layout"]:{lastTime:0},["paint"]:{lastTime:0},["render"]:{lastTime:0}}};_lastCompletedStats=this.deepCopyStats(this._stats);static get instance(){return this._instance??=new XZ}requestFrame(){if(this._frameScheduled)return;this._frameScheduled=!0;let Q=performance.now()-this._lastFrameTime;if(Q>=this.FRAME_TIME)setImmediate(()=>this.executeFrame());else{let Z=this.FRAME_TIME-Q;setTimeout(()=>this.executeFrame(),Z)}}addFrameCallback(J,Q,Z,X=0,Y){this._frameCallbacks.set(J,{callback:Q,phase:Z,priority:X,name:Y||J})}removeFrameCallback(J){this._frameCallbacks.delete(J)}addPostFrameCallback(J,Q){if(this._postFrameCallbacks.push({callback:J,name:Q}),!this._frameScheduled&&!this._frameInProgress)this.requestFrame()}executeFrame(){if(this._frameInProgress)return;let J=performance.now();this._frameScheduled=!1,this._frameInProgress=!0,this._lastFrameTime=J;try{for(let Q of["build","layout","paint","render"])this.executePhase(Q);this.executePostFrameCallbacks()}catch(Q){a.error("Frame execution error:",Q instanceof Error?Q.message:String(Q))}finally{this.recordFrameStats(performance.now()-J),this._lastCompletedStats=this.deepCopyStats(this._stats),this._frameInProgress=!1}}executePhase(J){let Q=performance.now();try{let Z=Array.from(this._frameCallbacks.values()).filter((X)=>X.phase===J).sort((X,Y)=>X.priority-Y.priority);for(let X of Z)try{X.callback()}catch(Y){a.error(`Frame callback error in ${J} phase (${X.name})`,{errorMessage:Y instanceof Error?Y.message:String(Y),errorType:Y?.constructor?.name,stackTrace:Y instanceof Error?Y.stack:void 0}),K8(!1,`FATAL: ${J} error in ${X.name}: ${Y}`)}}finally{let Z=performance.now()-Q;this.recordPhaseStats(J,Z)}}executePostFrameCallbacks(){if(this._postFrameCallbacks.length===0)return;let J=this._postFrameCallbacks.splice(0);for(let{callback:Q,name:Z}of J)try{Q()}catch(X){a.error(`Post-frame callback error (${Z||"anonymous"}):`,X instanceof Error?X.message:String(X))}}recordFrameStats(J){this._stats.lastFrameTime=J}recordPhaseStats(J,Q){this._stats.phaseStats[J].lastTime=Q}get isFrameScheduled(){return this._frameScheduled||this._frameInProgress}get isFrameInProgress(){return this._frameInProgress}get frameStats(){return this.deepCopyStats(this._lastCompletedStats)}deepCopyStats(J){return{...J,phaseStats:{["build"]:{...J.phaseStats.build},["layout"]:{...J.phaseStats.layout},["paint"]:{...J.phaseStats.paint},["render"]:{...J.phaseStats.render}}}}resetStats(){this._stats={lastFrameTime:0,phaseStats:{["build"]:{lastTime:0},["layout"]:{lastTime:0},["paint"]:{lastTime:0},["render"]:{lastTime:0}}}}get pendingPostFrameCallbacks(){return this._postFrameCallbacks.length}dispose(){this._frameCallbacks.clear(),this._postFrameCallbacks.length=0,this._frameScheduled=!1,this._frameInProgress=!1,this.resetStats()}}var nm,X79=60,Lx1;var AA=p(()=>{D0();I4();((Y)=>{Y.BUILD="build";Y.LAYOUT="layout";Y.PAINT="paint";Y.RENDER="render"})(nm||={});Lx1=1000/X79});class Ox1{_dirtyElements=new Set;_stats={totalRebuilds:0,elementsRebuiltThisFrame:0,maxElementsPerFrame:0,averageElementsPerFrame:0,lastBuildTime:0,averageBuildTime:0,maxBuildTime:0};_buildTimes=[];_elementsPerFrame=[];constructor(){}scheduleBuildFor(J){if(this._dirtyElements.has(J))return;this._dirtyElements.add(J),XZ.instance.requestFrame()}buildScopes(){if(this._dirtyElements.size===0)return;let J=performance.now(),Q=0;try{while(this._dirtyElements.size>0){let Z=Array.from(this._dirtyElements);this._dirtyElements.clear(),Z.sort((X,Y)=>X.depth-Y.depth);for(let X of Z)if(X.dirty)try{X.performRebuild(),X._dirty=!1,Q++}catch(Y){a.error("Element rebuild error:",Y instanceof Error?Y.message:String(Y)),X._dirty=!1}}}finally{this.recordBuildStats(performance.now()-J,Q)}}recordBuildStats(J,Q){if(this._stats.totalRebuilds+=Q,this._stats.elementsRebuiltThisFrame=Q,this._stats.lastBuildTime=J,this._stats.maxElementsPerFrame=Math.max(this._stats.maxElementsPerFrame,Q),this._stats.maxBuildTime=Math.max(this._stats.maxBuildTime,J),this._buildTimes.push(J),this._elementsPerFrame.push(Q),this._buildTimes.length>60)this._buildTimes.shift(),this._elementsPerFrame.shift();this._stats.averageBuildTime=this._buildTimes.reduce((Z,X)=>Z+X,0)/this._buildTimes.length,this._stats.averageElementsPerFrame=this._elementsPerFrame.reduce((Z,X)=>Z+X,0)/this._elementsPerFrame.length}get dirtyElements(){return Array.from(this._dirtyElements)}get hasDirtyElements(){return this._dirtyElements.size>0}get buildStats(){return{...this._stats}}resetBuildStats(){this._stats={totalRebuilds:0,elementsRebuiltThisFrame:0,maxElementsPerFrame:0,averageElementsPerFrame:0,lastBuildTime:0,averageBuildTime:0,maxBuildTime:0},this._buildTimes.length=0,this._elementsPerFrame.length=0}dispose(){this._dirtyElements.clear()}}var iQ6=p(()=>{D0();AA()});function nQ6(J,Q){Ax1=J,jx1=Q}function aQ6(){return typeof process<"u"&&(process.env.BUN_TEST==="1"||globalThis.Bun?.jest!==void 0||typeof globalThis.test==="function")}function rQ6(){if(!Ax1){if(aQ6())return{scheduleBuildFor:()=>{}};throw Error("Build scheduler not initialized. Make sure WidgetsBinding is created.")}return Ax1}function h41(){if(!jx1){if(aQ6())return{requestLayout:()=>{},requestPaint:()=>{},removeFromQueues:()=>{}};throw Error("Paint scheduler not initialized. Make sure WidgetsBinding is created.")}return jx1}var Ax1=null,jx1=null;class A2{_parent=null;_children=new Set;_hasFocus=!1;_canRequestFocus=!0;_skipTraversal=!1;_keyHandlers=[];_onPasteCallback=null;_focusChangeListeners=new Set;_debugLabel=null;static _requestFocusCallback=null;constructor(J={}){if(this._debugLabel=J.debugLabel??null,this._canRequestFocus=J.canRequestFocus??!0,this._skipTraversal=J.skipTraversal??!1,J.onKey)this._keyHandlers.push(J.onKey);this._onPasteCallback=J.onPaste??null}get hasFocus(){return this._hasFocus}get canRequestFocus(){return this._canRequestFocus}set canRequestFocus(J){if(this._canRequestFocus!==J){if(this._canRequestFocus=J,!J&&this._hasFocus)this.unfocus()}}get skipTraversal(){return this._skipTraversal}set skipTraversal(J){this._skipTraversal=J}get parent(){return this._parent}get children(){return this._children}get debugLabel(){return this._debugLabel}get onPaste(){return this._onPasteCallback}set onPaste(J){this._onPasteCallback=J}static setRequestFocusCallback(J){A2._requestFocusCallback=J}requestFocus(){if(!this._canRequestFocus)return!1;if(A2._requestFocusCallback)return A2._requestFocusCallback(this);return!1}unfocus(){if(this._hasFocus){if(A2._requestFocusCallback)A2._requestFocusCallback(null)}}_attach(J){if(this._parent===J)return;if(this._parent)this._parent._children.delete(this);if(this._parent=J,J)J._children.add(this);if(A2._requestFocusCallback){let Q=A2._requestFocusCallback.__focusManager;if(Q&&Q._invalidateFocusableNodesCache)Q._invalidateFocusableNodesCache()}}_detach(){if(this._parent)this._parent._children.delete(this),this._parent=null;if(A2._requestFocusCallback){let J=A2._requestFocusCallback.__focusManager;if(J&&J._invalidateFocusableNodesCache)J._invalidateFocusableNodesCache()}if(this._hasFocus)this.unfocus()}_setFocus(J){if(this._hasFocus===J)return;this._hasFocus=J,this._notifyListeners()}addFocusChangeListener(J){this._focusChangeListeners.add(J)}removeFocusChangeListener(J){this._focusChangeListeners.delete(J)}_notifyListeners(){for(let J of this._focusChangeListeners)J(this._hasFocus)}_handleKeyEvent(J){return this.handleKeyEvent(J)}_handlePasteEvent(J){if(this._onPasteCallback)return this._onPasteCallback(J);return"ignored"}toStringShort(){let J=this._debugLabel?`"${this._debugLabel}"`:"",Q=this._hasFocus?" FOCUSED":"",Z=this._canRequestFocus?"":" (can't focus)";return`FocusNode${J}${Q}${Z}`}toStringDeep(J="",Q=!0){let Z=J+this.toStringShort();if(Q&&this._children.size>0){let X=J+" ";for(let Y of this._children)Z+=`
|
5453
|
-
`+Y.toStringDeep(X,!0)}return Z}addKeyHandler(J){this._keyHandlers.push(J)}removeKeyHandler(J){let Q=this._keyHandlers.indexOf(J);if(Q!==-1)this._keyHandlers.splice(Q,1)}handleKeyEvent(J){for(let Q of this._keyHandlers)if(Q(J)==="handled")return"handled";return"ignored"}dispose(){this._detach(),this._children.clear(),this._keyHandlers=[]}}var $U=()=>{};class RV{static _instance=null;_rootScope;_primaryFocus=null;_cachedFocusableNodes=null;constructor(){this._rootScope=new A2({debugLabel:"Root Focus Scope",canRequestFocus:!1});let J=(Q)=>this.requestFocus(Q);J.__focusManager=this,A2.setRequestFocusCallback(J)}static get instance(){if(!this._instance)this._instance=new RV;return this._instance}get primaryFocus(){return this._primaryFocus}get rootScope(){return this._rootScope}requestFocus(J){if(this._primaryFocus===J)return!0;if(J&&!J.canRequestFocus)return!1;if(this._primaryFocus)this._primaryFocus._setFocus(!1);if(this._primaryFocus=J,J)J._setFocus(!0);return!0}handleKeyEvent(J){if(!this._primaryFocus)return!1;let Q=this._primaryFocus;while(Q){if(Q._handleKeyEvent(J)==="handled")return!0;Q=Q.parent}return!1}handlePasteEvent(J){if(!this._primaryFocus)return!1;let Q=this._primaryFocus;while(Q){if(Q._handlePasteEvent(J)==="handled")return!0;Q=Q.parent}return!1}registerNode(J,Q=null){this._invalidateFocusableNodesCache();let Z=Q??this._rootScope;J._attach(Z)}unregisterNode(J){if(this._invalidateFocusableNodesCache(),this._primaryFocus===J)this.requestFocus(null);J._detach()}findNearestFocusableAncestor(J){let Q=J.parent;while(Q){if(Q.canRequestFocus&&!Q.skipTraversal)return Q;Q=Q.parent}return null}findAllFocusableNodes(){if(this._cachedFocusableNodes!==null)return this._cachedFocusableNodes;let J=[],Q=(Z)=>{if(Z.canRequestFocus&&!Z.skipTraversal)J.push(Z);for(let X of Z.children)Q(X)};return Q(this._rootScope),this._cachedFocusableNodes=J,J}_invalidateFocusableNodesCache(){this._cachedFocusableNodes=null}focusNext(){let J=this.findAllFocusableNodes();if(J.length===0)return!1;if(!this._primaryFocus)return this.requestFocus(J[0]??null);let Q=J.indexOf(this._primaryFocus);if(Q===-1)return this.requestFocus(J[0]??null);let Z=(Q+1)%J.length;return this.requestFocus(J[Z]??null)}focusPrevious(){let J=this.findAllFocusableNodes();if(J.length===0)return!1;if(!this._primaryFocus)return this.requestFocus(J[J.length-1]??null);let Q=J.indexOf(this._primaryFocus);if(Q===-1)return this.requestFocus(J[J.length-1]??null);let Z=Q===0?J.length-1:Q-1;return this.requestFocus(J[Z]??null)}dispose(){this._primaryFocus=null,this._cachedFocusableNodes=null,this._rootScope.dispose(),RV._instance=null}}var Rx1=p(()=>{$U()});function g41(J){if(J.length===0)return 0;let Q=[...J].sort((X,Y)=>X-Y),Z=Math.ceil(Q.length*0.99)-1;return Q[Math.max(0,Z)]||0}class sQ6{frameTimes=[];phaseTimes={build:[],layout:[],paint:[],render:[]};keyEventTimes=[];mouseEventTimes=[];lastKeyEventTime=0;lastMouseEventTime=0;MAX_SAMPLES=1024;recordFrame(J){if(this.frameTimes.push(J),this.frameTimes.length>this.MAX_SAMPLES)this.frameTimes.shift()}recordPhase(J,Q){let Z=this.phaseTimes[J];if(Z.push(Q),Z.length>this.MAX_SAMPLES)Z.shift()}recordKeyEvent(J){if(this.lastKeyEventTime=J,this.keyEventTimes.push(J),this.keyEventTimes.length>this.MAX_SAMPLES)this.keyEventTimes.shift()}recordMouseEvent(J){if(this.lastMouseEventTime=J,this.mouseEventTimes.push(J),this.mouseEventTimes.length>this.MAX_SAMPLES)this.mouseEventTimes.shift()}getFrameP99(){return g41(this.frameTimes)}getPhaseP99(J){return g41(this.phaseTimes[J])}getLastKeyEventTime(){return this.lastKeyEventTime}getKeyEventP99(){return g41(this.keyEventTimes)}getLastMouseEventTime(){return this.lastMouseEventTime}getMouseEventP99(){return g41(this.mouseEventTimes)}reset(){this.frameTimes=[];for(let J of Object.values(nm))this.phaseTimes[J]=[];this.keyEventTimes=[],this.mouseEventTimes=[],this.lastKeyEventTime=0,this.lastMouseEventTime=0}}class wx1{enabled=!1;tracker=new sQ6;setEnabled(J){if(this.enabled=J,!J)this.tracker.reset()}isEnabled(){return this.enabled}recordKeyEvent(J){if(!this.enabled)return;this.tracker.recordKeyEvent(J)}recordMouseEvent(J){if(!this.enabled)return;this.tracker.recordMouseEvent(J)}recordStats(J){if(!this.enabled)return;this.tracker.recordFrame(J.lastFrameTime);for(let Q of Object.values(nm))this.tracker.recordPhase(Q,J.phaseStats[Q].lastTime)}draw(J,Q){if(!this.enabled)return;let{width:Z,height:X}=J.getSize(),Y=26,K=12,q=Z-Y-2,G=1;if(q<0||G+K>=X)return;let z=d1.white,U=d1.brightWhite,F=d1.yellow,W=" Gotta Go Fast ",H=Math.floor((Y-W.length)/2);J.setCell(q,G,g9("╭",{fg:U}));for(let b=1;b<Y-1;b++)if(b>=H&&b<H+W.length)J.setCell(q+b,G,g9(W[b-H]||"─",{fg:F}));else J.setCell(q+b,G,g9("─",{fg:U}));J.setCell(q+Y-1,G,g9("╮",{fg:U}));for(let b=1;b<K-1;b++){J.setCell(q,G+b,g9("│",{fg:U})),J.setCell(q+Y-1,G+b,g9("│",{fg:U}));for(let m=1;m<Y-1;m++)J.setCell(q+m,G+b,g9(" ",{fg:U}))}J.setCell(q,G+K-1,g9("╰",{fg:U}));for(let b=1;b<Y-1;b++)J.setCell(q+b,G+K-1,g9("─",{fg:U}));J.setCell(q+Y-1,G+K-1,g9("╯",{fg:U}));let D=q+1,M=G+1;this.drawText(J,D,M++," Last P99",z);let V=this.tracker.getLastKeyEventTime(),N=this.tracker.getKeyEventP99(),L=V.toFixed(2).padStart(5," "),O=N.toFixed(2).padStart(5," "),A=this.getTimingColor(V),j=this.getTimingColor(N),R=` ${"Key".padStart(6," ")} `;this.drawText(J,D,M,R,z),this.drawText(J,D+R.length,M,L,A),this.drawText(J,D+R.length+L.length,M," ",z),this.drawText(J,D+R.length+L.length+3,M++,O,j);let I=this.tracker.getLastMouseEventTime(),w=this.tracker.getMouseEventP99(),E=I.toFixed(2).padStart(5," "),$=w.toFixed(2).padStart(5," "),P=this.getTimingColor(I),C=this.getTimingColor(w),k=` ${"Mouse".padStart(6," ")} `;this.drawText(J,D,M,k,z),this.drawText(J,D+k.length,M,E,P),this.drawText(J,D+k.length+E.length,M," ",z),this.drawText(J,D+k.length+E.length+3,M++,$,C),M++;for(let b of["build","layout","paint","render"]){let m=Q.phaseStats[b].lastTime,n=this.tracker.getPhaseP99(b),u=m.toFixed(2).padStart(5," "),Q1=n.toFixed(2).padStart(5," "),z1=this.getTimingColor(m),W1=this.getTimingColor(n),H1=` ${(b.charAt(0).toUpperCase()+b.slice(1)).padStart(6," ")} `;this.drawText(J,D,M,H1,z),this.drawText(J,D+H1.length,M,u,z1),this.drawText(J,D+H1.length+u.length,M," ",z),this.drawText(J,D+H1.length+u.length+3,M++,Q1,W1)}M++;let g=Q.lastFrameTime,T=this.tracker.getFrameP99(),v=g.toFixed(2).padStart(5," "),f=T.toFixed(2).padStart(5," "),h=this.getTimingColor(g),S=this.getTimingColor(T),x=` ${"Frame".padStart(6," ")} `;this.drawText(J,D,M,x,U),this.drawText(J,D+x.length,M,v,h),this.drawText(J,D+x.length+v.length,M," ",U),this.drawText(J,D+x.length+v.length+3,M++,f,S)}getTimingColor(J){let Q=Lx1,Z=Lx1*0.7;if(J>=Q)return d1.red;if(J>=Z)return d1.yellow;return d1.white}drawText(J,Q,Z,X,Y){for(let K=0;K<X.length;K++)J.setCell(Q+K,Z,g9(X[K]||" ",{fg:Y}))}}var oQ6=p(()=>{z9();AA()});class HQ{key;constructor({key:J}={}){if(this.constructor===HQ)throw Error("Widget is abstract and cannot be instantiated directly");this.key=J}canUpdate(J){if(this.constructor!==J.constructor)return!1;if(this.key===void 0&&J.key===void 0)return!0;if(this.key===void 0||J.key===void 0)return!1;return this.key.equals(J.key)}static canUpdate(J,Q){return J.canUpdate(Q)}}class UY{widget;parent;_children=[];_inheritedDependencies=new Set;_dirty=!1;_cachedDepth;_mounted=!1;constructor(J){this.widget=J}get children(){return this._children}get depth(){if(this._cachedDepth!==void 0)return this._cachedDepth;let J=0,Q=this.parent;while(Q)J++,Q=Q.parent;return this._cachedDepth=J,J}_invalidateDepth(){this._cachedDepth=void 0;for(let J of this._children)J._invalidateDepth()}get dirty(){return this._dirty}get mounted(){return this._mounted}get renderObject(){return}update(J){this.widget=J}addChild(J){J.parent=this,J._invalidateDepth(),this._children.push(J)}removeChild(J){let Q=this._children.indexOf(J);if(Q!==-1)this._children.splice(Q,1),J.parent=void 0,J._invalidateDepth()}removeAllChildren(){for(let J of this._children)J.parent=void 0,J._invalidateDepth();this._children.length=0}markMounted(){this._mounted=!0}unmount(){this._mounted=!1,this._dirty=!1,this._cachedDepth=void 0;for(let J of this._inheritedDependencies)if("removeDependent"in J)J.removeDependent(this);this._inheritedDependencies.clear()}markNeedsRebuild(){if(!this._mounted)return;this._dirty=!0,rQ6().scheduleBuildFor(this)}dependOnInheritedWidgetOfExactType(J){let Q=this.parent;while(Q){if(Q.widget.constructor===J){if("addDependent"in Q)Q.addDependent(this),this._inheritedDependencies.add(Q);return Q}Q=Q.parent}return null}findAncestorElementOfType(J){let Q=this.parent;while(Q){if(Q instanceof J)return Q;Q=Q.parent}return null}findAncestorWidgetOfType(J){let Q=this.parent;while(Q){if(Q.widget instanceof J)return Q.widget;Q=Q.parent}return null}}var wH=()=>{};var jG,tQ6;var RA=p(()=>{wH();jG=class jG extends HQ{child;constructor({key:J,child:Q}){super(J!==void 0?{key:J}:{});this.child=Q}createElement(){return new tQ6(this)}};tQ6=class tQ6 extends UY{_child;_dependents=new Set;constructor(J){super(J)}get inheritedWidget(){return this.widget}get child(){return this._child}get renderObject(){return this._child?.renderObject}mount(){this._child=this.inheritedWidget.child.createElement(),this.addChild(this._child),this._child.mount(),this.markMounted()}unmount(){if(this._child)this._child.unmount(),this.removeChild(this._child),this._child=void 0;this._dependents.clear(),super.unmount()}update(J){let Q=this.inheritedWidget;super.update(J);let Z=this.inheritedWidget;if(Z.updateShouldNotify(Q))this.notifyDependents();if(this._child&&this._child.widget.canUpdate(Z.child))this._child.update(Z.child);else{if(this._child)this._child.unmount(),this.removeChild(this._child);this._child=Z.child.createElement(),this.addChild(this._child),this._child.mount()}}addDependent(J){this._dependents.add(J)}removeDependent(J){this._dependents.delete(J)}notifyDependents(){for(let J of this._dependents)J.markNeedsRebuild()}performRebuild(){}}});class kT{size;capabilities;constructor(J,Q){this.size=J;this.capabilities=Q}get supportsEmojiWidth(){return this.capabilities.emojiWidth}get supportsSyncOutput(){return this.capabilities.syncOutput}}var m8;var RG=p(()=>{RA();m8=class m8 extends jG{data;constructor({key:J,data:Q,child:Z}){super(J!==void 0?{key:J,child:Z}:{child:Z});this.data=Q}updateShouldNotify(J){return this.data!==J.data||this.data.size.width!==J.data.size.width||this.data.size.height!==J.data.size.height||this.data.capabilities!==J.data.capabilities}static of(J){let Q=J.dependOnInheritedWidgetOfExactType(m8);if(Q)return Q.widget.data;throw Error("MediaQuery not found in context. Wrap your app with MediaQuery widget.")}static sizeOf(J){return m8.of(J).size}static capabilitiesOf(J){return m8.of(J).capabilities}}});class wV{_parent;_children=[];_needsLayout=!1;_needsPaint=!1;_cachedDepth;_attached=!1;allowHitTestOutsideBounds=!1;parentData;get parent(){return this._parent}get children(){return this._children}get depth(){if(this._cachedDepth!==void 0)return this._cachedDepth;let J=0,Q=this._parent;while(Q)J++,Q=Q._parent;return this._cachedDepth=J,J}_invalidateDepth(){this._cachedDepth=void 0;for(let J of this._children)J._invalidateDepth()}get needsLayout(){return this._needsLayout}get needsPaint(){return this._needsPaint}get attached(){return this._attached}adoptChild(J){if(J._parent=this,J._invalidateDepth(),this._children.push(J),"setupParentData"in this&&typeof this.setupParentData==="function")this.setupParentData(J);if(this._attached)J.attach();this.markNeedsLayout()}dropChild(J){let Q=this._children.indexOf(J);if(Q!==-1){if(J._attached)J.detach();this._children.splice(Q,1),J._parent=void 0,J._invalidateDepth(),this.markNeedsLayout()}}removeAllChildren(){for(let J of this._children){if(J._attached)J.detach();J._parent=void 0,J._invalidateDepth()}this._children.length=0,this.markNeedsLayout()}replaceChildren(J){for(let Q of J)Q._parent=this,Q._invalidateDepth();this._children=J,this.markNeedsLayout()}attach(){if(this._attached)return;this._attached=!0;for(let J of this._children)J.attach()}detach(){if(!this._attached)return;this._attached=!1;for(let J of this._children)J.detach()}markNeedsLayout(){if(this._needsLayout)return;if(!this._attached)return;if(this._needsLayout=!0,this.parent)this.parent.markNeedsLayout();else h41().requestLayout(this)}markNeedsPaint(){if(this._needsPaint)return;if(!this._attached)return;this._needsPaint=!0,h41().requestPaint(this)}performLayout(){}paint(J,Q=0,Z=0){this._needsPaint=!1;for(let X of this.children)if("offset"in X){let Y=X,K=Q+Y.offset.x,q=Z+Y.offset.y;X.paint(J,K,q)}else X.paint(J,Q,Z)}visitChildren(J){for(let Q of this._children)J(Q)}dispose(){h41().removeFromQueues(this),this._cachedDepth=void 0,this._parent=void 0,this._children.length=0}}function IV(J,Q=0){return Number.isFinite(J)?J:Q}class p6{minWidth;maxWidth;minHeight;maxHeight;constructor(J=0,Q=1/0,Z=0,X=1/0){this.minWidth=J;this.maxWidth=Q;this.minHeight=Z;this.maxHeight=X}static tight(J,Q){return new p6(J,J,Q,Q)}static loose(J,Q){return new p6(0,J,0,Q)}get hasBoundedWidth(){return this.maxWidth!==1/0}get hasBoundedHeight(){return this.maxHeight!==1/0}get hasTightWidth(){return this.minWidth>=this.maxWidth}get hasTightHeight(){return this.minHeight>=this.maxHeight}constrain(J,Q){return K8(isFinite(J),`BoxConstraints.constrain received infinite width: ${J}. This indicates a layout bug where a widget is not properly calculating its desired size.`),K8(isFinite(Q),`BoxConstraints.constrain received infinite height: ${Q}. This indicates a layout bug where a widget is not properly calculating its desired size.`),{width:Math.max(this.minWidth,Math.min(this.maxWidth,J)),height:Math.max(this.minHeight,Math.min(this.maxHeight,Q))}}equals(J){return this.minWidth===J.minWidth&&this.maxWidth===J.maxWidth&&this.minHeight===J.minHeight&&this.maxHeight===J.maxHeight}}var H8;var a9=p(()=>{I4();H8=class H8 extends wV{_size={width:0,height:0};get size(){return{...this._size}}setSize(J,Q){K8(Number.isFinite(J)&&Number.isFinite(Q),`RenderBox.setSize received non-finite dimension: ${J}x${Q}`),this._size.width=J,this._size.height=Q}_offset={x:0,y:0};get offset(){return{...this._offset}}setOffset(J,Q){let Z=Number.isFinite(J)?Math.round(J):0,X=Number.isFinite(Q)?Math.round(Q):0;this._offset.x=Z,this._offset.y=X}localToGlobal(J){let{x:Q,y:Z}=J,X=this;while(X)if(Q+=X._offset.x,Z+=X._offset.y,X=X.parent,X&&!("_offset"in X))break;return{x:Q,y:Z}}globalToLocal(J){let Q=this.localToGlobal({x:0,y:0});return{x:J.x-Q.x,y:J.y-Q.y}}_lastConstraints;layout(J){let Q=!this._lastConstraints||!J.equals(this._lastConstraints);if(!this._needsLayout&&!Q)return;this._lastConstraints=J,this._needsLayout=!1,this.performLayout()}getMinIntrinsicWidth(J){let Q=this.children;if(Q.length===0)return 0;let Z=0;for(let X of Q)Z=Math.max(Z,X.getMinIntrinsicWidth(J));return Z}getMaxIntrinsicWidth(J){let Q=this.children;if(Q.length===0)return 0;let Z=0;for(let X of Q)Z=Math.max(Z,X.getMaxIntrinsicWidth(J));return Z}getMinIntrinsicHeight(J){let Q=this.children;if(Q.length===0)return 0;let Z=0;for(let X of Q)Z=Math.max(Z,X.getMinIntrinsicHeight(J));return Z}getMaxIntrinsicHeight(J){let Q=this.children;if(Q.length===0)return 0;let Z=0;for(let X of Q)Z=Math.max(Z,X.getMaxIntrinsicHeight(J));return Z}paint(J,Q=0,Z=0){let X=J.getSize(),Y=X.width,K=X.height;for(let q of this.children)if(q instanceof H8){let G=Q+this.offset.x+q.offset.x,z=Z+this.offset.y+q.offset.y,U=G+q.size.width,F=z+q.size.height;if(!(G>=Y||z>=K||U<=0||F<=0))q.paint(J,Q+this.offset.x,Z+this.offset.y)}}hitTest(J,Q,Z=0,X=0){let Y=Z+this.offset.x,K=X+this.offset.y,q=Q.x>=Y&&Q.x<Y+this.size.width,G=Q.y>=K&&Q.y<K+this.size.height;if(q&&G){J.addWithPaintOffset(this,{x:Y,y:K},Q);let z=!0;for(let U=this.children.length-1;U>=0;U--)if(this.children[U].hitTest(J,Q,Y,K))z=!0;return z}if(this.allowHitTestOutsideBounds){let z=!1;for(let U=this.children.length-1;U>=0;U--)if(this.children[U].hitTest(J,Q,Y,K))z=!0;return z}return!1}}});var _T,h4,wG,wA,am,EV,m41,bT;var Y7=p(()=>{wH();_T=class _T extends HQ{constructor({key:J}={}){super(J!==void 0?{key:J}:{})}createElement(){return new am(this)}updateRenderObject(J){}};h4=class h4 extends _T{child;constructor({key:J,child:Q}={}){super(J?{key:J}:{});this.child=Q}createElement(){return new EV(this)}};wG=class wG extends _T{children;constructor({key:J,children:Q=[]}={}){super(J?{key:J}:{});this.children=[...Q]}createElement(){return new m41(this)}};wA=class wA extends _T{constructor({key:J}={}){super(J?{key:J}:{})}createElement(){return new bT(this)}};am=class am extends UY{_renderObject;constructor(J){super(J)}get renderObjectWidget(){return this.widget}get renderObject(){return this._renderObject}mount(){this._renderObject=this.renderObjectWidget.createRenderObject(),this._renderObject.attach(),this.markMounted()}unmount(){if(this._renderObject)this._renderObject.detach(),this._renderObject=void 0;super.unmount()}update(J){super.update(J);let Q=this.renderObjectWidget;if(this._renderObject)Q.updateRenderObject(this._renderObject)}performRebuild(){}};EV=class EV extends am{_child;constructor(J){super(J)}get singleChildWidget(){return this.widget}get child(){return this._child}mount(){if(super.mount(),this.singleChildWidget.child){if(this._child=this.singleChildWidget.child.createElement(),this.addChild(this._child),this._child.mount(),this._child.renderObject&&this.renderObject)this.renderObject.adoptChild(this._child.renderObject)}}unmount(){if(this._child)this._child.unmount(),this.removeChild(this._child),this._child=void 0;super.unmount()}update(J){super.update(J);let Q=this.singleChildWidget;if(Q.child&&this._child){if(this._child.widget.canUpdate(Q.child))this._child.update(Q.child);else if(this._child.unmount(),this.removeChild(this._child),this._child=Q.child.createElement(),this.addChild(this._child),this._child.mount(),this.renderObject){if(this.renderObject.removeAllChildren(),this._child.renderObject)this.renderObject.adoptChild(this._child.renderObject)}}else if(Q.child&&!this._child){if(this._child=Q.child.createElement(),this.addChild(this._child),this._child.mount(),this.renderObject&&this._child.renderObject)this.renderObject.adoptChild(this._child.renderObject)}else if(!Q.child&&this._child){if(this._child.unmount(),this.removeChild(this._child),this._child=void 0,this.renderObject)this.renderObject.removeAllChildren()}}performRebuild(){}};m41=class m41 extends am{_childElements=[];constructor(J){super(J)}get multiChildWidget(){return this.widget}get children(){return this._childElements}mount(){super.mount();for(let J of this.multiChildWidget.children){let Q=J.createElement();if(this._childElements.push(Q),this.addChild(Q),Q.mount(),Q.renderObject&&this.renderObject)this.renderObject.adoptChild(Q.renderObject)}}unmount(){for(let J of this._childElements)J.unmount(),this.removeChild(J);this._childElements.length=0,super.unmount()}update(J){super.update(J);let Q=this.multiChildWidget;this.updateChildren(this._childElements,[...Q.children])}updateChildren(J,Q){let Z=[],X=0,Y=0,K=J.length-1,q=Q.length-1;while(X<=K&&Y<=q){let U=J[X],F=Q[Y];if(!U||!F||!U.widget.canUpdate(F))break;if(U.widget!==F)U.update(F);Z.push(U),X++,Y++}let G=[];while(X<=K&&Y<=q){let U=J[K],F=Q[q];if(!U||!F||!U.widget.canUpdate(F))break;if(U.widget!==F)U.update(F);G.unshift(U),K--,q--}if(X>K)for(let U=Y;U<=q;U++){let F=Q[U];if(F){let W=this.createChildElement(F);Z.push(W)}}else if(Y>q)for(let U=X;U<=K;U++){let F=J[U];if(F)this.deactivateChild(F)}else{let U=new Map,F=new Map;for(let W=X;W<=K;W++){let H=J[W];if(H.widget.key){let D=H.widget.key.toString();U.set(D,H),F.set(D,W)}}for(let W=Y;W<=q;W++){let H=Q[W];if(!H)continue;let D;if(H.key){let M=H.key.toString();if(D=U.get(M),D){U.delete(M);let V=F.get(M);if(V!==void 0)J[V]=null;if(D.widget===H);else if(D.widget.canUpdate(H))D.update(H);else this.deactivateChild(D),D=this.createChildElement(H)}else D=this.createChildElement(H)}else{let M=!1;for(let V=X;V<=K;V++){let N=J[V];if(N&&!N.widget.key){if(N.widget===H){D=N,J[V]=null,M=!0;break}else if(N.widget.canUpdate(H)){D=N,J[V]=null,D.update(H),M=!0;break}}}if(!M)D=this.createChildElement(H)}if(D)Z.push(D)}for(let W=X;W<=K;W++){let H=J[W];if(H)this.deactivateChild(H)}for(let W of U.values())this.deactivateChild(W)}Z.push(...G);let z=this._childElements;if(this._childElements=Z,this.renderObject){let U=[];for(let H of Z)if(H.renderObject)U.push(H.renderObject);let F=this.renderObject.children;if(F.length!==U.length||F.some((H,D)=>H!==U[D]))this.renderObject.replaceChildren(U)}}createChildElement(J){let Q=J.createElement();return this.addChild(Q),Q.mount(),Q}deactivateChild(J){J.unmount(),this.removeChild(J)}performRebuild(){}};bT=class bT extends am{constructor(J){super(J)}get leafWidget(){return this.widget}performRebuild(){}}});var w5,eQ6,IG;var PU=p(()=>{I4();a9();Y7();rm();w5=class w5 extends h4{child;onClick;onEnter;onExit;onHover;onScroll;onRelease;onDrag;cursor;opaque;constructor({key:J,child:Q,onClick:Z,onEnter:X,onExit:Y,onHover:K,onScroll:q,onRelease:G,onDrag:z,cursor:U,opaque:F=!0}){super({key:J});this.child=Q,this.onClick=Z??null,this.onEnter=X??null,this.onExit=Y??null,this.onHover=K??null,this.onScroll=q??null,this.onRelease=G??null,this.onDrag=z??null,this.cursor=U??null,this.opaque=F}createElement(){return new eQ6(this)}createRenderObject(){return new IG({onClick:this.onClick,onEnter:this.onEnter,onExit:this.onExit,onHover:this.onHover,onScroll:this.onScroll,onRelease:this.onRelease,onDrag:this.onDrag,cursor:this.cursor,opaque:this.opaque})}updateRenderObject(J){J.onClick=this.onClick,J.onEnter=this.onEnter,J.onExit=this.onExit,J.onHover=this.onHover,J.onScroll=this.onScroll,J.onRelease=this.onRelease,J.onDrag=this.onDrag,J.cursor=this.cursor,J.opaque=this.opaque}};eQ6=class eQ6 extends EV{get mouseRegionWidget(){return this.widget}get renderObject(){return super.renderObject}};IG=class IG extends H8{onClick;onEnter;onExit;onHover;onScroll;onRelease;onDrag;cursor;opaque;_isHovered=!1;constructor({onClick:J,onEnter:Q,onExit:Z,onHover:X,onScroll:Y,onRelease:K,onDrag:q,cursor:G,opaque:z}){super();this.onClick=J,this.onEnter=Q,this.onExit=Z,this.onHover=X,this.onScroll=Y,this.onRelease=K,this.onDrag=q,this.cursor=G,this.opaque=z}get hasMouseListeners(){return!!(this.onClick||this.onEnter||this.onExit||this.onHover||this.onScroll||this.onRelease||this.onDrag)}get isHovered(){return this._isHovered}handleMouseEvent(J){switch(J.type){case"click":this.onClick?.(J);break;case"enter":this._isHovered=!0,this.onEnter?.(J);break;case"exit":this._isHovered=!1,this.onExit?.(J);break;case"hover":this.onHover?.(J);break;case"scroll":this.onScroll?.(J);break}}handleMouseRelease(J){this.onRelease?.(J)}handleMouseDrag(J){this.onDrag?.(J)}performLayout(){let J=this._lastConstraints;if(K8(!!J,"performLayout called without constraints"),this.children.length>0){let Q=this.children[0];Q.layout(J);let Z=Q.size;this.setSize(Z.width,Z.height),Q.setOffset(0,0)}else this.setSize(0,0);super.performLayout()}getMinIntrinsicHeight(J){if(this.children.length>0)return this.children[0].getMinIntrinsicHeight(J);return 0}getMaxIntrinsicHeight(J){if(this.children.length>0)return this.children[0].getMaxIntrinsicHeight(J);return 0}getMinIntrinsicWidth(J){if(this.children.length>0)return this.children[0].getMinIntrinsicWidth(J);return 0}getMaxIntrinsicWidth(J){if(this.children.length>0)return this.children[0].getMaxIntrinsicWidth(J);return 0}paint(J,Q=0,Z=0){if(this.children.length>0)this.children[0].paint(J,Q+this.offset.x,Z+this.offset.y)}hitTest(J,Q,Z=0,X=0){let Y=super.hitTest(J,Q,Z,X);if(Y&&this.hasMouseListeners)J.addMouseTarget(this,Q);return Y}getDebugProperties(){return{hasMouseListeners:this.hasMouseListeners,isHovered:this.isHovered,cursor:this.cursor,opaque:this.opaque}}dispose(){BQ.instance.removeRegion(this),this.onClick=null,this.onEnter=null,this.onExit=null,this.onHover=null,this.onScroll=null,this.onRelease=null,this.onDrag=null,this.cursor=null,super.dispose()}}});class Ix1{static hitTest(J,Q){let Z=new JZ6;return J.hitTest(Z,Q),Z}}class JZ6{_hits=[];get hits(){return this._hits}add(J){this._hits.push(J)}addWithPaintOffset(J,Q,Z){let X={x:Z.x-Q.x,y:Z.y-Q.y};this.add({target:J,localPosition:X})}addMouseTarget(J,Q){}}function Y79(){if(!wV.prototype.hitTest)wV.prototype.hitTest=function(J,Q,Z=0,X=0){if("size"in this&&"offset"in this){let K=this,q=K.size,G=K.offset;if(q&&G){let z=Z+G.x,U=X+G.y,F=Q.x>=z&&Q.x<z+q.width,W=Q.y>=U&&Q.y<U+q.height;if(F&&W){let H={x:Q.x-z,y:Q.y-U};J.add({target:this,localPosition:H});let D=this.children,M=!0;for(let V=D.length-1;V>=0;V--)if(D[V].hitTest(J,Q,z,U))M=!0;return M}if(this.allowHitTestOutsideBounds){let H=!1,D=this.children;for(let M=D.length-1;M>=0;M--)if(D[M].hitTest(J,Q,z,U))H=!0;return H}return!1}}let Y=!1;for(let K of this.children)if(K.hitTest(J,Q,Z,X))Y=!0;return Y}}var Ex1=p(()=>{a9();Y79()});function QZ6(J,Q,Z){return{position:Q,localPosition:Z,modifiers:{shift:J.modifiers.shift,ctrl:J.modifiers.ctrl,alt:J.modifiers.alt}}}function ZZ6(J,Q,Z,X=1){return{type:"click",button:J.button==="left"?"left":J.button==="middle"?"middle":J.button==="right"?"right":"left",clickCount:X,...QZ6(J,Q,Z)}}function XZ6(J,Q,Z){return{type:"scroll",direction:J.button==="wheel_up"?"up":"down",...QZ6(J,Q,Z)}}var BQ;var rm=p(()=>{CT();PU();Ex1();BQ=class BQ{static _instance=null;_rootRenderObject=null;_hoveredRegions=new Set;_vaxis=null;_currentCursor=R5.DEFAULT;_lastMousePosition=null;_dragTargets=[];_globalReleaseCallbacks=new Set;_globalClickCallbacks=new Set;_lastClickTime=new Map;_lastClickPosition=new Map;_currentClickCount=new Map;static DOUBLE_CLICK_TIME=500;static DOUBLE_CLICK_DISTANCE=2;static DOUBLE_CLICK_DISTANCE_SQUARED=BQ.DOUBLE_CLICK_DISTANCE*BQ.DOUBLE_CLICK_DISTANCE;_scratchCurrentRegions=new Set;_scratchEnteredRegions=new Set;_scratchExitedRegions=new Set;constructor(){}static get instance(){if(!this._instance)this._instance=new BQ;return this._instance}setRootRenderObject(J){this._rootRenderObject=J}setTui(J){this._vaxis=J}handleMouseEvent(J){if(!this._rootRenderObject)return;let Q={x:J.x,y:J.y},Z=Ix1.hitTest(this._rootRenderObject,Q),X=this._findMouseTargets(Z.hits);switch(J.action){case"press":if(J.button==="left"||J.button==="middle"||J.button==="right"){if(this._handleClick(J,Q,X),J.button==="left")this._dragTargets=X.map(({target:Y,localPosition:K})=>{let q={x:Q.x-K.x,y:Q.y-K.y};return{target:Y,localPosition:K,globalOffset:q}})}break;case"release":this._handleRelease(J,Q,X),this._dragTargets=[];break;case"scroll":if(J.button==="wheel_up"||J.button==="wheel_down")this._handleScroll(J,Q,X);break;case"move":if(this._handleMove(J,Q,X),J.drag)this._handleDrag(J,Q,X);break}this._lastMousePosition=Q}addGlobalReleaseCallback(J){this._globalReleaseCallbacks.add(J)}removeGlobalReleaseCallback(J){this._globalReleaseCallbacks.delete(J)}addGlobalClickCallback(J){this._globalClickCallbacks.add(J)}removeGlobalClickCallback(J){this._globalClickCallbacks.delete(J)}requestCursorChange(J){if(this._vaxis&&J!==this._currentCursor)this._currentCursor=J,this._vaxis.setMouseCursor(J)}_handleRelease(J,Q,Z){for(let X of this._globalReleaseCallbacks)X();for(let{target:X,localPosition:Y}of Z){if(typeof X.handleMouseRelease==="function")X.handleMouseRelease({type:"release",position:Q,localPosition:Y,button:J.button,modifiers:{shift:J.modifiers.shift,ctrl:J.modifiers.ctrl,alt:J.modifiers.alt}});if(X instanceof IG&&X.opaque)break}}_handleDrag(J,Q,Z){for(let{target:X,globalOffset:Y}of this._dragTargets)if(typeof X.handleMouseDrag==="function"){let K={x:Q.x-Y.x,y:Q.y-Y.y};X.handleMouseDrag({type:"drag",position:Q,localPosition:K,button:J.button,drag:J.drag,modifiers:{shift:J.modifiers.shift,ctrl:J.modifiers.ctrl,alt:J.modifiers.alt}})}}_handleClick(J,Q,Z){let X=this._calculateClickCount(Q,J.button);for(let Y of this._globalClickCallbacks)Y({event:J,globalPosition:Q,mouseTargets:Z,clickCount:X});for(let{target:Y,localPosition:K}of Z){let q=ZZ6(J,Q,K,X);if(Y.handleMouseEvent(q),Y instanceof IG&&Y.opaque)break}}_handleScroll(J,Q,Z){for(let{target:X,localPosition:Y}of Z){let K=XZ6(J,Q,Y);if(X.handleMouseEvent(K),X instanceof IG&&X.opaque)break}}_handleMove(J,Q,Z){let X=Z.filter((G)=>G.target instanceof IG),Y=this._scratchCurrentRegions,K=this._scratchExitedRegions,q=this._scratchEnteredRegions;Y.clear();for(let{target:G}of X)Y.add(G);K.clear();for(let G of this._hoveredRegions)if(!Y.has(G))K.add(G);q.clear();for(let G of Y)if(!this._hoveredRegions.has(G))q.add(G);for(let G of K)if(G.onExit){let z={type:"exit",position:Q,localPosition:Q,modifiers:{shift:J.modifiers.shift,ctrl:J.modifiers.ctrl,alt:J.modifiers.alt}};G.handleMouseEvent(z)}for(let{target:G,localPosition:z}of X)if(q.has(G)&&G.onEnter){let U={type:"enter",position:Q,localPosition:z,modifiers:{shift:J.modifiers.shift,ctrl:J.modifiers.ctrl,alt:J.modifiers.alt}};G.handleMouseEvent(U)}for(let{target:G,localPosition:z}of X)if(G.onHover&&this._hoveredRegions.has(G)){let U={type:"hover",position:Q,localPosition:z,modifiers:{shift:J.modifiers.shift,ctrl:J.modifiers.ctrl,alt:J.modifiers.alt}};G.handleMouseEvent(U)}this._hoveredRegions.clear();for(let G of Y)this._hoveredRegions.add(G);this._updateCursor(X)}_updateCursor(J){if(!this._vaxis)return;let Q=R5.DEFAULT;for(let{target:Z}of J)if(Z.cursor!==null)Q=Z.cursor;if(Q!==this._currentCursor)this._currentCursor=Q,this._vaxis.setMouseCursor(Q)}_findMouseTargets(J){let Q=[];for(let Z of J)if(this._canHandleMouseEvents(Z.target))Q.push({target:Z.target,localPosition:Z.localPosition});return Q}_canHandleMouseEvents(J){if(J instanceof IG)return!0;return typeof J.handleMouseEvent==="function"}clearHoverState(){if(this._hoveredRegions.clear(),this._dragTargets=[],this._vaxis&&this._currentCursor!==R5.DEFAULT)this._currentCursor=R5.DEFAULT,this._vaxis.setMouseCursor(R5.DEFAULT)}removeRegion(J){this._hoveredRegions.delete(J)}reestablishHoverState(){if(!this._lastMousePosition||!this._rootRenderObject)return;let J={type:"mouse",action:"move",x:this._lastMousePosition.x,y:this._lastMousePosition.y,button:"unknown",drag:!1,modifiers:{shift:!1,ctrl:!1,alt:!1,meta:!1}};this.handleMouseEvent(J)}_calculateClickCount(J,Q="left"){let Z=Date.now(),X=this._lastClickTime.get(Q)??0,Y=Z-X,K=1,q=this._lastClickPosition.get(Q);if(q&&Y<=BQ.DOUBLE_CLICK_TIME&&this._isWithinDoubleClickDistance(J,q))K=(this._currentClickCount.get(Q)??0)+1;else K=1;return this._lastClickTime.set(Q,Z),this._lastClickPosition.set(Q,J),this._currentClickCount.set(Q,K),K}_isWithinDoubleClickDistance(J,Q){let Z=J.x-Q.x,X=J.y-Q.y;return Z*Z+X*X<=BQ.DOUBLE_CLICK_DISTANCE_SQUARED}dispose(){this.clearHoverState(),this._lastMousePosition=null,this._rootRenderObject=null,this._lastClickTime.clear(),this._lastClickPosition.clear(),this._currentClickCount.clear(),this._globalReleaseCallbacks.clear(),this._globalClickCallbacks.clear(),BQ._instance=null}}});class $x1{_nodesNeedingPaint=new Set;_rootRenderObject=null;_rootConstraints=null;constructor(){}requestLayout(J){if(!XZ.instance.isFrameInProgress)XZ.instance.requestFrame()}requestPaint(J){if(this._nodesNeedingPaint.has(J))return;if(this._nodesNeedingPaint.add(J),!XZ.instance.isFrameInProgress)XZ.instance.requestFrame()}setRootRenderObject(J){this._rootRenderObject=J}updateRootConstraints(J){let Q=new p6(0,J.width,0,J.height),Z=!this._rootConstraints||this._rootConstraints.maxWidth!==Q.maxWidth||this._rootConstraints.maxHeight!==Q.maxHeight;if(this._rootConstraints=Q,Z&&this._rootRenderObject&&"markNeedsLayout"in this._rootRenderObject)this._rootRenderObject.markNeedsLayout()}flushLayout(){if(this._rootRenderObject&&this._rootConstraints&&"needsLayout"in this._rootRenderObject&&this._rootRenderObject.needsLayout){if("layout"in this._rootRenderObject&&typeof this._rootRenderObject.layout==="function")this._rootRenderObject.layout(this._rootConstraints)}}flushPaint(){if(this._nodesNeedingPaint.size===0)return;try{for(let J of this._nodesNeedingPaint)if(J.needsPaint)J._needsPaint=!1}finally{this._nodesNeedingPaint.clear()}}get nodesNeedingLayout(){return[]}get nodesNeedingPaint(){return Array.from(this._nodesNeedingPaint)}get hasNodesNeedingLayout(){return!1}get hasNodesNeedingPaint(){return this._nodesNeedingPaint.size>0}dispose(){this._nodesNeedingPaint.clear()}removeFromQueues(J){this._nodesNeedingPaint.delete(J)}}var YZ6=p(()=>{AA();a9()});var KZ6={};N6(KZ6,{setTerminalFocused:()=>q79,initFocusTracking:()=>K79,getTerminalFocused:()=>Tx1});function K79(J){let Q=(Z)=>{if(Z.type==="focus")Px1=Z.focused};J.onFocus(Q)}function Tx1(){return Px1}function q79(J){Px1=J}var Px1=!0;var GZ6={};N6(GZ6,{initIdleTracking:()=>G79,getIsIdle:()=>Cx1});function G79(J,Q=300000){qZ6=Q,u41=Date.now(),J.onKey(()=>{u41=Date.now()}),J.onMouse(()=>{u41=Date.now()})}function Cx1(){return Date.now()-u41>=qZ6}var u41,qZ6=300000;var Sx1=p(()=>{u41=Date.now()});class EG{static _instance;frameScheduler=XZ.instance;buildOwner;pipelineOwner;focusManager=RV.instance;mouseManager=BQ.instance;frameStatsOverlay=new wx1;tui=new Nx1;rootElement;isRunning=!1;static get instance(){return this._instance??=new EG}pendingResizeEvent=null;constructor(){this.buildOwner=new Ox1,this.pipelineOwner=new $x1,this.frameScheduler.addFrameCallback("resize",()=>this.processResizeIfPending(),"build",-1000,"WidgetsBinding.processResizeIfPending"),this.frameScheduler.addFrameCallback("build",()=>this.buildOwner.buildScopes(),"build",0,"BuildOwner.buildScopes"),this.frameScheduler.addFrameCallback("layout",()=>{this.updateRootConstraints(),this.pipelineOwner.flushLayout()},"layout",0,"PipelineOwner.flushLayout"),this.frameScheduler.addFrameCallback("paint",()=>this.paint(),"paint",0,"WidgetsBinding.paint"),this.frameScheduler.addFrameCallback("render",()=>this.render(),"render",0,"WidgetsBinding.render"),nQ6({scheduleBuildFor:(J)=>this.buildOwner.scheduleBuildFor(J)},{requestLayout:(J)=>this.pipelineOwner.requestLayout(J),requestPaint:(J)=>this.pipelineOwner.requestPaint(J),removeFromQueues:(J)=>this.pipelineOwner.removeFromQueues(J)}),this.setupErrorHandler()}setupErrorHandler(){process.on("uncaughtException",(J)=>{a.error("Framework uncaught exception",J)})}async runApp(J){if(this.isRunning)throw Error("App is already running");try{this.isRunning=!0,this.tui.init(),this.tui.enterAltScreen();let{initFocusTracking:Q}=await Promise.resolve().then(() => KZ6);Q(this.tui);let{initIdleTracking:Z}=await Promise.resolve().then(() => (Sx1(),GZ6));Z(this.tui),await this.tui.waitForCapabilities(1000);let X=this.createMediaQueryWrapper(J);this.rootElement=X.createElement(),this.rootElement.mount();let Y=this.rootElement.renderObject;if(!Y&&this.rootElement.children.length>0)Y=this.rootElement.children[0]?.renderObject;if(Y)this.pipelineOwner.setRootRenderObject(Y),this.updateRootConstraints();if(this.rootElement.renderObject)this.mouseManager.setRootRenderObject(this.rootElement.renderObject);this.mouseManager.setTui(this.tui),a.debug("Setting up event handlers..."),this.setupEventHandlers(),a.debug("Requesting initial frame..."),this.frameScheduler.requestFrame(),a.debug("Waiting for exit...",{isRunning:this.isRunning}),await this.waitForExit(),a.debug("waitForExit completed")}finally{a.debug("Cleaning up..."),await this.cleanup()}}stop(){if(this.isRunning=!1,this.exitResolve)this.exitResolve(),this.exitResolve=null}updateRootConstraints(){let J=this.tui.getSize();this.pipelineOwner.updateRootConstraints(J)}processResizeIfPending(){if(!this.pendingResizeEvent)return;let J=this.pendingResizeEvent;if(this.pendingResizeEvent=null,this.rootElement){let Q={width:J.width,height:J.height},Z=this.tui.getCapabilities()||{syncOutput:!1,emojiWidth:!1,pixelMouse:!1,pixelDimensions:!1,xtversion:null,canRgb:!0,supportsCursorShape:!0,animationSupport:"fast",kittyKeyboard:!1,osc52:!1,scrollStep:()=>3},X=new kT(Q,Z),Y=this.rootElement;if(Y.widget instanceof m8){let q=new m8({data:X,child:Y.widget.child});Y.update(q)}this.tui.getScreen().markForRefresh(),this.pipelineOwner.updateRootConstraints(Q),this.rootElement.markNeedsRebuild(),this.frameScheduler.requestFrame(),this.frameScheduler.addPostFrameCallback(()=>{this.mouseManager.reestablishHoverState()},"MouseManager.reestablishHoverState")}}paint(){if(this.pipelineOwner.flushPaint(),!this.rootElement)return;let J=this.rootElement.renderObject;if(!J&&this.rootElement.children.length>0)J=this.rootElement.children[0]?.renderObject;if(!J)return;try{let Q=this.tui.getScreen();Q.clear(),Q.clearCursor(),this.renderRenderObject(J,Q,0,0);let Z=this.frameScheduler.frameStats;this.frameStatsOverlay.recordStats(Z),this.frameStatsOverlay.draw(Q,Z)}catch(Q){a.error("Paint error:",Q)}}render(){try{this.tui.render()}catch(J){a.error("Render error:",J)}}renderRenderObject(J,Q,Z,X){if("paint"in J&&typeof J.paint==="function")J.paint(Q,Z,X)}createMediaQueryWrapper(J){let Q=this.tui.getCapabilities()||{syncOutput:!1,emojiWidth:!1,pixelMouse:!1,pixelDimensions:!1,xtversion:null,canRgb:!0,supportsCursorShape:!0,animationSupport:"fast",kittyKeyboard:!1,osc52:!1,scrollStep:()=>3},Z=this.tui.getSize(),X=new kT(Z,Q);return new m8({data:X,child:J})}setupEventHandlers(){this.tui.onResize((J)=>{this.mouseManager.clearHoverState(),this.pendingResizeEvent=J,this.frameScheduler.requestFrame()}),this.tui.onKey((J)=>{let Q=performance.now();if(this.focusManager.handleKeyEvent(J)){let Y=performance.now()-Q;this.frameStatsOverlay.recordKeyEvent(Y);return}this.handleGlobalKeyEvent(J);let X=performance.now()-Q;this.frameStatsOverlay.recordKeyEvent(X)}),this.tui.onMouse((J)=>{let Q=performance.now();this.mouseManager.handleMouseEvent(J);let Z=performance.now()-Q;this.frameStatsOverlay.recordMouseEvent(Z)}),this.tui.onPaste((J)=>{this.focusManager.handlePasteEvent(J)}),this.tui.onCapabilities((J)=>{if(this.rootElement){let Q=this.tui.getSize(),Z=new kT(Q,J.capabilities),X=this.rootElement;if(X.widget instanceof m8){let Y=new m8({data:Z,child:X.widget.child});X.update(Y)}this.rootElement.markNeedsRebuild(),this.frameScheduler.requestFrame()}})}handleGlobalKeyEvent(J){if(J.ctrlKey&&J.key==="z"&&!J.shiftKey&&!J.altKey&&!J.metaKey){this.tui.handleSuspend();return}}toggleFrameStatsOverlay(){let J=!this.frameStatsOverlay.isEnabled();this.frameStatsOverlay.setEnabled(J),this.frameScheduler.requestFrame()}exitPromise=null;exitResolve=null;async waitForExit(){if(this.exitPromise)return this.exitPromise;return this.exitPromise=new Promise((J)=>{if(this.exitResolve=J,!this.isRunning)J()}),this.exitPromise}async cleanup(){if(this.isRunning=!1,this.rootElement)this.rootElement.unmount(),this.rootElement=void 0;this.buildOwner.dispose(),this.pipelineOwner.dispose(),this.focusManager.dispose(),this.mouseManager.dispose(),this.frameScheduler.removeFrameCallback("resize"),this.frameScheduler.removeFrameCallback("build"),this.frameScheduler.removeFrameCallback("layout"),this.frameScheduler.removeFrameCallback("paint"),this.frameScheduler.removeFrameCallback("render"),await this.tui.deinit()}get tuiInstance(){return this.tui}get rootElementInstance(){return this.rootElement}}async function vx1(J,Q){let Z=EG.instance;if(Q?.stdin)Z.tuiInstance.setStdin(Q.stdin);await Z.runApp(J)}var kx1=p(()=>{D0();cQ6();iQ6();Rx1();AA();oQ6();RG();rm();YZ6()});class IH{element;widget;mediaQuery;parent;constructor(J,Q,Z=void 0,X=null){this.element=J;this.widget=Q;this.mediaQuery=Z;this.parent=X}findAncestorElementOfType(J){let Q=this.element.parent;while(Q){if(Q instanceof J)return Q;Q=Q.parent}return null}findAncestorWidgetOfType(J){return this.element.findAncestorWidgetOfType(J)}dependOnInheritedWidgetOfExactType(J){return this.element.dependOnInheritedWidgetOfExactType(J)}findAncestorStateOfType(J){let Q=this.element.parent;while(Q){if("state"in Q&&Q.state instanceof J)return Q.state;Q=Q.parent}return null}findRenderObject(){if("renderObject"in this.element){let J=this.element.renderObject;return J instanceof wV?J:void 0}return}}var sm=p(()=>{a9()});var zZ6=()=>{};class UZ6{constructor(){}}var o5;var om=p(()=>{o5=class o5 extends UZ6{value;constructor(J){super();this.value=J}equals(J){if(!(J instanceof o5))return!1;return this.value===J.value}get hashCode(){if(this.value===null||this.value===void 0)return 0;if(typeof this.value==="string")return this.stringHash(this.value);if(typeof this.value==="number")return this.value;if(typeof this.value==="boolean")return this.value?1:0;return this.stringHash(String(this.value))}stringHash(J){let Q=0;for(let Z=0;Z<J.length;Z++){let X=J.charCodeAt(Z);Q=(Q<<5)-Q+X,Q=Q&Q}return Q}toString(){return`ValueKey(${this.value})`}}});var I5,FZ6;var IA=p(()=>{I4();a9();Y7();I5=class I5 extends h4{constructor({key:J,child:Q}={}){super({key:J,child:Q})}createRenderObject(){return new FZ6}updateRenderObject(J){}static child(J){return new I5({child:J})}};FZ6=class FZ6 extends H8{constructor(){super()}performLayout(){let J=this._lastConstraints;K8(!!J,"performLayout called without constraints");let Q=this.children[0];if(!Q){let G=IV(J.maxWidth,J.minWidth),z=IV(J.maxHeight,J.minHeight);this.setSize(G,z),super.performLayout();return}Q.layout(p6.loose(J.maxWidth,J.maxHeight));let Z=J.maxWidth===1/0?Q.size.width:J.maxWidth,X=J.maxHeight===1/0?Q.size.height:J.maxHeight,Y=J.constrain(Z,X);this.setSize(Y.width,Y.height);let K=(this.size.width-Q.size.width)/2,q=(this.size.height-Q.size.height)/2;Q.setOffset(K,q),super.performLayout()}}});var EH;var tm=p(()=>{z9();EH=class EH extends dm{_screen;_clipX;_clipY;_clipWidth;_clipHeight;constructor(J,Q,Z,X,Y){super(X,Y);this._screen=J,this._clipX=Q,this._clipY=Z,this._clipWidth=X,this._clipHeight=Y}setChar(J,Q,Z,X,Y=1){if(J>=this._clipX&&J<this._clipX+this._clipWidth&&Q>=this._clipY&&Q<this._clipY+this._clipHeight)this._screen.setChar(J,Q,Z,X||{},Y)}setCell(J,Q,Z){if(J>=this._clipX&&J<this._clipX+this._clipWidth&&Q>=this._clipY&&Q<this._clipY+this._clipHeight)this._screen.setCell(J,Q,Z)}fill(J,Q,Z,X,Y=" ",K){let q=Math.max(J,this._clipX),G=Math.max(Q,this._clipY),z=Math.min(J+Z,this._clipX+this._clipWidth),U=Math.min(Q+X,this._clipY+this._clipHeight);if(q<z&&G<U)this._screen.fill(q,G,z-q,U-G,Y,K)}getSize(){return this._screen.getSize()}resize(J,Q){return this._screen.resize(J,Q)}getBuffer(){return this._screen.getBuffer()}getFrontBuffer(){return this._screen.getFrontBuffer()}getBackBuffer(){return this._screen.getBackBuffer()}getCell(J,Q){return this._screen.getCell(J,Q)}clear(){return this._screen.clear()}present(){return this._screen.present()}getDiff(){return this._screen.getDiff()}markForRefresh(){return this._screen.markForRefresh()}setCursor(J,Q){return this._screen.setCursor(J,Q)}clearCursor(){return this._screen.clearCursor()}getCursor(){return this._screen.getCursor()}isCursorVisible(){return this._screen.isCursorVisible()}}});var _x1,WZ6;var bx1=p(()=>{I4();tm();a9();Y7();_x1=class _x1 extends h4{clipBehavior;constructor(J,{key:Q,clipBehavior:Z="antiAlias"}={}){super(Q?{child:J,key:Q}:{child:J});this.clipBehavior=Z}createRenderObject(){return new WZ6(this.clipBehavior)}updateRenderObject(J){J.updateClipBehavior(this.clipBehavior)}};WZ6=class WZ6 extends H8{_clipBehavior;constructor(J){super();this._clipBehavior=J}updateClipBehavior(J){if(this._clipBehavior!==J)this._clipBehavior=J,this.markNeedsPaint()}performLayout(){let J=this._lastConstraints;if(K8(!!J,"performLayout called without constraints"),this.children.length===0){this.setSize(J.minWidth,J.minHeight),super.performLayout();return}this.children[0].layout(J),this.setSize(J.maxWidth,J.maxHeight),super.performLayout()}paint(J,Q=0,Z=0){if(this.children.length===0||this._clipBehavior==="none"){super.paint(J,Q,Z);return}let X=this.children[0],Y=Q+this.offset.x,K=Z+this.offset.y,q=this.size.width,G=this.size.height,z=new EH(J,Y,K,q,G);X.paint(z,Q+this.offset.x,Z+this.offset.y)}}});class em{detach(){}toString(){return`${this.constructor.name}#${this.hashCode()}`}hashCode(){return Math.random().toString(36).substr(2,9)}}var Ju;var p41=p(()=>{Ju=class Ju extends em{flex;fit;constructor(J=0,Q="tight"){super();this.flex=J,this.fit=Q}toString(){return`FlexParentData(flex: ${this.flex}, fit: ${this.fit})`}}});var Qu,HZ6,BZ6;var d41=p(()=>{I4();a9();Y7();p41();Qu=class Qu extends wG{direction;mainAxisAlignment;crossAxisAlignment;mainAxisSize;constructor({key:J,direction:Q,children:Z=[],mainAxisAlignment:X="start",crossAxisAlignment:Y="center",mainAxisSize:K="min"}){super({...J?{key:J}:{},children:Z});this.direction=Q,this.mainAxisAlignment=X,this.crossAxisAlignment=Y,this.mainAxisSize=K}createRenderObject(){return new BZ6(this.direction,this.mainAxisAlignment,this.crossAxisAlignment,this.mainAxisSize)}updateRenderObject(J){J.updateProperties(this.direction,this.mainAxisAlignment,this.crossAxisAlignment,this.mainAxisSize)}createElement(){return new HZ6(this)}};HZ6=class HZ6 extends m41{constructor(J){super(J)}get flexWidget(){return this.widget}mount(){super.mount(),this._setupChildParentData()}update(J){super.update(J),this._setupChildParentData()}performRebuild(){super.performRebuild(),this._setupChildParentData()}_setupChildParentData(){for(let J of this.children){let Q=J.renderObject;if(Q&&!Q.parentData)Q.parentData=new Ju(0,"tight")}}};BZ6=class BZ6 extends H8{_direction;_mainAxisAlignment;_crossAxisAlignment;_mainAxisSize;constructor(J,Q,Z,X){super();this._direction=J;this._mainAxisAlignment=Q;this._crossAxisAlignment=Z;this._mainAxisSize=X}updateProperties(J,Q,Z,X){this._direction=J,this._mainAxisAlignment=Q,this._crossAxisAlignment=Z,this._mainAxisSize=X,this.markNeedsLayout()}performLayout(){super.performLayout();let J=this._lastConstraints;K8(!!J,"performLayout called without constraints");let Q=this._direction==="horizontal",Z=[],X=[];for(let D of this.children){let M=D.parentData;if(M&&M.flex>0)Z.push({child:D,flex:M.flex,fit:M.fit});else X.push(D)}let Y=0,K=0,q,G=Q?J.maxHeight:J.maxWidth;if(isFinite(G))q=G;else{let D=0;for(let M of X){let V=Q?M.getMaxIntrinsicHeight(1/0):M.getMaxIntrinsicWidth(1/0);D=Math.max(D,V)}q=D}for(let D of X){let M=Q?new p6(0,1/0,0,q):new p6(0,q,0,1/0);if(D.layout(M),Q)Y+=D.size.width,K=Math.max(K,D.size.height);else Y+=D.size.height,K=Math.max(K,D.size.width)}let z=Q?J.maxWidth:J.maxHeight,U=Number.isFinite(z)?Math.max(0,z-Y):0,F=Z.reduce((D,M)=>D+M.flex,0);if(F>0){let D=U/F,M=0;for(let V=0;V<Z.length;V++){let{child:N,flex:L,fit:O}=Z[V],A;if(V===Z.length-1)A=U-M;else A=Math.floor(D*L),M+=A;let j=Q?J.maxHeight:J.maxWidth,R=Q?O==="tight"?new p6(A,A,0,j):p6.loose(A,j):O==="tight"?new p6(0,j,A,A):p6.loose(j,A);if(N.layout(R),Q)K=Math.max(K,N.size.height);else K=Math.max(K,N.size.width)}}let W=Y+(F>0?U:0);if(Q){K8(!(Z.length>0&&J.maxWidth===1/0&&this._mainAxisSize!=="min"),"RenderFlex children have non-zero flex but incoming width constraints are unbounded. Consider using MainAxisSize.min instead, or providing bounded width constraints.");let D=this._mainAxisSize==="min"||J.maxWidth===1/0?W:Math.max(J.minWidth,J.maxWidth);this.setSize(IV(D,J.minWidth),IV(K,J.minHeight))}else{K8(!(Z.length>0&&J.maxHeight===1/0&&this._mainAxisSize!=="min"),"RenderFlex children have non-zero flex but incoming height constraints are unbounded. Consider using MainAxisSize.min instead, or providing bounded height constraints.");let D=this._mainAxisSize==="min"||J.maxHeight===1/0?Math.min(Math.max(W,J.minHeight),J.maxHeight):Math.max(J.minHeight,J.maxHeight),M=this._mainAxisSize==="min"||J.maxHeight===1/0?Math.min(Math.max(K,J.minWidth),J.maxWidth):J.maxWidth;this.setSize(IV(M,J.minWidth),IV(D,J.minHeight))}if(this._crossAxisAlignment==="stretch"){let D=Q?this.size.height:this.size.width;for(let M of X){let V=Q?new p6(0,1/0,D,D):new p6(D,D,0,1/0);M.layout(V)}for(let{child:M}of Z){let V=Q?M.size.width:M.size.height,N=Q?new p6(V,V,D,D):new p6(D,D,V,V);M.layout(N)}}let H=Q?this.size.height:this.size.width;this.positionChildren(Q,H,J)}positionChildren(J,Q,Z){let X=this.children;if(X.length===0)return;let Y=0;for(let F of X)Y+=J?F.size.width:F.size.height;let K=J?this.size.width:this.size.height,q=Math.max(0,K-Y),G=0,z=0;switch(this._mainAxisAlignment){case"start":G=0;break;case"end":G=q;break;case"center":G=q/2;break;case"spaceBetween":z=X.length>1?Math.floor(q/(X.length-1)):0;break;case"spaceAround":z=X.length>0?q/X.length:0,G=z/2;break;case"spaceEvenly":z=X.length>0?Math.floor(q/(X.length+1)):0,G=z;break}let U=G;for(let F=0;F<X.length;F++){let W=X[F],H=J?W.size.width:W.size.height,D=J?W.size.height:W.size.width,M=0;switch(this._crossAxisAlignment){case"start":M=0;break;case"end":M=Q-D;break;case"center":M=(Q-D)/2;break;case"stretch":M=0;break;case"baseline":if(!J)throw Error("CrossAxisAlignment.baseline is only supported for horizontal flex (Row)");M=0;break}if(J)W.setOffset(U,M);else W.setOffset(M,U);if(U+=H,F<X.length-1)U+=z}}getMinIntrinsicWidth(J){let Q=this._direction==="horizontal",Z=this.children;if(Q){let X=0;for(let Y of Z){let K=Y.parentData;if(!K||K.flex===0)X+=Y.getMinIntrinsicWidth(J)}return X}else{let X=0;for(let Y of Z)X=Math.max(X,Y.getMinIntrinsicWidth(J));return X}}getMaxIntrinsicWidth(J){let Q=this._direction==="horizontal",Z=this.children;if(Q){let X=0;for(let Y of Z){let K=Y.parentData;if(!K||K.flex===0)X+=Y.getMaxIntrinsicWidth(J)}return X}else{let X=0;for(let Y of Z)X=Math.max(X,Y.getMaxIntrinsicWidth(J));return X}}getMaxIntrinsicHeight(J){let Q=this._direction==="horizontal",Z=this.children;if(Q){let X=0,Y=0,K=[],q=[];for(let U of Z){let F=U.parentData;if(F&&F.flex>0)Y+=F.flex,q.push({child:U,flex:F.flex});else K.push(U)}let G=0;for(let U of K)G+=U.getMaxIntrinsicWidth(0);let z=Math.max(0,J-G);for(let U of Z){let F=U.parentData,W=J;if(F&&F.flex>0&&Y>0)W=z/Y*F.flex;X=Math.max(X,U.getMaxIntrinsicHeight(W))}return X}else{let X=0;for(let Y of Z){let K=Y.parentData;if(!K||K.flex===0)X+=Y.getMaxIntrinsicHeight(J)}return X}}getMinIntrinsicHeight(J){let Q=this._direction==="horizontal",Z=this.children;if(Q){let X=0,Y=0,K=[],q=[];for(let U of Z){let F=U.parentData;if(F&&F.flex>0)Y+=F.flex,q.push(U);else K.push(U)}let G=0;for(let U of K)G+=U.getMinIntrinsicWidth(0);let z=Math.max(0,J-G);for(let U of Z){let F=U.parentData,W=J;if(F&&F.flex>0&&Y>0)W=z/Y*F.flex;X=Math.max(X,U.getMinIntrinsicHeight(W))}return X}else{let X=0;for(let Y of Z){let K=Y.parentData;if(!K||K.flex===0)X+=Y.getMinIntrinsicHeight(J)}return X}}dispose(){this._direction="vertical",this._mainAxisAlignment="start",this._crossAxisAlignment="start",this._mainAxisSize="min",super.dispose()}}});var O6;var GX=p(()=>{d41();O6=class O6 extends Qu{constructor({key:J,children:Q=[],mainAxisAlignment:Z="start",crossAxisAlignment:X="center",mainAxisSize:Y="max"}={}){super({...J?{key:J}:{},direction:"vertical",children:Q,mainAxisAlignment:Z,crossAxisAlignment:X,mainAxisSize:Y})}static start(J){return new O6({children:J,mainAxisAlignment:"start"})}static center(J){return new O6({children:J,mainAxisAlignment:"center"})}static end(J){return new O6({children:J,mainAxisAlignment:"end"})}static spaceBetween(J){return new O6({children:J,mainAxisAlignment:"spaceBetween"})}static spaceAround(J){return new O6({children:J,mainAxisAlignment:"spaceAround"})}static spaceEvenly(J){return new O6({children:J,mainAxisAlignment:"spaceEvenly"})}}});class h2{color;border;constructor(J,Q){this.color=J;this.border=Q}}class H4{top;right;bottom;left;constructor(J,Q,Z,X){this.top=J;this.right=Q;this.bottom=Z;this.left=X}static all(J){return new H4(J,J,J,J)}static symmetric(J,Q){return new H4(Q,J,Q,J)}}class g4{color;width;style;constructor(J=d1.black,Q=1,Z="rounded"){this.color=J;this.width=Q;this.style=Z}}var s6,c41;var EJ=p(()=>{I4();z9();a9();Y7();s6=class s6 extends h4{width;height;padding;margin;decoration;constraints;constructor({key:J,child:Q,width:Z,height:X,padding:Y,margin:K,decoration:q,constraints:G}={}){super({...J?{key:J}:{},...Q?{child:Q}:{}});this.width=Z,this.height=X,this.padding=Y,this.margin=K,this.decoration=q,this.constraints=G}createRenderObject(){return new c41(this.width,this.height,this.padding,this.margin,this.decoration,this.constraints)}updateRenderObject(J){if(!(J instanceof c41))throw Error("renderObject must be an instance of ContainerRenderObject");J.updateProperties(this.width,this.height,this.padding,this.margin,this.decoration,this.constraints)}};c41=class c41 extends H8{_width;_height;_padding;_margin;_decoration;_constraints;constructor(J,Q,Z,X,Y,K){super();this._width=J;this._height=Q;this._padding=Z;this._margin=X;this._decoration=Y;this._constraints=K}updateProperties(J,Q,Z,X,Y,K){this._width=J,this._height=Q,this._padding=Z,this._margin=X,this._decoration=Y,this._constraints=K,this.markNeedsLayout(),this.markNeedsPaint()}performLayout(){super.performLayout();let J=this._lastConstraints;K8(!!J,"performLayout called without constraints");let Q=J;if(this._constraints)Q=new p6(Math.max(J.minWidth,this._constraints.minWidth),Math.min(J.maxWidth,this._constraints.maxWidth),Math.max(J.minHeight,this._constraints.minHeight),Math.min(J.maxHeight,this._constraints.maxHeight));let Z=this._margin?.horizontal??0,X=this._margin?.vertical??0,Y=this._padding?.horizontal??0,K=this._padding?.vertical??0,q=this._decoration?.border,G=(q?.left?1:0)+(q?.right?1:0),z=(q?.top?1:0)+(q?.bottom?1:0),U,F;if(this._width!==void 0)U=this._width;if(this._height!==void 0)F=this._height;let W,H;if(U!==void 0)W=Math.max(0,U-Z-Y-G);else W=Q.maxWidth-Z-Y-G;if(F!==void 0)H=Math.max(0,F-X-K-z);else H=Q.maxHeight-X-K-z;let D=new p6(Math.max(0,Q.minWidth-Z-Y-G),Math.max(0,W),Math.max(0,Q.minHeight-X-K-z),Math.max(0,H)),M,V;if(this.children.length>0){let O=this.children[0];if(!(O instanceof H8))throw Error("Child must be a RenderBox");O.layout(D),M=O.size.width,V=O.size.height;let A=q?.left?1:0,j=q?.top?1:0,R=(this._margin?.left??0)+A+(this._padding?.left??0),I=(this._margin?.top??0)+j+(this._padding?.top??0);O.setOffset(R,I)}else M=0,V=0;let N,L;if(U!==void 0)N=U;else N=M+Y+G+Z;if(F!==void 0)L=F;else L=V+K+z+X;if(Q.minWidth===Q.maxWidth&&isFinite(Q.maxWidth))N=Q.maxWidth;if(Q.minHeight===Q.maxHeight&&isFinite(Q.maxHeight))L=Q.maxHeight;this.setSize(Q.constrain(N,L).width,Q.constrain(N,L).height)}getMinIntrinsicWidth(J){let Q=this._margin?.horizontal??0,Z=this._padding?.horizontal??0,X=this._decoration?.border,Y=(X?.left?1:0)+(X?.right?1:0),K=0;if(this.children.length>0){let q=this.children[0],G=Math.max(0,J-(this._margin?.vertical??0)-(this._padding?.vertical??0)-((X?.top?1:0)+(X?.bottom?1:0)));K=q.getMinIntrinsicWidth(G)}return K+Q+Z+Y}getMaxIntrinsicWidth(J){if(this._width!==void 0)return this._width;if(this._constraints&&this._constraints.maxWidth!==1/0)return this._constraints.maxWidth;let Q=this._margin?.horizontal??0,Z=this._padding?.horizontal??0,X=this._decoration?.border,Y=(X?.left?1:0)+(X?.right?1:0),K=1/0;if(this.children.length>0){let q=this.children[0],G=Math.max(0,J-(this._margin?.vertical??0)-(this._padding?.vertical??0)-((X?.top?1:0)+(X?.bottom?1:0)));K=q.getMaxIntrinsicWidth(G)}if(K===1/0)return 1/0;return K+Q+Z+Y}getMinIntrinsicHeight(J){let Q=this._margin?.vertical??0,Z=this._padding?.vertical??0,X=this._decoration?.border,Y=(X?.top?1:0)+(X?.bottom?1:0),K=0;if(this.children.length>0){let G=this.children[0],z=Math.max(0,J-(this._margin?.horizontal??0)-(this._padding?.horizontal??0)-((X?.left?1:0)+(X?.right?1:0)));K=G.getMinIntrinsicHeight(z)}let q=K+Q+Z+Y;if(this._constraints&&this._constraints.maxHeight!==1/0)return Math.min(q,this._constraints.maxHeight);return q}getMaxIntrinsicHeight(J){if(this._height!==void 0)return this._height;if(this._constraints&&this._constraints.maxHeight!==1/0)return this._constraints.maxHeight;let Q=this._margin?.vertical??0,Z=this._padding?.vertical??0,X=this._decoration?.border,Y=(X?.top?1:0)+(X?.bottom?1:0),K=0;if(this.children.length>0){let q=this.children[0],G=Math.max(0,J-(this._margin?.horizontal??0)-(this._padding?.horizontal??0)-((X?.left?1:0)+(X?.right?1:0)));K=q.getMaxIntrinsicHeight(G)}if(K===1/0)return 1/0;return K+Q+Z+Y}paint(J,Q=0,Z=0){let X=Math.floor(Q+this.offset.x),Y=Math.floor(Z+this.offset.y);if(this._decoration?.color){let K={bg:this._decoration.color};J.fill(X,Y,this.size.width,this.size.height," ",K)}if(this._decoration?.border)this._paintBorder(J,X,Y);super.paint(J,Q,Z)}_paintBorder(J,Q,Z){let X=this._decoration.border,Y=this.size.width,K=this.size.height,q=(H)=>{switch(H){case 1:return"─";case 2:return"━";case 3:return"━";default:return"━"}},G=(H)=>{switch(H){case 1:return"│";case 2:return"┃";case 3:return"┃";default:return"┃"}},z=(H,D)=>{if(H===1)return D?{tl:"╭",tr:"╮",bl:"╰",br:"╯"}:{tl:"┌",tr:"┐",bl:"└",br:"┘"};else return D?{tl:"╭",tr:"╮",bl:"╰",br:"╯"}:{tl:"┏",tr:"┓",bl:"┗",br:"┛"}};if(X.top){let H={fg:X.top.color},D=q(X.top.width);for(let M=0;M<Y;M++)J.setChar(Q+M,Z,D,H,1)}if(X.bottom){let H={fg:X.bottom.color},D=q(X.bottom.width);for(let M=0;M<Y;M++)J.setChar(Q+M,Z+K-1,D,H,1)}if(X.left){let H={fg:X.left.color},D=G(X.left.width);for(let M=0;M<K;M++)J.setChar(Q,Z+M,D,H,1)}if(X.right){let H={fg:X.right.color},D=G(X.right.width);for(let M=0;M<K;M++)J.setChar(Q+Y-1,Z+M,D,H,1)}let U=X.top?.style==="rounded",F=Math.max(X.top?.width??1,X.right?.width??1,X.bottom?.width??1,X.left?.width??1),W=z(F,U);if(X.top&&X.left){let H={fg:X.top.color};J.setChar(Q,Z,W.tl,H,1)}if(X.top&&X.right){let H={fg:X.top.color};J.setChar(Q+Y-1,Z,W.tr,H,1)}if(X.bottom&&X.left){let H={fg:X.bottom.color};J.setChar(Q,Z+K-1,W.bl,H,1)}if(X.bottom&&X.right){let H={fg:X.bottom.color};J.setChar(Q+Y-1,Z+K-1,W.br,H,1)}}hitTest(J,Q,Z=0,X=0){return super.hitTest(J,Q,Z,X)}_getBorderWidth(){let J=this._decoration?.border;if(!J)return 0;let Q=[J.top,J.right,J.bottom,J.left].filter((Z)=>Z!==void 0);return Q.length>0?Math.max(...Q.map((Z)=>Z.width)):0}dispose(){this._decoration=void 0,this._constraints=void 0,this._padding=void 0,this._margin=void 0,super.dispose()}}});var Zu,DZ6;var l41=p(()=>{wH();Zu=class Zu extends HQ{child;constructor(J,Q){super(Q);this.child=J}createElement(){return new DZ6(this)}};DZ6=class DZ6 extends UY{_child;constructor(J){super(J)}get parentDataWidget(){return this.widget}get child(){return this._child}get renderObject(){return this._child?.renderObject}mount(){this._child=this.parentDataWidget.child.createElement(),this.addChild(this._child),this._child.mount(),this._applyParentData()}unmount(){if(this._child)this._child.unmount(),this.removeChild(this._child),this._child=void 0;super.unmount()}update(J){super.update(J);let Q=J;if(this._child)if(this._child.widget.canUpdate(Q.child))this._child.update(Q.child);else this._child.unmount(),this.removeChild(this._child),this._child=Q.child.createElement(),this.addChild(this._child),this._child.mount();else this._child=Q.child.createElement(),this.addChild(this._child),this._child.mount();this._applyParentData()}performRebuild(){this._applyParentData()}_applyParentData(){let J=this._child;if(!J)return;let Q=J.renderObject;if(!Q)return;if(!this.parentDataWidget.debugIsValidRenderObject(Q))throw Error(`ParentDataWidget ${this.parentDataWidget.constructor.name} provided parent data to ${Q.constructor.name}, but ${Q.constructor.name} doesn't support this type of parent data.`);if(!Q.parentData||Q.parentData.constructor!==this.parentDataWidget.createParentData().constructor)Q.parentData=this.parentDataWidget.createParentData();this.parentDataWidget.applyParentData(Q)}}});var $2;var TU=p(()=>{l41();p41();$2=class $2 extends Zu{flex;constructor({child:J,flex:Q=1,key:Z}){super(J,Z);this.flex=Q}createParentData(){return new Ju(this.flex,"tight")}applyParentData(J){let Q=J.parentData;if(Q)Q.flex=this.flex,Q.fit="tight"}debugIsValidRenderObject(J){return!0}toString(){return`Expanded(flex: ${this.flex}, child: ${this.child})`}}});var MZ6=()=>{};class B6{left;top;right;bottom;constructor(J,Q,Z,X){this.left=J;this.top=Q;this.right=Z;this.bottom=X}static all(J){return new B6(J,J,J,J)}static symmetric(J=0,Q=0){return new B6(J,Q,J,Q)}static horizontal(J){return new B6(J,0,J,0)}static vertical(J){return new B6(0,J,0,J)}static only(J){return new B6(J.left??0,J.top??0,J.right??0,J.bottom??0)}get horizontal(){return this.left+this.right}get vertical(){return this.top+this.bottom}}var S8,yx1,fx1;var FY=p(()=>{I4();a9();wH();S8=class S8 extends HQ{padding;child;constructor({key:J,padding:Q,child:Z}){super(J?{key:J}:{});this.padding=Q,this.child=Z}createElement(){return new yx1(this)}};yx1=class yx1 extends UY{_child;_renderObject;constructor(J){super(J)}get paddingWidget(){return this.widget}get child(){return this._child}get renderObject(){return this._renderObject}mount(){if(this._renderObject=new fx1(this.paddingWidget.padding),this._renderObject.attach(),this.paddingWidget.child){if(this._child=this.paddingWidget.child.createElement(),this.addChild(this._child),this._child.mount(),this._child.renderObject)this._renderObject.adoptChild(this._child.renderObject)}}unmount(){if(this._child)this._child.unmount(),this.removeChild(this._child),this._child=void 0;if(this._renderObject)this._renderObject.detach(),this._renderObject=void 0;super.unmount()}update(J){super.update(J);let Q=this.paddingWidget;if(this._renderObject)this._renderObject.updatePadding(Q.padding);if(Q.child&&this._child){if(this._child.widget.canUpdate(Q.child))this._child.update(Q.child);else if(this._child.unmount(),this.removeChild(this._child),this._child=Q.child.createElement(),this.addChild(this._child),this._child.mount(),this._renderObject&&this._child.renderObject)this._renderObject.removeAllChildren(),this._renderObject.adoptChild(this._child.renderObject)}else if(Q.child&&!this._child){if(this._child=Q.child.createElement(),this.addChild(this._child),this._child.mount(),this._renderObject&&this._child.renderObject)this._renderObject.adoptChild(this._child.renderObject)}else if(!Q.child&&this._child){if(this._child.unmount(),this.removeChild(this._child),this._child=void 0,this._renderObject)this._renderObject.removeAllChildren()}}performRebuild(){}};fx1=class fx1 extends H8{_padding;constructor(J){super();this._padding=J}updatePadding(J){this._padding=J,this.markNeedsLayout()}get padding(){return this._padding}performLayout(){super.performLayout();let J=this._lastConstraints;K8(!!J,"performLayout called without constraints");let Q=this._padding.horizontal,Z=this._padding.vertical,X=new p6(Math.max(0,J.minWidth-Q),Math.max(0,J.maxWidth-Q),Math.max(0,J.minHeight-Z),Math.max(0,J.maxHeight-Z));if(this.children.length>0){let Y=this.children[0];Y.layout(X),Y.setOffset(this._padding.left,this._padding.top),this.setSize(Y.size.width+Q,Y.size.height+Z)}else this.setSize(J.minWidth+Q,J.minHeight+Z)}getMinIntrinsicWidth(J){let Q=this._padding.horizontal,Z=this._padding.vertical;if(this.children.length>0){let X=this.children[0],Y=Math.max(0,J-Z);return X.getMinIntrinsicWidth(Y)+Q}return Q}getMinIntrinsicHeight(J){let Q=this._padding.horizontal,Z=this._padding.vertical;if(this.children.length>0){let X=this.children[0],Y=Math.max(0,J-Q);return X.getMinIntrinsicHeight(Y)+Z}return Z}getMaxIntrinsicWidth(J){let Q=this._padding.horizontal,Z=this._padding.vertical;if(this.children.length>0){let X=this.children[0],Y=Math.max(0,J-Z);return X.getMaxIntrinsicWidth(Y)+Q}return Q}getMaxIntrinsicHeight(J){let Q=this._padding.horizontal,Z=this._padding.vertical;if(this.children.length>0){let X=this.children[0],Y=Math.max(0,J-Q);return X.getMaxIntrinsicHeight(Y)+Z}return Z}hitTest(J,Q,Z=0,X=0){let Y=Z+this.offset.x,K=X+this.offset.y,q=Q.x>=Y&&Q.x<Y+this.size.width,G=Q.y>=K&&Q.y<K+this.size.height;if(q&&G){let F={x:Q.x-Y,y:Q.y-K};J.add({target:this,localPosition:F});for(let W=this.children.length-1;W>=0;W--){let H=this.children[W];if(H&&"hitTest"in H&&typeof H.hitTest==="function")H.hitTest(J,Q,Y,K)}return!0}let z=Z+this.offset.x,U=X+this.offset.y;for(let F of this.children)if("hitTest"in F&&typeof F.hitTest==="function")F.hitTest(J,Q,z,U);return!1}}});var _K,i41,VZ6;var EA=p(()=>{I4();a9();Y7();_K=class _K extends wG{constructor({key:J,children:Q=[]}={}){super({...J?{key:J}:{},children:Q})}createRenderObject(){return new VZ6}updateRenderObject(J){}};i41=class i41 extends em{left;top;right;bottom;width;height;constructor(J,Q,Z,X,Y,K){super();this.left=J,this.top=Q,this.right=Z,this.bottom=X,this.width=Y,this.height=K}};VZ6=class VZ6 extends H8{constructor(){super();this.allowHitTestOutsideBounds=!0}setupParentData(J){if(!J.parentData)J.parentData=new i41}performLayout(){let J=this._lastConstraints;K8(!!J,"performLayout called without constraints");let Q=0,Z=0,X=this.children;for(let q of X){let G=q.parentData;if(!G||!G.left&&!G.top&&!G.right&&!G.bottom)q.layout(J),Q=Math.max(Q,q.size.width),Z=Math.max(Z,q.size.height)}let Y=Math.max(Q,J.minWidth),K=Math.max(Z,J.minHeight);this.setSize(Y,K);for(let q of X){let G=q.parentData;if(G&&(G.left!==void 0||G.top!==void 0||G.right!==void 0||G.bottom!==void 0))this.layoutPositionedChild(q,G);else q.setOffset(0,0)}super.performLayout()}layoutPositionedChild(J,Q){let{width:Z,height:X}=Q;if(Z===void 0&&Q.left!==void 0&&Q.right!==void 0)Z=this.size.width-Q.left-Q.right;if(X===void 0&&Q.top!==void 0&&Q.bottom!==void 0)X=this.size.height-Q.top-Q.bottom;let Y=new p6(Z??0,Z??this.size.width,X??0,X??this.size.height);J.layout(Y);let K=0,q=0;if(Q.left!==void 0)K=Q.left;else if(Q.right!==void 0)K=this.size.width-Q.right-J.size.width;if(Q.top!==void 0)q=Q.top;else if(Q.bottom!==void 0)q=this.size.height-Q.bottom-J.size.height;J.setOffset(K,q)}}});var $A;var Xu=p(()=>{l41();EA();$A=class $A extends Zu{left;top;right;bottom;width;height;constructor({key:J,left:Q,top:Z,right:X,bottom:Y,width:K,height:q,child:G}){super(G,J);this.left=Q,this.top=Z,this.right=X,this.bottom=Y,this.width=K,this.height=q}createParentData(){return new i41(this.left,this.top,this.right,this.bottom,this.width,this.height)}applyParentData(J){let Q=J.parentData;if(Q)Q.left=this.left,Q.top=this.top,Q.right=this.right,Q.bottom=this.bottom,Q.width=this.width,Q.height=this.height}debugIsValidRenderObject(J){return!0}updateParentData(J){let Q=J.parentData,Z=!1;if(Q.left!==this.left)Q.left=this.left,Z=!0;if(Q.top!==this.top)Q.top=this.top,Z=!0;if(Q.right!==this.right)Q.right=this.right,Z=!0;if(Q.bottom!==this.bottom)Q.bottom=this.bottom,Z=!0;if(Q.width!==this.width)Q.width=this.width,Z=!0;if(Q.height!==this.height)Q.height=this.height,Z=!0;if(Z){let X=J.parent;if(X&&"markNeedsLayout"in X)X.markNeedsLayout()}}}});var N9;var $G=p(()=>{d41();N9=class N9 extends Qu{constructor({key:J,children:Q=[],mainAxisAlignment:Z="start",crossAxisAlignment:X="center",mainAxisSize:Y="max"}={}){super({...J?{key:J}:{},direction:"horizontal",children:Q,mainAxisAlignment:Z,crossAxisAlignment:X,mainAxisSize:Y})}static start(J){return new N9({children:J,mainAxisAlignment:"start"})}static center(J){return new N9({children:J,mainAxisAlignment:"center"})}static end(J){return new N9({children:J,mainAxisAlignment:"end"})}static spaceBetween(J){return new N9({children:J,mainAxisAlignment:"spaceBetween"})}static spaceAround(J){return new N9({children:J,mainAxisAlignment:"spaceAround"})}static spaceEvenly(J){return new N9({children:J,mainAxisAlignment:"spaceEvenly"})}}});var i0,hx1;var u7=p(()=>{I4();a9();Y7();i0=class i0 extends h4{width;height;constructor({key:J,width:Q,height:Z,child:X}={}){super({key:J,child:X});this.width=Q,this.height=Z}createRenderObject(){return new hx1(this.width,this.height)}updateRenderObject(J){J.updateDimensions(this.width,this.height)}static fromSize(J,Q,Z){return Z?new i0({width:J,height:Q,child:Z}):new i0({width:J,height:Q})}static expand(J){return J?new i0({width:1/0,height:1/0,child:J}):new i0({width:1/0,height:1/0})}static shrink(J){return J?new i0({width:0,height:0,child:J}):new i0({width:0,height:0})}static height(J,Q){return Q?new i0({height:J,child:Q}):new i0({height:J})}static width(J,Q){return Q?new i0({width:J,child:Q}):new i0({width:J})}};hx1=class hx1 extends H8{_width;_height;constructor(J,Q){super();this._width=J;this._height=Q}updateDimensions(J,Q){let Z=this._width,X=this._height;if(this._width=J,this._height=Q,Z!==J||X!==Q)this.markNeedsLayout()}getMinIntrinsicWidth(J){if(this._width!==void 0)return this._width===1/0?0:this._width;if(this.children.length>0)return this.children[0].getMinIntrinsicWidth(J);return 0}getMaxIntrinsicWidth(J){if(this._width!==void 0)return this._width===1/0?1/0:this._width;if(this.children.length>0)return this.children[0].getMaxIntrinsicWidth(J);return 0}getMinIntrinsicHeight(J){if(this._height!==void 0)return this._height===1/0?0:this._height;if(this.children.length>0)return this.children[0].getMinIntrinsicHeight(J);return 0}getMaxIntrinsicHeight(J){if(this._height!==void 0)return this._height===1/0?1/0:this._height;if(this.children.length>0)return this.children[0].getMaxIntrinsicHeight(J);return 0}performLayout(){super.performLayout();let J=this._lastConstraints;K8(!!J,"performLayout called without constraints");let Q,Z;if(this._width!==void 0)if(this._width===1/0)Q=J.maxWidth;else Q=this._width;else if(this.children.length>0){let Y=this.children[0];Y.layout(J),Q=Y.size.width}else Q=0;if(this._height!==void 0)if(this._height===1/0)Z=J.maxHeight;else Z=this._height;else if(this.children.length>0){let Y=this.children[0];Y.layout(J),Z=Y.size.height}else Z=0;let X=J.constrain(Q,Z);if(this.setSize(X.width,X.height),this.children.length>0){let Y=this.children[0],K=p6.tight(X.width,X.height);Y.layout(K),Y.setOffset(0,0)}}}});var t5;var Yu=p(()=>{wH();EJ();TU();u7();t5=class t5 extends HQ{flex;width;height;constructor({key:J,flex:Q=1,width:Z,height:X}={}){super(J?{key:J}:{});this.flex=Q,this.width=Z,this.height=X}createElement(){if(this.width!==void 0||this.height!==void 0){let J={child:new s6};if(this.width!==void 0)J.width=this.width;if(this.height!==void 0)J.height=this.height;return new i0(J).createElement()}else return new $2({flex:this.flex,child:i0.shrink()}).createElement()}static horizontal(J){return new t5({width:J})}static vertical(J){return new t5({height:J})}static flexible(J=1){return new t5({flex:J})}}});var gx1,NZ6;var LZ6=p(()=>{I4();a9();a9();Y7();gx1=class gx1 extends h4{constructor(J){super({child:J.child})}createRenderObject(){return new NZ6}updateRenderObject(J){}};NZ6=class NZ6 extends H8{performLayout(){let J=this._lastConstraints;if(K8(!!J,"performLayout called without constraints"),this.children.length===0){this.setSize(0,0),super.performLayout();return}let Q=this.children[0],Z=Math.min(Q.getMaxIntrinsicWidth(J.maxHeight),J.maxWidth),X=Q.getMinIntrinsicHeight(Z),Y=new p6(Math.min(Z,J.minWidth),Math.min(Z,J.maxWidth),Math.min(X,J.maxHeight),Math.max(X,J.minHeight));Q.layout(Y),Q.setOffset(0,0);let q=J.minHeight===J.maxHeight?J.maxHeight:Math.min(X,J.maxHeight);this.setSize(Q.size.width,q),super.performLayout()}getMinIntrinsicHeight(J){if(this.children.length===0)return 0;return this.children[0].getMinIntrinsicHeight(J)}getMaxIntrinsicHeight(J){if(this.children.length===0)return 0;return this.children[0].getMaxIntrinsicHeight(J)}getMinIntrinsicWidth(J){if(this.children.length===0)return 0;return this.children[0].getMinIntrinsicWidth(J)}getMaxIntrinsicWidth(J){if(this.children.length===0)return 0;return this.children[0].getMaxIntrinsicWidth(J)}}});var CU=p(()=>{IA();bx1();GX();EJ();TU();d41();p41();MZ6();FY();Xu();$G();u7();Yu();EA();z9();a9();IA();GX();EJ();TU();FY();$G();u7()});var OZ6=p(()=>{Ex1();rm()});class E6{widget;context;_mounted=!1;get mounted(){return this._mounted}initState(){}didUpdateWidget(J){}dispose(){}setState(J){if(!this._mounted)throw Error("setState() called after dispose()");if(J)J();this._markNeedsBuild()}_mount(J,Q){this.widget=J,this.context=Q,this._mounted=!0,this.initState()}_update(J){let Q=this.widget;this.widget=J,this.didUpdateWidget(Q)}_unmount(){this._mounted=!1,this.dispose()}_markNeedsBuild(){let J=this.context.element;if("markNeedsBuild"in J&&typeof J.markNeedsBuild==="function")J.markNeedsBuild()}}var $6,mx1;var j2=p(()=>{sm();wH();$6=class $6 extends HQ{createElement(){return new mx1(this)}};mx1=class mx1 extends UY{_state;_child;_context;constructor(J){super(J)}get statefulWidget(){return this.widget}get state(){return this._state}get child(){return this._child}mount(){this._context=new IH(this,this.widget),this._state=this.statefulWidget.createState(),this._state._mount(this.statefulWidget,this._context),this.rebuild(),this.markMounted()}unmount(){if(this._child)this._child.unmount(),this.removeChild(this._child),this._child=void 0;if(this._state)this._state._unmount(),this._state=void 0;this._context=void 0,super.unmount()}update(J){if(this.widget===J)return;if(super.update(J),this._state)this._state._update(this.statefulWidget);if(this._context)this._context.widget=J;this.rebuild()}performRebuild(){this.rebuild()}rebuild(){if(!this._context||!this._state)throw Error("Cannot rebuild unmounted element");let J=this._state.build(this._context);if(this._child)if(this._child.widget.canUpdate(J))this._child.update(J);else{let Q=this._child,Z=this.findNearestRenderObjectAncestor();if(Z&&Q.renderObject)Z.dropChild(Q.renderObject);else if(!Z&&Q.renderObject)Q.renderObject.detach();if(this._child.unmount(),this.removeChild(this._child),this._child=J.createElement(),this.addChild(this._child),this._child.mount(),Z&&this._child.renderObject)Z.adoptChild(this._child.renderObject),this._child.renderObject.markNeedsLayout();else if(!Z&&this._child.renderObject)this._child.renderObject.attach(),this._child.renderObject.markNeedsLayout();if(this._child.renderObject)this._child.renderObject.markNeedsLayout()}else this._child=J.createElement(),this.addChild(this._child),this._child.mount()}markNeedsBuild(){this.markNeedsRebuild()}findNearestRenderObjectAncestor(){let J=this.parent;while(J){if(J.renderObject){if(this._child?.renderObject&&J.renderObject===this._child.renderObject){J=J.parent;continue}return J.renderObject}J=J.parent}return}get renderObject(){return this._child?.renderObject}}});var o6,ux1;var m4=p(()=>{sm();wH();o6=class o6 extends HQ{createElement(){return new ux1(this)}};ux1=class ux1 extends UY{_child;_context;constructor(J){super(J)}get statelessWidget(){return this.widget}get child(){return this._child}get renderObject(){return this._child?.renderObject}mount(){this._context=new IH(this,this.widget),this.rebuild(),this.markMounted()}unmount(){if(this._child)this._child.unmount(),this.removeChild(this._child),this._child=void 0;this._context=void 0,super.unmount()}update(J){if(this.widget===J)return;if(super.update(J),this._context)this._context.widget=J;this.rebuild()}performRebuild(){this.rebuild()}rebuild(){if(!this._context)throw Error("Cannot rebuild unmounted element");let J=this.statelessWidget.build(this._context);if(this._child){if(this._child.widget===J)return;if(this._child.widget.canUpdate(J))this._child.update(J);else this._child.unmount(),this.removeChild(this._child),this._child=J.createElement(),this.addChild(this._child),this._child.mount()}else this._child=J.createElement(),this.addChild(this._child),this._child.mount()}}});var PA;var n41=p(()=>{RA();PA=class PA extends jG{controller;constructor({key:J,controller:Q,child:Z}){super({key:J,child:Z});this.controller=Q}static of(J){let Q=J.dependOnInheritedWidgetOfExactType(PA);if(Q)return Q.widget.controller;return null}static require(J){let Q=PA.of(J);if(!Q)throw Error(`InheritedSelectionArea.require() called with a context that does not contain an InheritedSelectionArea.
|
5453
|
+
`+Y.toStringDeep(X,!0)}return Z}addKeyHandler(J){this._keyHandlers.push(J)}removeKeyHandler(J){let Q=this._keyHandlers.indexOf(J);if(Q!==-1)this._keyHandlers.splice(Q,1)}handleKeyEvent(J){for(let Q of this._keyHandlers)if(Q(J)==="handled")return"handled";return"ignored"}dispose(){this._detach(),this._children.clear(),this._keyHandlers=[]}}var $U=()=>{};class RV{static _instance=null;_rootScope;_primaryFocus=null;_cachedFocusableNodes=null;constructor(){this._rootScope=new A2({debugLabel:"Root Focus Scope",canRequestFocus:!1});let J=(Q)=>this.requestFocus(Q);J.__focusManager=this,A2.setRequestFocusCallback(J)}static get instance(){if(!this._instance)this._instance=new RV;return this._instance}get primaryFocus(){return this._primaryFocus}get rootScope(){return this._rootScope}requestFocus(J){if(this._primaryFocus===J)return!0;if(J&&!J.canRequestFocus)return!1;if(this._primaryFocus)this._primaryFocus._setFocus(!1);if(this._primaryFocus=J,J)J._setFocus(!0);return!0}handleKeyEvent(J){if(!this._primaryFocus)return!1;let Q=this._primaryFocus;while(Q){if(Q._handleKeyEvent(J)==="handled")return!0;Q=Q.parent}return!1}handlePasteEvent(J){if(!this._primaryFocus)return!1;let Q=this._primaryFocus;while(Q){if(Q._handlePasteEvent(J)==="handled")return!0;Q=Q.parent}return!1}registerNode(J,Q=null){this._invalidateFocusableNodesCache();let Z=Q??this._rootScope;J._attach(Z)}unregisterNode(J){if(this._invalidateFocusableNodesCache(),this._primaryFocus===J)this.requestFocus(null);J._detach()}findNearestFocusableAncestor(J){let Q=J.parent;while(Q){if(Q.canRequestFocus&&!Q.skipTraversal)return Q;Q=Q.parent}return null}findAllFocusableNodes(){if(this._cachedFocusableNodes!==null)return this._cachedFocusableNodes;let J=[],Q=(Z)=>{if(Z.canRequestFocus&&!Z.skipTraversal)J.push(Z);for(let X of Z.children)Q(X)};return Q(this._rootScope),this._cachedFocusableNodes=J,J}_invalidateFocusableNodesCache(){this._cachedFocusableNodes=null}focusNext(){let J=this.findAllFocusableNodes();if(J.length===0)return!1;if(!this._primaryFocus)return this.requestFocus(J[0]??null);let Q=J.indexOf(this._primaryFocus);if(Q===-1)return this.requestFocus(J[0]??null);let Z=(Q+1)%J.length;return this.requestFocus(J[Z]??null)}focusPrevious(){let J=this.findAllFocusableNodes();if(J.length===0)return!1;if(!this._primaryFocus)return this.requestFocus(J[J.length-1]??null);let Q=J.indexOf(this._primaryFocus);if(Q===-1)return this.requestFocus(J[J.length-1]??null);let Z=Q===0?J.length-1:Q-1;return this.requestFocus(J[Z]??null)}dispose(){this._primaryFocus=null,this._cachedFocusableNodes=null,this._rootScope.dispose(),RV._instance=null}}var Rx1=p(()=>{$U()});function g41(J){if(J.length===0)return 0;let Q=[...J].sort((X,Y)=>X-Y),Z=Math.ceil(Q.length*0.99)-1;return Q[Math.max(0,Z)]||0}class sQ6{frameTimes=[];phaseTimes={build:[],layout:[],paint:[],render:[]};keyEventTimes=[];mouseEventTimes=[];lastKeyEventTime=0;lastMouseEventTime=0;MAX_SAMPLES=1024;recordFrame(J){if(this.frameTimes.push(J),this.frameTimes.length>this.MAX_SAMPLES)this.frameTimes.shift()}recordPhase(J,Q){let Z=this.phaseTimes[J];if(Z.push(Q),Z.length>this.MAX_SAMPLES)Z.shift()}recordKeyEvent(J){if(this.lastKeyEventTime=J,this.keyEventTimes.push(J),this.keyEventTimes.length>this.MAX_SAMPLES)this.keyEventTimes.shift()}recordMouseEvent(J){if(this.lastMouseEventTime=J,this.mouseEventTimes.push(J),this.mouseEventTimes.length>this.MAX_SAMPLES)this.mouseEventTimes.shift()}getFrameP99(){return g41(this.frameTimes)}getPhaseP99(J){return g41(this.phaseTimes[J])}getLastKeyEventTime(){return this.lastKeyEventTime}getKeyEventP99(){return g41(this.keyEventTimes)}getLastMouseEventTime(){return this.lastMouseEventTime}getMouseEventP99(){return g41(this.mouseEventTimes)}reset(){this.frameTimes=[];for(let J of Object.values(nm))this.phaseTimes[J]=[];this.keyEventTimes=[],this.mouseEventTimes=[],this.lastKeyEventTime=0,this.lastMouseEventTime=0}}class wx1{enabled=!1;tracker=new sQ6;setEnabled(J){this.enabled=J}isEnabled(){return this.enabled}recordKeyEvent(J){this.tracker.recordKeyEvent(J)}recordMouseEvent(J){this.tracker.recordMouseEvent(J)}recordStats(J){this.tracker.recordFrame(J.lastFrameTime);for(let Q of Object.values(nm))this.tracker.recordPhase(Q,J.phaseStats[Q].lastTime)}draw(J,Q){if(!this.enabled)return;let{width:Z,height:X}=J.getSize(),Y=26,K=12,q=Z-Y-2,G=1;if(q<0||G+K>=X)return;let z=d1.white,U=d1.brightWhite,F=d1.yellow,W=" Gotta Go Fast ",H=Math.floor((Y-W.length)/2);J.setCell(q,G,g9("╭",{fg:U}));for(let b=1;b<Y-1;b++)if(b>=H&&b<H+W.length)J.setCell(q+b,G,g9(W[b-H]||"─",{fg:F}));else J.setCell(q+b,G,g9("─",{fg:U}));J.setCell(q+Y-1,G,g9("╮",{fg:U}));for(let b=1;b<K-1;b++){J.setCell(q,G+b,g9("│",{fg:U})),J.setCell(q+Y-1,G+b,g9("│",{fg:U}));for(let m=1;m<Y-1;m++)J.setCell(q+m,G+b,g9(" ",{fg:U}))}J.setCell(q,G+K-1,g9("╰",{fg:U}));for(let b=1;b<Y-1;b++)J.setCell(q+b,G+K-1,g9("─",{fg:U}));J.setCell(q+Y-1,G+K-1,g9("╯",{fg:U}));let D=q+1,M=G+1;this.drawText(J,D,M++," Last P99",z);let V=this.tracker.getLastKeyEventTime(),N=this.tracker.getKeyEventP99(),L=V.toFixed(2).padStart(5," "),O=N.toFixed(2).padStart(5," "),A=this.getTimingColor(V),j=this.getTimingColor(N),R=` ${"Key".padStart(6," ")} `;this.drawText(J,D,M,R,z),this.drawText(J,D+R.length,M,L,A),this.drawText(J,D+R.length+L.length,M," ",z),this.drawText(J,D+R.length+L.length+3,M++,O,j);let I=this.tracker.getLastMouseEventTime(),w=this.tracker.getMouseEventP99(),E=I.toFixed(2).padStart(5," "),$=w.toFixed(2).padStart(5," "),P=this.getTimingColor(I),C=this.getTimingColor(w),k=` ${"Mouse".padStart(6," ")} `;this.drawText(J,D,M,k,z),this.drawText(J,D+k.length,M,E,P),this.drawText(J,D+k.length+E.length,M," ",z),this.drawText(J,D+k.length+E.length+3,M++,$,C),M++;for(let b of["build","layout","paint","render"]){let m=Q.phaseStats[b].lastTime,n=this.tracker.getPhaseP99(b),u=m.toFixed(2).padStart(5," "),Q1=n.toFixed(2).padStart(5," "),z1=this.getTimingColor(m),W1=this.getTimingColor(n),H1=` ${(b.charAt(0).toUpperCase()+b.slice(1)).padStart(6," ")} `;this.drawText(J,D,M,H1,z),this.drawText(J,D+H1.length,M,u,z1),this.drawText(J,D+H1.length+u.length,M," ",z),this.drawText(J,D+H1.length+u.length+3,M++,Q1,W1)}M++;let g=Q.lastFrameTime,T=this.tracker.getFrameP99(),v=g.toFixed(2).padStart(5," "),f=T.toFixed(2).padStart(5," "),h=this.getTimingColor(g),S=this.getTimingColor(T),x=` ${"Frame".padStart(6," ")} `;this.drawText(J,D,M,x,U),this.drawText(J,D+x.length,M,v,h),this.drawText(J,D+x.length+v.length,M," ",U),this.drawText(J,D+x.length+v.length+3,M++,f,S)}getTimingColor(J){let Q=Lx1,Z=Lx1*0.7;if(J>=Q)return d1.red;if(J>=Z)return d1.yellow;return d1.white}drawText(J,Q,Z,X,Y){for(let K=0;K<X.length;K++)J.setCell(Q+K,Z,g9(X[K]||" ",{fg:Y}))}}var oQ6=p(()=>{z9();AA()});class HQ{key;constructor({key:J}={}){if(this.constructor===HQ)throw Error("Widget is abstract and cannot be instantiated directly");this.key=J}canUpdate(J){if(this.constructor!==J.constructor)return!1;if(this.key===void 0&&J.key===void 0)return!0;if(this.key===void 0||J.key===void 0)return!1;return this.key.equals(J.key)}static canUpdate(J,Q){return J.canUpdate(Q)}}class UY{widget;parent;_children=[];_inheritedDependencies=new Set;_dirty=!1;_cachedDepth;_mounted=!1;constructor(J){this.widget=J}get children(){return this._children}get depth(){if(this._cachedDepth!==void 0)return this._cachedDepth;let J=0,Q=this.parent;while(Q)J++,Q=Q.parent;return this._cachedDepth=J,J}_invalidateDepth(){this._cachedDepth=void 0;for(let J of this._children)J._invalidateDepth()}get dirty(){return this._dirty}get mounted(){return this._mounted}get renderObject(){return}update(J){this.widget=J}addChild(J){J.parent=this,J._invalidateDepth(),this._children.push(J)}removeChild(J){let Q=this._children.indexOf(J);if(Q!==-1)this._children.splice(Q,1),J.parent=void 0,J._invalidateDepth()}removeAllChildren(){for(let J of this._children)J.parent=void 0,J._invalidateDepth();this._children.length=0}markMounted(){this._mounted=!0}unmount(){this._mounted=!1,this._dirty=!1,this._cachedDepth=void 0;for(let J of this._inheritedDependencies)if("removeDependent"in J)J.removeDependent(this);this._inheritedDependencies.clear()}markNeedsRebuild(){if(!this._mounted)return;this._dirty=!0,rQ6().scheduleBuildFor(this)}dependOnInheritedWidgetOfExactType(J){let Q=this.parent;while(Q){if(Q.widget.constructor===J){if("addDependent"in Q)Q.addDependent(this),this._inheritedDependencies.add(Q);return Q}Q=Q.parent}return null}findAncestorElementOfType(J){let Q=this.parent;while(Q){if(Q instanceof J)return Q;Q=Q.parent}return null}findAncestorWidgetOfType(J){let Q=this.parent;while(Q){if(Q.widget instanceof J)return Q.widget;Q=Q.parent}return null}}var wH=()=>{};var jG,tQ6;var RA=p(()=>{wH();jG=class jG extends HQ{child;constructor({key:J,child:Q}){super(J!==void 0?{key:J}:{});this.child=Q}createElement(){return new tQ6(this)}};tQ6=class tQ6 extends UY{_child;_dependents=new Set;constructor(J){super(J)}get inheritedWidget(){return this.widget}get child(){return this._child}get renderObject(){return this._child?.renderObject}mount(){this._child=this.inheritedWidget.child.createElement(),this.addChild(this._child),this._child.mount(),this.markMounted()}unmount(){if(this._child)this._child.unmount(),this.removeChild(this._child),this._child=void 0;this._dependents.clear(),super.unmount()}update(J){let Q=this.inheritedWidget;super.update(J);let Z=this.inheritedWidget;if(Z.updateShouldNotify(Q))this.notifyDependents();if(this._child&&this._child.widget.canUpdate(Z.child))this._child.update(Z.child);else{if(this._child)this._child.unmount(),this.removeChild(this._child);this._child=Z.child.createElement(),this.addChild(this._child),this._child.mount()}}addDependent(J){this._dependents.add(J)}removeDependent(J){this._dependents.delete(J)}notifyDependents(){for(let J of this._dependents)J.markNeedsRebuild()}performRebuild(){}}});class kT{size;capabilities;constructor(J,Q){this.size=J;this.capabilities=Q}get supportsEmojiWidth(){return this.capabilities.emojiWidth}get supportsSyncOutput(){return this.capabilities.syncOutput}}var m8;var RG=p(()=>{RA();m8=class m8 extends jG{data;constructor({key:J,data:Q,child:Z}){super(J!==void 0?{key:J,child:Z}:{child:Z});this.data=Q}updateShouldNotify(J){return this.data!==J.data||this.data.size.width!==J.data.size.width||this.data.size.height!==J.data.size.height||this.data.capabilities!==J.data.capabilities}static of(J){let Q=J.dependOnInheritedWidgetOfExactType(m8);if(Q)return Q.widget.data;throw Error("MediaQuery not found in context. Wrap your app with MediaQuery widget.")}static sizeOf(J){return m8.of(J).size}static capabilitiesOf(J){return m8.of(J).capabilities}}});class wV{_parent;_children=[];_needsLayout=!1;_needsPaint=!1;_cachedDepth;_attached=!1;allowHitTestOutsideBounds=!1;parentData;get parent(){return this._parent}get children(){return this._children}get depth(){if(this._cachedDepth!==void 0)return this._cachedDepth;let J=0,Q=this._parent;while(Q)J++,Q=Q._parent;return this._cachedDepth=J,J}_invalidateDepth(){this._cachedDepth=void 0;for(let J of this._children)J._invalidateDepth()}get needsLayout(){return this._needsLayout}get needsPaint(){return this._needsPaint}get attached(){return this._attached}adoptChild(J){if(J._parent=this,J._invalidateDepth(),this._children.push(J),"setupParentData"in this&&typeof this.setupParentData==="function")this.setupParentData(J);if(this._attached)J.attach();this.markNeedsLayout()}dropChild(J){let Q=this._children.indexOf(J);if(Q!==-1){if(J._attached)J.detach();this._children.splice(Q,1),J._parent=void 0,J._invalidateDepth(),this.markNeedsLayout()}}removeAllChildren(){for(let J of this._children){if(J._attached)J.detach();J._parent=void 0,J._invalidateDepth()}this._children.length=0,this.markNeedsLayout()}replaceChildren(J){for(let Q of J)Q._parent=this,Q._invalidateDepth();this._children=J,this.markNeedsLayout()}attach(){if(this._attached)return;this._attached=!0;for(let J of this._children)J.attach()}detach(){if(!this._attached)return;this._attached=!1;for(let J of this._children)J.detach()}markNeedsLayout(){if(this._needsLayout)return;if(!this._attached)return;if(this._needsLayout=!0,this.parent)this.parent.markNeedsLayout();else h41().requestLayout(this)}markNeedsPaint(){if(this._needsPaint)return;if(!this._attached)return;this._needsPaint=!0,h41().requestPaint(this)}performLayout(){}paint(J,Q=0,Z=0){this._needsPaint=!1;for(let X of this.children)if("offset"in X){let Y=X,K=Q+Y.offset.x,q=Z+Y.offset.y;X.paint(J,K,q)}else X.paint(J,Q,Z)}visitChildren(J){for(let Q of this._children)J(Q)}dispose(){h41().removeFromQueues(this),this._cachedDepth=void 0,this._parent=void 0,this._children.length=0}}function IV(J,Q=0){return Number.isFinite(J)?J:Q}class p6{minWidth;maxWidth;minHeight;maxHeight;constructor(J=0,Q=1/0,Z=0,X=1/0){this.minWidth=J;this.maxWidth=Q;this.minHeight=Z;this.maxHeight=X}static tight(J,Q){return new p6(J,J,Q,Q)}static loose(J,Q){return new p6(0,J,0,Q)}get hasBoundedWidth(){return this.maxWidth!==1/0}get hasBoundedHeight(){return this.maxHeight!==1/0}get hasTightWidth(){return this.minWidth>=this.maxWidth}get hasTightHeight(){return this.minHeight>=this.maxHeight}constrain(J,Q){return K8(isFinite(J),`BoxConstraints.constrain received infinite width: ${J}. This indicates a layout bug where a widget is not properly calculating its desired size.`),K8(isFinite(Q),`BoxConstraints.constrain received infinite height: ${Q}. This indicates a layout bug where a widget is not properly calculating its desired size.`),{width:Math.max(this.minWidth,Math.min(this.maxWidth,J)),height:Math.max(this.minHeight,Math.min(this.maxHeight,Q))}}equals(J){return this.minWidth===J.minWidth&&this.maxWidth===J.maxWidth&&this.minHeight===J.minHeight&&this.maxHeight===J.maxHeight}}var H8;var a9=p(()=>{I4();H8=class H8 extends wV{_size={width:0,height:0};get size(){return{...this._size}}setSize(J,Q){K8(Number.isFinite(J)&&Number.isFinite(Q),`RenderBox.setSize received non-finite dimension: ${J}x${Q}`),this._size.width=J,this._size.height=Q}_offset={x:0,y:0};get offset(){return{...this._offset}}setOffset(J,Q){let Z=Number.isFinite(J)?Math.round(J):0,X=Number.isFinite(Q)?Math.round(Q):0;this._offset.x=Z,this._offset.y=X}localToGlobal(J){let{x:Q,y:Z}=J,X=this;while(X)if(Q+=X._offset.x,Z+=X._offset.y,X=X.parent,X&&!("_offset"in X))break;return{x:Q,y:Z}}globalToLocal(J){let Q=this.localToGlobal({x:0,y:0});return{x:J.x-Q.x,y:J.y-Q.y}}_lastConstraints;layout(J){let Q=!this._lastConstraints||!J.equals(this._lastConstraints);if(!this._needsLayout&&!Q)return;this._lastConstraints=J,this._needsLayout=!1,this.performLayout()}getMinIntrinsicWidth(J){let Q=this.children;if(Q.length===0)return 0;let Z=0;for(let X of Q)Z=Math.max(Z,X.getMinIntrinsicWidth(J));return Z}getMaxIntrinsicWidth(J){let Q=this.children;if(Q.length===0)return 0;let Z=0;for(let X of Q)Z=Math.max(Z,X.getMaxIntrinsicWidth(J));return Z}getMinIntrinsicHeight(J){let Q=this.children;if(Q.length===0)return 0;let Z=0;for(let X of Q)Z=Math.max(Z,X.getMinIntrinsicHeight(J));return Z}getMaxIntrinsicHeight(J){let Q=this.children;if(Q.length===0)return 0;let Z=0;for(let X of Q)Z=Math.max(Z,X.getMaxIntrinsicHeight(J));return Z}paint(J,Q=0,Z=0){let X=J.getSize(),Y=X.width,K=X.height;for(let q of this.children)if(q instanceof H8){let G=Q+this.offset.x+q.offset.x,z=Z+this.offset.y+q.offset.y,U=G+q.size.width,F=z+q.size.height;if(!(G>=Y||z>=K||U<=0||F<=0))q.paint(J,Q+this.offset.x,Z+this.offset.y)}}hitTest(J,Q,Z=0,X=0){let Y=Z+this.offset.x,K=X+this.offset.y,q=Q.x>=Y&&Q.x<Y+this.size.width,G=Q.y>=K&&Q.y<K+this.size.height;if(q&&G){J.addWithPaintOffset(this,{x:Y,y:K},Q);let z=!0;for(let U=this.children.length-1;U>=0;U--)if(this.children[U].hitTest(J,Q,Y,K))z=!0;return z}if(this.allowHitTestOutsideBounds){let z=!1;for(let U=this.children.length-1;U>=0;U--)if(this.children[U].hitTest(J,Q,Y,K))z=!0;return z}return!1}}});var _T,h4,wG,wA,am,EV,m41,bT;var Y7=p(()=>{wH();_T=class _T extends HQ{constructor({key:J}={}){super(J!==void 0?{key:J}:{})}createElement(){return new am(this)}updateRenderObject(J){}};h4=class h4 extends _T{child;constructor({key:J,child:Q}={}){super(J?{key:J}:{});this.child=Q}createElement(){return new EV(this)}};wG=class wG extends _T{children;constructor({key:J,children:Q=[]}={}){super(J?{key:J}:{});this.children=[...Q]}createElement(){return new m41(this)}};wA=class wA extends _T{constructor({key:J}={}){super(J?{key:J}:{})}createElement(){return new bT(this)}};am=class am extends UY{_renderObject;constructor(J){super(J)}get renderObjectWidget(){return this.widget}get renderObject(){return this._renderObject}mount(){this._renderObject=this.renderObjectWidget.createRenderObject(),this._renderObject.attach(),this.markMounted()}unmount(){if(this._renderObject)this._renderObject.detach(),this._renderObject=void 0;super.unmount()}update(J){super.update(J);let Q=this.renderObjectWidget;if(this._renderObject)Q.updateRenderObject(this._renderObject)}performRebuild(){}};EV=class EV extends am{_child;constructor(J){super(J)}get singleChildWidget(){return this.widget}get child(){return this._child}mount(){if(super.mount(),this.singleChildWidget.child){if(this._child=this.singleChildWidget.child.createElement(),this.addChild(this._child),this._child.mount(),this._child.renderObject&&this.renderObject)this.renderObject.adoptChild(this._child.renderObject)}}unmount(){if(this._child)this._child.unmount(),this.removeChild(this._child),this._child=void 0;super.unmount()}update(J){super.update(J);let Q=this.singleChildWidget;if(Q.child&&this._child){if(this._child.widget.canUpdate(Q.child))this._child.update(Q.child);else if(this._child.unmount(),this.removeChild(this._child),this._child=Q.child.createElement(),this.addChild(this._child),this._child.mount(),this.renderObject){if(this.renderObject.removeAllChildren(),this._child.renderObject)this.renderObject.adoptChild(this._child.renderObject)}}else if(Q.child&&!this._child){if(this._child=Q.child.createElement(),this.addChild(this._child),this._child.mount(),this.renderObject&&this._child.renderObject)this.renderObject.adoptChild(this._child.renderObject)}else if(!Q.child&&this._child){if(this._child.unmount(),this.removeChild(this._child),this._child=void 0,this.renderObject)this.renderObject.removeAllChildren()}}performRebuild(){}};m41=class m41 extends am{_childElements=[];constructor(J){super(J)}get multiChildWidget(){return this.widget}get children(){return this._childElements}mount(){super.mount();for(let J of this.multiChildWidget.children){let Q=J.createElement();if(this._childElements.push(Q),this.addChild(Q),Q.mount(),Q.renderObject&&this.renderObject)this.renderObject.adoptChild(Q.renderObject)}}unmount(){for(let J of this._childElements)J.unmount(),this.removeChild(J);this._childElements.length=0,super.unmount()}update(J){super.update(J);let Q=this.multiChildWidget;this.updateChildren(this._childElements,[...Q.children])}updateChildren(J,Q){let Z=[],X=0,Y=0,K=J.length-1,q=Q.length-1;while(X<=K&&Y<=q){let U=J[X],F=Q[Y];if(!U||!F||!U.widget.canUpdate(F))break;if(U.widget!==F)U.update(F);Z.push(U),X++,Y++}let G=[];while(X<=K&&Y<=q){let U=J[K],F=Q[q];if(!U||!F||!U.widget.canUpdate(F))break;if(U.widget!==F)U.update(F);G.unshift(U),K--,q--}if(X>K)for(let U=Y;U<=q;U++){let F=Q[U];if(F){let W=this.createChildElement(F);Z.push(W)}}else if(Y>q)for(let U=X;U<=K;U++){let F=J[U];if(F)this.deactivateChild(F)}else{let U=new Map,F=new Map;for(let W=X;W<=K;W++){let H=J[W];if(H.widget.key){let D=H.widget.key.toString();U.set(D,H),F.set(D,W)}}for(let W=Y;W<=q;W++){let H=Q[W];if(!H)continue;let D;if(H.key){let M=H.key.toString();if(D=U.get(M),D){U.delete(M);let V=F.get(M);if(V!==void 0)J[V]=null;if(D.widget===H);else if(D.widget.canUpdate(H))D.update(H);else this.deactivateChild(D),D=this.createChildElement(H)}else D=this.createChildElement(H)}else{let M=!1;for(let V=X;V<=K;V++){let N=J[V];if(N&&!N.widget.key){if(N.widget===H){D=N,J[V]=null,M=!0;break}else if(N.widget.canUpdate(H)){D=N,J[V]=null,D.update(H),M=!0;break}}}if(!M)D=this.createChildElement(H)}if(D)Z.push(D)}for(let W=X;W<=K;W++){let H=J[W];if(H)this.deactivateChild(H)}for(let W of U.values())this.deactivateChild(W)}Z.push(...G);let z=this._childElements;if(this._childElements=Z,this.renderObject){let U=[];for(let H of Z)if(H.renderObject)U.push(H.renderObject);let F=this.renderObject.children;if(F.length!==U.length||F.some((H,D)=>H!==U[D]))this.renderObject.replaceChildren(U)}}createChildElement(J){let Q=J.createElement();return this.addChild(Q),Q.mount(),Q}deactivateChild(J){J.unmount(),this.removeChild(J)}performRebuild(){}};bT=class bT extends am{constructor(J){super(J)}get leafWidget(){return this.widget}performRebuild(){}}});var w5,eQ6,IG;var PU=p(()=>{I4();a9();Y7();rm();w5=class w5 extends h4{child;onClick;onEnter;onExit;onHover;onScroll;onRelease;onDrag;cursor;opaque;constructor({key:J,child:Q,onClick:Z,onEnter:X,onExit:Y,onHover:K,onScroll:q,onRelease:G,onDrag:z,cursor:U,opaque:F=!0}){super({key:J});this.child=Q,this.onClick=Z??null,this.onEnter=X??null,this.onExit=Y??null,this.onHover=K??null,this.onScroll=q??null,this.onRelease=G??null,this.onDrag=z??null,this.cursor=U??null,this.opaque=F}createElement(){return new eQ6(this)}createRenderObject(){return new IG({onClick:this.onClick,onEnter:this.onEnter,onExit:this.onExit,onHover:this.onHover,onScroll:this.onScroll,onRelease:this.onRelease,onDrag:this.onDrag,cursor:this.cursor,opaque:this.opaque})}updateRenderObject(J){J.onClick=this.onClick,J.onEnter=this.onEnter,J.onExit=this.onExit,J.onHover=this.onHover,J.onScroll=this.onScroll,J.onRelease=this.onRelease,J.onDrag=this.onDrag,J.cursor=this.cursor,J.opaque=this.opaque}};eQ6=class eQ6 extends EV{get mouseRegionWidget(){return this.widget}get renderObject(){return super.renderObject}};IG=class IG extends H8{onClick;onEnter;onExit;onHover;onScroll;onRelease;onDrag;cursor;opaque;_isHovered=!1;constructor({onClick:J,onEnter:Q,onExit:Z,onHover:X,onScroll:Y,onRelease:K,onDrag:q,cursor:G,opaque:z}){super();this.onClick=J,this.onEnter=Q,this.onExit=Z,this.onHover=X,this.onScroll=Y,this.onRelease=K,this.onDrag=q,this.cursor=G,this.opaque=z}get hasMouseListeners(){return!!(this.onClick||this.onEnter||this.onExit||this.onHover||this.onScroll||this.onRelease||this.onDrag)}get isHovered(){return this._isHovered}handleMouseEvent(J){switch(J.type){case"click":this.onClick?.(J);break;case"enter":this._isHovered=!0,this.onEnter?.(J);break;case"exit":this._isHovered=!1,this.onExit?.(J);break;case"hover":this.onHover?.(J);break;case"scroll":this.onScroll?.(J);break}}handleMouseRelease(J){this.onRelease?.(J)}handleMouseDrag(J){this.onDrag?.(J)}performLayout(){let J=this._lastConstraints;if(K8(!!J,"performLayout called without constraints"),this.children.length>0){let Q=this.children[0];Q.layout(J);let Z=Q.size;this.setSize(Z.width,Z.height),Q.setOffset(0,0)}else this.setSize(0,0);super.performLayout()}getMinIntrinsicHeight(J){if(this.children.length>0)return this.children[0].getMinIntrinsicHeight(J);return 0}getMaxIntrinsicHeight(J){if(this.children.length>0)return this.children[0].getMaxIntrinsicHeight(J);return 0}getMinIntrinsicWidth(J){if(this.children.length>0)return this.children[0].getMinIntrinsicWidth(J);return 0}getMaxIntrinsicWidth(J){if(this.children.length>0)return this.children[0].getMaxIntrinsicWidth(J);return 0}paint(J,Q=0,Z=0){if(this.children.length>0)this.children[0].paint(J,Q+this.offset.x,Z+this.offset.y)}hitTest(J,Q,Z=0,X=0){let Y=super.hitTest(J,Q,Z,X);if(Y&&this.hasMouseListeners)J.addMouseTarget(this,Q);return Y}getDebugProperties(){return{hasMouseListeners:this.hasMouseListeners,isHovered:this.isHovered,cursor:this.cursor,opaque:this.opaque}}dispose(){BQ.instance.removeRegion(this),this.onClick=null,this.onEnter=null,this.onExit=null,this.onHover=null,this.onScroll=null,this.onRelease=null,this.onDrag=null,this.cursor=null,super.dispose()}}});class Ix1{static hitTest(J,Q){let Z=new JZ6;return J.hitTest(Z,Q),Z}}class JZ6{_hits=[];get hits(){return this._hits}add(J){this._hits.push(J)}addWithPaintOffset(J,Q,Z){let X={x:Z.x-Q.x,y:Z.y-Q.y};this.add({target:J,localPosition:X})}addMouseTarget(J,Q){}}function Y79(){if(!wV.prototype.hitTest)wV.prototype.hitTest=function(J,Q,Z=0,X=0){if("size"in this&&"offset"in this){let K=this,q=K.size,G=K.offset;if(q&&G){let z=Z+G.x,U=X+G.y,F=Q.x>=z&&Q.x<z+q.width,W=Q.y>=U&&Q.y<U+q.height;if(F&&W){let H={x:Q.x-z,y:Q.y-U};J.add({target:this,localPosition:H});let D=this.children,M=!0;for(let V=D.length-1;V>=0;V--)if(D[V].hitTest(J,Q,z,U))M=!0;return M}if(this.allowHitTestOutsideBounds){let H=!1,D=this.children;for(let M=D.length-1;M>=0;M--)if(D[M].hitTest(J,Q,z,U))H=!0;return H}return!1}}let Y=!1;for(let K of this.children)if(K.hitTest(J,Q,Z,X))Y=!0;return Y}}var Ex1=p(()=>{a9();Y79()});function QZ6(J,Q,Z){return{position:Q,localPosition:Z,modifiers:{shift:J.modifiers.shift,ctrl:J.modifiers.ctrl,alt:J.modifiers.alt}}}function ZZ6(J,Q,Z,X=1){return{type:"click",button:J.button==="left"?"left":J.button==="middle"?"middle":J.button==="right"?"right":"left",clickCount:X,...QZ6(J,Q,Z)}}function XZ6(J,Q,Z){return{type:"scroll",direction:J.button==="wheel_up"?"up":"down",...QZ6(J,Q,Z)}}var BQ;var rm=p(()=>{CT();PU();Ex1();BQ=class BQ{static _instance=null;_rootRenderObject=null;_hoveredRegions=new Set;_vaxis=null;_currentCursor=R5.DEFAULT;_lastMousePosition=null;_dragTargets=[];_globalReleaseCallbacks=new Set;_globalClickCallbacks=new Set;_lastClickTime=new Map;_lastClickPosition=new Map;_currentClickCount=new Map;static DOUBLE_CLICK_TIME=500;static DOUBLE_CLICK_DISTANCE=2;static DOUBLE_CLICK_DISTANCE_SQUARED=BQ.DOUBLE_CLICK_DISTANCE*BQ.DOUBLE_CLICK_DISTANCE;_scratchCurrentRegions=new Set;_scratchEnteredRegions=new Set;_scratchExitedRegions=new Set;constructor(){}static get instance(){if(!this._instance)this._instance=new BQ;return this._instance}setRootRenderObject(J){this._rootRenderObject=J}setTui(J){this._vaxis=J}handleMouseEvent(J){if(!this._rootRenderObject)return;let Q={x:J.x,y:J.y},Z=Ix1.hitTest(this._rootRenderObject,Q),X=this._findMouseTargets(Z.hits);switch(J.action){case"press":if(J.button==="left"||J.button==="middle"||J.button==="right"){if(this._handleClick(J,Q,X),J.button==="left")this._dragTargets=X.map(({target:Y,localPosition:K})=>{let q={x:Q.x-K.x,y:Q.y-K.y};return{target:Y,localPosition:K,globalOffset:q}})}break;case"release":this._handleRelease(J,Q,X),this._dragTargets=[];break;case"scroll":if(J.button==="wheel_up"||J.button==="wheel_down")this._handleScroll(J,Q,X);break;case"move":if(this._handleMove(J,Q,X),J.drag)this._handleDrag(J,Q,X);break}this._lastMousePosition=Q}addGlobalReleaseCallback(J){this._globalReleaseCallbacks.add(J)}removeGlobalReleaseCallback(J){this._globalReleaseCallbacks.delete(J)}addGlobalClickCallback(J){this._globalClickCallbacks.add(J)}removeGlobalClickCallback(J){this._globalClickCallbacks.delete(J)}requestCursorChange(J){if(this._vaxis&&J!==this._currentCursor)this._currentCursor=J,this._vaxis.setMouseCursor(J)}_handleRelease(J,Q,Z){for(let X of this._globalReleaseCallbacks)X();for(let{target:X,localPosition:Y}of Z){if(typeof X.handleMouseRelease==="function")X.handleMouseRelease({type:"release",position:Q,localPosition:Y,button:J.button,modifiers:{shift:J.modifiers.shift,ctrl:J.modifiers.ctrl,alt:J.modifiers.alt}});if(X instanceof IG&&X.opaque)break}}_handleDrag(J,Q,Z){for(let{target:X,globalOffset:Y}of this._dragTargets)if(typeof X.handleMouseDrag==="function"){let K={x:Q.x-Y.x,y:Q.y-Y.y};X.handleMouseDrag({type:"drag",position:Q,localPosition:K,button:J.button,drag:J.drag,modifiers:{shift:J.modifiers.shift,ctrl:J.modifiers.ctrl,alt:J.modifiers.alt}})}}_handleClick(J,Q,Z){let X=this._calculateClickCount(Q,J.button);for(let Y of this._globalClickCallbacks)Y({event:J,globalPosition:Q,mouseTargets:Z,clickCount:X});for(let{target:Y,localPosition:K}of Z){let q=ZZ6(J,Q,K,X);if(Y.handleMouseEvent(q),Y instanceof IG&&Y.opaque)break}}_handleScroll(J,Q,Z){for(let{target:X,localPosition:Y}of Z){let K=XZ6(J,Q,Y);if(X.handleMouseEvent(K),X instanceof IG&&X.opaque)break}}_handleMove(J,Q,Z){let X=Z.filter((G)=>G.target instanceof IG),Y=this._scratchCurrentRegions,K=this._scratchExitedRegions,q=this._scratchEnteredRegions;Y.clear();for(let{target:G}of X)Y.add(G);K.clear();for(let G of this._hoveredRegions)if(!Y.has(G))K.add(G);q.clear();for(let G of Y)if(!this._hoveredRegions.has(G))q.add(G);for(let G of K)if(G.onExit){let z={type:"exit",position:Q,localPosition:Q,modifiers:{shift:J.modifiers.shift,ctrl:J.modifiers.ctrl,alt:J.modifiers.alt}};G.handleMouseEvent(z)}for(let{target:G,localPosition:z}of X)if(q.has(G)&&G.onEnter){let U={type:"enter",position:Q,localPosition:z,modifiers:{shift:J.modifiers.shift,ctrl:J.modifiers.ctrl,alt:J.modifiers.alt}};G.handleMouseEvent(U)}for(let{target:G,localPosition:z}of X)if(G.onHover&&this._hoveredRegions.has(G)){let U={type:"hover",position:Q,localPosition:z,modifiers:{shift:J.modifiers.shift,ctrl:J.modifiers.ctrl,alt:J.modifiers.alt}};G.handleMouseEvent(U)}this._hoveredRegions.clear();for(let G of Y)this._hoveredRegions.add(G);this._updateCursor(X)}_updateCursor(J){if(!this._vaxis)return;let Q=R5.DEFAULT;for(let{target:Z}of J)if(Z.cursor!==null)Q=Z.cursor;if(Q!==this._currentCursor)this._currentCursor=Q,this._vaxis.setMouseCursor(Q)}_findMouseTargets(J){let Q=[];for(let Z of J)if(this._canHandleMouseEvents(Z.target))Q.push({target:Z.target,localPosition:Z.localPosition});return Q}_canHandleMouseEvents(J){if(J instanceof IG)return!0;return typeof J.handleMouseEvent==="function"}clearHoverState(){if(this._hoveredRegions.clear(),this._dragTargets=[],this._vaxis&&this._currentCursor!==R5.DEFAULT)this._currentCursor=R5.DEFAULT,this._vaxis.setMouseCursor(R5.DEFAULT)}removeRegion(J){this._hoveredRegions.delete(J)}reestablishHoverState(){if(!this._lastMousePosition||!this._rootRenderObject)return;let J={type:"mouse",action:"move",x:this._lastMousePosition.x,y:this._lastMousePosition.y,button:"unknown",drag:!1,modifiers:{shift:!1,ctrl:!1,alt:!1,meta:!1}};this.handleMouseEvent(J)}_calculateClickCount(J,Q="left"){let Z=Date.now(),X=this._lastClickTime.get(Q)??0,Y=Z-X,K=1,q=this._lastClickPosition.get(Q);if(q&&Y<=BQ.DOUBLE_CLICK_TIME&&this._isWithinDoubleClickDistance(J,q))K=(this._currentClickCount.get(Q)??0)+1;else K=1;return this._lastClickTime.set(Q,Z),this._lastClickPosition.set(Q,J),this._currentClickCount.set(Q,K),K}_isWithinDoubleClickDistance(J,Q){let Z=J.x-Q.x,X=J.y-Q.y;return Z*Z+X*X<=BQ.DOUBLE_CLICK_DISTANCE_SQUARED}dispose(){this.clearHoverState(),this._lastMousePosition=null,this._rootRenderObject=null,this._lastClickTime.clear(),this._lastClickPosition.clear(),this._currentClickCount.clear(),this._globalReleaseCallbacks.clear(),this._globalClickCallbacks.clear(),BQ._instance=null}}});class $x1{_nodesNeedingPaint=new Set;_rootRenderObject=null;_rootConstraints=null;constructor(){}requestLayout(J){if(!XZ.instance.isFrameInProgress)XZ.instance.requestFrame()}requestPaint(J){if(this._nodesNeedingPaint.has(J))return;if(this._nodesNeedingPaint.add(J),!XZ.instance.isFrameInProgress)XZ.instance.requestFrame()}setRootRenderObject(J){this._rootRenderObject=J}updateRootConstraints(J){let Q=new p6(0,J.width,0,J.height),Z=!this._rootConstraints||this._rootConstraints.maxWidth!==Q.maxWidth||this._rootConstraints.maxHeight!==Q.maxHeight;if(this._rootConstraints=Q,Z&&this._rootRenderObject&&"markNeedsLayout"in this._rootRenderObject)this._rootRenderObject.markNeedsLayout()}flushLayout(){if(this._rootRenderObject&&this._rootConstraints&&"needsLayout"in this._rootRenderObject&&this._rootRenderObject.needsLayout){if("layout"in this._rootRenderObject&&typeof this._rootRenderObject.layout==="function")this._rootRenderObject.layout(this._rootConstraints)}}flushPaint(){if(this._nodesNeedingPaint.size===0)return;try{for(let J of this._nodesNeedingPaint)if(J.needsPaint)J._needsPaint=!1}finally{this._nodesNeedingPaint.clear()}}get nodesNeedingLayout(){return[]}get nodesNeedingPaint(){return Array.from(this._nodesNeedingPaint)}get hasNodesNeedingLayout(){return!1}get hasNodesNeedingPaint(){return this._nodesNeedingPaint.size>0}dispose(){this._nodesNeedingPaint.clear()}removeFromQueues(J){this._nodesNeedingPaint.delete(J)}}var YZ6=p(()=>{AA();a9()});var KZ6={};N6(KZ6,{setTerminalFocused:()=>q79,initFocusTracking:()=>K79,getTerminalFocused:()=>Tx1});function K79(J){let Q=(Z)=>{if(Z.type==="focus")Px1=Z.focused};J.onFocus(Q)}function Tx1(){return Px1}function q79(J){Px1=J}var Px1=!0;var GZ6={};N6(GZ6,{initIdleTracking:()=>G79,getIsIdle:()=>Cx1});function G79(J,Q=300000){qZ6=Q,u41=Date.now(),J.onKey(()=>{u41=Date.now()}),J.onMouse(()=>{u41=Date.now()})}function Cx1(){return Date.now()-u41>=qZ6}var u41,qZ6=300000;var Sx1=p(()=>{u41=Date.now()});class EG{static _instance;frameScheduler=XZ.instance;buildOwner;pipelineOwner;focusManager=RV.instance;mouseManager=BQ.instance;frameStatsOverlay=new wx1;tui=new Nx1;rootElement;isRunning=!1;static get instance(){return this._instance??=new EG}pendingResizeEvent=null;constructor(){this.buildOwner=new Ox1,this.pipelineOwner=new $x1,this.frameScheduler.addFrameCallback("resize",()=>this.processResizeIfPending(),"build",-1000,"WidgetsBinding.processResizeIfPending"),this.frameScheduler.addFrameCallback("build",()=>this.buildOwner.buildScopes(),"build",0,"BuildOwner.buildScopes"),this.frameScheduler.addFrameCallback("layout",()=>{this.updateRootConstraints(),this.pipelineOwner.flushLayout()},"layout",0,"PipelineOwner.flushLayout"),this.frameScheduler.addFrameCallback("paint",()=>this.paint(),"paint",0,"WidgetsBinding.paint"),this.frameScheduler.addFrameCallback("render",()=>this.render(),"render",0,"WidgetsBinding.render"),nQ6({scheduleBuildFor:(J)=>this.buildOwner.scheduleBuildFor(J)},{requestLayout:(J)=>this.pipelineOwner.requestLayout(J),requestPaint:(J)=>this.pipelineOwner.requestPaint(J),removeFromQueues:(J)=>this.pipelineOwner.removeFromQueues(J)}),this.setupErrorHandler()}setupErrorHandler(){process.on("uncaughtException",(J)=>{a.error("Framework uncaught exception",J)})}async runApp(J){if(this.isRunning)throw Error("App is already running");try{this.isRunning=!0,this.tui.init(),this.tui.enterAltScreen();let{initFocusTracking:Q}=await Promise.resolve().then(() => KZ6);Q(this.tui);let{initIdleTracking:Z}=await Promise.resolve().then(() => (Sx1(),GZ6));Z(this.tui),await this.tui.waitForCapabilities(1000);let X=this.createMediaQueryWrapper(J);this.rootElement=X.createElement(),this.rootElement.mount();let Y=this.rootElement.renderObject;if(!Y&&this.rootElement.children.length>0)Y=this.rootElement.children[0]?.renderObject;if(Y)this.pipelineOwner.setRootRenderObject(Y),this.updateRootConstraints();if(this.rootElement.renderObject)this.mouseManager.setRootRenderObject(this.rootElement.renderObject);this.mouseManager.setTui(this.tui),a.debug("Setting up event handlers..."),this.setupEventHandlers(),a.debug("Requesting initial frame..."),this.frameScheduler.requestFrame(),a.debug("Waiting for exit...",{isRunning:this.isRunning}),await this.waitForExit(),a.debug("waitForExit completed")}finally{a.debug("Cleaning up..."),await this.cleanup()}}stop(){if(this.isRunning=!1,this.exitResolve)this.exitResolve(),this.exitResolve=null}updateRootConstraints(){let J=this.tui.getSize();this.pipelineOwner.updateRootConstraints(J)}processResizeIfPending(){if(!this.pendingResizeEvent)return;let J=this.pendingResizeEvent;if(this.pendingResizeEvent=null,this.rootElement){let Q={width:J.width,height:J.height},Z=this.tui.getCapabilities()||{syncOutput:!1,emojiWidth:!1,pixelMouse:!1,pixelDimensions:!1,xtversion:null,canRgb:!0,supportsCursorShape:!0,animationSupport:"fast",kittyKeyboard:!1,osc52:!1,scrollStep:()=>3},X=new kT(Q,Z),Y=this.rootElement;if(Y.widget instanceof m8){let q=new m8({data:X,child:Y.widget.child});Y.update(q)}this.tui.getScreen().markForRefresh(),this.pipelineOwner.updateRootConstraints(Q),this.rootElement.markNeedsRebuild(),this.frameScheduler.requestFrame(),this.frameScheduler.addPostFrameCallback(()=>{this.mouseManager.reestablishHoverState()},"MouseManager.reestablishHoverState")}}paint(){if(this.pipelineOwner.flushPaint(),!this.rootElement)return;let J=this.rootElement.renderObject;if(!J&&this.rootElement.children.length>0)J=this.rootElement.children[0]?.renderObject;if(!J)return;try{let Q=this.tui.getScreen();Q.clear(),Q.clearCursor(),this.renderRenderObject(J,Q,0,0);let Z=this.frameScheduler.frameStats;this.frameStatsOverlay.recordStats(Z),this.frameStatsOverlay.draw(Q,Z)}catch(Q){a.error("Paint error:",Q)}}render(){try{this.tui.render()}catch(J){a.error("Render error:",J)}}renderRenderObject(J,Q,Z,X){if("paint"in J&&typeof J.paint==="function")J.paint(Q,Z,X)}createMediaQueryWrapper(J){let Q=this.tui.getCapabilities()||{syncOutput:!1,emojiWidth:!1,pixelMouse:!1,pixelDimensions:!1,xtversion:null,canRgb:!0,supportsCursorShape:!0,animationSupport:"fast",kittyKeyboard:!1,osc52:!1,scrollStep:()=>3},Z=this.tui.getSize(),X=new kT(Z,Q);return new m8({data:X,child:J})}setupEventHandlers(){this.tui.onResize((J)=>{this.mouseManager.clearHoverState(),this.pendingResizeEvent=J,this.frameScheduler.requestFrame()}),this.tui.onKey((J)=>{let Q=performance.now();if(this.focusManager.handleKeyEvent(J)){let Y=performance.now()-Q;this.frameStatsOverlay.recordKeyEvent(Y);return}this.handleGlobalKeyEvent(J);let X=performance.now()-Q;this.frameStatsOverlay.recordKeyEvent(X)}),this.tui.onMouse((J)=>{let Q=performance.now();this.mouseManager.handleMouseEvent(J);let Z=performance.now()-Q;this.frameStatsOverlay.recordMouseEvent(Z)}),this.tui.onPaste((J)=>{this.focusManager.handlePasteEvent(J)}),this.tui.onCapabilities((J)=>{if(this.rootElement){let Q=this.tui.getSize(),Z=new kT(Q,J.capabilities),X=this.rootElement;if(X.widget instanceof m8){let Y=new m8({data:Z,child:X.widget.child});X.update(Y)}this.rootElement.markNeedsRebuild(),this.frameScheduler.requestFrame()}})}handleGlobalKeyEvent(J){if(J.ctrlKey&&J.key==="z"&&!J.shiftKey&&!J.altKey&&!J.metaKey){this.tui.handleSuspend();return}}toggleFrameStatsOverlay(){let J=!this.frameStatsOverlay.isEnabled();this.frameStatsOverlay.setEnabled(J),this.frameScheduler.requestFrame()}exitPromise=null;exitResolve=null;async waitForExit(){if(this.exitPromise)return this.exitPromise;return this.exitPromise=new Promise((J)=>{if(this.exitResolve=J,!this.isRunning)J()}),this.exitPromise}async cleanup(){if(this.isRunning=!1,this.rootElement)this.rootElement.unmount(),this.rootElement=void 0;this.buildOwner.dispose(),this.pipelineOwner.dispose(),this.focusManager.dispose(),this.mouseManager.dispose(),this.frameScheduler.removeFrameCallback("resize"),this.frameScheduler.removeFrameCallback("build"),this.frameScheduler.removeFrameCallback("layout"),this.frameScheduler.removeFrameCallback("paint"),this.frameScheduler.removeFrameCallback("render"),await this.tui.deinit()}get tuiInstance(){return this.tui}get rootElementInstance(){return this.rootElement}}async function vx1(J,Q){let Z=EG.instance;if(Q?.stdin)Z.tuiInstance.setStdin(Q.stdin);await Z.runApp(J)}var kx1=p(()=>{D0();cQ6();iQ6();Rx1();AA();oQ6();RG();rm();YZ6()});class IH{element;widget;mediaQuery;parent;constructor(J,Q,Z=void 0,X=null){this.element=J;this.widget=Q;this.mediaQuery=Z;this.parent=X}findAncestorElementOfType(J){let Q=this.element.parent;while(Q){if(Q instanceof J)return Q;Q=Q.parent}return null}findAncestorWidgetOfType(J){return this.element.findAncestorWidgetOfType(J)}dependOnInheritedWidgetOfExactType(J){return this.element.dependOnInheritedWidgetOfExactType(J)}findAncestorStateOfType(J){let Q=this.element.parent;while(Q){if("state"in Q&&Q.state instanceof J)return Q.state;Q=Q.parent}return null}findRenderObject(){if("renderObject"in this.element){let J=this.element.renderObject;return J instanceof wV?J:void 0}return}}var sm=p(()=>{a9()});var zZ6=()=>{};class UZ6{constructor(){}}var o5;var om=p(()=>{o5=class o5 extends UZ6{value;constructor(J){super();this.value=J}equals(J){if(!(J instanceof o5))return!1;return this.value===J.value}get hashCode(){if(this.value===null||this.value===void 0)return 0;if(typeof this.value==="string")return this.stringHash(this.value);if(typeof this.value==="number")return this.value;if(typeof this.value==="boolean")return this.value?1:0;return this.stringHash(String(this.value))}stringHash(J){let Q=0;for(let Z=0;Z<J.length;Z++){let X=J.charCodeAt(Z);Q=(Q<<5)-Q+X,Q=Q&Q}return Q}toString(){return`ValueKey(${this.value})`}}});var I5,FZ6;var IA=p(()=>{I4();a9();Y7();I5=class I5 extends h4{constructor({key:J,child:Q}={}){super({key:J,child:Q})}createRenderObject(){return new FZ6}updateRenderObject(J){}static child(J){return new I5({child:J})}};FZ6=class FZ6 extends H8{constructor(){super()}performLayout(){let J=this._lastConstraints;K8(!!J,"performLayout called without constraints");let Q=this.children[0];if(!Q){let G=IV(J.maxWidth,J.minWidth),z=IV(J.maxHeight,J.minHeight);this.setSize(G,z),super.performLayout();return}Q.layout(p6.loose(J.maxWidth,J.maxHeight));let Z=J.maxWidth===1/0?Q.size.width:J.maxWidth,X=J.maxHeight===1/0?Q.size.height:J.maxHeight,Y=J.constrain(Z,X);this.setSize(Y.width,Y.height);let K=(this.size.width-Q.size.width)/2,q=(this.size.height-Q.size.height)/2;Q.setOffset(K,q),super.performLayout()}}});var EH;var tm=p(()=>{z9();EH=class EH extends dm{_screen;_clipX;_clipY;_clipWidth;_clipHeight;constructor(J,Q,Z,X,Y){super(X,Y);this._screen=J,this._clipX=Q,this._clipY=Z,this._clipWidth=X,this._clipHeight=Y}setChar(J,Q,Z,X,Y=1){if(J>=this._clipX&&J<this._clipX+this._clipWidth&&Q>=this._clipY&&Q<this._clipY+this._clipHeight)this._screen.setChar(J,Q,Z,X||{},Y)}setCell(J,Q,Z){if(J>=this._clipX&&J<this._clipX+this._clipWidth&&Q>=this._clipY&&Q<this._clipY+this._clipHeight)this._screen.setCell(J,Q,Z)}fill(J,Q,Z,X,Y=" ",K){let q=Math.max(J,this._clipX),G=Math.max(Q,this._clipY),z=Math.min(J+Z,this._clipX+this._clipWidth),U=Math.min(Q+X,this._clipY+this._clipHeight);if(q<z&&G<U)this._screen.fill(q,G,z-q,U-G,Y,K)}getSize(){return this._screen.getSize()}resize(J,Q){return this._screen.resize(J,Q)}getBuffer(){return this._screen.getBuffer()}getFrontBuffer(){return this._screen.getFrontBuffer()}getBackBuffer(){return this._screen.getBackBuffer()}getCell(J,Q){return this._screen.getCell(J,Q)}clear(){return this._screen.clear()}present(){return this._screen.present()}getDiff(){return this._screen.getDiff()}markForRefresh(){return this._screen.markForRefresh()}setCursor(J,Q){return this._screen.setCursor(J,Q)}clearCursor(){return this._screen.clearCursor()}getCursor(){return this._screen.getCursor()}isCursorVisible(){return this._screen.isCursorVisible()}}});var _x1,WZ6;var bx1=p(()=>{I4();tm();a9();Y7();_x1=class _x1 extends h4{clipBehavior;constructor(J,{key:Q,clipBehavior:Z="antiAlias"}={}){super(Q?{child:J,key:Q}:{child:J});this.clipBehavior=Z}createRenderObject(){return new WZ6(this.clipBehavior)}updateRenderObject(J){J.updateClipBehavior(this.clipBehavior)}};WZ6=class WZ6 extends H8{_clipBehavior;constructor(J){super();this._clipBehavior=J}updateClipBehavior(J){if(this._clipBehavior!==J)this._clipBehavior=J,this.markNeedsPaint()}performLayout(){let J=this._lastConstraints;if(K8(!!J,"performLayout called without constraints"),this.children.length===0){this.setSize(J.minWidth,J.minHeight),super.performLayout();return}this.children[0].layout(J),this.setSize(J.maxWidth,J.maxHeight),super.performLayout()}paint(J,Q=0,Z=0){if(this.children.length===0||this._clipBehavior==="none"){super.paint(J,Q,Z);return}let X=this.children[0],Y=Q+this.offset.x,K=Z+this.offset.y,q=this.size.width,G=this.size.height,z=new EH(J,Y,K,q,G);X.paint(z,Q+this.offset.x,Z+this.offset.y)}}});class em{detach(){}toString(){return`${this.constructor.name}#${this.hashCode()}`}hashCode(){return Math.random().toString(36).substr(2,9)}}var Ju;var p41=p(()=>{Ju=class Ju extends em{flex;fit;constructor(J=0,Q="tight"){super();this.flex=J,this.fit=Q}toString(){return`FlexParentData(flex: ${this.flex}, fit: ${this.fit})`}}});var Qu,HZ6,BZ6;var d41=p(()=>{I4();a9();Y7();p41();Qu=class Qu extends wG{direction;mainAxisAlignment;crossAxisAlignment;mainAxisSize;constructor({key:J,direction:Q,children:Z=[],mainAxisAlignment:X="start",crossAxisAlignment:Y="center",mainAxisSize:K="min"}){super({...J?{key:J}:{},children:Z});this.direction=Q,this.mainAxisAlignment=X,this.crossAxisAlignment=Y,this.mainAxisSize=K}createRenderObject(){return new BZ6(this.direction,this.mainAxisAlignment,this.crossAxisAlignment,this.mainAxisSize)}updateRenderObject(J){J.updateProperties(this.direction,this.mainAxisAlignment,this.crossAxisAlignment,this.mainAxisSize)}createElement(){return new HZ6(this)}};HZ6=class HZ6 extends m41{constructor(J){super(J)}get flexWidget(){return this.widget}mount(){super.mount(),this._setupChildParentData()}update(J){super.update(J),this._setupChildParentData()}performRebuild(){super.performRebuild(),this._setupChildParentData()}_setupChildParentData(){for(let J of this.children){let Q=J.renderObject;if(Q&&!Q.parentData)Q.parentData=new Ju(0,"tight")}}};BZ6=class BZ6 extends H8{_direction;_mainAxisAlignment;_crossAxisAlignment;_mainAxisSize;constructor(J,Q,Z,X){super();this._direction=J;this._mainAxisAlignment=Q;this._crossAxisAlignment=Z;this._mainAxisSize=X}updateProperties(J,Q,Z,X){this._direction=J,this._mainAxisAlignment=Q,this._crossAxisAlignment=Z,this._mainAxisSize=X,this.markNeedsLayout()}performLayout(){super.performLayout();let J=this._lastConstraints;K8(!!J,"performLayout called without constraints");let Q=this._direction==="horizontal",Z=[],X=[];for(let D of this.children){let M=D.parentData;if(M&&M.flex>0)Z.push({child:D,flex:M.flex,fit:M.fit});else X.push(D)}let Y=0,K=0,q,G=Q?J.maxHeight:J.maxWidth;if(isFinite(G))q=G;else{let D=0;for(let M of X){let V=Q?M.getMaxIntrinsicHeight(1/0):M.getMaxIntrinsicWidth(1/0);D=Math.max(D,V)}q=D}for(let D of X){let M=Q?new p6(0,1/0,0,q):new p6(0,q,0,1/0);if(D.layout(M),Q)Y+=D.size.width,K=Math.max(K,D.size.height);else Y+=D.size.height,K=Math.max(K,D.size.width)}let z=Q?J.maxWidth:J.maxHeight,U=Number.isFinite(z)?Math.max(0,z-Y):0,F=Z.reduce((D,M)=>D+M.flex,0);if(F>0){let D=U/F,M=0;for(let V=0;V<Z.length;V++){let{child:N,flex:L,fit:O}=Z[V],A;if(V===Z.length-1)A=U-M;else A=Math.floor(D*L),M+=A;let j=Q?J.maxHeight:J.maxWidth,R=Q?O==="tight"?new p6(A,A,0,j):p6.loose(A,j):O==="tight"?new p6(0,j,A,A):p6.loose(j,A);if(N.layout(R),Q)K=Math.max(K,N.size.height);else K=Math.max(K,N.size.width)}}let W=Y+(F>0?U:0);if(Q){K8(!(Z.length>0&&J.maxWidth===1/0&&this._mainAxisSize!=="min"),"RenderFlex children have non-zero flex but incoming width constraints are unbounded. Consider using MainAxisSize.min instead, or providing bounded width constraints.");let D=this._mainAxisSize==="min"||J.maxWidth===1/0?W:Math.max(J.minWidth,J.maxWidth);this.setSize(IV(D,J.minWidth),IV(K,J.minHeight))}else{K8(!(Z.length>0&&J.maxHeight===1/0&&this._mainAxisSize!=="min"),"RenderFlex children have non-zero flex but incoming height constraints are unbounded. Consider using MainAxisSize.min instead, or providing bounded height constraints.");let D=this._mainAxisSize==="min"||J.maxHeight===1/0?Math.min(Math.max(W,J.minHeight),J.maxHeight):Math.max(J.minHeight,J.maxHeight),M=this._mainAxisSize==="min"||J.maxHeight===1/0?Math.min(Math.max(K,J.minWidth),J.maxWidth):J.maxWidth;this.setSize(IV(M,J.minWidth),IV(D,J.minHeight))}if(this._crossAxisAlignment==="stretch"){let D=Q?this.size.height:this.size.width;for(let M of X){let V=Q?new p6(0,1/0,D,D):new p6(D,D,0,1/0);M.layout(V)}for(let{child:M}of Z){let V=Q?M.size.width:M.size.height,N=Q?new p6(V,V,D,D):new p6(D,D,V,V);M.layout(N)}}let H=Q?this.size.height:this.size.width;this.positionChildren(Q,H,J)}positionChildren(J,Q,Z){let X=this.children;if(X.length===0)return;let Y=0;for(let F of X)Y+=J?F.size.width:F.size.height;let K=J?this.size.width:this.size.height,q=Math.max(0,K-Y),G=0,z=0;switch(this._mainAxisAlignment){case"start":G=0;break;case"end":G=q;break;case"center":G=q/2;break;case"spaceBetween":z=X.length>1?Math.floor(q/(X.length-1)):0;break;case"spaceAround":z=X.length>0?q/X.length:0,G=z/2;break;case"spaceEvenly":z=X.length>0?Math.floor(q/(X.length+1)):0,G=z;break}let U=G;for(let F=0;F<X.length;F++){let W=X[F],H=J?W.size.width:W.size.height,D=J?W.size.height:W.size.width,M=0;switch(this._crossAxisAlignment){case"start":M=0;break;case"end":M=Q-D;break;case"center":M=(Q-D)/2;break;case"stretch":M=0;break;case"baseline":if(!J)throw Error("CrossAxisAlignment.baseline is only supported for horizontal flex (Row)");M=0;break}if(J)W.setOffset(U,M);else W.setOffset(M,U);if(U+=H,F<X.length-1)U+=z}}getMinIntrinsicWidth(J){let Q=this._direction==="horizontal",Z=this.children;if(Q){let X=0;for(let Y of Z){let K=Y.parentData;if(!K||K.flex===0)X+=Y.getMinIntrinsicWidth(J)}return X}else{let X=0;for(let Y of Z)X=Math.max(X,Y.getMinIntrinsicWidth(J));return X}}getMaxIntrinsicWidth(J){let Q=this._direction==="horizontal",Z=this.children;if(Q){let X=0;for(let Y of Z){let K=Y.parentData;if(!K||K.flex===0)X+=Y.getMaxIntrinsicWidth(J)}return X}else{let X=0;for(let Y of Z)X=Math.max(X,Y.getMaxIntrinsicWidth(J));return X}}getMaxIntrinsicHeight(J){let Q=this._direction==="horizontal",Z=this.children;if(Q){let X=0,Y=0,K=[],q=[];for(let U of Z){let F=U.parentData;if(F&&F.flex>0)Y+=F.flex,q.push({child:U,flex:F.flex});else K.push(U)}let G=0;for(let U of K)G+=U.getMaxIntrinsicWidth(0);let z=Math.max(0,J-G);for(let U of Z){let F=U.parentData,W=J;if(F&&F.flex>0&&Y>0)W=z/Y*F.flex;X=Math.max(X,U.getMaxIntrinsicHeight(W))}return X}else{let X=0;for(let Y of Z){let K=Y.parentData;if(!K||K.flex===0)X+=Y.getMaxIntrinsicHeight(J)}return X}}getMinIntrinsicHeight(J){let Q=this._direction==="horizontal",Z=this.children;if(Q){let X=0,Y=0,K=[],q=[];for(let U of Z){let F=U.parentData;if(F&&F.flex>0)Y+=F.flex,q.push(U);else K.push(U)}let G=0;for(let U of K)G+=U.getMinIntrinsicWidth(0);let z=Math.max(0,J-G);for(let U of Z){let F=U.parentData,W=J;if(F&&F.flex>0&&Y>0)W=z/Y*F.flex;X=Math.max(X,U.getMinIntrinsicHeight(W))}return X}else{let X=0;for(let Y of Z){let K=Y.parentData;if(!K||K.flex===0)X+=Y.getMinIntrinsicHeight(J)}return X}}dispose(){this._direction="vertical",this._mainAxisAlignment="start",this._crossAxisAlignment="start",this._mainAxisSize="min",super.dispose()}}});var O6;var GX=p(()=>{d41();O6=class O6 extends Qu{constructor({key:J,children:Q=[],mainAxisAlignment:Z="start",crossAxisAlignment:X="center",mainAxisSize:Y="max"}={}){super({...J?{key:J}:{},direction:"vertical",children:Q,mainAxisAlignment:Z,crossAxisAlignment:X,mainAxisSize:Y})}static start(J){return new O6({children:J,mainAxisAlignment:"start"})}static center(J){return new O6({children:J,mainAxisAlignment:"center"})}static end(J){return new O6({children:J,mainAxisAlignment:"end"})}static spaceBetween(J){return new O6({children:J,mainAxisAlignment:"spaceBetween"})}static spaceAround(J){return new O6({children:J,mainAxisAlignment:"spaceAround"})}static spaceEvenly(J){return new O6({children:J,mainAxisAlignment:"spaceEvenly"})}}});class h2{color;border;constructor(J,Q){this.color=J;this.border=Q}}class H4{top;right;bottom;left;constructor(J,Q,Z,X){this.top=J;this.right=Q;this.bottom=Z;this.left=X}static all(J){return new H4(J,J,J,J)}static symmetric(J,Q){return new H4(Q,J,Q,J)}}class g4{color;width;style;constructor(J=d1.black,Q=1,Z="rounded"){this.color=J;this.width=Q;this.style=Z}}var s6,c41;var EJ=p(()=>{I4();z9();a9();Y7();s6=class s6 extends h4{width;height;padding;margin;decoration;constraints;constructor({key:J,child:Q,width:Z,height:X,padding:Y,margin:K,decoration:q,constraints:G}={}){super({...J?{key:J}:{},...Q?{child:Q}:{}});this.width=Z,this.height=X,this.padding=Y,this.margin=K,this.decoration=q,this.constraints=G}createRenderObject(){return new c41(this.width,this.height,this.padding,this.margin,this.decoration,this.constraints)}updateRenderObject(J){if(!(J instanceof c41))throw Error("renderObject must be an instance of ContainerRenderObject");J.updateProperties(this.width,this.height,this.padding,this.margin,this.decoration,this.constraints)}};c41=class c41 extends H8{_width;_height;_padding;_margin;_decoration;_constraints;constructor(J,Q,Z,X,Y,K){super();this._width=J;this._height=Q;this._padding=Z;this._margin=X;this._decoration=Y;this._constraints=K}updateProperties(J,Q,Z,X,Y,K){this._width=J,this._height=Q,this._padding=Z,this._margin=X,this._decoration=Y,this._constraints=K,this.markNeedsLayout(),this.markNeedsPaint()}performLayout(){super.performLayout();let J=this._lastConstraints;K8(!!J,"performLayout called without constraints");let Q=J;if(this._constraints)Q=new p6(Math.max(J.minWidth,this._constraints.minWidth),Math.min(J.maxWidth,this._constraints.maxWidth),Math.max(J.minHeight,this._constraints.minHeight),Math.min(J.maxHeight,this._constraints.maxHeight));let Z=this._margin?.horizontal??0,X=this._margin?.vertical??0,Y=this._padding?.horizontal??0,K=this._padding?.vertical??0,q=this._decoration?.border,G=(q?.left?1:0)+(q?.right?1:0),z=(q?.top?1:0)+(q?.bottom?1:0),U,F;if(this._width!==void 0)U=this._width;if(this._height!==void 0)F=this._height;let W,H;if(U!==void 0)W=Math.max(0,U-Z-Y-G);else W=Q.maxWidth-Z-Y-G;if(F!==void 0)H=Math.max(0,F-X-K-z);else H=Q.maxHeight-X-K-z;let D=new p6(Math.max(0,Q.minWidth-Z-Y-G),Math.max(0,W),Math.max(0,Q.minHeight-X-K-z),Math.max(0,H)),M,V;if(this.children.length>0){let O=this.children[0];if(!(O instanceof H8))throw Error("Child must be a RenderBox");O.layout(D),M=O.size.width,V=O.size.height;let A=q?.left?1:0,j=q?.top?1:0,R=(this._margin?.left??0)+A+(this._padding?.left??0),I=(this._margin?.top??0)+j+(this._padding?.top??0);O.setOffset(R,I)}else M=0,V=0;let N,L;if(U!==void 0)N=U;else N=M+Y+G+Z;if(F!==void 0)L=F;else L=V+K+z+X;if(Q.minWidth===Q.maxWidth&&isFinite(Q.maxWidth))N=Q.maxWidth;if(Q.minHeight===Q.maxHeight&&isFinite(Q.maxHeight))L=Q.maxHeight;this.setSize(Q.constrain(N,L).width,Q.constrain(N,L).height)}getMinIntrinsicWidth(J){let Q=this._margin?.horizontal??0,Z=this._padding?.horizontal??0,X=this._decoration?.border,Y=(X?.left?1:0)+(X?.right?1:0),K=0;if(this.children.length>0){let q=this.children[0],G=Math.max(0,J-(this._margin?.vertical??0)-(this._padding?.vertical??0)-((X?.top?1:0)+(X?.bottom?1:0)));K=q.getMinIntrinsicWidth(G)}return K+Q+Z+Y}getMaxIntrinsicWidth(J){if(this._width!==void 0)return this._width;if(this._constraints&&this._constraints.maxWidth!==1/0)return this._constraints.maxWidth;let Q=this._margin?.horizontal??0,Z=this._padding?.horizontal??0,X=this._decoration?.border,Y=(X?.left?1:0)+(X?.right?1:0),K=1/0;if(this.children.length>0){let q=this.children[0],G=Math.max(0,J-(this._margin?.vertical??0)-(this._padding?.vertical??0)-((X?.top?1:0)+(X?.bottom?1:0)));K=q.getMaxIntrinsicWidth(G)}if(K===1/0)return 1/0;return K+Q+Z+Y}getMinIntrinsicHeight(J){let Q=this._margin?.vertical??0,Z=this._padding?.vertical??0,X=this._decoration?.border,Y=(X?.top?1:0)+(X?.bottom?1:0),K=0;if(this.children.length>0){let G=this.children[0],z=Math.max(0,J-(this._margin?.horizontal??0)-(this._padding?.horizontal??0)-((X?.left?1:0)+(X?.right?1:0)));K=G.getMinIntrinsicHeight(z)}let q=K+Q+Z+Y;if(this._constraints&&this._constraints.maxHeight!==1/0)return Math.min(q,this._constraints.maxHeight);return q}getMaxIntrinsicHeight(J){if(this._height!==void 0)return this._height;if(this._constraints&&this._constraints.maxHeight!==1/0)return this._constraints.maxHeight;let Q=this._margin?.vertical??0,Z=this._padding?.vertical??0,X=this._decoration?.border,Y=(X?.top?1:0)+(X?.bottom?1:0),K=0;if(this.children.length>0){let q=this.children[0],G=Math.max(0,J-(this._margin?.horizontal??0)-(this._padding?.horizontal??0)-((X?.left?1:0)+(X?.right?1:0)));K=q.getMaxIntrinsicHeight(G)}if(K===1/0)return 1/0;return K+Q+Z+Y}paint(J,Q=0,Z=0){let X=Math.floor(Q+this.offset.x),Y=Math.floor(Z+this.offset.y);if(this._decoration?.color){let K={bg:this._decoration.color};J.fill(X,Y,this.size.width,this.size.height," ",K)}if(this._decoration?.border)this._paintBorder(J,X,Y);super.paint(J,Q,Z)}_paintBorder(J,Q,Z){let X=this._decoration.border,Y=this.size.width,K=this.size.height,q=(H)=>{switch(H){case 1:return"─";case 2:return"━";case 3:return"━";default:return"━"}},G=(H)=>{switch(H){case 1:return"│";case 2:return"┃";case 3:return"┃";default:return"┃"}},z=(H,D)=>{if(H===1)return D?{tl:"╭",tr:"╮",bl:"╰",br:"╯"}:{tl:"┌",tr:"┐",bl:"└",br:"┘"};else return D?{tl:"╭",tr:"╮",bl:"╰",br:"╯"}:{tl:"┏",tr:"┓",bl:"┗",br:"┛"}};if(X.top){let H={fg:X.top.color},D=q(X.top.width);for(let M=0;M<Y;M++)J.setChar(Q+M,Z,D,H,1)}if(X.bottom){let H={fg:X.bottom.color},D=q(X.bottom.width);for(let M=0;M<Y;M++)J.setChar(Q+M,Z+K-1,D,H,1)}if(X.left){let H={fg:X.left.color},D=G(X.left.width);for(let M=0;M<K;M++)J.setChar(Q,Z+M,D,H,1)}if(X.right){let H={fg:X.right.color},D=G(X.right.width);for(let M=0;M<K;M++)J.setChar(Q+Y-1,Z+M,D,H,1)}let U=X.top?.style==="rounded",F=Math.max(X.top?.width??1,X.right?.width??1,X.bottom?.width??1,X.left?.width??1),W=z(F,U);if(X.top&&X.left){let H={fg:X.top.color};J.setChar(Q,Z,W.tl,H,1)}if(X.top&&X.right){let H={fg:X.top.color};J.setChar(Q+Y-1,Z,W.tr,H,1)}if(X.bottom&&X.left){let H={fg:X.bottom.color};J.setChar(Q,Z+K-1,W.bl,H,1)}if(X.bottom&&X.right){let H={fg:X.bottom.color};J.setChar(Q+Y-1,Z+K-1,W.br,H,1)}}hitTest(J,Q,Z=0,X=0){return super.hitTest(J,Q,Z,X)}_getBorderWidth(){let J=this._decoration?.border;if(!J)return 0;let Q=[J.top,J.right,J.bottom,J.left].filter((Z)=>Z!==void 0);return Q.length>0?Math.max(...Q.map((Z)=>Z.width)):0}dispose(){this._decoration=void 0,this._constraints=void 0,this._padding=void 0,this._margin=void 0,super.dispose()}}});var Zu,DZ6;var l41=p(()=>{wH();Zu=class Zu extends HQ{child;constructor(J,Q){super(Q);this.child=J}createElement(){return new DZ6(this)}};DZ6=class DZ6 extends UY{_child;constructor(J){super(J)}get parentDataWidget(){return this.widget}get child(){return this._child}get renderObject(){return this._child?.renderObject}mount(){this._child=this.parentDataWidget.child.createElement(),this.addChild(this._child),this._child.mount(),this._applyParentData()}unmount(){if(this._child)this._child.unmount(),this.removeChild(this._child),this._child=void 0;super.unmount()}update(J){super.update(J);let Q=J;if(this._child)if(this._child.widget.canUpdate(Q.child))this._child.update(Q.child);else this._child.unmount(),this.removeChild(this._child),this._child=Q.child.createElement(),this.addChild(this._child),this._child.mount();else this._child=Q.child.createElement(),this.addChild(this._child),this._child.mount();this._applyParentData()}performRebuild(){this._applyParentData()}_applyParentData(){let J=this._child;if(!J)return;let Q=J.renderObject;if(!Q)return;if(!this.parentDataWidget.debugIsValidRenderObject(Q))throw Error(`ParentDataWidget ${this.parentDataWidget.constructor.name} provided parent data to ${Q.constructor.name}, but ${Q.constructor.name} doesn't support this type of parent data.`);if(!Q.parentData||Q.parentData.constructor!==this.parentDataWidget.createParentData().constructor)Q.parentData=this.parentDataWidget.createParentData();this.parentDataWidget.applyParentData(Q)}}});var $2;var TU=p(()=>{l41();p41();$2=class $2 extends Zu{flex;constructor({child:J,flex:Q=1,key:Z}){super(J,Z);this.flex=Q}createParentData(){return new Ju(this.flex,"tight")}applyParentData(J){let Q=J.parentData;if(Q)Q.flex=this.flex,Q.fit="tight"}debugIsValidRenderObject(J){return!0}toString(){return`Expanded(flex: ${this.flex}, child: ${this.child})`}}});var MZ6=()=>{};class B6{left;top;right;bottom;constructor(J,Q,Z,X){this.left=J;this.top=Q;this.right=Z;this.bottom=X}static all(J){return new B6(J,J,J,J)}static symmetric(J=0,Q=0){return new B6(J,Q,J,Q)}static horizontal(J){return new B6(J,0,J,0)}static vertical(J){return new B6(0,J,0,J)}static only(J){return new B6(J.left??0,J.top??0,J.right??0,J.bottom??0)}get horizontal(){return this.left+this.right}get vertical(){return this.top+this.bottom}}var S8,yx1,fx1;var FY=p(()=>{I4();a9();wH();S8=class S8 extends HQ{padding;child;constructor({key:J,padding:Q,child:Z}){super(J?{key:J}:{});this.padding=Q,this.child=Z}createElement(){return new yx1(this)}};yx1=class yx1 extends UY{_child;_renderObject;constructor(J){super(J)}get paddingWidget(){return this.widget}get child(){return this._child}get renderObject(){return this._renderObject}mount(){if(this._renderObject=new fx1(this.paddingWidget.padding),this._renderObject.attach(),this.paddingWidget.child){if(this._child=this.paddingWidget.child.createElement(),this.addChild(this._child),this._child.mount(),this._child.renderObject)this._renderObject.adoptChild(this._child.renderObject)}}unmount(){if(this._child)this._child.unmount(),this.removeChild(this._child),this._child=void 0;if(this._renderObject)this._renderObject.detach(),this._renderObject=void 0;super.unmount()}update(J){super.update(J);let Q=this.paddingWidget;if(this._renderObject)this._renderObject.updatePadding(Q.padding);if(Q.child&&this._child){if(this._child.widget.canUpdate(Q.child))this._child.update(Q.child);else if(this._child.unmount(),this.removeChild(this._child),this._child=Q.child.createElement(),this.addChild(this._child),this._child.mount(),this._renderObject&&this._child.renderObject)this._renderObject.removeAllChildren(),this._renderObject.adoptChild(this._child.renderObject)}else if(Q.child&&!this._child){if(this._child=Q.child.createElement(),this.addChild(this._child),this._child.mount(),this._renderObject&&this._child.renderObject)this._renderObject.adoptChild(this._child.renderObject)}else if(!Q.child&&this._child){if(this._child.unmount(),this.removeChild(this._child),this._child=void 0,this._renderObject)this._renderObject.removeAllChildren()}}performRebuild(){}};fx1=class fx1 extends H8{_padding;constructor(J){super();this._padding=J}updatePadding(J){this._padding=J,this.markNeedsLayout()}get padding(){return this._padding}performLayout(){super.performLayout();let J=this._lastConstraints;K8(!!J,"performLayout called without constraints");let Q=this._padding.horizontal,Z=this._padding.vertical,X=new p6(Math.max(0,J.minWidth-Q),Math.max(0,J.maxWidth-Q),Math.max(0,J.minHeight-Z),Math.max(0,J.maxHeight-Z));if(this.children.length>0){let Y=this.children[0];Y.layout(X),Y.setOffset(this._padding.left,this._padding.top),this.setSize(Y.size.width+Q,Y.size.height+Z)}else this.setSize(J.minWidth+Q,J.minHeight+Z)}getMinIntrinsicWidth(J){let Q=this._padding.horizontal,Z=this._padding.vertical;if(this.children.length>0){let X=this.children[0],Y=Math.max(0,J-Z);return X.getMinIntrinsicWidth(Y)+Q}return Q}getMinIntrinsicHeight(J){let Q=this._padding.horizontal,Z=this._padding.vertical;if(this.children.length>0){let X=this.children[0],Y=Math.max(0,J-Q);return X.getMinIntrinsicHeight(Y)+Z}return Z}getMaxIntrinsicWidth(J){let Q=this._padding.horizontal,Z=this._padding.vertical;if(this.children.length>0){let X=this.children[0],Y=Math.max(0,J-Z);return X.getMaxIntrinsicWidth(Y)+Q}return Q}getMaxIntrinsicHeight(J){let Q=this._padding.horizontal,Z=this._padding.vertical;if(this.children.length>0){let X=this.children[0],Y=Math.max(0,J-Q);return X.getMaxIntrinsicHeight(Y)+Z}return Z}hitTest(J,Q,Z=0,X=0){let Y=Z+this.offset.x,K=X+this.offset.y,q=Q.x>=Y&&Q.x<Y+this.size.width,G=Q.y>=K&&Q.y<K+this.size.height;if(q&&G){let F={x:Q.x-Y,y:Q.y-K};J.add({target:this,localPosition:F});for(let W=this.children.length-1;W>=0;W--){let H=this.children[W];if(H&&"hitTest"in H&&typeof H.hitTest==="function")H.hitTest(J,Q,Y,K)}return!0}let z=Z+this.offset.x,U=X+this.offset.y;for(let F of this.children)if("hitTest"in F&&typeof F.hitTest==="function")F.hitTest(J,Q,z,U);return!1}}});var _K,i41,VZ6;var EA=p(()=>{I4();a9();Y7();_K=class _K extends wG{constructor({key:J,children:Q=[]}={}){super({...J?{key:J}:{},children:Q})}createRenderObject(){return new VZ6}updateRenderObject(J){}};i41=class i41 extends em{left;top;right;bottom;width;height;constructor(J,Q,Z,X,Y,K){super();this.left=J,this.top=Q,this.right=Z,this.bottom=X,this.width=Y,this.height=K}};VZ6=class VZ6 extends H8{constructor(){super();this.allowHitTestOutsideBounds=!0}setupParentData(J){if(!J.parentData)J.parentData=new i41}performLayout(){let J=this._lastConstraints;K8(!!J,"performLayout called without constraints");let Q=0,Z=0,X=this.children;for(let q of X){let G=q.parentData;if(!G||!G.left&&!G.top&&!G.right&&!G.bottom)q.layout(J),Q=Math.max(Q,q.size.width),Z=Math.max(Z,q.size.height)}let Y=Math.max(Q,J.minWidth),K=Math.max(Z,J.minHeight);this.setSize(Y,K);for(let q of X){let G=q.parentData;if(G&&(G.left!==void 0||G.top!==void 0||G.right!==void 0||G.bottom!==void 0))this.layoutPositionedChild(q,G);else q.setOffset(0,0)}super.performLayout()}layoutPositionedChild(J,Q){let{width:Z,height:X}=Q;if(Z===void 0&&Q.left!==void 0&&Q.right!==void 0)Z=this.size.width-Q.left-Q.right;if(X===void 0&&Q.top!==void 0&&Q.bottom!==void 0)X=this.size.height-Q.top-Q.bottom;let Y=new p6(Z??0,Z??this.size.width,X??0,X??this.size.height);J.layout(Y);let K=0,q=0;if(Q.left!==void 0)K=Q.left;else if(Q.right!==void 0)K=this.size.width-Q.right-J.size.width;if(Q.top!==void 0)q=Q.top;else if(Q.bottom!==void 0)q=this.size.height-Q.bottom-J.size.height;J.setOffset(K,q)}}});var $A;var Xu=p(()=>{l41();EA();$A=class $A extends Zu{left;top;right;bottom;width;height;constructor({key:J,left:Q,top:Z,right:X,bottom:Y,width:K,height:q,child:G}){super(G,J);this.left=Q,this.top=Z,this.right=X,this.bottom=Y,this.width=K,this.height=q}createParentData(){return new i41(this.left,this.top,this.right,this.bottom,this.width,this.height)}applyParentData(J){let Q=J.parentData;if(Q)Q.left=this.left,Q.top=this.top,Q.right=this.right,Q.bottom=this.bottom,Q.width=this.width,Q.height=this.height}debugIsValidRenderObject(J){return!0}updateParentData(J){let Q=J.parentData,Z=!1;if(Q.left!==this.left)Q.left=this.left,Z=!0;if(Q.top!==this.top)Q.top=this.top,Z=!0;if(Q.right!==this.right)Q.right=this.right,Z=!0;if(Q.bottom!==this.bottom)Q.bottom=this.bottom,Z=!0;if(Q.width!==this.width)Q.width=this.width,Z=!0;if(Q.height!==this.height)Q.height=this.height,Z=!0;if(Z){let X=J.parent;if(X&&"markNeedsLayout"in X)X.markNeedsLayout()}}}});var N9;var $G=p(()=>{d41();N9=class N9 extends Qu{constructor({key:J,children:Q=[],mainAxisAlignment:Z="start",crossAxisAlignment:X="center",mainAxisSize:Y="max"}={}){super({...J?{key:J}:{},direction:"horizontal",children:Q,mainAxisAlignment:Z,crossAxisAlignment:X,mainAxisSize:Y})}static start(J){return new N9({children:J,mainAxisAlignment:"start"})}static center(J){return new N9({children:J,mainAxisAlignment:"center"})}static end(J){return new N9({children:J,mainAxisAlignment:"end"})}static spaceBetween(J){return new N9({children:J,mainAxisAlignment:"spaceBetween"})}static spaceAround(J){return new N9({children:J,mainAxisAlignment:"spaceAround"})}static spaceEvenly(J){return new N9({children:J,mainAxisAlignment:"spaceEvenly"})}}});var i0,hx1;var u7=p(()=>{I4();a9();Y7();i0=class i0 extends h4{width;height;constructor({key:J,width:Q,height:Z,child:X}={}){super({key:J,child:X});this.width=Q,this.height=Z}createRenderObject(){return new hx1(this.width,this.height)}updateRenderObject(J){J.updateDimensions(this.width,this.height)}static fromSize(J,Q,Z){return Z?new i0({width:J,height:Q,child:Z}):new i0({width:J,height:Q})}static expand(J){return J?new i0({width:1/0,height:1/0,child:J}):new i0({width:1/0,height:1/0})}static shrink(J){return J?new i0({width:0,height:0,child:J}):new i0({width:0,height:0})}static height(J,Q){return Q?new i0({height:J,child:Q}):new i0({height:J})}static width(J,Q){return Q?new i0({width:J,child:Q}):new i0({width:J})}};hx1=class hx1 extends H8{_width;_height;constructor(J,Q){super();this._width=J;this._height=Q}updateDimensions(J,Q){let Z=this._width,X=this._height;if(this._width=J,this._height=Q,Z!==J||X!==Q)this.markNeedsLayout()}getMinIntrinsicWidth(J){if(this._width!==void 0)return this._width===1/0?0:this._width;if(this.children.length>0)return this.children[0].getMinIntrinsicWidth(J);return 0}getMaxIntrinsicWidth(J){if(this._width!==void 0)return this._width===1/0?1/0:this._width;if(this.children.length>0)return this.children[0].getMaxIntrinsicWidth(J);return 0}getMinIntrinsicHeight(J){if(this._height!==void 0)return this._height===1/0?0:this._height;if(this.children.length>0)return this.children[0].getMinIntrinsicHeight(J);return 0}getMaxIntrinsicHeight(J){if(this._height!==void 0)return this._height===1/0?1/0:this._height;if(this.children.length>0)return this.children[0].getMaxIntrinsicHeight(J);return 0}performLayout(){super.performLayout();let J=this._lastConstraints;K8(!!J,"performLayout called without constraints");let Q,Z;if(this._width!==void 0)if(this._width===1/0)Q=J.maxWidth;else Q=this._width;else if(this.children.length>0){let Y=this.children[0];Y.layout(J),Q=Y.size.width}else Q=0;if(this._height!==void 0)if(this._height===1/0)Z=J.maxHeight;else Z=this._height;else if(this.children.length>0){let Y=this.children[0];Y.layout(J),Z=Y.size.height}else Z=0;let X=J.constrain(Q,Z);if(this.setSize(X.width,X.height),this.children.length>0){let Y=this.children[0],K=p6.tight(X.width,X.height);Y.layout(K),Y.setOffset(0,0)}}}});var t5;var Yu=p(()=>{wH();EJ();TU();u7();t5=class t5 extends HQ{flex;width;height;constructor({key:J,flex:Q=1,width:Z,height:X}={}){super(J?{key:J}:{});this.flex=Q,this.width=Z,this.height=X}createElement(){if(this.width!==void 0||this.height!==void 0){let J={child:new s6};if(this.width!==void 0)J.width=this.width;if(this.height!==void 0)J.height=this.height;return new i0(J).createElement()}else return new $2({flex:this.flex,child:i0.shrink()}).createElement()}static horizontal(J){return new t5({width:J})}static vertical(J){return new t5({height:J})}static flexible(J=1){return new t5({flex:J})}}});var gx1,NZ6;var LZ6=p(()=>{I4();a9();a9();Y7();gx1=class gx1 extends h4{constructor(J){super({child:J.child})}createRenderObject(){return new NZ6}updateRenderObject(J){}};NZ6=class NZ6 extends H8{performLayout(){let J=this._lastConstraints;if(K8(!!J,"performLayout called without constraints"),this.children.length===0){this.setSize(0,0),super.performLayout();return}let Q=this.children[0],Z=Math.min(Q.getMaxIntrinsicWidth(J.maxHeight),J.maxWidth),X=Q.getMinIntrinsicHeight(Z),Y=new p6(Math.min(Z,J.minWidth),Math.min(Z,J.maxWidth),Math.min(X,J.maxHeight),Math.max(X,J.minHeight));Q.layout(Y),Q.setOffset(0,0);let q=J.minHeight===J.maxHeight?J.maxHeight:Math.min(X,J.maxHeight);this.setSize(Q.size.width,q),super.performLayout()}getMinIntrinsicHeight(J){if(this.children.length===0)return 0;return this.children[0].getMinIntrinsicHeight(J)}getMaxIntrinsicHeight(J){if(this.children.length===0)return 0;return this.children[0].getMaxIntrinsicHeight(J)}getMinIntrinsicWidth(J){if(this.children.length===0)return 0;return this.children[0].getMinIntrinsicWidth(J)}getMaxIntrinsicWidth(J){if(this.children.length===0)return 0;return this.children[0].getMaxIntrinsicWidth(J)}}});var CU=p(()=>{IA();bx1();GX();EJ();TU();d41();p41();MZ6();FY();Xu();$G();u7();Yu();EA();z9();a9();IA();GX();EJ();TU();FY();$G();u7()});var OZ6=p(()=>{Ex1();rm()});class E6{widget;context;_mounted=!1;get mounted(){return this._mounted}initState(){}didUpdateWidget(J){}dispose(){}setState(J){if(!this._mounted)throw Error("setState() called after dispose()");if(J)J();this._markNeedsBuild()}_mount(J,Q){this.widget=J,this.context=Q,this._mounted=!0,this.initState()}_update(J){let Q=this.widget;this.widget=J,this.didUpdateWidget(Q)}_unmount(){this._mounted=!1,this.dispose()}_markNeedsBuild(){let J=this.context.element;if("markNeedsBuild"in J&&typeof J.markNeedsBuild==="function")J.markNeedsBuild()}}var $6,mx1;var j2=p(()=>{sm();wH();$6=class $6 extends HQ{createElement(){return new mx1(this)}};mx1=class mx1 extends UY{_state;_child;_context;constructor(J){super(J)}get statefulWidget(){return this.widget}get state(){return this._state}get child(){return this._child}mount(){this._context=new IH(this,this.widget),this._state=this.statefulWidget.createState(),this._state._mount(this.statefulWidget,this._context),this.rebuild(),this.markMounted()}unmount(){if(this._child)this._child.unmount(),this.removeChild(this._child),this._child=void 0;if(this._state)this._state._unmount(),this._state=void 0;this._context=void 0,super.unmount()}update(J){if(this.widget===J)return;if(super.update(J),this._state)this._state._update(this.statefulWidget);if(this._context)this._context.widget=J;this.rebuild()}performRebuild(){this.rebuild()}rebuild(){if(!this._context||!this._state)throw Error("Cannot rebuild unmounted element");let J=this._state.build(this._context);if(this._child)if(this._child.widget.canUpdate(J))this._child.update(J);else{let Q=this._child,Z=this.findNearestRenderObjectAncestor();if(Z&&Q.renderObject)Z.dropChild(Q.renderObject);else if(!Z&&Q.renderObject)Q.renderObject.detach();if(this._child.unmount(),this.removeChild(this._child),this._child=J.createElement(),this.addChild(this._child),this._child.mount(),Z&&this._child.renderObject)Z.adoptChild(this._child.renderObject),this._child.renderObject.markNeedsLayout();else if(!Z&&this._child.renderObject)this._child.renderObject.attach(),this._child.renderObject.markNeedsLayout();if(this._child.renderObject)this._child.renderObject.markNeedsLayout()}else this._child=J.createElement(),this.addChild(this._child),this._child.mount()}markNeedsBuild(){this.markNeedsRebuild()}findNearestRenderObjectAncestor(){let J=this.parent;while(J){if(J.renderObject){if(this._child?.renderObject&&J.renderObject===this._child.renderObject){J=J.parent;continue}return J.renderObject}J=J.parent}return}get renderObject(){return this._child?.renderObject}}});var o6,ux1;var m4=p(()=>{sm();wH();o6=class o6 extends HQ{createElement(){return new ux1(this)}};ux1=class ux1 extends UY{_child;_context;constructor(J){super(J)}get statelessWidget(){return this.widget}get child(){return this._child}get renderObject(){return this._child?.renderObject}mount(){this._context=new IH(this,this.widget),this.rebuild(),this.markMounted()}unmount(){if(this._child)this._child.unmount(),this.removeChild(this._child),this._child=void 0;this._context=void 0,super.unmount()}update(J){if(this.widget===J)return;if(super.update(J),this._context)this._context.widget=J;this.rebuild()}performRebuild(){this.rebuild()}rebuild(){if(!this._context)throw Error("Cannot rebuild unmounted element");let J=this.statelessWidget.build(this._context);if(this._child){if(this._child.widget===J)return;if(this._child.widget.canUpdate(J))this._child.update(J);else this._child.unmount(),this.removeChild(this._child),this._child=J.createElement(),this.addChild(this._child),this._child.mount()}else this._child=J.createElement(),this.addChild(this._child),this._child.mount()}}});var PA;var n41=p(()=>{RA();PA=class PA extends jG{controller;constructor({key:J,controller:Q,child:Z}){super({key:J,child:Z});this.controller=Q}static of(J){let Q=J.dependOnInheritedWidgetOfExactType(PA);if(Q)return Q.widget.controller;return null}static require(J){let Q=PA.of(J);if(!Q)throw Error(`InheritedSelectionArea.require() called with a context that does not contain an InheritedSelectionArea.
|
5454
5454
|
No InheritedSelectionArea ancestor could be found starting from the given context. This can happen if the context comes from a widget above the SelectionArea.
|
5455
5455
|
The context used was: `+J.widget.constructor.name);return Q}updateShouldNotify(J){return this.controller!==J.controller}}});function jZ6(J,Q,Z){if(J.selectableId===Q.selectableId)return J.offset-Q.offset;return Z(J.selectableId,Q.selectableId)}var AZ6;var a41=p(()=>{AZ6={left:1,top:1,right:0,bottom:0}});class r41{foreground;mutedForeground;background;primary;secondary;accent;border;success;warning;info;destructive;selection;copyHighlight;tableBorder;constructor({foreground:J,mutedForeground:Q,background:Z,primary:X,secondary:Y,accent:K,border:q,success:G,warning:z,info:U,destructive:F,selection:W,copyHighlight:H,tableBorder:D}){this.foreground=J,this.mutedForeground=Q,this.background=Z,this.primary=X,this.secondary=Y,this.accent=K,this.border=q,this.success=G,this.warning=z,this.info=U,this.destructive=F,this.selection=W,this.copyHighlight=H,this.tableBorder=D}static default(){return new r41({foreground:d1.default(),mutedForeground:d1.index(7),background:d1.default(),primary:d1.blue,secondary:d1.cyan,accent:d1.magenta,border:d1.index(7),success:d1.green,warning:d1.yellow,info:d1.index(12),destructive:d1.red,selection:d1.index(8),copyHighlight:d1.yellow,tableBorder:d1.index(7)})}}class TH{colorScheme;constructor({colorScheme:J}){this.colorScheme=J}static default(){return new TH({colorScheme:r41.default()})}}var j8;var p7=p(()=>{z9();RA();j8=class j8 extends jG{data;constructor({key:J,data:Q,child:Z}){super({key:J,child:Z});this.data=Q}static of(J){let Q=J.dependOnInheritedWidgetOfExactType(j8);if(Q)return Q.widget.data;return TH.default()}static maybeOf(J){let Q=J.dependOnInheritedWidgetOfExactType(j8);if(Q)return Q.widget.data;return null}updateShouldNotify(J){return this.data!==J.data}}});class v1{color;backgroundColor;bold;italic;underline;strikethrough;dim;constructor({color:J,backgroundColor:Q,bold:Z,italic:X,underline:Y,strikethrough:K,dim:q}={}){if(J!==void 0)this.color=J;if(Q!==void 0)this.backgroundColor=Q;if(Z!==void 0)this.bold=Z;if(X!==void 0)this.italic=X;if(Y!==void 0)this.underline=Y;if(K!==void 0)this.strikethrough=K;if(q!==void 0)this.dim=q}copyWith({color:J,backgroundColor:Q,bold:Z,italic:X,underline:Y,strikethrough:K,dim:q}){let G={};if(J!==void 0||this.color!==void 0)G.color=J??this.color;if(Q!==void 0||this.backgroundColor!==void 0)G.backgroundColor=Q??this.backgroundColor;if(Z!==void 0||this.bold!==void 0)G.bold=Z??this.bold;if(X!==void 0||this.italic!==void 0)G.italic=X??this.italic;if(Y!==void 0||this.underline!==void 0)G.underline=Y??this.underline;if(K!==void 0||this.strikethrough!==void 0)G.strikethrough=K??this.strikethrough;if(q!==void 0||this.dim!==void 0)G.dim=q??this.dim;return new v1(G)}merge(J){if(!J)return this;let Q={};if(J.color!==void 0||this.color!==void 0)Q.color=J.color??this.color;if(J.backgroundColor!==void 0||this.backgroundColor!==void 0)Q.backgroundColor=J.backgroundColor??this.backgroundColor;if(J.bold!==void 0||this.bold!==void 0)Q.bold=J.bold??this.bold;if(J.italic!==void 0||this.italic!==void 0)Q.italic=J.italic??this.italic;if(J.underline!==void 0||this.underline!==void 0)Q.underline=J.underline??this.underline;if(J.strikethrough!==void 0||this.strikethrough!==void 0)Q.strikethrough=J.strikethrough??this.strikethrough;if(J.dim!==void 0||this.dim!==void 0)Q.dim=J.dim??this.dim;return new v1(Q)}static normal(J){return J?new v1({color:J}):new v1}static bold(J){return J?new v1({color:J,bold:!0}):new v1({bold:!0})}static italic(J){return J?new v1({color:J,italic:!0}):new v1({italic:!0})}static underline(J){return J?new v1({color:J,underline:!0}):new v1({underline:!0})}static colored(J){return new v1({color:J})}static background(J){return new v1({backgroundColor:J})}}class I1{text;style;children;hyperlink;constructor(J,Q,Z,X){this.text=J;this.style=Q;this.children=Z;this.hyperlink=X}toPlainText(){let J=this.text??"";if(this.children)for(let Q of this.children)J+=Q.toPlainText();return String(J)}equals(J){if(!J)return!1;if(this.text!==J.text)return!1;if(this.hyperlink?.uri!==J.hyperlink?.uri)return!1;if(this.style!==J.style){if(!this.style||!J.style)return!1;if(this.style.color!==J.style.color)return!1;if(this.style.backgroundColor!==J.style.backgroundColor)return!1;if(this.style.bold!==J.style.bold)return!1;if(this.style.italic!==J.style.italic)return!1;if(this.style.underline!==J.style.underline)return!1}if(this.children?.length!==J.children?.length)return!1;if(this.children&&J.children)for(let Q=0;Q<this.children.length;Q++){let Z=this.children[Q],X=J.children[Q];if(!Z||!X||!Z.equals(X))return!1}return!0}visitTextSpan(J){if(!J(this))return;if(this.children)for(let Q of this.children)Q.visitTextSpan(J)}}var q0,RZ6,wZ6;var m9=p(()=>{I4();z9();jH();sm();RG();a9();Y7();n41();a41();p7();q0=class q0 extends wA{text;textAlign;maxLines;overflow;selectable;constructor({key:J,text:Q,textAlign:Z="left",maxLines:X,overflow:Y="clip",selectable:K=!1}){super(J?{key:J}:{});this.text=Q,this.textAlign=Z,this.maxLines=X,this.overflow=Y,this.selectable=K}createElement(){return new RZ6(this)}createRenderObject(){return new wZ6(this.text,this.textAlign,this.maxLines,this.overflow,!1,d1.index(8),d1.yellow,this.selectable)}updateRenderObject(J){}};RZ6=class RZ6 extends bT{constructor(J){super(J)}get richTextWidget(){return this.widget}mount(){super.mount(),this._updateRenderObjectWithMediaQuery()}performRebuild(){super.performRebuild(),setTimeout(()=>this._ensureRenderObjectContext(),0)}_ensureRenderObjectContext(){if(!this.renderObject)return;let J=this.renderObject,Q=new IH(this,this.widget);J.setContext(Q)}update(J){let Q=this.richTextWidget;super.update(J),this._updateRenderObjectWithMediaQuery()}_updateRenderObjectWithMediaQuery(){if(!this.renderObject)return;let J=this.renderObject;try{let Q=new IH(this,this.widget),Z=m8.of(Q),X=j8.maybeOf(Q),Y=X?.colorScheme.selection??d1.index(8),K=X?.colorScheme.copyHighlight??d1.yellow,q=this.renderObject;q.setContext(Q),q.updateText(this.richTextWidget.text,this.richTextWidget.textAlign,this.richTextWidget.maxLines,this.richTextWidget.overflow,Z.supportsEmojiWidth,Y,K,this.richTextWidget.selectable)}catch(Q){let Z=new IH(this,this.widget),X=this.renderObject;X.setContext(Z),X.updateText(this.richTextWidget.text,this.richTextWidget.textAlign,this.richTextWidget.maxLines,this.richTextWidget.overflow,!1,d1.index(8),d1.yellow,this.richTextWidget.selectable)}}};wZ6=class wZ6 extends H8{_text;_textAlign;_maxLines;_overflow;_emojiWidthSupported;_selectable;selectableId=0;_selectionArea;_selectedRanges=[];set selectionArea(J){this._selectionArea=J}get selectionArea(){return this._selectionArea}_cachedStyledCells;_selectionStart=null;_selectionEnd=null;_characterPositions=[];_visualLines=[];_selectionColor=d1.index(8);_copyHighlightColor=d1.yellow;_highlightMode="selection";constructor(J,Q,Z,X="clip",Y=!1,K=d1.index(8),q=d1.yellow,G=!1){super();this._text=J;this._textAlign=Q;this._maxLines=Z;this._overflow=X;this._emojiWidthSupported=Y;this._selectable=G;this._selectionColor=K,this._copyHighlightColor=q}get text(){return this._text}get textAlign(){return this._textAlign}get maxLines(){return this._maxLines}get overflow(){return this._overflow}updateSelection(J,Q,Z="selection"){if(this._selectionStart!==J||this._selectionEnd!==Q||this._highlightMode!==Z)this._selectionStart=J,this._selectionEnd=Q,this._highlightMode=Z,this.markNeedsPaint()}setHighlightMode(J){if(this._highlightMode!==J)this._highlightMode=J,this.markNeedsPaint()}get plainText(){return this._text.toPlainText()}getCharacterRect(J){if(J<0||J>=this._characterPositions.length)return null;let Q=this._characterPositions[J];if(!Q)return null;return{x:Q.x,y:Q.y,width:Q.width,height:1}}getOffsetForPosition(J,Q){if(this._characterPositions.length===0)return null;let Z=Math.round(J),X=Math.floor(Q),Y=1/0,K=1/0,q=-1/0,G=-1/0;for(let F of this._characterPositions)Y=Math.min(Y,F.x),K=Math.min(K,F.y),q=Math.max(q,F.x+F.width),G=Math.max(G,F.y+1);if(Z<Y||Z>=q||X<K||X>=G)return null;for(let F=0;F<this._characterPositions.length;F++){let W=this._characterPositions[F];if(!W)continue;if(Z>=W.x&&Z<W.x+W.width&&X>=W.y&&X<W.y+1)return F}for(let F=0;F<this._characterPositions.length;F++){let W=this._characterPositions[F];if(!W)continue;if(X>=W.y&&X<W.y+1){if(Z<W.x)return F;if(F===this._characterPositions.length-1||this._characterPositions[F+1]&&this._characterPositions[F+1].y>W.y){if(Z>=W.x+W.width)return F+1}}}let z=0,U=1/0;for(let F=0;F<this._characterPositions.length;F++){let W=this._characterPositions[F];if(!W)continue;let H=Math.abs(X-W.y)+Math.abs(Z-W.x);if(H<U)U=H,z=F}return z}getVisualLines(){return this._visualLines}getRenderableCharacterCount(){return this._characterPositions.length}updateText(J,Q,Z,X="clip",Y=!1,K=d1.index(8),q=d1.yellow,G=!1){this._text=J,this._textAlign=Q,this._maxLines=Z,this._overflow=X,this._emojiWidthSupported=Y,this._selectionColor=K,this._copyHighlightColor=q,this._selectable=G,this._cachedStyledCells=void 0,this._characterPositions=[],this._visualLines=[],this._cachedStyledCells=this.getStyledCells(),this.markNeedsLayout(),this.markNeedsPaint()}getStyledCells(){let J=[],Q=this.getStyledSegments(this._text,new v1({color:d1.white}));for(let Z of Q){let X=D2(Z.text);for(let Y of X){let K=f4(Y,this._emojiWidthSupported),q={};if(Z.style.color)q.fg=Z.style.color;if(Z.style.backgroundColor)q.bg=Z.style.backgroundColor;if(Z.style.bold)q.bold=Z.style.bold;if(Z.style.italic)q.italic=Z.style.italic;if(Z.style.underline)q.underline=Z.style.underline;if(Z.style.strikethrough)q.strikethrough=Z.style.strikethrough;if(Z.style.dim)q.dim=Z.style.dim;J.push(g9(Y,q,K,Z.hyperlink))}}return J}getCachedStyledCells(){return this._cachedStyledCells??this.getStyledCells()}getTotalCellsWidth(J){let Q=0;for(let Z of J)Q+=Z.width;return Q}wrapCells(J,Q){if(Q===1/0)return this.handleExplicitLineBreaksInCells(J);let Z=[],X=[],Y=0,K=0;while(K<J.length){let q=J[K];if(!q){K++;continue}if(q.char===`
|
5456
5456
|
`){X.push(q),Z.push(X),X=[],Y=0,K++;continue}if(Y+q.width>Q&&X.length>0){let G=X.length-1;while(G>=0&&!/\s/.test(X[G].char))G--;if(G>=0){let z=X.slice(G+1);X=X.slice(0,G+1),Z.push(X),X=z,Y=0;for(let U of z)Y+=U.width}else Z.push(X),X=[],Y=0}X.push(q),Y+=q.width,K++}if(X.length>0)Z.push(X);return Z.length>0?Z:[[]]}handleExplicitLineBreaksInCells(J){let Q=[],Z=[];for(let X of J)if(X.char===`
|
@@ -5618,7 +5618,7 @@ https://www.jetbrains.com/help/idea/managing-plugins.html#install_plugin_from_di
|
|
5618
5618
|
`),J.stdout.write(`Continue this thread with: amp threads continue ${q}
|
5619
5619
|
`)}}function dX9(J){let Q=0;for(let Y=0;Y<J.length;Y++){let K=J.charCodeAt(Y);Q=(Q<<5)-Q+K,Q=Q&Q}let Z=[9,10,11,12,13,14,15,208,209,210,211,212,213,214,215],X=Math.abs(Q)%Z.length;return d1.index(Z[X])}var eU6,JF6;var ZF6=p(()=>{D0();D4();UC();gw();u4();$N();Q4();I3();X8();n0();iJ6();VQ6();d7();t41();AA();pZ6();om();CU();bx1();EJ();EA();lZ6();a9();e41();j2();GX6();zX();m9();zy1();p7();im();z9();yz6();hz6();DQ();yX6();cz6();lz6();oz6();QU6();gT();ZU6();Cy1();XU6();GU6();bU6();xU6();Cz6();fU6();Mh1();mU6();pU6();w71();xz6();aU6();tU6();eU6=class eU6 extends $6{dependencies;constructor(J){super();this.dependencies=J}createState(){return new JF6}};JF6=class JF6 extends E6{themeColors=null;themeApp=null;selectionListener=null;ideStatus=null;isConfirmingExit=!1;isConfirmingClearInput=!1;copyMessageTimer=null;isShowingHelp=!1;isShowingConsoleOverlay=!1;isShowingConfirmationOverlay=!1;isShowingFileChangesOverlay=!1;confirmationOverlayContent="";exitConfirmTimeout=null;clearInputConfirmTimeout=null;historyIndex=-1;historyDraft=null;bashInvocations=[];dismissedEphemeralErrorKey=null;currentTitle=void 0;currentShellModeStatus=void 0;imageAttachments=[];displayMessage=null;executingCommand=null;isShowingJetBrainsInstaller=!1;isShowingIdePicker=!1;currentProgressBarState="off";progressReportTimer=null;showingSelectionCopiedHint=!1;isShowingThreadPicker=!1;submitDisabledHint=null;submitDisabledHintTimer=null;isShowingTrainingModeDialog=!1;pendingTrainingMode=null;currentAgentMode=void 0;agentModeSubscription=null;updateState=null;updateServiceSubscription=null;isFreeTierEnabled=!1;isProcessing(){let{threadState:J}=this.widget.dependencies;if(!J.mainThread)return!1;return Boolean(J.viewState.state==="active"&&(J.viewState.interactionState==="tool-running"||J.viewState.inferenceState==="running"))}isSummarizing(J){return J.state==="active"&&J.summaryState!=="idle"}parseShellModeInput(J){if(J.startsWith("$$")){let Q=J.slice(2).trim();return Q?{cmd:Q,hidden:!0}:null}if(J.startsWith("$")){let Q=J.slice(1).trim();return Q?{cmd:Q,hidden:!1}:null}return null}isSlashCommand(J){if(!J.startsWith("/"))return!1;if((J.split(" ")[0]?.slice(1)||"").includes("/"))return!1;return!0}showSubmitDisabledHint(J){if(this.submitDisabledHintTimer)clearTimeout(this.submitDisabledHintTimer);this.setState(()=>{this.submitDisabledHint=J}),this.submitDisabledHintTimer=setTimeout(()=>{this.setState(()=>{this.submitDisabledHint=null}),this.submitDisabledHintTimer=null},3000)}getUIHint(){let J=this.themeColors?.colorScheme;if(!J)return null;let Q=this.themeApp;if(!Q)return null;if(this.submitDisabledHint)return new I1(this.submitDisabledHint,new v1({color:J.foreground,dim:!0}));if(this.isConfirmingExit)return new I1("",void 0,[new I1("Ctrl+C",new v1({color:Q.keybind})),new I1(" again to exit",new v1({color:J.foreground,dim:!0}))]);if(this.isConfirmingClearInput)return new I1("",void 0,[new I1("Esc",new v1({color:Q.keybind})),new I1(" again to clear input",new v1({color:J.foreground,dim:!0}))]);if(this.isShowingHelp)return new I1("",void 0,[new I1("Escape",new v1({color:Q.keybind})),new I1(" to close help",new v1({color:J.foreground,dim:!0}))]);if(this.isProcessing()||this.bashInvocations.length>0)return new I1("",void 0,[new I1("Esc",new v1({color:Q.keybind})),new I1(" to cancel",new v1({color:J.foreground,dim:!0}))]);if(this.showingSelectionCopiedHint)return new I1("Selection copied to clipboard",new v1({color:J.foreground,dim:!0}));return null}isTranscriptEmpty(){let{threadState:J}=this.widget.dependencies;return J.items.length===0}textController=new U71;messageScrollControllers=new Map;getMessageScrollController(J){if(!this.messageScrollControllers.has(J))this.messageScrollControllers.set(J,new PV);return this.messageScrollControllers.get(J)}scrollMessageViewToBottom(){let{threadState:J}=this.widget.dependencies,Q=J.mainThread?.id;if(!Q)return;this.getMessageScrollController(Q).scrollToBottom()}findElementByKey(J){return this.searchElementTreeByKey(this.context.element,J)}searchElementTreeByKey(J,Q){if(!J)return null;if(J?.widget?.key?.value===Q)return J;if(J?.child){let X=this.searchElementTreeByKey(J.child,Q);if(X)return X}if(J?.children)for(let X of J.children){let Y=this.searchElementTreeByKey(X,Q);if(Y)return Y}return null}clearActiveSelection(){let J=this.findElementByKey("message-view-selection-area");if(J?.state){let Q=J.state;if(Q?.controller?.hasSelection)return Q.controller.clearSelection(),this.setState(()=>{}),!0}return!1}setupSelectionListener(){let J=this.findElementByKey("message-view-selection-area");if(J?.state){let Q=J.state;if(Q?.controller&&!this.selectionListener)this.selectionListener=()=>{this.setState(()=>{})},Q.controller.addListener(this.selectionListener),Q.controller.onSelectionCopied=()=>{if(this.copyMessageTimer)clearTimeout(this.copyMessageTimer);this.setState(()=>{this.showingSelectionCopiedHint=!0}),this.copyMessageTimer=setTimeout(()=>{this.setState(()=>{this.showingSelectionCopiedHint=!1}),this.copyMessageTimer=null},2000)}}}updateTerminalTitle(){let{threadState:J}=this.widget.dependencies,Q=J.mainThread?.title;if(Q!==this.currentTitle){this.currentTitle=Q;let Z=process.cwd().replace(process.env.HOME||"","~"),X=Q?`amp - ${Q} - ${Z}`:"";process.stdout.write(Hx1(X))}}_handleTextCopy(J){if(J&&J.length>0){if(this.setState(()=>{this.showingSelectionCopiedHint=!0}),this.copyMessageTimer)clearTimeout(this.copyMessageTimer);this.copyMessageTimer=setTimeout(()=>{this.setState(()=>{this.showingSelectionCopiedHint=!1}),this.copyMessageTimer=null},2000)}}textFieldKey=new o5("text-field");ideStatusSubscription=null;ideMessageSubscription=null;ideAppendToPromptSubscription=null;commands=null;completionBuilder=null;textChangeListener=()=>{let J=this.textController.text,Q=J.startsWith("$$")?"hidden":J.startsWith("$")?"normal":void 0;if(Q!==this.currentShellModeStatus)this.currentShellModeStatus=Q,this.setState(()=>{})};getCommands(){if(!this.commands)this.commands=new Xx1(this.widget.dependencies.commandRegistry);return this.commands}getCompletionBuilder(){if(!this.completionBuilder)this.completionBuilder=new Ih1(this.getCommands(),this.widget.dependencies.fuzzyServer,new $51);return this.completionBuilder}navigateHistoryPrevious=()=>{let J=this.widget.dependencies.history.previous();if(J!==null){if(this.historyIndex===-1)this.historyDraft=this.textController.text;this.historyIndex++,this.textController.text=J,this.textController.moveCursorToStart()}};navigateHistoryNext=()=>{let J=this.widget.dependencies.history.next();if(J!==null)this.historyIndex--,this.textController.text=J,this.textController.moveCursorToEnd();else if(this.historyIndex>-1)this.historyIndex=-1,this.textController.text=this.historyDraft||"",this.textController.moveCursorToEnd(),this.historyDraft=null};resetHistory=()=>{this.widget.dependencies.history.reset(),this.historyIndex=-1,this.historyDraft=null};openJetBrainsInstaller=()=>{this.setState(()=>{this.isShowingJetBrainsInstaller=!0})};dismissJetBrainsInstaller=()=>{this.setState(()=>{this.isShowingJetBrainsInstaller=!1})};openIdePicker=()=>{this.setState(()=>{this.isShowingIdePicker=!0})};dismissIdePicker=()=>{this.widget.dependencies.ideClient.sendStatus({enabled:!1}),this.setState(()=>{this.isShowingIdePicker=!1})};handleIdeSelection=async(J)=>{try{await this.connectToSelectedIde(J)}catch(Q){let Z=Q instanceof Error?Q.message:String(Q);this.setState(()=>{this.displayMessage=Error(`Failed to connect to IDE: ${Z}`)})}this.widget.dependencies.lockfileManager.selectConfig(J),this.setState(()=>{this.isShowingIdePicker=!1})};async connectToSelectedIde(J){await this.widget.dependencies.ideClient.start(J)}removeBashInvocation=(J)=>{this.setState(()=>{this.bashInvocations=this.bashInvocations.filter((Q)=>Q.id!==J)})};invokeBashCommand=(J,{hidden:Q})=>{let Z=Date.now(),X=`bash-${Z}-${Math.random().toString(36).substring(7)}`,Y={cmd:J},K=new AbortController;this.widget.dependencies.worker.invokeBashTool(Y,K.signal,Q).subscribe({next:(q)=>{this.setState(()=>{if(this.bashInvocations.find((z)=>z.id===X))this.bashInvocations=this.bashInvocations.map((z)=>z.id===X?{...z,toolRun:q}:z);else{let z={id:X,args:Y,toolRun:q,startTime:Z,abortController:K,hidden:Q};this.bashInvocations=[...this.bashInvocations,z]}})},error:()=>this.removeBashInvocation(X),complete:()=>this.removeBashInvocation(X)})};cancelBashInvocations=()=>{let J=this.bashInvocations.find((Q)=>Q.toolRun.status==="in-progress");if(J)J.abortController.abort()};handleHistoryNavigation=(J)=>{if(J.key==="p"&&J.ctrlKey)return this.navigateHistoryPrevious(),"handled";if(J.key==="n"&&J.ctrlKey)return this.navigateHistoryNext(),"handled";return"ignored"};onTextSubmitted=async(J)=>{let{threadState:Q}=this.widget.dependencies;if(this.isSummarizing(Q.viewState)){this.showSubmitDisabledHint("Unable to submit while compacting.");return}if(!J.trim())return;let Z=this.parseShellModeInput(J);if(Z){if(Z.cmd&&!this.isProcessing())this.invokeBashCommand(Z.cmd,{hidden:Z.hidden}),this.widget.dependencies.history.add(J),this.textController.clear(),this.resetHistory();else this.showSubmitDisabledHint("Unable to use shell mode while agent is active");return}let X=pJ6(J);if(this.isSlashCommand(X)&&Q.mainThread){let Y=X.slice(1).split(" "),K=Y[0],q=Y.slice(1).filter((G)=>G.trim()!=="");if(K){let G=Q.viewState,z=this.getCommands().query(K,Q.mainThread,G).filter((U)=>U.name===K).pop();if(z){if((z.requiresArgs||z.requiresPicker)&&q.length===0){this.textController.clear(),this.textController.insertText(`/${K} `);return}this.textController.clear(),this.resetHistory(),await this.executeCommand(z,q)}return}}this.textController.clear(),this.resetHistory(),await this.sendUserMessage(X)};onOptionSelected=(J)=>{switch(J.type){case"command":{let Q=`/${J.name} `;this.onTextSubmitted(Q);break}case"file":{let Q=this.textController.text,Z=this.textController.cursorPosition,Y=Q.slice(0,Z).lastIndexOf("@");if(Y!==-1){let K=Q.slice(0,Y),q=Q.slice(Z),G=K+`@${J.path} `+q;this.textController.clear(),this.textController.insertText(G),this.textController.cursorPosition=Y+1+J.path.length+1}break}case"thread":{let Z=this.textController.text.split(" ");if(Z.length>=1&&Z[0]==="/continue"){let X=`/continue ${J.threadId} `;this.onTextSubmitted(X)}break}case"argument":{let Z=this.textController.text.split(" ");if(Z.length>=1&&Z[0]?.startsWith("/")){let Y=`${Z[0]} ${J.value} `;this.onTextSubmitted(Y)}break}}};executeCommand=async(J,Q)=>{let{threadState:Z}=this.widget.dependencies;if(!Z.mainThread||!J)return;let X=new AbortController,Y=Date.now(),q={id:`command-${Y}-${Math.random().toString(36).substring(7)}`,name:J.name,startTime:Y,abortController:X};this.setState(()=>{this.executingCommand=q});try{if(J.name==="new"){let z=await this.widget.dependencies.startNewThread();R71(z);return}if(J.launchesWindow)EG.instance.tuiInstance.suspend();let G=await this.getCommands().execute(J.name,{worker:this.widget.dependencies.worker,thread:Z.mainThread,ampURL:this.widget.dependencies.ampURL,threadSyncService:this.widget.dependencies.threadSyncService,takeImageAttachments:()=>{let z=this.imageAttachments;return this.setState(()=>{this.imageAttachments=[]}),z},editorDispatch:(z)=>{if(z.type==="set-input")this.textController.clear(),this.textController.insertText(z.input);else if(z.type==="clear")this.textController.clear()},exitApp:()=>{process.exit(0)},openHelp:()=>{this.setState(()=>{this.isShowingHelp=!0})},showCommandOverlay:(z)=>{this.setState(()=>{this.isShowingConfirmationOverlay=!0,this.confirmationOverlayContent=z})},settingsFilePath:this.widget.dependencies.settingsStorage.getSettingsFilePath(),settingsStorage:this.widget.dependencies.settingsStorage,startNewThread:async()=>{await this.widget.dependencies.startNewThread()},pickAndContinueThread:this.widget.dependencies.pickAndContinueThread,switchToThread:async(z)=>{await this.switchToExistingThread(z)},getGuidanceFiles:async()=>{if(!Z.mainThread)return[];return(await qa({filesystem:this.widget.dependencies.worker.fs.fileSystemReader(),configService:this.widget.dependencies.configService,threadService:this.widget.dependencies.threadService},Z.mainThread,X.signal)).map((U)=>({uri:U.uri,type:U.type}))}},Q,X.signal);if(J.launchesWindow)EG.instance.tuiInstance.resume();if(G)this.setState(()=>{this.displayMessage=G})}catch(G){a.error("Error executing command:",G)}finally{this.setState(()=>{this.executingCommand=null})}};buildOptions=async(J)=>{let Q=this.textController.text,Z=this.textController.cursorPosition,Y=th1().detect(Q,Z);if(Y){let{threadState:K}=this.widget.dependencies;return await this.getCompletionBuilder().buildOptions(Y,K.mainThread,K.viewState)}return[]};initState(){if(PG.getInstance().interceptConsole(),this.widget.dependencies.startWithPicker)this.isShowingThreadPicker=!0;this.checkFreeTierStatus(),R71(this.widget.dependencies.worker),this.ideStatusSubscription=this.widget.dependencies.ideClient.status.subscribe((Q)=>{this.setState(()=>{this.ideStatus=Q})}),this.ideMessageSubscription=this.widget.dependencies.ideClient.messages.subscribe(async(Q)=>{let Z=mT();if(!Z){a.warn("No active thread worker found to handle IDE message");return}await new Promise((X)=>setTimeout(X,50)),await Z.handle({type:"user:message",message:{content:[{type:"text",text:Q}]}}),a.debug("Message sent from IDE to agent",{message:Q.slice(0,100)})}),this.ideAppendToPromptSubscription=this.widget.dependencies.ideClient.appendToPrompt.subscribe((Q)=>{this.textController.insertText(Q),a.debug("Appended text to CLI prompt from IDE",{text:Q.slice(0,100)})}),this.updateServiceSubscription=this.widget.dependencies.updateService.state.subscribe((Q)=>{this.setState(()=>{this.updateState=Q})}),this.agentModeSubscription=Z2.pipe(g0((Q)=>Q.settings["experimental.agentMode"]),d8()).subscribe((Q)=>{this.setState(()=>{this.currentAgentMode=Q})}),this.textController.addListener(this.textChangeListener),this.getCommands(),this.textController.onInsertText=(Q,Z)=>{if(Q.length<=3)return!0;let X=cJ6(Q);if(!X)return!0;if(this.imageAttachments.length>=Ao1)return!1;let Y=lJ6(X);if(Y)return this.setState(()=>{this.imageAttachments=[...this.imageAttachments,Y]}),!1;return!0},this.updateTerminalTitle();let J=this.widget.dependencies.lockfileManager.getSelectedConfig();if(J)this.connectToSelectedIde(J).catch((Q)=>{let Z=Q instanceof Error?Q.message:String(Q);this.setState(()=>{this.displayMessage=Error(`Failed to connect to IDE: ${Z}`)})});else if(this.widget.dependencies.showIdePicker)this.openIdePicker();else if(this.widget.dependencies.showJetBrainsInstaller)this.openJetBrainsInstaller()}didUpdateWidget(J){super.didUpdateWidget(J),this.setupSelectionListener()}dispose(){if(this.ideStatusSubscription)this.ideStatusSubscription.unsubscribe();if(this.ideMessageSubscription)this.ideMessageSubscription.unsubscribe();if(this.ideAppendToPromptSubscription)this.ideAppendToPromptSubscription.unsubscribe();if(this.updateServiceSubscription)this.updateServiceSubscription.unsubscribe();if(this.agentModeSubscription)this.agentModeSubscription.unsubscribe();if(this.exitConfirmTimeout)clearTimeout(this.exitConfirmTimeout),this.exitConfirmTimeout=null;if(this.clearInputConfirmTimeout)clearTimeout(this.clearInputConfirmTimeout),this.clearInputConfirmTimeout=null;if(this.textController.removeListener(this.textChangeListener),this.commands)this.commands.cleanup().catch((J)=>{a.debug("Failed to cleanup commands during disposal",J)});for(let J of this.messageScrollControllers.values())J.dispose();if(this.messageScrollControllers.clear(),process.stdout.write(Hx1("")),this.shouldUseProgressBar())process.stdout.write(Bx1());if(this.progressReportTimer)clearTimeout(this.progressReportTimer),this.progressReportTimer=null}getCurrentConfirmation(){let{threadState:J}=this.widget.dependencies,Z=[...J.activeTools,...J.subagentActiveTools].filter((q)=>q.toolRun.status==="blocked-on-user");if(Z.length===0)return null;let X=Z[0],Y=X.toolRun.status==="blocked-on-user"?X.toolRun.toAllow??[]:[],K=X.toolRun.status==="blocked-on-user"?X.toolRun.reason:void 0;return{type:"tool-use",tools:[{useBlock:X.toolUse,toAllow:Y}],subthreadID:X.subthreadID,reason:K}}shouldUseProgressBar(){return m8.of(this.context).capabilities.xtversion?.toLowerCase().startsWith("ghostty")??!1}updateProgressBar(){if(!this.shouldUseProgressBar())return;let{threadState:J}=this.widget.dependencies,Q=this.getCurrentConfirmation(),Z="off";if(Q)Z="paused";else if(this.isProcessing())Z="indeterminate";if(Z!==this.currentProgressBarState)this.currentProgressBarState=Z,this.sendProgressReport(Z);this.scheduleProgressReportTimer()}sendProgressReport(J){switch(J){case"indeterminate":process.stdout.write(mQ6());break;case"paused":process.stdout.write(uQ6());break;case"off":process.stdout.write(Bx1());break}}scheduleProgressReportTimer(){if(this.progressReportTimer)clearTimeout(this.progressReportTimer),this.progressReportTimer=null;if(this.currentProgressBarState!=="off")this.progressReportTimer=setTimeout(()=>{if(this.currentProgressBarState!=="off")this.sendProgressReport(this.currentProgressBarState),this.scheduleProgressReportTimer()},1e4)}onConfirmationResponse=async(J)=>{let Q=this.getCurrentConfirmation();if(!Q||Q.type!=="tool-use"){a.error("No current tool confirmation found");return}let Z=Q.tools[0]?.useBlock;if(!Z){a.error("No tool use block found in confirmation");return}if(J==="allow-all-session")gU("dangerouslyAllowAll",!0);if(J==="allow-all-persistent")try{await this.widget.dependencies.settingsStorage.set("dangerouslyAllowAll",!0)}catch(Y){if(Y&&Y instanceof Error)this.setState(()=>{this.displayMessage=Y});else a.error("Failed to write dangerouslyAllowAll setting:",Y);return}if(J==="always-guarded"){let Y=Q.tools[0]?.toAllow??[],K=await this.widget.dependencies.settingsStorage.get("guardedFiles.allowlist")||[],q=[...Y,...K];await this.widget.dependencies.settingsStorage.set("guardedFiles.allowlist",q)}let X=J!==null&&["yes","allow-all-session","allow-all-persistent","always-guarded"].includes(J);try{let Y={type:"user:tool-input",toolUse:Z.id,value:{accepted:X}};if(Q.subthreadID)await(await pJ.getOrCreateForThread(this.widget.dependencies.workerDeps,Q.subthreadID)).handle(Y);else await this.widget.dependencies.worker.handle(Y)}catch(Y){a.error("Failed to send tool confirmation:",Y)}};showConfirmationOverlay=(J)=>{this.setState(()=>{this.isShowingConfirmationOverlay=!0,this.confirmationOverlayContent=J})};getErrorKey(J){return`${J.constructor.name}:${J.message}`}getCurrentEphemeralError(){let{threadState:J}=this.widget.dependencies,Q=J.viewState;if(Q.state!=="active"||!Q.ephemeralError)return null;let Z=this.getErrorKey(Q.ephemeralError);if(this.dismissedEphemeralErrorKey===Z)return null;return Q.ephemeralError}handleEphemeralErrorResponse=async(J)=>{let Q=this.getCurrentEphemeralError(),Z=this.widget.dependencies.worker;switch(J){case"retry":this.dismissedEphemeralErrorKey=null,await Z.retry();break;case"compact":this.dismissedEphemeralErrorKey=null,await Z.summarizeThread();break;case"dismiss":if(Q)this.dismissedEphemeralErrorKey=this.getErrorKey(Q);break}this.setState(()=>{})};handleDisplayMessageDismiss=()=>{this.setState(()=>{this.displayMessage=null})};cancelStreamingMessage=async()=>{await pJ.cancel(this.widget.dependencies.threadID)};switchToExistingThread=async(J)=>{try{let Q=await this.widget.dependencies.switchToThread(J);this.widget.dependencies.worker=Q,this.widget.dependencies.threadID=Q.thread.id,R71(Q),j71()?.switchWorker(this.widget.dependencies.worker),this.setState(()=>{})}catch(Q){throw a.error("Failed to switch to thread:",J,Q),Error(`Failed to switch to thread: ${J}`)}};sendUserMessage=async(J)=>{await this.proceedWithUserMessage(J)};proceedWithUserMessage=async(J)=>{this.cancelBashInvocations(),this.widget.dependencies.history.add(J);let Q=mT()||this.widget.dependencies.worker,Z=[{type:"text",text:J}];if(this.imageAttachments.length>0)Z.push(...this.imageAttachments);await Q.handle({type:"user:message",message:{content:Z}}),this.scrollMessageViewToBottom(),this.setState(()=>{this.imageAttachments=[]})};onTrainingModeDialogResponse=async(J)=>{if(this.setState(()=>{this.isShowingTrainingModeDialog=!1}),J&&this.pendingTrainingMode)try{let Q=await this.widget.dependencies.internalAPIClient.updateUserTrainingMode({enabled:!0});if(!Q.ok){let Z=Q.error.message||"Failed to enable training mode";await this.showErrorMessage(Z),this.textController.clear(),this.textController.insertText(this.pendingTrainingMode)}else await this.proceedWithUserMessage(this.pendingTrainingMode)}catch(Q){await this.showErrorMessage(`Failed to enable training mode:
|
5620
5620
|
|
5621
|
-
${Q}`),this.textController.clear(),this.textController.insertText(this.pendingTrainingMode)}else if(!J&&this.pendingTrainingMode)this.textController.clear(),this.textController.insertText(this.pendingTrainingMode);this.setState(()=>{this.pendingTrainingMode=null})};async showErrorMessage(J){this.setState(()=>{this.displayMessage=Error(J)})}async checkFreeTierStatus(){try{let J=await this.widget.dependencies.internalAPIClient.getUserFreeTierStatus({});if(J.ok)this.setState(()=>{this.isFreeTierEnabled=J.result.enabled})}catch(J){a.debug("Failed to check free tier status:",J)}}onExitPressed=()=>{if(this.isConfirmingExit){if(this.exitConfirmTimeout)clearTimeout(this.exitConfirmTimeout),this.exitConfirmTimeout=null;EG.instance.stop()}else{if(this.setState(()=>{this.isConfirmingExit=!0}),this.exitConfirmTimeout)clearTimeout(this.exitConfirmTimeout);this.exitConfirmTimeout=setTimeout(()=>{this.setState(()=>{this.isConfirmingExit=!1}),this.exitConfirmTimeout=null},1000)}};toHomeRelative(J){let Q=uX9();if(J===Q)return"~";if(J.startsWith(Q+bu.sep))return"~"+J.slice(Q.length);return J}shorten(J){let Q=J.split(bu.sep).filter(Boolean);if(Q.length<=5)return J;return[Q.slice(0,2).join(bu.sep),"…",Q.slice(-2).join(bu.sep)].join(bu.sep)}build(J){let Q=m8.of(J),Z=I8.of(J),X=Z.base;this.themeColors=X;let{colors:Y,app:K}=Z;this.themeApp=K;let{threadState:q}=this.widget.dependencies;if(this.isShowingThreadPicker)return new kH({child:new ah1({onSelect:async(b)=>{if(b)this.isShowingThreadPicker=!1,this.setState(),await this.switchToExistingThread(b);else process.exit(0)},pageSize:50,threadFetcher:new $51})});this.updateTerminalTitle(),this.updateProgressBar();let G=this.getCurrentConfirmation(),z=q.todosList,U=q.mainThread?.id,W=this.isTranscriptEmpty()?new U51({useGpt5:this.widget.dependencies.useGpt5,updateState:this.updateState??void 0}):new Ah1({key:U?new o5(`message-view-${U}`):void 0,items:q.items,activeTools:q.activeTools,controller:U?this.getMessageScrollController(U):new PV,autofocus:!1,onCopy:this._handleTextCopy.bind(this)}),H=Math.max(Math.floor(Q.size.height*0.4),10),D=this.getCurrentEphemeralError(),M=this.buildBottomWidget(D,G,Y,Z,q,z,H),V=Q.size.width<40,N=q.mainThread?Wc1(q.mainThread):void 0,L=new I71({threadViewState:q.viewState,threadTokenUsage:N,threadID:U??null,onFileChangesClick:()=>{this.setState(()=>{this.isShowingFileChangesOverlay=!this.isShowingFileChangesOverlay})},ideStatus:this.ideStatus,isNarrow:V,uiHint:this.getUIHint()??void 0,waitingForConfirmation:!!G,showingEphemeralError:Boolean(q.viewState.state==="active"&&q.viewState.ephemeralError),runningBashInvocations:this.bashInvocations.length>0,executingCommand:this.executingCommand?.name??null}),O=new Rh1({activeTools:[...q.activeTools,...q.subagentActiveTools],subagents:q.subagents}),A=new A71({bashInvocations:this.bashInvocations}),j=[];if(this.isFreeTierEnabled)j.push(new s6({decoration:new h2(Y.secondary),child:new S8({padding:B6.horizontal(1),child:new q0({text:new I1("Thank you for trying the ad-supported Amp Free experiment — AD",new v1({color:d1.black})),textAlign:"center"})})}));j.push(new $2({child:W}),O,A,new s6({constraints:new p6(0,Q.size.width,0,H),child:M}),new i0({height:1,child:new S8({padding:B6.horizontal(1),child:L})}));let R=new O6({crossAxisAlignment:"stretch",mainAxisSize:"max",children:j}),I=new E5(()=>{if(this.getCurrentEphemeralError())return this.handleEphemeralErrorResponse("dismiss"),"handled";if(this.displayMessage)return this.handleDisplayMessageDismiss(),"handled";if(this.isShowingHelp)return this.setState(()=>{this.isShowingHelp=!1}),"handled";if(this.isShowingFileChangesOverlay)return this.setState(()=>{this.isShowingFileChangesOverlay=!1}),"handled";if(this.isShowingIdePicker)return this.dismissIdePicker(),"handled";if(this.isShowingJetBrainsInstaller)return this.dismissJetBrainsInstaller(),"handled";if(this.isShowingConfirmationOverlay)return this.setState(()=>{this.isShowingConfirmationOverlay=!1,this.confirmationOverlayContent=""}),"handled";if(this.isShowingConsoleOverlay)return this.setState(()=>{this.isShowingConsoleOverlay=!1}),"handled";if(this.clearActiveSelection())return"handled";if(this.isConfirmingClearInput){if(this.textController.clear(),this.setState(()=>{this.isConfirmingClearInput=!1,this.imageAttachments=[]}),this.clearInputConfirmTimeout)clearTimeout(this.clearInputConfirmTimeout),this.clearInputConfirmTimeout=null;return"handled"}if(this.bashInvocations.length>0)return this.cancelBashInvocations(),"handled";if(this.executingCommand)return a.info("Canceling executing command:",this.executingCommand.name),this.executingCommand.abortController.abort(),"handled";if(this.isProcessing())return this.cancelStreamingMessage().catch((m)=>{a.error("Failed to cancel streaming message:",m)}),"handled";if(this.textController.text.trim()!==""||this.imageAttachments.length>0){if(this.setState(()=>{this.isConfirmingClearInput=!0}),this.clearInputConfirmTimeout)clearTimeout(this.clearInputConfirmTimeout);return this.clearInputConfirmTimeout=setTimeout(()=>{this.setState(()=>{this.isConfirmingClearInput=!1}),this.clearInputConfirmTimeout=null},1000),"handled"}return"ignored"}),w=new E5(()=>{return this.onExitPressed(),"handled"}),E=new E5(()=>{return this.setState(()=>{this.isShowingConsoleOverlay=!this.isShowingConsoleOverlay}),"handled"}),$=new E5(()=>{return bV.instance.toggleAll(),"handled"}),P=new E5(()=>{return EG.instance.toggleFrameStatsOverlay(),"handled"}),C=new E5(()=>{return EG.instance.tuiInstance.getScreen().markForRefresh(),XZ.instance.requestFrame(),"handled"}),k=new E5(()=>{let b=this.findElementByKey("message-view-selection-area");if(b?.state){let m=b.state,n=m.controller?.copySelection();if(n&&n.length>0)return this.setState(()=>{this.showingSelectionCopiedHint=!0}),setTimeout(()=>{this.setState(()=>{this.showingSelectionCopiedHint=!1})},2000),setTimeout(()=>{m.controller.endCopyHighlight(),m.controller.clear()},350),"handled"}return this.onExitPressed(),"handled"}),g=new E5(()=>{let{threadState:b}=this.widget.dependencies,m=b.mainThread?.id;if(m){let n=this.getMessageScrollController(m),u=Math.max(Math.floor(Q.size.height*0.4),10),Q1=Q.size.height-u;n.animatePageUp(Q1,100)}return"handled"}),T=new E5(()=>{let{threadState:b}=this.widget.dependencies,m=b.mainThread?.id;if(m){let n=this.getMessageScrollController(m),u=Math.max(Math.floor(Q.size.height*0.4),10),Q1=Q.size.height-u;n.animatePageDown(Q1,100)}return"handled"}),v=new E5(()=>{let{threadState:b}=this.widget.dependencies,m=b.mainThread?.id;if(m)this.getMessageScrollController(m).animateTo(0,100);return"handled"}),f=new E5(()=>{let{threadState:b}=this.widget.dependencies,m=b.mainThread?.id;if(m)this.getMessageScrollController(m).animateTo(Number.MAX_SAFE_INTEGER,100);return"handled"}),h=new Map([[g2.key("Escape"),new Ku],[g2.ctrl("c"),new yT],[g2.ctrl("l"),new Uu],[g2.alt("c"),new qu],[g2.alt("p"),new zu],[g2.ctrl("r"),new Gu],[g2.key("PageUp"),new Q71],[g2.key("PageDown"),new Z71],[g2.key("Home"),new X71],[g2.key("End"),new Y71]]);if(process.platform==="darwin")h.set(g2.meta("c"),new yT);let S=new Map([[Ku,I],[s41,w],[Uu,C],[qu,E],[Gu,$],[zu,P],[yT,k],[Q71,g],[Z71,T],[X71,v],[Y71,f]]),x=R;if(this.isShowingConsoleOverlay)x=new _K({children:[x,new Th1]});if(this.isShowingHelp)x=new _K({children:[x,new Sh1]});if(this.isShowingFileChangesOverlay)x=new _K({children:[x,new Ty1]});if(this.isShowingConfirmationOverlay)x=new _K({children:[x,new Eh1({details:this.confirmationOverlayContent})]});if(this.isShowingIdePicker)return new kH({child:new bK({actions:S,child:new $V({shortcuts:h,debugLabel:"ide-picker-shortcuts",child:new kh1({lockfileManager:this.widget.dependencies.lockfileManager,onCancel:this.dismissIdePicker,onSelect:this.handleIdeSelection})})})});if(this.isShowingJetBrainsInstaller)return new kH({child:new bK({actions:S,child:new $V({shortcuts:h,debugLabel:"jetbrains-installer-shortcuts",child:new lh1({configService:this.widget.dependencies.configService,ideClient:this.widget.dependencies.ideClient,onExit:()=>process.exit(0),onContinue:this.dismissJetBrainsInstaller})})})});return new kH({child:new bK({actions:S,child:new $V({shortcuts:h,debugLabel:"main-app-shortcuts",child:x})})})}buildBottomWidget(J,Q,Z,X,Y,K,q){if(J)return new Ch1({error:J,ampURL:this.widget.dependencies.ampURL,onResponse:this.handleEphemeralErrorResponse});if(this.isShowingTrainingModeDialog)return new rh1({onResponse:this.onTrainingModeDialogResponse});if(Q){if(this.displayMessage)this.handleDisplayMessageDismiss();return new Ph1({confirmationRequest:Q,onResponse:this.onConfirmationResponse,onShowOverlay:this.showConfirmationOverlay})}if(this.displayMessage)return new ih1({message:this.displayMessage,onDismiss:this.handleDisplayMessageDismiss});let G=X.app,z=pX9(X),U=new W71({key:this.textFieldKey,controller:this.textController,triggers:[th1()],optionsBuilder:this.buildOptions,onSelected:this.onOptionSelected,displayStringForOption:(P)=>wh1(P),overlayBorderColor:Z.border,textFieldProps:{placeholder:"Type your message... (use / for commands, @ for files)",wrap:!0,minLines:3,maxLines:null,expands:!0,autofocus:!0,onSubmitted:this.onTextSubmitted,submitKey:{character:"Enter"},prompts:z,style:{border:null},clipboard:EG.instance.tuiInstance.clipboard},optionViewBuilder:(P,C,k)=>{let g=k?Z.selection:void 0,T=C.type==="command"?Z.warning:Z.secondary,v=Z.foreground,f=Z.foreground,h,S;switch(C.type){case"command":h="/",S=C.name;break;case"file":h="@",S=C.path;break;case"thread":h="",S=C.title;break;default:h="",S=wh1(C);break}let x=dz6(C),b=new I1(h,new v1({color:T})),m=new I1(S,new v1({color:v})),n=[b,m];if(x){let u=new I1(" - ",new v1({color:f,dim:!0})),Q1=new I1(x,new v1({color:f,dim:!0}));n.push(u,Q1)}return new s6({decoration:new h2(g),child:new q0({text:new I1("",void 0,n),maxLines:1,overflow:"ellipsis"})})}}),F=Y.mainThread?.queuedMessages??[],W=new Q2({onKey:this.handleHistoryNavigation,child:U}),H=this.currentShellModeStatus,D=this.imageAttachments.length>0?new s6({padding:B6.only({bottom:1,left:1}),child:new q0({text:new I1("",void 0,[new I1("Images: ",new v1({color:Z.foreground,dim:!0})),...this.imageAttachments.flatMap((P,C)=>[new I1(`[image ${C+1}]`,new v1({color:Z.success})),...C<this.imageAttachments.length-1?[new I1(" ")]:[]])])})}):null,M=Array.isArray(K)&&K.length>0,V=Array.isArray(F)&&F.length>0,N=D?new O6({crossAxisAlignment:"start",children:[D,W]}):W,L=V?new nh1({queuedMessages:F}):void 0,O=M?new _x1(new jh1({todos:K}),{clipBehavior:"antiAlias"}):void 0,A=[],j=Y.viewState;if(!this.isSummarizing(j))A.push({text:new I1("",void 0,[new I1("Enter",new v1({color:G.keybind})),new I1(" to send",new v1({color:Z.foreground,dim:!0}))]),position:"bottom-left"});if(H)A.push({text:new I1(H==="hidden"?"shell mode (incognito)":"shell mode",new v1({color:H==="hidden"?X.app.shellModeHidden:X.app.shellMode})),position:"top-left",offsetY:D?1:0});let R=this.currentAgentMode;if(R&&!["default",aU[0]].includes(R)&&!H){let P=dX9(R);A.push({text:new I1("",void 0,[new I1("agent-mode: ",new v1({color:Z.foreground,dim:!0})),new I1(R,new v1({color:P}))]),position:"top-left",offsetY:0})}let I=Y.mainThread?.metadata?.treeInfo?.uri,w;if(I)w=S0.isUri(I)?I.fsPath:I;else w=process.cwd();let E=this.toHomeRelative(w),$=this.shorten(E);return A.push({text:new I1($,new v1({color:Z.foreground,dim:!0})),position:"bottom-right"}),new Ay1({leftChild:N,rightChild1:L,rightChild2:O,maxHeight:q,overlayTexts:A,borderColor:Z.border})}}});import{randomBytes as cX9}from"node:crypto";import{mkdir as lX9,readFile as qF6,writeFile as iX9}from"node:fs/promises";import nX9 from"node:os";import eh1 from"node:path";import{stderr as s2,stdout as m2}from"node:process";function aX9(J){process.emitWarning=function(Q,Z,X,Y){let K=typeof Q==="string"?Q:Q.message||String(Q),q=Z||"Warning",G=!1;J.warn(K,{name:q,code:X})}}function pA(J,Q){if(J.getOptionValueSourceWithGlobals("dangerouslyAllowAll")==="cli")gU("dangerouslyAllowAll",Q.dangerouslyAllowAll);if(J.getOptionValueSourceWithGlobals("tryGpt5")==="cli")gU("gpt5",Q.tryGpt5);if(J.getOptionValueSourceWithGlobals("agentMode")==="cli")gU("experimental.agentMode",Q.agentMode)}async function Zg1(J){try{await lX9(eh1.dirname(Jg1),{recursive:!0}),await iX9(Jg1,J,"utf-8")}catch(Q){a.debug("Failed to save last thread ID",Q)}}async function oX9(){try{return(await qF6(Jg1,"utf-8")).trim()}catch(J){return null}}async function tX9(J){let Q;try{Q=JSON.parse(J)}catch(Z){throw Error(`Failed to parse --mcp-config as JSON: ${Z instanceof Error?Z.message:String(Z)}`)}try{return sX9.parse(Q)}catch(Z){if(Z instanceof T0.ZodError){let X=Z.issues.map((Y)=>`${Y.path.join(".")}: ${Y.message}`).join(", ");throw Error(`Invalid MCP server configuration: ${X}`)}throw Error(`Failed to validate MCP server configuration: ${String(Z)}`)}}function eX9(J,Q){return{...J,async get(Z){if(Z==="mcpServers"){let X=await J.get(Z)||{},Y={};if(typeof X==="object")for(let[K,q]of Object.entries(X))Y[K]={...q,_target:"global"};for(let[K,q]of Object.entries(Q))Y[K]={...q,_target:"workspace"};return Y}return J.get(Z)},async keys(){let Z=await J.keys();if(!Z.includes("mcpServers"))Z.push("mcpServers");return Z},[Symbol.dispose](){J[Symbol.dispose]()}}}function XY9(J,Q){let Z=Q.args[0],X=Q.commands.map((K)=>K.name());if(Z&&!Z.includes(" ")&&Z.length<30&&!/[./\\]/.test(Z)){let K=X.filter((G)=>Z.includes(G)||G.includes(Z)),q="Run amp --help for a list of available commands.";if(K.length>0)q=`Did you mean: ${K.join(", ")}? Or run amp --help for all commands.`;throw new E2(SK.unknownCommand(Z),1,q)}}function Ay2(){return GF6}function T51(J){return{...J,getThreadEnvironment:Q41,vfs:q10({os:J.fileSystem}),fileChangeTrackerStorage:new lv(J.fileSystem),generateThreadTitle:Ua,deleteThread:(Q)=>J.threadHistoryService.delete(Q)}}async function dA(J,Q){wc1("0.0.1759204900-gfe19a6");let Z=SQ1({storage:J.settings,secretStorage:J.secrets,workspaceRoots:K0.of([S0.file(process.cwd())]),defaultAmpURL:J.ampURL,defaultCacheDirectory:Qb1,homeDir:Xg1,userConfigDir:zF6}),X=await A9();a.debug("Global configuration initialized",{hasCacheDirectory:!!X.settings.cacheDirectory,settingsKeys:Object.keys(X.settings)});let Y=hl(Ep()),K=ge1({configService:Z,toolService:Y}),q=mL0(Y,R8,Wt).catch((L)=>{a.warn("Toolbox registration failed, continuing anyway:",L)}),G=K.initialized.catch((L)=>{a.warn("MCP service initialization failed, continuing anyway:",L)});if(J.executeMode)await Promise.all([G,q]);if(Q.jetbrains)Ic1(!0);if(Q.ide&&kb1())Ec1(!0);if(t06(Y,X.settings),Q.jetbrains)Y.registerTool(ba);else if(Q.ide)Y.registerTool(kK0);let z;if(!J.executeMode)z=new W41(process.cwd(),{},!0);else z=new class extends W41{async start(){}async query(){return[]}getStats(){return{state:"unstarted",stats:[]}}dispose(){}};if(!await J.secrets.get("apiKey",J.ampURL)){if(m2.write(`No API key found. Starting login flow...
|
5621
|
+
${Q}`),this.textController.clear(),this.textController.insertText(this.pendingTrainingMode)}else if(!J&&this.pendingTrainingMode)this.textController.clear(),this.textController.insertText(this.pendingTrainingMode);this.setState(()=>{this.pendingTrainingMode=null})};async showErrorMessage(J){this.setState(()=>{this.displayMessage=Error(J)})}async checkFreeTierStatus(){try{let J=await this.widget.dependencies.internalAPIClient.getUserFreeTierStatus({});if(J.ok)this.setState(()=>{this.isFreeTierEnabled=J.result.enabled})}catch(J){a.debug("Failed to check free tier status:",J)}}onExitPressed=()=>{if(this.isConfirmingExit){if(this.exitConfirmTimeout)clearTimeout(this.exitConfirmTimeout),this.exitConfirmTimeout=null;EG.instance.stop()}else{if(this.setState(()=>{this.isConfirmingExit=!0}),this.exitConfirmTimeout)clearTimeout(this.exitConfirmTimeout);this.exitConfirmTimeout=setTimeout(()=>{this.setState(()=>{this.isConfirmingExit=!1}),this.exitConfirmTimeout=null},1000)}};toHomeRelative(J){let Q=uX9();if(J===Q)return"~";if(J.startsWith(Q+bu.sep))return"~"+J.slice(Q.length);return J}shorten(J){let Q=J.split(bu.sep).filter(Boolean);if(Q.length<=5)return J;return[Q.slice(0,2).join(bu.sep),"…",Q.slice(-2).join(bu.sep)].join(bu.sep)}build(J){let Q=m8.of(J),Z=I8.of(J),X=Z.base;this.themeColors=X;let{colors:Y,app:K}=Z;this.themeApp=K;let{threadState:q}=this.widget.dependencies;if(this.isShowingThreadPicker)return new kH({child:new ah1({onSelect:async(b)=>{if(b)this.isShowingThreadPicker=!1,this.setState(),await this.switchToExistingThread(b);else process.exit(0)},pageSize:50,threadFetcher:new $51})});this.updateTerminalTitle(),this.updateProgressBar();let G=this.getCurrentConfirmation(),z=q.todosList,U=q.mainThread?.id,W=this.isTranscriptEmpty()?new U51({useGpt5:this.widget.dependencies.useGpt5,updateState:this.updateState??void 0}):new Ah1({key:U?new o5(`message-view-${U}`):void 0,items:q.items,activeTools:q.activeTools,controller:U?this.getMessageScrollController(U):new PV,autofocus:!1,onCopy:this._handleTextCopy.bind(this)}),H=Math.max(Math.floor(Q.size.height*0.4),10),D=this.getCurrentEphemeralError(),M=this.buildBottomWidget(D,G,Y,Z,q,z,H),V=Q.size.width<40,N=q.mainThread?Wc1(q.mainThread):void 0,L=new I71({threadViewState:q.viewState,threadTokenUsage:N,threadID:U??null,onFileChangesClick:()=>{this.setState(()=>{this.isShowingFileChangesOverlay=!this.isShowingFileChangesOverlay})},ideStatus:this.ideStatus,isNarrow:V,uiHint:this.getUIHint()??void 0,waitingForConfirmation:!!G,showingEphemeralError:Boolean(q.viewState.state==="active"&&q.viewState.ephemeralError),runningBashInvocations:this.bashInvocations.length>0,executingCommand:this.executingCommand?.name??null}),O=new Rh1({activeTools:[...q.activeTools,...q.subagentActiveTools],subagents:q.subagents}),A=new A71({bashInvocations:this.bashInvocations}),j=[];if(this.isFreeTierEnabled)j.push(new s6({decoration:new h2(Y.secondary),child:new S8({padding:B6.horizontal(1),child:new q0({text:new I1("Thank you for trying the ad-supported Amp Free experiment — AD",new v1({color:d1.black})),textAlign:"center"})})}));j.push(new $2({child:W}),O,A,new s6({constraints:new p6(0,Q.size.width,0,H),child:M}),new i0({height:1,child:new S8({padding:B6.horizontal(1),child:L})}));let R=new O6({crossAxisAlignment:"stretch",mainAxisSize:"max",children:j}),I=new E5(()=>{if(this.getCurrentEphemeralError())return this.handleEphemeralErrorResponse("dismiss"),"handled";if(this.displayMessage)return this.handleDisplayMessageDismiss(),"handled";if(this.isShowingHelp)return this.setState(()=>{this.isShowingHelp=!1}),"handled";if(this.isShowingFileChangesOverlay)return this.setState(()=>{this.isShowingFileChangesOverlay=!1}),"handled";if(this.isShowingIdePicker)return this.dismissIdePicker(),"handled";if(this.isShowingJetBrainsInstaller)return this.dismissJetBrainsInstaller(),"handled";if(this.isShowingConfirmationOverlay)return this.setState(()=>{this.isShowingConfirmationOverlay=!1,this.confirmationOverlayContent=""}),"handled";if(this.isShowingConsoleOverlay)return this.setState(()=>{this.isShowingConsoleOverlay=!1}),"handled";if(this.clearActiveSelection())return"handled";if(this.isConfirmingClearInput){if(this.textController.clear(),this.setState(()=>{this.isConfirmingClearInput=!1,this.imageAttachments=[]}),this.clearInputConfirmTimeout)clearTimeout(this.clearInputConfirmTimeout),this.clearInputConfirmTimeout=null;return"handled"}if(this.bashInvocations.length>0)return this.cancelBashInvocations(),"handled";if(this.executingCommand)return a.info("Canceling executing command:",this.executingCommand.name),this.executingCommand.abortController.abort(),"handled";if(this.isProcessing())return this.cancelStreamingMessage().catch((m)=>{a.error("Failed to cancel streaming message:",m)}),"handled";if(this.textController.text.trim()!==""||this.imageAttachments.length>0){if(this.setState(()=>{this.isConfirmingClearInput=!0}),this.clearInputConfirmTimeout)clearTimeout(this.clearInputConfirmTimeout);return this.clearInputConfirmTimeout=setTimeout(()=>{this.setState(()=>{this.isConfirmingClearInput=!1}),this.clearInputConfirmTimeout=null},1000),"handled"}return"ignored"}),w=new E5(()=>{return this.onExitPressed(),"handled"}),E=new E5(()=>{return this.setState(()=>{this.isShowingConsoleOverlay=!this.isShowingConsoleOverlay}),"handled"}),$=new E5(()=>{return bV.instance.toggleAll(),"handled"}),P=new E5(()=>{return EG.instance.toggleFrameStatsOverlay(),"handled"}),C=new E5(()=>{return EG.instance.tuiInstance.getScreen().markForRefresh(),XZ.instance.requestFrame(),"handled"}),k=new E5(()=>{let b=this.findElementByKey("message-view-selection-area");if(b?.state){let m=b.state,n=m.controller?.copySelection();if(n&&n.length>0)return this.setState(()=>{this.showingSelectionCopiedHint=!0}),setTimeout(()=>{this.setState(()=>{this.showingSelectionCopiedHint=!1})},2000),setTimeout(()=>{m.controller.endCopyHighlight(),m.controller.clear()},350),"handled"}return this.onExitPressed(),"handled"}),g=new E5(()=>{let{threadState:b}=this.widget.dependencies,m=b.mainThread?.id;if(m){let n=this.getMessageScrollController(m),u=Math.max(Math.floor(Q.size.height*0.4),10),Q1=Q.size.height-u;n.animatePageUp(Q1,100)}return"handled"}),T=new E5(()=>{let{threadState:b}=this.widget.dependencies,m=b.mainThread?.id;if(m){let n=this.getMessageScrollController(m),u=Math.max(Math.floor(Q.size.height*0.4),10),Q1=Q.size.height-u;n.animatePageDown(Q1,100)}return"handled"}),v=new E5(()=>{let{threadState:b}=this.widget.dependencies,m=b.mainThread?.id;if(m)this.getMessageScrollController(m).animateTo(0,100);return"handled"}),f=new E5(()=>{let{threadState:b}=this.widget.dependencies,m=b.mainThread?.id;if(m)this.getMessageScrollController(m).animateTo(Number.MAX_SAFE_INTEGER,100);return"handled"}),h=new Map([[g2.key("Escape"),new Ku],[g2.ctrl("c"),new yT],[g2.ctrl("l"),new Uu],[g2.alt("c"),new qu],[g2.alt("p"),new zu],[g2.ctrl("r"),new Gu],[g2.key("PageUp"),new Q71],[g2.key("PageDown"),new Z71],[g2.key("Home"),new X71],[g2.key("End"),new Y71]]);if(process.platform==="darwin")h.set(g2.meta("c"),new yT);let S=new Map([[Ku,I],[s41,w],[Uu,C],[qu,E],[Gu,$],[zu,P],[yT,k],[Q71,g],[Z71,T],[X71,v],[Y71,f]]),x=R;if(this.isShowingConsoleOverlay)x=new _K({children:[x,new Th1]});if(this.isShowingHelp)x=new _K({children:[x,new Sh1]});if(this.isShowingFileChangesOverlay)x=new _K({children:[x,new Ty1]});if(this.isShowingConfirmationOverlay)x=new _K({children:[x,new Eh1({details:this.confirmationOverlayContent})]});if(this.isShowingIdePicker)return new kH({child:new bK({actions:S,child:new $V({shortcuts:h,debugLabel:"ide-picker-shortcuts",child:new kh1({lockfileManager:this.widget.dependencies.lockfileManager,onCancel:this.dismissIdePicker,onSelect:this.handleIdeSelection})})})});if(this.isShowingJetBrainsInstaller)return new kH({child:new bK({actions:S,child:new $V({shortcuts:h,debugLabel:"jetbrains-installer-shortcuts",child:new lh1({configService:this.widget.dependencies.configService,ideClient:this.widget.dependencies.ideClient,onExit:()=>process.exit(0),onContinue:this.dismissJetBrainsInstaller})})})});return new kH({child:new bK({actions:S,child:new $V({shortcuts:h,debugLabel:"main-app-shortcuts",child:x})})})}buildBottomWidget(J,Q,Z,X,Y,K,q){if(J)return new Ch1({error:J,ampURL:this.widget.dependencies.ampURL,onResponse:this.handleEphemeralErrorResponse});if(this.isShowingTrainingModeDialog)return new rh1({onResponse:this.onTrainingModeDialogResponse});if(Q){if(this.displayMessage)this.handleDisplayMessageDismiss();return new Ph1({confirmationRequest:Q,onResponse:this.onConfirmationResponse,onShowOverlay:this.showConfirmationOverlay})}if(this.displayMessage)return new ih1({message:this.displayMessage,onDismiss:this.handleDisplayMessageDismiss});let G=X.app,z=pX9(X),U=new W71({key:this.textFieldKey,controller:this.textController,triggers:[th1()],optionsBuilder:this.buildOptions,onSelected:this.onOptionSelected,displayStringForOption:(P)=>wh1(P),overlayBorderColor:Z.border,textFieldProps:{placeholder:"Type your message... (use / for commands, @ for files)",wrap:!0,minLines:3,maxLines:null,expands:!0,autofocus:!0,onSubmitted:this.onTextSubmitted,submitKey:{character:"Enter"},prompts:z,style:{border:null},clipboard:EG.instance.tuiInstance.clipboard},optionViewBuilder:(P,C,k)=>{let g=k?Z.selection:void 0,T=C.type==="command"?Z.warning:Z.secondary,v=Z.foreground,f=Z.foreground,h,S;switch(C.type){case"command":h="/",S=C.name;break;case"file":h="@",S=C.path;break;case"thread":h="",S=C.title;break;default:h="",S=wh1(C);break}let x=dz6(C),b=new I1(h,new v1({color:T})),m=new I1(S,new v1({color:v})),n=[b,m];if(x){let u=new I1(" - ",new v1({color:f,dim:!0})),Q1=new I1(x,new v1({color:f,dim:!0}));n.push(u,Q1)}return new s6({decoration:new h2(g),child:new q0({text:new I1("",void 0,n),maxLines:1,overflow:"ellipsis"})})}}),F=Y.mainThread?.queuedMessages??[],W=new Q2({onKey:this.handleHistoryNavigation,child:U}),H=this.currentShellModeStatus,D=this.imageAttachments.length>0?new s6({padding:B6.only({bottom:1,left:1}),child:new q0({text:new I1("",void 0,[new I1("Images: ",new v1({color:Z.foreground,dim:!0})),...this.imageAttachments.flatMap((P,C)=>[new I1(`[image ${C+1}]`,new v1({color:Z.success})),...C<this.imageAttachments.length-1?[new I1(" ")]:[]])])})}):null,M=Array.isArray(K)&&K.length>0,V=Array.isArray(F)&&F.length>0,N=D?new O6({crossAxisAlignment:"start",children:[D,W]}):W,L=V?new nh1({queuedMessages:F}):void 0,O=M?new _x1(new jh1({todos:K}),{clipBehavior:"antiAlias"}):void 0,A=[],j=Y.viewState;if(!this.isSummarizing(j))A.push({text:new I1("",void 0,[new I1("Enter",new v1({color:G.keybind})),new I1(" to send",new v1({color:Z.foreground,dim:!0}))]),position:"bottom-left"});if(H)A.push({text:new I1(H==="hidden"?"shell mode (incognito)":"shell mode",new v1({color:H==="hidden"?X.app.shellModeHidden:X.app.shellMode})),position:"top-left",offsetY:D?1:0});let R=this.currentAgentMode;if(R&&!["default",aU[0]].includes(R)&&!H){let P=dX9(R);A.push({text:new I1("",void 0,[new I1("agent-mode: ",new v1({color:Z.foreground,dim:!0})),new I1(R,new v1({color:P}))]),position:"top-left",offsetY:0})}let I=Y.mainThread?.metadata?.treeInfo?.uri,w;if(I)w=S0.isUri(I)?I.fsPath:I;else w=process.cwd();let E=this.toHomeRelative(w),$=this.shorten(E);return A.push({text:new I1($,new v1({color:Z.foreground,dim:!0})),position:"bottom-right"}),new Ay1({leftChild:N,rightChild1:L,rightChild2:O,maxHeight:q,overlayTexts:A,borderColor:Z.border})}}});import{randomBytes as cX9}from"node:crypto";import{mkdir as lX9,readFile as qF6,writeFile as iX9}from"node:fs/promises";import nX9 from"node:os";import eh1 from"node:path";import{stderr as s2,stdout as m2}from"node:process";function aX9(J){process.emitWarning=function(Q,Z,X,Y){let K=typeof Q==="string"?Q:Q.message||String(Q),q=Z||"Warning",G=!1;J.warn(K,{name:q,code:X})}}function pA(J,Q){if(J.getOptionValueSourceWithGlobals("dangerouslyAllowAll")==="cli")gU("dangerouslyAllowAll",Q.dangerouslyAllowAll);if(J.getOptionValueSourceWithGlobals("tryGpt5")==="cli")gU("gpt5",Q.tryGpt5);if(J.getOptionValueSourceWithGlobals("agentMode")==="cli")gU("experimental.agentMode",Q.agentMode)}async function Zg1(J){try{await lX9(eh1.dirname(Jg1),{recursive:!0}),await iX9(Jg1,J,"utf-8")}catch(Q){a.debug("Failed to save last thread ID",Q)}}async function oX9(){try{return(await qF6(Jg1,"utf-8")).trim()}catch(J){return null}}async function tX9(J){let Q;try{Q=JSON.parse(J)}catch(Z){throw Error(`Failed to parse --mcp-config as JSON: ${Z instanceof Error?Z.message:String(Z)}`)}try{return sX9.parse(Q)}catch(Z){if(Z instanceof T0.ZodError){let X=Z.issues.map((Y)=>`${Y.path.join(".")}: ${Y.message}`).join(", ");throw Error(`Invalid MCP server configuration: ${X}`)}throw Error(`Failed to validate MCP server configuration: ${String(Z)}`)}}function eX9(J,Q){return{...J,async get(Z){if(Z==="mcpServers"){let X=await J.get(Z)||{},Y={};if(typeof X==="object")for(let[K,q]of Object.entries(X))Y[K]={...q,_target:"global"};for(let[K,q]of Object.entries(Q))Y[K]={...q,_target:"workspace"};return Y}return J.get(Z)},async keys(){let Z=await J.keys();if(!Z.includes("mcpServers"))Z.push("mcpServers");return Z},[Symbol.dispose](){J[Symbol.dispose]()}}}function XY9(J,Q){let Z=Q.args[0],X=Q.commands.map((K)=>K.name());if(Z&&!Z.includes(" ")&&Z.length<30&&!/[./\\]/.test(Z)){let K=X.filter((G)=>Z.includes(G)||G.includes(Z)),q="Run amp --help for a list of available commands.";if(K.length>0)q=`Did you mean: ${K.join(", ")}? Or run amp --help for all commands.`;throw new E2(SK.unknownCommand(Z),1,q)}}function Ay2(){return GF6}function T51(J){return{...J,getThreadEnvironment:Q41,vfs:q10({os:J.fileSystem}),fileChangeTrackerStorage:new lv(J.fileSystem),generateThreadTitle:Ua,deleteThread:(Q)=>J.threadHistoryService.delete(Q)}}async function dA(J,Q){wc1("0.0.1759219286-g0d79d3");let Z=SQ1({storage:J.settings,secretStorage:J.secrets,workspaceRoots:K0.of([S0.file(process.cwd())]),defaultAmpURL:J.ampURL,defaultCacheDirectory:Qb1,homeDir:Xg1,userConfigDir:zF6}),X=await A9();a.debug("Global configuration initialized",{hasCacheDirectory:!!X.settings.cacheDirectory,settingsKeys:Object.keys(X.settings)});let Y=hl(Ep()),K=ge1({configService:Z,toolService:Y}),q=mL0(Y,R8,Wt).catch((L)=>{a.warn("Toolbox registration failed, continuing anyway:",L)}),G=K.initialized.catch((L)=>{a.warn("MCP service initialization failed, continuing anyway:",L)});if(J.executeMode)await Promise.all([G,q]);if(Q.jetbrains)Ic1(!0);if(Q.ide&&kb1())Ec1(!0);if(t06(Y,X.settings),Q.jetbrains)Y.registerTool(ba);else if(Q.ide)Y.registerTool(kK0);let z;if(!J.executeMode)z=new W41(process.cwd(),{},!0);else z=new class extends W41{async start(){}async query(){return[]}getStats(){return{state:"unstarted",stats:[]}}dispose(){}};if(!await J.secrets.get("apiKey",J.ampURL)){if(m2.write(`No API key found. Starting login flow...
|
5622
5622
|
`),!await YY9(J))await BA(),process.exit(1)}let U=await A10({isDevelopment:!1}),F=new yU1(U),W=new bU1(U,{lazy:!0}),H=new ED1(F),D=Q.notifications!==void 0?Q.notifications:!J.executeMode,M=Z66({playNotificationSound:async(L)=>{if(D){J66(L);let O=Tx1(),A=Cx1();if((!O||A)&&X.settings["notifications.system.enabled"]!==!1){if(L==="idle")process.stdout.write("\x1B]777;notify;Amp;Agent is ready\x1B\\");else if(L==="requires-user-input")process.stdout.write("\x1B]777;notify;Amp;Waiting for approval\x1B\\")}}},windowFocused:()=>Promise.resolve(!1),threadService:F});a.info("Starting Amp background services");let V=fY0({threadService:F,threadHistoryService:W,isExtensionDevelopment:!1}),N={configService:Z,toolService:Y,mcpService:K,threadService:F,threadHistoryService:W,threadSummaryService:H,threadSyncService:V,threadStorage:U,secretStorage:J.secrets,settingsStorage:J.settings,fuzzyServer:z,notificationService:M,fileSystem:Q.jetbrains||Q.ide?Z10:R8};return{...N,async asyncDispose(){await N.mcpService.dispose(),await N.threadService.asyncDispose(),N.configService.unsubscribe(),N.toolService.dispose(),N.fuzzyServer.dispose(),N.threadSyncService.dispose(),N.settingsStorage[Symbol.dispose]()}}}async function YY9(J){if(!J.executeMode){if(!await ub1("Would you like to log in to Amp? [(y)es, (n)o]: "))return m2.write(`Login cancelled. Run the command again to retry.
|
5623
5623
|
`),!1}return await UF6(J)}async function UF6(J){let Q=cX9(32).toString("hex"),Z=await mb1(J.ampURL,Q);try{await wT(Z)}catch(Y){a.error("Failed to open browser",{error:Y})}let X=await mb1(J.ampURL,Q,!1);m2.write(`If your browser did not open automatically, visit:
|
5624
5624
|
|
@@ -5628,12 +5628,12 @@ ${J8.blue.bold(X)}
|
|
5628
5628
|
Login successful! You can now use the Amp CLI.
|
5629
5629
|
`),!0}catch(Y){return a.error("Login failed",{error:Y}),s2.write(`
|
5630
5630
|
Login failed: ${Y instanceof Error?Y.message:String(Y)}
|
5631
|
-
`),!1}}function KY9(){let J=new ng().name("amp").description("AI-powered coding assistant").option("--visibility <visibility>","Set thread visibility (private, public, workspace, group)").configureOutput({writeErr:()=>{}});J.exitOverride((W)=>{if(W.code==="commander.help"||W.code==="commander.version"||W.exitCode===0)zT(),process.exit(0);let H=W.originalError??W;J76(H)}),J.option("-V, --version","output the version number",()=>{m2.write(`0.0.
|
5632
|
-
`),process.exit(0)}),J.addHelpText("after",w56()),J.configureHelp({formatHelp:I56}),J.command("logout").description("Log out by removing stored API key").action(async(W,H)=>{let D=H.optsWithGlobals(),M=await yK(D);await UY9(M)}),J.command("login").description("Log in to Amp").addHelpText("after","If AMP_URL is set during login, it will be persisted to global settings for future CLI invocations, though AMP_URL will continue to take precedence.").action(async(W,H)=>{let D=H.optsWithGlobals(),M=await yK(D);await zY9(M,await $b1(D,M.settings))});let Q=async(W,H,D)=>{SQ1({storage:H.settings,secretStorage:H.secrets,workspaceRoots:K0.of([S0.file(process.cwd())]),defaultAmpURL:H.ampURL,homeDir:Xg1,userConfigDir:zF6});let M={...H,executeMode:!1};await Qg1(M,{...W,startWithPicker:!0},D)},Z=J.command("threads").alias("t").alias("thread").summary("Manage threads").description("Thread management commands. When no subcommand is provided, defaults to listing threads.").action(async(W,H)=>{let D=H.optsWithGlobals(),M=await yK(D);await KF6(D,M,H)});Z.command("new").alias("n").summary("Create a new thread").description("Create a new thread and print its ID. The thread will be empty. You can set the visibility using the --visibility option.").option("--visibility <visibility>","Set thread visibility (private, public, workspace, group)").action(async(W,H)=>{let D=H.optsWithGlobals(),M=await yK(D);await VY9(D,M,H)}),Z.command("continue [threadId]").alias("c").summary("Continue an existing thread").description("Continue an existing thread by resuming the conversation. If no thread ID is provided, the most recently used thread will be continued.").option("--pick","Pick a thread interactively from a list").action(async(W,H,D)=>{let M=D.optsWithGlobals(),V=await yK(M);if(H.pick)await Q(M,V,D);else await MY9(M,V,W,D)}),Z.command("fork [threadId]").alias("f").summary("Fork an existing thread").description("Create a new thread by forking an existing one. This copies the conversation history up to the current point and creates a new thread where you can explore different directions. If no thread ID is provided, the most recently used thread will be forked.").action(async(W,H,D)=>{let M=D.optsWithGlobals(),V=await yK(M);await DY9(M,V,W,D)}),Z.command("list").alias("l").alias("ls").summary("List all threads").description("List all your threads with their IDs, names, and last modified times.").action(async(W,H)=>{let D=H.optsWithGlobals(),M=await yK(D);await KF6(D,M,H)}),Z.command("share <threadId>").summary("Share a thread").description("Change thread visibility (private, public, workspace, group) or share with Amp support for debugging. Use --visibility to change who can access the thread, or --support to share with the Amp team for troubleshooting.").alias("s").option("--visibility <visibility>","Set thread visibility (private, public, workspace, group)").option("--support","Share thread with Amp support for debugging").action(async(W,H,D)=>{let M=D.optsWithGlobals(),V=await yK(M);await BY9(M,V,W,D,H.support)}),Z.command("compact <threadId>").alias("co").summary("Compact a thread").description("Compact a thread by creating a summary of the conversation history. This reduces the thread size while preserving the key information and context, making it more token efficient for future use.").action(async(W,H,D)=>{let M=D.optsWithGlobals(),V=await yK(M);await HY9(M,V,W,D)}),mJ6(J,async(W,H)=>{let D=await yK(H);pA(W,H);let M=await dA(D,H);return{context:D,mcpService:M.mcpService,toolService:M.toolService,cleanupTerminal:zT,asyncDispose:M.asyncDispose.bind(M)}}),KJ6(J),n56(J,async(W)=>{return(await yK(W)).settings});let X=new ng().name("install").description("Install required tools like ripgrep to $AMP_HOME/bin").option("--force","Force reinstallation even if already installed").option("--verbose","Show installation progress and results").action(async(W)=>{await bb1(W.force||!1,W.verbose||!1,"0.0.
|
5631
|
+
`),!1}}function KY9(){let J=new ng().name("amp").description("AI-powered coding assistant").option("--visibility <visibility>","Set thread visibility (private, public, workspace, group)").configureOutput({writeErr:()=>{}});J.exitOverride((W)=>{if(W.code==="commander.help"||W.code==="commander.version"||W.exitCode===0)zT(),process.exit(0);let H=W.originalError??W;J76(H)}),J.option("-V, --version","output the version number",()=>{m2.write(`0.0.1759219286-g0d79d3 (released 2025-09-30T08:07:13.743Z)
|
5632
|
+
`),process.exit(0)}),J.addHelpText("after",w56()),J.configureHelp({formatHelp:I56}),J.command("logout").description("Log out by removing stored API key").action(async(W,H)=>{let D=H.optsWithGlobals(),M=await yK(D);await UY9(M)}),J.command("login").description("Log in to Amp").addHelpText("after","If AMP_URL is set during login, it will be persisted to global settings for future CLI invocations, though AMP_URL will continue to take precedence.").action(async(W,H)=>{let D=H.optsWithGlobals(),M=await yK(D);await zY9(M,await $b1(D,M.settings))});let Q=async(W,H,D)=>{SQ1({storage:H.settings,secretStorage:H.secrets,workspaceRoots:K0.of([S0.file(process.cwd())]),defaultAmpURL:H.ampURL,homeDir:Xg1,userConfigDir:zF6});let M={...H,executeMode:!1};await Qg1(M,{...W,startWithPicker:!0},D)},Z=J.command("threads").alias("t").alias("thread").summary("Manage threads").description("Thread management commands. When no subcommand is provided, defaults to listing threads.").action(async(W,H)=>{let D=H.optsWithGlobals(),M=await yK(D);await KF6(D,M,H)});Z.command("new").alias("n").summary("Create a new thread").description("Create a new thread and print its ID. The thread will be empty. You can set the visibility using the --visibility option.").option("--visibility <visibility>","Set thread visibility (private, public, workspace, group)").action(async(W,H)=>{let D=H.optsWithGlobals(),M=await yK(D);await VY9(D,M,H)}),Z.command("continue [threadId]").alias("c").summary("Continue an existing thread").description("Continue an existing thread by resuming the conversation. If no thread ID is provided, the most recently used thread will be continued.").option("--pick","Pick a thread interactively from a list").action(async(W,H,D)=>{let M=D.optsWithGlobals(),V=await yK(M);if(H.pick)await Q(M,V,D);else await MY9(M,V,W,D)}),Z.command("fork [threadId]").alias("f").summary("Fork an existing thread").description("Create a new thread by forking an existing one. This copies the conversation history up to the current point and creates a new thread where you can explore different directions. If no thread ID is provided, the most recently used thread will be forked.").action(async(W,H,D)=>{let M=D.optsWithGlobals(),V=await yK(M);await DY9(M,V,W,D)}),Z.command("list").alias("l").alias("ls").summary("List all threads").description("List all your threads with their IDs, names, and last modified times.").action(async(W,H)=>{let D=H.optsWithGlobals(),M=await yK(D);await KF6(D,M,H)}),Z.command("share <threadId>").summary("Share a thread").description("Change thread visibility (private, public, workspace, group) or share with Amp support for debugging. Use --visibility to change who can access the thread, or --support to share with the Amp team for troubleshooting.").alias("s").option("--visibility <visibility>","Set thread visibility (private, public, workspace, group)").option("--support","Share thread with Amp support for debugging").action(async(W,H,D)=>{let M=D.optsWithGlobals(),V=await yK(M);await BY9(M,V,W,D,H.support)}),Z.command("compact <threadId>").alias("co").summary("Compact a thread").description("Compact a thread by creating a summary of the conversation history. This reduces the thread size while preserving the key information and context, making it more token efficient for future use.").action(async(W,H,D)=>{let M=D.optsWithGlobals(),V=await yK(M);await HY9(M,V,W,D)}),mJ6(J,async(W,H)=>{let D=await yK(H);pA(W,H);let M=await dA(D,H);return{context:D,mcpService:M.mcpService,toolService:M.toolService,cleanupTerminal:zT,asyncDispose:M.asyncDispose.bind(M)}}),KJ6(J),n56(J,async(W)=>{return(await yK(W)).settings});let X=new ng().name("install").description("Install required tools like ripgrep to $AMP_HOME/bin").option("--force","Force reinstallation even if already installed").option("--verbose","Show installation progress and results").action(async(W)=>{await bb1(W.force||!1,W.verbose||!1,"0.0.1759219286-g0d79d3"),process.exit()});J.addCommand(X,{hidden:!0});function Y(W,H,D){let V=typeof W.description==="string"?W.description:D===void 0?W.description(!0):W.description(D),N=new ZA(H,V),L=ZY9(W);if(L)N.default(L);if(N.hidden=JY9(W)||YF6(W),"choices"in W)N.choices([...W.choices]);return N}for(let W of XF6)switch(W.type){case"flag":{J.addOption(Y(W,`--${W.long}`)),J.addOption(Y(W,`--no-${W.long}`,!1));break}case"switch":{J.addOption(Y(W,`--${W.long}`,!0));break}default:{J.addOption(Y(W,`--${W.long} <value>`));break}}let K=new ZA("-x, --execute [message]","Use execute mode, optionally with user message. In execute mode, agent will execute provided prompt (either as argument, or via stdin). Only last assistant message is printed. Enabled automatically when redirecting stdout.").default(!1);if(J.addOption(K),process.env.AMP_CLI_REMOTE){let W=new ZA("-r, --remote","When used with -x/--execute, execute in an async agent on the Amp server.").default(!1);J.addOption(W)}let q=new ZA("--stream-json","When used with --execute, output in Claude Code compatible stream JSON format instead of plain text.").default(!1).hideHelp(!0);J.addOption(q);let G=new ZA("--stream-json-input","Read JSON Lines user messages from stdin. Requires both --execute and --stream-json.").default(!1).hideHelp(!0);J.addOption(G);let z=new ZA("--stats","When used with --execute, output JSON with both result and token usage data (for /evals).").default(!1).hideHelp(!0);J.addOption(z),J.action(async(W,H)=>{let D=W,M=await yK(D);if(Object.keys(D).forEach((V)=>{let N=XF6.find((L)=>L.name===V);if(N&&YF6(N)&&!QY9(N))s2.write(J8.yellow(`Warning: '--${V}' flag is deprecated
|
5633
5633
|
`))}),H.args.length>0)XY9(M,H);await Qg1(M,D,H)});let U=new ng("doctor").summary("Generate support bundle").description("Generate a support bundle for troubleshooting issues. This collects logs, configuration, and system information into a file that can be shared with Amp support for debugging.").option("--output-dir <path>","Directory to save the support bundle",process.cwd()).option("--include-full-logs","Include full log history",!1).allowUnknownOption(!1).action(async(W)=>{await WY9(W.outputDir,W.includeFullLogs)});J.addCommand(U);let F=new ng("update").summary("Update Amp CLI").description("Update Amp CLI to the latest version. You can specify a particular version to install, or leave blank to get the latest stable release.").option("--version <version>","Update to a specific version").allowUnknownOption(!1).action(async(W)=>{await FY9(W.version)});return J.addCommand(F),J}async function P51(J,Q){let{thread:Z,visibility:X}=Q,Y=Z?.id??aK(),K=T51(J);if(Z)await J.threadStorage.set(Y,Z);let q=await pJ.getOrCreateForThread(K,Y);if(X)await J.threadSyncService.updateThreadMeta(Y,E41(X));let G=J.threadService.observe(Y).subscribe(async(z)=>{if(q7(z,"assistant"))await Zg1(Y),G.unsubscribe()});return await q.resume(),q}async function Qg1(J,Q,Z){let X=process.stdin,Y=I41(Q);if(Y instanceof Error)UX(Y.message);let K,q=null;if(Q.streamJsonInput)K="";else if(typeof Q.execute==="string"){K=Q.execute;let R=(await cb1()).trimEnd();if(R)q=R}else K=(await cb1()).trimEnd();if(Q.remote&&!J.executeMode)throw new E2("The -r/--remote flag currently only works with --execute mode",1,'Use: amp --remote --execute "your message"');if(Q.streamJson&&!J.executeMode)throw new E2("The --stream-json flag requires --execute mode",1,'Use: amp --execute "your message" --stream-json');if(Q.streamJsonInput&&!J.executeMode)throw new E2("The --stream-json-input flag requires --execute mode",1,"Use: amp --execute --stream-json --stream-json-input");if(Q.streamJsonInput&&!Q.streamJson)throw new E2("The --stream-json-input flag requires --stream-json",1,"Use: amp --execute --stream-json --stream-json-input");if(Q.stats&&!J.executeMode)throw new E2("The --stats flag requires --execute mode",1,'Use: amp --execute "your message" --stats');if(Q.streamJsonInput&&typeof Q.execute==="string"&&Q.execute.trim()!=="")throw new E2("Do not provide a message argument when using --stream-json-input",1,`Supply messages via stdin JSONL instead: echo '{"type":"user","message":{"role":"user","content":[{"type":"text","text":"your message"}]}}' | amp --execute --stream-json --stream-json-input`);if(J.executeMode&&K===""&&!Q.streamJsonInput)throw new E2("User message must be provided through stdin or as argument when using execute mode",1,`Either pass a message as an argument: amp --execute "your message"
|
5634
5634
|
Or pipe via stdin: echo "your message" | amp --execute`);if(K!==""&&!J.executeMode&&!J.streamJsonMode&&typeof Q.execute!=="string")X=await MJ6();pA(Z,Q);let G=await dA(J,Q);GF6=G;let z=T51(G),U=async(R)=>{let I=await qF6(R,"utf-8"),w=JSON.parse(I);if(!iU(w.id))throw new E2(SK.invalidThreadId);return P51(G,{visibility:Y,thread:w})},F=async(R)=>{if(!iU(R))throw new E2(SK.invalidThreadId);let I=await G.threadService.get(R)??void 0;return P51(G,{visibility:Y,thread:I})},W=async()=>{try{if(Q.threadId)return F(Q.threadId);else return P51(G,{visibility:Y})}catch(R){if(R instanceof E2)throw R;throw await Z41(R,Q.threadId),Error("handleError should have called process.exit()")}},H=async()=>{return P51(G,{visibility:Y})};if(Q.format==="jsonl")s2.write(`jsonl format is deprecated. Version "0.0.1752148945-gd8844f" or earlier is required to use jsonl format.
|
5635
|
-
`),await BA(),process.exit(1);if(J.executeMode&&Q.remote)await GJ6(K,q),await G.asyncDispose(),process.exit(0);let D=await W();if(J.executeMode)await B76(D,D.threadID,K,q,G,!!Q.streamJson,!!Q.streamJsonInput,!!Q.stats,J.ampURL),await G.asyncDispose(),process.exit(0);let M=!1,V=!1,N=new dq1;if(Q.jetbrains||Q.ide){await N.cleanUpLockfiles();let R=await N.getConfigs();if(R.length===0){if(Q.jetbrains)V=!await G.configService.get("jetbrains.skipInstall")}else if(R.length===1){let I=R[0];if(I)N.selectConfig(I)}else M=!0}let L=hb1("0.0.
|
5636
|
-
`);let Q=!!J.execute||!process.stdout.isTTY&&!J.streamJson,Z=!1,X=process.stdout.isTTY&&process.stderr.isTTY,Y=EU({...J,getHook:process.env.AMP_URL?(q,G)=>{if(q==="url")return Promise.resolve(process.env.AMP_URL);return G()}:void 0});if(await WJ6(Y),await HJ6(Y),J.mcpConfig){let q=await tX9(J.mcpConfig);Y=eX9(Y,q)}let K=await Y.get("url","global");if(!K)K=qZ;if(!iH(K))a.info("Targeting custom Amp server",{ampURL:K});return Y=cp1(Y),{executeMode:Q,streamJsonMode:Z,isTTY:X,ampURL:K,settings:Y,secrets:UJ6(await $b1(J,Y))}}function qY9(J){let Q={};for(let Z=0;Z<J.length;Z++){let X=J[Z];if(X?.startsWith("--")){let K=X.slice(2).replace(/-([a-z])/g,(G,z)=>z.toUpperCase()),q=J[Z+1];if(q&&!q.startsWith("--"))Q[K]=q,Z++}}return Q}async function GY9(){let J=qY9(process.argv);if(d46({logLevel:J.logLevel||process.env.AMP_LOG_LEVEL,logFile:J.logFile||process.env.AMP_LOG_FILE}),aX9(a),a.info("Starting Amp CLI.",{version:"0.0.
|
5635
|
+
`),await BA(),process.exit(1);if(J.executeMode&&Q.remote)await GJ6(K,q),await G.asyncDispose(),process.exit(0);let D=await W();if(J.executeMode)await B76(D,D.threadID,K,q,G,!!Q.streamJson,!!Q.streamJsonInput,!!Q.stats,J.ampURL),await G.asyncDispose(),process.exit(0);let M=!1,V=!1,N=new dq1;if(Q.jetbrains||Q.ide){await N.cleanUpLockfiles();let R=await N.getConfigs();if(R.length===0){if(Q.jetbrains)V=!await G.configService.get("jetbrains.skipInstall")}else if(R.length===1){let I=R[0];if(I)N.selectConfig(I)}else M=!0}let L=hb1("0.0.1759219286-g0d79d3",G.settingsStorage),O=K0.of([S0.file(process.cwd())]),A=zC(void 0,O);if(K)D.handle({type:"user:message",message:{content:[{type:"text",text:K}]}});let j=await A9();await QF6({stdin:X,stdout:process.stdout,history:new zb1,fuzzyServer:G.fuzzyServer,settingsStorage:G.settingsStorage,threadService:G.threadService,threadSyncService:G.threadSyncService,threadID:D.threadID,worker:D,workerDeps:z,configService:G.configService,internalAPIClient:VZ,ampURL:J.ampURL,useGpt5:j.settings.gpt5??!1,startNewThread:H,pickAndContinueThread:async()=>{a.info("Thread picker requested - not yet implemented in TUI")},switchToThread:F,ideClient:jQ,commandRegistry:A,showJetBrainsInstaller:V,showIdePicker:M,lockfileManager:N,startWithPicker:Q.startWithPicker,updateService:L}),await G.asyncDispose(),process.exit(0)}async function yK(J){if(J.interactive)s2.write(`Warning: --interactive flag is deprecated. Interactive mode is now the default unless --execute is used or output is redirected.
|
5636
|
+
`);let Q=!!J.execute||!process.stdout.isTTY&&!J.streamJson,Z=!1,X=process.stdout.isTTY&&process.stderr.isTTY,Y=EU({...J,getHook:process.env.AMP_URL?(q,G)=>{if(q==="url")return Promise.resolve(process.env.AMP_URL);return G()}:void 0});if(await WJ6(Y),await HJ6(Y),J.mcpConfig){let q=await tX9(J.mcpConfig);Y=eX9(Y,q)}let K=await Y.get("url","global");if(!K)K=qZ;if(!iH(K))a.info("Targeting custom Amp server",{ampURL:K});return Y=cp1(Y),{executeMode:Q,streamJsonMode:Z,isTTY:X,ampURL:K,settings:Y,secrets:UJ6(await $b1(J,Y))}}function qY9(J){let Q={};for(let Z=0;Z<J.length;Z++){let X=J[Z];if(X?.startsWith("--")){let K=X.slice(2).replace(/-([a-z])/g,(G,z)=>z.toUpperCase()),q=J[Z+1];if(q&&!q.startsWith("--"))Q[K]=q,Z++}}return Q}async function GY9(){let J=qY9(process.argv);if(d46({logLevel:J.logLevel||process.env.AMP_LOG_LEVEL,logFile:J.logFile||process.env.AMP_LOG_FILE}),aX9(a),a.info("Starting Amp CLI.",{version:"0.0.1759219286-g0d79d3",buildTimestamp:"2025-09-30T08:07:13.743Z",buildType:"'release'"}),parseInt(process.version.slice(1).split(".")[0]??"")<20)throw new E2(SK.nodeVersion(process.version),1,"Please upgrade your Node.js installation from https://nodejs.org");await KY9().parseAsync(process.argv)}async function zY9(J,Q){if(process.env.AMP_URL)await J.settings.set("url",process.env.AMP_URL,"global"),m2.write(`Saving custom server URL to settings: ${process.env.AMP_URL}
|
5637
5637
|
`);else if(!iH(J.ampURL))m2.write(`Logging in to ${new URL(J.ampURL).hostname}
|
5638
5638
|
`);let Z=process.env.AMP_API_KEY;if(Z)m2.write(`API key found in environment variable, storing...
|
5639
5639
|
`),await Q.set("apiKey",Z,J.ampURL),m2.write(`API key successfully stored.
|
@@ -5649,7 +5649,7 @@ Or pipe via stdin: echo "your message" | amp --execute`);if(K!==""&&!J.executeMo
|
|
5649
5649
|
`));try{let Q;if(J)Q=J,s2.write(J8.blue(`Updating to version ${J}...
|
5650
5650
|
`)),await jT(J),s2.write(J8.green(`✓ Successfully updated to version ${J}
|
5651
5651
|
`));else{s2.write(J8.blue(`Checking for updates...
|
5652
|
-
`));let{hasUpdate:X,latestVersion:Y}=await bR("0.0.
|
5652
|
+
`));let{hasUpdate:X,latestVersion:Y}=await bR("0.0.1759219286-g0d79d3");if(!X)s2.write(J8.green(`✓ Amp CLI is already up to date.
|
5653
5653
|
`)),process.exit(0);if(!Y)s2.write(J8.yellow("[WARN] could not find latest version")),process.exit(0);Q=Y,s2.write(J8.blue(`Updating to version ${Y}...
|
5654
5654
|
`)),await jT(Y),s2.write(J8.green(`✓ Successfully updated to version ${Y}
|
5655
5655
|
`))}let Z=await OA(Q);if(Z.warning)s2.write(`
|
package/package.json
CHANGED