@github/copilot 0.0.351-14 → 0.0.351-16

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/index.js CHANGED
@@ -1673,6 +1673,7 @@ You *must* avoid doing any of these things you cannot or must not do, and also *
1673
1673
  * Clean up temporary files at end of task
1674
1674
  * Use view/edit for existing files (not create - avoid data loss)
1675
1675
  * Ask for guidance if uncertain
1676
+ * Do not create markdown files for planning, notes, or tracking\u2014work in memory instead. Only create a markdown file when the user explicitly asks for that specific file by name or path.
1676
1677
  </tips_and_tricks>
1677
1678
 
1678
1679
  ${Mon(n,r,a,I,d,s,c)}
@@ -2067,7 +2068,9 @@ You can restore your previous key bindings from ${I}`:"";return{state:"failed",m
2067
2068
  Path: ${a}${o}
2068
2069
  Error: ${s}`}}}var W4n=N4n(Z4n),V7e={vscode:{appName:"Code",terminalName:"VS Code"},"vscode-insiders":{appName:"Code - Insiders",terminalName:"VS Code (Insiders)"},cursor:{appName:"Cursor",terminalName:"Cursor"},windsurf:{appName:"Windsurf",terminalName:"Windsurf"}};async function Hjt(t){if(Y7e.platform()==="linux"&&process.env.WSL_DISTRO_NAME)return"wsl";let e=(process.env.VSCODE_GIT_ASKPASS_MAIN||"").toLowerCase();if(process.env.CURSOR_TRACE_ID||e.includes("cursor"))return"cursor";if(e.includes("windsurf"))return"windsurf";if(e.includes("code"))return e.includes("insiders")?"vscode-insiders":"vscode";if(process.env.TERM_PROGRAM==="vscode"||process.env.VSCODE_GIT_IPC_HANDLE)return"vscode";try{let n=Y7e.platform()==="win32"?'(Get-Process -Id (Get-CimInstance Win32_Process -Filter "ProcessId=$PID").ParentProcessId).Path':"ps -o comm= -p $PPID",{stdout:r}=await W4n(n),a=r.trim().toLowerCase();if(a.includes("windsurf"))return"windsurf";if(a.includes("cursor"))return"cursor";if(a.includes("code"))return a.includes("insiders")?"vscode-insiders":"vscode"}catch(n){t.debug(`Failed to detect parent process: ${n}`)}return null}async function Xjt(t){if(aQe())return{state:"not-needed",message:"Your terminal already has multiline support with Shift+Enter and Ctrl+Enter."};let e=await Hjt(t);if(!e)return{state:"failed",message:"No supported terminal detected. `/terminal-setup` is supported only in VS Code, Cursor and Windsurf."};switch(e){case"vscode":case"vscode-insiders":case"cursor":case"windsurf":{let l=V7e[e];return vjt(t,l.terminalName,l.appName)}case"wsl":return{state:"failed",message:"WSL terminal detected.\n\nIf you're running WSL from VS Code, Windsurf or Cursor, please switch to a supported terminal within the IDE (e.g. PowerShell or Command Prompt) and run `/terminal-setup` again."};default:return{state:"failed",message:`Terminal "${e}" not supported. \`/terminal-setup\` is supported only in VS Code, Cursor and Windsurf.`}}}async function kjt(){let t=new xd,e=await Hjt(t);if(!e||!Object.keys(V7e).includes(e))return null;try{if((await Sr.load())?.asked_setup_terminals?.includes(e))return null}catch{}switch(e){case"vscode":case"vscode-insiders":case"cursor":case"windsurf":{let l=V7e[e];return(await Cjt(t,l.terminalName,l.appName)).state==="succeeded"?{terminal:e,terminalName:l.terminalName}:null}default:return null}}async function Ljt(t,e){let l=await _c(async()=>{try{return await Sr.load()??{}}catch{return{}}}),n=l.asked_setup_terminals??[];if(!n.includes(e)){n.push(e),l.asked_setup_terminals=n;try{await Sr.writeKey("asked_setup_terminals",n)}catch(r){t.warning(`Failed to mark terminal ${e} as "already asked to set up": ${r}`)}}}function yme(t,e){let l=e.trim();if(!l.startsWith("/"))return[];let n=l.split(" ")[0];return t.filter(r=>r.name.startsWith(n)?!0:r.aliases?r.aliases.some(a=>a.startsWith(n)):!1)}function Tjt(t,e){let l=" ".repeat(e),n=t.reduce((r,a)=>{let I=a.aliases&&a.aliases.length>0?`, ${a.aliases.join(", ")}`:"";return Math.max(r,a.name.length+I.length+(a.args?a.args.length+1:0))},0);return t.map(r=>{let a=r.aliases&&r.aliases.length>0?`, ${r.aliases.join(", ")}`:"",I=(r.args?`${r.name}${a} ${r.args}`:`${r.name}${a}`).padEnd(n);return`${l}${I} ${r.help}`}).join(`
2069
2070
  `)}var Ojt={kind:"noop"};function Ujt(t){return t==="~"?Jjt():t.startsWith("~/")?y4n.join(Jjt(),t.slice(2)):t}var R4n={name:"/add-dir",args:"<directory>",help:"Add a directory to the allowed list for file access",execute:async(t,e)=>{if(e.length<1)return{kind:"add-timeline-entry",entry:{type:"error",text:`Usage: /add-dir <directory>
2070
- Example: /add-dir /home/user/projects`}};let l=e.join(" "),n=Ujt(l);try{return await t.permissions.addAllowedDirectory(n),{kind:"add-timeline-entry",entry:{type:"info",text:`Added directory to allowed list: ${n}`}}}catch(r){return{kind:"add-timeline-entry",entry:{type:"error",text:`Failed to add directory: ${r instanceof Error?r.message:String(r)}`}}}}},Y4n={name:"/agent",help:"Browse and select from available agents (if any)",execute:async(t,e)=>t.hasAvailableCustomAgents?{kind:"show-dialog",dialog:{kind:"custom-agent-picker"}}:{kind:"add-timeline-entry",entry:{type:"info",text:"No available custom agents."}}},V4n={name:"/clear",help:"Clear the conversation history",execute:async(t,e)=>(await t.session.clearHistory(),t.ui.clear(),Ojt)},w4n={name:"/cwd",args:"[directory]",help:"Change working directory or show current directory",execute:async(t,e)=>{if(e.length===0)return{kind:"add-timeline-entry",entry:{type:"info",text:`Current working directory: ${t.process.cwd}`}};let l=e.join(" "),n=Ujt(l),r=E4n(n);try{return await t.process.chdir(r),{kind:"add-timeline-entry",entry:{type:"info",text:`Changed working directory to: ${r}`}}}catch(a){return{kind:"add-timeline-entry",entry:{type:"error",text:`Failed to change directory: ${a instanceof Error?a.message:String(a)}`}}}}},Q4n={name:"/exit",aliases:["/quit"],help:"Exit the CLI",execute:async(t,e)=>({kind:"exit"})},F4n={name:"/feedback",help:"Provide feedback about the CLI",execute:async(t,e)=>({kind:"show-dialog",dialog:{kind:"feedback"}})},C4n={name:"/help",help:"Show help for interactive commands",execute:async(t,e)=>({kind:"add-timeline-entry",entry:{type:"info",text:[mPt(`
2071
+ Example: /add-dir /home/user/projects`}};let l=e.join(" "),n=Ujt(l);try{return await t.permissions.addAllowedDirectory(n),{kind:"add-timeline-entry",entry:{type:"info",text:`Added directory to allowed list: ${n}`}}}catch(r){return{kind:"add-timeline-entry",entry:{type:"error",text:`Failed to add directory: ${r instanceof Error?r.message:String(r)}`}}}}},Y4n={name:"/agent",help:"Browse and select from available agents (if any)",execute:async(t,e)=>t.customAgents.available.length===0?t.customAgents.warnings.length>0?{kind:"add-timeline-entry",entry:{type:"error",text:`No available custom agents:
2072
+ ${t.customAgents.warnings.map(n=>`\u2022 ${n}`).join(`
2073
+ `)}`}}:{kind:"add-timeline-entry",entry:{type:"info",text:"No available custom agents."}}:{kind:"show-dialog",dialog:{kind:"custom-agent-picker"}}},V4n={name:"/clear",help:"Clear the conversation history",execute:async(t,e)=>(await t.session.clearHistory(),t.ui.clear(),Ojt)},w4n={name:"/cwd",args:"[directory]",help:"Change working directory or show current directory",execute:async(t,e)=>{if(e.length===0)return{kind:"add-timeline-entry",entry:{type:"info",text:`Current working directory: ${t.process.cwd}`}};let l=e.join(" "),n=Ujt(l),r=E4n(n);try{return await t.process.chdir(r),{kind:"add-timeline-entry",entry:{type:"info",text:`Changed working directory to: ${r}`}}}catch(a){return{kind:"add-timeline-entry",entry:{type:"error",text:`Failed to change directory: ${a instanceof Error?a.message:String(a)}`}}}}},Q4n={name:"/exit",aliases:["/quit"],help:"Exit the CLI",execute:async(t,e)=>({kind:"exit"})},F4n={name:"/feedback",help:"Provide feedback about the CLI",execute:async(t,e)=>({kind:"show-dialog",dialog:{kind:"feedback"}})},C4n={name:"/help",help:"Show help for interactive commands",execute:async(t,e)=>({kind:"add-timeline-entry",entry:{type:"info",text:[mPt(`
2071
2074
  Global shortcuts:
2072
2075
  @ - mention files, include contents in the current context
2073
2076
  Esc - cancel the current operation
@@ -2447,7 +2450,7 @@ ${e}`:""),isTruncated:!1}}function Ail(t){let e=Math.floor((Date.now()-t.getTime
2447
2450
  `,l+="</function_results>",l}formatMessage(e,l){return!l||!l.trim()?"":`
2448
2451
  ${this.escapeXml(this.secretFilter.filterSecrets(l.trim()))}
2449
2452
  `}escapeXml(e){return e}};function dCe(t){switch(t.kind){case"log":case"session_logging_disabled":case"telemetry":case"title_and_body_content":return!1;case"message":case"response":case"model_call_failure":case"model_call_success":case"tool_execution":case"turn_started":case"turn_ended":case"turn_failed":case"turn_retry":case"history_truncated":case"image_processing":case"images_removed":return!0}}var uCe=class{toolCalls={};trajectoryOutputFile;trajectoryStream;trajectoryFormatter=new cCe;logger;constructor(e,l){this.logger=e,this.trajectoryOutputFile=l,this.initTrajectoryOutputFileIfNeeded()}async progress(e){if(dCe(e)){if(this.trajectoryStream){if(GL(e)){e.message.content&&this.handleAssistantMessageWithContent(e.message.content),e.message.reasoning_text&&this.handleAssistantMessageWithContent(e.message.reasoning_text),T8(e)&&this.handleAssistantToolCalls(e.message.tool_calls);return}else if(_1e(e)){this.handleToolCallId(e.message.tool_call_id,e.message.content);return}}}else return}partialResult(e){return Promise.resolve()}commentReply(e){return Promise.resolve()}async result(e){if(typeof e=="object"&&(e.blockedRequests=e.blockedRequests??await this.getBlockedRequests()),this.trajectoryStream)return await new Promise(l=>{this.trajectoryStream?.end(()=>{this.trajectoryStream=void 0,l()})})}async error(e){if(this.trajectoryStream)return await new Promise(l=>{this.trajectoryStream?.end(()=>{this.trajectoryStream=void 0,l()})})}handleAssistantMessageWithContent(e){this.trajectoryStream&&this.writeTrajectoryAssistantMessage(e)}handleAssistantToolCalls(e){for(let l of e){let n=l.id;this.toolCalls[n]=l,this.trajectoryStream&&this.writeTrajectoryToolCall(l)}}handleToolCallId(e,l){let n=this.toolCalls[e];n&&(delete this.toolCalls[e],kA(n)&&n.function.name&&this.trajectoryStream&&this.writeTrajectoryFunctionResult(l))}initTrajectoryOutputFileIfNeeded(){if(this.trajectoryOutputFile)try{let e=Jil.dirname(this.trajectoryOutputFile);E7.existsSync(e)||E7.mkdirSync(e,{recursive:!0}),this.trajectoryStream=E7.createWriteStream(this.trajectoryOutputFile,{flags:"w"})}catch(e){let l={text:e instanceof Error?e.message:String(e),name:e instanceof Error?e.name:"Error",stack:e instanceof Error?e.stack:void 0};this.logger.error(`ERROR: ${JSON.stringify(l,null,2)}`),this.trajectoryStream=void 0}}writeTrajectoryAssistantMessage(e){let l=typeof e=="string"?e:JSON.stringify(e),n=this.trajectoryFormatter.formatMessage("assistant",l);n&&this.writeToTrajectoryFile(n)}writeTrajectoryToolCall(e){let l=this.trajectoryFormatter.formatToolCall(e);this.writeToTrajectoryFile(l)}writeTrajectoryFunctionResult(e){let l=typeof e=="string"?e:JSON.stringify(e),n=this.trajectoryFormatter.formatToolResult(l);this.writeToTrajectoryFile(n)}writeToTrajectoryFile(e){this.trajectoryStream&&this.trajectoryStream.write(e+`
2450
- `)}async getBlockedRequests(){try{return await Lil()}catch(e){return this.logger.error(`Error parsing firewall logs: ${e}`),[]}}};function xil(){let t=[],e=[],l=!1;return{next(n){l||(e.length>0?e.shift()({value:n,done:!1}):t.push(n))},done(){l||(l=!0,e.forEach(n=>n({value:void 0,done:!0})))},async*iterator(){for(;;)if(t.length>0)yield t.shift();else{if(l)return;{let n=await new Promise(r=>{e.push(r)});if(n.done)return;yield n.value}}}}}async function*Sil(t,e="all"){let l=t.map(n=>({iterator:n,next:n.next()}));for(;l.length>0;){let{done:n,value:r,index:a,iterator:I}=await Promise.race(l.map((s,o)=>s.next.then(c=>({index:o,...c,iterator:s.iterator}))));if(n){if(e==="any")return;l.splice(a,1)}else l[a].next=I.next(),yield r}}import{homedir as uPn}from"os";var mPn=10,Bil=["grep","egrep","fgrep","rg"],Til=["awk","gawk","mawk","nawk"];function Ctt(t,e){let l=[],n=["HOME","TMPDIR","TEMP","TMP","PWD","USER","USERNAME","USERPROFILE","APPDATA","LOCALAPPDATA"],r=!1,a=e;switch(t){case"bash":{let I=/\$\{?([A-Z_][A-Z0-9_]*)\}?/gi,s=[...e.matchAll(I)];for(let o=s.length-1;o>=0;o--){let c=s[o],d=c[1];if(n.some(m=>m.toLowerCase()===d.toLowerCase())){let m=process.env[d];m&&c.index!==void 0&&(a=a.slice(0,c.index)+m+a.slice(c.index+c[0].length),r=!0)}}break}case"powershell":{let I=/\$\{?env:([A-Z_][A-Z0-9_]*)\}?/gi,s=[...a.matchAll(I),...a.matchAll(/\$\{?HOME\}?/gi)];s.sort((o,c)=>(o.index??0)-(c.index??0));for(let o=s.length-1;o>=0;o--){let c=s[o],d=c[0].toUpperCase(),m=d==="$HOME"||d==="${HOME}",G=m?"HOME":c[1];if(n.some(p=>p.toLowerCase()===G.toLowerCase())){let p=m?uPn():process.env[G];p&&c.index!==void 0&&(a=a.slice(0,c.index)+p+a.slice(c.index+c[0].length),r=!0)}}break}default:wo(t,`Unknown shell type: ${t}`)}return r&&a!==e&&l.push(a),l.push(e),l}function bPn(t){let e=new Set,l=!1,n=new Set,r=[];for(let a=1;a<t.length;a++){let I=t[a],s=I.text;if(s==="--")break;if(s==="-e"||s==="--regexp"){a+1<t.length&&(e.add(a+1),a++);continue}if(!(s.startsWith("-e")&&s.length>2)&&!s.startsWith("--regexp=")){if(s==="-f"||s==="--file"){l=!0,a+1<t.length&&a++;continue}if(s.startsWith("-f")&&s.length>2){let o=s.slice(2);o&&rQ(o)&&r.push({path:o,charIndex:I.charIndex+2}),l=!0;continue}if(s.startsWith("--file=")){let o=s.split("=",2)[1];o&&rQ(o)&&r.push({path:o,charIndex:I.charIndex+7}),l=!0;continue}if(s==="--include-dir"){if(a+1<t.length){let o=t[a+1];rQ(o.text)&&r.push({path:o.text,charIndex:o.charIndex}),a++}continue}if(s.startsWith("--include-dir=")){let o=s.split("=",2)[1];o&&rQ(o)&&r.push({path:o,charIndex:I.charIndex+14});continue}if(s==="--include"||s==="--exclude"||s==="--exclude-dir"){a+1<t.length&&a++;continue}s.startsWith("--include=")||s.startsWith("--exclude=")||s.startsWith("--exclude-dir=")}}if(l)for(let a of e)n.add(a);else{let a=!1;for(let I=1;I<t.length;I++)if(!t[I].text.startsWith("-")){e.add(I),a=!0;break}if(a)for(let I of e)n.add(I)}return{skipIndexes:n,paths:r}}function GPn(t){let e=new Set,l=[],n=!1;for(let r=1;r<t.length;r++){let a=t[r],I=a.text;if(I==="--")break;if(I==="-f"||I==="--file"){n=!0,r+1<t.length&&r++;continue}if(I.startsWith("-f")&&I.length>2){let s=I.slice(2);s&&rQ(s)&&l.push({path:s,charIndex:a.charIndex+2}),n=!0;continue}if(I.startsWith("--file=")){let s=I.split("=",2)[1];s&&rQ(s)&&l.push({path:s,charIndex:a.charIndex+7}),n=!0;continue}if(I==="-v"||I==="-F"||I.startsWith("-v")||I.startsWith("-F")){(I==="-v"||I==="-F")&&r+1<t.length&&r++;continue}I.startsWith("--")}if(!n){for(let r=1;r<t.length;r++)if(!t[r].text.startsWith("-")){e.add(r);break}}return{skipIndexes:e,paths:l}}function pPn(t){let e=new Set,l=[];if(t[0].text==="gh"&&t[1].text==="api"){e.add(1);let n=t[2];n&&!n.text.startsWith("-")&&e.add(2)}return{skipIndexes:e,paths:l}}function hPn(t){let e=new Set,l=[],n=!1;for(let r=1;r<t.length;r++){let a=t[r],I=a.text;if(I==="--")break;if(I==="-e"||I==="--expression"){r+1<t.length&&(e.add(r+1),r++);continue}if(!(I.startsWith("-e")&&I.length>2)&&!I.startsWith("--expression=")){if(I==="-f"||I==="--file"){n=!0,r+1<t.length&&r++;continue}if(I.startsWith("-f")&&I.length>2){let s=I.slice(2);s&&rQ(s)&&l.push({path:s,charIndex:a.charIndex+2}),n=!0;continue}if(I.startsWith("--file=")){let s=I.split("=",2)[1];s&&rQ(s)&&l.push({path:s,charIndex:a.charIndex+7}),n=!0;continue}I==="-i"||I.startsWith("-i")||I.startsWith("--")}}if(!n){for(let r=1;r<t.length;r++)if(!t[r].text.startsWith("-")){e.add(r);break}}return{skipIndexes:e,paths:l}}function APn(t){let e=new Set,l=[],n=new Set(["-name","-iname","-path","-ipath","-regex","-iregex","-lname","-ilname","-user","-group","-type","-size","-perm","-mtime","-mmin","-maxdepth","-mindepth"]);for(let r=1;r<t.length;r++){let I=t[r].text;if(I){if(I==="--"){r++;continue}if(n.has(I)){r+1<t.length&&(e.add(r+1),r++);continue}for(let s of n)if(I.startsWith(s+"="))break}}return{skipIndexes:e,paths:l}}function vtt(t,e){let l=[],n=gPn(e);if(n.length===0)return[];let r=n[0].text,a=new Set,I=n.findIndex(d=>/^([;&|<]|\d*>)/.test(d.text)),s=I===-1?n:n.slice(0,I);if(Bil.includes(r)){let{skipIndexes:d,paths:m}=bPn(s);a=new Set([...a,...d]),l.push(...m)}if(Til.includes(r)){let{skipIndexes:d,paths:m}=GPn(s);a=new Set([...a,...d]),l.push(...m)}if(r==="sed"){let{skipIndexes:d,paths:m}=hPn(s);a=new Set([...a,...d]),l.push(...m)}if(r==="gh"){let{skipIndexes:d,paths:m}=pPn(s);a=new Set([...a,...d]),l.push(...m)}if(r==="find"&&process.platform!=="win32"){let{skipIndexes:d,paths:m}=APn(s);a=new Set([...a,...d]),l.push(...m)}if(r==="echo")for(let d=1;d<s.length;d++){let m=s[d];m&&(m.text.startsWith("-")||a.add(d))}for(let d=0;d<n.length;d++){let m=n[d];if(!a.has(d)&&!m.text.startsWith("-")){if(rQ(m.text)){let G=Ctt(t,m.text);l.push(...G.map(p=>({path:p,charIndex:m.charIndex})))}if(m.text.includes(">")||m.text.includes("<")){let G=m.text.match(/[0-9]*[><]+(.+)/);if(G&&G[1]){let p=Ctt(t,G[1]);l.push(...p.map(A=>({path:A,charIndex:m.charIndex+m.text.indexOf(G[1])})))}}if((m.text===">"||m.text===">>"||m.text==="<")&&d+1<n.length){let G=n[d+1];if(rQ(G.text)){let p=Ctt(t,G.text);l.push(...p.map(A=>({path:A,charIndex:G.charIndex})))}}}}let o=new Set,c=[];for(let d of l){let m=`${d.path}|${d.charIndex}`;o.has(m)||(o.add(m),c.push(d))}return c}function gPn(t){let e=[],l=/(\s+|;|&+|\|+|>+|<+)/y,n=null,r=!1,a="";for(let I=0;I<t.length;I++){let s=t[I];if(n&&r)s===a?(r=!1,a="",n&&(e.push(n),n=null)):n.text+=s;else if(s==='"'||s==="'")r=!0,a=s;else{l.lastIndex=I;let o=l.exec(t);if(o){n&&(e.push(n),n=null);let c=o[0];c.trim().length>0&&(e.push({text:c,charIndex:I}),I+=c.length-1)}else n?n.text+=s:n={text:s,charIndex:I}}}return n&&e.push(n),e}function rQ(t){if(t=t.replace(/^['"]|['"]$/g,""),!t)return!1;if(/\$\{?[A-Z_][A-Z0-9_]*\}?/i.test(t)||process.platform==="win32"&&/%[A-Z_][A-Z0-9_]*%/i.test(t)||t.startsWith("/"))return!0;let e=process.platform==="win32";return e&&(t.startsWith("\\")||/^[a-zA-Z]:/.test(t))||t.startsWith("./")||t.startsWith("../")||t==="."||t===".."||/^(\.\.\/)+/.test(t)||e&&(t.startsWith(".\\")||t.startsWith("..\\"))||t.startsWith("~/")||t==="~"||t.includes("/")||new RegExp(`\\.[a-zA-Z0-9]{1,${mPn}}$`).test(t)?!0:t.length>2&&/^[a-zA-Z0-9_.-\s]+$/.test(t)?!["true","false","null","undefined","www","com","org","echo",...Til,...Bil,"sed","find","sort","head","tail","touch","cat","and","or","not","if","then","else","fi","do","done","while","for","case","esac","function","return"].includes(t.toLowerCase()):!1}import scl from"node:path";var ZPn=Object.defineProperty,yt=(t,e)=>ZPn(t,"name",{value:e,configurable:!0}),Oil=2,ur=4,ftt=4*ur,hN=5*ur,aQ=2*ur,Ebe=2*ur+2*aQ,tJ={row:0,column:0},lJ=Symbol("INTERNAL");function R7(t){if(t!==lJ)throw new Error("Illegal constructor")}yt(R7,"assertInternal");function ybe(t){return!!t&&typeof t.row=="number"&&typeof t.column=="number"}yt(ybe,"isPoint");function Mil(t){Ve=t}yt(Mil,"setModule");var Ve,NPn=class{static{yt(this,"LookaheadIterator")}0=0;language;constructor(t,e,l){R7(t),this[0]=e,this.language=l}get currentTypeId(){return Ve._ts_lookahead_iterator_current_symbol(this[0])}get currentType(){return this.language.types[this.currentTypeId]||"ERROR"}delete(){Ve._ts_lookahead_iterator_delete(this[0]),this[0]=0}reset(t,e){return Ve._ts_lookahead_iterator_reset(this[0],t[0],e)?(this.language=t,!0):!1}resetState(t){return!!Ve._ts_lookahead_iterator_reset_state(this[0],t)}[Symbol.iterator](){return{next:yt(()=>Ve._ts_lookahead_iterator_next(this[0])?{done:!1,value:this.currentType}:{done:!0,value:""},"next")}}};function Jtt(t,e,l,n){let r=l-e,a=t.textCallback(e,n);if(a){for(e+=a.length;e<l;){let I=t.textCallback(e,n);if(I&&I.length>0)e+=I.length,a+=I;else break}e>l&&(a=a.slice(0,r))}return a??""}yt(Jtt,"getText");var WPn=class ktt{static{yt(this,"Tree")}0=0;textCallback;language;constructor(e,l,n,r){R7(e),this[0]=l,this.language=n,this.textCallback=r}copy(){let e=Ve._ts_tree_copy(this[0]);return new ktt(lJ,e,this.language,this.textCallback)}delete(){Ve._ts_tree_delete(this[0]),this[0]=0}get rootNode(){return Ve._ts_tree_root_node_wasm(this[0]),Ad(this)}rootNodeWithOffset(e,l){let n=nr+hN;return Ve.setValue(n,e,"i32"),x0(n+ur,l),Ve._ts_tree_root_node_with_offset_wasm(this[0]),Ad(this)}edit(e){zil(e),Ve._ts_tree_edit_wasm(this[0])}walk(){return this.rootNode.walk()}getChangedRanges(e){if(!(e instanceof ktt))throw new TypeError("Argument must be a Tree");Ve._ts_tree_get_changed_ranges_wasm(this[0],e[0]);let l=Ve.getValue(nr,"i32"),n=Ve.getValue(nr+ur,"i32"),r=new Array(l);if(l>0){let a=n;for(let I=0;I<l;I++)r[I]=bCe(a),a+=Ebe;Ve._free(n)}return r}getIncludedRanges(){Ve._ts_tree_included_ranges_wasm(this[0]);let e=Ve.getValue(nr,"i32"),l=Ve.getValue(nr+ur,"i32"),n=new Array(e);if(e>0){let r=l;for(let a=0;a<e;a++)n[a]=bCe(r),r+=Ebe;Ve._free(l)}return n}},yPn=class _il{static{yt(this,"TreeCursor")}0=0;1=0;2=0;3=0;tree;constructor(e,l){R7(e),this.tree=l,iy(this)}copy(){let e=new _il(lJ,this.tree);return Ve._ts_tree_cursor_copy_wasm(this.tree[0]),iy(e),e}delete(){zi(this),Ve._ts_tree_cursor_delete_wasm(this.tree[0]),this[0]=this[1]=this[2]=0}get currentNode(){return zi(this),Ve._ts_tree_cursor_current_node_wasm(this.tree[0]),Ad(this.tree)}get currentFieldId(){return zi(this),Ve._ts_tree_cursor_current_field_id_wasm(this.tree[0])}get currentFieldName(){return this.tree.language.fields[this.currentFieldId]}get currentDepth(){return zi(this),Ve._ts_tree_cursor_current_depth_wasm(this.tree[0])}get currentDescendantIndex(){return zi(this),Ve._ts_tree_cursor_current_descendant_index_wasm(this.tree[0])}get nodeType(){return this.tree.language.types[this.nodeTypeId]||"ERROR"}get nodeTypeId(){return zi(this),Ve._ts_tree_cursor_current_node_type_id_wasm(this.tree[0])}get nodeStateId(){return zi(this),Ve._ts_tree_cursor_current_node_state_id_wasm(this.tree[0])}get nodeId(){return zi(this),Ve._ts_tree_cursor_current_node_id_wasm(this.tree[0])}get nodeIsNamed(){return zi(this),Ve._ts_tree_cursor_current_node_is_named_wasm(this.tree[0])===1}get nodeIsMissing(){return zi(this),Ve._ts_tree_cursor_current_node_is_missing_wasm(this.tree[0])===1}get nodeText(){zi(this);let e=Ve._ts_tree_cursor_start_index_wasm(this.tree[0]),l=Ve._ts_tree_cursor_end_index_wasm(this.tree[0]);Ve._ts_tree_cursor_start_position_wasm(this.tree[0]);let n=SO(nr);return Jtt(this.tree,e,l,n)}get startPosition(){return zi(this),Ve._ts_tree_cursor_start_position_wasm(this.tree[0]),SO(nr)}get endPosition(){return zi(this),Ve._ts_tree_cursor_end_position_wasm(this.tree[0]),SO(nr)}get startIndex(){return zi(this),Ve._ts_tree_cursor_start_index_wasm(this.tree[0])}get endIndex(){return zi(this),Ve._ts_tree_cursor_end_index_wasm(this.tree[0])}gotoFirstChild(){zi(this);let e=Ve._ts_tree_cursor_goto_first_child_wasm(this.tree[0]);return iy(this),e===1}gotoLastChild(){zi(this);let e=Ve._ts_tree_cursor_goto_last_child_wasm(this.tree[0]);return iy(this),e===1}gotoParent(){zi(this);let e=Ve._ts_tree_cursor_goto_parent_wasm(this.tree[0]);return iy(this),e===1}gotoNextSibling(){zi(this);let e=Ve._ts_tree_cursor_goto_next_sibling_wasm(this.tree[0]);return iy(this),e===1}gotoPreviousSibling(){zi(this);let e=Ve._ts_tree_cursor_goto_previous_sibling_wasm(this.tree[0]);return iy(this),e===1}gotoDescendant(e){zi(this),Ve._ts_tree_cursor_goto_descendant_wasm(this.tree[0],e),iy(this)}gotoFirstChildForIndex(e){zi(this),Ve.setValue(nr+ftt,e,"i32");let l=Ve._ts_tree_cursor_goto_first_child_for_index_wasm(this.tree[0]);return iy(this),l===1}gotoFirstChildForPosition(e){zi(this),x0(nr+ftt,e);let l=Ve._ts_tree_cursor_goto_first_child_for_position_wasm(this.tree[0]);return iy(this),l===1}reset(e){za(e),zi(this,nr+hN),Ve._ts_tree_cursor_reset_wasm(this.tree[0]),iy(this)}resetTo(e){zi(this,nr),zi(e,nr+ftt),Ve._ts_tree_cursor_reset_to_wasm(this.tree[0],e.tree[0]),iy(this)}},EPn=class{static{yt(this,"Node")}0=0;_children;_namedChildren;constructor(t,{id:e,tree:l,startIndex:n,startPosition:r,other:a}){R7(t),this[0]=a,this.id=e,this.tree=l,this.startIndex=n,this.startPosition=r}id;startIndex;startPosition;tree;get typeId(){return za(this),Ve._ts_node_symbol_wasm(this.tree[0])}get grammarId(){return za(this),Ve._ts_node_grammar_symbol_wasm(this.tree[0])}get type(){return this.tree.language.types[this.typeId]||"ERROR"}get grammarType(){return this.tree.language.types[this.grammarId]||"ERROR"}get isNamed(){return za(this),Ve._ts_node_is_named_wasm(this.tree[0])===1}get isExtra(){return za(this),Ve._ts_node_is_extra_wasm(this.tree[0])===1}get isError(){return za(this),Ve._ts_node_is_error_wasm(this.tree[0])===1}get isMissing(){return za(this),Ve._ts_node_is_missing_wasm(this.tree[0])===1}get hasChanges(){return za(this),Ve._ts_node_has_changes_wasm(this.tree[0])===1}get hasError(){return za(this),Ve._ts_node_has_error_wasm(this.tree[0])===1}get endIndex(){return za(this),Ve._ts_node_end_index_wasm(this.tree[0])}get endPosition(){return za(this),Ve._ts_node_end_point_wasm(this.tree[0]),SO(nr)}get text(){return Jtt(this.tree,this.startIndex,this.endIndex,this.startPosition)}get parseState(){return za(this),Ve._ts_node_parse_state_wasm(this.tree[0])}get nextParseState(){return za(this),Ve._ts_node_next_parse_state_wasm(this.tree[0])}equals(t){return this.tree===t.tree&&this.id===t.id}child(t){return za(this),Ve._ts_node_child_wasm(this.tree[0],t),Ad(this.tree)}namedChild(t){return za(this),Ve._ts_node_named_child_wasm(this.tree[0],t),Ad(this.tree)}childForFieldId(t){return za(this),Ve._ts_node_child_by_field_id_wasm(this.tree[0],t),Ad(this.tree)}childForFieldName(t){let e=this.tree.language.fields.indexOf(t);return e!==-1?this.childForFieldId(e):null}fieldNameForChild(t){za(this);let e=Ve._ts_node_field_name_for_child_wasm(this.tree[0],t);return e?Ve.AsciiToString(e):null}fieldNameForNamedChild(t){za(this);let e=Ve._ts_node_field_name_for_named_child_wasm(this.tree[0],t);return e?Ve.AsciiToString(e):null}childrenForFieldName(t){let e=this.tree.language.fields.indexOf(t);return e!==-1&&e!==0?this.childrenForFieldId(e):[]}childrenForFieldId(t){za(this),Ve._ts_node_children_by_field_id_wasm(this.tree[0],t);let e=Ve.getValue(nr,"i32"),l=Ve.getValue(nr+ur,"i32"),n=new Array(e);if(e>0){let r=l;for(let a=0;a<e;a++)n[a]=Ad(this.tree,r),r+=hN;Ve._free(l)}return n}firstChildForIndex(t){za(this);let e=nr+hN;return Ve.setValue(e,t,"i32"),Ve._ts_node_first_child_for_byte_wasm(this.tree[0]),Ad(this.tree)}firstNamedChildForIndex(t){za(this);let e=nr+hN;return Ve.setValue(e,t,"i32"),Ve._ts_node_first_named_child_for_byte_wasm(this.tree[0]),Ad(this.tree)}get childCount(){return za(this),Ve._ts_node_child_count_wasm(this.tree[0])}get namedChildCount(){return za(this),Ve._ts_node_named_child_count_wasm(this.tree[0])}get firstChild(){return this.child(0)}get firstNamedChild(){return this.namedChild(0)}get lastChild(){return this.child(this.childCount-1)}get lastNamedChild(){return this.namedChild(this.namedChildCount-1)}get children(){if(!this._children){za(this),Ve._ts_node_children_wasm(this.tree[0]);let t=Ve.getValue(nr,"i32"),e=Ve.getValue(nr+ur,"i32");if(this._children=new Array(t),t>0){let l=e;for(let n=0;n<t;n++)this._children[n]=Ad(this.tree,l),l+=hN;Ve._free(e)}}return this._children}get namedChildren(){if(!this._namedChildren){za(this),Ve._ts_node_named_children_wasm(this.tree[0]);let t=Ve.getValue(nr,"i32"),e=Ve.getValue(nr+ur,"i32");if(this._namedChildren=new Array(t),t>0){let l=e;for(let n=0;n<t;n++)this._namedChildren[n]=Ad(this.tree,l),l+=hN;Ve._free(e)}}return this._namedChildren}descendantsOfType(t,e=tJ,l=tJ){Array.isArray(t)||(t=[t]);let n=[],r=this.tree.language.types;for(let c of t)c=="ERROR"&&n.push(65535);for(let c=0,d=r.length;c<d;c++)t.includes(r[c])&&n.push(c);let a=Ve._malloc(ur*n.length);for(let c=0,d=n.length;c<d;c++)Ve.setValue(a+c*ur,n[c],"i32");za(this),Ve._ts_node_descendants_of_type_wasm(this.tree[0],a,n.length,e.row,e.column,l.row,l.column);let I=Ve.getValue(nr,"i32"),s=Ve.getValue(nr+ur,"i32"),o=new Array(I);if(I>0){let c=s;for(let d=0;d<I;d++)o[d]=Ad(this.tree,c),c+=hN}return Ve._free(s),Ve._free(a),o}get nextSibling(){return za(this),Ve._ts_node_next_sibling_wasm(this.tree[0]),Ad(this.tree)}get previousSibling(){return za(this),Ve._ts_node_prev_sibling_wasm(this.tree[0]),Ad(this.tree)}get nextNamedSibling(){return za(this),Ve._ts_node_next_named_sibling_wasm(this.tree[0]),Ad(this.tree)}get previousNamedSibling(){return za(this),Ve._ts_node_prev_named_sibling_wasm(this.tree[0]),Ad(this.tree)}get descendantCount(){return za(this),Ve._ts_node_descendant_count_wasm(this.tree[0])}get parent(){return za(this),Ve._ts_node_parent_wasm(this.tree[0]),Ad(this.tree)}childWithDescendant(t){return za(this),za(t,1),Ve._ts_node_child_with_descendant_wasm(this.tree[0]),Ad(this.tree)}descendantForIndex(t,e=t){if(typeof t!="number"||typeof e!="number")throw new Error("Arguments must be numbers");za(this);let l=nr+hN;return Ve.setValue(l,t,"i32"),Ve.setValue(l+ur,e,"i32"),Ve._ts_node_descendant_for_index_wasm(this.tree[0]),Ad(this.tree)}namedDescendantForIndex(t,e=t){if(typeof t!="number"||typeof e!="number")throw new Error("Arguments must be numbers");za(this);let l=nr+hN;return Ve.setValue(l,t,"i32"),Ve.setValue(l+ur,e,"i32"),Ve._ts_node_named_descendant_for_index_wasm(this.tree[0]),Ad(this.tree)}descendantForPosition(t,e=t){if(!ybe(t)||!ybe(e))throw new Error("Arguments must be {row, column} objects");za(this);let l=nr+hN;return x0(l,t),x0(l+aQ,e),Ve._ts_node_descendant_for_position_wasm(this.tree[0]),Ad(this.tree)}namedDescendantForPosition(t,e=t){if(!ybe(t)||!ybe(e))throw new Error("Arguments must be {row, column} objects");za(this);let l=nr+hN;return x0(l,t),x0(l+aQ,e),Ve._ts_node_named_descendant_for_position_wasm(this.tree[0]),Ad(this.tree)}walk(){return za(this),Ve._ts_tree_cursor_new_wasm(this.tree[0]),new yPn(lJ,this.tree)}edit(t){if(this.startIndex>=t.oldEndIndex){this.startIndex=t.newEndIndex+(this.startIndex-t.oldEndIndex);let e,l;this.startPosition.row>t.oldEndPosition.row?(e=this.startPosition.row-t.oldEndPosition.row,l=this.startPosition.column):(e=0,l=this.startPosition.column,this.startPosition.column>=t.oldEndPosition.column&&(l=this.startPosition.column-t.oldEndPosition.column)),e>0?(this.startPosition.row+=e,this.startPosition.column=l):this.startPosition.column+=l}else this.startIndex>t.startIndex&&(this.startIndex=t.newEndIndex,this.startPosition.row=t.newEndPosition.row,this.startPosition.column=t.newEndPosition.column)}toString(){za(this);let t=Ve._ts_node_to_string_wasm(this.tree[0]),e=Ve.AsciiToString(t);return Ve._free(t),e}};function Ltt(t,e,l,n,r){for(let a=0,I=r.length;a<I;a++){let s=Ve.getValue(l,"i32");l+=ur;let o=Ad(e,l);l+=hN,r[a]={patternIndex:n,name:t.captureNames[s],node:o}}return l}yt(Ltt,"unmarshalCaptures");function za(t,e=0){let l=nr+e*hN;Ve.setValue(l,t.id,"i32"),l+=ur,Ve.setValue(l,t.startIndex,"i32"),l+=ur,Ve.setValue(l,t.startPosition.row,"i32"),l+=ur,Ve.setValue(l,t.startPosition.column,"i32"),l+=ur,Ve.setValue(l,t[0],"i32")}yt(za,"marshalNode");function Ad(t,e=nr){let l=Ve.getValue(e,"i32");if(e+=ur,l===0)return null;let n=Ve.getValue(e,"i32");e+=ur;let r=Ve.getValue(e,"i32");e+=ur;let a=Ve.getValue(e,"i32");e+=ur;let I=Ve.getValue(e,"i32");return new EPn(lJ,{id:l,tree:t,startIndex:n,startPosition:{row:r,column:a},other:I})}yt(Ad,"unmarshalNode");function zi(t,e=nr){Ve.setValue(e+0*ur,t[0],"i32"),Ve.setValue(e+1*ur,t[1],"i32"),Ve.setValue(e+2*ur,t[2],"i32"),Ve.setValue(e+3*ur,t[3],"i32")}yt(zi,"marshalTreeCursor");function iy(t){t[0]=Ve.getValue(nr+0*ur,"i32"),t[1]=Ve.getValue(nr+1*ur,"i32"),t[2]=Ve.getValue(nr+2*ur,"i32"),t[3]=Ve.getValue(nr+3*ur,"i32")}yt(iy,"unmarshalTreeCursor");function x0(t,e){Ve.setValue(t,e.row,"i32"),Ve.setValue(t+ur,e.column,"i32")}yt(x0,"marshalPoint");function SO(t){return{row:Ve.getValue(t,"i32")>>>0,column:Ve.getValue(t+ur,"i32")>>>0}}yt(SO,"unmarshalPoint");function Dil(t,e){x0(t,e.startPosition),t+=aQ,x0(t,e.endPosition),t+=aQ,Ve.setValue(t,e.startIndex,"i32"),t+=ur,Ve.setValue(t,e.endIndex,"i32"),t+=ur}yt(Dil,"marshalRange");function bCe(t){let e={};return e.startPosition=SO(t),t+=aQ,e.endPosition=SO(t),t+=aQ,e.startIndex=Ve.getValue(t,"i32")>>>0,t+=ur,e.endIndex=Ve.getValue(t,"i32")>>>0,e}yt(bCe,"unmarshalRange");function zil(t,e=nr){x0(e,t.startPosition),e+=aQ,x0(e,t.oldEndPosition),e+=aQ,x0(e,t.newEndPosition),e+=aQ,Ve.setValue(e,t.startIndex,"i32"),e+=ur,Ve.setValue(e,t.oldEndIndex,"i32"),e+=ur,Ve.setValue(e,t.newEndIndex,"i32"),e+=ur}yt(zil,"marshalEdit");function Pil(t){let e=Ve.getValue(t,"i32"),l=Ve.getValue(t+=ur,"i32"),n=Ve.getValue(t+=ur,"i32");return{major_version:e,minor_version:l,patch_version:n}}yt(Pil,"unmarshalLanguageMetadata");var RPn=1,YPn=2,VPn=/[\w-]+/g,rbI={Zero:0,ZeroOrOne:1,ZeroOrMore:2,One:3,OneOrMore:4},Uil=yt(t=>t.type==="capture","isCaptureStep"),xtt=yt(t=>t.type==="string","isStringStep"),ZY={Syntax:1,NodeName:2,FieldName:3,CaptureName:4,PatternStructure:5},Wbe=class jil extends Error{constructor(e,l,n,r){super(jil.formatMessage(e,l)),this.kind=e,this.info=l,this.index=n,this.length=r,this.name="QueryError"}static{yt(this,"QueryError")}static formatMessage(e,l){switch(e){case ZY.NodeName:return`Bad node name '${l.word}'`;case ZY.FieldName:return`Bad field name '${l.word}'`;case ZY.CaptureName:return`Bad capture name @${l.word}`;case ZY.PatternStructure:return`Bad pattern structure at offset ${l.suffix}`;case ZY.Syntax:return`Bad syntax at offset ${l.suffix}`}}};function Kil(t,e,l,n){if(t.length!==3)throw new Error(`Wrong number of arguments to \`#${l}\` predicate. Expected 2, got ${t.length-1}`);if(!Uil(t[1]))throw new Error(`First argument of \`#${l}\` predicate must be a capture. Got "${t[1].value}"`);let r=l==="eq?"||l==="any-eq?",a=!l.startsWith("any-");if(Uil(t[2])){let I=t[1].name,s=t[2].name;n[e].push(o=>{let c=[],d=[];for(let G of o)G.name===I&&c.push(G.node),G.name===s&&d.push(G.node);let m=yt((G,p,A)=>A?G.text===p.text:G.text!==p.text,"compare");return a?c.every(G=>d.some(p=>m(G,p,r))):c.some(G=>d.some(p=>m(G,p,r)))})}else{let I=t[1].name,s=t[2].value,o=yt(d=>d.text===s,"matches"),c=yt(d=>d.text!==s,"doesNotMatch");n[e].push(d=>{let m=[];for(let p of d)p.name===I&&m.push(p.node);let G=r?o:c;return a?m.every(G):m.some(G)})}}yt(Kil,"parseAnyPredicate");function qil(t,e,l,n){if(t.length!==3)throw new Error(`Wrong number of arguments to \`#${l}\` predicate. Expected 2, got ${t.length-1}.`);if(t[1].type!=="capture")throw new Error(`First argument of \`#${l}\` predicate must be a capture. Got "${t[1].value}".`);if(t[2].type!=="string")throw new Error(`Second argument of \`#${l}\` predicate must be a string. Got @${t[2].name}.`);let r=l==="match?"||l==="any-match?",a=!l.startsWith("any-"),I=t[1].name,s=new RegExp(t[2].value);n[e].push(o=>{let c=[];for(let m of o)m.name===I&&c.push(m.node.text);let d=yt((m,G)=>G?s.test(m):!s.test(m),"test");return c.length===0?!r:a?c.every(m=>d(m,r)):c.some(m=>d(m,r))})}yt(qil,"parseMatchPredicate");function $il(t,e,l,n){if(t.length<2)throw new Error(`Wrong number of arguments to \`#${l}\` predicate. Expected at least 1. Got ${t.length-1}.`);if(t[1].type!=="capture")throw new Error(`First argument of \`#${l}\` predicate must be a capture. Got "${t[1].value}".`);let r=l==="any-of?",a=t[1].name,I=t.slice(2);if(!I.every(xtt))throw new Error(`Arguments to \`#${l}\` predicate must be strings.".`);let s=I.map(o=>o.value);n[e].push(o=>{let c=[];for(let d of o)d.name===a&&c.push(d.node.text);return c.length===0?!r:c.every(d=>s.includes(d))===r})}yt($il,"parseAnyOfPredicate");function ecl(t,e,l,n,r){if(t.length<2||t.length>3)throw new Error(`Wrong number of arguments to \`#${l}\` predicate. Expected 1 or 2. Got ${t.length-1}.`);if(!t.every(xtt))throw new Error(`Arguments to \`#${l}\` predicate must be strings.".`);let a=l==="is?"?n:r;a[e]||(a[e]={}),a[e][t[1].value]=t[2]?.value??null}yt(ecl,"parseIsPredicate");function tcl(t,e,l){if(t.length<2||t.length>3)throw new Error(`Wrong number of arguments to \`#set!\` predicate. Expected 1 or 2. Got ${t.length-1}.`);if(!t.every(xtt))throw new Error('Arguments to `#set!` predicate must be strings.".');l[e]||(l[e]={}),l[e][t[1].value]=t[2]?.value??null}yt(tcl,"parseSetDirective");function lcl(t,e,l,n,r,a,I,s,o,c,d){if(e===RPn){let m=n[l];a.push({type:"capture",name:m})}else if(e===YPn)a.push({type:"string",value:r[l]});else if(a.length>0){if(a[0].type!=="string")throw new Error("Predicates must begin with a literal value");let m=a[0].value;switch(m){case"any-not-eq?":case"not-eq?":case"any-eq?":case"eq?":Kil(a,t,m,I);break;case"any-not-match?":case"not-match?":case"any-match?":case"match?":qil(a,t,m,I);break;case"not-any-of?":case"any-of?":$il(a,t,m,I);break;case"is?":case"is-not?":ecl(a,t,m,c,d);break;case"set!":tcl(a,t,o);break;default:s[t].push({operator:m,operands:a.slice(1)})}a.length=0}}yt(lcl,"parsePattern");var wPn=class{static{yt(this,"Query")}0=0;exceededMatchLimit;textPredicates;captureNames;captureQuantifiers;predicates;setProperties;assertedProperties;refutedProperties;matchLimit;constructor(t,e){let l=Ve.lengthBytesUTF8(e),n=Ve._malloc(l+1);Ve.stringToUTF8(e,n,l+1);let r=Ve._ts_query_new(t[0],n,l,nr,nr+ur);if(!r){let W=Ve.getValue(nr+ur,"i32"),R=Ve.getValue(nr,"i32"),V=Ve.UTF8ToString(n,R).length,v=e.slice(V,V+100).split(`
2453
+ `)}async getBlockedRequests(){try{return await Lil()}catch(e){return this.logger.error(`Error parsing firewall logs: ${e}`),[]}}};function xil(){let t=[],e=[],l=!1;return{next(n){l||(e.length>0?e.shift()({value:n,done:!1}):t.push(n))},done(){l||(l=!0,e.forEach(n=>n({value:void 0,done:!0})))},async*iterator(){for(;;)if(t.length>0)yield t.shift();else{if(l)return;{let n=await new Promise(r=>{e.push(r)});if(n.done)return;yield n.value}}}}}async function*Sil(t,e="all"){let l=t.map(n=>({iterator:n,next:n.next()}));for(;l.length>0;){let{done:n,value:r,index:a,iterator:I}=await Promise.race(l.map((s,o)=>s.next.then(c=>({index:o,...c,iterator:s.iterator}))));if(n){if(e==="any")return;l.splice(a,1)}else l[a].next=I.next(),yield r}}import{homedir as uPn}from"os";var mPn=10,Bil=["grep","egrep","fgrep","rg"],Til=["awk","gawk","mawk","nawk"];function Ctt(t,e){let l=[],n=["HOME","TMPDIR","TEMP","TMP","PWD","USER","USERNAME","USERPROFILE","APPDATA","LOCALAPPDATA"],r=!1,a=e;switch(t){case"bash":{let I=/\$\{?([A-Z_][A-Z0-9_]*)\}?/gi,s=[...e.matchAll(I)];for(let o=s.length-1;o>=0;o--){let c=s[o],d=c[1];if(n.some(m=>m.toLowerCase()===d.toLowerCase())){let m=process.env[d];m&&c.index!==void 0&&(a=a.slice(0,c.index)+m+a.slice(c.index+c[0].length),r=!0)}}break}case"powershell":{let I=/\$\{?env:([A-Z_][A-Z0-9_]*)\}?/gi,s=[...a.matchAll(I),...a.matchAll(/\$\{?HOME\}?/gi)];s.sort((o,c)=>(o.index??0)-(c.index??0));for(let o=s.length-1;o>=0;o--){let c=s[o],d=c[0].toUpperCase(),m=d==="$HOME"||d==="${HOME}",G=m?"HOME":c[1];if(n.some(p=>p.toLowerCase()===G.toLowerCase())){let p=m?uPn():process.env[G];p&&c.index!==void 0&&(a=a.slice(0,c.index)+p+a.slice(c.index+c[0].length),r=!0)}}break}default:wo(t,`Unknown shell type: ${t}`)}return r&&a!==e&&l.push(a),l.push(e),l}function bPn(t){let e=new Set,l=!1,n=new Set,r=[];for(let a=1;a<t.length;a++){let I=t[a],s=I.text;if(s==="--")break;if(s==="-e"||s==="--regexp"){a+1<t.length&&(e.add(a+1),a++);continue}if(!(s.startsWith("-e")&&s.length>2)&&!s.startsWith("--regexp=")){if(s==="-f"||s==="--file"){l=!0,a+1<t.length&&a++;continue}if(s.startsWith("-f")&&s.length>2){let o=s.slice(2);o&&rQ(o)&&r.push({path:o,charIndex:I.charIndex+2}),l=!0;continue}if(s.startsWith("--file=")){let o=s.split("=",2)[1];o&&rQ(o)&&r.push({path:o,charIndex:I.charIndex+7}),l=!0;continue}if(s==="--include-dir"){if(a+1<t.length){let o=t[a+1];rQ(o.text)&&r.push({path:o.text,charIndex:o.charIndex}),a++}continue}if(s.startsWith("--include-dir=")){let o=s.split("=",2)[1];o&&rQ(o)&&r.push({path:o,charIndex:I.charIndex+14});continue}if(s==="--include"||s==="--exclude"||s==="--exclude-dir"){a+1<t.length&&a++;continue}s.startsWith("--include=")||s.startsWith("--exclude=")||s.startsWith("--exclude-dir=")}}if(l)for(let a of e)n.add(a);else{let a=!1;for(let I=1;I<t.length;I++)if(!t[I].text.startsWith("-")){e.add(I),a=!0;break}if(a)for(let I of e)n.add(I)}return{skipIndexes:n,paths:r}}function GPn(t){let e=new Set,l=[],n=!1;for(let r=1;r<t.length;r++){let a=t[r],I=a.text;if(I==="--")break;if(I==="-f"||I==="--file"){n=!0,r+1<t.length&&r++;continue}if(I.startsWith("-f")&&I.length>2){let s=I.slice(2);s&&rQ(s)&&l.push({path:s,charIndex:a.charIndex+2}),n=!0;continue}if(I.startsWith("--file=")){let s=I.split("=",2)[1];s&&rQ(s)&&l.push({path:s,charIndex:a.charIndex+7}),n=!0;continue}if(I==="-v"||I==="-F"||I.startsWith("-v")||I.startsWith("-F")){(I==="-v"||I==="-F")&&r+1<t.length&&r++;continue}I.startsWith("--")}if(!n){for(let r=1;r<t.length;r++)if(!t[r].text.startsWith("-")){e.add(r);break}}return{skipIndexes:e,paths:l}}function pPn(t){let e=new Set,l=[];if(t[0].text==="gh"&&t[1].text==="api"){e.add(1);let n=t[2];n&&!n.text.startsWith("-")&&e.add(2)}return{skipIndexes:e,paths:l}}function hPn(t){let e=new Set,l=[],n=!1;for(let r=1;r<t.length;r++){let a=t[r],I=a.text;if(I==="--")break;if(I==="-e"||I==="--expression"){r+1<t.length&&(e.add(r+1),r++);continue}if(!(I.startsWith("-e")&&I.length>2)&&!I.startsWith("--expression=")){if(I==="-f"||I==="--file"){n=!0,r+1<t.length&&r++;continue}if(I.startsWith("-f")&&I.length>2){let s=I.slice(2);s&&rQ(s)&&l.push({path:s,charIndex:a.charIndex+2}),n=!0;continue}if(I.startsWith("--file=")){let s=I.split("=",2)[1];s&&rQ(s)&&l.push({path:s,charIndex:a.charIndex+7}),n=!0;continue}I==="-i"||I.startsWith("-i")||I.startsWith("--")}}if(!n){for(let r=1;r<t.length;r++)if(!t[r].text.startsWith("-")){e.add(r);break}}return{skipIndexes:e,paths:l}}function APn(t){let e=new Set,l=[],n=new Set(["-name","-iname","-path","-ipath","-regex","-iregex","-lname","-ilname","-user","-group","-type","-size","-perm","-mtime","-mmin","-maxdepth","-mindepth"]);for(let r=1;r<t.length;r++){let I=t[r].text;if(I){if(I==="--"){r++;continue}if(n.has(I)){r+1<t.length&&(e.add(r+1),r++);continue}for(let s of n)if(I.startsWith(s+"="))break}}return{skipIndexes:e,paths:l}}function vtt(t,e){let l=[],n=gPn(e);if(n.length===0)return[];let r=n[0].text,a=new Set,I=n.findIndex(d=>/^([;&|<]|\d*>)/.test(d.text)),s=I===-1?n:n.slice(0,I);if(Bil.includes(r)){let{skipIndexes:d,paths:m}=bPn(s);a=new Set([...a,...d]),l.push(...m)}if(Til.includes(r)){let{skipIndexes:d,paths:m}=GPn(s);a=new Set([...a,...d]),l.push(...m)}if(r==="sed"){let{skipIndexes:d,paths:m}=hPn(s);a=new Set([...a,...d]),l.push(...m)}if(r==="gh"){let{skipIndexes:d,paths:m}=pPn(s);a=new Set([...a,...d]),l.push(...m)}if(r==="find"&&process.platform!=="win32"){let{skipIndexes:d,paths:m}=APn(s);a=new Set([...a,...d]),l.push(...m)}if(r==="echo")for(let d=1;d<s.length;d++){let m=s[d];m&&(m.text.startsWith("-")||a.add(d))}for(let d=0;d<n.length;d++){let m=n[d];if(!a.has(d)&&!m.text.startsWith("-")){if(rQ(m.text)){let G=Ctt(t,m.text);l.push(...G.map(p=>({path:p,charIndex:m.charIndex})))}if(m.text.includes(">")||m.text.includes("<")){let G=m.text.match(/[0-9]*[><]+(.+)/);if(G&&G[1]){let p=Ctt(t,G[1]);l.push(...p.map(A=>({path:A,charIndex:m.charIndex+m.text.indexOf(G[1])})))}}if((m.text===">"||m.text===">>"||m.text==="<")&&d+1<n.length){let G=n[d+1];if(rQ(G.text)){let p=Ctt(t,G.text);l.push(...p.map(A=>({path:A,charIndex:G.charIndex})))}}}}let o=new Set,c=[];for(let d of l){let m=`${d.path}|${d.charIndex}`;o.has(m)||(o.add(m),c.push(d))}return c}function gPn(t){let e=[],l=/(\s+|;|&+|\|+|>+|<+)/y,n=null,r=!1,a="";for(let I=0;I<t.length;I++){let s=t[I];if(n&&r)s===a?(r=!1,a="",n&&(e.push(n),n=null)):n.text+=s;else if(s==='"'||s==="'")r=!0,a=s;else{l.lastIndex=I;let o=l.exec(t);if(o){n&&(e.push(n),n=null);let c=o[0];c.trim().length>0&&(e.push({text:c,charIndex:I}),I+=c.length-1)}else n?n.text+=s:n={text:s,charIndex:I}}}return n&&e.push(n),e}function rQ(t){if(t=t.replace(/^['"]|['"]$/g,""),!t)return!1;if(t.startsWith("/*")||t.endsWith("*/")){let l=t.split("/"),n=!1,r=!1,a=!1;for(let I=0;I<l.length;I++){let s=l[I];if(s!==""){if(s==="*"||s==="**"){r=!0;continue}if(/^[-*]+$/.test(s)){a=!0;continue}/[a-zA-Z0-9._]/.test(s)&&(n=!0)}}return!!(n||r&&!a)}if(/\$\{?[A-Z_][A-Z0-9_]*\}?/i.test(t)||process.platform==="win32"&&/%[A-Z_][A-Z0-9_]*%/i.test(t)||t.startsWith("/"))return!0;let e=process.platform==="win32";return e&&(t.startsWith("\\")||/^[a-zA-Z]:/.test(t))||t.startsWith("./")||t.startsWith("../")||t==="."||t===".."||/^(\.\.\/)+/.test(t)||e&&(t.startsWith(".\\")||t.startsWith("..\\"))||t.startsWith("~/")||t==="~"||t.includes("/")||new RegExp(`\\.[a-zA-Z0-9]{1,${mPn}}$`).test(t)?!0:t.length>2&&/^[a-zA-Z0-9_.-\s]+$/.test(t)?!["true","false","null","undefined","www","com","org","echo",...Til,...Bil,"sed","find","sort","head","tail","touch","cat","and","or","not","if","then","else","fi","do","done","while","for","case","esac","function","return"].includes(t.toLowerCase()):!1}import scl from"node:path";var ZPn=Object.defineProperty,yt=(t,e)=>ZPn(t,"name",{value:e,configurable:!0}),Oil=2,ur=4,ftt=4*ur,hN=5*ur,aQ=2*ur,Ebe=2*ur+2*aQ,tJ={row:0,column:0},lJ=Symbol("INTERNAL");function R7(t){if(t!==lJ)throw new Error("Illegal constructor")}yt(R7,"assertInternal");function ybe(t){return!!t&&typeof t.row=="number"&&typeof t.column=="number"}yt(ybe,"isPoint");function Mil(t){Ve=t}yt(Mil,"setModule");var Ve,NPn=class{static{yt(this,"LookaheadIterator")}0=0;language;constructor(t,e,l){R7(t),this[0]=e,this.language=l}get currentTypeId(){return Ve._ts_lookahead_iterator_current_symbol(this[0])}get currentType(){return this.language.types[this.currentTypeId]||"ERROR"}delete(){Ve._ts_lookahead_iterator_delete(this[0]),this[0]=0}reset(t,e){return Ve._ts_lookahead_iterator_reset(this[0],t[0],e)?(this.language=t,!0):!1}resetState(t){return!!Ve._ts_lookahead_iterator_reset_state(this[0],t)}[Symbol.iterator](){return{next:yt(()=>Ve._ts_lookahead_iterator_next(this[0])?{done:!1,value:this.currentType}:{done:!0,value:""},"next")}}};function Jtt(t,e,l,n){let r=l-e,a=t.textCallback(e,n);if(a){for(e+=a.length;e<l;){let I=t.textCallback(e,n);if(I&&I.length>0)e+=I.length,a+=I;else break}e>l&&(a=a.slice(0,r))}return a??""}yt(Jtt,"getText");var WPn=class ktt{static{yt(this,"Tree")}0=0;textCallback;language;constructor(e,l,n,r){R7(e),this[0]=l,this.language=n,this.textCallback=r}copy(){let e=Ve._ts_tree_copy(this[0]);return new ktt(lJ,e,this.language,this.textCallback)}delete(){Ve._ts_tree_delete(this[0]),this[0]=0}get rootNode(){return Ve._ts_tree_root_node_wasm(this[0]),Ad(this)}rootNodeWithOffset(e,l){let n=nr+hN;return Ve.setValue(n,e,"i32"),x0(n+ur,l),Ve._ts_tree_root_node_with_offset_wasm(this[0]),Ad(this)}edit(e){zil(e),Ve._ts_tree_edit_wasm(this[0])}walk(){return this.rootNode.walk()}getChangedRanges(e){if(!(e instanceof ktt))throw new TypeError("Argument must be a Tree");Ve._ts_tree_get_changed_ranges_wasm(this[0],e[0]);let l=Ve.getValue(nr,"i32"),n=Ve.getValue(nr+ur,"i32"),r=new Array(l);if(l>0){let a=n;for(let I=0;I<l;I++)r[I]=bCe(a),a+=Ebe;Ve._free(n)}return r}getIncludedRanges(){Ve._ts_tree_included_ranges_wasm(this[0]);let e=Ve.getValue(nr,"i32"),l=Ve.getValue(nr+ur,"i32"),n=new Array(e);if(e>0){let r=l;for(let a=0;a<e;a++)n[a]=bCe(r),r+=Ebe;Ve._free(l)}return n}},yPn=class _il{static{yt(this,"TreeCursor")}0=0;1=0;2=0;3=0;tree;constructor(e,l){R7(e),this.tree=l,iy(this)}copy(){let e=new _il(lJ,this.tree);return Ve._ts_tree_cursor_copy_wasm(this.tree[0]),iy(e),e}delete(){zi(this),Ve._ts_tree_cursor_delete_wasm(this.tree[0]),this[0]=this[1]=this[2]=0}get currentNode(){return zi(this),Ve._ts_tree_cursor_current_node_wasm(this.tree[0]),Ad(this.tree)}get currentFieldId(){return zi(this),Ve._ts_tree_cursor_current_field_id_wasm(this.tree[0])}get currentFieldName(){return this.tree.language.fields[this.currentFieldId]}get currentDepth(){return zi(this),Ve._ts_tree_cursor_current_depth_wasm(this.tree[0])}get currentDescendantIndex(){return zi(this),Ve._ts_tree_cursor_current_descendant_index_wasm(this.tree[0])}get nodeType(){return this.tree.language.types[this.nodeTypeId]||"ERROR"}get nodeTypeId(){return zi(this),Ve._ts_tree_cursor_current_node_type_id_wasm(this.tree[0])}get nodeStateId(){return zi(this),Ve._ts_tree_cursor_current_node_state_id_wasm(this.tree[0])}get nodeId(){return zi(this),Ve._ts_tree_cursor_current_node_id_wasm(this.tree[0])}get nodeIsNamed(){return zi(this),Ve._ts_tree_cursor_current_node_is_named_wasm(this.tree[0])===1}get nodeIsMissing(){return zi(this),Ve._ts_tree_cursor_current_node_is_missing_wasm(this.tree[0])===1}get nodeText(){zi(this);let e=Ve._ts_tree_cursor_start_index_wasm(this.tree[0]),l=Ve._ts_tree_cursor_end_index_wasm(this.tree[0]);Ve._ts_tree_cursor_start_position_wasm(this.tree[0]);let n=SO(nr);return Jtt(this.tree,e,l,n)}get startPosition(){return zi(this),Ve._ts_tree_cursor_start_position_wasm(this.tree[0]),SO(nr)}get endPosition(){return zi(this),Ve._ts_tree_cursor_end_position_wasm(this.tree[0]),SO(nr)}get startIndex(){return zi(this),Ve._ts_tree_cursor_start_index_wasm(this.tree[0])}get endIndex(){return zi(this),Ve._ts_tree_cursor_end_index_wasm(this.tree[0])}gotoFirstChild(){zi(this);let e=Ve._ts_tree_cursor_goto_first_child_wasm(this.tree[0]);return iy(this),e===1}gotoLastChild(){zi(this);let e=Ve._ts_tree_cursor_goto_last_child_wasm(this.tree[0]);return iy(this),e===1}gotoParent(){zi(this);let e=Ve._ts_tree_cursor_goto_parent_wasm(this.tree[0]);return iy(this),e===1}gotoNextSibling(){zi(this);let e=Ve._ts_tree_cursor_goto_next_sibling_wasm(this.tree[0]);return iy(this),e===1}gotoPreviousSibling(){zi(this);let e=Ve._ts_tree_cursor_goto_previous_sibling_wasm(this.tree[0]);return iy(this),e===1}gotoDescendant(e){zi(this),Ve._ts_tree_cursor_goto_descendant_wasm(this.tree[0],e),iy(this)}gotoFirstChildForIndex(e){zi(this),Ve.setValue(nr+ftt,e,"i32");let l=Ve._ts_tree_cursor_goto_first_child_for_index_wasm(this.tree[0]);return iy(this),l===1}gotoFirstChildForPosition(e){zi(this),x0(nr+ftt,e);let l=Ve._ts_tree_cursor_goto_first_child_for_position_wasm(this.tree[0]);return iy(this),l===1}reset(e){za(e),zi(this,nr+hN),Ve._ts_tree_cursor_reset_wasm(this.tree[0]),iy(this)}resetTo(e){zi(this,nr),zi(e,nr+ftt),Ve._ts_tree_cursor_reset_to_wasm(this.tree[0],e.tree[0]),iy(this)}},EPn=class{static{yt(this,"Node")}0=0;_children;_namedChildren;constructor(t,{id:e,tree:l,startIndex:n,startPosition:r,other:a}){R7(t),this[0]=a,this.id=e,this.tree=l,this.startIndex=n,this.startPosition=r}id;startIndex;startPosition;tree;get typeId(){return za(this),Ve._ts_node_symbol_wasm(this.tree[0])}get grammarId(){return za(this),Ve._ts_node_grammar_symbol_wasm(this.tree[0])}get type(){return this.tree.language.types[this.typeId]||"ERROR"}get grammarType(){return this.tree.language.types[this.grammarId]||"ERROR"}get isNamed(){return za(this),Ve._ts_node_is_named_wasm(this.tree[0])===1}get isExtra(){return za(this),Ve._ts_node_is_extra_wasm(this.tree[0])===1}get isError(){return za(this),Ve._ts_node_is_error_wasm(this.tree[0])===1}get isMissing(){return za(this),Ve._ts_node_is_missing_wasm(this.tree[0])===1}get hasChanges(){return za(this),Ve._ts_node_has_changes_wasm(this.tree[0])===1}get hasError(){return za(this),Ve._ts_node_has_error_wasm(this.tree[0])===1}get endIndex(){return za(this),Ve._ts_node_end_index_wasm(this.tree[0])}get endPosition(){return za(this),Ve._ts_node_end_point_wasm(this.tree[0]),SO(nr)}get text(){return Jtt(this.tree,this.startIndex,this.endIndex,this.startPosition)}get parseState(){return za(this),Ve._ts_node_parse_state_wasm(this.tree[0])}get nextParseState(){return za(this),Ve._ts_node_next_parse_state_wasm(this.tree[0])}equals(t){return this.tree===t.tree&&this.id===t.id}child(t){return za(this),Ve._ts_node_child_wasm(this.tree[0],t),Ad(this.tree)}namedChild(t){return za(this),Ve._ts_node_named_child_wasm(this.tree[0],t),Ad(this.tree)}childForFieldId(t){return za(this),Ve._ts_node_child_by_field_id_wasm(this.tree[0],t),Ad(this.tree)}childForFieldName(t){let e=this.tree.language.fields.indexOf(t);return e!==-1?this.childForFieldId(e):null}fieldNameForChild(t){za(this);let e=Ve._ts_node_field_name_for_child_wasm(this.tree[0],t);return e?Ve.AsciiToString(e):null}fieldNameForNamedChild(t){za(this);let e=Ve._ts_node_field_name_for_named_child_wasm(this.tree[0],t);return e?Ve.AsciiToString(e):null}childrenForFieldName(t){let e=this.tree.language.fields.indexOf(t);return e!==-1&&e!==0?this.childrenForFieldId(e):[]}childrenForFieldId(t){za(this),Ve._ts_node_children_by_field_id_wasm(this.tree[0],t);let e=Ve.getValue(nr,"i32"),l=Ve.getValue(nr+ur,"i32"),n=new Array(e);if(e>0){let r=l;for(let a=0;a<e;a++)n[a]=Ad(this.tree,r),r+=hN;Ve._free(l)}return n}firstChildForIndex(t){za(this);let e=nr+hN;return Ve.setValue(e,t,"i32"),Ve._ts_node_first_child_for_byte_wasm(this.tree[0]),Ad(this.tree)}firstNamedChildForIndex(t){za(this);let e=nr+hN;return Ve.setValue(e,t,"i32"),Ve._ts_node_first_named_child_for_byte_wasm(this.tree[0]),Ad(this.tree)}get childCount(){return za(this),Ve._ts_node_child_count_wasm(this.tree[0])}get namedChildCount(){return za(this),Ve._ts_node_named_child_count_wasm(this.tree[0])}get firstChild(){return this.child(0)}get firstNamedChild(){return this.namedChild(0)}get lastChild(){return this.child(this.childCount-1)}get lastNamedChild(){return this.namedChild(this.namedChildCount-1)}get children(){if(!this._children){za(this),Ve._ts_node_children_wasm(this.tree[0]);let t=Ve.getValue(nr,"i32"),e=Ve.getValue(nr+ur,"i32");if(this._children=new Array(t),t>0){let l=e;for(let n=0;n<t;n++)this._children[n]=Ad(this.tree,l),l+=hN;Ve._free(e)}}return this._children}get namedChildren(){if(!this._namedChildren){za(this),Ve._ts_node_named_children_wasm(this.tree[0]);let t=Ve.getValue(nr,"i32"),e=Ve.getValue(nr+ur,"i32");if(this._namedChildren=new Array(t),t>0){let l=e;for(let n=0;n<t;n++)this._namedChildren[n]=Ad(this.tree,l),l+=hN;Ve._free(e)}}return this._namedChildren}descendantsOfType(t,e=tJ,l=tJ){Array.isArray(t)||(t=[t]);let n=[],r=this.tree.language.types;for(let c of t)c=="ERROR"&&n.push(65535);for(let c=0,d=r.length;c<d;c++)t.includes(r[c])&&n.push(c);let a=Ve._malloc(ur*n.length);for(let c=0,d=n.length;c<d;c++)Ve.setValue(a+c*ur,n[c],"i32");za(this),Ve._ts_node_descendants_of_type_wasm(this.tree[0],a,n.length,e.row,e.column,l.row,l.column);let I=Ve.getValue(nr,"i32"),s=Ve.getValue(nr+ur,"i32"),o=new Array(I);if(I>0){let c=s;for(let d=0;d<I;d++)o[d]=Ad(this.tree,c),c+=hN}return Ve._free(s),Ve._free(a),o}get nextSibling(){return za(this),Ve._ts_node_next_sibling_wasm(this.tree[0]),Ad(this.tree)}get previousSibling(){return za(this),Ve._ts_node_prev_sibling_wasm(this.tree[0]),Ad(this.tree)}get nextNamedSibling(){return za(this),Ve._ts_node_next_named_sibling_wasm(this.tree[0]),Ad(this.tree)}get previousNamedSibling(){return za(this),Ve._ts_node_prev_named_sibling_wasm(this.tree[0]),Ad(this.tree)}get descendantCount(){return za(this),Ve._ts_node_descendant_count_wasm(this.tree[0])}get parent(){return za(this),Ve._ts_node_parent_wasm(this.tree[0]),Ad(this.tree)}childWithDescendant(t){return za(this),za(t,1),Ve._ts_node_child_with_descendant_wasm(this.tree[0]),Ad(this.tree)}descendantForIndex(t,e=t){if(typeof t!="number"||typeof e!="number")throw new Error("Arguments must be numbers");za(this);let l=nr+hN;return Ve.setValue(l,t,"i32"),Ve.setValue(l+ur,e,"i32"),Ve._ts_node_descendant_for_index_wasm(this.tree[0]),Ad(this.tree)}namedDescendantForIndex(t,e=t){if(typeof t!="number"||typeof e!="number")throw new Error("Arguments must be numbers");za(this);let l=nr+hN;return Ve.setValue(l,t,"i32"),Ve.setValue(l+ur,e,"i32"),Ve._ts_node_named_descendant_for_index_wasm(this.tree[0]),Ad(this.tree)}descendantForPosition(t,e=t){if(!ybe(t)||!ybe(e))throw new Error("Arguments must be {row, column} objects");za(this);let l=nr+hN;return x0(l,t),x0(l+aQ,e),Ve._ts_node_descendant_for_position_wasm(this.tree[0]),Ad(this.tree)}namedDescendantForPosition(t,e=t){if(!ybe(t)||!ybe(e))throw new Error("Arguments must be {row, column} objects");za(this);let l=nr+hN;return x0(l,t),x0(l+aQ,e),Ve._ts_node_named_descendant_for_position_wasm(this.tree[0]),Ad(this.tree)}walk(){return za(this),Ve._ts_tree_cursor_new_wasm(this.tree[0]),new yPn(lJ,this.tree)}edit(t){if(this.startIndex>=t.oldEndIndex){this.startIndex=t.newEndIndex+(this.startIndex-t.oldEndIndex);let e,l;this.startPosition.row>t.oldEndPosition.row?(e=this.startPosition.row-t.oldEndPosition.row,l=this.startPosition.column):(e=0,l=this.startPosition.column,this.startPosition.column>=t.oldEndPosition.column&&(l=this.startPosition.column-t.oldEndPosition.column)),e>0?(this.startPosition.row+=e,this.startPosition.column=l):this.startPosition.column+=l}else this.startIndex>t.startIndex&&(this.startIndex=t.newEndIndex,this.startPosition.row=t.newEndPosition.row,this.startPosition.column=t.newEndPosition.column)}toString(){za(this);let t=Ve._ts_node_to_string_wasm(this.tree[0]),e=Ve.AsciiToString(t);return Ve._free(t),e}};function Ltt(t,e,l,n,r){for(let a=0,I=r.length;a<I;a++){let s=Ve.getValue(l,"i32");l+=ur;let o=Ad(e,l);l+=hN,r[a]={patternIndex:n,name:t.captureNames[s],node:o}}return l}yt(Ltt,"unmarshalCaptures");function za(t,e=0){let l=nr+e*hN;Ve.setValue(l,t.id,"i32"),l+=ur,Ve.setValue(l,t.startIndex,"i32"),l+=ur,Ve.setValue(l,t.startPosition.row,"i32"),l+=ur,Ve.setValue(l,t.startPosition.column,"i32"),l+=ur,Ve.setValue(l,t[0],"i32")}yt(za,"marshalNode");function Ad(t,e=nr){let l=Ve.getValue(e,"i32");if(e+=ur,l===0)return null;let n=Ve.getValue(e,"i32");e+=ur;let r=Ve.getValue(e,"i32");e+=ur;let a=Ve.getValue(e,"i32");e+=ur;let I=Ve.getValue(e,"i32");return new EPn(lJ,{id:l,tree:t,startIndex:n,startPosition:{row:r,column:a},other:I})}yt(Ad,"unmarshalNode");function zi(t,e=nr){Ve.setValue(e+0*ur,t[0],"i32"),Ve.setValue(e+1*ur,t[1],"i32"),Ve.setValue(e+2*ur,t[2],"i32"),Ve.setValue(e+3*ur,t[3],"i32")}yt(zi,"marshalTreeCursor");function iy(t){t[0]=Ve.getValue(nr+0*ur,"i32"),t[1]=Ve.getValue(nr+1*ur,"i32"),t[2]=Ve.getValue(nr+2*ur,"i32"),t[3]=Ve.getValue(nr+3*ur,"i32")}yt(iy,"unmarshalTreeCursor");function x0(t,e){Ve.setValue(t,e.row,"i32"),Ve.setValue(t+ur,e.column,"i32")}yt(x0,"marshalPoint");function SO(t){return{row:Ve.getValue(t,"i32")>>>0,column:Ve.getValue(t+ur,"i32")>>>0}}yt(SO,"unmarshalPoint");function Dil(t,e){x0(t,e.startPosition),t+=aQ,x0(t,e.endPosition),t+=aQ,Ve.setValue(t,e.startIndex,"i32"),t+=ur,Ve.setValue(t,e.endIndex,"i32"),t+=ur}yt(Dil,"marshalRange");function bCe(t){let e={};return e.startPosition=SO(t),t+=aQ,e.endPosition=SO(t),t+=aQ,e.startIndex=Ve.getValue(t,"i32")>>>0,t+=ur,e.endIndex=Ve.getValue(t,"i32")>>>0,e}yt(bCe,"unmarshalRange");function zil(t,e=nr){x0(e,t.startPosition),e+=aQ,x0(e,t.oldEndPosition),e+=aQ,x0(e,t.newEndPosition),e+=aQ,Ve.setValue(e,t.startIndex,"i32"),e+=ur,Ve.setValue(e,t.oldEndIndex,"i32"),e+=ur,Ve.setValue(e,t.newEndIndex,"i32"),e+=ur}yt(zil,"marshalEdit");function Pil(t){let e=Ve.getValue(t,"i32"),l=Ve.getValue(t+=ur,"i32"),n=Ve.getValue(t+=ur,"i32");return{major_version:e,minor_version:l,patch_version:n}}yt(Pil,"unmarshalLanguageMetadata");var RPn=1,YPn=2,VPn=/[\w-]+/g,rbI={Zero:0,ZeroOrOne:1,ZeroOrMore:2,One:3,OneOrMore:4},Uil=yt(t=>t.type==="capture","isCaptureStep"),xtt=yt(t=>t.type==="string","isStringStep"),ZY={Syntax:1,NodeName:2,FieldName:3,CaptureName:4,PatternStructure:5},Wbe=class jil extends Error{constructor(e,l,n,r){super(jil.formatMessage(e,l)),this.kind=e,this.info=l,this.index=n,this.length=r,this.name="QueryError"}static{yt(this,"QueryError")}static formatMessage(e,l){switch(e){case ZY.NodeName:return`Bad node name '${l.word}'`;case ZY.FieldName:return`Bad field name '${l.word}'`;case ZY.CaptureName:return`Bad capture name @${l.word}`;case ZY.PatternStructure:return`Bad pattern structure at offset ${l.suffix}`;case ZY.Syntax:return`Bad syntax at offset ${l.suffix}`}}};function Kil(t,e,l,n){if(t.length!==3)throw new Error(`Wrong number of arguments to \`#${l}\` predicate. Expected 2, got ${t.length-1}`);if(!Uil(t[1]))throw new Error(`First argument of \`#${l}\` predicate must be a capture. Got "${t[1].value}"`);let r=l==="eq?"||l==="any-eq?",a=!l.startsWith("any-");if(Uil(t[2])){let I=t[1].name,s=t[2].name;n[e].push(o=>{let c=[],d=[];for(let G of o)G.name===I&&c.push(G.node),G.name===s&&d.push(G.node);let m=yt((G,p,A)=>A?G.text===p.text:G.text!==p.text,"compare");return a?c.every(G=>d.some(p=>m(G,p,r))):c.some(G=>d.some(p=>m(G,p,r)))})}else{let I=t[1].name,s=t[2].value,o=yt(d=>d.text===s,"matches"),c=yt(d=>d.text!==s,"doesNotMatch");n[e].push(d=>{let m=[];for(let p of d)p.name===I&&m.push(p.node);let G=r?o:c;return a?m.every(G):m.some(G)})}}yt(Kil,"parseAnyPredicate");function qil(t,e,l,n){if(t.length!==3)throw new Error(`Wrong number of arguments to \`#${l}\` predicate. Expected 2, got ${t.length-1}.`);if(t[1].type!=="capture")throw new Error(`First argument of \`#${l}\` predicate must be a capture. Got "${t[1].value}".`);if(t[2].type!=="string")throw new Error(`Second argument of \`#${l}\` predicate must be a string. Got @${t[2].name}.`);let r=l==="match?"||l==="any-match?",a=!l.startsWith("any-"),I=t[1].name,s=new RegExp(t[2].value);n[e].push(o=>{let c=[];for(let m of o)m.name===I&&c.push(m.node.text);let d=yt((m,G)=>G?s.test(m):!s.test(m),"test");return c.length===0?!r:a?c.every(m=>d(m,r)):c.some(m=>d(m,r))})}yt(qil,"parseMatchPredicate");function $il(t,e,l,n){if(t.length<2)throw new Error(`Wrong number of arguments to \`#${l}\` predicate. Expected at least 1. Got ${t.length-1}.`);if(t[1].type!=="capture")throw new Error(`First argument of \`#${l}\` predicate must be a capture. Got "${t[1].value}".`);let r=l==="any-of?",a=t[1].name,I=t.slice(2);if(!I.every(xtt))throw new Error(`Arguments to \`#${l}\` predicate must be strings.".`);let s=I.map(o=>o.value);n[e].push(o=>{let c=[];for(let d of o)d.name===a&&c.push(d.node.text);return c.length===0?!r:c.every(d=>s.includes(d))===r})}yt($il,"parseAnyOfPredicate");function ecl(t,e,l,n,r){if(t.length<2||t.length>3)throw new Error(`Wrong number of arguments to \`#${l}\` predicate. Expected 1 or 2. Got ${t.length-1}.`);if(!t.every(xtt))throw new Error(`Arguments to \`#${l}\` predicate must be strings.".`);let a=l==="is?"?n:r;a[e]||(a[e]={}),a[e][t[1].value]=t[2]?.value??null}yt(ecl,"parseIsPredicate");function tcl(t,e,l){if(t.length<2||t.length>3)throw new Error(`Wrong number of arguments to \`#set!\` predicate. Expected 1 or 2. Got ${t.length-1}.`);if(!t.every(xtt))throw new Error('Arguments to `#set!` predicate must be strings.".');l[e]||(l[e]={}),l[e][t[1].value]=t[2]?.value??null}yt(tcl,"parseSetDirective");function lcl(t,e,l,n,r,a,I,s,o,c,d){if(e===RPn){let m=n[l];a.push({type:"capture",name:m})}else if(e===YPn)a.push({type:"string",value:r[l]});else if(a.length>0){if(a[0].type!=="string")throw new Error("Predicates must begin with a literal value");let m=a[0].value;switch(m){case"any-not-eq?":case"not-eq?":case"any-eq?":case"eq?":Kil(a,t,m,I);break;case"any-not-match?":case"not-match?":case"any-match?":case"match?":qil(a,t,m,I);break;case"not-any-of?":case"any-of?":$il(a,t,m,I);break;case"is?":case"is-not?":ecl(a,t,m,c,d);break;case"set!":tcl(a,t,o);break;default:s[t].push({operator:m,operands:a.slice(1)})}a.length=0}}yt(lcl,"parsePattern");var wPn=class{static{yt(this,"Query")}0=0;exceededMatchLimit;textPredicates;captureNames;captureQuantifiers;predicates;setProperties;assertedProperties;refutedProperties;matchLimit;constructor(t,e){let l=Ve.lengthBytesUTF8(e),n=Ve._malloc(l+1);Ve.stringToUTF8(e,n,l+1);let r=Ve._ts_query_new(t[0],n,l,nr,nr+ur);if(!r){let W=Ve.getValue(nr+ur,"i32"),R=Ve.getValue(nr,"i32"),V=Ve.UTF8ToString(n,R).length,v=e.slice(V,V+100).split(`
2451
2454
  `)[0],X=v.match(VPn)?.[0]??"";switch(Ve._free(n),W){case ZY.Syntax:throw new Wbe(ZY.Syntax,{suffix:`${V}: '${v}'...`},V,0);case ZY.NodeName:throw new Wbe(W,{word:X},V,X.length);case ZY.FieldName:throw new Wbe(W,{word:X},V,X.length);case ZY.CaptureName:throw new Wbe(W,{word:X},V,X.length);case ZY.PatternStructure:throw new Wbe(W,{suffix:`${V}: '${v}'...`},V,0)}}let a=Ve._ts_query_string_count(r),I=Ve._ts_query_capture_count(r),s=Ve._ts_query_pattern_count(r),o=new Array(I),c=new Array(s),d=new Array(a);for(let W=0;W<I;W++){let R=Ve._ts_query_capture_name_for_id(r,W,nr),V=Ve.getValue(nr,"i32");o[W]=Ve.UTF8ToString(R,V)}for(let W=0;W<s;W++){let R=new Array(I);for(let V=0;V<I;V++){let v=Ve._ts_query_capture_quantifier_for_id(r,W,V);R[V]=v}c[W]=R}for(let W=0;W<a;W++){let R=Ve._ts_query_string_value_for_id(r,W,nr),V=Ve.getValue(nr,"i32");d[W]=Ve.UTF8ToString(R,V)}let m=new Array(s),G=new Array(s),p=new Array(s),A=new Array(s),Z=new Array(s);for(let W=0;W<s;W++){let R=Ve._ts_query_predicates_for_pattern(r,W,nr),V=Ve.getValue(nr,"i32");A[W]=[],Z[W]=[];let v=new Array,X=R;for(let S=0;S<V;S++){let O=Ve.getValue(X,"i32");X+=ur;let T=Ve.getValue(X,"i32");X+=ur,lcl(W,O,T,o,d,v,Z,A,m,G,p)}Object.freeze(Z[W]),Object.freeze(A[W]),Object.freeze(m[W]),Object.freeze(G[W]),Object.freeze(p[W])}Ve._free(n),this[0]=r,this.captureNames=o,this.captureQuantifiers=c,this.textPredicates=Z,this.predicates=A,this.setProperties=m,this.assertedProperties=G,this.refutedProperties=p,this.exceededMatchLimit=!1}delete(){Ve._ts_query_delete(this[0]),this[0]=0}matches(t,e={}){let l=e.startPosition??tJ,n=e.endPosition??tJ,r=e.startIndex??0,a=e.endIndex??0,I=e.matchLimit??4294967295,s=e.maxStartDepth??4294967295,o=e.timeoutMicros??0,c=e.progressCallback;if(typeof I!="number")throw new Error("Arguments must be numbers");if(this.matchLimit=I,a!==0&&r>a)throw new Error("`startIndex` cannot be greater than `endIndex`");if(n!==tJ&&(l.row>n.row||l.row===n.row&&l.column>n.column))throw new Error("`startPosition` cannot be greater than `endPosition`");c&&(Ve.currentQueryProgressCallback=c),za(t),Ve._ts_query_matches_wasm(this[0],t.tree[0],l.row,l.column,n.row,n.column,r,a,I,s,o);let d=Ve.getValue(nr,"i32"),m=Ve.getValue(nr+ur,"i32"),G=Ve.getValue(nr+2*ur,"i32"),p=new Array(d);this.exceededMatchLimit=!!G;let A=0,Z=m;for(let W=0;W<d;W++){let R=Ve.getValue(Z,"i32");Z+=ur;let V=Ve.getValue(Z,"i32");Z+=ur;let v=new Array(V);if(Z=Ltt(this,t.tree,Z,R,v),this.textPredicates[R].every(X=>X(v))){p[A]={pattern:R,patternIndex:R,captures:v};let X=this.setProperties[R];p[A].setProperties=X;let S=this.assertedProperties[R];p[A].assertedProperties=S;let O=this.refutedProperties[R];p[A].refutedProperties=O,A++}}return p.length=A,Ve._free(m),Ve.currentQueryProgressCallback=null,p}captures(t,e={}){let l=e.startPosition??tJ,n=e.endPosition??tJ,r=e.startIndex??0,a=e.endIndex??0,I=e.matchLimit??4294967295,s=e.maxStartDepth??4294967295,o=e.timeoutMicros??0,c=e.progressCallback;if(typeof I!="number")throw new Error("Arguments must be numbers");if(this.matchLimit=I,a!==0&&r>a)throw new Error("`startIndex` cannot be greater than `endIndex`");if(n!==tJ&&(l.row>n.row||l.row===n.row&&l.column>n.column))throw new Error("`startPosition` cannot be greater than `endPosition`");c&&(Ve.currentQueryProgressCallback=c),za(t),Ve._ts_query_captures_wasm(this[0],t.tree[0],l.row,l.column,n.row,n.column,r,a,I,s,o);let d=Ve.getValue(nr,"i32"),m=Ve.getValue(nr+ur,"i32"),G=Ve.getValue(nr+2*ur,"i32"),p=new Array;this.exceededMatchLimit=!!G;let A=new Array,Z=m;for(let W=0;W<d;W++){let R=Ve.getValue(Z,"i32");Z+=ur;let V=Ve.getValue(Z,"i32");Z+=ur;let v=Ve.getValue(Z,"i32");if(Z+=ur,A.length=V,Z=Ltt(this,t.tree,Z,R,A),this.textPredicates[R].every(X=>X(A))){let X=A[v],S=this.setProperties[R];X.setProperties=S;let O=this.assertedProperties[R];X.assertedProperties=O;let T=this.refutedProperties[R];X.refutedProperties=T,p.push(X)}}return Ve._free(m),Ve.currentQueryProgressCallback=null,p}predicatesForPattern(t){return this.predicates[t]}disableCapture(t){let e=Ve.lengthBytesUTF8(t),l=Ve._malloc(e+1);Ve.stringToUTF8(t,l,e+1),Ve._ts_query_disable_capture(this[0],l,e),Ve._free(l)}disablePattern(t){if(t>=this.predicates.length)throw new Error(`Pattern index is ${t} but the pattern count is ${this.predicates.length}`);Ve._ts_query_disable_pattern(this[0],t)}didExceedMatchLimit(){return this.exceededMatchLimit}startIndexForPattern(t){if(t>=this.predicates.length)throw new Error(`Pattern index is ${t} but the pattern count is ${this.predicates.length}`);return Ve._ts_query_start_byte_for_pattern(this[0],t)}endIndexForPattern(t){if(t>=this.predicates.length)throw new Error(`Pattern index is ${t} but the pattern count is ${this.predicates.length}`);return Ve._ts_query_end_byte_for_pattern(this[0],t)}patternCount(){return Ve._ts_query_pattern_count(this[0])}captureIndexForName(t){return this.captureNames.indexOf(t)}isPatternRooted(t){return Ve._ts_query_is_pattern_rooted(this[0],t)===1}isPatternNonLocal(t){return Ve._ts_query_is_pattern_non_local(this[0],t)===1}isPatternGuaranteedAtStep(t){return Ve._ts_query_is_pattern_guaranteed_at_step(this[0],t)===1}},QPn=/^tree_sitter_\w+$/,Stt=class ncl{static{yt(this,"Language")}0=0;types;fields;constructor(e,l){R7(e),this[0]=l,this.types=new Array(Ve._ts_language_symbol_count(this[0]));for(let n=0,r=this.types.length;n<r;n++)Ve._ts_language_symbol_type(this[0],n)<2&&(this.types[n]=Ve.UTF8ToString(Ve._ts_language_symbol_name(this[0],n)));this.fields=new Array(Ve._ts_language_field_count(this[0])+1);for(let n=0,r=this.fields.length;n<r;n++){let a=Ve._ts_language_field_name_for_id(this[0],n);a!==0?this.fields[n]=Ve.UTF8ToString(a):this.fields[n]=null}}get name(){let e=Ve._ts_language_name(this[0]);return e===0?null:Ve.UTF8ToString(e)}get version(){return Ve._ts_language_version(this[0])}get abiVersion(){return Ve._ts_language_abi_version(this[0])}get metadata(){Ve._ts_language_metadata(this[0]);let e=Ve.getValue(nr,"i32"),l=Ve.getValue(nr+ur,"i32");return e===0?null:Pil(l)}get fieldCount(){return this.fields.length-1}get stateCount(){return Ve._ts_language_state_count(this[0])}fieldIdForName(e){let l=this.fields.indexOf(e);return l!==-1?l:null}fieldNameForId(e){return this.fields[e]??null}idForNodeType(e,l){let n=Ve.lengthBytesUTF8(e),r=Ve._malloc(n+1);Ve.stringToUTF8(e,r,n+1);let a=Ve._ts_language_symbol_for_name(this[0],r,n,l?1:0);return Ve._free(r),a||null}get nodeTypeCount(){return Ve._ts_language_symbol_count(this[0])}nodeTypeForId(e){let l=Ve._ts_language_symbol_name(this[0],e);return l?Ve.UTF8ToString(l):null}nodeTypeIsNamed(e){return!!Ve._ts_language_type_is_named_wasm(this[0],e)}nodeTypeIsVisible(e){return!!Ve._ts_language_type_is_visible_wasm(this[0],e)}get supertypes(){Ve._ts_language_supertypes_wasm(this[0]);let e=Ve.getValue(nr,"i32"),l=Ve.getValue(nr+ur,"i32"),n=new Array(e);if(e>0){let r=l;for(let a=0;a<e;a++)n[a]=Ve.getValue(r,"i16"),r+=Oil}return n}subtypes(e){Ve._ts_language_subtypes_wasm(this[0],e);let l=Ve.getValue(nr,"i32"),n=Ve.getValue(nr+ur,"i32"),r=new Array(l);if(l>0){let a=n;for(let I=0;I<l;I++)r[I]=Ve.getValue(a,"i16"),a+=Oil}return r}nextState(e,l){return Ve._ts_language_next_state(this[0],e,l)}lookaheadIterator(e){let l=Ve._ts_lookahead_iterator_new(this[0],e);return l?new NPn(lJ,l,this):null}query(e){return console.warn("Language.query is deprecated. Use new Query(language, source) instead."),new wPn(this,e)}static async load(e){let l;e instanceof Uint8Array?l=Promise.resolve(e):globalThis.process?.versions.node?l=(await import("fs/promises")).readFile(e):l=fetch(e).then(s=>s.arrayBuffer().then(o=>{if(s.ok)return new Uint8Array(o);{let c=new TextDecoder("utf-8").decode(o);throw new Error(`Language.load failed with status ${s.status}.
2452
2455
 
2453
2456
  ${c}`)}}));let n=await Ve.loadWebAssemblyModule(await l,{loadAsync:!0}),r=Object.keys(n),a=r.find(s=>QPn.test(s)&&!s.includes("external_scanner_"));if(!a)throw console.log(`Couldn't find language function in WASM file. Symbols:
@@ -2467,7 +2470,7 @@ Run `+Sl.cyan("{updateCommand}")+" to update",a=e.message||r;e.boxenOptions??={p
2467
2470
  `||V[O-1]===" "){X=O;break}}else if(T===" "||T===`
2468
2471
  `||T===" ")break}if(X===-1)return{isAtMention:!1,atPosition:-1,query:""};let S=V.slice(X+1,v);return S.includes(" ")||S.includes(`
2469
2472
  `)||S.includes(" ")?{isAtMention:!1,atPosition:-1,query:""}:{isAtMention:!0,atPosition:X,query:S}},[t.text,t.cursorPosition]);(0,cJ.useEffect)(()=>{if(!d.isAtMention){r([]),I(0);return}let V=!1,v=async()=>{try{let S=await c.search(d.query),O=[...S];d.query===""&&l&&(O=[...l.getDirectories().map(x=>({path:x,relativePath:`[DIR] ${x}`,score:1})),...S]),V||(r(O),I(0))}catch{V||(r([]),I(0))}},X=setTimeout(()=>{v()},200);return()=>{V=!0,clearTimeout(X)}},[d.query,d.isAtMention,c]);let m=()=>{n.length!==0&&I(V=>V>0?V-1:n.length-1)},G=()=>{n.length!==0&&I(V=>V<n.length-1?V+1:0)},p=()=>{if(!d.isAtMention||n.length===0)return null;let V=n[a];if(!V)return null;let v=`@${V.relativePath}`,X=`${v} `,{text:S,cursorPosition:O}=t,T=S.slice(0,d.atPosition),P=S.slice(O),x=T+X+P,D={displayText:v,fullPath:V.path,type:V.relativePath.startsWith("[DIR]")?"directory":"file",startIndex:d.atPosition};return o(ae=>{let Ge=new Map(ae);return Ge.set(D.startIndex,D),Ge}),t.setText(x),t.setCursorPosition(d.atPosition+X.length),V.relativePath},A=()=>{r([]),I(0)},Z=()=>{o(new Map)};return[{isActive:d.isAtMention&&n.length>0,query:d.query,suggestions:n,selectedIndex:a,atPosition:d.atPosition,storedMentions:s},{navigateUp:m,navigateDown:G,complete:p,reset:A,clearStoredMentions:Z}]}var Gve=$e($t(),1),IGl=$e(nBe(),1);import{readdir as n7n,readFile as r7n}from"node:fs/promises";import a7n,{join as aGl}from"node:path";function lU(t,e){if(e instanceof Error)return`${t}: ${e.message}`;if(typeof e=="object"&&e!==null)try{return`${t}: ${JSON.stringify(e)}`}catch{return`${t}: [object with circular reference]`}else return`${t}: ${String(e)}`}var bve=$e($t(),1);var eGl=$e($bl(),1);function Rnt(t){try{let e=(0,eGl.default)(t.FetchURL);return e.source!=="github.com"||!e.owner||!e.name?null:{owner:e.owner,name:e.name,host:"github.com"}}catch{return null}}async function mve(t){let e=await YPt(t);if(e.length===0)return null;if(e.length===1)return Rnt(e[0]);let l=e.find(n=>n.Name==="origin");return Rnt(l||e[0])}function tGl(t){let[e,l]=(0,bve.useState)(null);return(0,bve.useEffect)(()=>{(async()=>{let n=await Ynt(t);l(r=>!r||r.kind!==n.kind||r.path!==n.path||n.kind==="git"&&r.kind==="git"&&(r.repo?.owner!==n.repo?.owner||r.repo?.name!==n.repo?.name)?n:r)})()},[t]),e}async function Ynt(t){let e=await uY(t);if(!e.found)return{kind:"plain",path:t};try{let l=await mve(e.gitRoot);return{kind:"git",path:e.gitRoot,repo:l}}catch{return{kind:"git",path:e.gitRoot,repo:null}}}function sGl(t,e,l,n,r,a){let[I,s]=(0,Gve.useState)({selected:null,available:[],warnings:[]}),o=tGl(a);return(0,Gve.useEffect)(()=>{if(!t)return;(async()=>{let{agents:d,warnings:m}=await Vnt(e,l,n,a7n.join(r,"agents"),o);s({selected:null,available:d,warnings:m})})()},[t,e,l,n,r,o]),{customAgents:I,selectCustomAgent:async c=>{if(!t)throw new Error("attempted to use disabled feature flagged feature");let d=I.available.find(G=>G.id===c);if(!d)throw new Error(`attempted to select unknown custom agent: ${c} from ${I.available.map(G=>G.id).join(", ")}`);let m=await d.prompt().then(G=>({kind:"success",prompt:G}),G=>({kind:"error",message:lU("loading custom agent prompt",G)}));return m.kind==="error"?{kind:"error",message:m.message}:(s(G=>({...G,selected:{id:d.id,displayName:d.displayName,prompt:m.prompt,mcpServers:d.mcpServers}})),{kind:"success"})}}}function lGl(t){let e=new Set,l=[];for(let n of t)e.has(n.id)||(e.add(n.id),l.push(n));return l}async function Vnt(t,e,l,n,r){let a=await nGl(n);if(r===null)return{agents:a.agents,warnings:a.warnings};let I=await nGl(aGl(r.path,".github","agents")),s=lGl([...a.agents,...I.agents]),o=[...a.warnings,...I.warnings];if(r.kind!=="git")return{agents:s,warnings:o};if(!r.repo)return{agents:s,warnings:[...o,"could not load remote agents, no github.com remote found"]};if(!l)return{agents:s,warnings:[...o,O7(r.repo,"no authentication available")]};let c=await I7n(t,e,l,r.repo);return{agents:lGl([...s,...c.agents]),warnings:[...o,...c.warnings]}}function O7(t,e){return`could not load remote agents for ${t.owner}/${t.name}: ${e}`}async function I7n(t,e,l,n){let r=iY(l,{onHMACAuthInfo:()=>Mte,onEnvAuthInfo:A=>A.host,onGhCliAuthInfo:A=>A.host,onUserAuthInfo:A=>A.host,onApiKeyAuthInfo:A=>A.host}),{host:a}=new URL(r);if(a!=="github.com")return{agents:[],warnings:[O7(n,"auth info does not target github.com")]};let I=await Iy(l);if(!I)return{agents:[],warnings:[O7(n,"no usable token for accessing repo contents found")]};let s=await oGl(()=>E0(r,I,t),A=>lU("fetching copilot URL",A));if(s.kind==="error")return{agents:[],warnings:[O7(n,s.message)]};let o=`${s.value}/agents/swe/custom-agents/${n.owner}/${n.name}?exclude_invalid_config=true`,c={Authorization:`Bearer ${I}`},d=await ZC(o,{method:"GET",headers:c},t);if(!d.ok)return t.warning(`Failed to load custom agents for ${n.owner}/${n.name}: ${await d.text()}`),{agents:[],warnings:[O7(n,`server returned ${d.status}: ${d.statusText}`)]};let m=await d.json(),p=UI.object({agents:UI.array(cGl)}).safeParse(m);return p.success?{agents:p.data.agents.map(A=>({id:A.name,displayName:A.display_name,description:A.description,tools:A.tools,prompt:async()=>{let Z=await u7n({logger:t,integrationId:e,sweAgentsEndpoint:`${s.value}/agents/swe`,token:I,repoOwner:A.repo_owner,repoName:A.repo_name,customAgentName:A.name});if(!Z)throw new Error(`Failed to load prompt for agent ${A.name}`);return Z.prompt},mcpServers:{}})),warnings:[]}:{agents:[],warnings:[O7(n,lU("parsing http response into schema",p.error))]}}async function nGl(t){let e=await n7n(t,{withFileTypes:!0}).then(r=>({kind:"success",dirEntries:r})).catch(r=>r.code==="ENOENT"?{kind:"success",dirEntries:[]}:{kind:"error",message:lU(t,r)});if(e.kind==="error")return{agents:[],warnings:[]};let l=[],n=[];for(let r of e.dirEntries)if(r.isFile()&&r.name.endsWith(".md")){let a=aGl(t,r.name),I=r.name.slice(0,-3),s=await rGl(a);if(s.kind==="error"){n.push(s.message);continue}l.push({id:I,displayName:s.agent.name,description:s.agent.description,tools:s.agent.tools||["*"],prompt:async()=>{let o=await rGl(a);if(o.kind==="error")throw new Error(o.message);return await o.agent.prompt()},mcpServers:s.agent.mcpServers||{}})}return{agents:l,warnings:n}}async function rGl(t){let e=await oGl(()=>r7n(t,"utf-8"),n=>lU(t,n));if(e.kind==="error")return{kind:"error",message:e.message};let l=s7n(e.value);return l.kind==="error"?{kind:"error",message:`${t}: ${l.message}`}:{kind:"success",agent:l.agent}}var s7n=t=>{let e=UI.object({name:UI.string(),description:UI.string(),tools:UI.array(UI.string()).optional(),"mcp-servers":iGl}),l=/^---\s*\n([\s\S]*?)\n---\s*\n?/,n=t.match(l);if(!n)return{kind:"error",message:"custom agent markdown frontmatter is malformed"};let r=n[1];try{let a=(0,IGl.parse)(r),I=e.safeParse(a);if(!I.success)return{kind:"error",message:o7n(I.error)};let s=t.slice(n[0].length);return{kind:"success",agent:{name:I.data.name,description:I.data.description,tools:I.data.tools||["*"],prompt:()=>Promise.resolve(s),mcpServers:I.data["mcp-servers"]||void 0}}}catch(a){return{kind:"error",message:lU("failed to parse front matter",a)}}};function o7n(t){let e=(l,n="")=>{let r=l.path.join(".")||"(root)",a=[];return l.code==="invalid_union"&&"unionErrors"in l?(a.push(`${n}${r}: ${l.message}`),l.unionErrors.forEach((s,o)=>{a.push(`${n} Option ${o+1}:`),s.issues.forEach(c=>{a.push(...e(c,n+" "))})})):a.push(`${n}${r}: ${l.message}`),a};return t.issues.flatMap(l=>e(l)).join(`
2470
- `)}async function oGl(t,e){try{return{kind:"success",value:await t()}}catch(l){return{kind:"error",message:e(l)}}}var i7n=UI.object({command:UI.string(),args:UI.array(UI.string()),env:UI.record(UI.string(),UI.string()).optional(),tools:UI.array(UI.string()),type:UI.enum(["local","stdio"]).optional()}),c7n=UI.object({url:UI.string(),headers:UI.record(UI.string(),UI.string()).optional(),tools:UI.array(UI.string()),type:UI.enum(["http","sse"])}),iGl=UI.record(UI.string(),UI.union([i7n,c7n])).optional().nullable(),cGl=UI.object({name:UI.string(),repo_owner:UI.string(),repo_name:UI.string(),display_name:UI.string(),description:UI.string(),tools:UI.array(UI.string()),version:UI.string(),mcp_servers:iGl}),d7n=cGl.extend({prompt:UI.string()});async function u7n(t){t.logger.info(`Reading custom agent "${t.customAgentName}" from ${t.repoOwner}/${t.repoName}`);try{let e={"Copilot-Integration-Id":t.integrationId,Authorization:`Bearer ${t.token}`,"X-GitHub-Job-Nonce":t.jobNonce??""},l=await ZC(`${t.sweAgentsEndpoint}/custom-agents/${t.repoOwner}/${t.repoName}/${t.customAgentName}`,{method:"GET",headers:e},t.logger,"get custom agent config");if(!l.ok){if(l.status===404)return null;throw new Error(`Failed to get custom agent config: ${l.status} ${l.statusText}`)}let n=await l.json();return d7n.parse(n)}catch(e){let l=e,n=l?.requestId||"unknown";throw t.logger.error(`Failed to get custom agent config (request ID: ${n}): ${l}`),l}}var uy=$e($t(),1);function dGl(t){let{cliModel:e,session:l,currentWorkingDirectory:n,customAgentName:r,stdoutColumns:a,models:I}=t,[s,o]=(0,uy.useState)({gitRoot:"",found:!1}),[c,d]=(0,uy.useState)(null);(0,uy.useEffect)(()=>{(async()=>{d(null);let V=await uY(n);o(V)})()},[n]);let m=(0,uy.useCallback)(async()=>{if(!s.found){d(null);return}let R=await wPt(s.gitRoot);if(!R){d(null);return}let V=await VPt(s.gitRoot);d(v=>v?.branch===R&&v?.hasChanges===V?v:{branch:R,hasChanges:V})},[s]),G=(0,uy.useMemo)(()=>CEe(n),[n]),[p,A]=(0,uy.useState)("");(0,uy.useEffect)(()=>{(async()=>{if(!I||I.type!=="success")return;let V=await iO(e,l,I.list);V&&A(v=>v===V?v:V)})()},[e,l,I]);let Z=(0,uy.useMemo)(()=>{if(!c||!c.branch)return null;let R=a||80,V=p.length,v=r?.length||0,X=G.length,S=c.hasChanges?6:5,T=V+X+S+4+v,x=Math.max(8,R-T)-3;return`[\u2387 ${c.branch.length>x?c.branch.substring(0,x)+"...":c.branch}${c.hasChanges?"*":""}]`},[c,a,G,p]),W=(0,uy.useMemo)(()=>{if(!p)return p;let R=I&&I.type==="success"?I.list:void 0,V=Qq(p,R);return`${p} (${V}x)`},[p,I]);return{displayCwd:G,gitBranchInfo:Z,selectedModel:p,selectedModelDisplay:W,setSelectedModel:A,updateGitStatus:m}}var fg=$e($t(),1),m7n=3*1e3;function uGl(){let[t,e]=(0,fg.useState)("idle"),[l,n]=(0,fg.useState)(0),[r,a]=(0,fg.useState)(0),[I,s]=(0,fg.useState)(!1),o=(0,fg.useRef)(null);(0,fg.useEffect)(()=>()=>{o.current&&clearTimeout(o.current)},[]);let c=(0,fg.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null),e("indexing"),n(0),a(0),s(!0)},[]),d=(0,fg.useCallback)((A,Z)=>{e("completed"),n(A),a(Z),s(!0),o.current=setTimeout(()=>{s(!1),o.current=null},m7n)},[]),m=(0,fg.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null),e("idle"),n(0),a(0),s(!1)},[]),G={state:t,fileCount:l,durationMs:r,isVisible:I},p=(0,fg.useMemo)(()=>({startIndexing:c,completeIndexing:d,reset:m}),[c,d,m]);return[G,p]}var mGl=$e($t(),1);function bGl(t,e){(0,mGl.useEffect)(()=>{if(t)return t.on("assistant.message",l=>{if(l.data.toolRequests){for(let n of l.data.toolRequests)if(n.name===WE.name){let r=n.arguments.intent;r&&e(r)}}})},[t,e])}var pve=$e($t(),1);var nGe=class{hosts=new Map;logger;constructor(e){this.logger=e}async getOrCreateHost(e,l){if(!l||Object.keys(l).length===0)return;let n=this.hosts.get(e);if(n)return n;try{let r={mcpServers:l},a=new HL(this.logger,r);return await a.startServers(),this.hosts.set(e,a),this.logger.info(`Started ${Object.keys(l).length} MCP server(s) for ${e}`),a}catch(r){this.logger.error(`Failed to start MCP servers for ${e}: ${r}`);return}}getHost(e){return this.hosts.get(e)}async cleanup(){let e=[];for(let[l,n]of this.hosts.entries())e.push(n.stopServers().catch(r=>{this.logger.error(`Error stopping MCP host for ${l}: ${r}`)}));await Promise.all(e),this.hosts.clear()}size(){return this.hosts.size}};function GGl(t){let e=(0,pve.useRef)(null);return e.current||(e.current=new nGe(t)),(0,pve.useEffect)(()=>()=>{e.current&&e.current.cleanup().catch(l=>{t.error(`Error cleaning up MCP host cache: ${l}`)})},[t]),e.current}var hve=$e($t(),1);function pGl(t,e,l,n){let[r,a]=(0,hve.useState)();return(0,hve.useEffect)(()=>{async function I(){if(!l)return;let s=await wnt(t,e,l,n);a(s)}I()},[l,e,n]),{models:r}}async function wnt(t,e,l,n){if(xL())return{type:"success",list:[]};try{if(l.type==="hmac")return{type:"success",list:await yT.createWithHmac(t,Mte,n,l.hmac,e).listModels()};let r=await Iy(l);if(!r)return{type:"noauth"};let a=await E0(l.host,r,t);return{type:"success",list:await yT.createWithOAuthToken(t,a,n,r,e).listModels()}}catch(r){return{type:"error",error:r}}}var dQ=$e($t(),1);function hGl(t=3){let[e,l]=(0,dQ.useState)(!1),n=(0,dQ.useRef)(null),r=(0,dQ.useRef)(t*1e3);(0,dQ.useEffect)(()=>{r.current=t*1e3},[t]),(0,dQ.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]);let a=(0,dQ.useCallback)(I=>{n.current&&(clearTimeout(n.current),n.current=null),l(!0);let s=I!==void 0?I*1e3:r.current;n.current=setTimeout(()=>{l(!1),n.current=null},s)},[]);return[e,a]}var rGe=$e($t(),1);function AGl({builtInSlashCommands:t,logger:e,currentWorkingDirectory:l,setCurrentWorkingDirectory:n,fileSearch:r,authManager:a,mcpHost:I,loginStatus:s,setLoginStatus:o,addEntryToSession:c,clearSessionHistory:d,getSessionUsageOutput:m,pathManager:G,resetSessionToolApprovals:p,clearTimeline:A,clearHeader:Z,clearContextWindowMetrics:W,setThemePreference:R,refreshStatic:V,hasAvailableCustomAgents:v,slashCommandResultActions:X}){let S=(0,rGe.useMemo)(()=>({logger:e,slashCommands:t,hasAvailableCustomAgents:v,mcp:{host:I,config:async()=>await dY.load()||{mcpServers:{}},hasServer:async P=>(await S.mcp.config())?.mcpServers[P]!==void 0,deleteServer:async P=>{let x=await S.mcp.config();delete x.mcpServers[P],await dY.write(x)}},auth:{availableAuthMethods:()=>tPt(a,s.authInfo),loginStatus:s,logout:async()=>{let P=await a.logout();return o({status:"NotLoggedIn"}),P}},session:{addTimelineEntry:c,clearHistory:d,usageOutput:m},permissions:{allowedDirs:G.getDirectories.bind(G),addAllowedDirectory:G.addDirectory.bind(G),resetSessionToolApprovals:p},process:{cwd:l,chdir:async P=>{process.chdir(P),await G.updatePrimaryDirectory(P),n(P),await r.setRootPath(P)}},ui:{getThemePreference:Dwe,setThemePreference:R,clear:()=>{A(),Z(),W(),V()}}}),[t,e,l,n,r,a,I,s,o,c,d,m,G,p,Z,W,R,V,v]),O=(0,rGe.useCallback)(async P=>{let x=_c(()=>{let K=P.trim();return K==="?"?"/help":K});if(!x.startsWith("/"))return{handled:!1};let D=x.split(" ")[0],ae=t.find(K=>K.name===D||K.aliases?.includes(D));if(!ae)return{handled:!1};let Ge=x.substring(ae.name.length).trim().split(" ").filter(K=>K),he=await ae.execute(S,Ge);if(!he)return{handled:!0};switch(he.kind){case"exit":return X.exit(),{handled:!0};case"add-timeline-entry":return c(he.entry),{handled:!0};case"show-dialog":switch(he.dialog.kind){case"custom-agent-picker":X.showCustomAgentPickerDialog();break;case"feedback":X.showFeedbackDialog();break;case"login":X.showLoginDialog();break;case"mcp":X.showMCPDialog(he.dialog.mode,he.dialog.serverName);break;case"model-picker":X.showModelPickerDialog();break;case"session":X.showSessionDialog();break;case"user-switcher":X.showUserSwitcherDialog();break;default:wo(he.dialog,`Unknown dialog kind: ${he.dialog}`)}return{handled:!0};case"set-model":return await X.setModel(he.model),{handled:!0};case"noop":return{handled:!0};case"start-remote-delegate":return X.startRemoteDelegation(he.prompt),{handled:!0};default:wo(he,`Unknown slash command result kind: ${he}`)}},[t,c,X,S]),T=(0,rGe.useCallback)(P=>yme(t,P),[t]);return{slashCommands:t,handleSlashCommand:O,matchingSlashCommands:T}}var Ave=$e($t(),1);function gGl(t,e,l){let n=(0,Ave.useMemo)(()=>new Map,[]);(0,Ave.useEffect)(()=>{(async()=>{if(Object.keys(t).length===0||t.staff!==void 0||!e)return;let a=await Iy(e),I=e.type==="hmac"?void 0:e.host;if(!a||I!==kL)return;let s=n.get(a)??ozt(I,a).catch(()=>!1);n.set(a,s),await s&&(await Sr.writeKey("staff",!0),await Sr.writeKey("log_level","all"),l({type:"info",text:"Staff mode activated! Restart the app to enable staff features \u2728"}))})()},[t,e,l])}var dJ=$e($t(),1);function ZGl(t,e,l){let[n,r]=(0,dJ.useState)(null),a=(0,dJ.useRef)("");return(0,dJ.useEffect)(()=>{e.text!==a.current&&(n?.availableOptions.some(o=>e.text===o.name)||r(null),a.current=e.text)},[e.text,n]),{handleTabCompletion:(0,dJ.useCallback)(()=>{let s=o=>{let c=o.indexOf(" ");return c===-1?!1:o.slice(c+1).trim().length>0};if(n){if(s(e.text)){r(null);return}let o=(n.currentIndex+1)%n.availableOptions.length,c=n.availableOptions[o];e.setText(c.name),r({...n,currentIndex:o}),l.setSlashCommandPickerIndex(o)}else{if(s(e.text))return;let o=yme(t,e.text);if(o.length===1){let c=o[0],d=c.name;for(let m=d.length-1;m>=2;m--){let G=d.slice(0,m),p=yme(t,G);if(p.length>1){let A=p.findIndex(R=>R.name===c.name);r({originalInput:G,availableOptions:p,currentIndex:A>=0?A:0});let Z=(A+1)%p.length,W=p[Z];e.setText(W.name),r({originalInput:G,availableOptions:p,currentIndex:Z}),l.setSlashCommandPickerIndex(Z);return}}}o.length>1?(r({originalInput:e.text,availableOptions:o,currentIndex:0}),e.setText(o[0].name),l.setSlashCommandPickerIndex(0)):o.length===1&&e.setText(o[0].name)}},[n,e,l]),tabCyclingState:n}}var tH=$e($t(),1);function NGl(){let[t,e]=(0,tH.useState)({columns:process.stdout.columns,rows:process.stdout.rows}),l=(0,tH.useRef)(()=>{}),n=(0,tH.useCallback)(a=>{l.current=a||(()=>{})},[]),r=(0,tH.useCallback)(()=>{let{columns:a,rows:I}=process.stdout;e({columns:a,rows:I}),l.current(a,I)},[]);return(0,tH.useEffect)(()=>(process.stdout.on("resize",r),()=>{process.stdout.off("resize",r)}),[]),{...t,setOnResize:n}}var M7=$e($t(),1);var uJ=t=>/\s/.test(t);function b7n(t,e){if(e>=t.length)return t.length;let l=e;for(;l<t.length&&uJ(t[l]);)l+=t[l].length;for(;l<t.length&&!uJ(t[l]);)l+=t[l].length;return l}function WGl(t,e){if(e===0)return 0;let l=e-1;for(;l>=0&&uJ(t[l]);)l-=t[l].length;if(l<0)return 0;for(;l>=0&&!uJ(t[l]);)l-=t[l].length;return l+1}function G7n(t,e){if(e>=t.length)return t.length;let l=e;for(;l<t.length&&!uJ(t[l]);)l+=t[l].length;for(;l<t.length&&uJ(t[l]);)l+=t[l].length;return l}function nU(t,e){if(e<=0)return[t];let l=t.split(`
2473
+ `)}async function oGl(t,e){try{return{kind:"success",value:await t()}}catch(l){return{kind:"error",message:e(l)}}}var i7n=UI.object({command:UI.string(),args:UI.array(UI.string()),env:UI.record(UI.string(),UI.string()).optional(),tools:UI.array(UI.string()),type:UI.enum(["local","stdio"]).optional()}),c7n=UI.object({url:UI.string(),headers:UI.record(UI.string(),UI.string()).optional(),tools:UI.array(UI.string()),type:UI.enum(["http","sse"])}),iGl=UI.record(UI.string(),UI.union([i7n,c7n])).optional().nullable(),cGl=UI.object({name:UI.string(),repo_owner:UI.string(),repo_name:UI.string(),display_name:UI.string(),description:UI.string(),tools:UI.array(UI.string()),version:UI.string(),mcp_servers:iGl}),d7n=cGl.extend({prompt:UI.string()});async function u7n(t){t.logger.info(`Reading custom agent "${t.customAgentName}" from ${t.repoOwner}/${t.repoName}`);try{let e={"Copilot-Integration-Id":t.integrationId,Authorization:`Bearer ${t.token}`,"X-GitHub-Job-Nonce":t.jobNonce??""},l=await ZC(`${t.sweAgentsEndpoint}/custom-agents/${t.repoOwner}/${t.repoName}/${t.customAgentName}`,{method:"GET",headers:e},t.logger,"get custom agent config");if(!l.ok){if(l.status===404)return null;throw new Error(`Failed to get custom agent config: ${l.status} ${l.statusText}`)}let n=await l.json();return d7n.parse(n)}catch(e){let l=e,n=l?.requestId||"unknown";throw t.logger.error(`Failed to get custom agent config (request ID: ${n}): ${l}`),l}}var uy=$e($t(),1);function dGl(t){let{cliModel:e,session:l,currentWorkingDirectory:n,customAgentName:r,stdoutColumns:a,models:I}=t,[s,o]=(0,uy.useState)({gitRoot:"",found:!1}),[c,d]=(0,uy.useState)(null);(0,uy.useEffect)(()=>{(async()=>{d(null);let V=await uY(n);o(V)})()},[n]);let m=(0,uy.useCallback)(async()=>{if(!s.found){d(null);return}let R=await wPt(s.gitRoot);if(!R){d(null);return}let V=await VPt(s.gitRoot);d(v=>v?.branch===R&&v?.hasChanges===V?v:{branch:R,hasChanges:V})},[s]),G=(0,uy.useMemo)(()=>CEe(n),[n]),[p,A]=(0,uy.useState)("");(0,uy.useEffect)(()=>{(async()=>{if(!I||I.type!=="success")return;let V=await iO(e,l,I.list);V&&A(v=>v===V?v:V)})()},[e,l,I]);let Z=(0,uy.useMemo)(()=>{if(!c||!c.branch)return null;let R=a||80,V=p.length,v=r?.length||0,X=G.length,S=c.hasChanges?6:5,T=V+X+S+4+v,x=Math.max(8,R-T)-3;return`[\u2387 ${c.branch.length>x?c.branch.substring(0,x)+"...":c.branch}${c.hasChanges?"*":""}]`},[c,a,G,p]),W=(0,uy.useMemo)(()=>{if(!p)return p;let R=I&&I.type==="success"?I.list:void 0,V=Qq(p,R);return`${p} (${V}x)`},[p,I]);return{displayCwd:G,gitBranchInfo:Z,selectedModel:p,selectedModelDisplay:W,setSelectedModel:A,updateGitStatus:m}}var fg=$e($t(),1),m7n=3*1e3;function uGl(){let[t,e]=(0,fg.useState)("idle"),[l,n]=(0,fg.useState)(0),[r,a]=(0,fg.useState)(0),[I,s]=(0,fg.useState)(!1),o=(0,fg.useRef)(null);(0,fg.useEffect)(()=>()=>{o.current&&clearTimeout(o.current)},[]);let c=(0,fg.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null),e("indexing"),n(0),a(0),s(!0)},[]),d=(0,fg.useCallback)((A,Z)=>{e("completed"),n(A),a(Z),s(!0),o.current=setTimeout(()=>{s(!1),o.current=null},m7n)},[]),m=(0,fg.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null),e("idle"),n(0),a(0),s(!1)},[]),G={state:t,fileCount:l,durationMs:r,isVisible:I},p=(0,fg.useMemo)(()=>({startIndexing:c,completeIndexing:d,reset:m}),[c,d,m]);return[G,p]}var mGl=$e($t(),1);function bGl(t,e){(0,mGl.useEffect)(()=>{if(t)return t.on("assistant.message",l=>{if(l.data.toolRequests){for(let n of l.data.toolRequests)if(n.name===WE.name){let r=n.arguments.intent;r&&e(r)}}})},[t,e])}var pve=$e($t(),1);var nGe=class{hosts=new Map;logger;constructor(e){this.logger=e}async getOrCreateHost(e,l){if(!l||Object.keys(l).length===0)return;let n=this.hosts.get(e);if(n)return n;try{let r={mcpServers:l},a=new HL(this.logger,r);return await a.startServers(),this.hosts.set(e,a),this.logger.info(`Started ${Object.keys(l).length} MCP server(s) for ${e}`),a}catch(r){this.logger.error(`Failed to start MCP servers for ${e}: ${r}`);return}}getHost(e){return this.hosts.get(e)}async cleanup(){let e=[];for(let[l,n]of this.hosts.entries())e.push(n.stopServers().catch(r=>{this.logger.error(`Error stopping MCP host for ${l}: ${r}`)}));await Promise.all(e),this.hosts.clear()}size(){return this.hosts.size}};function GGl(t){let e=(0,pve.useRef)(null);return e.current||(e.current=new nGe(t)),(0,pve.useEffect)(()=>()=>{e.current&&e.current.cleanup().catch(l=>{t.error(`Error cleaning up MCP host cache: ${l}`)})},[t]),e.current}var hve=$e($t(),1);function pGl(t,e,l,n){let[r,a]=(0,hve.useState)();return(0,hve.useEffect)(()=>{async function I(){if(!l)return;let s=await wnt(t,e,l,n);a(s)}I()},[l,e,n]),{models:r}}async function wnt(t,e,l,n){if(xL())return{type:"success",list:[]};try{if(l.type==="hmac")return{type:"success",list:await yT.createWithHmac(t,Mte,n,l.hmac,e).listModels()};let r=await Iy(l);if(!r)return{type:"noauth"};let a=await E0(l.host,r,t);return{type:"success",list:await yT.createWithOAuthToken(t,a,n,r,e).listModels()}}catch(r){return{type:"error",error:r}}}var dQ=$e($t(),1);function hGl(t=3){let[e,l]=(0,dQ.useState)(!1),n=(0,dQ.useRef)(null),r=(0,dQ.useRef)(t*1e3);(0,dQ.useEffect)(()=>{r.current=t*1e3},[t]),(0,dQ.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]);let a=(0,dQ.useCallback)(I=>{n.current&&(clearTimeout(n.current),n.current=null),l(!0);let s=I!==void 0?I*1e3:r.current;n.current=setTimeout(()=>{l(!1),n.current=null},s)},[]);return[e,a]}var rGe=$e($t(),1);function AGl({builtInSlashCommands:t,logger:e,currentWorkingDirectory:l,setCurrentWorkingDirectory:n,fileSearch:r,authManager:a,mcpHost:I,loginStatus:s,setLoginStatus:o,addEntryToSession:c,clearSessionHistory:d,getSessionUsageOutput:m,pathManager:G,resetSessionToolApprovals:p,clearTimeline:A,clearHeader:Z,clearContextWindowMetrics:W,setThemePreference:R,refreshStatic:V,customAgents:v,slashCommandResultActions:X}){let S=(0,rGe.useMemo)(()=>({logger:e,slashCommands:t,customAgents:v,mcp:{host:I,config:async()=>await dY.load()||{mcpServers:{}},hasServer:async P=>(await S.mcp.config())?.mcpServers[P]!==void 0,deleteServer:async P=>{let x=await S.mcp.config();delete x.mcpServers[P],await dY.write(x)}},auth:{availableAuthMethods:()=>tPt(a,s.authInfo),loginStatus:s,logout:async()=>{let P=await a.logout();return o({status:"NotLoggedIn"}),P}},session:{addTimelineEntry:c,clearHistory:d,usageOutput:m},permissions:{allowedDirs:G.getDirectories.bind(G),addAllowedDirectory:G.addDirectory.bind(G),resetSessionToolApprovals:p},process:{cwd:l,chdir:async P=>{process.chdir(P),await G.updatePrimaryDirectory(P),n(P),await r.setRootPath(P)}},ui:{getThemePreference:Dwe,setThemePreference:R,clear:()=>{A(),Z(),W(),V()}}}),[t,e,l,n,r,a,I,s,o,c,d,m,G,p,Z,W,R,V,v]),O=(0,rGe.useCallback)(async P=>{let x=_c(()=>{let K=P.trim();return K==="?"?"/help":K});if(!x.startsWith("/"))return{handled:!1};let D=x.split(" ")[0],ae=t.find(K=>K.name===D||K.aliases?.includes(D));if(!ae)return{handled:!1};let Ge=x.substring(ae.name.length).trim().split(" ").filter(K=>K),he=await ae.execute(S,Ge);if(!he)return{handled:!0};switch(he.kind){case"exit":return X.exit(),{handled:!0};case"add-timeline-entry":return c(he.entry),{handled:!0};case"show-dialog":switch(he.dialog.kind){case"custom-agent-picker":X.showCustomAgentPickerDialog();break;case"feedback":X.showFeedbackDialog();break;case"login":X.showLoginDialog();break;case"mcp":X.showMCPDialog(he.dialog.mode,he.dialog.serverName);break;case"model-picker":X.showModelPickerDialog();break;case"session":X.showSessionDialog();break;case"user-switcher":X.showUserSwitcherDialog();break;default:wo(he.dialog,`Unknown dialog kind: ${he.dialog}`)}return{handled:!0};case"set-model":return await X.setModel(he.model),{handled:!0};case"noop":return{handled:!0};case"start-remote-delegate":return X.startRemoteDelegation(he.prompt),{handled:!0};default:wo(he,`Unknown slash command result kind: ${he}`)}},[t,c,X,S]),T=(0,rGe.useCallback)(P=>yme(t,P),[t]);return{slashCommands:t,handleSlashCommand:O,matchingSlashCommands:T}}var Ave=$e($t(),1);function gGl(t,e,l){let n=(0,Ave.useMemo)(()=>new Map,[]);(0,Ave.useEffect)(()=>{(async()=>{if(Object.keys(t).length===0||t.staff!==void 0||!e)return;let a=await Iy(e),I=e.type==="hmac"?void 0:e.host;if(!a||I!==kL)return;let s=n.get(a)??ozt(I,a).catch(()=>!1);n.set(a,s),await s&&(await Sr.writeKey("staff",!0),await Sr.writeKey("log_level","all"),l({type:"info",text:"Staff mode activated! Restart the app to enable staff features \u2728"}))})()},[t,e,l])}var dJ=$e($t(),1);function ZGl(t,e,l){let[n,r]=(0,dJ.useState)(null),a=(0,dJ.useRef)("");return(0,dJ.useEffect)(()=>{e.text!==a.current&&(n?.availableOptions.some(o=>e.text===o.name)||r(null),a.current=e.text)},[e.text,n]),{handleTabCompletion:(0,dJ.useCallback)(()=>{let s=o=>{let c=o.indexOf(" ");return c===-1?!1:o.slice(c+1).trim().length>0};if(n){if(s(e.text)){r(null);return}let o=(n.currentIndex+1)%n.availableOptions.length,c=n.availableOptions[o];e.setText(c.name),r({...n,currentIndex:o}),l.setSlashCommandPickerIndex(o)}else{if(s(e.text))return;let o=yme(t,e.text);if(o.length===1){let c=o[0],d=c.name;for(let m=d.length-1;m>=2;m--){let G=d.slice(0,m),p=yme(t,G);if(p.length>1){let A=p.findIndex(R=>R.name===c.name);r({originalInput:G,availableOptions:p,currentIndex:A>=0?A:0});let Z=(A+1)%p.length,W=p[Z];e.setText(W.name),r({originalInput:G,availableOptions:p,currentIndex:Z}),l.setSlashCommandPickerIndex(Z);return}}}o.length>1?(r({originalInput:e.text,availableOptions:o,currentIndex:0}),e.setText(o[0].name),l.setSlashCommandPickerIndex(0)):o.length===1&&e.setText(o[0].name)}},[n,e,l]),tabCyclingState:n}}var tH=$e($t(),1);function NGl(){let[t,e]=(0,tH.useState)({columns:process.stdout.columns,rows:process.stdout.rows}),l=(0,tH.useRef)(()=>{}),n=(0,tH.useCallback)(a=>{l.current=a||(()=>{})},[]),r=(0,tH.useCallback)(()=>{let{columns:a,rows:I}=process.stdout;e({columns:a,rows:I}),l.current(a,I)},[]);return(0,tH.useEffect)(()=>(process.stdout.on("resize",r),()=>{process.stdout.off("resize",r)}),[]),{...t,setOnResize:n}}var M7=$e($t(),1);var uJ=t=>/\s/.test(t);function b7n(t,e){if(e>=t.length)return t.length;let l=e;for(;l<t.length&&uJ(t[l]);)l+=t[l].length;for(;l<t.length&&!uJ(t[l]);)l+=t[l].length;return l}function WGl(t,e){if(e===0)return 0;let l=e-1;for(;l>=0&&uJ(t[l]);)l-=t[l].length;if(l<0)return 0;for(;l>=0&&!uJ(t[l]);)l-=t[l].length;return l+1}function G7n(t,e){if(e>=t.length)return t.length;let l=e;for(;l<t.length&&!uJ(t[l]);)l+=t[l].length;for(;l<t.length&&uJ(t[l]);)l+=t[l].length;return l}function nU(t,e){if(e<=0)return[t];let l=t.split(`
2471
2474
  `).map(r=>r+" "),n=[];for(let r of l){if(r.length<=e){n.push(r);continue}let a=r;for(;a.length>e;){let I=e;if(uJ(a.slice(0,e)))for(let o=e-1;o>=Math.max(0,e-20)&&!uJ(a[o]);o--)I=o;let s=a.slice(0,I);n.push(s),a=a.slice(I)}a.length>0&&n.push(a)}return n}function _7(t,e){if(e.length===0)return{line:0,column:0};let l=0;for(let r=0;r<e.length;r++){let a=e[r],I=l+a.length;if(t<I)return{line:r,column:t-l};l=I}let n=e.length-1;return{line:n,column:e[n].length}}function U7(t,e,l,n){if(t.length===0)return 0;let r=0;for(let a=0;a<Math.min(e,t.length);a++)r+=t[a].length;return e<t.length?r+=Math.min(l,t[e].length):r=n.length,Math.min(r,n.length)}function p7n(t,e){switch(e.type){case"set_text":return{text:e.payload,cursorPosition:e.payload.length,width:t.width};case"set_cursor_position":return{...t,cursorPosition:Math.max(0,Math.min(e.payload,t.text.length))};case"set_cursor_line_position":{let{line:l,column:n}=e.payload,r=nU(t.text,t.width),a=U7(r,l,n,t.text);return{...t,cursorPosition:a}}case"set_width":return t.width===e.payload?t:{...t,width:e.payload};case"insert_input":{let{text:l,cursorPosition:n}=t,{input:r,callback:a}=e.payload,I=r.replace(/\r\n/g,`
2472
2475
  `).replace(/\r/g,`
2473
2476
  `),s=l.slice(0,n),o=l.slice(n),c=s+I+o,d=n+I.length;return a?.(c),{text:c,cursorPosition:d,width:t.width}}case"backspace":return t.cursorPosition===0?t:{text:t.text.slice(0,t.cursorPosition-1)+t.text.slice(t.cursorPosition),cursorPosition:t.cursorPosition-1,width:t.width};case"forward_delete":{if(t.cursorPosition>=t.text.length)return t;let l=t.text.slice(0,t.cursorPosition)+t.text.slice(t.cursorPosition+1);return{...t,text:l}}case"backspace_word":{let{text:l,cursorPosition:n}=t;if(n===0)return t;let r=WGl(l,n);return{text:l.slice(0,r)+l.slice(n),cursorPosition:r,width:t.width}}case"forward_delete_word":{let{text:l,cursorPosition:n}=t;if(n>=l.length)return t;let r=b7n(l,n),a=l.slice(0,n)+l.slice(r);return{...t,text:a}}case"move_word_left":{let{text:l,cursorPosition:n}=t;if(n===0)return t;let r=WGl(l,n);return{...t,cursorPosition:r}}case"move_word_right":{let{text:l,cursorPosition:n}=t;if(n>=l.length)return t;let r=G7n(l,n);return{...t,cursorPosition:r}}case"move_right":return t.cursorPosition===t.text.length?t:{...t,cursorPosition:t.cursorPosition+1};case"move_left":return t.cursorPosition===0?t:{...t,cursorPosition:t.cursorPosition-1};case"move_up":{let{text:l,cursorPosition:n,width:r}=t,a=nU(l,r),I=_7(n,a);if(I.line>0){let s=I.line-1,o=Math.min(I.column,a[s].length-1),c=U7(a,s,o,l);return{...t,cursorPosition:c}}return t}case"move_down":{let{text:l,cursorPosition:n,width:r}=t,a=nU(l,r),I=_7(n,a);if(I.line<a.length-1){let s=I.line+1,o=Math.min(I.column,a[s].length-1),c=U7(a,s,o,l);return{...t,cursorPosition:c}}return t}case"clear":return{text:"",cursorPosition:0,width:t.width};case"clear_before_cursor":{let{text:l,cursorPosition:n,width:r}=t,a=nU(l,r),I=_7(n,a),s=U7(a,I.line,0,l);return{text:l.slice(0,s)+l.slice(n),cursorPosition:s,width:r}}case"clear_after_cursor":{let{text:l,cursorPosition:n}=t,r=l.indexOf(`
@@ -2495,7 +2498,7 @@ ${Re.paths.map(yl=>` - ${yl}`).join(`
2495
2498
  Allow access to these paths? (y/n): `;Ie.question(_t,yl=>{Ie.close();let Vt=yl.trim().toLowerCase();Qe(Vt==="y"||Vt==="yes"?{kind:"approve"}:{kind:"reject"})})})}}),me=()=>{};I.emit("user.message",{content:e,attachments:[]}),await epl(t,e,We,a,Re=>{I.emit("tool.execution_complete",{parentToolCallId:Re.parentToolCallId,toolCallId:Re.callId,success:Re.resultType==="success",result:Re.resultType==="success"?{content:Re.log}:void 0,error:Re.resultType!=="success"?{message:Re.log,code:Re.resultType}:void 0})},()=>{},me,()=>{},()=>{},I,o,P,QI.cwd(),re,c,d,m,x,T,W,O,R,Re=>{D=Re},S,U.list,V);let ve=Wve(Ge);QI.stderr.write(`
2496
2499
  `+ve+`
2497
2500
  `),await s.saveSession(I),QI.exit(0)}catch(U){let re=`Error executing prompt: ${U}`;QI.stderr.write(re+`
2498
- `),o.error(re),await s.saveSession(I),QI.exit(1)}finally{K();try{await T.cleanup()}catch(U){o.error(`Error cleaning up MCP host cache: ${U}`)}if(x)try{await x.stopServers()}catch(U){o.error(`Error stopping MCP servers: ${U}`)}}}var D7n=({featureFlags:t=Rbe,integrationId:e,authManager:l,sessionManager:n,initialSession:r,needsSessionPicker:a,allowAllTools:I,allowAllPaths:s,rules:o,showBanner:c,showHeader:d,trajectoryOutputFile:m,logger:G,additionalDirs:p,disabledMcpServers:A,additionalMcpConfig:Z,errorService:W,cliModel:R,showLlmTiming:V,cliStreaming:v,disableParallelToolsExecution:X,disallowTempDir:S,enableAllGithubMcpTools:O})=>{let T=(0,Yt.useMemo)(()=>G??new xd,[G]),{theme:P,setThemePreference:x,themeInitialized:D}=Tn(),{stdout:ae}=OR(),Ge=rx(),he=d0(),[K,U]=(0,Yt.useState)(0),[re,se]=(0,Yt.useState)(a??!1),[We,me]=(0,Yt.useState)(null),ve=(0,Yt.useCallback)(()=>{QI.stdout.write(ap.cursorTo(0,0)+ap.eraseScreen),U(wt=>wt+1)},[U,ae]),Re=NGl(),ye=V?new j7:void 0,Ie=GGl(T);(0,Yt.useEffect)(()=>{let wt=null,vl=Re.columns,na=Re.rows,Xi=(sI,jc)=>{let qd=sI,hr=jc;if(qd===vl&&hr!==na){na=hr;return}qd!==vl&&(vl=qd,na=hr,wt&&clearTimeout(wt),wt=setTimeout(()=>{ve()},50))};return Re.setOnResize(Xi),()=>{Re.setOnResize(null),wt&&clearTimeout(wt)}},[ve,ae]);let[Qe,Se]=(0,Yt.useState)(r);(0,Yt.useEffect)(()=>{W?.addErrorHandler(wt=>{Qe.emit("session.error",{errorType:"internal",message:String(wt)})})},[W,Qe]);let{timeline:_t,setAvailableTools:yl,addEphemeralEntry:Vt,clearTimeline:qt}=VGl(Qe),ct=FGl(Qe),[Ct,dt]=(0,Yt.useState)({}),[on,ll]=(0,Yt.useState)(0),[Ce,Ft]=(0,Yt.useState)(null),[El,Pt]=(0,Yt.useState)(!1);bGl(Qe,Ft);let[hn,Cn]=(0,Yt.useState)({totalTokens:0,postTruncationTokens:0,tokenLimit:0,truncationStrategy:"truncation",messagesRemoved:0,tokensRemoved:0}),[tn,Kl]=(0,Yt.useState)(null),ba=()=>{if(El){Pt(!1),Kl(null),ve();return}Pt(!0),ve()},II=()=>{if(El||tn!==null){Pt(!1),Kl(null),ve();return}let Xi=_t.filter(sI=>sI.type==="tool_call_completed"||sI.type==="tool_call_requested"||sI.type==="group_tool_call_requested"||sI.type==="group_tool_call_completed").slice(-10).at(0)?.timestamp||new Date;Kl(Xi),ve()},Ga=(0,Yt.useCallback)(wt=>wt.type!=="tool_call_completed"&&wt.type!=="tool_call_requested"&&wt.type!=="group_tool_call_requested"&&wt.type!=="group_tool_call_completed"?!1:El?!0:tn!==null&&wt.timestamp&&wt.timestamp.getTime()>=tn.getTime(),[El,tn]),[mI,Xo]=(0,Yt.useState)(!1),[la,co]=(0,Yt.useState)({status:"Unknown"}),[Ol,Rn]=(0,Yt.useState)({});e=Ol.copilot_integration_id||QI.env.GITHUB_COPILOT_INTEGRATION_ID||"copilot-developer-cli";let An=(0,Yt.useMemo)(()=>new Rve(la.status==="LoggedIn"?la.authInfo:null,T,e),[la.authInfo,T,e]);(0,Yt.useEffect)(()=>{switch(la.status){case"LoggedIn":T.info(lme(la.authInfo));break;case"NotLoggedIn":T.info("Logged out");break;default:T.info("Login status unknown");break}},[la]),(0,Yt.useEffect)(()=>(An.setOnStateChangeCallback(me),()=>{An.setOnStateChangeCallback(null)}),[An]);let[Yr,Br]=(0,Yt.useState)(0),[ie,tt]=(0,Yt.useState)(!1),[Gl,Xl]=(0,Yt.useState)(!1),[Gn,or]=(0,Yt.useState)(!1),[On,mr]=(0,Yt.useState)(!1),[br,gd]=(0,Yt.useState)(!1),[bI,Nc]=(0,Yt.useState)(!1),[xb,pm]=(0,Yt.useState)(!1),[Wc,ti]=(0,Yt.useState)(!1),[tb,tA]=(0,Yt.useState)(null),[eo,Zd]=(0,Yt.useState)("list"),[Nd,Pd]=(0,Yt.useState)(void 0),[un,lb]=(0,Yt.useState)(!1),[Es,Cu]=(0,Yt.useState)(0),[ko,Jg]=(0,Yt.useState)(QI.cwd()),[UG]=(0,Yt.useState)(()=>s?new iGe(QI.cwd()):new oGe(QI.cwd(),p||[],{includeTempDirectory:!S})),[vu,kn]=(0,Yt.useState)([]),[Je,Al]=(0,Yt.useState)(null),[cn,DI]=(0,Yt.useState)([]),[xs,Ss]=(0,Yt.useState)(null),[ps,go]=(0,Yt.useState)(d===!1),[jd,Zo]=(0,Yt.useState)(d??!0),[Nr,MG]=(0,Yt.useState)(null),[Kd,hs]=(0,Yt.useState)(null),[Sb,hi]=hGl(1),[_G,Bb]=(0,Yt.useState)(!1),[ce,de]=(0,Yt.useState)(!1),{models:ke}=pGl(T,Qe.sessionId,la.authInfo,e),{customAgents:_e,selectCustomAgent:ut}=sGl(t.CUSTOM_AGENTS,T,e,la.authInfo||null,T4(),ko);(0,Yt.useEffect)(()=>{kjt().then(tA).catch(()=>{})},[]);let Bt=(0,Yt.useCallback)(wt=>{let vl=Wve(ct);MG(wt?{type:"error",reason:wt,usage:vl}:{type:"routine",usage:vl}),setTimeout(()=>{QI.exit(0)},300)},[ct]);(0,Yt.useEffect)(()=>{(async()=>{let vl={};try{vl=await Sr.load()||{}}catch(na){T.error(`Failed to load configuration: ${na}`)}vl.banner=vl?.banner??"once",vl.render_markdown=vl?.render_markdown??!0,Rn(vl),Ge&&vl.screen_reader===void 0&&Xl(!0)})()},[Ge]),(0,Yt.useEffect)(()=>{if(Je===null&&vu.length>0){Ol.beep!==!1&&QI.stdout.write(ap.beep);let wt=vu[0];Al(wt),kn(vl=>vl.slice(1))}},[Je,vu]),(0,Yt.useEffect)(()=>{if(xs===null&&cn.length>0){Ol.beep!==!1&&QI.stdout.write(ap.beep);let wt=cn[0];Ss(wt),DI(vl=>vl.slice(1))}},[xs,cn]);let ul=(0,Yt.useRef)(!0),al=(0,Yt.useRef)(FJe({requestToolPermissionFromUser:wt=>new Promise(vl=>{kn(na=>[{request:wt,resolve:sI=>{if(sI.kind==="approve-for-session"&&sI.approval.kind!==wt.kind)throw new Error(`Mismatched approval kind: expected ${wt.kind}, got ${sI.approval.kind}`);vl(sI)}},...na])}),requestPathPermissionFromUser:wt=>new Promise(vl=>{DI(na=>[...na,{paths:wt.paths,resolve:vl}])}),approveAllToolPermissionRequests:I,rules:o,pathManager:UG})),{displayCwd:Ql,gitBranchInfo:wl,selectedModel:kl,selectedModelDisplay:Dn,setSelectedModel:pa,updateGitStatus:CI}=dGl({cliModel:R,session:Qe,currentWorkingDirectory:ko,customAgentName:_e.selected?.displayName,stdoutColumns:ae.columns,models:ke});(0,Yt.useEffect)(()=>{(async()=>{if(!ke||ke.type!=="success"||!kl)return;let vl=ke.list.find(na=>na.id===kl);if(vl?.capabilities?.limits){let na=vl.capabilities.limits.max_prompt_tokens||vl.capabilities.limits.max_context_window_tokens||2e5;Cn(Xi=>({...Xi,tokenLimit:na}))}})()},[kl,ke]),(0,Yt.useEffect)(()=>{(async()=>{if(!kl||!ke)return;let vl=await Qe.getChatContextMessages(),na=await Qe.getSystemContextMessages();if(vl.length>0||na.length>0){let Xi=Pte(vl,kl),sI=Pte(na,kl),jc=Xi+sI;Cn(qd=>({...qd,totalTokens:jc,postTruncationTokens:jc}))}})()},[kl,ke,Qe]);let[Hr,Hi]=(0,Yt.useState)(void 0),ji=async()=>{try{let wt=await dY.load()||{mcpServers:{}},vl=Z?IGe(wt,Z):wt,na=new XA(T),Xi=new Rf(T,JSON.stringify(vl),na,A||[],O);await Xi.startServers(),Hi(Xi)}catch(wt){Qe.emit("session.error",{errorType:"mcp",message:`Failed to start MCP Servers: ${wt instanceof Error?wt.message:String(wt)}`}),Hi(void 0)}};(0,Yt.useEffect)(()=>{let wt=Hr?Object.keys(Hr.getConfig().mcpServers):[];if(wt.length>0){let vl=`Configured MCP servers: ${wt.join(", ")}`;Qe.emit("session.info",{infoType:"mcp",message:vl})}return()=>{Hr&&Hr.stopServers().catch(vl=>{T.error(`Error shutting down MCP host on cleanup: ${vl instanceof Error?vl.message:String(vl)}`)})}},[Hr]),(0,Yt.useEffect)(()=>{ji()},[]),(0,Yt.useEffect)(()=>{if(!Hr||!(Hr instanceof Rf))return;let wt=async(na,Xi)=>{try{na?await Hr.configureGitHubAuth(na)&&Qe.emit("session.info",{infoType:"mcp",message:"Connected to GitHub MCP Server"}):await Hr.removeGitHubAuth()&&Qe.emit("session.info",{infoType:"mcp",message:"Disconnected from GitHub MCP Server"})}catch(sI){T.error(`Error configuring GitHub MCP Server: ${sI}`)}};return l.onAuthChange(wt),(async()=>{try{let na=await l.getCurrentAuthInfo();na&&await wt(na)}catch(na){T.error(`Error applying existing auth to MCP host: ${na}`)}})(),()=>{l.removeAuthCallback(wt)}},[Hr]);let Rs=yGl(wt=>{cY.updateCurrentCommand(wt)}),[YN,lA]=uGl(),Bp=(0,Yt.useMemo)(()=>new lGe({cacheTimeout:5*6e4,includeDirsInIndex:!1,indexFileStats:!1,maxStatConcurrency:64,onIndexingStart:()=>lA.startIndexing(),onIndexingComplete:(wt,vl)=>lA.completeIndexing(wt,vl),logger:T}),[lA]),[yc,nb]=kbl(Rs,Bp,UG);(0,Yt.useEffect)(()=>{let wt=!1,vl=null,na=async()=>{await CI(),wt||(vl=setTimeout(()=>void na(),15e3))};return na(),()=>{wt=!0,vl&&clearTimeout(vl)}},[CI]);let Tb=(0,Yt.useCallback)(wt=>{Qe.emit("tool.execution_complete",{parentToolCallId:wt.parentToolCallId,toolCallId:wt.callId,success:wt.resultType==="success",result:wt.resultType==="success"?{content:wt.log}:void 0,error:wt.resultType!=="success"?{message:wt.log,code:wt.resultType}:void 0});let vl=setTimeout(()=>{CI()},500);return()=>clearTimeout(vl)},[Qe,CI]);(0,Yt.useEffect)(()=>{cY.initialize()},[]),(0,Yt.useEffect)(()=>{(async()=>{try{let vl=await l.getCurrentAuthInfo();vl?(co({status:"LoggedIn",authInfo:vl}),Qe.emit("session.info",{infoType:"authentication",message:lme(vl)})):co({status:"NotLoggedIn"})}catch{co({status:"NotLoggedIn"})}})()},[]),gGl(Ol,la.authInfo,Vt),(0,Yt.useEffect)(()=>{(async()=>{try{QI.env.COPILOT_ALLOW_ALL==="true"||await Ybe.isFolderTrusted(ko)?Br(1):(Br(2),tt(!0))}catch{QI.env.COPILOT_ALLOW_ALL==="true"?Br(1):(Br(2),tt(!0))}})()},[ko]),(0,Yt.useEffect)(()=>{gml().then(wt=>{hs(wt)}).catch(wt=>{T.error(`Error checking for updates: ${wt}`)})},[]),(0,Yt.useEffect)(()=>()=>{ul.current=!1},[]);let nA=(0,Yt.useMemo)(()=>iQe({customAgentsEnabled:t.CUSTOM_AGENTS,ccaDelegateEnabled:t.CCA_DELEGATE}),[t.CUSTOM_AGENTS,t.CCA_DELEGATE]),{slashCommands:VN,handleSlashCommand:K0,matchingSlashCommands:Tp}=AGl({builtInSlashCommands:nA,logger:T,currentWorkingDirectory:ko,setCurrentWorkingDirectory:Jg,fileSearch:Bp,authManager:l,mcpHost:Hr,loginStatus:la,setLoginStatus:co,addEntryToSession:Vt,clearSessionHistory:async()=>{let wt=await n.createSession({selectedModel:R});Se(wt)},getSessionUsageOutput:()=>Wve(ct),pathManager:UG,resetSessionToolApprovals:al.current.resetSessionToolApprovals,clearTimeline:qt,clearHeader:()=>Zo(!1),clearContextWindowMetrics:()=>Cn(wt=>({totalTokens:0,postTruncationTokens:0,tokenLimit:wt.tokenLimit,truncationStrategy:wt.truncationStrategy,messagesRemoved:0,tokensRemoved:0})),setThemePreference:x,refreshStatic:ve,hasAvailableCustomAgents:_e.available.length>0,slashCommandResultActions:{exit:Bt,showCustomAgentPickerDialog:()=>or(!0),showFeedbackDialog:()=>lb(!0),showLoginDialog:()=>mr(!0),showMCPDialog:(wt,vl)=>{gd(!0),wt&&Zd(wt),vl&&Pd(vl)},showModelPickerDialog:()=>Nc(!0),showSessionDialog:()=>pm(!0),showUserSwitcherDialog:()=>ti(!0),startRemoteDelegation:wt=>{An.startDelegation(wt,Qe.sessionId)},setModel:async wt=>{if(!wq(wt)){Qe.emit("session.error",{errorType:"user.model_selection",message:`Model "${wt}" is not supported. Please select a valid model.`});return}Yx(),await Qe.setSelectedModel(wt),pa(wt)}}}),{handleTabCompletion:wN,tabCyclingState:rA}=ZGl(VN,Rs,{setSlashCommandPickerIndex:Cu}),rb=(0,Yt.useMemo)(()=>{let wt=Tp(Rs.text);return rA||Cu(0),wt},[Tp,Rs.text,rA]),Op=(0,Yt.useMemo)(()=>{let wt=Rs.text,vl=rb[Es];if(!vl)return{suggestion:void 0,isHint:!1};let na=wt.trimEnd();return na===vl.name&&vl.args?{suggestion:wt!==na?vl.args:` ${vl.args}`,isHint:!0}:{suggestion:(vl.name+(vl.args?" ":"")).substring(wt.length),isHint:!1}},[Rs.text,Es,rb]),yy=(0,Yt.useCallback)(wt=>{mI||uQ||(async()=>{if(await cY.addCommand(wt),wt.startsWith("!")){let hr=wt.substring(1),ml=cu();Qe.emit("tool.user_requested",{toolCallId:ml,toolName:W7,arguments:{command:hr,description:`Execute shell command: ${hr}`}}),Kh=new AbortController;let Kn="";try{uQ=!0,de(!0);let fa=T7n(hr,{shell:!0,cwd:ko,env:QI.env,stdio:"pipe",signal:Kh.signal}),Na=[],Hu=!1,CN=sA=>{Hu||(Hu=sA.includes(13)),Na.push(sA);let oA=Buffer.concat(Na).toString("utf-8");Kn=Hu?bcl(oA):oA,Qe.emitEphemeral("tool.execution_partial_result",{toolCallId:ml,partialOutput:Kn})};fa.stderr.on("data",CN),fa.stdout.on("data",CN),fa.stdin.end();let VY=await new Promise((sA,oA)=>{fa.on("error",oA),fa.on("exit",(Up,xg)=>{xg?oA(new Error(`Process was killed with signal: ${xg}`)):sA(Up)})});Qe.emit("tool.execution_complete",{parentToolCallId:void 0,toolCallId:ml,isUserRequested:!0,success:VY===0,result:{content:Kn}})}catch(fa){Qe.emit("tool.execution_complete",{parentToolCallId:void 0,toolCallId:ml,isUserRequested:!0,success:!1,error:{message:`${Kn?`${Kn}
2501
+ `),o.error(re),await s.saveSession(I),QI.exit(1)}finally{K();try{await T.cleanup()}catch(U){o.error(`Error cleaning up MCP host cache: ${U}`)}if(x)try{await x.stopServers()}catch(U){o.error(`Error stopping MCP servers: ${U}`)}}}var D7n=({featureFlags:t=Rbe,integrationId:e,authManager:l,sessionManager:n,initialSession:r,needsSessionPicker:a,allowAllTools:I,allowAllPaths:s,rules:o,showBanner:c,showHeader:d,trajectoryOutputFile:m,logger:G,additionalDirs:p,disabledMcpServers:A,additionalMcpConfig:Z,errorService:W,cliModel:R,showLlmTiming:V,cliStreaming:v,disableParallelToolsExecution:X,disallowTempDir:S,enableAllGithubMcpTools:O})=>{let T=(0,Yt.useMemo)(()=>G??new xd,[G]),{theme:P,setThemePreference:x,themeInitialized:D}=Tn(),{stdout:ae}=OR(),Ge=rx(),he=d0(),[K,U]=(0,Yt.useState)(0),[re,se]=(0,Yt.useState)(a??!1),[We,me]=(0,Yt.useState)(null),ve=(0,Yt.useCallback)(()=>{QI.stdout.write(ap.cursorTo(0,0)+ap.eraseScreen),U(wt=>wt+1)},[U,ae]),Re=NGl(),ye=V?new j7:void 0,Ie=GGl(T);(0,Yt.useEffect)(()=>{let wt=null,vl=Re.columns,na=Re.rows,Xi=(sI,jc)=>{let qd=sI,hr=jc;if(qd===vl&&hr!==na){na=hr;return}qd!==vl&&(vl=qd,na=hr,wt&&clearTimeout(wt),wt=setTimeout(()=>{ve()},50))};return Re.setOnResize(Xi),()=>{Re.setOnResize(null),wt&&clearTimeout(wt)}},[ve,ae]);let[Qe,Se]=(0,Yt.useState)(r);(0,Yt.useEffect)(()=>{W?.addErrorHandler(wt=>{Qe.emit("session.error",{errorType:"internal",message:String(wt)})})},[W,Qe]);let{timeline:_t,setAvailableTools:yl,addEphemeralEntry:Vt,clearTimeline:qt}=VGl(Qe),ct=FGl(Qe),[Ct,dt]=(0,Yt.useState)({}),[on,ll]=(0,Yt.useState)(0),[Ce,Ft]=(0,Yt.useState)(null),[El,Pt]=(0,Yt.useState)(!1);bGl(Qe,Ft);let[hn,Cn]=(0,Yt.useState)({totalTokens:0,postTruncationTokens:0,tokenLimit:0,truncationStrategy:"truncation",messagesRemoved:0,tokensRemoved:0}),[tn,Kl]=(0,Yt.useState)(null),ba=()=>{if(El){Pt(!1),Kl(null),ve();return}Pt(!0),ve()},II=()=>{if(El||tn!==null){Pt(!1),Kl(null),ve();return}let Xi=_t.filter(sI=>sI.type==="tool_call_completed"||sI.type==="tool_call_requested"||sI.type==="group_tool_call_requested"||sI.type==="group_tool_call_completed").slice(-10).at(0)?.timestamp||new Date;Kl(Xi),ve()},Ga=(0,Yt.useCallback)(wt=>wt.type!=="tool_call_completed"&&wt.type!=="tool_call_requested"&&wt.type!=="group_tool_call_requested"&&wt.type!=="group_tool_call_completed"?!1:El?!0:tn!==null&&wt.timestamp&&wt.timestamp.getTime()>=tn.getTime(),[El,tn]),[mI,Xo]=(0,Yt.useState)(!1),[la,co]=(0,Yt.useState)({status:"Unknown"}),[Ol,Rn]=(0,Yt.useState)({});e=Ol.copilot_integration_id||QI.env.GITHUB_COPILOT_INTEGRATION_ID||"copilot-developer-cli";let An=(0,Yt.useMemo)(()=>new Rve(la.status==="LoggedIn"?la.authInfo:null,T,e),[la.authInfo,T,e]);(0,Yt.useEffect)(()=>{switch(la.status){case"LoggedIn":T.info(lme(la.authInfo));break;case"NotLoggedIn":T.info("Logged out");break;default:T.info("Login status unknown");break}},[la]),(0,Yt.useEffect)(()=>(An.setOnStateChangeCallback(me),()=>{An.setOnStateChangeCallback(null)}),[An]);let[Yr,Br]=(0,Yt.useState)(0),[ie,tt]=(0,Yt.useState)(!1),[Gl,Xl]=(0,Yt.useState)(!1),[Gn,or]=(0,Yt.useState)(!1),[On,mr]=(0,Yt.useState)(!1),[br,gd]=(0,Yt.useState)(!1),[bI,Nc]=(0,Yt.useState)(!1),[xb,pm]=(0,Yt.useState)(!1),[Wc,ti]=(0,Yt.useState)(!1),[tb,tA]=(0,Yt.useState)(null),[eo,Zd]=(0,Yt.useState)("list"),[Nd,Pd]=(0,Yt.useState)(void 0),[un,lb]=(0,Yt.useState)(!1),[Es,Cu]=(0,Yt.useState)(0),[ko,Jg]=(0,Yt.useState)(QI.cwd()),[UG]=(0,Yt.useState)(()=>s?new iGe(QI.cwd()):new oGe(QI.cwd(),p||[],{includeTempDirectory:!S})),[vu,kn]=(0,Yt.useState)([]),[Je,Al]=(0,Yt.useState)(null),[cn,DI]=(0,Yt.useState)([]),[xs,Ss]=(0,Yt.useState)(null),[ps,go]=(0,Yt.useState)(d===!1),[jd,Zo]=(0,Yt.useState)(d??!0),[Nr,MG]=(0,Yt.useState)(null),[Kd,hs]=(0,Yt.useState)(null),[Sb,hi]=hGl(1),[_G,Bb]=(0,Yt.useState)(!1),[ce,de]=(0,Yt.useState)(!1),{models:ke}=pGl(T,Qe.sessionId,la.authInfo,e),{customAgents:_e,selectCustomAgent:ut}=sGl(t.CUSTOM_AGENTS,T,e,la.authInfo||null,T4(),ko);(0,Yt.useEffect)(()=>{kjt().then(tA).catch(()=>{})},[]);let Bt=(0,Yt.useCallback)(wt=>{let vl=Wve(ct);MG(wt?{type:"error",reason:wt,usage:vl}:{type:"routine",usage:vl}),setTimeout(()=>{QI.exit(0)},300)},[ct]);(0,Yt.useEffect)(()=>{(async()=>{let vl={};try{vl=await Sr.load()||{}}catch(na){T.error(`Failed to load configuration: ${na}`)}vl.banner=vl?.banner??"once",vl.render_markdown=vl?.render_markdown??!0,Rn(vl),Ge&&vl.screen_reader===void 0&&Xl(!0)})()},[Ge]),(0,Yt.useEffect)(()=>{if(Je===null&&vu.length>0){Ol.beep!==!1&&QI.stdout.write(ap.beep);let wt=vu[0];Al(wt),kn(vl=>vl.slice(1))}},[Je,vu]),(0,Yt.useEffect)(()=>{if(xs===null&&cn.length>0){Ol.beep!==!1&&QI.stdout.write(ap.beep);let wt=cn[0];Ss(wt),DI(vl=>vl.slice(1))}},[xs,cn]);let ul=(0,Yt.useRef)(!0),al=(0,Yt.useRef)(FJe({requestToolPermissionFromUser:wt=>new Promise(vl=>{kn(na=>[{request:wt,resolve:sI=>{if(sI.kind==="approve-for-session"&&sI.approval.kind!==wt.kind)throw new Error(`Mismatched approval kind: expected ${wt.kind}, got ${sI.approval.kind}`);vl(sI)}},...na])}),requestPathPermissionFromUser:wt=>new Promise(vl=>{DI(na=>[...na,{paths:wt.paths,resolve:vl}])}),approveAllToolPermissionRequests:I,rules:o,pathManager:UG})),{displayCwd:Ql,gitBranchInfo:wl,selectedModel:kl,selectedModelDisplay:Dn,setSelectedModel:pa,updateGitStatus:CI}=dGl({cliModel:R,session:Qe,currentWorkingDirectory:ko,customAgentName:_e.selected?.displayName,stdoutColumns:ae.columns,models:ke});(0,Yt.useEffect)(()=>{(async()=>{if(!ke||ke.type!=="success"||!kl)return;let vl=ke.list.find(na=>na.id===kl);if(vl?.capabilities?.limits){let na=vl.capabilities.limits.max_prompt_tokens||vl.capabilities.limits.max_context_window_tokens||2e5;Cn(Xi=>({...Xi,tokenLimit:na}))}})()},[kl,ke]),(0,Yt.useEffect)(()=>{(async()=>{if(!kl||!ke)return;let vl=await Qe.getChatContextMessages(),na=await Qe.getSystemContextMessages();if(vl.length>0||na.length>0){let Xi=Pte(vl,kl),sI=Pte(na,kl),jc=Xi+sI;Cn(qd=>({...qd,totalTokens:jc,postTruncationTokens:jc}))}})()},[kl,ke,Qe]);let[Hr,Hi]=(0,Yt.useState)(void 0),ji=async()=>{try{let wt=await dY.load()||{mcpServers:{}},vl=Z?IGe(wt,Z):wt,na=new XA(T),Xi=new Rf(T,JSON.stringify(vl),na,A||[],O);await Xi.startServers(),Hi(Xi)}catch(wt){Qe.emit("session.error",{errorType:"mcp",message:`Failed to start MCP Servers: ${wt instanceof Error?wt.message:String(wt)}`}),Hi(void 0)}};(0,Yt.useEffect)(()=>{let wt=Hr?Object.keys(Hr.getConfig().mcpServers):[];if(wt.length>0){let vl=`Configured MCP servers: ${wt.join(", ")}`;Qe.emit("session.info",{infoType:"mcp",message:vl})}return()=>{Hr&&Hr.stopServers().catch(vl=>{T.error(`Error shutting down MCP host on cleanup: ${vl instanceof Error?vl.message:String(vl)}`)})}},[Hr]),(0,Yt.useEffect)(()=>{ji()},[]),(0,Yt.useEffect)(()=>{if(!Hr||!(Hr instanceof Rf))return;let wt=async(na,Xi)=>{try{na?await Hr.configureGitHubAuth(na)&&Qe.emit("session.info",{infoType:"mcp",message:"Connected to GitHub MCP Server"}):await Hr.removeGitHubAuth()&&Qe.emit("session.info",{infoType:"mcp",message:"Disconnected from GitHub MCP Server"})}catch(sI){T.error(`Error configuring GitHub MCP Server: ${sI}`)}};return l.onAuthChange(wt),(async()=>{try{let na=await l.getCurrentAuthInfo();na&&await wt(na)}catch(na){T.error(`Error applying existing auth to MCP host: ${na}`)}})(),()=>{l.removeAuthCallback(wt)}},[Hr]);let Rs=yGl(wt=>{cY.updateCurrentCommand(wt)}),[YN,lA]=uGl(),Bp=(0,Yt.useMemo)(()=>new lGe({cacheTimeout:5*6e4,includeDirsInIndex:!1,indexFileStats:!1,maxStatConcurrency:64,onIndexingStart:()=>lA.startIndexing(),onIndexingComplete:(wt,vl)=>lA.completeIndexing(wt,vl),logger:T}),[lA]),[yc,nb]=kbl(Rs,Bp,UG);(0,Yt.useEffect)(()=>{let wt=!1,vl=null,na=async()=>{await CI(),wt||(vl=setTimeout(()=>void na(),15e3))};return na(),()=>{wt=!0,vl&&clearTimeout(vl)}},[CI]);let Tb=(0,Yt.useCallback)(wt=>{Qe.emit("tool.execution_complete",{parentToolCallId:wt.parentToolCallId,toolCallId:wt.callId,success:wt.resultType==="success",result:wt.resultType==="success"?{content:wt.log}:void 0,error:wt.resultType!=="success"?{message:wt.log,code:wt.resultType}:void 0});let vl=setTimeout(()=>{CI()},500);return()=>clearTimeout(vl)},[Qe,CI]);(0,Yt.useEffect)(()=>{cY.initialize()},[]),(0,Yt.useEffect)(()=>{(async()=>{try{let vl=await l.getCurrentAuthInfo();vl?(co({status:"LoggedIn",authInfo:vl}),Qe.emit("session.info",{infoType:"authentication",message:lme(vl)})):co({status:"NotLoggedIn"})}catch{co({status:"NotLoggedIn"})}})()},[]),gGl(Ol,la.authInfo,Vt),(0,Yt.useEffect)(()=>{(async()=>{try{QI.env.COPILOT_ALLOW_ALL==="true"||await Ybe.isFolderTrusted(ko)?Br(1):(Br(2),tt(!0))}catch{QI.env.COPILOT_ALLOW_ALL==="true"?Br(1):(Br(2),tt(!0))}})()},[ko]),(0,Yt.useEffect)(()=>{gml().then(wt=>{hs(wt)}).catch(wt=>{T.error(`Error checking for updates: ${wt}`)})},[]),(0,Yt.useEffect)(()=>()=>{ul.current=!1},[]);let nA=(0,Yt.useMemo)(()=>iQe({customAgentsEnabled:t.CUSTOM_AGENTS,ccaDelegateEnabled:t.CCA_DELEGATE}),[t.CUSTOM_AGENTS,t.CCA_DELEGATE]),{slashCommands:VN,handleSlashCommand:K0,matchingSlashCommands:Tp}=AGl({builtInSlashCommands:nA,logger:T,currentWorkingDirectory:ko,setCurrentWorkingDirectory:Jg,fileSearch:Bp,authManager:l,mcpHost:Hr,loginStatus:la,setLoginStatus:co,addEntryToSession:Vt,clearSessionHistory:async()=>{let wt=await n.createSession({selectedModel:R});Se(wt)},getSessionUsageOutput:()=>Wve(ct),pathManager:UG,resetSessionToolApprovals:al.current.resetSessionToolApprovals,clearTimeline:qt,clearHeader:()=>Zo(!1),clearContextWindowMetrics:()=>Cn(wt=>({totalTokens:0,postTruncationTokens:0,tokenLimit:wt.tokenLimit,truncationStrategy:wt.truncationStrategy,messagesRemoved:0,tokensRemoved:0})),setThemePreference:x,refreshStatic:ve,customAgents:_e,slashCommandResultActions:{exit:Bt,showCustomAgentPickerDialog:()=>or(!0),showFeedbackDialog:()=>lb(!0),showLoginDialog:()=>mr(!0),showMCPDialog:(wt,vl)=>{gd(!0),wt&&Zd(wt),vl&&Pd(vl)},showModelPickerDialog:()=>Nc(!0),showSessionDialog:()=>pm(!0),showUserSwitcherDialog:()=>ti(!0),startRemoteDelegation:wt=>{An.startDelegation(wt,Qe.sessionId)},setModel:async wt=>{if(!wq(wt)){Qe.emit("session.error",{errorType:"user.model_selection",message:`Model "${wt}" is not supported. Please select a valid model.`});return}Yx(),await Qe.setSelectedModel(wt),pa(wt)}}}),{handleTabCompletion:wN,tabCyclingState:rA}=ZGl(VN,Rs,{setSlashCommandPickerIndex:Cu}),rb=(0,Yt.useMemo)(()=>{let wt=Tp(Rs.text);return rA||Cu(0),wt},[Tp,Rs.text,rA]),Op=(0,Yt.useMemo)(()=>{let wt=Rs.text,vl=rb[Es];if(!vl)return{suggestion:void 0,isHint:!1};let na=wt.trimEnd();return na===vl.name&&vl.args?{suggestion:wt!==na?vl.args:` ${vl.args}`,isHint:!0}:{suggestion:(vl.name+(vl.args?" ":"")).substring(wt.length),isHint:!1}},[Rs.text,Es,rb]),yy=(0,Yt.useCallback)(wt=>{mI||uQ||(async()=>{if(await cY.addCommand(wt),wt.startsWith("!")){let hr=wt.substring(1),ml=cu();Qe.emit("tool.user_requested",{toolCallId:ml,toolName:W7,arguments:{command:hr,description:`Execute shell command: ${hr}`}}),Kh=new AbortController;let Kn="";try{uQ=!0,de(!0);let fa=T7n(hr,{shell:!0,cwd:ko,env:QI.env,stdio:"pipe",signal:Kh.signal}),Na=[],Hu=!1,CN=sA=>{Hu||(Hu=sA.includes(13)),Na.push(sA);let oA=Buffer.concat(Na).toString("utf-8");Kn=Hu?bcl(oA):oA,Qe.emitEphemeral("tool.execution_partial_result",{toolCallId:ml,partialOutput:Kn})};fa.stderr.on("data",CN),fa.stdout.on("data",CN),fa.stdin.end();let VY=await new Promise((sA,oA)=>{fa.on("error",oA),fa.on("exit",(Up,xg)=>{xg?oA(new Error(`Process was killed with signal: ${xg}`)):sA(Up)})});Qe.emit("tool.execution_complete",{parentToolCallId:void 0,toolCallId:ml,isUserRequested:!0,success:VY===0,result:{content:Kn}})}catch(fa){Qe.emit("tool.execution_complete",{parentToolCallId:void 0,toolCallId:ml,isUserRequested:!0,success:!1,error:{message:`${Kn?`${Kn}
2499
2502
 
2500
2503
  `:""}Error executing shell command: ${fa instanceof Error?fa.message:String(fa)}`}})}finally{uQ=!1,aU=!1,Kh=null,de(!1)}return}if((await K0(wt)).handled)return;let na=null,Xi="You must be logged in to send messages. Please run /login";if(la.status==="Unknown")try{if(na=await l.getCurrentAuthInfo(),!na){Qe.emit("session.error",{errorType:"authentication",message:Xi});return}}catch{Qe.emit("session.error",{errorType:"authentication",message:Xi});return}else if(la.status!=="LoggedIn"){Qe.emit("session.error",{errorType:"authentication",message:Xi});return}else na=la.authInfo;if(Yr!==1){Qe.emit("session.error",{errorType:"folder_trust",message:"This folder is not trusted. Please confirm folder trust to continue."});return}let sI=ke?.type==="success"?ke.list:void 0,jc=await iO(R,Qe,sI,T);if(!jc){Qe.emit("session.error",{errorType:"model_selection",message:"No model available. Check policy enablement under GitHub Settings > Copilot"});return}let qd=await PGl(wt,yc.storedMentions,ko,T);Qe.emit("user.message",{content:wt,attachments:qd}),Xo(!0);try{await epl(e,wt,al.current,na,Tb,dt,Cn,ll,Ft,Qe,T,UG,ko,jc,_e.available,v??Ol.stream??!0,m,Hr,Ie,V,ye,!1,yl,_e.selected?{name:_e.selected.id,prompt:_e.selected.prompt,mcpServers:_e.selected.mcpServers||{}}:void 0,ke?.type==="success"?ke.list:void 0,X)}catch(hr){let ml=hr instanceof Error?hr.message:String(hr);Qe.emit("session.error",{errorType:"execution",message:`Execution failed: ${ml}`})}finally{ul.current&&(Xo(!1),Ol.beep!==!1&&QI.stdout.write(ap.beep),setTimeout(()=>void CI(),1e3))}})()},[e,mI,Tb,Hr,la,Yr,yc.storedMentions,_e.selected?.prompt,K0]),fu=(0,Yt.useCallback)(()=>{Wc||tb||(yc.isActive?nb.navigateUp():!cY.isNavigating()&&rb.length?Cu(wt=>wt>0?wt-1:rb.length-1):cY.navigateUp(Rs))},[Wc,tb,yc.isActive,nb,rb.length,Es,Rs]),q0=(0,Yt.useCallback)(()=>{Wc||tb||(yc.isActive?nb.navigateDown():!cY.isNavigating()&&rb.length?Cu(wt=>wt<rb.length-1?wt+1:0):cY.navigateDown(Rs))},[Wc,tb,yc.isActive,nb,rb.length,Es,Rs]);Zc((wt,vl)=>{if(vl.ctrl&&wt==="d"){Bt();return}if(vl.ctrl&&wt==="c"){if((mI||uQ)&&Kh&&!Kh.signal.aborted){aU=!0,Kh.abort(),Qe.emit("abort",{reason:"user initiated"}),hi();return}if(Rs.text.length>0){Rs.clear(),cY.resetNavigation(),hi();return}if(!Sb){hi();return}Bt()}if(vl.escape){(mI||uQ)&&Kh&&!Kh.signal.aborted&&(aU=!0,Kh.abort(),Qe.emit("abort",{reason:"user initiated"}));return}if(vl.ctrl&&wt==="r"){II();return}if(vl.ctrl&&wt==="o"){ba();return}if(!(mI||uQ||Wc||tb)){if(vl.tab||vl.return){if(yc.isActive){nb.complete();return}return}!vl.leftArrow&&!vl.rightArrow&&!vl.upArrow&&!vl.downArrow&&cY.setNavigating(!1)}}),(0,Yt.useEffect)(()=>{Bb(Rs.text.startsWith("!"))},[Rs.text]);let Pc=(0,Yt.useCallback)(()=>{An.advanceStage()},[An]),VQ=(0,Yt.useCallback)(()=>{An.cancelDelegation()},[An]),QN=(0,Yt.useCallback)(()=>{An.cancelDelegation(),n.createSession({selectedModel:R}).then(wt=>{Se(wt)}).catch(wt=>{T.error(`Error creating new session: ${wt instanceof Error?wt.message:String(wt)}`)}),Zo(!1),Cn(wt=>({totalTokens:0,postTruncationTokens:0,tokenLimit:wt.tokenLimit,truncationStrategy:wt.truncationStrategy,messagesRemoved:0,tokensRemoved:0})),setTimeout(()=>{ve()},200)},[An,n,ve]);(0,Yt.useEffect)(()=>{An.onSessionComplete(QN)},[An,QN]);let $0=_c(()=>{if(Gl)return ps?Yt.default.createElement(Nil,{onConfirm:Kn=>{(async()=>{try{Kn==="yes"?(await Sr.writeKey("screen_reader",!0),Qe.emit("session.info",{infoType:"configuration",message:"Enabled screen reader mode for future sessions."})):Kn==="never"&&(await Sr.writeKey("screen_reader",!1),Qe.emit("session.info",{infoType:"configuration",message:"Disabled screen reader mode for future sessions."})),Xl(!1)}catch(fa){Qe.emit("session.error",{errorType:"configuration",message:`Failed to update screen reader configuration: ${fa instanceof Error?fa.message:String(fa)}`})}})()}}):Yt.default.createElement(Yt.default.Fragment,null);if(ie)return ps?Yt.default.createElement(ssl,{folderPath:ko,onConfirm:Kn=>{let fa=()=>{Br(1),tt(!1)};Kn==="yes"?fa():Kn==="remember"?Ybe.addTrustedFolder(ko).then(()=>{fa(),Qe.emit("session.info",{infoType:"folder_trust",message:`Folder ${ko} has been added to trusted folders.`})}).catch(Na=>{Qe.emit("session.error",{errorType:"folder_trust",message:`Failed to add folder to trusted list: ${Na instanceof Error?Na.message:String(Na)}`})}):QI.exit(0)}}):Yt.default.createElement(Yt.default.Fragment,null);if(Gn)return Yt.default.createElement(asl,{customAgents:_e,onSubmission:Kn=>{(async()=>{if(Kn.kind!=="cancelled"){let fa=await ut(Kn.id);if(fa.kind==="error"){Vt({type:"error",text:`Failed to select custom agent: ${fa.message}`});return}Vt({type:"info",text:`Selected custom agent: ${Kn.displayName}`})}or(!1)})()}});if(xb)return Yt.default.createElement(Wil,{sessionId:Qe.sessionId,onClose:()=>{pm(!1)}});if(On)return Yt.default.createElement(Dol,{onLoginSuccess:(Kn,fa)=>{_c(async()=>{await l.loginUser(Kn,fa),mr(!1),Qe.emit("session.info",{infoType:"authentication",message:`Signed in successfully as ${tme({host:Kn,login:fa})}! You can now use Copilot.`}),co({status:"LoggedIn",authInfo:{type:"user",host:Kn,login:fa}})})},onLoginClose:()=>{mr(!1)}});if(br)return Yt.default.createElement(Kol,{initialMode:eo,initialServerName:Nd,onClose:()=>{gd(!1),Zd("list"),Pd(void 0)},onConfigSaved:()=>{ji().then(()=>{Qe.emit("session.info",{infoType:"mcp",message:"MCP configuration saved successfully! Changes will take effect immediately."})}).catch(Kn=>{Qe.emit("session.error",{errorType:"mcp",message:`Failed to reload MCP config. Error: ${Kn instanceof Error?Kn.message:String(Kn)}`})})}});if(bI)return Yt.default.createElement($ol,{models:ke,cliModel:R,session:Qe,onClose:()=>{Nc(!1)},onModelSelected:async Kn=>{Yx(),await Qe.setSelectedModel(Kn),(async()=>{try{let Na={...await Sr.load()||{},model:Kn};await Sr.write(Na)}catch{}})(),Qe.emit("session.info",{infoType:"model",message:`Model changed to: ${Kn}. The new model will be used for the next conversation.`}),pa(Kn)}});if(Wc)return Yt.default.createElement(fil,{authManager:l,initialAuth:la.status==="LoggedIn"?la.authInfo:null,onSelect:Kn=>{co({status:"LoggedIn",authInfo:Kn.authInfo}),ti(!1),Qe.emit("session.info",{infoType:"authentication",message:`Switched to ${nme(Kn.authInfo)}`}),l.switchToAuth(Kn)},onCancel:()=>ti(!1),onError:Kn=>{Qe.emit("session.error",{errorType:"authentication",message:`Failed to switch user. Error: ${Kn}`})}});if(tb){let{terminal:Kn,terminalName:fa}=tb;return Yt.default.createElement(tsl,{logger:T,terminal:Kn,terminalName:fa,onConfirm:Na=>{tA(null),Na?K0("/terminal-setup"):Vt({type:"info",text:`Skipped terminal setup for ${fa}. You can run /terminal-setup later to set it up manually.`})}})}if(Je){let Kn=vu.length;return Yt.default.createElement(Be,{flexDirection:"column"},Kn>0&&Yt.default.createElement(Be,{marginBottom:1},Yt.default.createElement(oe,{color:P.FG},"Permission request (",Kn," remaining)")),Yt.default.createElement(Gil,{request:Je.request,onConfirm:fa=>{Je.resolve(fa),fa.kind==="reject"&&vu.length>0&&!X&&kn(Na=>(Na.forEach(Hu=>{Hu.resolve({kind:"reject"})}),[])),Al(null)}}))}if(xs){let Kn=cn.length;return Yt.default.createElement(Be,{flexDirection:"column"},Kn>0&&Yt.default.createElement(Be,{marginBottom:1},Yt.default.createElement(oe,{color:P.FG},"Path confirmation (",Kn," remaining)")),Yt.default.createElement(eil,{paths:xs.paths,onConfirm:fa=>{xs.resolve(fa),Ss(null)}}))}let wt=mI||uQ,vl="Enter @ to mention files or / for commands",na=Op.suggestion,Xi=Op.isHint,sI=wt||aU,jc=!cY.isNavigating()&&rb.length>0,qd=yc.isActive,hr=!qd&&!jc,ml=_c(()=>aU?"cancelling":ce?"executing":"thinking");return Yt.default.createElement(Yt.default.Fragment,null,la.status==="NotLoggedIn"&&Yt.default.createElement(oe,{bold:!0,color:P.COPILOT},"Please use /login to sign in to use Copilot"),sI&&Yt.default.createElement(Be,{paddingBottom:1},Yt.default.createElement(Yil,{mode:ml,streamingResponseSize:on,currentIntent:Ce})),Yt.default.createElement(Be,{flexDirection:"row",columnGap:1},Yt.default.createElement(Be,{flexGrow:1},Yt.default.createElement(oe,null,Ql),wl&&Yt.default.createElement(oe,{color:P.MUTED},wl)),Yt.default.createElement(oe,{color:P.MUTED},Dn),_e.selected&&Yt.default.createElement(oe,{color:P.SELECTED,bold:!0},_e.selected?.displayName),Yt.default.createElement(rsl,{metrics:hn})),We?.stage?Yt.default.createElement(Zil,{state:We,onAdvance:Pc,onCancel:VQ,onStartNewSession:QN}):Yt.default.createElement(msl,{terminalWidth:Re.columns-qGl*2,onSubmit:yy,textCursorLocation:Rs,placeholder:vl,inlineSuggestion:na,inlineSuggestionIsHint:Xi,onTabCompletion:wN,disableEnterSubmit:wt||aU||yc.isActive,onUpArrow:fu,onDownArrow:q0}),jc&&Yt.default.createElement(Be,{paddingBottom:1},Yt.default.createElement(Ril,{options:rb,selectedIndex:Es,maxRows:10,showScrollHints:!0})),qd&&Yt.default.createElement(Be,{paddingBottom:1},Yt.default.createElement(DIl,{files:yc.suggestions.map(Kn=>Kn.relativePath),selectedIndex:yc.selectedIndex,maxRows:10,showScrollHints:!0,query:yc.query})),Yt.default.createElement(isl,{indexingIndicator:YN}),hr&&!We?.stage&&Yt.default.createElement(hsl,{quotaSnapshots:Ct,isRecentTimelineExpanded:tn!==null,isAllTimelineExpanded:El,showControlCMessage:Sb,inShellExecMode:_G}))}),FN=Yt.default.createElement(Be,{key:"header",flexDirection:"column"},Yt.default.createElement(Be,{flexDirection:"column"},Yt.default.createElement(lsl,{animationComplete:()=>go(!0),completed:ps,bannerConfig:c?"always":Ol.banner,loggerOverride:T,version:he.version}),Yt.default.createElement(Be,{flexDirection:"row",paddingX:1},Yt.default.createElement(oe,{color:P.MUTED},"Version ",he.version),he.buildMetadata&&Yt.default.createElement(Yt.default.Fragment,null,Yt.default.createElement(oe,{color:P.MUTED}," \xB7 "),Yt.default.createElement(oe,{color:P.MUTED},"Commit ",he.buildMetadata.gitCommit)))),Yt.default.createElement(Be,{flexDirection:"column",padding:1,gap:1},Yt.default.createElement(oe,{color:P.MUTED,wrap:"wrap"},"Copilot can write, test and debug code right from your terminal. Describe a task to get started or enter ? for help. Copilot uses AI, check for mistakes."))),aA=_t.filter(wt=>!("isHidden"in wt&&wt.isHidden)),IA=Gcl(aA),Ey=IA.staticEntries.map(wt=>Yt.default.createElement(Zbe,{key:wt.id,entry:wt,expand:Ga(wt),renderAsMarkdown:Ol.render_markdown})),eR=IA.dynamicEntries.map(wt=>Yt.default.createElement(Zbe,{key:wt.id,entry:wt,expand:Ga(wt),renderAsMarkdown:Ol.render_markdown})),zG=ps&&D;return Yt.default.createElement(CFe,{mode:"interactive"},re?Yt.default.createElement(Be,{flexDirection:"column",paddingX:1},Yt.default.createElement(Eil,{logger:T,sessionManager:n,onSessionSelected:wt=>{(async()=>{try{let vl=await n.getSession(wt);if(!vl)throw new Error("Failed to get session after resuming");Se(vl),se(!1),go(!0),Zo(!1)}catch(vl){Qe.emit("session.error",{errorType:"session",message:`Failed to resume session: ${vl instanceof Error?vl.message:String(vl)}`})}})()},onCancel:()=>{(async()=>{try{QI.exit(0)}catch(wt){Qe.emit("session.error",{errorType:"session",message:`Failed to restart with new session: ${wt instanceof Error?wt.message:String(wt)}`})}})()}})):Yt.default.createElement(Be,{flexDirection:"column"},zG&&Yt.default.createElement(Yt.default.Fragment,null,Yt.default.createElement(zhe,{key:K,items:[...jd?[FN]:[],...Ey]},wt=>wt),eR),!zG&&jd&&FN,!Nr&&Yt.default.createElement(Be,{flexDirection:"column",paddingX:qGl,paddingTop:jd?0:1},un?Yt.default.createElement(Isl,{onCancel:()=>lb(!1)}):$0),Nr&&Yt.default.createElement(Be,{flexDirection:"column",paddingX:1,rowGap:1},Nr.usage&&Yt.default.createElement(oe,{dimColor:!0},Nr.usage),Yt.default.createElement(vil,{packageName:he.name,checkUpdateResponse:Kd}),Nr.type==="routine"?Yt.default.createElement(oe,{color:P.ACCENT,bold:!0},"Shutting down..."):Yt.default.createElement(oe,{color:P.ERROR,bold:!0},`Shutting down: ${Nr.reason}`)),Yt.default.createElement(oe,null,K%2?"\u200C":"\u200D")))},lpl=D7n;var MEl=$e(tK(),1);var x$=$e(TEl(),1);function OEl(){(0,x$.install)(),(0,x$.setGlobalDispatcher)(new x$.EnvHttpProxyAgent({allowH2:!0}))}var VHe=class{constructor(e){this.logger=e;this.listenToErrors()}errorHandlers=[];formatError(e,l){if(l instanceof Error)return`${e}: ${l.message}
2501
2504
  ${l.stack}`;if(typeof l=="object"&&l!==null)try{return`${e}: ${JSON.stringify(l)}`}catch{return`${e}: [object with circular reference]`}else return`${e}: ${String(l)}`}addErrorHandler(e){this.errorHandlers.push(e)}listenToErrors(){process.on("uncaughtException",e=>{this.handleError("Uncaught Exception",e)}),process.on("unhandledRejection",e=>{this.handleError("Unhandled Rejection",e)})}handleError(e,l){this.logger.error(this.formatError(e,l)),this.errorHandlers.length===0&&(process.stderr.write(this.formatError(e,l)+`
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@github/copilot",
3
3
  "description": "GitHub Copilot CLI brings the power of Copilot coding agent directly to your terminal.",
4
- "version": "0.0.351-14",
4
+ "version": "0.0.351-16",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "type": "module",
7
7
  "repository": {
@@ -37,6 +37,6 @@
37
37
  "worker/**/*"
38
38
  ],
39
39
  "buildMetadata": {
40
- "gitCommit": "6416a65"
40
+ "gitCommit": "861cda9"
41
41
  }
42
42
  }
package/sdk/index.js CHANGED
@@ -1288,6 +1288,7 @@ You *must* avoid doing any of these things you cannot or must not do, and also *
1288
1288
  * Clean up temporary files at end of task
1289
1289
  * Use view/edit for existing files (not create - avoid data loss)
1290
1290
  * Ask for guidance if uncertain
1291
+ * Do not create markdown files for planning, notes, or tracking\u2014work in memory instead. Only create a markdown file when the user explicitly asks for that specific file by name or path.
1291
1292
  </tips_and_tricks>
1292
1293
 
1293
1294
  ${M7I(l,n,c,r,G,s,o)}