dirac-cli 0.3.14 → 0.3.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.mjs CHANGED
@@ -28,7 +28,7 @@ Expecting one of '${i.join("', '")}'`);return this._lifeCycleHooks[e]?this._life
28
28
  `),this.outputHelp({error:!0}));let i=r||{},a=i.exitCode||1,o=i.code||"commander.error";this._exit(a,o,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in F0.env){let r=e.attributeName();(this.getOptionValue(r)===void 0||["default","config","env"].includes(this.getOptionValueSource(r)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,F0.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new Znu(this.options),r=i=>this.getOptionValue(i)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(i));this.options.filter(i=>i.implied!==void 0&&r(i.attributeName())&&e.valueFromOption(this.getOptionValue(i.attributeName()),i)).forEach(i=>{Object.keys(i.implied).filter(a=>!r(a)).forEach(a=>{this.setOptionValueWithSource(a,i.implied[a],"implied")})})}missingArgument(e){let r=`error: missing required argument '${e}'`;this.error(r,{code:"commander.missingArgument"})}optionMissingArgument(e){let r=`error: option '${e.flags}' argument missing`;this.error(r,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(e){let r=`error: required option '${e.flags}' not specified`;this.error(r,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(e,r){let i=n=>{let s=n.attributeName(),u=this.getOptionValue(s),f=this.options.find(h=>h.negate&&s===h.attributeName()),d=this.options.find(h=>!h.negate&&s===h.attributeName());return f&&(f.presetArg===void 0&&u===!1||f.presetArg!==void 0&&u===f.presetArg)?f:d||n},a=n=>{let s=i(n),u=s.attributeName();return this.getOptionValueSource(u)==="env"?`environment variable '${s.envVar}'`:`option '${s.flags}'`},o=`error: ${a(e)} cannot be used with ${a(r)}`;this.error(o,{code:"commander.conflictingOption"})}unknownOption(e){if(this._allowUnknownOption)return;let r="";if(e.startsWith("--")&&this._showSuggestionAfterError){let a=[],o=this;do{let n=o.createHelp().visibleOptions(o).filter(s=>s.long).map(s=>s.long);a=a.concat(n),o=o.parent}while(o&&!o._enablePositionalOptions);r=QNn(e,a)}let i=`error: unknown option '${e}'${r}`;this.error(i,{code:"commander.unknownOption"})}_excessArguments(e){if(this._allowExcessArguments)return;let r=this.registeredArguments.length,i=r===1?"":"s",o=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${r} argument${i} but got ${e.length}.`;this.error(o,{code:"commander.excessArguments"})}unknownCommand(){let e=this.args[0],r="";if(this._showSuggestionAfterError){let a=[];this.createHelp().visibleCommands(this).forEach(o=>{a.push(o.name()),o.alias()&&a.push(o.alias())}),r=QNn(e,a)}let i=`error: unknown command '${e}'${r}`;this.error(i,{code:"commander.unknownCommand"})}version(e,r,i){if(e===void 0)return this._version;this._version=e,r=r||"-V, --version",i=i||"output the version number";let a=this.createOption(r,i);return this._versionOptionName=a.attributeName(),this._registerOption(a),this.on("option:"+a.name(),()=>{this._outputConfiguration.writeOut(`${e}
29
29
  `),this._exit(0,"commander.version",e)}),this}description(e,r){return e===void 0&&r===void 0?this._description:(this._description=e,r&&(this._argsDescription=r),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let r=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(r=this.commands[this.commands.length-1]),e===r._name)throw new Error("Command alias can't be the same as its name");let i=this.parent?._findCommand(e);if(i){let a=[i.name()].concat(i.aliases()).join("|");throw new Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${a}'`)}return r._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(r=>this.alias(r)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let r=this.registeredArguments.map(i=>$nu(i));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?r:[]).join(" ")}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}nameFromFilename(e){return this._name=o7.basename(e,o7.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let r=this.createHelp();return r.helpWidth===void 0&&(r.helpWidth=e&&e.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth()),r.formatHelp(this,r)}_getHelpContext(e){e=e||{};let r={error:!!e.error},i;return r.error?i=a=>this._outputConfiguration.writeErr(a):i=a=>this._outputConfiguration.writeOut(a),r.write=e.write||i,r.command=this,r}outputHelp(e){let r;typeof e=="function"&&(r=e,e=void 0);let i=this._getHelpContext(e);this._getCommandAndAncestors().reverse().forEach(o=>o.emit("beforeAllHelp",i)),this.emit("beforeHelp",i);let a=this.helpInformation(i);if(r&&(a=r(a),typeof a!="string"&&!Buffer.isBuffer(a)))throw new Error("outputHelp callback must return a string or a Buffer");i.write(a),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",i),this._getCommandAndAncestors().forEach(o=>o.emit("afterAllHelp",i))}helpOption(e,r){return typeof e=="boolean"?(e?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(e=e??"-h, --help",r=r??"display help for command",this._helpOption=this.createOption(e,r),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(e){return this._helpOption=e,this}help(e){this.outputHelp(e);let r=F0.exitCode||0;r===0&&e&&typeof e!="function"&&e.error&&(r=1),this._exit(r,"commander.help","(outputHelp)")}addHelpText(e,r){let i=["beforeAll","before","after","afterAll"];if(!i.includes(e))throw new Error(`Unexpected value for position to addHelpText.
30
30
  Expecting one of '${i.join("', '")}'`);let a=`${e}Help`;return this.on(a,o=>{let n;typeof r=="function"?n=r({error:o.error,command:o.command}):n=r,n&&o.write(`${n}
31
- `)}),this}_outputHelpIfRequested(e){let r=this._getHelpOption();r&&e.find(a=>r.is(a))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function UNn(t){return t.map(e=>{if(!e.startsWith("--inspect"))return e;let r,i="127.0.0.1",a="9229",o;return(o=e.match(/^(--inspect(-brk)?)$/))!==null?r=o[1]:(o=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(r=o[1],/^\d+$/.test(o[3])?a=o[3]:i=o[3]):(o=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(r=o[1],i=o[3],a=o[4]),r&&a!=="0"?`${r}=${i}:${parseInt(a)+1}`:e})}GNn.Command=Ltr});var KNn=re(u3=>{"use strict";var{Argument:HNn}=Ret(),{Command:Qtr}=qNn(),{CommanderError:eiu,InvalidArgumentError:VNn}=XDe(),{Help:tiu}=Rtr(),{Option:WNn}=Ptr();u3.program=new Qtr;u3.createCommand=t=>new Qtr(t);u3.createOption=(t,e)=>new WNn(t,e);u3.createArgument=(t,e)=>new HNn(t,e);u3.Command=Qtr;u3.Option=WNn;u3.Argument=HNn;u3.Help=tiu;u3.CommanderError=eiu;u3.InvalidArgumentError=VNn;u3.InvalidOptionArgumentError=VNn});var c3,ZDe=$(()=>{c3="0.3.14"});var Gtr={};Gn(Gtr,{originalConsoleDebug:()=>$Nn,originalConsoleError:()=>Det,originalConsoleInfo:()=>jNn,originalConsoleLog:()=>s7,originalConsoleWarn:()=>JNn,restoreConsole:()=>niu,suppressConsoleUnlessVerbose:()=>Utr});function Utr(t=process.argv){t.includes("-v")||t.includes("--verbose")||(console.log=()=>{},console.warn=()=>{},console.error=()=>{},console.debug=()=>{},console.info=()=>{})}function niu(){console.log=s7,console.error=Det,console.warn=JNn,console.info=jNn,console.debug=$Nn}var s7,Det,JNn,jNn,$Nn,xhe=$(()=>{"use strict";s7=console.log.bind(console),Det=console.error.bind(console),JNn=console.warn.bind(console),jNn=console.info.bind(console),$Nn=console.debug.bind(console)});var sS={};Gn(sS,{Spinner:()=>Htr,centerText:()=>hee,clearLine:()=>liu,colorize:()=>zC,cursorUp:()=>diu,formatMessage:()=>ZNn,formatState:()=>ciu,formatTimestamp:()=>XNn,print:()=>Ihe,printError:()=>e4e,printInfo:()=>al,printSuccess:()=>fiu,printWarning:()=>oS,promptConfirmation:()=>hiu,promptUser:()=>t7n,separator:()=>qtr,setTerminalTitle:()=>ket,style:()=>Us,taskHeader:()=>e7n});function hee(t,e){let r=e||process.stdout.columns||80,i=Math.max(0,Math.floor((r-t.length)/2));return" ".repeat(i)+t}function zC(t,...e){return e.join("")+t+Fg.reset}function XNn(t){return new Date(t).toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function iiu(t){if(t.type==="ask")switch(t.ask){case"followup":return"\u2753";case"command":return"\u2699\uFE0F ";case"tool":case"plan_mode_respond":case"act_mode_respond":case"use_subagents":return"\u{1F527}";case"completion_result":return"\u2705";case"api_req_failed":return"\u274C";case"resume_task":case"resume_completed_task":return"\u25B6\uFE0F ";case"browser_action_launch":return"\u{1F310}";default:return"\u2754"}switch(t.say){case"task":return"\u{1F4CB}";case"error":return"\u274C";case"text":return"\u{1F4AC}";case"reasoning":return"\u{1F9E0}";case"completion_result":return"\u2705";case"user_feedback":case"user_feedback_diff":return"\u{1F464}";case"command":case"command_output":return"\u2699\uFE0F ";case"tool":return"\u{1F527}";case"browser_action":case"browser_action_launch":case"browser_action_result":return"\u{1F310}";case"api_req_started":case"api_req_finished":case"api_req_retried":return"\u{1F504}";case"checkpoint_created":return"\u{1F4BE}";case"info":return"\u2139\uFE0F ";default:return" "}}function ZNn(t,e=!1){let r=XNn(t.ts),i=[];t.reasoning&&t.say!=="reasoning"&&i.push(`${Us.dim(r)} \u{1F9E0} ${Us.dim("Thinking:")} ${Us.italic(t.reasoning)}`);let a=iiu(t),o=`${Us.dim(r)} ${a}`,n=siu(t);if(n){let s="Tool Call";t.type==="ask"&&(s="Use tool?"),i.push(`${o} ${Us.tool(s)} ${Us.bold(n)}: ${t.text||""}`)}else if(t.type==="ask"){let s=aiu(t,o,e);s&&i.push(s)}else{let s=oiu(t,o,e);s&&i.push(s)}return i.filter(Boolean).join(`
31
+ `)}),this}_outputHelpIfRequested(e){let r=this._getHelpOption();r&&e.find(a=>r.is(a))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function UNn(t){return t.map(e=>{if(!e.startsWith("--inspect"))return e;let r,i="127.0.0.1",a="9229",o;return(o=e.match(/^(--inspect(-brk)?)$/))!==null?r=o[1]:(o=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(r=o[1],/^\d+$/.test(o[3])?a=o[3]:i=o[3]):(o=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(r=o[1],i=o[3],a=o[4]),r&&a!=="0"?`${r}=${i}:${parseInt(a)+1}`:e})}GNn.Command=Ltr});var KNn=re(u3=>{"use strict";var{Argument:HNn}=Ret(),{Command:Qtr}=qNn(),{CommanderError:eiu,InvalidArgumentError:VNn}=XDe(),{Help:tiu}=Rtr(),{Option:WNn}=Ptr();u3.program=new Qtr;u3.createCommand=t=>new Qtr(t);u3.createOption=(t,e)=>new WNn(t,e);u3.createArgument=(t,e)=>new HNn(t,e);u3.Command=Qtr;u3.Option=WNn;u3.Argument=HNn;u3.Help=tiu;u3.CommanderError=eiu;u3.InvalidArgumentError=VNn;u3.InvalidOptionArgumentError=VNn});var c3,ZDe=$(()=>{c3="0.3.15"});var Gtr={};Gn(Gtr,{originalConsoleDebug:()=>$Nn,originalConsoleError:()=>Det,originalConsoleInfo:()=>jNn,originalConsoleLog:()=>s7,originalConsoleWarn:()=>JNn,restoreConsole:()=>niu,suppressConsoleUnlessVerbose:()=>Utr});function Utr(t=process.argv){t.includes("-v")||t.includes("--verbose")||(console.log=()=>{},console.warn=()=>{},console.error=()=>{},console.debug=()=>{},console.info=()=>{})}function niu(){console.log=s7,console.error=Det,console.warn=JNn,console.info=jNn,console.debug=$Nn}var s7,Det,JNn,jNn,$Nn,xhe=$(()=>{"use strict";s7=console.log.bind(console),Det=console.error.bind(console),JNn=console.warn.bind(console),jNn=console.info.bind(console),$Nn=console.debug.bind(console)});var sS={};Gn(sS,{Spinner:()=>Htr,centerText:()=>hee,clearLine:()=>liu,colorize:()=>zC,cursorUp:()=>diu,formatMessage:()=>ZNn,formatState:()=>ciu,formatTimestamp:()=>XNn,print:()=>Ihe,printError:()=>e4e,printInfo:()=>al,printSuccess:()=>fiu,printWarning:()=>oS,promptConfirmation:()=>hiu,promptUser:()=>t7n,separator:()=>qtr,setTerminalTitle:()=>ket,style:()=>Us,taskHeader:()=>e7n});function hee(t,e){let r=e||process.stdout.columns||80,i=Math.max(0,Math.floor((r-t.length)/2));return" ".repeat(i)+t}function zC(t,...e){return e.join("")+t+Fg.reset}function XNn(t){return new Date(t).toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function iiu(t){if(t.type==="ask")switch(t.ask){case"followup":return"\u2753";case"command":return"\u2699\uFE0F ";case"tool":case"plan_mode_respond":case"act_mode_respond":case"use_subagents":return"\u{1F527}";case"completion_result":return"\u2705";case"api_req_failed":return"\u274C";case"resume_task":case"resume_completed_task":return"\u25B6\uFE0F ";case"browser_action_launch":return"\u{1F310}";default:return"\u2754"}switch(t.say){case"task":return"\u{1F4CB}";case"error":return"\u274C";case"text":return"\u{1F4AC}";case"reasoning":return"\u{1F9E0}";case"completion_result":return"\u2705";case"user_feedback":case"user_feedback_diff":return"\u{1F464}";case"command":case"command_output":return"\u2699\uFE0F ";case"tool":return"\u{1F527}";case"browser_action":case"browser_action_launch":case"browser_action_result":return"\u{1F310}";case"api_req_started":case"api_req_finished":case"api_req_retried":return"\u{1F504}";case"checkpoint_created":return"\u{1F4BE}";case"info":return"\u2139\uFE0F ";default:return" "}}function ZNn(t,e=!1){let r=XNn(t.ts),i=[];t.reasoning&&t.say!=="reasoning"&&i.push(`${Us.dim(r)} \u{1F9E0} ${Us.dim("Thinking:")} ${Us.italic(t.reasoning)}`);let a=iiu(t),o=`${Us.dim(r)} ${a}`,n=siu(t);if(n){let s="Tool Call";t.type==="ask"&&(s="Use tool?"),i.push(`${o} ${Us.tool(s)} ${Us.bold(n)}: ${t.text||""}`)}else if(t.type==="ask"){let s=aiu(t,o,e);s&&i.push(s)}else{let s=oiu(t,o,e);s&&i.push(s)}return i.filter(Boolean).join(`
32
32
  `)}function aiu(t,e,r){let i=t.ask;switch(i){case"followup":{let a=t.text||"";try{a=JSON.parse(t.text||"{}").question||a}catch{}return`${e} ${Us.info("Question:")} ${a}`}case"completion_result":return`${e} ${Us.success("Task completed")} ${t.text?`- ${t.text}`:""}`;case"api_req_failed":return`${e} ${Us.error("API request failed")} ${t.text||""}`;case"resume_task":case"resume_completed_task":return`${e} ${Us.info("Resume task?")} ${t.text||""}`;default:return r?`${e} [ASK:${i}] ${t.text||""}`:""}}function oiu(t,e,r){let i=t.say;switch(i){case"task":return`${e} ${Us.task("Task:")} ${t.text||""}`;case"text":return`${e} ${Us.assistant(t.text||"")}`;case"reasoning":return`${e} ${Us.dim("Thinking:")} ${Us.italic(t.text||"")}`;case"error":return`${e} ${Us.error("Error:")} ${t.text||""}`;case"completion_result":return`${e} ${Us.success("\u2713 Completed:")} ${t.text||""}`;case"user_feedback":case"user_feedback_diff":return`${e} ${Us.user("User:")} ${t.text||""}`;case"command":return`${e} ${Us.command("Command:")} ${Us.code(t.text||"")}`;case"command_output":{let a=t.text||"",o=a.length>500?a.substring(0,500)+"...":a;return`${e} ${Us.dim("Output:")} ${o}`}case"browser_action_result":return`${e} ${Us.dim("Browser result")} ${t.text?`- ${t.text.substring(0,100)}...`:""}`;case"api_req_started":case"api_req_finished":return uiu(t,e,r);case"checkpoint_created":return`${e} ${Us.success("Checkpoint created")} ${t.text||""}`;case"info":return`${e} ${Us.info(t.text||"")}`;case"hook_status":return`${e} ${Us.dim("Hook:")} ${t.text||""}`;default:return r?`${e} [SAY:${i}] ${t.text||""}`:""}}function siu(t){if(t.type==="say"&&t.say==="tool")return"tool";if(t.type==="ask"){let e=["tool","command","browser_action_launch","plan_mode_respond","act_mode_respond","use_subagents"];if(t.ask&&e.includes(t.ask))return t.ask}return null}function uiu(t,e,r){if(t.say==="api_req_started")return r?`${e} ${Us.api("API request started")}`:"";try{let i=JSON.parse(t.text||"{}");if(i.cost!==void 0||i.tokensIn!==void 0){let a=i.cost!==void 0?`Cost: $${i.cost.toFixed(4)}`:"",o=i.tokensIn!==void 0?`Tokens: ${i.tokensIn.toLocaleString()} in, ${i.tokensOut.toLocaleString()} out${i.reasoningTokens?` (+${i.reasoningTokens.toLocaleString()} thinking)`:""}`:"",n=i.cacheReads!==void 0||i.cacheWrites!==void 0?` (Cache: ${(i.cacheReads||0).toLocaleString()} read, ${(i.cacheWrites||0).toLocaleString()} write)`:"",s=i.contextWindow!==void 0?` | Context: ${i.contextUsagePercentage}% of ${(i.contextWindow/1e3).toFixed(0)}K`:"";return`${e} ${Us.api("API request finished")} ${Us.dim(`[${o}${n}${s} | ${a}]`)}`}}catch{}return r?`${e} ${Us.api("API request finished")}`:""}function qtr(t="\u2500",e=60){return Us.dim(t.repeat(e))}function e7n(t,e){return[qtr("\u2550"),Us.bold(` Task: ${t}`),e?` ${Us.dim(e.substring(0,80))}${e.length>80?"...":""}`:"",qtr("\u2550")].filter(Boolean).join(`
33
33
  `)}function ciu(t,e=!1){let r=[];if(t.currentTaskItem&&r.push(e7n(t.currentTaskItem.id,t.currentTaskItem.task)),t.diracMessages&&t.diracMessages.length>0){let i=e?t.diracMessages:t.diracMessages.filter(a=>!0);for(let a of i){let o=ZNn(a,e);o&&r.push(o)}}return r.join(`
34
34
  `)}function liu(){process.stdout.write("\r\x1B[K")}function diu(t=1){process.stdout.write(`\x1B[${t}A`)}function Ihe(t){s7(t)}function e4e(t){Det(Us.error(t))}function fiu(t){s7(Us.success(t))}function al(t){s7(Us.info(t))}function oS(t){s7(Us.warning(t))}async function t7n(t){let r=(await import("readline")).createInterface({input:process.stdin,output:process.stdout});return new Promise(i=>{r.question(Us.info(t)+" ",a=>{r.close(),i(a.trim())})})}async function hiu(t){let e=await t7n(`${t} ${Us.dim("(y/n)")}`);return e.toLowerCase()==="y"||e.toLowerCase()==="yes"}function ket(t){if(process.stdout.isTTY){let r=t.length>80?t.slice(0,80)+"...":t;process.stdout.write(`\x1B]0;${r}\x07`)}}var Fg,Us,Htr,DA=$(()=>{"use strict";xhe();Fg={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m"};Us={bold:t=>zC(t,Fg.bold),dim:t=>zC(t,Fg.dim),italic:t=>zC(t,Fg.italic),error:t=>zC(t,Fg.red,Fg.bold),warning:t=>zC(t,Fg.yellow),success:t=>zC(t,Fg.green),info:t=>zC(t,Fg.cyan),task:t=>zC(t,Fg.brightWhite,Fg.bold),tool:t=>zC(t,Fg.blue),command:t=>zC(t,Fg.magenta),api:t=>zC(t,Fg.brightBlack),user:t=>zC(t,Fg.green),assistant:t=>zC(t,Fg.cyan),path:t=>zC(t,Fg.underline,Fg.blue),code:t=>zC(t,Fg.bgBlack,Fg.brightWhite)};Htr=class{frames=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];frameIndex=0;interval=null;message="";start(e){this.message=e,this.interval=setInterval(()=>{let r=this.frames[this.frameIndex];process.stdout.write(`\r${Us.info(r)} ${this.message}`),this.frameIndex=(this.frameIndex+1)%this.frames.length},80)}update(e){this.message=e}stop(e){this.interval&&(clearInterval(this.interval),this.interval=null),e?process.stdout.write(`\r${Us.success("\u2713")} ${e}
@@ -1803,7 +1803,7 @@ https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};var fY
1803
1803
  `).replace(/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])/g,"").replace(/\x9B[0-?]*[ -/]*[@-~]/g,"").replace(/\x1B\][0-9;]*(?:\x07|\x1B\\)/g,"").replace(/[\x00-\x09\x0B-\x0C\x0E-\x1F\x7F]/g,"").replace(/\x1B[PD].*?\x1B\\/g,"").replace(/\x1B_.*?\x1B\\/g,"").replace(/\x1B\^.*?\x1B\\/g,"").replace(/\x1B\[[\d;]*[HfABCDEFGJKST]/g,"").replace(/^(?:PS )?[A-Z]:\\[^\n]*$/gm,"").replace(/^;?Cwd=.*$/gm,"").replace(/\\x[0-9a-fA-F]{2}/g,"").replace(/\\u[0-9a-fA-F]{4}/g,"").replace(/\n{3,}/g,`
1804
1804
 
1805
1805
  `).trim():""}cleanMessageContent(e){if(!e)return e;if(typeof e=="string")return this.cleanTerminalOutput(e);if(Array.isArray(e))return e.map(r=>this.cleanMessageContent(r));if(typeof e=="object"){let r={};for(let[i,a]of Object.entries(e))r[i]=this.cleanMessageContent(a);return r}return e}async*createMessage(e,r,i){this.ensureCleanState();let a=await this.getClient(),o=this.cleanTerminalOutput(e),n=r.map(d=>({...d,content:this.cleanMessageContent(d.content)})),s=[(void 0).Assistant(o),...hMs(n)];this.currentRequestCancellation=new(void 0);let u=await this.calculateTotalInputTokens(s),f="";try{let d={justification:`Dirac would like to use '${a.name}' from '${a.vendor}', Click 'Allow' to proceed.`,tools:i?.map(p=>{let A=p.function||p;return{name:A.name,description:A.description,inputSchema:A.parameters||A.input_schema}})},h=await a.sendRequest(s,d,this.currentRequestCancellation.token);for await(let p of h.stream)if(p instanceof void 0){if(typeof p.value!="string"){Qe.warn("Dirac <Language Model API>: Invalid text part value received:",p.value);continue}f+=p.value,yield{type:"text",text:p.value}}else if(p instanceof void 0)try{if(!p.name||typeof p.name!="string"){Qe.warn("Dirac <Language Model API>: Invalid tool name received:",p.name);continue}if(!p.callId||typeof p.callId!="string"){Qe.warn("Dirac <Language Model API>: Invalid tool callId received:",p.callId);continue}if(!p.input||typeof p.input!="object"){Qe.warn("Dirac <Language Model API>: Invalid tool input received:",p.input);continue}Qe.debug("Dirac <Language Model API>: Processing tool call:",{name:p.name,callId:p.callId,inputSize:JSON.stringify(p.input).length}),yield{type:"tool_calls",tool_call:{call_id:p.callId,function:{id:p.callId,name:p.name,arguments:JSON.stringify(p.input)}}}}catch(A){Qe.error("Dirac <Language Model API>: Failed to process tool call:",A)}else Qe.warn("Dirac <Language Model API>: Unknown chunk type received:",p);let c=await this.countTokens(f);yield{type:"usage",inputTokens:u,outputTokens:c,totalCost:m_e(this.getModel().info,u,c)}}catch(d){if(this.ensureCleanState(),d instanceof void 0)throw new Error("Dirac <Language Model API>: Request cancelled by user");if(d instanceof Error)throw Qe.error("Dirac <Language Model API>: Stream error details:",{message:d.message,stack:d.stack,name:d.name}),d;if(typeof d=="object"&&d!==null){let c=JSON.stringify(d,null,2);throw Qe.error("Dirac <Language Model API>: Stream error object:",c),new Error(`Dirac <Language Model API>: Response stream error: ${c}`)}let h=String(d);throw Qe.error("Dirac <Language Model API>: Unknown stream error:",h),new Error(`Dirac <Language Model API>: Response stream error: ${h}`)}}getModel(){if(this.client){let r={id:this.client.id,vendor:this.client.vendor,family:this.client.family,version:this.client.version,maxInputTokens:this.client.maxInputTokens};for(let[n,s]of Object.entries(r))!s&&s!==0&&Qe.warn(`Dirac <Language Model API>: Client missing ${n} property`);let i=[this.client.vendor,this.client.family,this.client.version].filter(Boolean),a=this.client.id||i.join(B3n),o={maxTokens:-1,contextWindow:typeof this.client.maxInputTokens=="number"?Math.max(0,this.client.maxInputTokens):Nm.contextWindow,supportsImages:!1,supportsPromptCache:!0,inputPrice:0,outputPrice:0,description:`VSCode Language Model: ${a}`};return{id:a,info:o}}let e=this.options.vsCodeLmModelSelector?dMs(this.options.vsCodeLmModelSelector):"vscode-lm";return Qe.debug("Dirac <Language Model API>: No client available, using fallback model info"),{id:e,info:{...Nm,description:`VSCode Language Model (Fallback): ${e}`}}}async completePrompt(e){try{let i=await(await this.getClient()).sendRequest([(void 0).User(e)],{},new(void 0)().token),a="";for await(let o of i.stream)o instanceof void 0&&(a+=o.value);return a}catch(r){throw r instanceof Error?new Error(`VSCode LM completion error: ${r.message}`):r}}};Ta([Ra()],Hje.prototype,"createMessage",1)});var gMs,mMs=$(()=>{"use strict";gMs=" Use @workspace:path syntax (e.g., @frontend:src/index.ts) to specify a workspace."});function EMs(t,e){if(t.contextRequirements&&!t.contextRequirements(e))throw new Error(`Tool ${t.name} does not meet context requirements`);let r={},i=[];if(t.parameters)for(let o of t.parameters){if(o.contextRequirements&&!o.contextRequirements(e))continue;o.required&&i.push(o.name);let n=o.type||"string",s={type:n,description:wBe(k3n(o.instruction,e),e)};n==="array"&&o.items&&(s.items=o.items),n==="object"&&o.properties&&(s.properties=o.properties);let u=new Set(["name","required","instruction","usage","dependencies","description","contextRequirements","type","items","properties"]);for(let f in o)!u.has(f)&&o[f]!==void 0&&(s[f]=o[f]);o.usage&&(s.description+=` Example: ${o.usage}`),r[o.name]=s}return{type:"function",function:{name:t.name,description:wBe(t.description,e),strict:!1,parameters:{type:"object",properties:r,required:i,additionalProperties:!1}}}}function R3n(t,e){if(t.contextRequirements&&!t.contextRequirements(e))throw new Error(`Tool ${t.name} does not meet context requirements`);let r={},i=[];if(t.parameters)for(let o of t.parameters){if(o.contextRequirements&&!o.contextRequirements(e))continue;o.required&&i.push(o.name);let n=o.type||"string",s={type:n,description:wBe(k3n(o.instruction,e),e)};n==="array"&&o.items&&(s.items=o.items),n==="object"&&o.properties&&(s.properties=o.properties);let u=new Set(["name","required","instruction","usage","dependencies","description","contextRequirements","type","items","properties"]);for(let f in o)!u.has(f)&&o[f]!==void 0&&(s[f]=o[f]);r[o.name]=s}return{name:t.name,description:wBe(t.description,e),input_schema:{type:"object",properties:r,required:i}}}function D3n(t,e){if(t.contextRequirements&&!t.contextRequirements(e))throw new Error(`Tool ${t.name} does not meet context requirements`);let r=n=>{let s=erh[n.type||"string"]||dw.OBJECT,u={type:s};if(n.description&&(u.description=n.description),n.enum&&(u.enum=n.enum),(s==="OBJECT"||s===dw.OBJECT)&&n.properties){u.properties={};let d=[];for(let[h,c]of Object.entries(n.properties))h!=="$schema"&&(u.properties[h]=r(c),(c.required||Array.isArray(n.required)&&n.required.includes(h))&&d.push(h));d.length>0&&(u.required=d)}(s==="ARRAY"||s===dw.ARRAY)&&n.items&&(u.items=r(n.items));let f=new Set(["type","description","enum","properties","required","items","instruction","name","usage","dependencies","contextRequirements"]);for(let d in n)!f.has(d)&&n[d]!==void 0&&(u[d]=n[d]);return u},i={},a=[];if(t.parameters)for(let n of t.parameters){if(n.contextRequirements&&!n.contextRequirements(e)||!n.name)continue;n.required&&a.push(n.name);let s=r(n);if(n.instruction){let u=wBe(k3n(n.instruction,e),e);u&&(s.description=u)}i[n.name]=s}return{name:t.name,description:wBe(t.description,e),parameters:{type:dw.OBJECT,properties:i,required:a}}}function yMs(t){if(t.type==="function"){let e=t.function;return{name:e.name,description:e.description||"",input_schema:{type:"object",...Object.keys(e.parameters?.properties||{}).length>0?{properties:e.parameters?.properties,required:e.parameters?.required||[]}:{}}}}return{name:t.custom.name,description:t.custom.description||"",input_schema:{type:"object",required:t.custom.format?.type==="text"?["text"]:[],properties:t.custom.format?.type==="text"?{text:{type:"string"}}:{grammar:{type:"object"}}}}}function wBe(t,e){let r=e.browserSettings?.viewport?.width||900,i=e.browserSettings?.viewport?.height||600,a=e.cwd||process.cwd(),o=e.isMultiRootEnabled?gMs:"";return t.replace(/{{BROWSER_VIEWPORT_WIDTH}}/g,String(r)).replace(/{{BROWSER_VIEWPORT_HEIGHT}}/g,String(i)).replace(/{{CWD}}/g,a).replace(/{{MULTI_ROOT_HINT}}/g,o)}function k3n(t,e){return typeof t=="function"?t(e):t}var erh,M3n=$(()=>{"use strict";N8t();mMs();erh={string:"STRING",number:"NUMBER",integer:"NUMBER",boolean:"BOOLEAN",object:"OBJECT",array:"ARRAY"}});var CMs,trh,rrh,vMs,nrh,P3n,pE,BBe=$(()=>{"use strict";Gs();Uo();br();spe();CMs="Iv1.b507a08c87ecfe98",trh="https://github.com/login/device/code",rrh="https://github.com/login/oauth/access_token",vMs=3e3,nrh=Vi.object({type:Vi.literal("github-copilot"),access_token:Vi.string().min(1),email:Vi.string().optional()}),P3n=class{credentials=null;async loadCredentials(){try{let r=Gi.get().getSecretKey("github-copilot-oauth-credentials");if(!r)return null;let i=JSON.parse(r);return this.credentials=nrh.parse(i),this.credentials}catch(e){return Qe.error("[github-copilot-auth] Failed to load credentials:",e),null}}async saveCredentials(e){let r=Gi.get();r.setSecret("github-copilot-oauth-credentials",JSON.stringify(e)),await r.flushPendingState(),this.credentials=e}async clearCredentials(){let e=Gi.get();e.setSecret("github-copilot-oauth-credentials",void 0),await e.flushPendingState(),this.credentials=null}async getEmail(){return this.credentials||await this.loadCredentials(),this.credentials?.email||null}async getAccessToken(){return this.credentials||await this.loadCredentials(),this.credentials?.access_token||null}async isAuthenticated(){return this.credentials||await this.loadCredentials(),this.credentials!==null}async initiateDeviceFlow(){let e=await Ga(trh,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({client_id:CMs,scope:"read:user"})});if(!e.ok)throw new Error(`Failed to initiate device authorization: ${e.statusText}`);return await e.json()}async pollForToken(e,r){let i=r;for(;;){let a=await Ga(rrh,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({client_id:CMs,device_code:e,grant_type:"urn:ietf:params:oauth:grant-type:device_code"})});if(!a.ok)throw new Error(`Token polling failed: ${a.statusText}`);let o=await a.json();if(o.access_token){let n;try{let u=await Ga("https://api.github.com/user",{headers:{Authorization:`Bearer ${o.access_token}`,Accept:"application/json"}});if(u.ok){let f=await u.json();n=f.email||f.login}}catch(u){Qe.error("[github-copilot-auth] Failed to fetch user info:",u)}let s={type:"github-copilot",access_token:o.access_token,email:n};return await this.saveCredentials(s),s}if(o.error==="authorization_pending"){await new Promise(n=>setTimeout(n,i*1e3+vMs));continue}if(o.error==="slow_down"){i=(o.interval||i)+5,await new Promise(n=>setTimeout(n,i*1e3+vMs));continue}throw o.error==="expired_token"?new Error("The device code has expired. Please try again."):o.error==="access_denied"?new Error("Access denied by user."):new Error(`OAuth error: ${o.error_description||o.error}`)}}},pE=new P3n});async function CYt(t){let e=Math.floor(Date.now()/1e3);if(EYt&&EYt.expires_at>e+60)return EYt.token;let r=await Ga(irh,{headers:{Authorization:`token ${t}`,"User-Agent":"Dirac-CLI/1.0.0"}});if(!r.ok){let a=await r.text();throw new Error(`Failed to exchange GitHub token for Copilot token: ${r.status} - ${a}`)}let i=await r.json();return EYt=i,i.token}async function vYt(t){let e=await Ga(`${yYt}/models`,{headers:{Authorization:`Bearer ${t}`,...O3n}});if(!e.ok)throw new Error(`Failed to fetch models: ${e.statusText}`);let i=(await e.json()).data.filter(o=>o.policy?.state!=="disabled"),a=[];for(let o of i){let n=arh.shape.data.element.safeParse(o);n.success?a.push(n.data):Qe.warn(`[github-copilot] Skipping model ${o.id} due to schema mismatch: ${n.error.message}`)}return a}function bMs(t){return{...Nm,name:t.name,contextWindow:t.capabilities.limits.max_context_window_tokens,maxTokens:t.capabilities.limits.max_output_tokens,supportsTools:t.capabilities.supports.tool_calls,supportsImages:t.capabilities.supports.vision,description:`GitHub Copilot: ${t.name}`}}var yYt,irh,arh,O3n,EYt,F3n=$(()=>{"use strict";Uo();br();spe();Bo();yYt="https://api.githubcopilot.com",irh="https://api.github.com/copilot_internal/v2/token",arh=Vi.object({data:Vi.array(Vi.object({model_picker_enabled:Vi.boolean().optional(),id:Vi.string(),name:Vi.string(),version:Vi.string(),supported_endpoints:Vi.array(Vi.string()).optional(),policy:Vi.object({state:Vi.string().optional()}).optional(),capabilities:Vi.object({family:Vi.string(),limits:Vi.object({max_context_window_tokens:Vi.number(),max_output_tokens:Vi.number(),max_prompt_tokens:Vi.number().optional(),vision:Vi.object({max_prompt_image_size:Vi.number(),max_prompt_images:Vi.number(),supported_media_types:Vi.array(Vi.string())}).optional()}),supports:Vi.object({adaptive_thinking:Vi.boolean().optional(),max_thinking_budget:Vi.number().optional(),min_thinking_budget:Vi.number().optional(),reasoning_effort:Vi.array(Vi.string()).optional(),streaming:Vi.boolean(),structured_outputs:Vi.boolean().optional(),tool_calls:Vi.boolean(),vision:Vi.boolean().optional()})})}))}),O3n={"Editor-Version":"vscode/1.95.3","Editor-Plugin-Version":"copilot-chat/0.22.2","User-Agent":"GitHubCopilotChat/0.22.2","x-github-api-version":"2023-07-07","x-initiator":"user"},EYt=null});var bYt,SMs=$(()=>{"use strict";Bo();M3n();Nun();br();BBe();Uo();lf();Cd();F3n();bYt=class{options;modelId;constructor(e){this.options=e,this.modelId=e.apiModelId||"gpt-4o"}async*createMessage(e,r,i){let a=await pE.getAccessToken();if(!a)throw new Error("Not authenticated with GitHub Copilot. Please sign in.");let o=await CYt(a),n;try{n=(await vYt(o)).find(m=>m.id===this.modelId)}catch(A){Qe.error("[github-copilot] Failed to fetch models:",A)}let s=n?.supported_endpoints?.includes("/v1/messages")??!1,u=s?`${yYt}/v1/messages`:`${yYt}/chat/completions`,f={Authorization:`Bearer ${o}`,"Content-Type":"application/json",...O3n},d=is(i),h=i?i.map(A=>A.input_schema?A:yMs(A)):void 0,c;s?c={model:this.modelId,system:e,messages:r.map(A=>L8t(A)),tools:h,tool_choice:h?{type:"auto"}:void 0,max_tokens:n?.capabilities.limits.max_output_tokens||4096,stream:!0}:c={model:this.modelId,messages:[{role:"system",content:e},...Ao(r,void 0,this.getModel().info.supportsImages!==!1)],...d,max_tokens:n?.capabilities.limits.max_output_tokens||4096,stream:!0};let p=await Ga(u,{method:"POST",headers:f,body:JSON.stringify(c)});if(!p.ok){let A=await p.text();throw new Error(`GitHub Copilot API error: ${p.status} ${p.statusText} - ${A}`)}if(!p.body)throw new Error("No response body from GitHub Copilot API");yield*this.handleStream(p.body,s)}async*handleStream(e,r){let i=new Po,a={id:"",name:"",arguments:""},o=e.getReader(),n=new TextDecoder,s="";try{for(;;){let{done:u,value:f}=await o.read();if(u)break;s+=n.decode(f,{stream:!0});let d=s.split(`
1806
- `);s=d.pop()||"";for(let h of d){let c=h.trim();if(!c||!c.startsWith("data: "))continue;let p=c.slice(6);if(p!=="[DONE]")try{let A=JSON.parse(p);if(r)A.type==="content_block_start"&&A.content_block?.type==="tool_use"?(a.id=A.content_block.id,a.name=A.content_block.name,a.arguments="",yield{type:"tool_calls",tool_call:{call_id:a.id,function:{id:a.id,name:a.name,arguments:""}}}):A.type==="content_block_delta"&&A.delta?.type==="input_json_delta"?a.id&&(yield{type:"tool_calls",tool_call:{...a,function:{...a,id:a.id,name:a.name,arguments:A.delta.partial_json}}}):A.type==="content_block_stop"&&(a.id="",a.name="",a.arguments=""),A.type==="content_block_delta"&&A.delta?.text?yield{type:"text",text:A.delta.text}:A.type==="message_delta"&&A.usage&&(yield{type:"usage",inputTokens:A.usage.input_tokens||0,outputTokens:A.usage.output_tokens||0});else{let m=A.choices?.[0]?.delta;m?.tool_calls&&(yield*i.processToolCallDeltas(m.tool_calls)),m?.content&&(yield{type:"text",text:m.content}),A.usage&&(yield{type:"usage",inputTokens:A.usage.prompt_tokens||0,outputTokens:A.usage.completion_tokens||0})}}catch{}}}}finally{o.releaseLock()}}getModel(){return{id:this.modelId,info:{...Nm,description:"GitHub Copilot Native API"}}}}});var Vje,xMs=$(()=>{"use strict";Bo();Uo();_c();lf();Cd();Vje=class{constructor(e){this.options=e}client;ensureClient(){if(!this.client){if(!this.options.wandbApiKey)throw new Error("W&B API key is required");try{this.client=pu({baseURL:"https://api.inference.wandb.ai/v1",apiKey:this.options.wandbApiKey})}catch(e){throw new Error(`Error creating W&B Inference client: ${e instanceof Error?e.message:String(e)}`)}}return this.client}async*createMessage(e,r,i){let a=this.ensureClient(),o=this.getModel(),n=await a.chat.completions.create({model:o.id,messages:[{role:"system",content:e},...Ao(r,void 0,this.getModel().info.supportsImages!==!1)],temperature:0,stream:!0,stream_options:{include_usage:!0},...is(i)}),s=new Po;for await(let u of n){let f=u.choices?.[0]?.delta;f?.content&&(yield{type:"text",text:f.content}),f&&"reasoning"in f&&f.reasoning&&(yield{type:"reasoning",reasoning:typeof f.reasoning=="string"?f.reasoning:JSON.stringify(f.reasoning)}),f?.tool_calls&&(yield*s.processToolCallDeltas(f.tool_calls)),u.usage&&(yield{type:"usage",inputTokens:u.usage.prompt_tokens||0,outputTokens:u.usage.completion_tokens||0})}}getModel(){let e=this.options.apiModelId;return e!==void 0&&e in nH?{id:e,info:nH[e]}:{id:iH,info:nH[iH]}}};Ta([Ra()],Vje.prototype,"createMessage",1)});var Wje,IMs=$(()=>{"use strict";Bo();ZT();Uo();_c();lf();Cd();Wje=class{options;client;constructor(e){this.options=e}ensureClient(){if(!this.client){if(!this.options.xaiApiKey)throw new Error("xAI API key is required");try{this.client=pu({baseURL:"https://api.x.ai/v1",apiKey:this.options.xaiApiKey})}catch(e){throw new Error(`Error creating xAI client: ${e.message}`)}}return this.client}async*createMessage(e,r,i){let a=this.ensureClient(),o=this.getModel().id,n;if(o.includes("3-mini")){let f=this.options.reasoningEffort;f&&!["low","high"].includes(f)&&(f=void 0)}let s=await a.chat.completions.create({model:o,max_completion_tokens:this.getModel().info.maxTokens,temperature:0,messages:[{role:"system",content:e},...Ao(r,void 0,this.getModel().info.supportsImages!==!1)],stream:!0,stream_options:{include_usage:!0},reasoning_effort:n,...is(i)}),u=new Po;for await(let f of s){let d=f.choices?.[0]?.delta;d?.content&&(yield{type:"text",text:d.content}),d?.tool_calls&&(yield*u.processToolCallDeltas(d.tool_calls)),d&&"reasoning_content"in d&&d.reasoning_content&&(wR(o)||(yield{type:"reasoning",reasoning:d.reasoning_content})),f.usage&&(yield{type:"usage",inputTokens:f.usage.prompt_tokens||0,outputTokens:f.usage.completion_tokens||0,cacheReadTokens:f.usage.prompt_tokens_details?.cached_tokens||0,cacheWriteTokens:f.usage.prompt_cache_miss_tokens||0})}}getModel(){let e=this.options.apiModelId;if(e&&e in yP){let r=e;return{id:r,info:yP[r]}}return{id:EP,info:yP[EP]}}};Ta([Ra()],Wje.prototype,"createMessage",1)});var Kje,_Ms=$(()=>{"use strict";Bo();Uo();Whe();_c();lf();Cd();br();Kje=class{options;client;constructor(e){this.options=e}useChinaApi(){return this.options.zaiApiLine==="china"}ensureClient(){if(!this.client){if(!this.options.zaiApiKey)throw new Error("Z AI API key is required");try{this.client=pu({baseURL:this.useChinaApi()?"https://open.bigmodel.cn/api/paas/v4":"https://api.z.ai/api/paas/v4",apiKey:this.options.zaiApiKey,defaultHeaders:{"HTTP-Referer":"https://dirac.run","X-Title":"Dirac","X-Dirac-Version":A3}})}catch(e){throw new Error(`Error creating Z AI client: ${e.message}`)}}return this.client}getModel(){let e=this.options.apiModelId;if(this.useChinaApi()){let i=e&&e in c4e?e:prr;return{id:i,info:c4e[i]}}let r=e&&e in Iee?e:u4e;return{id:r,info:Iee[r]}}async*createMessage(e,r,i){let a=this.ensureClient(),o=this.getModel(),n=[{role:"system",content:e},...Ao(r,void 0,this.getModel().info.supportsImages!==!1)],s=this.options.thinkingBudgetTokens||0,u=await a.chat.completions.create({model:o.id,max_tokens:o.info.maxTokens,messages:n,temperature:0,stream:!0,stream_options:{include_usage:!0},...s>0?{thinking:{type:"enabled"}}:{},tool_stream:!0,...is(i)}),f=new Po;for await(let d of u){let h=d.choices?.[0]?.delta;Qe.info("ZAI chunk",h),h?.content&&(yield{type:"text",text:h.content}),h&&"reasoning_content"in h&&h.reasoning_content&&(yield{type:"reasoning",reasoning:h.reasoning_content||""}),h?.tool_calls&&(yield*f.processToolCallDeltas(h.tool_calls)),d.usage&&(yield{type:"usage",inputTokens:d.usage.prompt_tokens||0,outputTokens:d.usage.completion_tokens||0,cacheReadTokens:d.usage.prompt_tokens_details?.cached_tokens||0,cacheWriteTokens:0,reasoningTokens:d.usage.completion_tokens_details?.reasoning_tokens||0})}}};Ta([Ra()],Kje.prototype,"createMessage",1)});function TMs(t,e,r){switch(t){case"anthropic":return new g_e({onRetryAttempt:e.onRetryAttempt,apiKey:e.apiKey,anthropicBaseUrl:e.anthropicBaseUrl,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"openrouter":return new oBe({onRetryAttempt:e.onRetryAttempt,openRouterApiKey:e.openRouterApiKey,openRouterModelId:r==="plan"?e.planModeOpenRouterModelId:e.actModeOpenRouterModelId,openRouterModelInfo:r==="plan"?e.planModeOpenRouterModelInfo:e.actModeOpenRouterModelInfo,openRouterProviderSorting:e.openRouterProviderSorting,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,enableParallelToolCalling:e.enableParallelToolCalling});case"bedrock":return new cQt({onRetryAttempt:e.onRetryAttempt,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,awsAccessKey:e.awsAccessKey,awsSecretKey:e.awsSecretKey,awsSessionToken:e.awsSessionToken,awsRegion:e.awsRegion,awsAuthentication:e.awsAuthentication,awsBedrockApiKey:e.awsBedrockApiKey,awsUseCrossRegionInference:e.awsUseCrossRegionInference,awsUseGlobalInference:e.awsUseGlobalInference,awsBedrockUsePromptCache:e.awsBedrockUsePromptCache,awsUseProfile:e.awsUseProfile,awsProfile:e.awsProfile,awsBedrockEndpoint:e.awsBedrockEndpoint,awsBedrockCustomSelected:r==="plan"?e.planModeAwsBedrockCustomSelected:e.actModeAwsBedrockCustomSelected,awsBedrockCustomModelBaseId:r==="plan"?e.planModeAwsBedrockCustomModelBaseId:e.actModeAwsBedrockCustomModelBaseId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"vertex":return new qje({onRetryAttempt:e.onRetryAttempt,vertexProjectId:e.vertexProjectId,vertexRegion:e.vertexRegion,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,geminiApiKey:e.geminiApiKey,geminiBaseUrl:e.geminiBaseUrl,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,ulid:e.ulid});case"openai":{let i=r==="plan"?e.planModeOpenAiModelId:e.actModeOpenAiModelId,a=r==="plan"?e.planModeOpenAiModelInfo:e.actModeOpenAiModelInfo;!a&&i&&(a=grr(i));let o=e.openAiBaseUrl&&e.openAiBaseUrl.startsWith("http");(e.openAiCompatibleCustomApiKey||o)&&(a={...a||Nm,supportsTools:!0,supportsReasoning:!0,isR1FormatRequired:!0});let n=e.openAiCompatibleCustomApiKey||e.openAiApiKey;if(n){let s=`${n.slice(0,4)}****${n.slice(-4)}`;Qe.info(`Using OpenAI API key: ${s} (from ${e.openAiCompatibleCustomApiKey?"custom key":"standard key"})`)}if(e.openAiBaseUrl?.replace(/\/+$/,"").endsWith("/responses")){let s=e.openAiBaseUrl.replace(/\/responses\/?$/,"");return new Aje({onRetryAttempt:e.onRetryAttempt,openAiApiKey:n,openAiBaseUrl:s,openAiModelId:i,openAiModelInfo:a,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort})}return new lje({onRetryAttempt:e.onRetryAttempt,openAiApiKey:n,openAiBaseUrl:e.openAiBaseUrl,azureApiVersion:e.azureApiVersion,openAiHeaders:e.openAiHeaders,openAiModelId:i,openAiModelInfo:a,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort})}case"lmstudio":return new SKe({onRetryAttempt:e.onRetryAttempt,lmStudioBaseUrl:e.lmStudioBaseUrl,lmStudioModelId:r==="plan"?e.planModeLmStudioModelId:e.actModeLmStudioModelId,lmStudioMaxTokens:e.lmStudioMaxTokens});case"gemini":return new Ele({onRetryAttempt:e.onRetryAttempt,vertexProjectId:e.vertexProjectId,vertexRegion:e.vertexRegion,geminiApiKey:e.geminiApiKey,geminiBaseUrl:e.geminiBaseUrl,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,ulid:e.ulid,geminiSearchEnabled:e.geminiSearchEnabled});case"openai-native":return new pje({onRetryAttempt:e.onRetryAttempt,openAiNativeApiKey:e.openAiNativeApiKey,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"openai-codex":return new _zt({onRetryAttempt:e.onRetryAttempt,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"deepseek":return new mKe({onRetryAttempt:e.onRetryAttempt,deepSeekApiKey:e.deepSeekApiKey,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"requesty":return new yje({onRetryAttempt:e.onRetryAttempt,requestyBaseUrl:e.requestyBaseUrl,requestyApiKey:e.requestyApiKey,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,requestyModelId:r==="plan"?e.planModeRequestyModelId:e.actModeRequestyModelId,requestyModelInfo:r==="plan"?e.planModeRequestyModelInfo:e.actModeRequestyModelInfo});case"fireworks":return new yKe({onRetryAttempt:e.onRetryAttempt,fireworksApiKey:e.fireworksApiKey,fireworksModelId:r==="plan"?e.planModeFireworksModelId:e.actModeFireworksModelId});case"together":return new vje({onRetryAttempt:e.onRetryAttempt,togetherApiKey:e.togetherApiKey,togetherModelId:r==="plan"?e.planModeTogetherModelId:e.actModeTogetherModelId});case"qwen":return new gje({onRetryAttempt:e.onRetryAttempt,qwenApiKey:e.qwenApiKey,qwenApiLine:e.qwenApiLine==="international"?"international":"china",apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"qwen-code":return new mje({onRetryAttempt:e.onRetryAttempt,qwenCodeOauthPath:e.qwenCodeOauthPath,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"doubao":return new EKe({onRetryAttempt:e.onRetryAttempt,doubaoApiKey:e.doubaoApiKey,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"mistral":return new jze({onRetryAttempt:e.onRetryAttempt,mistralApiKey:e.mistralApiKey,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"vscode-lm":return new Hje({onRetryAttempt:e.onRetryAttempt,vsCodeLmModelSelector:r==="plan"?e.planModeVsCodeLmModelSelector:e.actModeVsCodeLmModelSelector});case"github-copilot":return new bYt({onRetryAttempt:e.onRetryAttempt,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"litellm":return new zGe({onRetryAttempt:e.onRetryAttempt,liteLlmApiKey:e.liteLlmApiKey,liteLlmBaseUrl:e.liteLlmBaseUrl,liteLlmModelId:r==="plan"?e.planModeLiteLlmModelId:e.actModeLiteLlmModelId,liteLlmModelInfo:r==="plan"?e.planModeLiteLlmModelInfo:e.actModeLiteLlmModelInfo,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,liteLlmUsePromptCache:e.liteLlmUsePromptCache,ulid:e.ulid});case"moonshot":return new $ze({onRetryAttempt:e.onRetryAttempt,moonshotApiKey:e.moonshotApiKey,moonshotApiLine:e.moonshotApiLine,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"huggingface":return new bKe({onRetryAttempt:e.onRetryAttempt,huggingFaceApiKey:e.huggingFaceApiKey,huggingFaceModelId:r==="plan"?e.planModeHuggingFaceModelId:e.actModeHuggingFaceModelId,huggingFaceModelInfo:r==="plan"?e.planModeHuggingFaceModelInfo:e.actModeHuggingFaceModelInfo});case"nebius":return new Xze({onRetryAttempt:e.onRetryAttempt,nebiusApiKey:e.nebiusApiKey,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"xai":return new Wje({onRetryAttempt:e.onRetryAttempt,xaiApiKey:e.xaiApiKey,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"sambanova":return new Cje({onRetryAttempt:e.onRetryAttempt,sambanovaApiKey:e.sambanovaApiKey,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"cerebras":return new AKe({onRetryAttempt:e.onRetryAttempt,cerebrasApiKey:e.cerebrasApiKey,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"groq":return new CKe({onRetryAttempt:e.onRetryAttempt,groqApiKey:e.groqApiKey,groqModelId:r==="plan"?e.planModeGroqModelId:e.actModeGroqModelId,groqModelInfo:r==="plan"?e.planModeGroqModelInfo:e.actModeGroqModelInfo,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"baseten":return new tHe({onRetryAttempt:e.onRetryAttempt,basetenApiKey:e.basetenApiKey,basetenModelId:r==="plan"?e.planModeBasetenModelId:e.actModeBasetenModelId,basetenModelInfo:r==="plan"?e.planModeBasetenModelInfo:e.actModeBasetenModelInfo,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"claude-code":return new gKe({onRetryAttempt:e.onRetryAttempt,claudeCodePath:e.claudeCodePath,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"huawei-cloud-maas":return new vKe({onRetryAttempt:e.onRetryAttempt,huaweiCloudMaasApiKey:e.huaweiCloudMaasApiKey,huaweiCloudMaasModelId:r==="plan"?e.planModeHuaweiCloudMaasModelId:e.actModeHuaweiCloudMaasModelId,huaweiCloudMaasModelInfo:r==="plan"?e.planModeHuaweiCloudMaasModelInfo:e.actModeHuaweiCloudMaasModelInfo});case"dify":return new mUt({difyApiKey:e.difyApiKey,difyBaseUrl:e.difyBaseUrl});case"vercel-ai-gateway":return new bje({onRetryAttempt:e.onRetryAttempt,vercelAiGatewayApiKey:e.vercelAiGatewayApiKey,openRouterModelId:r==="plan"?e.planModeVercelAiGatewayModelId:e.actModeVercelAiGatewayModelId,openRouterModelInfo:r==="plan"?e.planModeVercelAiGatewayModelInfo:e.actModeVercelAiGatewayModelInfo,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"zai":return new Kje({onRetryAttempt:e.onRetryAttempt,zaiApiLine:e.zaiApiLine,zaiApiKey:e.zaiApiKey,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"aihubmix":return new Zqe({onRetryAttempt:e.onRetryAttempt,apiKey:e.aihubmixApiKey,baseURL:e.aihubmixBaseUrl,appCode:e.aihubmixAppCode,modelId:r==="plan"?e.planModeAihubmixModelId:e.actModeAihubmixModelId,modelInfo:r==="plan"?e.planModeAihubmixModelInfo:e.actModeAihubmixModelInfo});case"minimax":return new xKe({onRetryAttempt:e.onRetryAttempt,minimaxApiKey:e.minimaxApiKey,minimaxApiLine:e.minimaxApiLine,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"nousResearch":return new Zze({onRetryAttempt:e.onRetryAttempt,nousResearchApiKey:e.nousResearchApiKey,apiModelId:r==="plan"?e.planModeNousResearchModelId:e.actModeNousResearchModelId});case"wandb":return new Vje({onRetryAttempt:e.onRetryAttempt,wandbApiKey:e.wandbApiKey,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});default:return new g_e({onRetryAttempt:e.onRetryAttempt,apiKey:e.apiKey,anthropicBaseUrl:e.anthropicBaseUrl,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens})}}function R0(t,e){let{planModeApiProvider:r,actModeApiProvider:i,...a}=t,o=e==="plan"?r:i;try{let n=e==="plan"?a.planModeThinkingBudgetTokens:a.actModeThinkingBudgetTokens;if(n&&n>0){let s=TMs(o,a,e),u=s.getModel().info;if(u?.maxTokens&&u.maxTokens>0&&n>u.maxTokens){let f=u.maxTokens-1;e==="plan"?a.planModeThinkingBudgetTokens=f:a.actModeThinkingBudgetTokens=f}else return s}}catch(n){Qe.error("buildApiHandler error:",n)}return TMs(o,a,e)}var OD=$(()=>{"use strict";Bo();br();BPo();DPo();kPo();vts();ias();fas();has();pas();Aas();gas();XAn();mas();Eas();yas();tin();Cas();vas();CTs();vTs();bTs();STs();m4s();F4s();N4s();L4s();G4s();q4s();V4s();W4s();K4s();z4s();j4s();lMs();AMs();SMs();xMs();IMs();_Ms()});var wMs=$(()=>{"use strict";zi();sj();JQ();OD();br()});var BMs=$(()=>{"use strict";zi();sj();OD();br()});var RMs=$(()=>{"use strict";OD();zi();sj();br()});var DMs=$(()=>{"use strict";zi();XX();SR();br()});var kMs=$(()=>{"use strict";zi();XX();br()});var N3n=$(()=>{"use strict";ol();Dc();Gs();va();Uo();br();Bo()});var MMs=$(()=>{"use strict";FA();JQ();N3n()});var L3n=$(()=>{"use strict";ol();Bo();Dc();ZT();Gs();Uo();br();Bo()});var PMs=$(()=>{"use strict";FA();JQ();L3n()});var OMs=$(()=>{"use strict";FA();Uo();br()});import FMs from"fs/promises";import NMs from"path";function urh(t,e){if(e?.includes("reasoning"))return t.startsWith("anthropic/claude")?{maxBudget:8192}:t.includes("gemini-3")?{maxBudget:32767,supportsThinkingLevel:!0,geminiThinkingLevel:"high"}:t.startsWith("deepseek/deepseek-r1")?{maxBudget:8192}:t.startsWith("openai/o1")||t.startsWith("openai/o3")?{maxBudget:32e3}:t==="qwen/qwq-32b:free"||t==="qwen/qwq-32b"?{maxBudget:32e3}:{maxBudget:32e3}}function crh(t){if(t.startsWith("deepseek/deepseek-r1")||t==="perplexity/sonar-reasoning"||t==="qwen/qwq-32b:free"||t==="qwen/qwq-32b")return .7;if(t.startsWith("google/gemini-3"))return 1}async function Q3n(t){let e=Gi.get().getModelsCache("vercel");return e||Yje||(Yje=(async()=>{try{return await lrh()}finally{Yje=null}})(),Yje)}async function lrh(){let t=NMs.join(await lS(),Qo.vercelAiGatewayModels),e={};try{let r=await Ty.get("https://ai-gateway.vercel.sh/v1/models?include_mappings=true",rv());if(r.data?.data){let i=r.data.data,a=o=>{if(o)return Number.parseFloat(o)*1e6};for(let o of i){if(o.type==="embedding")continue;let n={maxTokens:o.max_tokens??0,contextWindow:o.context_window??0,inputPrice:a(o.pricing?.input)??0,outputPrice:a(o.pricing?.output)??0,cacheWritesPrice:a(o.pricing?.input_cache_write)??0,cacheReadsPrice:a(o.pricing?.input_cache_read)??0,supportsImages:!0,supportsPromptCache:!!(o.pricing?.input_cache_read&&o.pricing?.input_cache_write),description:o.description??"",thinkingConfig:urh(o.id,o.tags),temperature:crh(o.id)};e[o.id]=n}await FMs.writeFile(t,JSON.stringify(e)),Qe.log("Vercel AI Gateway models fetched and saved")}else throw new Error("Invalid response from Vercel AI Gateway API")}catch(r){Qe.error("Error fetching Vercel AI Gateway models:",r);let i=await drh();i&&(e=i)}return Gi.get().setModelsCache("vercel",e),e}async function drh(){let t=NMs.join(await lS(),Qo.vercelAiGatewayModels);if(await Ha(t))try{let r=await FMs.readFile(t,"utf8");return JSON.parse(r)}catch(r){Qe.error("Error reading cached Vercel AI Gateway models:",r);return}}var Yje,U3n=$(()=>{"use strict";ol();Dc();WW();Gs();Uo();br();Yje=null});var LMs=$(()=>{"use strict";FA();JQ();U3n()});var QMs=$(()=>{"use strict";zi()});var UMs=$(()=>{"use strict";zi()});var GMs,qMs,SYt,xYt=$(()=>{"use strict";GMs=[{name:"newtask",description:"Create a new task with context from the current task",section:"default",cliCompatible:!0},{name:"smol",description:"Condenses your current context window",section:"default",cliCompatible:!0},{name:"newrule",description:"Create a new Dirac rule based on your conversation",section:"default",cliCompatible:!0},{name:"reportbug",description:"Create a Github issue with Dirac",section:"default",cliCompatible:!0}],qMs=[{name:"explain-changes",description:"Explain code changes between git refs (PRs, commits, branches, etc.)",section:"default"}],SYt=[{name:"help",description:"Learn how to use Dirac CLI",section:"default",cliCompatible:!0},{name:"settings",description:"Change API provider, auto-approve, and feature settings",section:"default",cliCompatible:!0},{name:"models",description:"Change the model used for the current mode",section:"default",cliCompatible:!0},{name:"history",description:"Browse and search task history",section:"default",cliCompatible:!0},{name:"clear",description:"Clear the current task and start fresh",section:"default",cliCompatible:!0},{name:"exit",description:"Alternative to Ctrl+C",section:"default",cliCompatible:!0},{name:"q",description:"Alternative to Ctrl+C",section:"default",cliCompatible:!0},{name:"skills",description:"View and manage installed skills",section:"default",cliCompatible:!0}]});import*as OG from"fs/promises";import*as nfe from"path";async function frh(t,e){let r=[];if(!await Ha(t)||!await L0(t))return r;try{let i=await OG.readdir(t);for(let a of i){let o=nfe.join(t,a);if(!(await OG.stat(o).catch(()=>null))?.isDirectory())continue;let s=await hrh(o,e,a);s&&r.push(s)}}catch(i){i instanceof Error&&"code"in i&&i.code==="EACCES"&&Qe.warn(`Permission denied reading skills directory: ${t}`)}return r}async function hrh(t,e,r){let i=nfe.join(t,"SKILL.md");if(!await Ha(i))return null;try{let a=await OG.readFile(i,"utf-8"),{data:o,parseError:n}=g3(a);return n?(Qe.warn(`Failed to parse YAML frontmatter for skill at ${t}: ${n}`),null):!o.name||typeof o.name!="string"?(Qe.warn(`Skill at ${t} missing required 'name' field in frontmatter`),null):!o.description||typeof o.description!="string"?(Qe.warn(`Skill at ${t} missing required 'description' field in frontmatter`),null):o.name!==r?(Qe.warn(`Skill name "${o.name}" in frontmatter doesn't match directory "${r}" at ${t}`),null):{name:r,description:o.description,path:i,source:e}}catch(a){return Qe.warn(`Failed to load skill at ${t}:`,a),null}}async function prh(t){let e=[],r=Fpe(t);for(let i of r){let a=await frh(i.path,i.source);e.push(...a)}return e}function Arh(t){let e=new Set,r=[];for(let i=t.length-1;i>=0;i--){let a=t[i];e.has(a.name)||(e.add(a.name),r.unshift(a))}return r}async function HMs(t){let e=nfe.dirname(t),r=nfe.join(e,"docs"),i=nfe.join(e,"scripts"),a=[],o=[];try{if(await Ha(r)){let n=await OG.readdir(r);a.push(...n.filter(s=>s.endsWith(".md")||s.endsWith(".txt")))}}catch(n){Qe.warn(`Failed to read docs directory for skill at ${e}:`,n)}try{if(await Ha(i)){let n=await OG.readdir(i);o.push(...n.filter(s=>!s.startsWith(".")))}}catch(n){Qe.warn(`Failed to read scripts directory for skill at ${e}:`,n)}return{docs:a,scripts:o}}async function IYt(t,e){let r=e.find(i=>i.name===t);if(!r)return null;try{let i=await OG.readFile(r.path,"utf-8"),{body:a}=g3(i);return{...r,instructions:a.trim()}}catch{return null}}async function FD(t,e){if(e.discoveredSkillsCache!==void 0)return e.discoveredSkillsCache;let r=await prh(t),i=Arh(r);return e.discoveredSkillsCache=i,i}var sZ=$(()=>{"use strict";ol();Dc();br();Xhe()});async function Jje(t,e){let r=[];for(let c of[...GMs])r.push(PT.create({name:c.name,description:c.description,section:"default",cliCompatible:c.cliCompatible}));let i=t.stateManager.getWorkspaceStateKey("workflowToggles")??{},a=t.stateManager.getGlobalSettingsKey("globalWorkflowToggles")??{},o=t.stateManager.getGlobalStateKey("remoteWorkflowToggles")??{},n=[],s=new Set;for(let[c,p]of Object.entries(i))if(p){let A=VMs(c);s.add(A),r.push(PT.create({name:A,description:`Custom workflow: ${A}`,section:"custom",cliCompatible:!0}))}for(let[c,p]of Object.entries(a))if(p){let A=VMs(c);s.has(A)||r.push(PT.create({name:A,description:`Custom workflow: ${A}`,section:"custom",cliCompatible:!0}))}for(let c of n)(c.alwaysEnabled||o[c.name]!==!1)&&r.push(PT.create({name:c.name,description:`Remote workflow: ${c.name}`,section:"custom",cliCompatible:!0}));let u=t.task?.cwd||t.getWorkspaceManager()?.getPrimaryRoot()?.path||process.cwd(),f=await FD(u,t.task?.taskState||{}),d=t.stateManager.getGlobalSettingsKey("globalSkillsToggles")??{},h=t.stateManager.getWorkspaceStateKey("localSkillsToggles")??{};for(let c of f)(c.source==="global"?d:h)[c.path]!==!1&&r.push(PT.create({name:c.name,description:c.description,section:"skill",cliCompatible:!0}));return O7e.create({commands:r})}function VMs(t){return t.replace(/^.*[/\\]/,"")}var _Yt=$(()=>{"use strict";wLr();xYt();sZ()});var G3n=$(()=>{"use strict";jI()});var WMs=$(()=>{"use strict"});var KMs=$(()=>{"use strict";nLr();irr()});var zMs=$(()=>{"use strict";KMs()});var jje=$(()=>{"use strict";xoe();Q_();zMs()});var YMs=$(()=>{"use strict";jje()});var JMs=$(()=>{"use strict";jje();Dnn()});async function q3n(t,e,r,i){$je.add(r);let a=()=>{$je.delete(r)};i&&Xv().registerRequest(i,a,{type:"state_subscription"},r);let o=await t.getStateToPostToWebview(),n=JSON.stringify(o);$Ms(Buffer.byteLength(n,"utf8"));try{await r({stateJson:n},!1)}catch(s){Qe.error("Error sending initial state:",s),$je.delete(r)}}async function jMs(t){let e;try{e=JSON.stringify(t)}catch(i){Qe.error("Error serializing state update:",i);return}$Ms(Buffer.byteLength(e,"utf8"));let r=Array.from($je).map(async i=>{try{await i({stateJson:e},!1)}catch(a){Qe.error("Error sending state update:",a),$je.delete(i)}});await Promise.all(r)}function $Ms(t){Or.captureGrpcResponseSize(t,"dirac.StateService","subscribeToState")}var $je,wYt=$(()=>{"use strict";va();br();PS();$je=new Set});var XMs=$(()=>{"use strict";zi();va();br()});async function RBe(){let t=Array.from(ZMs).map(async e=>{try{let r=zn.create({});await e(r,!1)}catch(r){Qe.error("Error sending chatButtonClicked event:",r),ZMs.delete(e)}});await Promise.all(t)}var ZMs,Xje=$(()=>{"use strict";zi();br();PS();ZMs=new Set});var ePs=$(()=>{"use strict";zi();uor();Ua();hp();br();Xje()});var tPs=$(()=>{"use strict";zi();jI();br()});var rPs=$(()=>{"use strict";zi()});var nPs=$(()=>{"use strict";OD();zi();jI();sj();S3();Ua();hp();br();va()});var BYt=$(()=>{"use strict";jI();Xx()});var aPs=$(()=>{"use strict";OD();zi();jI();sj();S3();Ua();hp();br();va();BYt()});var oPs=$(()=>{"use strict";zi();jI();sj();BYt()});var sPs=$(()=>{"use strict";jI()});var uPs=$(()=>{"use strict";zi();sPs()});var cPs=$(()=>{"use strict";zi();br();va()});var lPs=$(()=>{"use strict";zi();br()});var dPs=$(()=>{"use strict";zi()});var fPs=$(()=>{"use strict";zi()});var hPs=$(()=>{"use strict";zi()});var H3n,pPs=$(()=>{"use strict";H3n=(n=>(n.Link="link",n.ShowApiSettings="show-api-settings",n.ShowFeatureSettings="show-feature-settings",n.ShowAccount="show-account",n.SetModel="set-model",n.InstallCli="install-cli",n))(H3n||{})});var APs,gPs,Erh,yrh,mPs,V3n,Crh,vrh,brh,uZ,RYt=$(()=>{"use strict";pPs();S3();Gs();E_();Uo();a2e();br();Vm();aj();APs=1440*60*1e3,gPs=3600*1e3,Erh=900*1e3,yrh=1e3,mPs=1e4,V3n=3,Crh={win32:"windows",linux:"linux",darwin:"macos"},vrh={vscode:"vscode",jetbrains:"jetbrains",cli:"cli"},brh={anthropic:["anthropic","claude-code"],openai:["openai","openai-native"],qwen:["qwen","qwen-code"]},uZ=class t{constructor(e,r){this.controller=e;this.hostInfo=r;this.validActionTypes=new Set(Object.values(H3n)),Qe.log("[BannerService] initialized")}static instance=null;cachedBanners=[];lastFetchTime=0;backoffUntil=0;consecutiveFailures=0;userId=null;fetchPromise=null;abortController=null;debounceTimer=null;pendingDebounceResolve=null;authFetchPending=!1;validActionTypes;static initialize(e){if(t.instance)return t.instance;let r=Khe.get();if(!r)throw new Error("[BannerService] Ensure HostRegistryInfo is initialized before BannerService.");return t.instance=new t(e,r),t.instance}static get(){if(!t.instance)throw new Error("BannerService not initialized. Call BannerService.initialize(controller) first.");return t.instance}static reset(){let e=t.instance;e&&(e.debounceTimer&&clearTimeout(e.debounceTimer),e.abortController?.abort()),t.instance=null}static async onAuthUpdate(e){let r=t.instance;if(!(!r||r.userId===e))return r.debounceTimer&&(clearTimeout(r.debounceTimer),r.debounceTimer=null),r.pendingDebounceResolve&&(r.pendingDebounceResolve(),r.pendingDebounceResolve=null),r.abortController?.abort(),r.abortController=null,r.fetchPromise=null,r.authFetchPending=!0,r.userId=e,new Promise(i=>{r.pendingDebounceResolve=i,r.debounceTimer=setTimeout(async()=>{r.debounceTimer=null,r.pendingDebounceResolve=null,r.consecutiveFailures=0,r.backoffUntil=0;try{await r.doFetch()}finally{r.authFetchPending=!1,i()}},yrh)})}getActiveBanners(){return this.ensureFreshCache(),this.cachedBanners.filter(r=>r.placement!=="welcome").filter(r=>!this.isBannerDismissed(r.id)).map(r=>this.toBannerCardData(r)).filter(r=>r!==null)}getWelcomeBanners(){if(!(process.env.DIRAC_ENVIRONMENT==="local"||gb.getBooleanFlagEnabled("remote-welcome-banners")))return;let i=process.env.DIRAC_ENVIRONMENT==="local";return this.ensureFreshCache(),this.cachedBanners.filter(n=>n.placement==="welcome").filter(n=>i||!this.isBannerDismissed(n.id)).map(n=>this.toBannerCardData(n)).filter(n=>n!==null)}ensureFreshCache(){let e=Date.now(),r=this.getCacheDurationMs();e>=this.backoffUntil&&e-this.lastFetchTime>=r&&!this.fetchPromise&&!this.authFetchPending&&(this.fetchPromise=this.doFetch(),this.fetchPromise.finally(()=>{this.fetchPromise=null}))}getCacheDurationMs(){let e=gb.getFlagPayload("extension_remote_banners_ttl"),r=typeof e=="number"&&Number.isFinite(e)?e:APs;return!Number.isFinite(r)||r<=0?APs:r}clearCache(){this.abortController?.abort(),this.abortController=null,this.cachedBanners=[],this.lastFetchTime=0,this.consecutiveFailures=0,this.backoffUntil=0,this.fetchPromise=null}async dismissBanner(e){try{let r=Gi.get().getGlobalStateKey("dismissedBanners")||[];if(r.some(i=>i.bannerId===e))return;Gi.get().setGlobalState("dismissedBanners",[...r,{bannerId:e,dismissedAt:Date.now()}]),await this.sendBannerEvent(e,"dismiss"),this.clearCache()}catch(r){Qe.error("[BannerService] Error dismissing banner",r)}}async sendBannerEvent(e,r){try{let i=new URL("/banners/v2/messages",k7.config().apiBaseUrl).toString(),a=this.getIdeType(),o=a==="cli"?"cli":a==="jetbrains"?"jetbrains":"vscode",n=new AbortController,s=setTimeout(()=>n.abort(),mPs);await Ga(i,{method:"POST",headers:{"Content-Type":"application/json",...await jfr()},body:JSON.stringify({banner_id:e,instance_id:this.hostInfo.distinctId,surface:o,event_type:r}),signal:n.signal}),clearTimeout(s)}catch(i){Qe.error("[BannerService] Error sending banner event",i)}}isBannerDismissed(e){try{return(Gi.get().getGlobalStateKey("dismissedBanners")||[]).some(i=>i.bannerId===e)}catch(r){return Qe.error("[BannerService] Error checking dismissed banner",r),!1}}async doFetch(){if(!gb.getBooleanFlagEnabled("remote-banners"))return[];this.abortController=new AbortController;let{signal:e}=this.abortController,r=setTimeout(()=>this.abortController?.abort(),mPs);try{let i=this.buildFetchUrl(),a={"Content-Type":"application/json",...await jfr()},o=void 0;o&&(a.Authorization=`Bearer ${o}`);let n=await Ga(i,{method:"GET",headers:a,signal:e});if(clearTimeout(r),!n.ok)throw Object.assign(new Error(`HTTP ${n.status}`),{status:n.status,headers:n.headers});let s=await n.json();if(!s?.data?.items||!Array.isArray(s.data.items))return[];let u=s.data.items.filter(f=>this.matchesProviderRule(f));return this.cachedBanners=u,this.lastFetchTime=Date.now(),this.consecutiveFailures=0,Qe.log(`[BannerService] After provider filter: ${u.length} banners: ${JSON.stringify(u.map(f=>({id:f.id,placement:f.placement})))}`),this.controller.postStateToWebview().catch(f=>{Qe.error("Failed to post state to webview after fetching banners:",f)}),u}catch(i){return clearTimeout(r),i instanceof Error&&i.name==="AbortError"?this.cachedBanners:(this.handleFetchError(i),this.cachedBanners)}finally{this.abortController=null}}handleFetchError(e){this.consecutiveFailures++;let r=e,i=r.status,a=gPs;if(i===429){let o=r.headers?.get("retry-after");if(o){let n=Number.parseInt(o,10);if(!Number.isNaN(n))a=n*1e3;else{let s=new Date(o);Number.isNaN(s.getTime())||(a=Math.max(0,s.getTime()-Date.now()))}}}else i&&i>=500&&i<600&&(a=Erh);if(this.backoffUntil=Date.now()+a,this.consecutiveFailures>=V3n){this.backoffUntil=Date.now()+gPs;let o=this.consecutiveFailures===V3n?"Circuit breaker tripped":"Half-open recovery failed";Qe.log(`BannerService: ${o}, will allow recovery attempt after 1 hour`)}Qe.error(`[BannerService] Failed ${this.consecutiveFailures}/${V3n}. Backing off for ${Math.ceil(a/6e4)} minutes`,e)}buildFetchUrl(){let e=new URL("/banners/v2/messages",k7.config().apiBaseUrl);return e.searchParams.set("ide",this.getIdeType()),e.searchParams.set("extension_version",this.hostInfo.extensionVersion),e.searchParams.set("os",Crh[this.hostInfo.os]||"unknown"),e.toString()}getIdeType(){let e=this.hostInfo.ide?.toLowerCase()??"";for(let[i,a]of Object.entries(vrh))if(e.includes(i))return a;let r=this.hostInfo.platform?.toLowerCase()??"";return r.includes("visual studio")||r.includes("vscode")?"vscode":"unknown"}matchesProviderRule(e){try{let r=JSON.parse(e.rulesJson||"{}");if(!r?.providers?.length)return!0;let i=Gi.get().getApiConfiguration(),o=Gi.get().getGlobalSettingsKey("mode")==="plan"?i?.planModeApiProvider:i?.actModeApiProvider;return r.providers.some(n=>{for(let[s,u]of Object.entries(brh))if(u.includes(n))return u.includes(o);return o===n})}catch(r){return Qe.log(`[BannerService] Error parsing provider rules for banner ${e.id}: ${r instanceof Error?r.message:String(r)}`),!0}}getBannerActions(e){return e.actions??[]}toBannerCardData(e){let r=this.getBannerActions(e);for(let i of r)if(!i.action||!this.validActionTypes.has(i.action)||!i.title)return Qe.error(`[BannerService] Invalid action type (${i.action}) for banner ${e.id}`),null;return{id:e.id,title:e.titleMd,description:e.bodyMd,icon:e.icon,actions:r.map(i=>({title:i.title||"",action:i.action,arg:i.arg}))}}}});var EPs=$(()=>{"use strict";RYt();br()});var yPs=$(()=>{"use strict";RYt();br()});var CPs=$(()=>{"use strict";zi();hp();Qhr();Ua();br()});import{exec as Srh}from"child_process";import{promisify as xrh}from"util";async function vPs(){try{let{stdout:t}=await Irh("dirac version",{timeout:5e3});return t.includes("Dirac CLI Version")||t.includes("Dirac Core Version")}catch{return!1}}var Irh,bPs=$(()=>{"use strict";Irh=xrh(Srh)});async function W3n(t){try{let e=await vPs();return h3.create({value:e})}catch{return h3.create({value:!1})}}var K3n=$(()=>{"use strict";zi();bPs()});var SPs=$(()=>{"use strict";jI()});var xPs=$(()=>{"use strict";zi();br()});var IPs=$(()=>{"use strict";jI();va();br()});var _Ps=$(()=>{"use strict";jI();br();r4e()});var TPs=$(()=>{"use strict";zi()});var wPs=$(()=>{"use strict";zi()});var BPs=$(()=>{"use strict";zi()});import{join as _rh}from"node:path";async function DBe(t,e){return await z3n(t,e,{errors:!0})}async function z3n(t,e={},r={}){let i=e.fs||await import("node:fs/promises"),a=0n,o=new Set,n=[];await s(t);async function s(u){if(e.ignore?.test(u))return;let f=r.strict?await i.lstat(u,{bigint:!0}):await i.lstat(u,{bigint:!0}).catch(d=>n.push(d));if(typeof f=="object"&&(o.has(f.ino)||(o.add(f.ino),a+=f.size),f.isDirectory())){let d=r.strict?await i.readdir(u):await i.readdir(u).catch(h=>n.push(h));if(typeof d!="object")return;await Promise.all(d.map(h=>s(_rh(u,h))))}}if(!e.bigint)if(a>BigInt(Number.MAX_SAFE_INTEGER)){let u=new RangeError("The folder size is too large to return as a Number. You can instruct this package to return a BigInt instead.");if(r.strict)throw u;n.push(u),a=Number.MAX_SAFE_INTEGER}else a=Number(a);return r.errors?{size:a,errors:n.length>0?n:null}:a}var Y3n=$(()=>{"use strict";DBe.loose=async(t,e)=>await z3n(t,e);DBe.strict=async(t,e)=>await z3n(t,e,{strict:!0})});var RPs=$(()=>{"use strict";Y3n();Ua();br()});var DPs=$(()=>{"use strict";RPs()});var kPs=$(()=>{"use strict";zi();Ua();hp();br();Dc()});var MPs=$(()=>{"use strict";zi();jI();sj();yrr();BYt()});async function FG(t,e){try{let r=e.value,a=t.stateManager.getGlobalStateKey("taskHistory").find(n=>n.id===r);if(a)return await t.initTask(void 0,void 0,void 0,a),await RBe(),mbe.create({id:a.id,task:a.task||"",ts:a.ts||0,isFavorited:a.isFavorited||!1,size:a.size||0,totalCost:a.totalCost||0,tokensIn:a.tokensIn||0,tokensOut:a.tokensOut||0,cacheWrites:a.cacheWrites||0,cacheReads:a.cacheReads||0});let{historyItem:o}=await t.getTaskWithId(r);return await t.initTask(void 0,void 0,void 0,o),await RBe(),mbe.create({id:o.id,task:o.task||"",ts:o.ts||0,isFavorited:o.isFavorited||!1,size:o.size||0,totalCost:o.totalCost||0,tokensIn:o.tokensIn||0,tokensOut:o.tokensOut||0,cacheWrites:o.cacheWrites||0,cacheReads:o.cacheReads||0})}catch(r){throw Qe.error("Error in showTaskWithId:",r),r}}var kBe=$(()=>{"use strict";Ebe();br();Xje()});var PPs=$(()=>{"use strict";zi();br()});var OPs=$(()=>{"use strict";zi();br()});async function J3n(t,e){try{let{favoritesOnly:r,currentWorkspaceOnly:i,searchQuery:a,sortBy:o}=e,n=t.stateManager.getGlobalStateKey("taskHistory"),s=await OS(),u=n.filter(h=>{let c=t.getWorkspaceManager()?.getPrimaryRoot()?.path,p=h.ts&&h.task,A=!c||!h.workspaceRootPath||h.workspaceRootPath===c;if(!p||!A||r&&!h.isFavorited)return!1;if(i){let m=!1;if(h.cwdOnTaskInitialization&&Ic(h.cwdOnTaskInitialization,s)&&(m=!0),!m&&h.shadowGitConfigWorkTree&&Ic(h.shadowGitConfigWorkTree,s)&&(m=!0),!m)return!1}return!0});if(a){let h=a.toLowerCase();u=u.filter(c=>c.task.toLowerCase().includes(h))}let f=u.length;o?u.sort((h,c)=>{switch(o){case"oldest":return h.ts-c.ts;case"mostExpensive":return(c.totalCost||0)-(h.totalCost||0);case"mostTokens":return(c.tokensIn||0)+(c.tokensOut||0)+(c.cacheWrites||0)+(c.cacheReads||0)-((h.tokensIn||0)+(h.tokensOut||0)+(h.cacheWrites||0)+(h.cacheReads||0));case"newest":default:return c.ts-h.ts}}):u.sort((h,c)=>c.ts-h.ts);let d=u.map(h=>({id:h.id,task:h.task,ts:h.ts,isFavorited:h.isFavorited||!1,size:h.size||0,totalCost:h.totalCost||0,tokensIn:h.tokensIn||0,tokensOut:h.tokensOut||0,cacheWrites:h.cacheWrites||0,cacheReads:h.cacheReads||0,modelId:h.modelId||""}));return Q7e.create({tasks:d,totalCount:f})}catch(r){throw Qe.error("Error in getTaskHistory:",r),r}}var j3n=$(()=>{"use strict";Ebe();br();ks()});var FPs=$(()=>{"use strict";zi();br()});var NPs=$(()=>{"use strict";zi();va();br()});var LPs=$(()=>{"use strict";zi();br()});var QPs=$(()=>{"use strict";zi();br()});var UPs=$(()=>{"use strict";Ebe();Ua();hp();br();Dc()});var GPs=re(Gw=>{"use strict";var Trh=Gw&&Gw.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gw,"__esModule",{value:!0});var wrh=He("fs"),Brh=Trh(jd()),MBe=Brh.default("@kwsites/file-exists");function Rrh(t,e,r){MBe("checking %s",t);try{let i=wrh.statSync(t);return i.isFile()&&e?(MBe("[OK] path represents a file"),!0):i.isDirectory()&&r?(MBe("[OK] path represents a directory"),!0):(MBe("[FAIL] path represents something other than a file or directory"),!1)}catch(i){if(i.code==="ENOENT")return MBe("[FAIL] path is not accessible: %o",i),!1;throw MBe("[FATAL] %o",i),i}}function Drh(t,e=Gw.READABLE){return Rrh(t,(e&Gw.FILE)>0,(e&Gw.FOLDER)>0)}Gw.exists=Drh;Gw.FILE=1;Gw.FOLDER=2;Gw.READABLE=Gw.FILE+Gw.FOLDER});var qPs=re(DYt=>{"use strict";function krh(t){for(var e in t)DYt.hasOwnProperty(e)||(DYt[e]=t[e])}Object.defineProperty(DYt,"__esModule",{value:!0});krh(GPs())});var X3n=re(ife=>{"use strict";Object.defineProperty(ife,"__esModule",{value:!0});ife.createDeferred=ife.deferred=void 0;function $3n(){let t,e,r="pending";return{promise:new Promise((a,o)=>{t=a,e=o}),done(a){r==="pending"&&(r="resolved",t(a))},fail(a){r==="pending"&&(r="rejected",e(a))},get fulfilled(){return r!=="pending"},get status(){return r}}}ife.deferred=$3n;ife.createDeferred=$3n;ife.default=$3n});import{Buffer as Nrh}from"node:buffer";import{spawn as ynh}from"child_process";import{normalize as Nih}from"node:path";import{EventEmitter as Nah}from"node:events";function aBn(...t){let e=new String(t);return GYt.set(e,t),e}function t$e(t){return t instanceof String&&GYt.has(t)}function HPs(t){return GYt.get(t)||[]}function S5s(t){return typeof t!="function"?sfe:t}function x5s(t){return typeof t=="function"&&t!==sfe}function I5s(t,e){let r=t.indexOf(e);return r<=0?[t,""]:[t.substr(0,r),t.substr(r+1)]}function _5s(t,e=0){return T5s(t)&&t.length>e?t[e]:void 0}function ofe(t,e=0){if(T5s(t)&&t.length>e)return t[t.length-1-e]}function T5s(t){return KYt(t)}function a$e(t="",e=!0,r=`
1806
+ `);s=d.pop()||"";for(let h of d){let c=h.trim();if(!c||!c.startsWith("data: "))continue;let p=c.slice(6);if(p!=="[DONE]")try{let A=JSON.parse(p);if(r)A.type==="content_block_start"&&A.content_block?.type==="tool_use"?(a.id=A.content_block.id,a.name=A.content_block.name,a.arguments="",yield{type:"tool_calls",tool_call:{call_id:a.id,function:{id:a.id,name:a.name,arguments:""}}}):A.type==="content_block_delta"&&A.delta?.type==="input_json_delta"?a.id&&(yield{type:"tool_calls",tool_call:{...a,function:{...a,id:a.id,name:a.name,arguments:A.delta.partial_json}}}):A.type==="content_block_stop"&&(a.id="",a.name="",a.arguments=""),A.type==="content_block_delta"&&A.delta?.text?yield{type:"text",text:A.delta.text}:A.type==="message_delta"&&A.usage&&(yield{type:"usage",inputTokens:A.usage.input_tokens||0,outputTokens:A.usage.output_tokens||0});else{let m=A.choices?.[0]?.delta;m?.tool_calls&&(yield*i.processToolCallDeltas(m.tool_calls)),m?.content&&(yield{type:"text",text:m.content}),A.usage&&(yield{type:"usage",inputTokens:A.usage.prompt_tokens||0,outputTokens:A.usage.completion_tokens||0})}}catch{}}}}finally{o.releaseLock()}}getModel(){return{id:this.modelId,info:{...Nm,description:"GitHub Copilot Native API"}}}}});var Vje,xMs=$(()=>{"use strict";Bo();Uo();_c();lf();Cd();Vje=class{constructor(e){this.options=e}client;ensureClient(){if(!this.client){if(!this.options.wandbApiKey)throw new Error("W&B API key is required");try{this.client=pu({baseURL:"https://api.inference.wandb.ai/v1",apiKey:this.options.wandbApiKey})}catch(e){throw new Error(`Error creating W&B Inference client: ${e instanceof Error?e.message:String(e)}`)}}return this.client}async*createMessage(e,r,i){let a=this.ensureClient(),o=this.getModel(),n=await a.chat.completions.create({model:o.id,messages:[{role:"system",content:e},...Ao(r,void 0,this.getModel().info.supportsImages!==!1)],temperature:0,stream:!0,stream_options:{include_usage:!0},...is(i)}),s=new Po;for await(let u of n){let f=u.choices?.[0]?.delta;f?.content&&(yield{type:"text",text:f.content}),f&&"reasoning"in f&&f.reasoning&&(yield{type:"reasoning",reasoning:typeof f.reasoning=="string"?f.reasoning:JSON.stringify(f.reasoning)}),f?.tool_calls&&(yield*s.processToolCallDeltas(f.tool_calls)),u.usage&&(yield{type:"usage",inputTokens:u.usage.prompt_tokens||0,outputTokens:u.usage.completion_tokens||0})}}getModel(){let e=this.options.apiModelId;return e!==void 0&&e in nH?{id:e,info:nH[e]}:{id:iH,info:nH[iH]}}};Ta([Ra()],Vje.prototype,"createMessage",1)});var Wje,IMs=$(()=>{"use strict";Bo();ZT();Uo();_c();lf();Cd();Wje=class{options;client;constructor(e){this.options=e}ensureClient(){if(!this.client){if(!this.options.xaiApiKey)throw new Error("xAI API key is required");try{this.client=pu({baseURL:"https://api.x.ai/v1",apiKey:this.options.xaiApiKey})}catch(e){throw new Error(`Error creating xAI client: ${e.message}`)}}return this.client}async*createMessage(e,r,i){let a=this.ensureClient(),o=this.getModel().id,n;if(o.includes("3-mini")){let f=this.options.reasoningEffort;f&&!["low","high"].includes(f)&&(f=void 0)}let s=await a.chat.completions.create({model:o,max_completion_tokens:this.getModel().info.maxTokens,temperature:0,messages:[{role:"system",content:e},...Ao(r,void 0,this.getModel().info.supportsImages!==!1)],stream:!0,stream_options:{include_usage:!0},reasoning_effort:n,...is(i)}),u=new Po;for await(let f of s){let d=f.choices?.[0]?.delta;d?.content&&(yield{type:"text",text:d.content}),d?.tool_calls&&(yield*u.processToolCallDeltas(d.tool_calls)),d&&"reasoning_content"in d&&d.reasoning_content&&(wR(o)||(yield{type:"reasoning",reasoning:d.reasoning_content})),f.usage&&(yield{type:"usage",inputTokens:f.usage.prompt_tokens||0,outputTokens:f.usage.completion_tokens||0,cacheReadTokens:f.usage.prompt_tokens_details?.cached_tokens||0,cacheWriteTokens:f.usage.prompt_cache_miss_tokens||0})}}getModel(){let e=this.options.apiModelId;if(e&&e in yP){let r=e;return{id:r,info:yP[r]}}return{id:EP,info:yP[EP]}}};Ta([Ra()],Wje.prototype,"createMessage",1)});var Kje,_Ms=$(()=>{"use strict";Bo();Uo();Whe();_c();lf();Cd();br();Kje=class{options;client;constructor(e){this.options=e}useChinaApi(){return this.options.zaiApiLine==="china"}ensureClient(){if(!this.client){if(!this.options.zaiApiKey)throw new Error("Z AI API key is required");try{this.client=pu({baseURL:this.useChinaApi()?"https://open.bigmodel.cn/api/paas/v4":"https://api.z.ai/api/paas/v4",apiKey:this.options.zaiApiKey,defaultHeaders:{"HTTP-Referer":"https://dirac.run","X-Title":"Dirac","X-Dirac-Version":A3}})}catch(e){throw new Error(`Error creating Z AI client: ${e.message}`)}}return this.client}getModel(){let e=this.options.apiModelId;if(this.useChinaApi()){let i=e&&e in c4e?e:prr;return{id:i,info:c4e[i]}}let r=e&&e in Iee?e:u4e;return{id:r,info:Iee[r]}}async*createMessage(e,r,i){let a=this.ensureClient(),o=this.getModel(),n=[{role:"system",content:e},...Ao(r,void 0,this.getModel().info.supportsImages!==!1)],s=this.options.thinkingBudgetTokens||0,u=await a.chat.completions.create({model:o.id,max_tokens:o.info.maxTokens,messages:n,temperature:0,stream:!0,stream_options:{include_usage:!0},...s>0?{thinking:{type:"enabled"}}:{},tool_stream:!0,...is(i)}),f=new Po;for await(let d of u){let h=d.choices?.[0]?.delta;Qe.info("ZAI chunk",h),h?.content&&(yield{type:"text",text:h.content}),h&&"reasoning_content"in h&&h.reasoning_content&&(yield{type:"reasoning",reasoning:h.reasoning_content||""}),h?.tool_calls&&(yield*f.processToolCallDeltas(h.tool_calls)),d.usage&&(yield{type:"usage",inputTokens:d.usage.prompt_tokens||0,outputTokens:d.usage.completion_tokens||0,cacheReadTokens:d.usage.prompt_tokens_details?.cached_tokens||0,cacheWriteTokens:0,reasoningTokens:d.usage.completion_tokens_details?.reasoning_tokens||0})}}};Ta([Ra()],Kje.prototype,"createMessage",1)});function TMs(t,e,r){switch(t){case"anthropic":return new g_e({onRetryAttempt:e.onRetryAttempt,apiKey:e.apiKey,anthropicBaseUrl:e.anthropicBaseUrl,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"openrouter":return new oBe({onRetryAttempt:e.onRetryAttempt,openRouterApiKey:e.openRouterApiKey,openRouterModelId:r==="plan"?e.planModeOpenRouterModelId:e.actModeOpenRouterModelId,openRouterModelInfo:r==="plan"?e.planModeOpenRouterModelInfo:e.actModeOpenRouterModelInfo,openRouterProviderSorting:e.openRouterProviderSorting,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,enableParallelToolCalling:e.enableParallelToolCalling});case"bedrock":return new cQt({onRetryAttempt:e.onRetryAttempt,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,awsAccessKey:e.awsAccessKey,awsSecretKey:e.awsSecretKey,awsSessionToken:e.awsSessionToken,awsRegion:e.awsRegion,awsAuthentication:e.awsAuthentication,awsBedrockApiKey:e.awsBedrockApiKey,awsUseCrossRegionInference:e.awsUseCrossRegionInference,awsUseGlobalInference:e.awsUseGlobalInference,awsBedrockUsePromptCache:e.awsBedrockUsePromptCache,awsUseProfile:e.awsUseProfile,awsProfile:e.awsProfile,awsBedrockEndpoint:e.awsBedrockEndpoint,awsBedrockCustomSelected:r==="plan"?e.planModeAwsBedrockCustomSelected:e.actModeAwsBedrockCustomSelected,awsBedrockCustomModelBaseId:r==="plan"?e.planModeAwsBedrockCustomModelBaseId:e.actModeAwsBedrockCustomModelBaseId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"vertex":return new qje({onRetryAttempt:e.onRetryAttempt,vertexProjectId:e.vertexProjectId,vertexRegion:e.vertexRegion,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,geminiApiKey:e.geminiApiKey,geminiBaseUrl:e.geminiBaseUrl,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,ulid:e.ulid});case"openai":{let i=r==="plan"?e.planModeOpenAiModelId:e.actModeOpenAiModelId,a=r==="plan"?e.planModeOpenAiModelInfo:e.actModeOpenAiModelInfo;!a&&i&&(a=grr(i));let o=e.openAiBaseUrl&&e.openAiBaseUrl.startsWith("http");(e.openAiCompatibleCustomApiKey||o)&&(a={...a||Nm,supportsTools:!0,supportsReasoning:!0,isR1FormatRequired:!0});let n=e.openAiCompatibleCustomApiKey||e.openAiApiKey;if(n){let s=`${n.slice(0,4)}****${n.slice(-4)}`;Qe.info(`Using OpenAI API key: ${s} (from ${e.openAiCompatibleCustomApiKey?"custom key":"standard key"})`)}if(e.openAiBaseUrl?.replace(/\/+$/,"").endsWith("/responses")){let s=e.openAiBaseUrl.replace(/\/responses\/?$/,"");return new Aje({onRetryAttempt:e.onRetryAttempt,openAiApiKey:n,openAiBaseUrl:s,openAiModelId:i,openAiModelInfo:a,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort})}return new lje({onRetryAttempt:e.onRetryAttempt,openAiApiKey:n,openAiBaseUrl:e.openAiBaseUrl,azureApiVersion:e.azureApiVersion,openAiHeaders:e.openAiHeaders,openAiModelId:i,openAiModelInfo:a,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort})}case"lmstudio":return new SKe({onRetryAttempt:e.onRetryAttempt,lmStudioBaseUrl:e.lmStudioBaseUrl,lmStudioModelId:r==="plan"?e.planModeLmStudioModelId:e.actModeLmStudioModelId,lmStudioMaxTokens:e.lmStudioMaxTokens});case"gemini":return new Ele({onRetryAttempt:e.onRetryAttempt,vertexProjectId:e.vertexProjectId,vertexRegion:e.vertexRegion,geminiApiKey:e.geminiApiKey,geminiBaseUrl:e.geminiBaseUrl,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,ulid:e.ulid,geminiSearchEnabled:e.geminiSearchEnabled});case"openai-native":return new pje({onRetryAttempt:e.onRetryAttempt,openAiNativeApiKey:e.openAiNativeApiKey,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"openai-codex":return new _zt({onRetryAttempt:e.onRetryAttempt,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"deepseek":return new mKe({onRetryAttempt:e.onRetryAttempt,deepSeekApiKey:e.deepSeekApiKey,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"requesty":return new yje({onRetryAttempt:e.onRetryAttempt,requestyBaseUrl:e.requestyBaseUrl,requestyApiKey:e.requestyApiKey,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,requestyModelId:r==="plan"?e.planModeRequestyModelId:e.actModeRequestyModelId,requestyModelInfo:r==="plan"?e.planModeRequestyModelInfo:e.actModeRequestyModelInfo});case"fireworks":return new yKe({onRetryAttempt:e.onRetryAttempt,fireworksApiKey:e.fireworksApiKey,fireworksModelId:r==="plan"?e.planModeFireworksModelId:e.actModeFireworksModelId});case"together":return new vje({onRetryAttempt:e.onRetryAttempt,togetherApiKey:e.togetherApiKey,togetherModelId:r==="plan"?e.planModeTogetherModelId:e.actModeTogetherModelId});case"qwen":return new gje({onRetryAttempt:e.onRetryAttempt,qwenApiKey:e.qwenApiKey,qwenApiLine:e.qwenApiLine==="international"?"international":"china",apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"qwen-code":return new mje({onRetryAttempt:e.onRetryAttempt,qwenCodeOauthPath:e.qwenCodeOauthPath,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"doubao":return new EKe({onRetryAttempt:e.onRetryAttempt,doubaoApiKey:e.doubaoApiKey,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"mistral":return new jze({onRetryAttempt:e.onRetryAttempt,mistralApiKey:e.mistralApiKey,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"vscode-lm":return new Hje({onRetryAttempt:e.onRetryAttempt,vsCodeLmModelSelector:r==="plan"?e.planModeVsCodeLmModelSelector:e.actModeVsCodeLmModelSelector});case"github-copilot":return new bYt({onRetryAttempt:e.onRetryAttempt,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"litellm":return new zGe({onRetryAttempt:e.onRetryAttempt,liteLlmApiKey:e.liteLlmApiKey,liteLlmBaseUrl:e.liteLlmBaseUrl,liteLlmModelId:r==="plan"?e.planModeLiteLlmModelId:e.actModeLiteLlmModelId,liteLlmModelInfo:r==="plan"?e.planModeLiteLlmModelInfo:e.actModeLiteLlmModelInfo,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,liteLlmUsePromptCache:e.liteLlmUsePromptCache,ulid:e.ulid});case"moonshot":return new $ze({onRetryAttempt:e.onRetryAttempt,moonshotApiKey:e.moonshotApiKey,moonshotApiLine:e.moonshotApiLine,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"huggingface":return new bKe({onRetryAttempt:e.onRetryAttempt,huggingFaceApiKey:e.huggingFaceApiKey,huggingFaceModelId:r==="plan"?e.planModeHuggingFaceModelId:e.actModeHuggingFaceModelId,huggingFaceModelInfo:r==="plan"?e.planModeHuggingFaceModelInfo:e.actModeHuggingFaceModelInfo});case"nebius":return new Xze({onRetryAttempt:e.onRetryAttempt,nebiusApiKey:e.nebiusApiKey,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"xai":return new Wje({onRetryAttempt:e.onRetryAttempt,xaiApiKey:e.xaiApiKey,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"sambanova":return new Cje({onRetryAttempt:e.onRetryAttempt,sambanovaApiKey:e.sambanovaApiKey,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"cerebras":return new AKe({onRetryAttempt:e.onRetryAttempt,cerebrasApiKey:e.cerebrasApiKey,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"groq":return new CKe({onRetryAttempt:e.onRetryAttempt,groqApiKey:e.groqApiKey,groqModelId:r==="plan"?e.planModeGroqModelId:e.actModeGroqModelId,groqModelInfo:r==="plan"?e.planModeGroqModelInfo:e.actModeGroqModelInfo,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"baseten":return new tHe({onRetryAttempt:e.onRetryAttempt,basetenApiKey:e.basetenApiKey,basetenModelId:r==="plan"?e.planModeBasetenModelId:e.actModeBasetenModelId,basetenModelInfo:r==="plan"?e.planModeBasetenModelInfo:e.actModeBasetenModelInfo,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"claude-code":return new gKe({onRetryAttempt:e.onRetryAttempt,claudeCodePath:e.claudeCodePath,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"huawei-cloud-maas":return new vKe({onRetryAttempt:e.onRetryAttempt,huaweiCloudMaasApiKey:e.huaweiCloudMaasApiKey,huaweiCloudMaasModelId:r==="plan"?e.planModeHuaweiCloudMaasModelId:e.actModeHuaweiCloudMaasModelId,huaweiCloudMaasModelInfo:r==="plan"?e.planModeHuaweiCloudMaasModelInfo:e.actModeHuaweiCloudMaasModelInfo});case"dify":return new mUt({difyApiKey:e.difyApiKey,difyBaseUrl:e.difyBaseUrl});case"vercel-ai-gateway":return new bje({onRetryAttempt:e.onRetryAttempt,vercelAiGatewayApiKey:e.vercelAiGatewayApiKey,openRouterModelId:r==="plan"?e.planModeVercelAiGatewayModelId:e.actModeVercelAiGatewayModelId,openRouterModelInfo:r==="plan"?e.planModeVercelAiGatewayModelInfo:e.actModeVercelAiGatewayModelInfo,reasoningEffort:r==="plan"?e.planModeReasoningEffort:e.actModeReasoningEffort,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"zai":return new Kje({onRetryAttempt:e.onRetryAttempt,zaiApiLine:e.zaiApiLine,zaiApiKey:e.zaiApiKey,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});case"aihubmix":return new Zqe({onRetryAttempt:e.onRetryAttempt,apiKey:e.aihubmixApiKey,baseURL:e.aihubmixBaseUrl,appCode:e.aihubmixAppCode,modelId:r==="plan"?e.planModeAihubmixModelId:e.actModeAihubmixModelId,modelInfo:r==="plan"?e.planModeAihubmixModelInfo:e.actModeAihubmixModelInfo});case"minimax":return new xKe({onRetryAttempt:e.onRetryAttempt,minimaxApiKey:e.minimaxApiKey,minimaxApiLine:e.minimaxApiLine,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens});case"nousResearch":return new Zze({onRetryAttempt:e.onRetryAttempt,nousResearchApiKey:e.nousResearchApiKey,apiModelId:r==="plan"?e.planModeNousResearchModelId:e.actModeNousResearchModelId});case"wandb":return new Vje({onRetryAttempt:e.onRetryAttempt,wandbApiKey:e.wandbApiKey,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId});default:return new g_e({onRetryAttempt:e.onRetryAttempt,apiKey:e.apiKey,anthropicBaseUrl:e.anthropicBaseUrl,apiModelId:r==="plan"?e.planModeApiModelId:e.actModeApiModelId,thinkingBudgetTokens:r==="plan"?e.planModeThinkingBudgetTokens:e.actModeThinkingBudgetTokens})}}function R0(t,e){let{planModeApiProvider:r,actModeApiProvider:i,...a}=t,o=e==="plan"?r:i;try{let n=e==="plan"?a.planModeThinkingBudgetTokens:a.actModeThinkingBudgetTokens;if(n&&n>0){let s=TMs(o,a,e),u=s.getModel().info;if(u?.maxTokens&&u.maxTokens>0&&n>u.maxTokens){let f=u.maxTokens-1;e==="plan"?a.planModeThinkingBudgetTokens=f:a.actModeThinkingBudgetTokens=f}else return s}}catch(n){Qe.error("buildApiHandler error:",n)}return TMs(o,a,e)}var OD=$(()=>{"use strict";Bo();br();BPo();DPo();kPo();vts();ias();fas();has();pas();Aas();gas();XAn();mas();Eas();yas();tin();Cas();vas();CTs();vTs();bTs();STs();m4s();F4s();N4s();L4s();G4s();q4s();V4s();W4s();K4s();z4s();j4s();lMs();AMs();SMs();xMs();IMs();_Ms()});var wMs=$(()=>{"use strict";zi();sj();JQ();OD();br()});var BMs=$(()=>{"use strict";zi();sj();OD();br()});var RMs=$(()=>{"use strict";OD();zi();sj();br()});var DMs=$(()=>{"use strict";zi();XX();SR();br()});var kMs=$(()=>{"use strict";zi();XX();br()});var N3n=$(()=>{"use strict";ol();Dc();Gs();va();Uo();br();Bo()});var MMs=$(()=>{"use strict";FA();JQ();N3n()});var L3n=$(()=>{"use strict";ol();Bo();Dc();ZT();Gs();Uo();br();Bo()});var PMs=$(()=>{"use strict";FA();JQ();L3n()});var OMs=$(()=>{"use strict";FA();Uo();br()});import FMs from"fs/promises";import NMs from"path";function urh(t,e){if(e?.includes("reasoning"))return t.startsWith("anthropic/claude")?{maxBudget:8192}:t.includes("gemini-3")?{maxBudget:32767,supportsThinkingLevel:!0,geminiThinkingLevel:"high"}:t.startsWith("deepseek/deepseek-r1")?{maxBudget:8192}:t.startsWith("openai/o1")||t.startsWith("openai/o3")?{maxBudget:32e3}:t==="qwen/qwq-32b:free"||t==="qwen/qwq-32b"?{maxBudget:32e3}:{maxBudget:32e3}}function crh(t){if(t.startsWith("deepseek/deepseek-r1")||t==="perplexity/sonar-reasoning"||t==="qwen/qwq-32b:free"||t==="qwen/qwq-32b")return .7;if(t.startsWith("google/gemini-3"))return 1}async function Q3n(t){let e=Gi.get().getModelsCache("vercel");return e||Yje||(Yje=(async()=>{try{return await lrh()}finally{Yje=null}})(),Yje)}async function lrh(){let t=NMs.join(await lS(),Qo.vercelAiGatewayModels),e={};try{let r=await Ty.get("https://ai-gateway.vercel.sh/v1/models?include_mappings=true",rv());if(r.data?.data){let i=r.data.data,a=o=>{if(o)return Number.parseFloat(o)*1e6};for(let o of i){if(o.type==="embedding")continue;let n={maxTokens:o.max_tokens??0,contextWindow:o.context_window??0,inputPrice:a(o.pricing?.input)??0,outputPrice:a(o.pricing?.output)??0,cacheWritesPrice:a(o.pricing?.input_cache_write)??0,cacheReadsPrice:a(o.pricing?.input_cache_read)??0,supportsImages:!0,supportsPromptCache:!!(o.pricing?.input_cache_read&&o.pricing?.input_cache_write),description:o.description??"",thinkingConfig:urh(o.id,o.tags),temperature:crh(o.id)};e[o.id]=n}await FMs.writeFile(t,JSON.stringify(e)),Qe.log("Vercel AI Gateway models fetched and saved")}else throw new Error("Invalid response from Vercel AI Gateway API")}catch(r){Qe.error("Error fetching Vercel AI Gateway models:",r);let i=await drh();i&&(e=i)}return Gi.get().setModelsCache("vercel",e),e}async function drh(){let t=NMs.join(await lS(),Qo.vercelAiGatewayModels);if(await Ha(t))try{let r=await FMs.readFile(t,"utf8");return JSON.parse(r)}catch(r){Qe.error("Error reading cached Vercel AI Gateway models:",r);return}}var Yje,U3n=$(()=>{"use strict";ol();Dc();WW();Gs();Uo();br();Yje=null});var LMs=$(()=>{"use strict";FA();JQ();U3n()});var QMs=$(()=>{"use strict";zi()});var UMs=$(()=>{"use strict";zi()});var GMs,qMs,SYt,xYt=$(()=>{"use strict";GMs=[{name:"newtask",description:"Create a new task with context from the current task",section:"default",cliCompatible:!0},{name:"smol",description:"Condenses your current context window",section:"default",cliCompatible:!0},{name:"newrule",description:"Create a new Dirac rule based on your conversation",section:"default",cliCompatible:!0},{name:"reportbug",description:"Create a Github issue with Dirac",section:"default",cliCompatible:!0}],qMs=[{name:"explain-changes",description:"Explain code changes between git refs (PRs, commits, branches, etc.)",section:"default"}],SYt=[{name:"help",description:"Learn how to use Dirac CLI",section:"default",cliCompatible:!0},{name:"settings",description:"Change API provider, auto-approve, and feature settings",section:"default",cliCompatible:!0},{name:"models",description:"Change the model used for the current mode",section:"default",cliCompatible:!0},{name:"history",description:"Browse and search task history",section:"default",cliCompatible:!0},{name:"clear",description:"Clear the current task and start fresh",section:"default",cliCompatible:!0},{name:"exit",description:"Alternative to Ctrl+C",section:"default",cliCompatible:!0},{name:"q",description:"Alternative to Ctrl+C",section:"default",cliCompatible:!0},{name:"skills",description:"View and manage installed skills",section:"default",cliCompatible:!0}]});import*as OG from"fs/promises";import*as nfe from"path";async function frh(t,e){let r=[];if(!await Ha(t)||!await L0(t))return r;try{let i=await OG.readdir(t);for(let a of i){let o=nfe.join(t,a);if(!(await OG.stat(o).catch(()=>null))?.isDirectory())continue;let s=await hrh(o,e,a);s&&r.push(s)}}catch(i){i instanceof Error&&"code"in i&&i.code==="EACCES"&&Qe.warn(`Permission denied reading skills directory: ${t}`)}return r}async function hrh(t,e,r){let i=nfe.join(t,"SKILL.md");if(!await Ha(i))return null;try{let a=await OG.readFile(i,"utf-8"),{data:o,parseError:n}=g3(a);return n?(Qe.warn(`Failed to parse YAML frontmatter for skill at ${t}: ${n}`),null):!o.name||typeof o.name!="string"?(Qe.warn(`Skill at ${t} missing required 'name' field in frontmatter`),null):!o.description||typeof o.description!="string"?(Qe.warn(`Skill at ${t} missing required 'description' field in frontmatter`),null):o.name!==r?(Qe.warn(`Skill name "${o.name}" in frontmatter doesn't match directory "${r}" at ${t}`),null):{name:r,description:o.description,path:i,source:e}}catch(a){return Qe.warn(`Failed to load skill at ${t}:`,a),null}}async function prh(t){let e=[],r=Fpe(t);for(let i of r){let a=await frh(i.path,i.source);e.push(...a)}return e}function Arh(t){let e=new Set,r=[];for(let i=t.length-1;i>=0;i--){let a=t[i];e.has(a.name)||(e.add(a.name),r.unshift(a))}return r}async function HMs(t){let e=nfe.dirname(t),r=nfe.join(e,"docs"),i=nfe.join(e,"scripts"),a=[],o=[];try{if(await Ha(r)){let n=await OG.readdir(r);a.push(...n.filter(s=>s.endsWith(".md")||s.endsWith(".txt")))}}catch(n){Qe.warn(`Failed to read docs directory for skill at ${e}:`,n)}try{if(await Ha(i)){let n=await OG.readdir(i);o.push(...n.filter(s=>!s.startsWith(".")))}}catch(n){Qe.warn(`Failed to read scripts directory for skill at ${e}:`,n)}return{docs:a,scripts:o}}async function IYt(t,e){let r=e.find(i=>i.name===t);if(!r)return null;try{let i=await OG.readFile(r.path,"utf-8"),{body:a}=g3(i);return{...r,instructions:a.trim()}}catch{return null}}async function FD(t,e){if(e.discoveredSkillsCache!==void 0)return e.discoveredSkillsCache;let r=await prh(t),i=Arh(r);return e.discoveredSkillsCache=i,i}var sZ=$(()=>{"use strict";ol();Dc();br();Xhe()});async function Jje(t,e){let r=[];for(let c of[...GMs])r.push(PT.create({name:c.name,description:c.description,section:"default",cliCompatible:c.cliCompatible}));let i=t.stateManager.getWorkspaceStateKey("workflowToggles")??{},a=t.stateManager.getGlobalSettingsKey("globalWorkflowToggles")??{},o=t.stateManager.getGlobalStateKey("remoteWorkflowToggles")??{},n=[],s=new Set;for(let[c,p]of Object.entries(i))if(p){let A=VMs(c);s.add(A),r.push(PT.create({name:A,description:`Custom workflow: ${A}`,section:"custom",cliCompatible:!0}))}for(let[c,p]of Object.entries(a))if(p){let A=VMs(c);s.has(A)||r.push(PT.create({name:A,description:`Custom workflow: ${A}`,section:"custom",cliCompatible:!0}))}for(let c of n)(c.alwaysEnabled||o[c.name]!==!1)&&r.push(PT.create({name:c.name,description:`Remote workflow: ${c.name}`,section:"custom",cliCompatible:!0}));let u=t.task?.cwd||t.getWorkspaceManager()?.getPrimaryRoot()?.path||process.cwd(),f=await FD(u,t.task?.taskState||{}),d=t.stateManager.getGlobalSettingsKey("globalSkillsToggles")??{},h=t.stateManager.getWorkspaceStateKey("localSkillsToggles")??{};for(let c of f)(c.source==="global"?d:h)[c.path]!==!1&&r.push(PT.create({name:c.name,description:c.description,section:"skill",cliCompatible:!0}));return O7e.create({commands:r})}function VMs(t){return t.replace(/^.*[/\\]/,"")}var _Yt=$(()=>{"use strict";wLr();xYt();sZ()});var G3n=$(()=>{"use strict";jI()});var WMs=$(()=>{"use strict"});var KMs=$(()=>{"use strict";nLr();irr()});var zMs=$(()=>{"use strict";KMs()});var jje=$(()=>{"use strict";xoe();zMs();Q_()});var YMs=$(()=>{"use strict";jje()});var JMs=$(()=>{"use strict";jje();Dnn()});async function q3n(t,e,r,i){$je.add(r);let a=()=>{$je.delete(r)};i&&Xv().registerRequest(i,a,{type:"state_subscription"},r);let o=await t.getStateToPostToWebview(),n=JSON.stringify(o);$Ms(Buffer.byteLength(n,"utf8"));try{await r({stateJson:n},!1)}catch(s){Qe.error("Error sending initial state:",s),$je.delete(r)}}async function jMs(t){let e;try{e=JSON.stringify(t)}catch(i){Qe.error("Error serializing state update:",i);return}$Ms(Buffer.byteLength(e,"utf8"));let r=Array.from($je).map(async i=>{try{await i({stateJson:e},!1)}catch(a){Qe.error("Error sending state update:",a),$je.delete(i)}});await Promise.all(r)}function $Ms(t){Or.captureGrpcResponseSize(t,"dirac.StateService","subscribeToState")}var $je,wYt=$(()=>{"use strict";va();br();PS();$je=new Set});var XMs=$(()=>{"use strict";zi();va();br()});async function RBe(){let t=Array.from(ZMs).map(async e=>{try{let r=zn.create({});await e(r,!1)}catch(r){Qe.error("Error sending chatButtonClicked event:",r),ZMs.delete(e)}});await Promise.all(t)}var ZMs,Xje=$(()=>{"use strict";zi();br();PS();ZMs=new Set});var ePs=$(()=>{"use strict";zi();uor();Ua();hp();br();Xje()});var tPs=$(()=>{"use strict";zi();jI();br()});var rPs=$(()=>{"use strict";zi()});var nPs=$(()=>{"use strict";OD();zi();jI();sj();S3();Ua();hp();br();va()});var BYt=$(()=>{"use strict";jI();Xx()});var aPs=$(()=>{"use strict";OD();zi();jI();sj();S3();Ua();hp();br();va();BYt()});var oPs=$(()=>{"use strict";zi();jI();sj();BYt()});var sPs=$(()=>{"use strict";jI()});var uPs=$(()=>{"use strict";zi();sPs()});var cPs=$(()=>{"use strict";zi();br();va()});var lPs=$(()=>{"use strict";zi();br()});var dPs=$(()=>{"use strict";zi()});var fPs=$(()=>{"use strict";zi()});var hPs=$(()=>{"use strict";zi()});var H3n,pPs=$(()=>{"use strict";H3n=(n=>(n.Link="link",n.ShowApiSettings="show-api-settings",n.ShowFeatureSettings="show-feature-settings",n.ShowAccount="show-account",n.SetModel="set-model",n.InstallCli="install-cli",n))(H3n||{})});var APs,gPs,Erh,yrh,mPs,V3n,Crh,vrh,brh,uZ,RYt=$(()=>{"use strict";pPs();S3();Gs();E_();Uo();a2e();br();Vm();aj();APs=1440*60*1e3,gPs=3600*1e3,Erh=900*1e3,yrh=1e3,mPs=1e4,V3n=3,Crh={win32:"windows",linux:"linux",darwin:"macos"},vrh={vscode:"vscode",jetbrains:"jetbrains",cli:"cli"},brh={anthropic:["anthropic","claude-code"],openai:["openai","openai-native"],qwen:["qwen","qwen-code"]},uZ=class t{constructor(e,r){this.controller=e;this.hostInfo=r;this.validActionTypes=new Set(Object.values(H3n)),Qe.log("[BannerService] initialized")}static instance=null;cachedBanners=[];lastFetchTime=0;backoffUntil=0;consecutiveFailures=0;userId=null;fetchPromise=null;abortController=null;debounceTimer=null;pendingDebounceResolve=null;authFetchPending=!1;validActionTypes;static initialize(e){if(t.instance)return t.instance;let r=Khe.get();if(!r)throw new Error("[BannerService] Ensure HostRegistryInfo is initialized before BannerService.");return t.instance=new t(e,r),t.instance}static get(){if(!t.instance)throw new Error("BannerService not initialized. Call BannerService.initialize(controller) first.");return t.instance}static reset(){let e=t.instance;e&&(e.debounceTimer&&clearTimeout(e.debounceTimer),e.abortController?.abort()),t.instance=null}static async onAuthUpdate(e){let r=t.instance;if(!(!r||r.userId===e))return r.debounceTimer&&(clearTimeout(r.debounceTimer),r.debounceTimer=null),r.pendingDebounceResolve&&(r.pendingDebounceResolve(),r.pendingDebounceResolve=null),r.abortController?.abort(),r.abortController=null,r.fetchPromise=null,r.authFetchPending=!0,r.userId=e,new Promise(i=>{r.pendingDebounceResolve=i,r.debounceTimer=setTimeout(async()=>{r.debounceTimer=null,r.pendingDebounceResolve=null,r.consecutiveFailures=0,r.backoffUntil=0;try{await r.doFetch()}finally{r.authFetchPending=!1,i()}},yrh)})}getActiveBanners(){return this.ensureFreshCache(),this.cachedBanners.filter(r=>r.placement!=="welcome").filter(r=>!this.isBannerDismissed(r.id)).map(r=>this.toBannerCardData(r)).filter(r=>r!==null)}getWelcomeBanners(){if(!(process.env.DIRAC_ENVIRONMENT==="local"||gb.getBooleanFlagEnabled("remote-welcome-banners")))return;let i=process.env.DIRAC_ENVIRONMENT==="local";return this.ensureFreshCache(),this.cachedBanners.filter(n=>n.placement==="welcome").filter(n=>i||!this.isBannerDismissed(n.id)).map(n=>this.toBannerCardData(n)).filter(n=>n!==null)}ensureFreshCache(){let e=Date.now(),r=this.getCacheDurationMs();e>=this.backoffUntil&&e-this.lastFetchTime>=r&&!this.fetchPromise&&!this.authFetchPending&&(this.fetchPromise=this.doFetch(),this.fetchPromise.finally(()=>{this.fetchPromise=null}))}getCacheDurationMs(){let e=gb.getFlagPayload("extension_remote_banners_ttl"),r=typeof e=="number"&&Number.isFinite(e)?e:APs;return!Number.isFinite(r)||r<=0?APs:r}clearCache(){this.abortController?.abort(),this.abortController=null,this.cachedBanners=[],this.lastFetchTime=0,this.consecutiveFailures=0,this.backoffUntil=0,this.fetchPromise=null}async dismissBanner(e){try{let r=Gi.get().getGlobalStateKey("dismissedBanners")||[];if(r.some(i=>i.bannerId===e))return;Gi.get().setGlobalState("dismissedBanners",[...r,{bannerId:e,dismissedAt:Date.now()}]),await this.sendBannerEvent(e,"dismiss"),this.clearCache()}catch(r){Qe.error("[BannerService] Error dismissing banner",r)}}async sendBannerEvent(e,r){try{let i=new URL("/banners/v2/messages",k7.config().apiBaseUrl).toString(),a=this.getIdeType(),o=a==="cli"?"cli":a==="jetbrains"?"jetbrains":"vscode",n=new AbortController,s=setTimeout(()=>n.abort(),mPs);await Ga(i,{method:"POST",headers:{"Content-Type":"application/json",...await jfr()},body:JSON.stringify({banner_id:e,instance_id:this.hostInfo.distinctId,surface:o,event_type:r}),signal:n.signal}),clearTimeout(s)}catch(i){Qe.error("[BannerService] Error sending banner event",i)}}isBannerDismissed(e){try{return(Gi.get().getGlobalStateKey("dismissedBanners")||[]).some(i=>i.bannerId===e)}catch(r){return Qe.error("[BannerService] Error checking dismissed banner",r),!1}}async doFetch(){if(!gb.getBooleanFlagEnabled("remote-banners"))return[];this.abortController=new AbortController;let{signal:e}=this.abortController,r=setTimeout(()=>this.abortController?.abort(),mPs);try{let i=this.buildFetchUrl(),a={"Content-Type":"application/json",...await jfr()},o=void 0;o&&(a.Authorization=`Bearer ${o}`);let n=await Ga(i,{method:"GET",headers:a,signal:e});if(clearTimeout(r),!n.ok)throw Object.assign(new Error(`HTTP ${n.status}`),{status:n.status,headers:n.headers});let s=await n.json();if(!s?.data?.items||!Array.isArray(s.data.items))return[];let u=s.data.items.filter(f=>this.matchesProviderRule(f));return this.cachedBanners=u,this.lastFetchTime=Date.now(),this.consecutiveFailures=0,Qe.log(`[BannerService] After provider filter: ${u.length} banners: ${JSON.stringify(u.map(f=>({id:f.id,placement:f.placement})))}`),this.controller.postStateToWebview().catch(f=>{Qe.error("Failed to post state to webview after fetching banners:",f)}),u}catch(i){return clearTimeout(r),i instanceof Error&&i.name==="AbortError"?this.cachedBanners:(this.handleFetchError(i),this.cachedBanners)}finally{this.abortController=null}}handleFetchError(e){this.consecutiveFailures++;let r=e,i=r.status,a=gPs;if(i===429){let o=r.headers?.get("retry-after");if(o){let n=Number.parseInt(o,10);if(!Number.isNaN(n))a=n*1e3;else{let s=new Date(o);Number.isNaN(s.getTime())||(a=Math.max(0,s.getTime()-Date.now()))}}}else i&&i>=500&&i<600&&(a=Erh);if(this.backoffUntil=Date.now()+a,this.consecutiveFailures>=V3n){this.backoffUntil=Date.now()+gPs;let o=this.consecutiveFailures===V3n?"Circuit breaker tripped":"Half-open recovery failed";Qe.log(`BannerService: ${o}, will allow recovery attempt after 1 hour`)}Qe.error(`[BannerService] Failed ${this.consecutiveFailures}/${V3n}. Backing off for ${Math.ceil(a/6e4)} minutes`,e)}buildFetchUrl(){let e=new URL("/banners/v2/messages",k7.config().apiBaseUrl);return e.searchParams.set("ide",this.getIdeType()),e.searchParams.set("extension_version",this.hostInfo.extensionVersion),e.searchParams.set("os",Crh[this.hostInfo.os]||"unknown"),e.toString()}getIdeType(){let e=this.hostInfo.ide?.toLowerCase()??"";for(let[i,a]of Object.entries(vrh))if(e.includes(i))return a;let r=this.hostInfo.platform?.toLowerCase()??"";return r.includes("visual studio")||r.includes("vscode")?"vscode":"unknown"}matchesProviderRule(e){try{let r=JSON.parse(e.rulesJson||"{}");if(!r?.providers?.length)return!0;let i=Gi.get().getApiConfiguration(),o=Gi.get().getGlobalSettingsKey("mode")==="plan"?i?.planModeApiProvider:i?.actModeApiProvider;return r.providers.some(n=>{for(let[s,u]of Object.entries(brh))if(u.includes(n))return u.includes(o);return o===n})}catch(r){return Qe.log(`[BannerService] Error parsing provider rules for banner ${e.id}: ${r instanceof Error?r.message:String(r)}`),!0}}getBannerActions(e){return e.actions??[]}toBannerCardData(e){let r=this.getBannerActions(e);for(let i of r)if(!i.action||!this.validActionTypes.has(i.action)||!i.title)return Qe.error(`[BannerService] Invalid action type (${i.action}) for banner ${e.id}`),null;return{id:e.id,title:e.titleMd,description:e.bodyMd,icon:e.icon,actions:r.map(i=>({title:i.title||"",action:i.action,arg:i.arg}))}}}});var EPs=$(()=>{"use strict";RYt();br()});var yPs=$(()=>{"use strict";RYt();br()});var CPs=$(()=>{"use strict";zi();hp();Qhr();Ua();br()});import{exec as Srh}from"child_process";import{promisify as xrh}from"util";async function vPs(){try{let{stdout:t}=await Irh("dirac version",{timeout:5e3});return t.includes("Dirac CLI Version")||t.includes("Dirac Core Version")}catch{return!1}}var Irh,bPs=$(()=>{"use strict";Irh=xrh(Srh)});async function W3n(t){try{let e=await vPs();return h3.create({value:e})}catch{return h3.create({value:!1})}}var K3n=$(()=>{"use strict";zi();bPs()});var SPs=$(()=>{"use strict";jI()});var xPs=$(()=>{"use strict";zi();br()});var IPs=$(()=>{"use strict";jI();va();br()});var _Ps=$(()=>{"use strict";jI();br();r4e()});var TPs=$(()=>{"use strict";zi()});var wPs=$(()=>{"use strict";zi()});var BPs=$(()=>{"use strict";zi()});import{join as _rh}from"node:path";async function DBe(t,e){return await z3n(t,e,{errors:!0})}async function z3n(t,e={},r={}){let i=e.fs||await import("node:fs/promises"),a=0n,o=new Set,n=[];await s(t);async function s(u){if(e.ignore?.test(u))return;let f=r.strict?await i.lstat(u,{bigint:!0}):await i.lstat(u,{bigint:!0}).catch(d=>n.push(d));if(typeof f=="object"&&(o.has(f.ino)||(o.add(f.ino),a+=f.size),f.isDirectory())){let d=r.strict?await i.readdir(u):await i.readdir(u).catch(h=>n.push(h));if(typeof d!="object")return;await Promise.all(d.map(h=>s(_rh(u,h))))}}if(!e.bigint)if(a>BigInt(Number.MAX_SAFE_INTEGER)){let u=new RangeError("The folder size is too large to return as a Number. You can instruct this package to return a BigInt instead.");if(r.strict)throw u;n.push(u),a=Number.MAX_SAFE_INTEGER}else a=Number(a);return r.errors?{size:a,errors:n.length>0?n:null}:a}var Y3n=$(()=>{"use strict";DBe.loose=async(t,e)=>await z3n(t,e);DBe.strict=async(t,e)=>await z3n(t,e,{strict:!0})});var RPs=$(()=>{"use strict";Y3n();Ua();br()});var DPs=$(()=>{"use strict";RPs()});var kPs=$(()=>{"use strict";zi();Ua();hp();br();Dc()});var MPs=$(()=>{"use strict";zi();jI();sj();yrr();BYt()});async function FG(t,e){try{let r=e.value,a=t.stateManager.getGlobalStateKey("taskHistory").find(n=>n.id===r);if(a)return await t.initTask(void 0,void 0,void 0,a),await RBe(),mbe.create({id:a.id,task:a.task||"",ts:a.ts||0,isFavorited:a.isFavorited||!1,size:a.size||0,totalCost:a.totalCost||0,tokensIn:a.tokensIn||0,tokensOut:a.tokensOut||0,cacheWrites:a.cacheWrites||0,cacheReads:a.cacheReads||0});let{historyItem:o}=await t.getTaskWithId(r);return await t.initTask(void 0,void 0,void 0,o),await RBe(),mbe.create({id:o.id,task:o.task||"",ts:o.ts||0,isFavorited:o.isFavorited||!1,size:o.size||0,totalCost:o.totalCost||0,tokensIn:o.tokensIn||0,tokensOut:o.tokensOut||0,cacheWrites:o.cacheWrites||0,cacheReads:o.cacheReads||0})}catch(r){throw Qe.error("Error in showTaskWithId:",r),r}}var kBe=$(()=>{"use strict";Ebe();br();Xje()});var PPs=$(()=>{"use strict";zi();br()});var OPs=$(()=>{"use strict";zi();br()});async function J3n(t,e){try{let{favoritesOnly:r,currentWorkspaceOnly:i,searchQuery:a,sortBy:o}=e,n=t.stateManager.getGlobalStateKey("taskHistory"),s=await OS(),u=n.filter(h=>{let c=t.getWorkspaceManager()?.getPrimaryRoot()?.path,p=h.ts&&h.task,A=!c||!h.workspaceRootPath||h.workspaceRootPath===c;if(!p||!A||r&&!h.isFavorited)return!1;if(i){let m=!1;if(h.cwdOnTaskInitialization&&Ic(h.cwdOnTaskInitialization,s)&&(m=!0),!m&&h.shadowGitConfigWorkTree&&Ic(h.shadowGitConfigWorkTree,s)&&(m=!0),!m)return!1}return!0});if(a){let h=a.toLowerCase();u=u.filter(c=>c.task.toLowerCase().includes(h))}let f=u.length;o?u.sort((h,c)=>{switch(o){case"oldest":return h.ts-c.ts;case"mostExpensive":return(c.totalCost||0)-(h.totalCost||0);case"mostTokens":return(c.tokensIn||0)+(c.tokensOut||0)+(c.cacheWrites||0)+(c.cacheReads||0)-((h.tokensIn||0)+(h.tokensOut||0)+(h.cacheWrites||0)+(h.cacheReads||0));case"newest":default:return c.ts-h.ts}}):u.sort((h,c)=>c.ts-h.ts);let d=u.map(h=>({id:h.id,task:h.task,ts:h.ts,isFavorited:h.isFavorited||!1,size:h.size||0,totalCost:h.totalCost||0,tokensIn:h.tokensIn||0,tokensOut:h.tokensOut||0,cacheWrites:h.cacheWrites||0,cacheReads:h.cacheReads||0,modelId:h.modelId||""}));return Q7e.create({tasks:d,totalCount:f})}catch(r){throw Qe.error("Error in getTaskHistory:",r),r}}var j3n=$(()=>{"use strict";Ebe();br();ks()});var FPs=$(()=>{"use strict";zi();br()});var NPs=$(()=>{"use strict";zi();va();br()});var LPs=$(()=>{"use strict";zi();br()});var QPs=$(()=>{"use strict";zi();br()});var UPs=$(()=>{"use strict";Ebe();Ua();hp();br();Dc()});var GPs=re(Gw=>{"use strict";var Trh=Gw&&Gw.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gw,"__esModule",{value:!0});var wrh=He("fs"),Brh=Trh(jd()),MBe=Brh.default("@kwsites/file-exists");function Rrh(t,e,r){MBe("checking %s",t);try{let i=wrh.statSync(t);return i.isFile()&&e?(MBe("[OK] path represents a file"),!0):i.isDirectory()&&r?(MBe("[OK] path represents a directory"),!0):(MBe("[FAIL] path represents something other than a file or directory"),!1)}catch(i){if(i.code==="ENOENT")return MBe("[FAIL] path is not accessible: %o",i),!1;throw MBe("[FATAL] %o",i),i}}function Drh(t,e=Gw.READABLE){return Rrh(t,(e&Gw.FILE)>0,(e&Gw.FOLDER)>0)}Gw.exists=Drh;Gw.FILE=1;Gw.FOLDER=2;Gw.READABLE=Gw.FILE+Gw.FOLDER});var qPs=re(DYt=>{"use strict";function krh(t){for(var e in t)DYt.hasOwnProperty(e)||(DYt[e]=t[e])}Object.defineProperty(DYt,"__esModule",{value:!0});krh(GPs())});var X3n=re(ife=>{"use strict";Object.defineProperty(ife,"__esModule",{value:!0});ife.createDeferred=ife.deferred=void 0;function $3n(){let t,e,r="pending";return{promise:new Promise((a,o)=>{t=a,e=o}),done(a){r==="pending"&&(r="resolved",t(a))},fail(a){r==="pending"&&(r="rejected",e(a))},get fulfilled(){return r!=="pending"},get status(){return r}}}ife.deferred=$3n;ife.createDeferred=$3n;ife.default=$3n});import{Buffer as Nrh}from"node:buffer";import{spawn as ynh}from"child_process";import{normalize as Nih}from"node:path";import{EventEmitter as Nah}from"node:events";function aBn(...t){let e=new String(t);return GYt.set(e,t),e}function t$e(t){return t instanceof String&&GYt.has(t)}function HPs(t){return GYt.get(t)||[]}function S5s(t){return typeof t!="function"?sfe:t}function x5s(t){return typeof t=="function"&&t!==sfe}function I5s(t,e){let r=t.indexOf(e);return r<=0?[t,""]:[t.substr(0,r),t.substr(r+1)]}function _5s(t,e=0){return T5s(t)&&t.length>e?t[e]:void 0}function ofe(t,e=0){if(T5s(t)&&t.length>e)return t[t.length-1-e]}function T5s(t){return KYt(t)}function a$e(t="",e=!0,r=`
1807
1807
  `){return t.split(r).reduce((i,a)=>{let o=e?a.trim():a;return o&&i.push(o),i},[])}function SBn(t,e){return a$e(t,!0).map(r=>e(r))}function xBn(t){return(0,qYt.exists)(t,qYt.FOLDER)}function ND(t,e){return Array.isArray(t)?t.includes(e)||t.push(e):t.add(e),e}function w5s(t,e){return Array.isArray(t)&&!t.includes(e)&&t.push(e),t}function HYt(t,e){if(Array.isArray(t)){let r=t.indexOf(e);r>=0&&t.splice(r,1)}else t.delete(e);return e}function CN(t){return Array.isArray(t)?t:[t]}function B5s(t){return t.replace(/[\s-]+(.)/g,(e,r)=>r.toUpperCase())}function LBe(t){return CN(t).map(e=>e instanceof String?e:String(e))}function bh(t,e=0){if(t==null)return e;let r=parseInt(t,10);return Number.isNaN(r)?e:r}function r$e(t,e){let r=[];for(let i=0,a=t.length;i<a;i++)r.push(e,t[i]);return r}function n$e(t){return(Array.isArray(t)?Nrh.concat(t):t).toString("utf-8")}function R5s(t,e){let r={};return e.forEach(i=>{t[i]!==void 0&&(r[i]=t[i])}),r}function oBn(t=0){return new Promise(e=>setTimeout(e,t))}function sBn(t){if(t!==!1)return t}function Hb(t,e,r){return e(t)?t:arguments.length>2?r:void 0}function uBn(t,e){let r=t$e(t)?"string":typeof t;return/number|string|boolean/.test(r)&&(!e||!e.includes(r))}function WYt(t){return!!t&&o$e(t)==="[object Object]"}function D5s(t){return typeof t=="function"}function Urh(){throw new Error("LineParser:useMatches not implemented")}function P5s(...t){let e=process.cwd(),r=Object.assign({baseDir:e,...O5s},...t.filter(i=>typeof i=="object"&&i));return r.baseDir=r.baseDir||e,r.trimmed=r.trimmed===!0,r}function _Bn(t,e=[]){return WYt(t)?Object.keys(t).reduce((r,i)=>{let a=t[i];if(t$e(a))r.push(a);else if(uBn(a,["boolean"]))r.push(i+"="+a);else if(Array.isArray(a))for(let o of a)uBn(o,["string","number"])||r.push(i+"="+o);else r.push(i);return r},e):e}function Dx(t,e=0,r=!1){let i=[];for(let a=0,o=e<0?t.length:e;a<o;a++)"string|number".includes(typeof t[a])&&i.push(String(t[a]));return _Bn(TBn(t),i),r||i.push(...Hrh(t)),i}function Hrh(t){let e=typeof ofe(t)=="function";return LBe(Hb(ofe(t,e?1:0),s$e,[]))}function TBn(t){let e=D5s(ofe(t));return Hb(ofe(t,e?1:0),WYt)}function Kp(t,e=!0){let r=S5s(ofe(t));return e||x5s(r)?r:void 0}function lBn(t,e){return t(e.stdOut,e.stdErr)}function z2(t,e,r,i=!0){return CN(r).forEach(a=>{for(let o=a$e(a,i),n=0,s=o.length;n<s;n++){let u=(f=0)=>{if(!(n+f>=s))return o[n+f]};e.some(({parse:f})=>f(u,t))}}),t}function Krh(t){switch(t){case"bare":return Q5s();case"root":return L5s()}return{commands:["rev-parse","--is-inside-work-tree"],format:"utf-8",onError:zYt,parser:wBn}}function L5s(){return{commands:["rev-parse","--git-dir"],format:"utf-8",onError:zYt,parser(e){return/^\.(git)?$/.test(e.trim())}}}function Q5s(){return{commands:["rev-parse","--is-bare-repository"],format:"utf-8",onError:zYt,parser:wBn}}function zrh(t){return/(Not a git repository|Kein Git-Repository)/i.test(String(t))}function Yrh(t,e){let r=new G5s(t),i=t?H5s:q5s;return a$e(e).forEach(a=>{let o=a.replace(i,"");r.paths.push(o),(V5s.test(o)?r.folders:r.files).push(o)}),r}function W5s(t){return{commands:YYt,format:"empty",parser:t}}function K2(t){return{commands:YYt,format:"empty",parser(){throw typeof t=="string"?new v5s(t):t}}}function kx(t,e=!1){return{commands:t,format:"utf-8",parser(r){return e?String(r).trim():r}}}function K5s(t){return{commands:t,format:"buffer",parser(e){return e}}}function z5s(t){return t.format==="buffer"}function Y5s(t){return t.format==="empty"||!t.commands.length}function jrh(t,e){let{cleanMode:r,options:i,valid:a}=Xrh(t);return r?a.options?(i.push(...e),i.some(tnh)?K2(BBn):j5s(r,i)):K2(DBn+JSON.stringify(t)):K2(RBn)}function j5s(t,e){return{commands:["clean",`-${t}`,...e],format:"utf-8",parser(i){return Yrh(t==="n",i)}}}function $rh(t){return Array.isArray(t)&&t.every(e=>kBn.has(e))}function Xrh(t){let e,r=[],i={cleanMode:!1,options:!0};return t.replace(/[^a-z]i/g,"").split("").forEach(a=>{Zrh(a)?(e=a,i.cleanMode=!0):i.options=i.options&&enh(r[r.length]=`-${a}`)}),{cleanMode:e,options:r,valid:i}}function Zrh(t){return t==="f"||t==="n"}function enh(t){return/^-[a-z]$/i.test(t)&&kBn.has(t.charAt(1))}function tnh(t){return/^-[^\-]/.test(t)?t.indexOf("i")>0:t==="--interactive"}function rnh(t){let e=new Z5s;for(let r of X5s(t))e.addValue(r.file,String(r.key),r.value);return e}function nnh(t,e){let r=null,i=[],a=new Map;for(let o of X5s(t,e))o.key===e&&(i.push(r=o.value),a.has(o.file)||a.set(o.file,[]),a.get(o.file).push(r));return{key:e,paths:Array.from(a.keys()),scopes:a,value:r,values:i}}function inh(t){return t.replace(/^(file):/,"")}function*X5s(t,e=null){let r=t.split("\0");for(let i=0,a=r.length-1;i<a;){let o=inh(r[i++]),n=r[i++],s=e;if(n.includes(`
1808
1808
  `)){let u=I5s(n,`
1809
1809
  `);s=u[0],n=u[1]}yield{file:o,key:s,value:n}}}function Z3n(t,e){return typeof t=="string"&&Object.hasOwn(hBn,t)?t:e}function onh(t,e,r,i){let a=["config",`--${i}`];return r&&a.push("--add"),a.push(t,e),{commands:a,format:"utf-8",parser(o){return o}}}function snh(t,e){let r=["config","--null","--show-origin","--get-all",t];return e&&r.splice(1,0,`--${e}`),{commands:r,format:"utf-8",parser(i){return nnh(i,t)}}}function unh(t){let e=["config","--list","--show-origin","--null"];return t&&e.push(`--${t}`),{commands:e,format:"utf-8",parser(r){return rnh(r)}}}function cnh(){return{addConfig(t,e,...r){return this._runTask(onh(t,e,r[0]===!0,Z3n(r[1],"local")),Kp(arguments))},getConfig(t,e){return this._runTask(snh(t,Z3n(e,void 0)),Kp(arguments))},listConfig(...t){return this._runTask(unh(Z3n(t[0],void 0)),Kp(arguments))}}}function lnh(t){return t8s.has(t)}function dnh(...t){return new i8s().param(...t)}function fnh(t){let e=new Set,r={};return SBn(t,i=>{let[a,o,n]=i.split(OBe);e.add(a),(r[a]=r[a]||[]).push({line:bh(o),path:a,preview:n})}),{paths:e,results:r}}function hnh(){return{grep(t){let e=Kp(arguments),r=Dx(arguments);for(let a of n8s)if(r.includes(a))return this._runTask(K2(`git.grep: use of "${a}" is not supported.`),e);typeof t=="string"&&(t=dnh().param(t));let i=["grep","--null","-n","--full-name",...r,...t];return this._runTask({commands:i,format:"utf-8",parser(a){return fnh(a)}},e)}}}function pnh(t,e){let r=["reset"];return s8s(t)&&r.push(`--${t}`),r.push(...e),kx(r)}function Anh(t){if(s8s(t))return t;switch(typeof t){case"string":case"undefined":return"soft"}}function s8s(t){return typeof t=="string"&&u8s.includes(t)}function gnh(){return(0,QYt.default)("simple-git")}function WPs(t,e,r){return!e||!String(e).replace(/\s*/,"")?r?(i,...a)=>{t(i,...a),r(i,...a)}:t:(i,...a)=>{t(`%s ${i}`,e,...a),r&&r(i,...a)}}function mnh(t,e,{namespace:r}){if(typeof t=="string")return t;let i=e&&e.namespace||"";return i.startsWith(r)?i.substr(r.length+1):i||r}function MBn(t,e,r,i=gnh()){let a=t&&`[${t}]`||"",o=[],n=typeof e=="string"?i.extend(e):e,s=mnh(Hb(e,bA),n,i);return f(r);function u(d,h){return ND(o,MBn(t,s.replace(/^[^:]+/,d),h,i))}function f(d){let h=d&&`[${d}]`||"",c=n&&WPs(n,h)||sfe,p=WPs(i,`${a} ${h}`,c);return Object.assign(n?c:p,{label:t,sibling:u,info:p,step:f})}}function afe(t,e){return{method:_5s(t.commands)||"",commands:e}}function Cnh(t,e){return r=>{e("[ERROR] child process exception %o",r),t.push(Buffer.from(String(r.stack),"ascii"))}}function KPs(t,e,r,i){return a=>{r("%s received %L bytes",e,a),i("%B",a),t.push(a)}}function Snh(t,e,r=sfe){let i=o=>{r(null,o)},a=o=>{o?.task===t&&r(o instanceof i$e?xnh(o):o,void 0)};e.then(i,a)}function xnh(t){let e=i=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${i} should be GitResponseError.git.${i}, this will no longer be available in version 3`),e=sfe};return Object.create(t,Object.getOwnPropertyNames(t.git).reduce(r,{}));function r(i,a){return a in t||(i[a]={enumerable:!1,configurable:!1,get(){return e(a),t.git[a]}}),i}}function zPs(t,e){return W5s(r=>{if(!xBn(t))throw new Error(`Git.cwd: cannot change to non-directory "${t}"`);return(e||r).cwd=t})}function tBn(t){let e=["checkout",...t];return e[1]==="-b"&&e.includes("-B")&&(e[1]=HYt(e,"-B")),kx(e)}function Tnh(){return{checkout(){return this._runTask(tBn(Dx(arguments,1)),Kp(arguments))},checkoutBranch(t,e){return this._runTask(tBn(["-b",t,e,...Dx(arguments)]),Kp(arguments))},checkoutLocalBranch(t){return this._runTask(tBn(["-b",t,...Dx(arguments)]),Kp(arguments))}}}function Bnh(){return{count:0,garbage:0,inPack:0,packs:0,prunePackable:0,size:0,sizeGarbage:0,sizePack:0}}function Rnh(){return{countObjects(){return this._runTask({commands:["count-objects","--verbose"],format:"utf-8",parser(t){return z2(Bnh(),[p8s],t)}})}}}function knh(t){return z2({author:null,branch:"",commit:"",root:!1,summary:{changes:0,insertions:0,deletions:0}},A8s,t)}function Pnh(t,e,r){return{commands:["-c","core.abbrev=40","commit",...r$e(t,"-m"),...e,...r],format:"utf-8",parser:knh}}function Onh(){return{commit(e,...r){let i=Kp(arguments),a=t(e)||Pnh(CN(e),CN(Hb(r[0],NYt,[])),[...LBe(Hb(r[1],s$e,[])),...Dx(arguments,0,!0)]);return this._runTask(a,i)}};function t(e){return!NYt(e)&&K2("git.commit: requires the commit message to be supplied as a string/string[]")}}function Nnh(){return{firstCommit(){return this._runTask(kx(["rev-list","--max-parents=0","HEAD"],!0),Kp(arguments))}}}function Qnh(t,e){let r=["hash-object",t];return e&&r.push("-w"),kx(r,!0)}function Gnh(t,e,r){let i=String(r).trim(),a;if(a=g8s.exec(i))return new OYt(t,e,!1,a[1]);if(a=m8s.exec(i))return new OYt(t,e,!0,a[1]);let o="",n=i.split(" ");for(;n.length;)if(n.shift()==="in"){o=n.join(" ");break}return new OYt(t,e,/^re/i.test(i),o)}function Hnh(t){return t.includes(PBn)}function Vnh(t=!1,e,r){let i=["init",...r];return t&&!Hnh(i)&&i.splice(1,0,PBn),{commands:i,format:"utf-8",parser(a){return Gnh(i.includes("--bare"),e,a)}}}function OBn(t){for(let e=0;e<t.length;e++){let r=FBn.exec(t[e]);if(r)return`--${r[1]}`}return""}function Knh(t){return FBn.test(t)}function y8s(t=""){let e=C8s[t];return r=>z2(new E8s,e,r,!1)}function Ynh(t,e){return e.reduce((r,i,a)=>(r[i]=t[a]||"",r),Object.create({diff:null}))}function b8s(t=QBn,e=S8s,r=""){let i=y8s(r);return function(a){let o=a$e(a.trim(),!1,NBn).map(function(n){let s=n.split(LBn),u=Ynh(s[0].split(t),e);return s.length>1&&s[1].trim()&&(u.diff=i(s[1])),u});return{all:o,latest:o.length&&o[0]||null,total:o.length}}}function Jnh(t){let e=OBn(t),r=["diff"];return e===""&&(e="--stat",r.push("--stat=4096")),r.push(...t),JYt(r)||{commands:r,format:"utf-8",parser:y8s(e)}}function JYt(t){let e=t.filter(Knh);if(e.length>1)return K2(`Summary flags are mutually exclusive - pick one of ${e.join(",")}`);if(e.length&&t.includes("-z"))return K2(`Summary flag ${e} parsing is not compatible with null termination option '-z'`)}function jnh(t,e){let r=[],i=[];return Object.keys(t).forEach(a=>{r.push(a),i.push(String(t[a]))}),[r,i.join(e)]}function $nh(t){return Object.keys(t).reduce((e,r)=>(r in gBn||(e[r]=t[r]),e),{})}function _8s(t={},e=[]){let r=Hb(t.splitter,bA,QBn),i=WYt(t.format)?t.format:{hash:"%H",date:t.strictDate===!1?"%ai":"%aI",message:"%s",refs:"%D",body:t.multiLine?"%B":"%b",author_name:t.mailMap!==!1?"%aN":"%an",author_email:t.mailMap!==!1?"%aE":"%ae"},[a,o]=jnh(i,r),n=[],s=[`--pretty=format:${NBn}${o}${LBn}`,...e],u=t.n||t["max-count"]||t.maxCount;if(u&&s.push(`--max-count=${u}`),t.from||t.to){let f=t.symmetric!==!1?"...":"..";n.push(`${t.from||""}${f}${t.to||""}`)}return bA(t.file)&&s.push("--follow",aBn(t.file)),_Bn($nh(t),s),{fields:a,splitter:r,commands:[...s,...n]}}function Xnh(t,e,r){let i=b8s(t,e,OBn(r));return{commands:["log",...r],format:"utf-8",parser:i}}function Znh(){return{log(...r){let i=Kp(arguments),a=_8s(TBn(arguments),LBe(Hb(arguments[0],s$e,[]))),o=e(...r)||JYt(a.commands)||t(a);return this._runTask(o,i)}};function t(r){return Xnh(r.splitter,r.fields,r.commands)}function e(r,i){return bA(r)&&bA(i)&&K2("git.log(string, string) should be replaced with git.log({ from: string, to: string })")}}function nBn(t){return t.objects=t.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function $Ps(t){let e=/^\s*(\d+)/.exec(t),r=/delta (\d+)/i.exec(t);return{count:bh(e&&e[1]||"0"),delta:bh(r&&r[1]||"0")}}function D8s(t,e){return z2({remoteMessages:new M8s},k8s,e)}function nih(t,e){let r=z2(new B8s,O8s,[t,e]);return r.message&&r}function a5s(t){return t.length?{commands:["merge",...t],format:"utf-8",parser(e,r){let i=N8s(e,r);if(i.failed)throw new i$e(i);return i}}:K2("Git.merge requires at least one option")}function oih(t,e,r){let i=r.includes("deleted"),a=r.includes("tag")||/^refs\/tags/.test(t),o=!r.includes("new");return{deleted:i,tag:a,branch:!a,new:!o,alreadyUpdated:o,local:t,remote:e}}function uih(t={},e){return ND(e,"--tags"),qBn(t,e)}function qBn(t={},e){let r=["push",...e];return t.branch&&r.splice(1,0,t.branch),t.remote&&r.splice(1,0,t.remote),HYt(r,"-v"),ND(r,"--verbose"),ND(r,"--porcelain"),{commands:r,format:"utf-8",parser:L8s}}function cih(){return{showBuffer(){let t=["show",...Dx(arguments,1)];return t.includes("--binary")||t.splice(1,0,"--binary"),this._runTask(K5s(t),Kp(arguments))},show(){let t=["show",...Dx(arguments,1)];return this._runTask(kx(t),Kp(arguments))}}}function c5s(t){let[e,r]=t.split(OBe);return{from:r||e,to:e}}function qw(t,e,r){return[`${t}${e}`,r]}function iBn(t,...e){return e.map(r=>qw(t,r,(i,a)=>i.conflicted.push(a)))}function fih(t,e){let r=e.trim();switch(" "){case r.charAt(2):return i(r.charAt(0),r.charAt(1),r.slice(3));case r.charAt(1):return i(" ",r.charAt(0),r.slice(2));default:return}function i(a,o,n){let s=`${a}${o}`,u=q8s.get(s);u&&u(t,n),s!=="##"&&s!=="!!"&&t.files.push(new G8s(n,a,o))}}function pih(t){return{format:"utf-8",commands:["status","--porcelain","-b","-u","--null",...t.filter(r=>!V8s.includes(r))],parser(r){return H8s(r)}}}function UYt(t=0,e=0,r=0,i="",a=!0){return Object.defineProperty({major:t,minor:e,patch:r,agent:i,installed:a},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:!1,enumerable:!1})}function gih(){return UYt(0,0,0,"",!1)}function mih(){return{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:Eih,onError(t,e,r,i){if(t.exitCode===-2)return r(Buffer.from(HBn));i(e)}})}}}function Eih(t){return t===HBn?gih():z2(UYt(0,0,0,t),W8s,t)}function d5s(t,e,r,...i){return bA(r)?e(r,Hb(i[0],bA),Dx(arguments)):K2(`git.${t}() requires a string 'repoPath'`)}function Cih(){return{clone(t,...e){return this._runTask(d5s("clone",EBn,Hb(t,bA),...e),Kp(arguments))},mirror(t,...e){return this._runTask(d5s("mirror",K8s,Hb(t,bA),...e),Kp(arguments))}}}function xih(t,e){return kx(["apply",...e,...t])}function _ih(t,e){return{branch:t,hash:e,success:!0}}function Tih(t){return{branch:t,hash:null,success:!1}}function Z8s(t,e){return e===1&&CBn.test(t)}function A5s(t){return t?t.charAt(0):""}function tOs(t,e=!1){return z2(new eOs,e?[nOs]:rOs,t)}function aOs(t){let e=["-d","-D","--delete"];return t.some(r=>e.includes(r))}function kih(t){let e=aOs(t),r=t.includes("--show-current"),i=["branch",...t];return i.length===1&&i.push("-a"),i.includes("-v")||i.splice(1,0,"-v"),{format:"utf-8",commands:i,parser(a,o){return e?jYt(a,o).all[0]:tOs(a,r)}}}function Mih(){return{format:"utf-8",commands:["branch","-v"],parser(t){return tOs(t)}}}function Pih(t,e=!1){return{format:"utf-8",commands:["branch","-v",e?"-D":"-d",...t],parser(r,i){return jYt(r,i)},onError({exitCode:r,stdOut:i},a,o,n){if(!Z8s(String(a),r))return n(a);o(i)}}}function Oih(t,e=!1){let r={format:"utf-8",commands:["branch","-v",e?"-D":"-d",t],parser(i,a){return jYt(i,a).branches[t]},onError({exitCode:i,stdErr:a,stdOut:o},n,s,u){if(!Z8s(String(n),i))return u(n);throw new i$e(r.parser(n$e(o),n$e(a)),String(n))}};return r}function Lih(t){let e=t.trim().replace(/^["']|["']$/g,"");return e&&Nih(e)}function Uih(t){return{commands:["check-ignore",...t],format:"utf-8",parser:oOs}}function qih(t,e){return z2({raw:t,remote:null,branches:[],tags:[],updated:[],deleted:[]},uOs,[t,e])}function Vih(t){return/^--upload-pack(=|$)/.test(t)}function Wih(t,e,r){let i=["fetch",...r];return t&&e&&i.push(t,e),i.find(Vih)?K2("git.fetch: potential exploit argument blocked."):{commands:i,format:"utf-8",parser:qih}}function zih(t){return z2({moves:[]},lOs,t)}function Jih(t,e){return{commands:["mv","-v",...CN(t),e],format:"utf-8",parser:zih}}function $ih(t,e,r){let i=["pull",...r];return t&&e&&i.splice(1,0,t,e),{commands:i,format:"utf-8",parser(a,o){return GBn(a,o)},onError(a,o,n,s){let u=nih(n$e(a.stdOut),n$e(a.stdErr));if(u)return s(new i$e(u));s(o)}}}function Zih(t){let e={};return hOs(t,([r])=>e[r]={name:r}),Object.values(e)}function eah(t){let e={};return hOs(t,([r,i,a])=>{Object.hasOwn(e,r)||(e[r]={name:r,refs:{fetch:"",push:""}}),a&&i&&(e[r].refs[a.replace(/[^a-z]/g,"")]=i)}),Object.values(e)}function hOs(t,e){SBn(t,r=>e(r.split(/\s+/)))}function rah(t,e,r){return kx(["remote","add",...r,t,e])}function nah(t){let e=["remote"];return t&&e.push("-v"),{commands:e,format:"utf-8",parser:t?eah:Zih}}function iah(t){let e=[...t];return e[0]!=="ls-remote"&&e.unshift("ls-remote"),kx(e)}function aah(t){let e=[...t];return e[0]!=="remote"&&e.unshift("remote"),kx(e)}function oah(t){return kx(["remote","remove",t])}function uah(t={},e){let r=_8s(t),i=["stash","list",...r.commands,...e],a=b8s(r.splitter,r.fields,OBn(i));return JYt(i)||{commands:i,format:"utf-8",parser:a}}function lah(t,e){return $Yt(["add",t,e])}function dah(t){return $Yt(["init",...t])}function $Yt(t){let e=[...t];return e[0]!=="submodule"&&e.unshift("submodule"),kx(e)}function fah(t){return $Yt(["update",...t])}function pah(t,e){let r=Number.isNaN(t),i=Number.isNaN(e);return r!==i?r?1:-1:r?mOs(t,e):0}function mOs(t,e){return t===e?0:t>e?1:-1}function Aah(t){return t.trim()}function kYt(t){return typeof t=="string"&&parseInt(t.replace(/^\D+/g,""),10)||0}function mah(t=[]){let e=t.some(r=>/^--sort=/.test(r));return{format:"utf-8",commands:["tag","-l",...t],parser(r){return EOs(r,e)}}}function Eah(t){return{format:"utf-8",commands:["tag",t],parser(){return{name:t}}}}function yah(t,e){return{format:"utf-8",commands:["tag","-a","-m",e,t],parser(){return{name:t}}}}function Sah(t){return t?[{type:"spawn.before",action(i,a){t.aborted&&a.kill(new NG(void 0,"abort","Abort already signaled"))}},{type:"spawn.after",action(i,a){function o(){a.kill(new NG(void 0,"abort","Abort signal received"))}t.addEventListener("abort",o),a.spawned.on("close",()=>t.removeEventListener("abort",o))}}]:void 0}function xah(t){return typeof t=="string"&&t.trim().toLowerCase()==="-c"}function Iah(t,e){if(typeof e!="string"||!e.includes(t))return!1;let r=e.trim().replace(/\0/g,"");return/^(--no)?-{1,2}[\dlsqvnobucj]+(\s|$)/.test(r)}function e$e(t,e,r=String(t)){let i=typeof t=="string"?new RegExp(`\\s*${t}`,"i"):t;return function(o,n,s){if(o[e]!==!0&&xah(n)&&i.test(s))throw new NG(void 0,"unsafe",`Configuring ${r} is not permitted without enabling ${e}`)}}function Tah(t,e){if(/^\s*--(upload|receive)-pack/.test(t))throw new NG(void 0,"unsafe","Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack");if(e==="clone"&&Iah("u",t))throw new NG(void 0,"unsafe","Use of clone with option -u is not permitted without enabling allowUnsafePack");if(e==="push"&&/^\s*--exec\b/.test(t))throw new NG(void 0,"unsafe","Use of push with option --exec is not permitted without enabling allowUnsafePack")}function wah({allowUnsafePack:t=!1,...e}={}){return{type:"spawn.args",action(r,i){return r.forEach((a,o)=>{let n=o<r.length?r[o+1]:"";t||Tah(a,i.method),_ah.forEach(s=>s(e,a,n))}),r}}}function Bah(t){let e=r$e(t,"-c");return{type:"spawn.args",action(r){return[...e,...r]}}}function Rah({onClose:t=!0,onExit:e=50}={}){function r(){let a=-1,o={close:(0,PBe.deferred)(),closeTimeout:(0,PBe.deferred)(),exit:(0,PBe.deferred)(),exitTimeout:(0,PBe.deferred)()},n=Promise.race([t===!1?m5s:o.closeTimeout.promise,e===!1?m5s:o.exitTimeout.promise]);return i(t,o.close,o.closeTimeout),i(e,o.exit,o.exitTimeout),{close(s){a=s,o.close.done()},exit(s){a=s,o.exit.done()},get exitCode(){return a},result:n}}function i(a,o,n){a!==!1&&(a===!0?o.promise:o.promise.then(()=>oBn(a))).then(n.done)}return{type:"spawn.after",async action(a,{spawned:o,close:n}){let s=r(),u=!0,f=()=>void(u=!1);o.stdout?.on("data",f),o.stderr?.on("data",f),o.on("error",f),o.on("close",d=>s.close(d)),o.on("exit",d=>s.exit(d));try{await s.result,u&&await oBn(50),n(s.exitCode)}catch(d){n(s.exitCode,d)}}}}function kah(t){return!t||!/^([a-z]:)?([a-z0-9/.\\_~-]+)$/i.test(t)}function y5s(t,e){if(t.length<1||t.length>2)throw new NG(void 0,"binary",Dah);if(t.some(kah))if(e)console.warn(E5s);else throw new NG(void 0,"binary",E5s);let[i,a]=t;return{binary:i,prefix:a}}function Mah(t,e=["git"],r=!1){let i=y5s(CN(e),r);t.on("binary",a=>{i=y5s(CN(a),r)}),t.append("spawn.binary",()=>i.binary),t.append("spawn.args",a=>i.prefix?[i.prefix,...a]:a)}function Pah(t){return!!(t.exitCode&&t.stdErr.length)}function Oah(t){return Buffer.concat([...t.stdOut,...t.stdErr])}function Fah(t=!1,e=Pah,r=Oah){return(i,a)=>!t&&i||!e(a)?i:r(a)}function C5s(t){return{type:"task.error",action(e,r){let i=t(e.error,{stdErr:r.stdErr,stdOut:r.stdOut,exitCode:r.exitCode});return Buffer.isBuffer(i)?{error:new LG(void 0,i.toString("utf-8"))}:{error:i}}}}function Qah(t){let e="--progress",r=["checkout","clone","fetch","pull","push"];return[{type:"spawn.args",action(o,n){return r.includes(n.method)?w5s(o,e):o}},{type:"spawn.after",action(o,n){n.commands.includes(e)&&n.spawned.stderr?.on("data",s=>{let u=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(s.toString("utf8"));u&&t({method:n.method,stage:Uah(u[1]),progress:bh(u[2]),processed:bh(u[3]),total:bh(u[4])})})}}]}function Uah(t){return String(t.toLowerCase().split(" ",1))||"unknown"}function Gah(t){let e=R5s(t,["uid","gid"]);return{type:"spawn.options",action(r){return{...e,...r}}}}function qah({block:t,stdErr:e=!0,stdOut:r=!0}){if(t>0)return{type:"spawn.after",action(i,a){let o;function n(){o&&clearTimeout(o),o=setTimeout(u,t)}function s(){a.spawned.stdout?.off("data",n),a.spawned.stderr?.off("data",n),a.spawned.off("exit",s),a.spawned.off("close",s),o&&clearTimeout(o)}function u(){s(),a.kill(new NG(void 0,"timeout","block timeout reached"))}r&&a.spawned.stdout?.on("data",n),e&&a.spawned.stderr?.on("data",n),a.spawned.on("exit",s),a.spawned.on("close",s),n()}}}function Hah(){return{type:"spawn.args",action(t){let e=[],r;function i(a){(r=r||[]).push(...a)}for(let a=0;a<t.length;a++){let o=t[a];if(t$e(o)){i(HPs(o));continue}if(o==="--"){i(t.slice(a+1).flatMap(n=>t$e(n)&&HPs(n)||n));break}e.push(o)}return r?[...e,"--",...r.map(String)]:e}}}function Wah(t,e){let r=new Lah,i=P5s(t&&(typeof t=="string"?{baseDir:t}:t)||{},e);if(!xBn(i.baseDir))throw new bah(i,"Cannot use simple-git on a directory that does not exist");return Array.isArray(i.config)&&r.add(Bah(i.config)),r.add(wah(i.unsafe)),r.add(Rah(i.completion)),i.abort&&r.add(Sah(i.abort)),i.progress&&r.add(Qah(i.progress)),i.timeout&&r.add(qah(i.timeout)),i.spawnOptions&&r.add(Gah(i.spawnOptions)),r.add(Hah()),r.add(C5s(Fah(!0))),i.errors&&r.add(C5s(i.errors)),Mah(r,i.binary,i.unsafe?.allowUnsafeCustomBinary),new Vah(i,r)}var qYt,QYt,J8s,PBe,vBn,Mrh,bBn,Prh,la,Orh,wm,Frh,Ig,GYt,FBe,LG,lZ,i$e,NBe,v5s,b5s,OBe,sfe,o$e,VYt,s$e,k5s,bA,NYt,KYt,IBn,cBn,Lrh,LYt,Qrh,nu,cZ,Grh,O5s,qrh,Vrh,Wrh,F5s,Ts,N5s,dBn,zYt,wBn,U5s,G5s,q5s,H5s,V5s,Jrh,fBn,YYt,_g,J5s,BBn,RBn,DBn,MYt,kBn,$5s,Z5s,anh,hBn,e8s,eBn,t8s,r8s,n8s,Zje,VPs,i8s,a8s,o8s,PYt,u8s,c8s,l8s,d8s,Enh,ABn,vnh,f8s,h8s,bnh,Inh,_nh,wnh,p8s,Dnh,A8s,Mnh,Fnh,Lnh,Unh,OYt,g8s,m8s,qnh,PBn,Wnh,FBn,u$e,E8s,znh,rBn,YPs,JPs,jPs,C8s,v8s,NBn,LBn,QBn,S8s,x8s,I8s,UBn,gBn,T8s,FYt,w8s,eih,mBn,B8s,tih,R8s,rih,k8s,M8s,P8s,XPs,ZPs,e5s,t5s,O8s,r5s,GBn,F8s,n5s,N8s,i5s,iih,aih,o5s,L8s,s5s,sih,Q8s,U8s,lih,u5s,G8s,dih,l5s,q8s,H8s,hih,V8s,Aih,HBn,W8s,yih,EBn,K8s,vih,z8s,yBn,bih,Y8s,f5s,j8s,Sih,$8s,Iih,X8s,wih,h5s,CBn,p5s,jYt,Bih,eOs,Rih,rOs,nOs,Dih,iOs,Fih,oOs,Qih,sOs,Gih,uOs,Hih,cOs,Kih,lOs,Yih,dOs,jih,fOs,Xih,tah,pOs,sah,AOs,cah,gOs,hah,g5s,EOs,gah,yOs,Cah,vah,bah,NG,_ah,m5s,Dah,E5s,Lah,Vah,Vb,dZ=$(()=>{"use strict";qYt=Qt(qPs(),1),QYt=Qt(jd(),1),J8s=Qt(X3n(),1),PBe=Qt(X3n(),1),vBn=Object.defineProperty,Mrh=Object.getOwnPropertyDescriptor,bBn=Object.getOwnPropertyNames,Prh=Object.prototype.hasOwnProperty,la=(t,e)=>function(){return t&&(e=(0,t[bBn(t)[0]])(t=0)),e},Orh=(t,e)=>function(){return e||(0,t[bBn(t)[0]])((e={exports:{}}).exports,e),e.exports},wm=(t,e)=>{for(var r in e)vBn(t,r,{get:e[r],enumerable:!0})},Frh=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of bBn(e))!Prh.call(t,a)&&a!==r&&vBn(t,a,{get:()=>e[a],enumerable:!(i=Mrh(e,a))||i.enumerable});return t},Ig=t=>Frh(vBn({},"__esModule",{value:!0}),t);FBe=la({"src/lib/args/pathspec.ts"(){"use strict";GYt=new WeakMap}}),lZ=la({"src/lib/errors/git-error.ts"(){"use strict";LG=class extends Error{constructor(t,e){super(e),this.task=t,Object.setPrototypeOf(this,new.target.prototype)}}}}),NBe=la({"src/lib/errors/git-response-error.ts"(){"use strict";lZ(),i$e=class extends LG{constructor(t,e){super(void 0,e||String(t)),this.git=t}}}}),b5s=la({"src/lib/errors/task-configuration-error.ts"(){"use strict";lZ(),v5s=class extends LG{constructor(t){super(void 0,t)}}}});VYt=la({"src/lib/utils/util.ts"(){"use strict";IBn(),OBe="\0",sfe=()=>{},o$e=Object.prototype.toString.call.bind(Object.prototype.toString)}});IBn=la({"src/lib/utils/argument-filters.ts"(){"use strict";FBe(),VYt(),s$e=t=>Array.isArray(t),k5s=t=>typeof t=="number",bA=t=>typeof t=="string"||t$e(t),NYt=t=>bA(t)||Array.isArray(t)&&t.every(bA),KYt=t=>t==null||"number|boolean|function".includes(typeof t)?!1:typeof t.length=="number"}}),Lrh=la({"src/lib/utils/exit-codes.ts"(){"use strict";cBn=(t=>(t[t.SUCCESS=0]="SUCCESS",t[t.ERROR=1]="ERROR",t[t.NOT_FOUND=-2]="NOT_FOUND",t[t.UNCLEAN=128]="UNCLEAN",t))(cBn||{})}}),Qrh=la({"src/lib/utils/git-output-streams.ts"(){"use strict";LYt=class M5s{constructor(e,r){this.stdOut=e,this.stdErr=r}asStrings(){return new M5s(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}});Grh=la({"src/lib/utils/line-parser.ts"(){"use strict";nu=class{constructor(t,e){this.matches=[],this.useMatches=Urh,this.parse=(r,i)=>(this.resetMatches(),this._regExp.every((a,o)=>this.addMatch(a,o,r(o)))?this.useMatches(i,this.prepareMatches())!==!1:!1),this._regExp=Array.isArray(t)?t:[t],e&&(this.useMatches=e)}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(t,e,r){let i=r&&t.exec(r);return i&&this.pushMatch(e,i),!!i}pushMatch(t,e){this.matches.push(...e.slice(1))}},cZ=class extends nu{addMatch(t,e,r){return/^remote:\s/.test(String(r))&&super.addMatch(t,e,r)}pushMatch(t,e){(t>0||e.length>1)&&super.pushMatch(t,e)}}}});qrh=la({"src/lib/utils/simple-git-options.ts"(){"use strict";O5s={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:!1}}});Vrh=la({"src/lib/utils/task-options.ts"(){"use strict";IBn(),VYt(),FBe()}});Wrh=la({"src/lib/utils/task-parser.ts"(){"use strict";VYt()}}),F5s={};wm(F5s,{ExitCodes:()=>cBn,GitOutputStreams:()=>LYt,LineParser:()=>nu,NOOP:()=>sfe,NULL:()=>OBe,RemoteLineParser:()=>cZ,append:()=>ND,appendTaskOptions:()=>_Bn,asArray:()=>CN,asCamelCase:()=>B5s,asFunction:()=>S5s,asNumber:()=>bh,asStringArray:()=>LBe,bufferToString:()=>n$e,callTaskParser:()=>lBn,createInstanceConfig:()=>P5s,delay:()=>oBn,filterArray:()=>s$e,filterFunction:()=>D5s,filterHasLength:()=>KYt,filterNumber:()=>k5s,filterPlainObject:()=>WYt,filterPrimitives:()=>uBn,filterString:()=>bA,filterStringOrStringArray:()=>NYt,filterType:()=>Hb,first:()=>_5s,folderExists:()=>xBn,forEachLineWithContent:()=>SBn,getTrailingOptions:()=>Dx,including:()=>w5s,isUserFunction:()=>x5s,last:()=>ofe,objectToString:()=>o$e,orVoid:()=>sBn,parseStringResponse:()=>z2,pick:()=>R5s,prefixedArray:()=>r$e,remove:()=>HYt,splitOn:()=>I5s,toLinesWithContent:()=>a$e,trailingFunctionArgument:()=>Kp,trailingOptionsArgument:()=>TBn});Ts=la({"src/lib/utils/index.ts"(){"use strict";IBn(),Lrh(),Qrh(),Grh(),qrh(),Vrh(),Wrh(),VYt()}}),N5s={};wm(N5s,{CheckRepoActions:()=>dBn,checkIsBareRepoTask:()=>Q5s,checkIsRepoRootTask:()=>L5s,checkIsRepoTask:()=>Krh});U5s=la({"src/lib/tasks/check-is-repo.ts"(){"use strict";Ts(),dBn=(t=>(t.BARE="bare",t.IN_TREE="tree",t.IS_REPO_ROOT="root",t))(dBn||{}),zYt=({exitCode:t},e,r,i)=>{if(t===128&&zrh(e))return r(Buffer.from("false"));i(e)},wBn=t=>t.trim()==="true"}});Jrh=la({"src/lib/responses/CleanSummary.ts"(){"use strict";Ts(),G5s=class{constructor(t){this.dryRun=t,this.paths=[],this.files=[],this.folders=[]}},q5s=/^[a-z]+\s*/i,H5s=/^[a-z]+\s+[a-z]+\s*/i,V5s=/\/$/}}),fBn={};wm(fBn,{EMPTY_COMMANDS:()=>YYt,adhocExecTask:()=>W5s,configurationErrorTask:()=>K2,isBufferTask:()=>z5s,isEmptyTask:()=>Y5s,straightThroughBufferTask:()=>K5s,straightThroughStringTask:()=>kx});_g=la({"src/lib/tasks/task.ts"(){"use strict";b5s(),YYt=[]}}),J5s={};wm(J5s,{CONFIG_ERROR_INTERACTIVE_MODE:()=>BBn,CONFIG_ERROR_MODE_REQUIRED:()=>RBn,CONFIG_ERROR_UNKNOWN_OPTION:()=>DBn,CleanOptions:()=>MYt,cleanTask:()=>j5s,cleanWithOptionsTask:()=>jrh,isCleanOptionsArray:()=>$rh});$5s=la({"src/lib/tasks/clean.ts"(){"use strict";Jrh(),Ts(),_g(),BBn="Git clean interactive mode is not supported",RBn='Git clean mode parameter ("n" or "f") is required',DBn="Git clean unknown option found in: ",MYt=(t=>(t.DRY_RUN="n",t.FORCE="f",t.IGNORED_INCLUDED="x",t.IGNORED_ONLY="X",t.EXCLUDING="e",t.QUIET="q",t.RECURSIVE="d",t))(MYt||{}),kBn=new Set(["i",...LBe(Object.values(MYt))])}});anh=la({"src/lib/responses/ConfigList.ts"(){"use strict";Ts(),Z5s=class{constructor(){this.files=[],this.values=Object.create(null)}get all(){return this._all||(this._all=this.files.reduce((t,e)=>Object.assign(t,this.values[e]),{})),this._all}addFile(t){if(!(t in this.values)){let e=ofe(this.files);this.values[t]=e?Object.create(this.values[e]):{},this.files.push(t)}return this.values[t]}addValue(t,e,r){let i=this.addFile(t);Object.hasOwn(i,e)?Array.isArray(i[e])?i[e].push(r):i[e]=[i[e],r]:i[e]=r,this._all=void 0}}}});e8s=la({"src/lib/tasks/config.ts"(){"use strict";anh(),Ts(),hBn=(t=>(t.system="system",t.global="global",t.local="local",t.worktree="worktree",t))(hBn||{})}});r8s=la({"src/lib/tasks/diff-name-status.ts"(){"use strict";eBn=(t=>(t.ADDED="A",t.COPIED="C",t.DELETED="D",t.MODIFIED="M",t.RENAMED="R",t.CHANGED="T",t.UNMERGED="U",t.UNKNOWN="X",t.BROKEN="B",t))(eBn||{}),t8s=new Set(Object.values(eBn))}});a8s=la({"src/lib/tasks/grep.ts"(){"use strict";Ts(),_g(),n8s=["-h"],Zje=Symbol("grepQuery"),i8s=class{constructor(){this[VPs]=[]}*[(VPs=Zje,Symbol.iterator)](){for(let t of this[Zje])yield t}and(...t){return t.length&&this[Zje].push("--and","(",...r$e(t,"-e"),")"),this}param(...t){return this[Zje].push(...r$e(t,"-e")),this}}}}),o8s={};wm(o8s,{ResetMode:()=>PYt,getResetMode:()=>Anh,resetTask:()=>pnh});c8s=la({"src/lib/tasks/reset.ts"(){"use strict";Ts(),_g(),PYt=(t=>(t.MIXED="mixed",t.SOFT="soft",t.HARD="hard",t.MERGE="merge",t.KEEP="keep",t))(PYt||{}),u8s=LBe(Object.values(PYt))}});l8s=la({"src/lib/git-logger.ts"(){"use strict";Ts(),QYt.default.formatters.L=t=>String(KYt(t)?t.length:"-"),QYt.default.formatters.B=t=>Buffer.isBuffer(t)?t.toString("utf8"):o$e(t)}}),Enh=la({"src/lib/runners/tasks-pending-queue.ts"(){"use strict";lZ(),l8s(),d8s=class pBn{constructor(e="GitExecutor"){this.logLabel=e,this._queue=new Map}withProgress(e){return this._queue.get(e)}createProgress(e){let r=pBn.getName(e.commands[0]),i=MBn(this.logLabel,r);return{task:e,logger:i,name:r}}push(e){let r=this.createProgress(e);return r.logger("Adding task to the queue, commands = %o",e.commands),this._queue.set(e,r),r}fatal(e){for(let[r,{logger:i}]of Array.from(this._queue.entries()))r===e.task?(i.info("Failed %o",e),i("Fatal exception, any as-yet un-started tasks run through this executor will not be attempted")):i.info("A fatal exception occurred in a previous task, the queue has been purged: %o",e.message),this.complete(r);if(this._queue.size!==0)throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`)}complete(e){this.withProgress(e)&&this._queue.delete(e)}attempt(e){let r=this.withProgress(e);if(!r)throw new LG(void 0,"TasksPendingQueue: attempt called for an unknown task");return r.logger("Starting task"),r}static getName(e="empty"){return`task:${e}:${++pBn.counter}`}static{this.counter=0}}}});vnh=la({"src/lib/runners/git-executor-chain.ts"(){"use strict";lZ(),_g(),Ts(),Enh(),ABn=class{constructor(t,e,r){this._executor=t,this._scheduler=e,this._plugins=r,this._chain=Promise.resolve(),this._queue=new d8s}get cwd(){return this._cwd||this._executor.cwd}set cwd(t){this._cwd=t}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(t){return this._queue.push(t),this._chain=this._chain.then(()=>this.attemptTask(t))}async attemptTask(t){let e=await this._scheduler.next(),r=()=>this._queue.complete(t);try{let{logger:i}=this._queue.attempt(t);return await(Y5s(t)?this.attemptEmptyTask(t,i):this.attemptRemoteTask(t,i))}catch(i){throw this.onFatalException(t,i)}finally{r(),e()}}onFatalException(t,e){let r=e instanceof LG?Object.assign(e,{task:t}):new LG(t,e&&String(e));return this._chain=Promise.resolve(),this._queue.fatal(r),r}async attemptRemoteTask(t,e){let r=this._plugins.exec("spawn.binary","",afe(t,t.commands)),i=this._plugins.exec("spawn.args",[...t.commands],afe(t,t.commands)),a=await this.gitResponse(t,r,i,this.outputHandler,e.step("SPAWN")),o=await this.handleTaskData(t,i,a,e.step("HANDLE"));return e("passing response to task's parser as a %s",t.format),z5s(t)?lBn(t.parser,o):lBn(t.parser,o.asStrings())}async attemptEmptyTask(t,e){return e("empty task bypassing child process to call to task's parser"),t.parser(this)}handleTaskData(t,e,r,i){let{exitCode:a,rejection:o,stdOut:n,stdErr:s}=r;return new Promise((u,f)=>{i("Preparing to handle process response exitCode=%d stdOut=",a);let{error:d}=this._plugins.exec("task.error",{error:o},{...afe(t,e),...r});if(d&&t.onError)return i.info("exitCode=%s handling with custom error handler"),t.onError(r,d,h=>{i.info("custom error handler treated as success"),i("custom error returned a %s",o$e(h)),u(new LYt(Array.isArray(h)?Buffer.concat(h):h,Buffer.concat(s)))},f);if(d)return i.info("handling as error: exitCode=%s stdErr=%s rejection=%o",a,s.length,o),f(d);i.info("retrieving task output complete"),u(new LYt(Buffer.concat(n),Buffer.concat(s)))})}async gitResponse(t,e,r,i,a){let o=a.sibling("output"),n=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:!0},afe(t,t.commands));return new Promise(s=>{let u=[],f=[];a.info("%s %o",e,r),a("%O",n);let d=this._beforeSpawn(t,r);if(d)return s({stdOut:u,stdErr:f,exitCode:9901,rejection:d});this._plugins.exec("spawn.before",void 0,{...afe(t,r),kill(c){d=c||d}});let h=ynh(e,r,n);h.stdout.on("data",KPs(u,"stdOut",a,o.step("stdOut"))),h.stderr.on("data",KPs(f,"stdErr",a,o.step("stdErr"))),h.on("error",Cnh(f,a)),i&&(a("Passing child process stdOut/stdErr to custom outputHandler"),i(e,h.stdout,h.stderr,[...r])),this._plugins.exec("spawn.after",void 0,{...afe(t,r),spawned:h,close(c,p){s({stdOut:u,stdErr:f,exitCode:c,rejection:d||p})},kill(c){h.killed||(d=c,h.kill("SIGINT"))}})})}_beforeSpawn(t,e){let r;return this._plugins.exec("spawn.before",void 0,{...afe(t,e),kill(i){r=i||r}}),r}}}}),f8s={};wm(f8s,{GitExecutor:()=>h8s});bnh=la({"src/lib/runners/git-executor.ts"(){"use strict";vnh(),h8s=class{constructor(t,e,r){this.cwd=t,this._scheduler=e,this._plugins=r,this._chain=new ABn(this,this._scheduler,this._plugins)}chain(){return new ABn(this,this._scheduler,this._plugins)}push(t){return this._chain.push(t)}}}});Inh=la({"src/lib/task-callback.ts"(){"use strict";NBe(),Ts()}});_nh=la({"src/lib/tasks/change-working-directory.ts"(){"use strict";Ts(),_g()}});wnh=la({"src/lib/tasks/checkout.ts"(){"use strict";Ts(),_g()}});Dnh=la({"src/lib/tasks/count-objects.ts"(){"use strict";Ts(),p8s=new nu(/([a-z-]+): (\d+)$/,(t,[e,r])=>{let i=B5s(e);Object.hasOwn(t,i)&&(t[i]=bh(r))})}});Mnh=la({"src/lib/parsers/parse-commit.ts"(){"use strict";Ts(),A8s=[new nu(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,(t,[e,r,i])=>{t.branch=e,t.commit=i,t.root=!!r}),new nu(/\s*Author:\s(.+)/i,(t,[e])=>{let r=e.split("<"),i=r.pop();!i||!i.includes("@")||(t.author={email:i.substr(0,i.length-1),name:r.join("<").trim()})}),new nu(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,(t,[e,r,i])=>{t.summary.changes=parseInt(e,10)||0,t.summary.insertions=parseInt(r,10)||0,t.summary.deletions=parseInt(i,10)||0}),new nu(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,(t,[e,r,i])=>{t.summary.changes=parseInt(e,10)||0;let a=parseInt(r,10)||0;i==="-"?t.summary.deletions=a:i==="+"&&(t.summary.insertions=a)})]}});Fnh=la({"src/lib/tasks/commit.ts"(){"use strict";Mnh(),Ts(),_g()}});Lnh=la({"src/lib/tasks/first-commit.ts"(){"use strict";Ts(),_g()}});Unh=la({"src/lib/tasks/hash-object.ts"(){"use strict";_g()}});qnh=la({"src/lib/responses/InitSummary.ts"(){"use strict";OYt=class{constructor(t,e,r,i){this.bare=t,this.path=e,this.existing=r,this.gitDir=i}},g8s=/^Init.+ repository in (.+)$/,m8s=/^Rein.+ in (.+)$/}});Wnh=la({"src/lib/tasks/init.ts"(){"use strict";qnh(),PBn="--bare"}});u$e=la({"src/lib/args/log-format.ts"(){"use strict";FBn=/^--(stat|numstat|name-only|name-status)(=|$)/}}),znh=la({"src/lib/responses/DiffSummary.ts"(){"use strict";E8s=class{constructor(){this.changed=0,this.deletions=0,this.insertions=0,this.files=[]}}}});v8s=la({"src/lib/parsers/parse-diff-summary.ts"(){"use strict";u$e(),znh(),r8s(),Ts(),rBn=[new nu(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,(t,[e,r,i=""])=>{t.files.push({file:e.trim(),changes:bh(r),insertions:i.replace(/[^+]/g,"").length,deletions:i.replace(/[^-]/g,"").length,binary:!1})}),new nu(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,(t,[e,r,i])=>{t.files.push({file:e.trim(),before:bh(r),after:bh(i),binary:!0})}),new nu(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,(t,[e,r])=>{let i=/(\d+) i/.exec(r),a=/(\d+) d/.exec(r);t.changed=bh(e),t.insertions=bh(i?.[1]),t.deletions=bh(a?.[1])})],YPs=[new nu(/(\d+)\t(\d+)\t(.+)$/,(t,[e,r,i])=>{let a=bh(e),o=bh(r);t.changed++,t.insertions+=a,t.deletions+=o,t.files.push({file:i,changes:a+o,insertions:a,deletions:o,binary:!1})}),new nu(/-\t-\t(.+)$/,(t,[e])=>{t.changed++,t.files.push({file:e,after:0,before:0,binary:!0})})],JPs=[new nu(/(.+)$/,(t,[e])=>{t.changed++,t.files.push({file:e,changes:0,insertions:0,deletions:0,binary:!1})})],jPs=[new nu(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/,(t,[e,r,i,a,o])=>{t.changed++,t.files.push({file:o??i,changes:0,insertions:0,deletions:0,binary:!1,status:sBn(lnh(e)&&e),from:sBn(!!o&&i!==o&&i),similarity:bh(r)})})],C8s={"":rBn,"--stat":rBn,"--numstat":YPs,"--name-status":jPs,"--name-only":JPs}}});x8s=la({"src/lib/parsers/parse-list-log-summary.ts"(){"use strict";Ts(),v8s(),u$e(),NBn="\xF2\xF2\xF2\xF2\xF2\xF2 ",LBn=" \xF2\xF2",QBn=" \xF2 ",S8s=["hash","date","message","refs","author_name","author_email"]}}),I8s={};wm(I8s,{diffSummaryTask:()=>Jnh,validateLogFormatConfig:()=>JYt});UBn=la({"src/lib/tasks/diff.ts"(){"use strict";u$e(),v8s(),_g()}});T8s=la({"src/lib/tasks/log.ts"(){"use strict";u$e(),FBe(),x8s(),Ts(),_g(),UBn(),gBn=(t=>(t[t["--pretty"]=0]="--pretty",t[t["max-count"]=1]="max-count",t[t.maxCount=2]="maxCount",t[t.n=3]="n",t[t.file=4]="file",t[t.format=5]="format",t[t.from=6]="from",t[t.to=7]="to",t[t.splitter=8]="splitter",t[t.symmetric=9]="symmetric",t[t.mailMap=10]="mailMap",t[t.multiLine=11]="multiLine",t[t.strictDate=12]="strictDate",t))(gBn||{})}}),eih=la({"src/lib/responses/MergeSummary.ts"(){"use strict";FYt=class{constructor(t,e=null,r){this.reason=t,this.file=e,this.meta=r}toString(){return`${this.file}:${this.reason}`}},w8s=class{constructor(){this.conflicts=[],this.merges=[],this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){return this.conflicts.length?`CONFLICTS: ${this.conflicts.join(", ")}`:"OK"}}}}),tih=la({"src/lib/responses/PullSummary.ts"(){"use strict";mBn=class{constructor(){this.remoteMessages={all:[]},this.created=[],this.deleted=[],this.files=[],this.deletions={},this.insertions={},this.summary={changes:0,deletions:0,insertions:0}}},B8s=class{constructor(){this.remote="",this.hash={local:"",remote:""},this.branch={local:"",remote:""},this.message=""}toString(){return this.message}}}});rih=la({"src/lib/parsers/parse-remote-objects.ts"(){"use strict";Ts(),R8s=[new cZ(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,(t,[e,r])=>{let i=e.toLowerCase(),a=nBn(t.remoteMessages);Object.assign(a,{[i]:bh(r)})}),new cZ(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,(t,[e,r])=>{let i=e.toLowerCase(),a=nBn(t.remoteMessages);Object.assign(a,{[i]:bh(r)})}),new cZ(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,(t,[e,r,i])=>{let a=nBn(t.remoteMessages);a.total=$Ps(e),a.reused=$Ps(r),a.packReused=bh(i)})]}});P8s=la({"src/lib/parsers/parse-remote-messages.ts"(){"use strict";Ts(),rih(),k8s=[new cZ(/^remote:\s*(.+)$/,(t,[e])=>(t.remoteMessages.all.push(e.trim()),!1)),...R8s,new cZ([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],(t,[e])=>{t.remoteMessages.pullRequestUrl=e}),new cZ([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],(t,[e,r,i])=>{t.remoteMessages.vulnerabilities={count:bh(e),summary:r,url:i}})],M8s=class{constructor(){this.all=[]}}}});F8s=la({"src/lib/parsers/parse-pull.ts"(){"use strict";tih(),Ts(),P8s(),XPs=/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/,ZPs=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/,e5s=/^(create|delete) mode \d+ (.+)/,t5s=[new nu(XPs,(t,[e,r,i])=>{t.files.push(e),r&&(t.insertions[e]=r.length),i&&(t.deletions[e]=i.length)}),new nu(ZPs,(t,[e,,r,,i])=>r!==void 0||i!==void 0?(t.summary.changes=+e||0,t.summary.insertions=+r||0,t.summary.deletions=+i||0,!0):!1),new nu(e5s,(t,[e,r])=>{ND(t.files,r),ND(e==="create"?t.created:t.deleted,r)})],O8s=[new nu(/^from\s(.+)$/i,(t,[e])=>void(t.remote=e)),new nu(/^fatal:\s(.+)$/,(t,[e])=>void(t.message=e)),new nu(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,(t,[e,r,i,a])=>{t.branch.local=i,t.hash.local=e,t.branch.remote=a,t.hash.remote=r})],r5s=(t,e)=>z2(new mBn,t5s,[t,e]),GBn=(t,e)=>Object.assign(new mBn,r5s(t,e),D8s(t,e))}}),iih=la({"src/lib/parsers/parse-merge.ts"(){"use strict";eih(),Ts(),F8s(),n5s=[new nu(/^Auto-merging\s+(.+)$/,(t,[e])=>{t.merges.push(e)}),new nu(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,(t,[e,r])=>{t.conflicts.push(new FYt(e,r))}),new nu(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,(t,[e,r,i])=>{t.conflicts.push(new FYt(e,r,{deleteRef:i}))}),new nu(/^CONFLICT\s+\((.+)\):/,(t,[e])=>{t.conflicts.push(new FYt(e,null))}),new nu(/^Automatic merge failed;\s+(.+)$/,(t,[e])=>{t.result=e})],N8s=(t,e)=>Object.assign(i5s(t,e),GBn(t,e)),i5s=t=>z2(new w8s,n5s,t)}});aih=la({"src/lib/tasks/merge.ts"(){"use strict";NBe(),iih(),_g()}});sih=la({"src/lib/parsers/parse-push.ts"(){"use strict";Ts(),P8s(),o5s=[new nu(/^Pushing to (.+)$/,(t,[e])=>{t.repo=e}),new nu(/^updating local tracking ref '(.+)'/,(t,[e])=>{t.ref={...t.ref||{},local:e}}),new nu(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/,(t,[e,r,i])=>{t.pushed.push(oih(e,r,i))}),new nu(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,(t,[e,r,i])=>{t.branch={...t.branch||{},local:e,remote:r,remoteName:i}}),new nu(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,(t,[e,r,i,a])=>{t.update={head:{local:e,remote:r},hash:{from:i,to:a}}})],L8s=(t,e)=>{let r=s5s(t,e),i=D8s(t,e);return{...r,...i}},s5s=(t,e)=>z2({pushed:[]},o5s,[t,e])}}),Q8s={};wm(Q8s,{pushTagsTask:()=>uih,pushTask:()=>qBn});U8s=la({"src/lib/tasks/push.ts"(){"use strict";sih(),Ts()}});lih=la({"src/lib/tasks/show.ts"(){"use strict";Ts(),_g()}}),dih=la({"src/lib/responses/FileStatusSummary.ts"(){"use strict";u5s=/^(.+)\0(.+)$/,G8s=class{constructor(t,e,r){if(this.path=t,this.index=e,this.working_dir=r,e==="R"||r==="R"){let i=u5s.exec(t)||[null,t,t];this.from=i[2]||"",this.path=i[1]||""}}}}});hih=la({"src/lib/responses/StatusSummary.ts"(){"use strict";Ts(),dih(),l5s=class{constructor(){this.not_added=[],this.conflicted=[],this.created=[],this.deleted=[],this.ignored=void 0,this.modified=[],this.renamed=[],this.files=[],this.staged=[],this.ahead=0,this.behind=0,this.current=null,this.tracking=null,this.detached=!1,this.isClean=()=>!this.files.length}},q8s=new Map([qw(" ","A",(t,e)=>t.created.push(e)),qw(" ","D",(t,e)=>t.deleted.push(e)),qw(" ","M",(t,e)=>t.modified.push(e)),qw("A"," ",(t,e)=>{t.created.push(e),t.staged.push(e)}),qw("A","M",(t,e)=>{t.created.push(e),t.staged.push(e),t.modified.push(e)}),qw("D"," ",(t,e)=>{t.deleted.push(e),t.staged.push(e)}),qw("M"," ",(t,e)=>{t.modified.push(e),t.staged.push(e)}),qw("M","M",(t,e)=>{t.modified.push(e),t.staged.push(e)}),qw("R"," ",(t,e)=>{t.renamed.push(c5s(e))}),qw("R","M",(t,e)=>{let r=c5s(e);t.renamed.push(r),t.modified.push(r.to)}),qw("!","!",(t,e)=>{(t.ignored=t.ignored||[]).push(e)}),qw("?","?",(t,e)=>t.not_added.push(e)),...iBn("A","A","U"),...iBn("D","D","U"),...iBn("U","A","D","U"),["##",(t,e)=>{let r=/ahead (\d+)/,i=/behind (\d+)/,a=/^(.+?(?=(?:\.{3}|\s|$)))/,o=/\.{3}(\S*)/,n=/\son\s(\S+?)(?=\.{3}|$)/,s=r.exec(e);t.ahead=s&&+s[1]||0,s=i.exec(e),t.behind=s&&+s[1]||0,s=a.exec(e),t.current=Hb(s?.[1],bA,null),s=o.exec(e),t.tracking=Hb(s?.[1],bA,null),s=n.exec(e),s&&(t.current=Hb(s?.[1],bA,t.current)),t.detached=/\(no branch\)/.test(e)}]]),H8s=function(t){let e=t.split(OBe),r=new l5s;for(let i=0,a=e.length;i<a;){let o=e[i++].trim();o&&(o.charAt(0)==="R"&&(o+=OBe+(e[i++]||"")),fih(r,o))}return r}}});Aih=la({"src/lib/tasks/status.ts"(){"use strict";hih(),V8s=["--null","-z"]}});yih=la({"src/lib/tasks/version.ts"(){"use strict";Ts(),HBn="installed=false",W8s=[new nu(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,(t,[e,r,i,a=""])=>{Object.assign(t,UYt(bh(e),bh(r),bh(i),a))}),new nu(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,(t,[e,r,i,a=""])=>{Object.assign(t,UYt(bh(e),bh(r),i,a))})]}});vih=la({"src/lib/tasks/clone.ts"(){"use strict";_g(),Ts(),FBe(),EBn=(t,e,r)=>{let i=["clone",...r];return bA(t)&&i.push(aBn(t)),bA(e)&&i.push(aBn(e)),kx(i)},K8s=(t,e,r)=>(ND(r,"--mirror"),EBn(t,e,r))}}),z8s={};wm(z8s,{SimpleGitApi:()=>yBn});bih=la({"src/lib/simple-git-api.ts"(){"use strict";Inh(),_nh(),wnh(),Dnh(),Fnh(),e8s(),Lnh(),a8s(),Unh(),Wnh(),T8s(),aih(),U8s(),lih(),Aih(),_g(),yih(),Ts(),vih(),yBn=class{constructor(t){this._executor=t}_runTask(t,e){let r=this._executor.chain(),i=r.push(t);return e&&Snh(t,i,e),Object.create(this,{then:{value:i.then.bind(i)},catch:{value:i.catch.bind(i)},_executor:{value:r}})}add(t){return this._runTask(kx(["add",...CN(t)]),Kp(arguments))}cwd(t){let e=Kp(arguments);return typeof t=="string"?this._runTask(zPs(t,this._executor),e):typeof t?.path=="string"?this._runTask(zPs(t.path,t.root&&this._executor||void 0),e):this._runTask(K2("Git.cwd: workingDirectory must be supplied as a string"),e)}hashObject(t,e){return this._runTask(Qnh(t,e===!0),Kp(arguments))}init(t){return this._runTask(Vnh(t===!0,this._executor.cwd,Dx(arguments)),Kp(arguments))}merge(){return this._runTask(a5s(Dx(arguments)),Kp(arguments))}mergeFromTo(t,e){return bA(t)&&bA(e)?this._runTask(a5s([t,e,...Dx(arguments)]),Kp(arguments,!1)):this._runTask(K2("Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings"))}outputHandler(t){return this._executor.outputHandler=t,this}push(){let t=qBn({remote:Hb(arguments[0],bA),branch:Hb(arguments[1],bA)},Dx(arguments));return this._runTask(t,Kp(arguments))}stash(){return this._runTask(kx(["stash",...Dx(arguments)]),Kp(arguments))}status(){return this._runTask(pih(Dx(arguments)),Kp(arguments))}},Object.assign(yBn.prototype,Tnh(),Cih(),Onh(),cnh(),Rnh(),Nnh(),hnh(),Znh(),cih(),mih())}}),Y8s={};wm(Y8s,{Scheduler:()=>j8s});Sih=la({"src/lib/runners/scheduler.ts"(){"use strict";Ts(),l8s(),f5s=(()=>{let t=0;return()=>{t++;let{promise:e,done:r}=(0,J8s.createDeferred)();return{promise:e,done:r,id:t}}})(),j8s=class{constructor(t=2){this.concurrency=t,this.logger=MBn("","scheduler"),this.pending=[],this.running=[],this.logger("Constructed, concurrency=%s",t)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency){this.logger("Schedule attempt ignored, pending=%s running=%s concurrency=%s",this.pending.length,this.running.length,this.concurrency);return}let t=ND(this.running,this.pending.shift());this.logger("Attempting id=%s",t.id),t.done(()=>{this.logger("Completing id=",t.id),HYt(this.running,t),this.schedule()})}next(){let{promise:t,id:e}=ND(this.pending,f5s());return this.logger("Scheduling id=%s",e),this.schedule(),t}}}}),$8s={};wm($8s,{applyPatchTask:()=>xih});Iih=la({"src/lib/tasks/apply-patch.ts"(){"use strict";_g()}});wih=la({"src/lib/responses/BranchDeleteSummary.ts"(){"use strict";X8s=class{constructor(){this.all=[],this.branches={},this.errors=[]}get success(){return!this.errors.length}}}});Bih=la({"src/lib/parsers/parse-branch-delete.ts"(){"use strict";wih(),Ts(),h5s=/(\S+)\s+\(\S+\s([^)]+)\)/,CBn=/^error[^']+'([^']+)'/m,p5s=[new nu(h5s,(t,[e,r])=>{let i=_ih(e,r);t.all.push(i),t.branches[e]=i}),new nu(CBn,(t,[e])=>{let r=Tih(e);t.errors.push(r),t.all.push(r),t.branches[e]=r})],jYt=(t,e)=>z2(new X8s,p5s,[t,e])}}),Rih=la({"src/lib/responses/BranchSummary.ts"(){"use strict";eOs=class{constructor(){this.all=[],this.branches={},this.current="",this.detached=!1}push(t,e,r,i,a){t==="*"&&(this.detached=e,this.current=r),this.all.push(r),this.branches[r]={current:t==="*",linkedWorkTree:t==="+",name:r,commit:i,label:a}}}}});Dih=la({"src/lib/parsers/parse-branch.ts"(){"use strict";Rih(),Ts(),rOs=[new nu(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,(t,[e,r,i,a])=>{t.push(A5s(e),!0,r,i,a)}),new nu(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s,(t,[e,r,i,a])=>{t.push(A5s(e),!1,r,i,a)})],nOs=new nu(/^(\S+)$/s,(t,[e])=>{t.push("*",!1,e,"","")})}}),iOs={};wm(iOs,{branchLocalTask:()=>Mih,branchTask:()=>kih,containsDeleteBranchCommand:()=>aOs,deleteBranchTask:()=>Oih,deleteBranchesTask:()=>Pih});Fih=la({"src/lib/tasks/branch.ts"(){"use strict";NBe(),Bih(),Dih(),Ts()}});Qih=la({"src/lib/responses/CheckIgnore.ts"(){"use strict";oOs=t=>t.split(/\n/g).map(Lih).filter(Boolean)}}),sOs={};wm(sOs,{checkIgnoreTask:()=>Uih});Gih=la({"src/lib/tasks/check-ignore.ts"(){"use strict";Qih()}});Hih=la({"src/lib/parsers/parse-fetch.ts"(){"use strict";Ts(),uOs=[new nu(/From (.+)$/,(t,[e])=>{t.remote=e}),new nu(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,(t,[e,r])=>{t.branches.push({name:e,tracking:r})}),new nu(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,(t,[e,r])=>{t.tags.push({name:e,tracking:r})}),new nu(/- \[deleted]\s+\S+\s*-> (.+)$/,(t,[e])=>{t.deleted.push({tracking:e})}),new nu(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,(t,[e,r,i,a])=>{t.updated.push({name:i,tracking:a,to:r,from:e})})]}}),cOs={};wm(cOs,{fetchTask:()=>Wih});Kih=la({"src/lib/tasks/fetch.ts"(){"use strict";Hih(),_g()}});Yih=la({"src/lib/parsers/parse-move.ts"(){"use strict";Ts(),lOs=[new nu(/^Renaming (.+) to (.+)$/,(t,[e,r])=>{t.moves.push({from:e,to:r})})]}}),dOs={};wm(dOs,{moveTask:()=>Jih});jih=la({"src/lib/tasks/move.ts"(){"use strict";Yih(),Ts()}}),fOs={};wm(fOs,{pullTask:()=>$ih});Xih=la({"src/lib/tasks/pull.ts"(){"use strict";NBe(),F8s(),Ts()}});tah=la({"src/lib/responses/GetRemoteSummary.ts"(){"use strict";Ts()}}),pOs={};wm(pOs,{addRemoteTask:()=>rah,getRemotesTask:()=>nah,listRemotesTask:()=>iah,remoteTask:()=>aah,removeRemoteTask:()=>oah});sah=la({"src/lib/tasks/remote.ts"(){"use strict";tah(),_g()}}),AOs={};wm(AOs,{stashListTask:()=>uah});cah=la({"src/lib/tasks/stash-list.ts"(){"use strict";u$e(),x8s(),UBn(),T8s()}}),gOs={};wm(gOs,{addSubModuleTask:()=>lah,initSubModuleTask:()=>dah,subModuleTask:()=>$Yt,updateSubModuleTask:()=>fah});hah=la({"src/lib/tasks/sub-module.ts"(){"use strict";_g()}});gah=la({"src/lib/responses/TagList.ts"(){"use strict";g5s=class{constructor(t,e){this.all=t,this.latest=e}},EOs=function(t,e=!1){let r=t.split(`
package/dist/lib.mjs CHANGED
@@ -1995,7 +1995,7 @@ ${s.join(`
1995
1995
 
1996
1996
  `)}`.trim()}return`(Failed to read contents of ${t})`}catch(i){throw new Error(`Failed to access path "${t}": ${i.message}`)}}async function mpf(){let t=await on.workspace.getDiagnostics({filePaths:[]});return t.fileDiagnostics.length===0?"No errors or warnings detected.":hie(t.fileDiagnostics,[0,1])}function wln(t){let e=t.match(/^([\w-]+):(.+)$/);if(!e)return null;let[,r,i]=e;if(t.includes("://"))return null;let a=i.match(/^"(.*)"$/),o=a?a[1]:i;return{workspaceHint:r,path:o}}function cXo(t){return wln(t)?!0:t.startsWith("/")||t.startsWith('"/')}function lXo(t){let e=wln(t);if(e)return e.path.startsWith("/")?e.path.slice(1):e.path;let r=t.match(/^"(.*)"$/);return(r?r[1]:t).slice(1)}function dXo(t){return wln(t)?.workspaceHint}Ra();vr();vr();Ra();vr();va();Ra();q2();vr();va();Ra();q2();vr();Fi();vr();Fi();Xu();Fi();Fi();Ah();va();mh();vr();Ah();Fc();import Epf from"path";async function XNt(t,e){let r=t.stateManager.getGlobalSettingsKey("globalWorkflowToggles"),i=await zst(),a=await ID(i,r);t.stateManager.setGlobalState("globalWorkflowToggles",a);let o=t.stateManager.getWorkspaceStateKey("workflowToggles"),n=Epf.resolve(e,Ro.workflows),s=await ID(n,o);return t.stateManager.setWorkspaceState("workflowToggles",s),{globalWorkflowToggles:a,localWorkflowToggles:s}}va();mh();vr();ds();u4e();ds();vr();var ypf=new TextDecoder,Cd=(t,e=0,r=t.length)=>ypf.decode(t.slice(e,r)),DIe=(t,e=0,r=t.length)=>t.slice(e,r).reduce((i,a)=>i+`0${a.toString(16)}`.slice(-2),""),rY=(t,e)=>new DataView(t.buffer,t.byteOffset+e),pXo=(t,e=0)=>rY(t,e).getInt16(0,!0),e7t=(t,e=0)=>rY(t,e).getUint16(0,!1),xI=(t,e=0)=>rY(t,e).getUint16(0,!0),AXo=(t,e=0)=>{let r=rY(t,e);return r.getUint16(0,!0)+(r.getUint8(2)<<16)},Cpf=(t,e=0)=>rY(t,e).getInt32(0,!0),uE=(t,e=0)=>rY(t,e).getUint32(0,!1),uoe=(t,e=0)=>rY(t,e).getUint32(0,!0),kln=(t,e,r)=>rY(t,e).getBigUint64(0,!r),vpf={readUInt16BE:e7t,readUInt16LE:xI,readUInt32BE:uE,readUInt32LE:uoe};function II(t,e,r=0,i=!1){let o=`readUInt${e}${i?"BE":"LE"}`;return vpf[o](t,r)}function bpf(t,e){if(t.length-e<4)return;let r=uE(t,e);if(!(t.length-e<r))return{name:Cd(t,4+e,8+e),offset:e,size:r}}function Q3(t,e,r){for(;r<t.length;){let i=bpf(t,r);if(!i)break;if(i.name===e)return i;r+=i.size>0?i.size:8}}var Spf={validate:t=>Cd(t,0,2)==="BM",calculate:t=>({height:Math.abs(Cpf(t,22)),width:uoe(t,18)})},Ipf=1,xpf=6,_pf=16;function gXo(t,e){let r=t[e];return r===0?256:r}function mXo(t,e){let r=xpf+e*_pf;return{height:gXo(t,r+1),width:gXo(t,r)}}var bXo={validate(t){let e=xI(t,0),r=xI(t,4);return e!==0||r===0?!1:xI(t,2)===Ipf},calculate(t){let e=xI(t,4),r=mXo(t,0);if(e===1)return r;let i=[];for(let a=0;a<e;a+=1)i.push(mXo(t,a));return{width:r.width,height:r.height,images:i}}},Tpf=2,wpf={validate(t){let e=xI(t,0),r=xI(t,4);return e!==0||r===0?!1:xI(t,2)===Tpf},calculate:t=>bXo.calculate(t)},Rpf={validate:t=>uoe(t,0)===542327876,calculate:t=>({height:uoe(t,12),width:uoe(t,16)})},Bpf=/^GIF8[79]a/,Dpf={validate:t=>Bpf.test(Cd(t,0,6)),calculate:t=>({height:xI(t,8),width:xI(t,6)})},kpf={avif:"avif",mif1:"heif",msf1:"heif",heic:"heic",heix:"heic",hevc:"heic",hevx:"heic"},Mpf={validate(t){if(Cd(t,4,8)!=="ftyp")return!1;let r=Q3(t,"ftyp",0);return r?Cd(t,r.offset+8,r.offset+12)in kpf:!1},calculate(t){let e=Q3(t,"meta",0),r=e&&Q3(t,"iprp",e.offset+12),i=r&&Q3(t,"ipco",r.offset+8);if(!i)throw new TypeError("Invalid HEIF, no ipco box found");let a=Cd(t,8,12),o=[],n=i.offset+8;for(;n<i.offset+i.size;){let s=Q3(t,"ispe",n);if(!s)break;let u=uE(t,s.offset+12),f=uE(t,s.offset+16),d=Q3(t,"clap",n),h=u,c=f;if(d&&d.offset<i.offset+i.size){let p=uE(t,d.offset+12);h=u-p}o.push({height:c,width:h}),n=s.offset+s.size}if(o.length===0)throw new TypeError("Invalid HEIF, no sizes found");return{width:o[0].width,height:o[0].height,type:a,...o.length>1?{images:o}:{}}}},Ppf=8,Opf=4,Fpf=4,Npf={ICON:32,"ICN#":32,"icm#":16,icm4:16,icm8:16,"ics#":16,ics4:16,ics8:16,is32:16,s8mk:16,icp4:16,icl4:32,icl8:32,il32:32,l8mk:32,icp5:32,ic11:32,ich4:48,ich8:48,ih32:48,h8mk:48,icp6:64,ic12:32,it32:128,t8mk:128,ic07:128,ic08:256,ic13:256,ic09:512,ic14:512,ic10:1024};function Lpf(t,e){let r=e+Fpf;return[Cd(t,e,r),uE(t,r)]}function Qpf(t){let e=Npf[t];return{width:e,height:e,type:t}}var Upf={validate:t=>Cd(t,0,4)==="icns",calculate(t){let e=t.length,r=uE(t,Opf),i=Ppf,a=[];for(;i<r&&i<e;){let o=Lpf(t,i),n=Qpf(o[0]);a.push(n),i+=o[1]}if(a.length===0)throw new TypeError("Invalid ICNS, no sizes found");return{width:a[0].width,height:a[0].height,...a.length>1?{images:a}:{}}}},Gpf={validate:t=>uE(t,0)===4283432785,calculate:t=>({height:uE(t,12),width:uE(t,8)})},qpf={validate(t){if(Cd(t,4,8)!=="jP ")return!1;let r=Q3(t,"ftyp",0);return r?Cd(t,r.offset+8,r.offset+12)==="jp2 ":!1},calculate(t){let e=Q3(t,"jp2h",0),r=e&&Q3(t,"ihdr",e.offset+8);if(r)return{height:uE(t,r.offset+8),width:uE(t,r.offset+12)};throw new TypeError("Unsupported JPEG 2000 format")}},Hpf="45786966",Vpf=2,Dln=6,Wpf=2,Kpf="4d4d",zpf="4949",EXo=12,Ypf=2;function Jpf(t){return DIe(t,2,6)===Hpf}function jpf(t,e){return{height:e7t(t,e),width:e7t(t,e+2)}}function $pf(t,e){let i=Dln+8,a=II(t,16,i,e);for(let o=0;o<a;o++){let n=i+Ypf+o*EXo,s=n+EXo;if(n>t.length)return;let u=t.slice(n,s);if(II(u,16,0,e)===274)return II(u,16,2,e)!==3||II(u,32,4,e)!==1?void 0:II(u,16,8,e)}}function Xpf(t,e){let r=t.slice(Vpf,e),i=DIe(r,Dln,Dln+Wpf),a=i===Kpf;if(a||i===zpf)return $pf(r,a)}function Zpf(t,e){if(e>t.length)throw new TypeError("Corrupt JPG, exceeded buffer limits")}var e0f={validate:t=>DIe(t,0,2)==="ffd8",calculate(t){let e=t.slice(4),r,i;for(;e.length;){let a=e7t(e,0);if(Zpf(e,a),e[a]!==255){e=e.slice(1);continue}if(Jpf(e)&&(r=Xpf(e,a)),i=e[a+1],i===192||i===193||i===194){let o=jpf(e,a+5);return r?{height:o.height,orientation:r,width:o.width}:o}e=e.slice(a+2)}throw new TypeError("Invalid JPG, no size found")}},t0f=class{constructor(t,e){this.input=t,this.endianness=e,this.byteOffset=2,this.bitOffset=0}getBits(t=1){let e=0,r=0;for(;r<t;){if(this.byteOffset>=this.input.length)throw new Error("Reached end of input");let i=this.input[this.byteOffset],a=8-this.bitOffset,o=Math.min(t-r,a);if(this.endianness==="little-endian"){let n=(1<<o)-1,s=i>>this.bitOffset&n;e|=s<<r}else{let n=(1<<o)-1<<8-this.bitOffset-o,s=(i&n)>>8-this.bitOffset-o;e=e<<o|s}r+=o,this.bitOffset+=o,this.bitOffset===8&&(this.byteOffset++,this.bitOffset=0)}return e}};function SXo(t,e){if(e)return 8*(1+t.getBits(5));let r=t.getBits(2),i=[9,13,18,30][r];return 1+t.getBits(i)}function r0f(t,e,r,i){if(e&&r===0)return 8*(1+t.getBits(5));if(r===0)return SXo(t,!1);let a=[1,1.2,4/3,1.5,16/9,5/4,2];return Math.floor(i*a[r-1])}var IXo={validate:t=>DIe(t,0,2)==="ff0a",calculate(t){let e=new t0f(t,"little-endian"),r=e.getBits(1)===1,i=SXo(e,r),a=e.getBits(3);return{width:r0f(e,r,a,i),height:i}}};function n0f(t){let e=Q3(t,"jxlc",0);if(e)return t.slice(e.offset+8,e.offset+e.size);let r=i0f(t);if(r.length>0)return a0f(r)}function i0f(t){let e=[],r=0;for(;r<t.length;){let i=Q3(t,"jxlp",r);if(!i)break;e.push(t.slice(i.offset+12,i.offset+i.size)),r=i.offset+i.size}return e}function a0f(t){let e=t.reduce((a,o)=>a+o.length,0),r=new Uint8Array(e),i=0;for(let a of t)r.set(a,i),i+=a.length;return r}var o0f={validate:t=>{if(Cd(t,4,8)!=="JXL ")return!1;let r=Q3(t,"ftyp",0);return r?Cd(t,r.offset+8,r.offset+12)==="jxl ":!1},calculate(t){let e=n0f(t);if(e)return IXo.calculate(e);throw new Error("No codestream found in JXL container")}},s0f={validate:t=>{let e=Cd(t,1,7);return["KTX 11","KTX 20"].includes(e)},calculate:t=>{let e=t[5]===49?"ktx":"ktx2",r=e==="ktx"?36:20;return{height:uoe(t,r+4),width:uoe(t,r),type:e}}},u0f=`PNG\r
1997
1997
  
1998
- `,c0f="IHDR",yXo="CgBI",l0f={validate(t){if(u0f===Cd(t,1,8)){let e=Cd(t,12,16);if(e===yXo&&(e=Cd(t,28,32)),e!==c0f)throw new TypeError("Invalid PNG");return!0}return!1},calculate(t){return Cd(t,12,16)===yXo?{height:uE(t,36),width:uE(t,32)}:{height:uE(t,20),width:uE(t,16)}}},CXo={P1:"pbm/ascii",P2:"pgm/ascii",P3:"ppm/ascii",P4:"pbm",P5:"pgm",P6:"ppm",P7:"pam",PF:"pfm"},vXo={default:t=>{let e=[];for(;t.length>0;){let r=t.shift();if(r[0]!=="#"){e=r.split(" ");break}}if(e.length===2)return{height:Number.parseInt(e[1],10),width:Number.parseInt(e[0],10)};throw new TypeError("Invalid PNM")},pam:t=>{let e={};for(;t.length>0;){let r=t.shift();if(r.length>16||r.charCodeAt(0)>128)continue;let[i,a]=r.split(" ");if(i&&a&&(e[i.toLowerCase()]=Number.parseInt(a,10)),e.height&&e.width)break}if(e.height&&e.width)return{height:e.height,width:e.width};throw new TypeError("Invalid PAM")}},d0f={validate:t=>Cd(t,0,2)in CXo,calculate(t){let e=Cd(t,0,2),r=CXo[e],i=Cd(t,3).split(/[\r\n]+/);return(vXo[r]||vXo.default)(i)}},f0f={validate:t=>Cd(t,0,4)==="8BPS",calculate:t=>({height:uE(t,14),width:uE(t,18)})},xXo=/<svg\s([^>"']|"[^"]*"|'[^']*')*>/,ZNt={height:/\sheight=(['"])([^%]+?)\1/,root:xXo,viewbox:/\sviewBox=(['"])(.+?)\1/i,width:/\swidth=(['"])([^%]+?)\1/},Bln=2.54,_Xo={in:96,cm:96/Bln,em:16,ex:8,m:96/Bln*100,mm:96/Bln/10,pc:96/72/12,pt:96/72,px:1},h0f=new RegExp(`^([0-9.]+(?:e\\d+)?)(${Object.keys(_Xo).join("|")})?$`);function t7t(t){let e=h0f.exec(t);if(e)return Math.round(Number(e[1])*(_Xo[e[2]]||1))}function p0f(t){let e=t.split(" ");return{height:t7t(e[3]),width:t7t(e[2])}}function A0f(t){let e=t.match(ZNt.width),r=t.match(ZNt.height),i=t.match(ZNt.viewbox);return{height:r&&t7t(r[2]),viewbox:i&&p0f(i[2]),width:e&&t7t(e[2])}}function g0f(t){return{height:t.height,width:t.width}}function m0f(t,e){let r=e.width/e.height;return t.width?{height:Math.floor(t.width/r),width:t.width}:t.height?{height:t.height,width:Math.floor(t.height*r)}:{height:e.height,width:e.width}}var E0f={validate:t=>xXo.test(Cd(t,0,1e3)),calculate(t){let e=Cd(t).match(ZNt.root);if(e){let r=A0f(e[0]);if(r.width&&r.height)return g0f(r);if(r.viewbox)return m0f(r,r.viewbox)}throw new TypeError("Invalid SVG")}},y0f={validate(t){return xI(t,0)===0&&xI(t,4)===0},calculate(t){return{height:xI(t,14),width:xI(t,12)}}},_I={TAG:{WIDTH:256,HEIGHT:257,COMPRESSION:259},TYPE:{SHORT:3,LONG:4,LONG8:16},ENTRY_SIZE:{STANDARD:12,BIG:20},COUNT_SIZE:{STANDARD:2,BIG:8}};function C0f(t,{isBigEndian:e,isBigTiff:r}){let i=r?Number(kln(t,8,e)):II(t,32,4,e),a=r?_I.COUNT_SIZE.BIG:_I.COUNT_SIZE.STANDARD;return t.slice(i+a)}function v0f(t,e,r,i){switch(e){case _I.TYPE.SHORT:return II(t,16,r,i);case _I.TYPE.LONG:return II(t,32,r,i);case _I.TYPE.LONG8:{let a=Number(kln(t,r,i));if(a>Number.MAX_SAFE_INTEGER)throw new TypeError("Value too large");return a}default:return 0}}function b0f(t,e){let r=e?_I.ENTRY_SIZE.BIG:_I.ENTRY_SIZE.STANDARD;if(t.length>r)return t.slice(r)}function S0f(t,{isBigEndian:e,isBigTiff:r}){let i={},a=t;for(;a?.length;){let o=II(a,16,0,e),n=II(a,16,2,e),s=r?Number(kln(a,4,e)):II(a,32,4,e);if(o===0)break;if(s===1&&(n===_I.TYPE.SHORT||n===_I.TYPE.LONG||r&&n===_I.TYPE.LONG8)){let u=r?12:8;i[o]=v0f(a,n,u,e)}a=b0f(a,r)}return i}function I0f(t){let e=Cd(t,0,2),r=II(t,16,2,e==="MM");return{isBigEndian:e==="MM",isBigTiff:r===43}}function x0f(t,e){let r=II(t,16,4,e),i=II(t,16,6,e);if(r!==8||i!==0)throw new TypeError("Invalid BigTIFF header")}var _0f=new Set(["49492a00","4d4d002a","49492b00","4d4d002b"]),T0f={validate:t=>{let e=DIe(t,0,4);return _0f.has(e)},calculate(t){let e=I0f(t);e.isBigTiff&&x0f(t,e.isBigEndian);let r=C0f(t,e),i=S0f(r,e),a={height:i[_I.TAG.HEIGHT],width:i[_I.TAG.WIDTH],type:e.isBigTiff?"bigtiff":"tiff"};if(i[_I.TAG.COMPRESSION]&&(a.compression=i[_I.TAG.COMPRESSION]),!a.width||!a.height)throw new TypeError("Invalid Tiff. Missing tags");return a}};function w0f(t){return{height:1+AXo(t,7),width:1+AXo(t,4)}}function R0f(t){return{height:1+((t[4]&15)<<10|t[3]<<2|(t[2]&192)>>6),width:1+((t[2]&63)<<8|t[1])}}function B0f(t){return{height:pXo(t,8)&16383,width:pXo(t,6)&16383}}var D0f={validate(t){let e=Cd(t,0,4)==="RIFF",r=Cd(t,8,12)==="WEBP",i=Cd(t,12,15)==="VP8";return e&&r&&i},calculate(t){let e=Cd(t,12,16),r=t.slice(20,30);if(e==="VP8X"){let a=r[0],o=(a&192)===0,n=(a&1)===0;if(o&&n)return w0f(r);throw new TypeError("Invalid WebP")}if(e==="VP8 "&&r[0]!==47)return B0f(r);let i=DIe(r,3,6);if(e==="VP8L"&&i!=="9d012a")return R0f(r);throw new TypeError("Invalid WebP")}},r7t=new Map([["bmp",Spf],["cur",wpf],["dds",Rpf],["gif",Dpf],["heif",Mpf],["icns",Upf],["ico",bXo],["j2c",Gpf],["jp2",qpf],["jpg",e0f],["jxl",o0f],["jxl-stream",IXo],["ktx",s0f],["png",l0f],["pnm",d0f],["psd",f0f],["svg",E0f],["tga",y0f],["tiff",T0f],["webp",D0f]]),k0f=Array.from(r7t.keys()),M0f=new Map([[0,"heif"],[56,"psd"],[66,"bmp"],[68,"dds"],[71,"gif"],[73,"tiff"],[77,"tiff"],[82,"webp"],[105,"icns"],[137,"png"],[255,"jpg"]]);function P0f(t){let e=t[0],r=M0f.get(e);return r&&r7t.get(r).validate(t)?r:k0f.find(i=>r7t.get(i).validate(t))}var O0f={disabledTypes:[]};function Mln(t){let e=P0f(t);if(typeof e<"u"){if(O0f.disabledTypes.indexOf(e)>-1)throw new TypeError(`disabled file type: ${e}`);let r=r7t.get(e).calculate(t);if(r!==void 0){if(r.type=r.type??e,r.images&&r.images.length>1){let i=r.images.reduce((a,o)=>o.width*o.height>a.width*a.height?o:a,r.images[0]);r.width=i.width,r.height=i.height}return r}}throw new TypeError(`unsupported file type: ${e}`)}va();mh();vr();import*as Pln from"path";function TXo(t){let e=Pln.extname(t).toLowerCase();switch(e){case".png":return"image/png";case".jpeg":case".jpg":return"image/jpeg";case".webp":return"image/webp";default:throw new Error(`Unsupported file type: ${e}`)}}Fi();vr();vr();Xu();ds();va();mh();vr();Xu();Ra();ds();vr();Ah();Ra();vr();vr();vr();vr();vr();ds();Fi();va();vr();Ah();Fi();ds();Ah();Fi();ds();vr();va();va();ds();PIe();PIe();PIe();fhe();vr();Fc();va();Xu();vr();Fc();va();mh();vr();Xu();vr();Xu();Fi();go();vr();C0();WH();vr();C0();C0();Fc();var X0f=Mt(xOe());Rf();Co();go();vr();var Z0f={"stealth/giga-potato":{name:"Giga Potato",maxTokens:8192,contextWindow:224e3,supportsImages:!0,supportsPromptCache:!0,inputPrice:0,outputPrice:0,description:"A stealth model for testing purposes. Not a real potato."}};function HXo(t){let e={...t};for(let[r,i]of Object.entries(Z0f))e[r]||(e[r]=i);return e}C0();Fc();Xu();var eAf=Mt(xOe());a6();Rf();Co();go();vr();Co();C0();Xu();Fc();go();vr();Fi();go();vr();C0();go();vr();C0();C0();Rf();vr();vr();vr();Fi();C0();vr();Fi();vr();Fi();vr();Fi();g8e();vr();Fi();g8e();vr();C0();Fc();Xu();Rf();Ra();go();vr();Co();C0();Fc();Co();Xu();Rf();go();vr();Co();C0();go();vr();C0();Fc();Xu();Rf();go();vr();Fi();Fi();Fc();Xu();vr();fhe();import*as OL from"fs/promises";import*as coe from"path";async function iAf(t,e){let r=[];if(!await wa(t)||!await R0(t))return r;try{let i=await OL.readdir(t);for(let a of i){let o=coe.join(t,a);if(!(await OL.stat(o).catch(()=>null))?.isDirectory())continue;let s=await aAf(o,e,a);s&&r.push(s)}}catch(i){i instanceof Error&&"code"in i&&i.code==="EACCES"&&Ue.warn(`Permission denied reading skills directory: ${t}`)}return r}async function aAf(t,e,r){let i=coe.join(t,"SKILL.md");if(!await wa(i))return null;try{let a=await OL.readFile(i,"utf-8"),{data:o,parseError:n}=xB(a);return n?(Ue.warn(`Failed to parse YAML frontmatter for skill at ${t}: ${n}`),null):!o.name||typeof o.name!="string"?(Ue.warn(`Skill at ${t} missing required 'name' field in frontmatter`),null):!o.description||typeof o.description!="string"?(Ue.warn(`Skill at ${t} missing required 'description' field in frontmatter`),null):o.name!==r?(Ue.warn(`Skill name "${o.name}" in frontmatter doesn't match directory "${r}" at ${t}`),null):{name:r,description:o.description,path:i,source:e}}catch(a){return Ue.warn(`Failed to load skill at ${t}:`,a),null}}async function oAf(t){let e=[],r=Yst(t);for(let i of r){let a=await iAf(i.path,i.source);e.push(...a)}return e}function sAf(t){let e=new Set,r=[];for(let i=t.length-1;i>=0;i--){let a=t[i];e.has(a.name)||(e.add(a.name),r.unshift(a))}return r}async function WXo(t){let e=coe.dirname(t),r=coe.join(e,"docs"),i=coe.join(e,"scripts"),a=[],o=[];try{if(await wa(r)){let n=await OL.readdir(r);a.push(...n.filter(s=>s.endsWith(".md")||s.endsWith(".txt")))}}catch(n){Ue.warn(`Failed to read docs directory for skill at ${e}:`,n)}try{if(await wa(i)){let n=await OL.readdir(i);o.push(...n.filter(s=>!s.startsWith(".")))}}catch(n){Ue.warn(`Failed to read scripts directory for skill at ${e}:`,n)}return{docs:a,scripts:o}}async function o7t(t,e){let r=e.find(i=>i.name===t);if(!r)return null;try{let i=await OL.readFile(r.path,"utf-8"),{body:a}=xB(i);return{...r,instructions:a.trim()}}catch{return null}}async function U3(t,e){if(e.discoveredSkillsCache!==void 0)return e.discoveredSkillsCache;let r=await oAf(t),i=sAf(r);return e.discoveredSkillsCache=i,i}async function Kln(t,e){let r=[];for(let c of[...fbn])r.push(Yx.create({name:c.name,description:c.description,section:"default",cliCompatible:c.cliCompatible}));let i=t.stateManager.getWorkspaceStateKey("workflowToggles")??{},a=t.stateManager.getGlobalSettingsKey("globalWorkflowToggles")??{},o=t.stateManager.getGlobalStateKey("remoteWorkflowToggles")??{},n=[],s=new Set;for(let[c,p]of Object.entries(i))if(p){let A=KXo(c);s.add(A),r.push(Yx.create({name:A,description:`Custom workflow: ${A}`,section:"custom",cliCompatible:!0}))}for(let[c,p]of Object.entries(a))if(p){let A=KXo(c);s.has(A)||r.push(Yx.create({name:A,description:`Custom workflow: ${A}`,section:"custom",cliCompatible:!0}))}for(let c of n)(c.alwaysEnabled||o[c.name]!==!1)&&r.push(Yx.create({name:c.name,description:`Remote workflow: ${c.name}`,section:"custom",cliCompatible:!0}));let u=t.task?.cwd||t.getWorkspaceManager()?.getPrimaryRoot()?.path||process.cwd(),f=await U3(u,t.task?.taskState||{}),d=t.stateManager.getGlobalSettingsKey("globalSkillsToggles")??{},h=t.stateManager.getWorkspaceStateKey("localSkillsToggles")??{};for(let c of f)(c.source==="global"?d:h)[c.path]!==!1&&r.push(Yx.create({name:c.name,description:c.description,section:"skill",cliCompatible:!0}));return kLe.create({commands:r})}function KXo(t){return t.replace(/^.*[/\\]/,"")}q2();wWt();Nln();Ra();vr();var zXo=new Set;async function YXo(t){let e;try{e=JSON.stringify(t)}catch(i){Ue.error("Error serializing state update:",i);return}lAf(Buffer.byteLength(e,"utf8"));let r=Array.from(zXo).map(async i=>{try{await i({stateJson:e},!1)}catch(a){Ue.error("Error sending state update:",a),zXo.delete(i)}});await Promise.all(r)}function lAf(t){kr.captureGrpcResponseSize(t,"dirac.StateService","subscribeToState")}Fi();Ra();vr();Fi();Fpr();va();mh();vr();Fi();vr();var JXo=new Set;async function s7t(){let t=Array.from(JXo).map(async e=>{try{let r=Mn.create({});await e(r,!1)}catch(r){Ue.error("Error sending chatButtonClicked event:",r),JXo.delete(e)}});await Promise.all(t)}Fi();vr();Fi();Fi();a6();va();mh();vr();Ra();Fi();a6();va();mh();vr();Ra();SB();Fi();Fi();Fi();vr();Ra();Fi();vr();Fi();Fi();Fi();vr();vr();Fi();mh();w0r();va();vr();Fi();import{exec as dAf}from"child_process";import{promisify as fAf}from"util";var hAf=fAf(dAf);async function $Xo(){try{let{stdout:t}=await hAf("dirac version",{timeout:5e3});return t.includes("Dirac CLI Version")||t.includes("Dirac Core Version")}catch{return!1}}async function Yln(t){try{let e=await $Xo();return k_.create({value:e})}catch{return k_.create({value:!1})}}Fi();vr();Ra();vr();vr();x4e();Fi();Fi();Fi();import{join as pAf}from"node:path";async function NIe(t,e){return await Jln(t,e,{errors:!0})}NIe.loose=async(t,e)=>await Jln(t,e);NIe.strict=async(t,e)=>await Jln(t,e,{strict:!0});async function Jln(t,e={},r={}){let i=e.fs||await import("node:fs/promises"),a=0n,o=new Set,n=[];await s(t);async function s(u){if(e.ignore?.test(u))return;let f=r.strict?await i.lstat(u,{bigint:!0}):await i.lstat(u,{bigint:!0}).catch(d=>n.push(d));if(typeof f=="object"&&(o.has(f.ino)||(o.add(f.ino),a+=f.size),f.isDirectory())){let d=r.strict?await i.readdir(u):await i.readdir(u).catch(h=>n.push(h));if(typeof d!="object")return;await Promise.all(d.map(h=>s(pAf(u,h))))}}if(!e.bigint)if(a>BigInt(Number.MAX_SAFE_INTEGER)){let u=new RangeError("The folder size is too large to return as a Number. You can instruct this package to return a BigInt instead.");if(r.strict)throw u;n.push(u),a=Number.MAX_SAFE_INTEGER}else a=Number(a);return r.errors?{size:a,errors:n.length>0?n:null}:a}va();vr();Fi();va();mh();vr();Xu();Fi();Shr();vr();Fi();vr();Fi();vr();vr();ds();Fi();vr();Fi();Ra();vr();Fi();vr();Fi();vr();va();mh();vr();Xu();var Ots=Mt(pEe());aY();Ra();vr();Kdn();import HEf from"fs/promises";import*as Aoe from"path";var Pts="~/.dirac/data/checkpoints";async function zdn(t,e){let r={lockTarget:`${Pts}/${t}`,heldBy:e},i=await QIt(r);return{acquired:i.acquired,skipped:i.skipped,conflictingLock:i.conflictingLock}}async function Ydn(t,e){await UIt(e,`${Pts}/${t}`)}yve();var Jdn=class t{taskId;cwd;cwdHash;lastRetrievedShadowGitConfigWorkTree;gitOperations;cleanCommitHash(e){return e.startsWith("HEAD ")?e.slice(5):e}async sendCheckpointSubscriptionEvent(e,r,i){try{await Vbo({operation:e,cwdHash:this.cwdHash,isActive:r,taskId:this.taskId,commitHash:i})}catch(a){Ue.debug("Failed to send checkpoint event:",a)}}constructor(e,r,i){this.taskId=e,this.cwd=r,this.cwdHash=i,this.gitOperations=new k7t(r)}static async create(e,r,i){try{Ue.info(`Creating new CheckpointTracker for task ${e}`);let a=performance.now();if(!r){Ue.info(`Checkpoints disabled by setting for task ${e}`);return}try{await UC().version()}catch{throw new Error("Git must be installed to use checkpoints.")}let o=Array.isArray(i)?i:[i],{validateWorkspacePath:n}=await Promise.resolve().then(()=>(yve(),uzr));for(let c of o){if(!c)throw new Error("At least one workspace path must be provided");await n(c)}let s=Array.isArray(i)?i[0]:i,u=TLe(s);Ue.debug(`Repository ID (cwdHash): ${u}`);let f=new t(e,s,u);await f.sendCheckpointSubscriptionEvent("CHECKPOINT_INIT",!0);let d=await eK(f.cwdHash);await f.gitOperations.initShadowGit(d,s,e),await f.sendCheckpointSubscriptionEvent("CHECKPOINT_INIT",!1);let h=Math.round(performance.now()-a);return kr.captureCheckpointUsage(e,"shadow_git_initialized",h),f}catch(a){throw Ue.error("Failed to create CheckpointTracker:",a),a}}async commit(){let e=!1;try{await this.sendCheckpointSubscriptionEvent("CHECKPOINT_COMMIT",!0),Ue.info(`Creating new checkpoint commit for task ${this.taskId}`);let r=performance.now(),i=await zdn(this.cwdHash,this.taskId);if(!i.acquired&&!i.skipped)throw new Error("Failed to acquire checkpoint folder lock - another Dirac instance may be performing checkpoint operations");!i.acquired&&i.skipped&&Ue.log("Skipping Checkpoints lock - VS Code"),i.acquired&&(e=!0);let a=await eK(this.cwdHash),o=UC(Aoe.dirname(a));Ue.info(`Using shadow git at: ${a}`),(await this.gitOperations.addCheckpointFiles(o)).success||Ue.error("Failed to add at least one file(s) to checkpoints shadow git");let s="checkpoint-"+this.cwdHash+"-"+this.taskId;Ue.info(`Creating checkpoint commit with message: ${s}`);let f=((await o.commit(s,{"--allow-empty":null,"--no-verify":null})).commit||"").replace(/^HEAD\s+/,"");Ue.warn("Checkpoint commit created: ",f);let d=Math.round(performance.now()-r);return await this.sendCheckpointSubscriptionEvent("CHECKPOINT_COMMIT",!1,f),kr.captureCheckpointUsage(this.taskId,"commit_created",d),f}catch(r){throw Ue.error("Failed to create checkpoint:",{taskId:this.taskId,error:r}),new Error(`Failed to create checkpoint: ${r instanceof Error?r.message:String(r)}`)}finally{e&&(Ue.info("Releasing checkpoint folder lock"),await Ydn(this.cwdHash,this.taskId))}}async getShadowGitConfigWorkTree(){if(this.lastRetrievedShadowGitConfigWorkTree)return this.lastRetrievedShadowGitConfigWorkTree;try{let e=await eK(this.cwdHash);return this.lastRetrievedShadowGitConfigWorkTree=await this.gitOperations.getShadowGitConfigWorkTree(e),this.lastRetrievedShadowGitConfigWorkTree}catch(e){Ue.error("Failed to get shadow git config worktree:",e);return}}async resetHead(e){let r=!1;try{Ue.info(`Resetting to checkpoint: ${e}`);let i=performance.now();await this.sendCheckpointSubscriptionEvent("CHECKPOINT_RESTORE",!0,e);let a=await zdn(this.cwdHash,this.taskId);if(!a.acquired&&!a.skipped)throw new Error("Failed to acquire checkpoint folder lock - another Dirac instance may be performing checkpoint operations");!a.acquired&&a.skipped&&Ue.log("Skipping Checkpoints lock - VS Code"),a.acquired&&(r=!0);let o=await eK(this.cwdHash),n=UC(Aoe.dirname(o));Ue.debug(`Using shadow git at: ${o}`),await n.reset(["--hard",this.cleanCommitHash(e)]),Ue.debug(`Successfully reset to checkpoint: ${e}`);let s=Math.round(performance.now()-i);await this.sendCheckpointSubscriptionEvent("CHECKPOINT_RESTORE",!1,e),kr.captureCheckpointUsage(this.taskId,"restored",s)}catch(i){throw Ue.error("Failed to reset to checkpoint:",{taskId:this.taskId,commitHash:e,error:i}),i}finally{r&&await Ydn(this.cwdHash,this.taskId)}}async getDiffSet(e,r){let i=performance.now(),a=await eK(this.cwdHash),o=UC(Aoe.dirname(a));Ue.info(`Getting diff between commits: ${e||"initial"} -> ${r||"working directory"}`),await this.gitOperations.addCheckpointFiles(o);let n=r?this.cleanCommitHash(r):void 0,s=n?`${this.cleanCommitHash(e)}..${n}`:this.cleanCommitHash(e);Ue.info(`Diff range: ${s}`);let u=await o.diffSummary([s]),{getDefaultExclusions:f}=await Promise.resolve().then(()=>(D7t(),Wdn)),{getLfsPatterns:d}=await Promise.resolve().then(()=>(D7t(),Wdn)),h=await d(this.cwd),c=f(h),p=[];for(let E of u.files){let S=E.file,T=Aoe.join(this.cwd,S);if(c.some(g=>g.endsWith("/")?S.startsWith(g):g.startsWith("*.")?S.endsWith(g.slice(1)):S===g))continue;let R=S.lastIndexOf("."),D=Math.max(S.lastIndexOf("/"),S.lastIndexOf("\\")),v=R>D?S.substring(R).toLowerCase():"",I=R!==-1&&R===D+1;if(!v||I)try{if(await(0,Ots.isBinaryFile)(T).catch(()=>!1))continue}catch{continue}let C="";try{C=await o.show([`${this.cleanCommitHash(e)}:${S}`])}catch{}let x="";if(r)try{x=await o.show([`${this.cleanCommitHash(r)}:${S}`])}catch{}else try{x=await HEf.readFile(T,"utf8")}catch{}p.push({relativePath:S,absolutePath:T,before:C,after:x})}let A=Math.round(performance.now()-i);return kr.captureCheckpointUsage(this.taskId,"diff_generated",A),p}async getDiffCount(e,r){let i=performance.now(),a=await eK(this.cwdHash),o=UC(Aoe.dirname(a));Ue.info(`Getting diff count between commits: ${e||"initial"} -> ${r||"working directory"}`),await this.gitOperations.addCheckpointFiles(o);let n=r?this.cleanCommitHash(r):void 0,s=n?`${this.cleanCommitHash(e)}..${n}`:this.cleanCommitHash(e),u=await o.diffSummary([s]),f=Math.round(performance.now()-i);return kr.captureCheckpointUsage(this.taskId,"diff_generated",f),u.files.length}},oY=Jdn;function ih(t,e){let r=t.length;for(;r--;)if(e(t[r],r,t))return r;return-1}function q3(t,e){let r=ih(t,e);return r===-1?void 0:t[r]}function sY(t){try{return JSON.parse(t)}catch{let e=t.trim();if(!e.startsWith('["'))return[];let r=e.slice(2);return r=r.replace(/"]$/,""),r?r.split('", "').map(i=>i.trim()).filter(Boolean):[]}}Fi();va();q2();vr();Fi();vr();var Fts=new Set;async function Iqe(){let t=Array.from(Fts).map(async e=>{try{let r=Mn.create({});await e(r,!1)}catch(r){Ue.error("Error sending relinquish control event:",r),Fts.delete(e)}});await Promise.all(t)}var Nts=Mt(pEe());va();function WIe(t){switch(t.type){case"text":return t.text;case"image":return"[Image]";case"document":return"[Document]";case"tool_use":let e;return typeof t.input=="object"&&t.input!==null?e=Object.entries(t.input).map(([r,i])=>`${r.charAt(0).toUpperCase()+r.slice(1)}: ${i}`).join(`
1998
+ `,c0f="IHDR",yXo="CgBI",l0f={validate(t){if(u0f===Cd(t,1,8)){let e=Cd(t,12,16);if(e===yXo&&(e=Cd(t,28,32)),e!==c0f)throw new TypeError("Invalid PNG");return!0}return!1},calculate(t){return Cd(t,12,16)===yXo?{height:uE(t,36),width:uE(t,32)}:{height:uE(t,20),width:uE(t,16)}}},CXo={P1:"pbm/ascii",P2:"pgm/ascii",P3:"ppm/ascii",P4:"pbm",P5:"pgm",P6:"ppm",P7:"pam",PF:"pfm"},vXo={default:t=>{let e=[];for(;t.length>0;){let r=t.shift();if(r[0]!=="#"){e=r.split(" ");break}}if(e.length===2)return{height:Number.parseInt(e[1],10),width:Number.parseInt(e[0],10)};throw new TypeError("Invalid PNM")},pam:t=>{let e={};for(;t.length>0;){let r=t.shift();if(r.length>16||r.charCodeAt(0)>128)continue;let[i,a]=r.split(" ");if(i&&a&&(e[i.toLowerCase()]=Number.parseInt(a,10)),e.height&&e.width)break}if(e.height&&e.width)return{height:e.height,width:e.width};throw new TypeError("Invalid PAM")}},d0f={validate:t=>Cd(t,0,2)in CXo,calculate(t){let e=Cd(t,0,2),r=CXo[e],i=Cd(t,3).split(/[\r\n]+/);return(vXo[r]||vXo.default)(i)}},f0f={validate:t=>Cd(t,0,4)==="8BPS",calculate:t=>({height:uE(t,14),width:uE(t,18)})},xXo=/<svg\s([^>"']|"[^"]*"|'[^']*')*>/,ZNt={height:/\sheight=(['"])([^%]+?)\1/,root:xXo,viewbox:/\sviewBox=(['"])(.+?)\1/i,width:/\swidth=(['"])([^%]+?)\1/},Bln=2.54,_Xo={in:96,cm:96/Bln,em:16,ex:8,m:96/Bln*100,mm:96/Bln/10,pc:96/72/12,pt:96/72,px:1},h0f=new RegExp(`^([0-9.]+(?:e\\d+)?)(${Object.keys(_Xo).join("|")})?$`);function t7t(t){let e=h0f.exec(t);if(e)return Math.round(Number(e[1])*(_Xo[e[2]]||1))}function p0f(t){let e=t.split(" ");return{height:t7t(e[3]),width:t7t(e[2])}}function A0f(t){let e=t.match(ZNt.width),r=t.match(ZNt.height),i=t.match(ZNt.viewbox);return{height:r&&t7t(r[2]),viewbox:i&&p0f(i[2]),width:e&&t7t(e[2])}}function g0f(t){return{height:t.height,width:t.width}}function m0f(t,e){let r=e.width/e.height;return t.width?{height:Math.floor(t.width/r),width:t.width}:t.height?{height:t.height,width:Math.floor(t.height*r)}:{height:e.height,width:e.width}}var E0f={validate:t=>xXo.test(Cd(t,0,1e3)),calculate(t){let e=Cd(t).match(ZNt.root);if(e){let r=A0f(e[0]);if(r.width&&r.height)return g0f(r);if(r.viewbox)return m0f(r,r.viewbox)}throw new TypeError("Invalid SVG")}},y0f={validate(t){return xI(t,0)===0&&xI(t,4)===0},calculate(t){return{height:xI(t,14),width:xI(t,12)}}},_I={TAG:{WIDTH:256,HEIGHT:257,COMPRESSION:259},TYPE:{SHORT:3,LONG:4,LONG8:16},ENTRY_SIZE:{STANDARD:12,BIG:20},COUNT_SIZE:{STANDARD:2,BIG:8}};function C0f(t,{isBigEndian:e,isBigTiff:r}){let i=r?Number(kln(t,8,e)):II(t,32,4,e),a=r?_I.COUNT_SIZE.BIG:_I.COUNT_SIZE.STANDARD;return t.slice(i+a)}function v0f(t,e,r,i){switch(e){case _I.TYPE.SHORT:return II(t,16,r,i);case _I.TYPE.LONG:return II(t,32,r,i);case _I.TYPE.LONG8:{let a=Number(kln(t,r,i));if(a>Number.MAX_SAFE_INTEGER)throw new TypeError("Value too large");return a}default:return 0}}function b0f(t,e){let r=e?_I.ENTRY_SIZE.BIG:_I.ENTRY_SIZE.STANDARD;if(t.length>r)return t.slice(r)}function S0f(t,{isBigEndian:e,isBigTiff:r}){let i={},a=t;for(;a?.length;){let o=II(a,16,0,e),n=II(a,16,2,e),s=r?Number(kln(a,4,e)):II(a,32,4,e);if(o===0)break;if(s===1&&(n===_I.TYPE.SHORT||n===_I.TYPE.LONG||r&&n===_I.TYPE.LONG8)){let u=r?12:8;i[o]=v0f(a,n,u,e)}a=b0f(a,r)}return i}function I0f(t){let e=Cd(t,0,2),r=II(t,16,2,e==="MM");return{isBigEndian:e==="MM",isBigTiff:r===43}}function x0f(t,e){let r=II(t,16,4,e),i=II(t,16,6,e);if(r!==8||i!==0)throw new TypeError("Invalid BigTIFF header")}var _0f=new Set(["49492a00","4d4d002a","49492b00","4d4d002b"]),T0f={validate:t=>{let e=DIe(t,0,4);return _0f.has(e)},calculate(t){let e=I0f(t);e.isBigTiff&&x0f(t,e.isBigEndian);let r=C0f(t,e),i=S0f(r,e),a={height:i[_I.TAG.HEIGHT],width:i[_I.TAG.WIDTH],type:e.isBigTiff?"bigtiff":"tiff"};if(i[_I.TAG.COMPRESSION]&&(a.compression=i[_I.TAG.COMPRESSION]),!a.width||!a.height)throw new TypeError("Invalid Tiff. Missing tags");return a}};function w0f(t){return{height:1+AXo(t,7),width:1+AXo(t,4)}}function R0f(t){return{height:1+((t[4]&15)<<10|t[3]<<2|(t[2]&192)>>6),width:1+((t[2]&63)<<8|t[1])}}function B0f(t){return{height:pXo(t,8)&16383,width:pXo(t,6)&16383}}var D0f={validate(t){let e=Cd(t,0,4)==="RIFF",r=Cd(t,8,12)==="WEBP",i=Cd(t,12,15)==="VP8";return e&&r&&i},calculate(t){let e=Cd(t,12,16),r=t.slice(20,30);if(e==="VP8X"){let a=r[0],o=(a&192)===0,n=(a&1)===0;if(o&&n)return w0f(r);throw new TypeError("Invalid WebP")}if(e==="VP8 "&&r[0]!==47)return B0f(r);let i=DIe(r,3,6);if(e==="VP8L"&&i!=="9d012a")return R0f(r);throw new TypeError("Invalid WebP")}},r7t=new Map([["bmp",Spf],["cur",wpf],["dds",Rpf],["gif",Dpf],["heif",Mpf],["icns",Upf],["ico",bXo],["j2c",Gpf],["jp2",qpf],["jpg",e0f],["jxl",o0f],["jxl-stream",IXo],["ktx",s0f],["png",l0f],["pnm",d0f],["psd",f0f],["svg",E0f],["tga",y0f],["tiff",T0f],["webp",D0f]]),k0f=Array.from(r7t.keys()),M0f=new Map([[0,"heif"],[56,"psd"],[66,"bmp"],[68,"dds"],[71,"gif"],[73,"tiff"],[77,"tiff"],[82,"webp"],[105,"icns"],[137,"png"],[255,"jpg"]]);function P0f(t){let e=t[0],r=M0f.get(e);return r&&r7t.get(r).validate(t)?r:k0f.find(i=>r7t.get(i).validate(t))}var O0f={disabledTypes:[]};function Mln(t){let e=P0f(t);if(typeof e<"u"){if(O0f.disabledTypes.indexOf(e)>-1)throw new TypeError(`disabled file type: ${e}`);let r=r7t.get(e).calculate(t);if(r!==void 0){if(r.type=r.type??e,r.images&&r.images.length>1){let i=r.images.reduce((a,o)=>o.width*o.height>a.width*a.height?o:a,r.images[0]);r.width=i.width,r.height=i.height}return r}}throw new TypeError(`unsupported file type: ${e}`)}va();mh();vr();import*as Pln from"path";function TXo(t){let e=Pln.extname(t).toLowerCase();switch(e){case".png":return"image/png";case".jpeg":case".jpg":return"image/jpeg";case".webp":return"image/webp";default:throw new Error(`Unsupported file type: ${e}`)}}Fi();vr();vr();Xu();ds();va();mh();vr();Xu();Ra();ds();vr();Ah();Ra();vr();vr();vr();vr();vr();ds();Fi();va();vr();Ah();Fi();ds();Ah();Fi();ds();vr();va();va();ds();PIe();PIe();PIe();fhe();vr();Fc();va();Xu();vr();Fc();va();mh();vr();Xu();vr();Xu();Fi();go();vr();C0();WH();vr();C0();C0();Fc();var X0f=Mt(xOe());Rf();Co();go();vr();var Z0f={"stealth/giga-potato":{name:"Giga Potato",maxTokens:8192,contextWindow:224e3,supportsImages:!0,supportsPromptCache:!0,inputPrice:0,outputPrice:0,description:"A stealth model for testing purposes. Not a real potato."}};function HXo(t){let e={...t};for(let[r,i]of Object.entries(Z0f))e[r]||(e[r]=i);return e}C0();Fc();Xu();var eAf=Mt(xOe());a6();Rf();Co();go();vr();Co();C0();Xu();Fc();go();vr();Fi();go();vr();C0();go();vr();C0();C0();Rf();vr();vr();vr();Fi();C0();vr();Fi();vr();Fi();vr();Fi();g8e();vr();Fi();g8e();vr();C0();Fc();Xu();Rf();Ra();go();vr();Co();C0();Fc();Co();Xu();Rf();go();vr();Co();C0();go();vr();C0();Fc();Xu();Rf();go();vr();Fi();Fi();Fc();Xu();vr();fhe();import*as OL from"fs/promises";import*as coe from"path";async function iAf(t,e){let r=[];if(!await wa(t)||!await R0(t))return r;try{let i=await OL.readdir(t);for(let a of i){let o=coe.join(t,a);if(!(await OL.stat(o).catch(()=>null))?.isDirectory())continue;let s=await aAf(o,e,a);s&&r.push(s)}}catch(i){i instanceof Error&&"code"in i&&i.code==="EACCES"&&Ue.warn(`Permission denied reading skills directory: ${t}`)}return r}async function aAf(t,e,r){let i=coe.join(t,"SKILL.md");if(!await wa(i))return null;try{let a=await OL.readFile(i,"utf-8"),{data:o,parseError:n}=xB(a);return n?(Ue.warn(`Failed to parse YAML frontmatter for skill at ${t}: ${n}`),null):!o.name||typeof o.name!="string"?(Ue.warn(`Skill at ${t} missing required 'name' field in frontmatter`),null):!o.description||typeof o.description!="string"?(Ue.warn(`Skill at ${t} missing required 'description' field in frontmatter`),null):o.name!==r?(Ue.warn(`Skill name "${o.name}" in frontmatter doesn't match directory "${r}" at ${t}`),null):{name:r,description:o.description,path:i,source:e}}catch(a){return Ue.warn(`Failed to load skill at ${t}:`,a),null}}async function oAf(t){let e=[],r=Yst(t);for(let i of r){let a=await iAf(i.path,i.source);e.push(...a)}return e}function sAf(t){let e=new Set,r=[];for(let i=t.length-1;i>=0;i--){let a=t[i];e.has(a.name)||(e.add(a.name),r.unshift(a))}return r}async function WXo(t){let e=coe.dirname(t),r=coe.join(e,"docs"),i=coe.join(e,"scripts"),a=[],o=[];try{if(await wa(r)){let n=await OL.readdir(r);a.push(...n.filter(s=>s.endsWith(".md")||s.endsWith(".txt")))}}catch(n){Ue.warn(`Failed to read docs directory for skill at ${e}:`,n)}try{if(await wa(i)){let n=await OL.readdir(i);o.push(...n.filter(s=>!s.startsWith(".")))}}catch(n){Ue.warn(`Failed to read scripts directory for skill at ${e}:`,n)}return{docs:a,scripts:o}}async function o7t(t,e){let r=e.find(i=>i.name===t);if(!r)return null;try{let i=await OL.readFile(r.path,"utf-8"),{body:a}=xB(i);return{...r,instructions:a.trim()}}catch{return null}}async function U3(t,e){if(e.discoveredSkillsCache!==void 0)return e.discoveredSkillsCache;let r=await oAf(t),i=sAf(r);return e.discoveredSkillsCache=i,i}async function Kln(t,e){let r=[];for(let c of[...fbn])r.push(Yx.create({name:c.name,description:c.description,section:"default",cliCompatible:c.cliCompatible}));let i=t.stateManager.getWorkspaceStateKey("workflowToggles")??{},a=t.stateManager.getGlobalSettingsKey("globalWorkflowToggles")??{},o=t.stateManager.getGlobalStateKey("remoteWorkflowToggles")??{},n=[],s=new Set;for(let[c,p]of Object.entries(i))if(p){let A=KXo(c);s.add(A),r.push(Yx.create({name:A,description:`Custom workflow: ${A}`,section:"custom",cliCompatible:!0}))}for(let[c,p]of Object.entries(a))if(p){let A=KXo(c);s.has(A)||r.push(Yx.create({name:A,description:`Custom workflow: ${A}`,section:"custom",cliCompatible:!0}))}for(let c of n)(c.alwaysEnabled||o[c.name]!==!1)&&r.push(Yx.create({name:c.name,description:`Remote workflow: ${c.name}`,section:"custom",cliCompatible:!0}));let u=t.task?.cwd||t.getWorkspaceManager()?.getPrimaryRoot()?.path||process.cwd(),f=await U3(u,t.task?.taskState||{}),d=t.stateManager.getGlobalSettingsKey("globalSkillsToggles")??{},h=t.stateManager.getWorkspaceStateKey("localSkillsToggles")??{};for(let c of f)(c.source==="global"?d:h)[c.path]!==!1&&r.push(Yx.create({name:c.name,description:c.description,section:"skill",cliCompatible:!0}));return kLe.create({commands:r})}function KXo(t){return t.replace(/^.*[/\\]/,"")}wWt();q2();Nln();Ra();vr();var zXo=new Set;async function YXo(t){let e;try{e=JSON.stringify(t)}catch(i){Ue.error("Error serializing state update:",i);return}lAf(Buffer.byteLength(e,"utf8"));let r=Array.from(zXo).map(async i=>{try{await i({stateJson:e},!1)}catch(a){Ue.error("Error sending state update:",a),zXo.delete(i)}});await Promise.all(r)}function lAf(t){kr.captureGrpcResponseSize(t,"dirac.StateService","subscribeToState")}Fi();Ra();vr();Fi();Fpr();va();mh();vr();Fi();vr();var JXo=new Set;async function s7t(){let t=Array.from(JXo).map(async e=>{try{let r=Mn.create({});await e(r,!1)}catch(r){Ue.error("Error sending chatButtonClicked event:",r),JXo.delete(e)}});await Promise.all(t)}Fi();vr();Fi();Fi();a6();va();mh();vr();Ra();Fi();a6();va();mh();vr();Ra();SB();Fi();Fi();Fi();vr();Ra();Fi();vr();Fi();Fi();Fi();vr();vr();Fi();mh();w0r();va();vr();Fi();import{exec as dAf}from"child_process";import{promisify as fAf}from"util";var hAf=fAf(dAf);async function $Xo(){try{let{stdout:t}=await hAf("dirac version",{timeout:5e3});return t.includes("Dirac CLI Version")||t.includes("Dirac Core Version")}catch{return!1}}async function Yln(t){try{let e=await $Xo();return k_.create({value:e})}catch{return k_.create({value:!1})}}Fi();vr();Ra();vr();vr();x4e();Fi();Fi();Fi();import{join as pAf}from"node:path";async function NIe(t,e){return await Jln(t,e,{errors:!0})}NIe.loose=async(t,e)=>await Jln(t,e);NIe.strict=async(t,e)=>await Jln(t,e,{strict:!0});async function Jln(t,e={},r={}){let i=e.fs||await import("node:fs/promises"),a=0n,o=new Set,n=[];await s(t);async function s(u){if(e.ignore?.test(u))return;let f=r.strict?await i.lstat(u,{bigint:!0}):await i.lstat(u,{bigint:!0}).catch(d=>n.push(d));if(typeof f=="object"&&(o.has(f.ino)||(o.add(f.ino),a+=f.size),f.isDirectory())){let d=r.strict?await i.readdir(u):await i.readdir(u).catch(h=>n.push(h));if(typeof d!="object")return;await Promise.all(d.map(h=>s(pAf(u,h))))}}if(!e.bigint)if(a>BigInt(Number.MAX_SAFE_INTEGER)){let u=new RangeError("The folder size is too large to return as a Number. You can instruct this package to return a BigInt instead.");if(r.strict)throw u;n.push(u),a=Number.MAX_SAFE_INTEGER}else a=Number(a);return r.errors?{size:a,errors:n.length>0?n:null}:a}va();vr();Fi();va();mh();vr();Xu();Fi();Shr();vr();Fi();vr();Fi();vr();vr();ds();Fi();vr();Fi();Ra();vr();Fi();vr();Fi();vr();va();mh();vr();Xu();var Ots=Mt(pEe());aY();Ra();vr();Kdn();import HEf from"fs/promises";import*as Aoe from"path";var Pts="~/.dirac/data/checkpoints";async function zdn(t,e){let r={lockTarget:`${Pts}/${t}`,heldBy:e},i=await QIt(r);return{acquired:i.acquired,skipped:i.skipped,conflictingLock:i.conflictingLock}}async function Ydn(t,e){await UIt(e,`${Pts}/${t}`)}yve();var Jdn=class t{taskId;cwd;cwdHash;lastRetrievedShadowGitConfigWorkTree;gitOperations;cleanCommitHash(e){return e.startsWith("HEAD ")?e.slice(5):e}async sendCheckpointSubscriptionEvent(e,r,i){try{await Vbo({operation:e,cwdHash:this.cwdHash,isActive:r,taskId:this.taskId,commitHash:i})}catch(a){Ue.debug("Failed to send checkpoint event:",a)}}constructor(e,r,i){this.taskId=e,this.cwd=r,this.cwdHash=i,this.gitOperations=new k7t(r)}static async create(e,r,i){try{Ue.info(`Creating new CheckpointTracker for task ${e}`);let a=performance.now();if(!r){Ue.info(`Checkpoints disabled by setting for task ${e}`);return}try{await UC().version()}catch{throw new Error("Git must be installed to use checkpoints.")}let o=Array.isArray(i)?i:[i],{validateWorkspacePath:n}=await Promise.resolve().then(()=>(yve(),uzr));for(let c of o){if(!c)throw new Error("At least one workspace path must be provided");await n(c)}let s=Array.isArray(i)?i[0]:i,u=TLe(s);Ue.debug(`Repository ID (cwdHash): ${u}`);let f=new t(e,s,u);await f.sendCheckpointSubscriptionEvent("CHECKPOINT_INIT",!0);let d=await eK(f.cwdHash);await f.gitOperations.initShadowGit(d,s,e),await f.sendCheckpointSubscriptionEvent("CHECKPOINT_INIT",!1);let h=Math.round(performance.now()-a);return kr.captureCheckpointUsage(e,"shadow_git_initialized",h),f}catch(a){throw Ue.error("Failed to create CheckpointTracker:",a),a}}async commit(){let e=!1;try{await this.sendCheckpointSubscriptionEvent("CHECKPOINT_COMMIT",!0),Ue.info(`Creating new checkpoint commit for task ${this.taskId}`);let r=performance.now(),i=await zdn(this.cwdHash,this.taskId);if(!i.acquired&&!i.skipped)throw new Error("Failed to acquire checkpoint folder lock - another Dirac instance may be performing checkpoint operations");!i.acquired&&i.skipped&&Ue.log("Skipping Checkpoints lock - VS Code"),i.acquired&&(e=!0);let a=await eK(this.cwdHash),o=UC(Aoe.dirname(a));Ue.info(`Using shadow git at: ${a}`),(await this.gitOperations.addCheckpointFiles(o)).success||Ue.error("Failed to add at least one file(s) to checkpoints shadow git");let s="checkpoint-"+this.cwdHash+"-"+this.taskId;Ue.info(`Creating checkpoint commit with message: ${s}`);let f=((await o.commit(s,{"--allow-empty":null,"--no-verify":null})).commit||"").replace(/^HEAD\s+/,"");Ue.warn("Checkpoint commit created: ",f);let d=Math.round(performance.now()-r);return await this.sendCheckpointSubscriptionEvent("CHECKPOINT_COMMIT",!1,f),kr.captureCheckpointUsage(this.taskId,"commit_created",d),f}catch(r){throw Ue.error("Failed to create checkpoint:",{taskId:this.taskId,error:r}),new Error(`Failed to create checkpoint: ${r instanceof Error?r.message:String(r)}`)}finally{e&&(Ue.info("Releasing checkpoint folder lock"),await Ydn(this.cwdHash,this.taskId))}}async getShadowGitConfigWorkTree(){if(this.lastRetrievedShadowGitConfigWorkTree)return this.lastRetrievedShadowGitConfigWorkTree;try{let e=await eK(this.cwdHash);return this.lastRetrievedShadowGitConfigWorkTree=await this.gitOperations.getShadowGitConfigWorkTree(e),this.lastRetrievedShadowGitConfigWorkTree}catch(e){Ue.error("Failed to get shadow git config worktree:",e);return}}async resetHead(e){let r=!1;try{Ue.info(`Resetting to checkpoint: ${e}`);let i=performance.now();await this.sendCheckpointSubscriptionEvent("CHECKPOINT_RESTORE",!0,e);let a=await zdn(this.cwdHash,this.taskId);if(!a.acquired&&!a.skipped)throw new Error("Failed to acquire checkpoint folder lock - another Dirac instance may be performing checkpoint operations");!a.acquired&&a.skipped&&Ue.log("Skipping Checkpoints lock - VS Code"),a.acquired&&(r=!0);let o=await eK(this.cwdHash),n=UC(Aoe.dirname(o));Ue.debug(`Using shadow git at: ${o}`),await n.reset(["--hard",this.cleanCommitHash(e)]),Ue.debug(`Successfully reset to checkpoint: ${e}`);let s=Math.round(performance.now()-i);await this.sendCheckpointSubscriptionEvent("CHECKPOINT_RESTORE",!1,e),kr.captureCheckpointUsage(this.taskId,"restored",s)}catch(i){throw Ue.error("Failed to reset to checkpoint:",{taskId:this.taskId,commitHash:e,error:i}),i}finally{r&&await Ydn(this.cwdHash,this.taskId)}}async getDiffSet(e,r){let i=performance.now(),a=await eK(this.cwdHash),o=UC(Aoe.dirname(a));Ue.info(`Getting diff between commits: ${e||"initial"} -> ${r||"working directory"}`),await this.gitOperations.addCheckpointFiles(o);let n=r?this.cleanCommitHash(r):void 0,s=n?`${this.cleanCommitHash(e)}..${n}`:this.cleanCommitHash(e);Ue.info(`Diff range: ${s}`);let u=await o.diffSummary([s]),{getDefaultExclusions:f}=await Promise.resolve().then(()=>(D7t(),Wdn)),{getLfsPatterns:d}=await Promise.resolve().then(()=>(D7t(),Wdn)),h=await d(this.cwd),c=f(h),p=[];for(let E of u.files){let S=E.file,T=Aoe.join(this.cwd,S);if(c.some(g=>g.endsWith("/")?S.startsWith(g):g.startsWith("*.")?S.endsWith(g.slice(1)):S===g))continue;let R=S.lastIndexOf("."),D=Math.max(S.lastIndexOf("/"),S.lastIndexOf("\\")),v=R>D?S.substring(R).toLowerCase():"",I=R!==-1&&R===D+1;if(!v||I)try{if(await(0,Ots.isBinaryFile)(T).catch(()=>!1))continue}catch{continue}let C="";try{C=await o.show([`${this.cleanCommitHash(e)}:${S}`])}catch{}let x="";if(r)try{x=await o.show([`${this.cleanCommitHash(r)}:${S}`])}catch{}else try{x=await HEf.readFile(T,"utf8")}catch{}p.push({relativePath:S,absolutePath:T,before:C,after:x})}let A=Math.round(performance.now()-i);return kr.captureCheckpointUsage(this.taskId,"diff_generated",A),p}async getDiffCount(e,r){let i=performance.now(),a=await eK(this.cwdHash),o=UC(Aoe.dirname(a));Ue.info(`Getting diff count between commits: ${e||"initial"} -> ${r||"working directory"}`),await this.gitOperations.addCheckpointFiles(o);let n=r?this.cleanCommitHash(r):void 0,s=n?`${this.cleanCommitHash(e)}..${n}`:this.cleanCommitHash(e),u=await o.diffSummary([s]),f=Math.round(performance.now()-i);return kr.captureCheckpointUsage(this.taskId,"diff_generated",f),u.files.length}},oY=Jdn;function ih(t,e){let r=t.length;for(;r--;)if(e(t[r],r,t))return r;return-1}function q3(t,e){let r=ih(t,e);return r===-1?void 0:t[r]}function sY(t){try{return JSON.parse(t)}catch{let e=t.trim();if(!e.startsWith('["'))return[];let r=e.slice(2);return r=r.replace(/"]$/,""),r?r.split('", "').map(i=>i.trim()).filter(Boolean):[]}}Fi();va();q2();vr();Fi();vr();var Fts=new Set;async function Iqe(){let t=Array.from(Fts).map(async e=>{try{let r=Mn.create({});await e(r,!1)}catch(r){Ue.error("Error sending relinquish control event:",r),Fts.delete(e)}});await Promise.all(t)}var Nts=Mt(pEe());va();function WIe(t){switch(t.type){case"text":return t.text;case"image":return"[Image]";case"document":return"[Document]";case"tool_use":let e;return typeof t.input=="object"&&t.input!==null?e=Object.entries(t.input).map(([r,i])=>`${r.charAt(0).toUpperCase()+r.slice(1)}: ${i}`).join(`
1999
1999
  `):e=String(t.input),`[Tool Use: ${t.name}]
2000
2000
  ${e}`;case"tool_result":return typeof t.content=="string"?`[Tool${t.is_error?" (Error)":""}]
2001
2001
  ${t.content}`:Array.isArray(t.content)?`[Tool${t.is_error?" (Error)":""}]
@@ -4362,7 +4362,7 @@ ${ne}`:Array.isArray(ee.content)&&ee.content.push({type:"text",text:ne})}}let Z=
4362
4362
  <div class="countdown">Feel free to close this window and continue in your ${r}</div>
4363
4363
  </div>
4364
4364
  </body>
4365
- </html>`}var lGt=class{};var dGt=class extends lGt{setOnReplyCallback(e){}async ensureCommentsViewDisabled(){}addReviewComment(e){}startStreamingComment(e,r,i,a,o,n){}appendToStreamingComment(e){}endStreamingComment(){}addReviewComments(e){}clearAllComments(){}clearCommentsForFile(e){}getThreadCount(){return 0}async closeDiffViews(){}dispose(){}};var fGt=class extends uY{RESOURCE_HOSTNAME="internal.resources";getWebviewUrl(e){let r=new URL(`https://${this.RESOURCE_HOSTNAME}/`);return r.pathname=e,r.toString()}getCspSource(){return`'self' https://${this.RESOURCE_HOSTNAME}`}isVisible(){return!0}};va();vr();var CEn="0.3.14";Ah();Xu();ds();var c0s=Mt(Oae(),1);va();import*as _Ve from"fs/promises";M1();vr();var hGt=class extends wY{connection;clientCapabilities;sessionIdResolver;constructor(e,r,i){super(),this.connection=e,this.clientCapabilities=r,this.sessionIdResolver=i}getSessionId(){let e=this.sessionIdResolver();if(!e)throw new Error("No active ACP session. Cannot perform file operation.");return e}canReadFile(){return this.clientCapabilities?.fs?.readTextFile===!0}canWriteFile(){return this.clientCapabilities?.fs?.writeTextFile===!0}async open(e,r){if(!this.canReadFile())return Ue.debug("[ACPDiffViewProvider] Client does not support fs.readTextFile, falling back to local fs"),super.open(e,r);this.isEditing=!0;let i=await kd(),a=Qp.resolveWorkspacePath(i,e,"ACPDiffViewProvider.open.absolutePath");this.absolutePath=typeof a=="string"?a:a.absolutePath,this.relPath=r?.displayPath??e;let o=this.editType==="modify";if(o){try{await on.workspace.saveOpenDocumentIfDirty({filePath:this.absolutePath})}catch{}try{Ue.debug("[ACPDiffViewProvider] Reading file via ACP:",this.absolutePath);let u=await this.connection.readTextFile({sessionId:this.getSessionId(),path:this.absolutePath});this.originalContent=u.content,this.fileEncoding="utf8",Ue.debug("[ACPDiffViewProvider] Read file successfully, length:",u.content.length)}catch(u){Ue.debug("[ACPDiffViewProvider] ACP read failed, falling back to local fs:",u);let f=await _Ve.readFile(this.absolutePath);this.fileEncoding=await ooe(f),this.originalContent=c0s.decode(f,this.fileEncoding)}}else this.originalContent="",this.fileEncoding="utf8";let n=await Ost(this.absolutePath);if(this.createdDirs=n,!o)if(this.canWriteFile())try{await this.connection.writeTextFile({sessionId:this.getSessionId(),path:this.absolutePath,content:""})}catch{await _Ve.writeFile(this.absolutePath,"")}else await _Ve.writeFile(this.absolutePath,"");let s=[];try{s=(await on.workspace.getDiagnostics({filePaths:[]})).fileDiagnostics}catch{s=[]}this.preDiagnostics=s,await this.openDiffEditor(),await this.scrollEditorToLine(0),this.streamedLines=[]}async scrollEditorToLine(e){}async openDiffEditor(){}async saveDocument(){if(!this.canWriteFile())return Ue.debug("[ACPDiffViewProvider] Client does not support fs.writeTextFile, falling back to local fs"),super.saveDocument();let e=await this.getContent();if(!this.absolutePath||e===void 0)return!1;try{return Ue.debug("[ACPDiffViewProvider] Writing file via ACP:",{path:this.absolutePath,contentLength:e.length}),await this.connection.writeTextFile({sessionId:this.getSessionId(),path:this.absolutePath,content:e}),Ue.debug("[ACPDiffViewProvider] Write file successfully"),!0}catch(r){return Ue.debug("[ACPDiffViewProvider] ACP write failed, falling back to local fs:",r),super.saveDocument()}}};vr();var vEn=class{async openDiff(e){return Ue.debug("[ACPDiffServiceClient] openDiff called (stub)"),Qu.OpenDiffResponse.create({})}async getDocumentText(e){return Ue.debug("[ACPDiffServiceClient] getDocumentText called (stub)",{diffId:e.diffId}),Qu.GetDocumentTextResponse.create({content:""})}async replaceText(e){return Ue.debug("[ACPDiffServiceClient] replaceText called (stub)"),Qu.ReplaceTextResponse.create({})}async scrollDiff(e){return Ue.debug("[ACPDiffServiceClient] scrollDiff called (stub)"),Qu.ScrollDiffResponse.create({})}async truncateDocument(e){return Ue.debug("[ACPDiffServiceClient] truncateDocument called (stub)"),Qu.TruncateDocumentResponse.create({})}async saveDocument(e){return Ue.debug("[ACPDiffServiceClient] saveDocument called (stub)"),Qu.SaveDocumentResponse.create({})}async closeAllDiffs(e){return Ue.debug("[ACPDiffServiceClient] closeAllDiffs called (stub)"),Qu.CloseAllDiffsResponse.create({})}async openMultiFileDiff(e){return Ue.debug("[ACPDiffServiceClient] openMultiFileDiff called (stub)"),Qu.OpenMultiFileDiffResponse.create({})}},bEn=class{version;constructor(e,r,i){this.version=i}async debugLog(e){return Ue.debug(e.value),r4.Empty.create()}async clipboardWriteText(e){return Ue.debug("[ACPEnvServiceClient] clipboardWriteText called (stub)"),r4.Empty.create()}async clipboardReadText(e){return Ue.debug("[ACPEnvServiceClient] clipboardReadText called (stub)"),r4.String.create({value:""})}async getHostVersion(e){return Qu.GetHostVersionResponse.create({version:this.version,platform:"Dirac ACP Agent",diracType:"CLI"})}async getIdeRedirectUri(e){return Ue.debug("[ACPEnvServiceClient] getIdeRedirectUri called (stub)"),r4.String.create({value:""})}async getTelemetrySettings(e){return Qu.GetTelemetrySettingsResponse.create({isEnabled:Qu.Setting.DISABLED})}subscribeToTelemetrySettings(e,r){return r.onResponse(Qu.TelemetrySettingsEvent.create({isEnabled:Qu.Setting.DISABLED})),()=>{}}async shutdown(e){return Ue.debug("[ACPEnvServiceClient] shutdown called (stub)"),r4.Empty.create()}async openExternal(e){let r=e.value||"";if(r){Ue.debug(`[ACPEnvServiceClient] openExternal: ${r}`);let{openUrlInBrowser:i}=await Promise.resolve().then(()=>(d0s(),l0s));await i(r)}return r4.Empty.create()}},SEn=class{constructor(e,r){}async showTextDocument(e){return Ue.debug("[ACPWindowServiceClient] showTextDocument called (stub)",{path:e.path}),Qu.TextEditorInfo.create({documentPath:e.path})}async showOpenDialogue(e){return Ue.debug("[ACPWindowServiceClient] showOpenDialogue called (stub)"),Qu.SelectedResources.create({paths:[]})}async showMessage(e){return Ue.debug("[ACPWindowServiceClient] showMessage called (stub)",{message:e.message,type:e.type}),Qu.SelectedResponse.create({})}async showInputBox(e){return Ue.debug("[ACPWindowServiceClient] showInputBox called (stub)"),Qu.ShowInputBoxResponse.create({response:""})}async showSaveDialog(e){return Ue.debug("[ACPWindowServiceClient] showSaveDialog called (stub)"),Qu.ShowSaveDialogResponse.create({selectedPath:""})}async openFile(e){return Ue.debug("[ACPWindowServiceClient] openFile called (stub)",{filePath:e.filePath}),Qu.OpenFileResponse.create({})}async openSettings(e){return Ue.debug("[ACPWindowServiceClient] openSettings called (stub)"),Qu.OpenSettingsResponse.create({})}async getOpenTabs(e){return Ue.debug("[ACPWindowServiceClient] getOpenTabs called (stub)"),Qu.GetOpenTabsResponse.create({paths:[]})}async getVisibleTabs(e){return Ue.debug("[ACPWindowServiceClient] getVisibleTabs called (stub)"),Qu.GetVisibleTabsResponse.create({paths:[]})}async getActiveEditor(e){return Ue.debug("[ACPWindowServiceClient] getActiveEditor called (stub)"),Qu.GetActiveEditorResponse.create({})}},IEn=class{_clientCapabilities;cwdResolver;constructor(e,r,i){this._clientCapabilities=e,this.cwdResolver=i}getCwd(){return this.cwdResolver()??process.cwd()}async getWorkspacePaths(e){let r=this.getCwd();return Ue.debug("[ACPWorkspaceServiceClient] getWorkspacePaths called",{cwd:r}),Qu.GetWorkspacePathsResponse.create({paths:[r]})}async saveOpenDocumentIfDirty(e){return Ue.debug("[ACPWorkspaceServiceClient] saveOpenDocumentIfDirty called (stub)"),Qu.SaveOpenDocumentIfDirtyResponse.create({})}async getDiagnostics(e){return Ue.debug("[ACPWorkspaceServiceClient] getDiagnostics called (stub)"),Qu.GetDiagnosticsResponse.create({fileDiagnostics:[]})}async openProblemsPanel(e){return Ue.debug("[ACPWorkspaceServiceClient] openProblemsPanel called (stub)"),Qu.OpenProblemsPanelResponse.create({})}async openInFileExplorerPanel(e){return Ue.debug("[ACPWorkspaceServiceClient] openInFileExplorerPanel called (stub)",{path:e.path}),Qu.OpenInFileExplorerPanelResponse.create({})}async openDiracSidebarPanel(e){return Ue.debug("[ACPWorkspaceServiceClient] openDiracSidebarPanel called (stub)"),Qu.OpenDiracSidebarPanelResponse.create({})}async openTerminalPanel(e){return Ue.debug("[ACPWorkspaceServiceClient] openTerminalPanel called (stub)"),Qu.OpenTerminalResponse.create({})}async executeCommandInTerminal(e){return Ue.debug("[ACPWorkspaceServiceClient] executeCommandInTerminal called (stub)",{command:e.command,hasTerminalCapability:this._clientCapabilities?.terminal}),Qu.ExecuteCommandInTerminalResponse.create({})}async prepareDiagnostics(e){return Qu.PrepareDiagnosticsResponse.create({success:!0})}async openFolder(e){return Ue.debug("[ACPWorkspaceServiceClient] openFolder called (stub)",{path:e.path}),Qu.OpenFolderResponse.create({success:!0})}},pGt=class{workspaceClient;envClient;windowClient;diffClient;constructor(e,r,i,a){this.workspaceClient=new IEn(e,r,i),this.envClient=new bEn(e,r,a),this.windowClient=new SEn(e,r),this.diffClient=new vEn}};vr();import{EventEmitter as W5f}from"events";var xEn=class extends W5f{isHot=!1;waitForShellIntegration=!1;_unretrievedOutput="";_continued=!1;_completed=!1;_hotTimeout=null;_exitWaitTimeout=null;manager;terminalId;pollInterval=null;constructor(e,r){super(),this.manager=e,this.terminalId=r}continue(){this._continued=!0,this.cleanup(),this.emit("continue")}getUnretrievedOutput(){let e=this._unretrievedOutput;return this._unretrievedOutput="",e}async terminate(){this.cleanup(),await this.manager.kill(this.terminalId)}cleanup(){this.stopPolling(),this._hotTimeout&&(clearTimeout(this._hotTimeout),this._hotTimeout=null),this._exitWaitTimeout&&(clearTimeout(this._exitWaitTimeout),this._exitWaitTimeout=null)}stopPolling(){this.pollInterval&&(clearInterval(this.pollInterval),this.pollInterval=null)}run(e){let r="";this.pollInterval=setInterval(async()=>{if(this._continued||this._completed){this.stopPolling();return}try{let i=await this.manager.getOutput(this.terminalId);if(!i.success){this.stopPolling(),this.emit("error",new Error(i.error||"Failed to get output"));return}if(i.output.length>r.length){let a=i.output.slice(r.length);this._unretrievedOutput+=a,r=i.output,this.setHot();let o=a.split(`
4365
+ </html>`}var lGt=class{};var dGt=class extends lGt{setOnReplyCallback(e){}async ensureCommentsViewDisabled(){}addReviewComment(e){}startStreamingComment(e,r,i,a,o,n){}appendToStreamingComment(e){}endStreamingComment(){}addReviewComments(e){}clearAllComments(){}clearCommentsForFile(e){}getThreadCount(){return 0}async closeDiffViews(){}dispose(){}};var fGt=class extends uY{RESOURCE_HOSTNAME="internal.resources";getWebviewUrl(e){let r=new URL(`https://${this.RESOURCE_HOSTNAME}/`);return r.pathname=e,r.toString()}getCspSource(){return`'self' https://${this.RESOURCE_HOSTNAME}`}isVisible(){return!0}};va();vr();var CEn="0.3.15";Ah();Xu();ds();var c0s=Mt(Oae(),1);va();import*as _Ve from"fs/promises";M1();vr();var hGt=class extends wY{connection;clientCapabilities;sessionIdResolver;constructor(e,r,i){super(),this.connection=e,this.clientCapabilities=r,this.sessionIdResolver=i}getSessionId(){let e=this.sessionIdResolver();if(!e)throw new Error("No active ACP session. Cannot perform file operation.");return e}canReadFile(){return this.clientCapabilities?.fs?.readTextFile===!0}canWriteFile(){return this.clientCapabilities?.fs?.writeTextFile===!0}async open(e,r){if(!this.canReadFile())return Ue.debug("[ACPDiffViewProvider] Client does not support fs.readTextFile, falling back to local fs"),super.open(e,r);this.isEditing=!0;let i=await kd(),a=Qp.resolveWorkspacePath(i,e,"ACPDiffViewProvider.open.absolutePath");this.absolutePath=typeof a=="string"?a:a.absolutePath,this.relPath=r?.displayPath??e;let o=this.editType==="modify";if(o){try{await on.workspace.saveOpenDocumentIfDirty({filePath:this.absolutePath})}catch{}try{Ue.debug("[ACPDiffViewProvider] Reading file via ACP:",this.absolutePath);let u=await this.connection.readTextFile({sessionId:this.getSessionId(),path:this.absolutePath});this.originalContent=u.content,this.fileEncoding="utf8",Ue.debug("[ACPDiffViewProvider] Read file successfully, length:",u.content.length)}catch(u){Ue.debug("[ACPDiffViewProvider] ACP read failed, falling back to local fs:",u);let f=await _Ve.readFile(this.absolutePath);this.fileEncoding=await ooe(f),this.originalContent=c0s.decode(f,this.fileEncoding)}}else this.originalContent="",this.fileEncoding="utf8";let n=await Ost(this.absolutePath);if(this.createdDirs=n,!o)if(this.canWriteFile())try{await this.connection.writeTextFile({sessionId:this.getSessionId(),path:this.absolutePath,content:""})}catch{await _Ve.writeFile(this.absolutePath,"")}else await _Ve.writeFile(this.absolutePath,"");let s=[];try{s=(await on.workspace.getDiagnostics({filePaths:[]})).fileDiagnostics}catch{s=[]}this.preDiagnostics=s,await this.openDiffEditor(),await this.scrollEditorToLine(0),this.streamedLines=[]}async scrollEditorToLine(e){}async openDiffEditor(){}async saveDocument(){if(!this.canWriteFile())return Ue.debug("[ACPDiffViewProvider] Client does not support fs.writeTextFile, falling back to local fs"),super.saveDocument();let e=await this.getContent();if(!this.absolutePath||e===void 0)return!1;try{return Ue.debug("[ACPDiffViewProvider] Writing file via ACP:",{path:this.absolutePath,contentLength:e.length}),await this.connection.writeTextFile({sessionId:this.getSessionId(),path:this.absolutePath,content:e}),Ue.debug("[ACPDiffViewProvider] Write file successfully"),!0}catch(r){return Ue.debug("[ACPDiffViewProvider] ACP write failed, falling back to local fs:",r),super.saveDocument()}}};vr();var vEn=class{async openDiff(e){return Ue.debug("[ACPDiffServiceClient] openDiff called (stub)"),Qu.OpenDiffResponse.create({})}async getDocumentText(e){return Ue.debug("[ACPDiffServiceClient] getDocumentText called (stub)",{diffId:e.diffId}),Qu.GetDocumentTextResponse.create({content:""})}async replaceText(e){return Ue.debug("[ACPDiffServiceClient] replaceText called (stub)"),Qu.ReplaceTextResponse.create({})}async scrollDiff(e){return Ue.debug("[ACPDiffServiceClient] scrollDiff called (stub)"),Qu.ScrollDiffResponse.create({})}async truncateDocument(e){return Ue.debug("[ACPDiffServiceClient] truncateDocument called (stub)"),Qu.TruncateDocumentResponse.create({})}async saveDocument(e){return Ue.debug("[ACPDiffServiceClient] saveDocument called (stub)"),Qu.SaveDocumentResponse.create({})}async closeAllDiffs(e){return Ue.debug("[ACPDiffServiceClient] closeAllDiffs called (stub)"),Qu.CloseAllDiffsResponse.create({})}async openMultiFileDiff(e){return Ue.debug("[ACPDiffServiceClient] openMultiFileDiff called (stub)"),Qu.OpenMultiFileDiffResponse.create({})}},bEn=class{version;constructor(e,r,i){this.version=i}async debugLog(e){return Ue.debug(e.value),r4.Empty.create()}async clipboardWriteText(e){return Ue.debug("[ACPEnvServiceClient] clipboardWriteText called (stub)"),r4.Empty.create()}async clipboardReadText(e){return Ue.debug("[ACPEnvServiceClient] clipboardReadText called (stub)"),r4.String.create({value:""})}async getHostVersion(e){return Qu.GetHostVersionResponse.create({version:this.version,platform:"Dirac ACP Agent",diracType:"CLI"})}async getIdeRedirectUri(e){return Ue.debug("[ACPEnvServiceClient] getIdeRedirectUri called (stub)"),r4.String.create({value:""})}async getTelemetrySettings(e){return Qu.GetTelemetrySettingsResponse.create({isEnabled:Qu.Setting.DISABLED})}subscribeToTelemetrySettings(e,r){return r.onResponse(Qu.TelemetrySettingsEvent.create({isEnabled:Qu.Setting.DISABLED})),()=>{}}async shutdown(e){return Ue.debug("[ACPEnvServiceClient] shutdown called (stub)"),r4.Empty.create()}async openExternal(e){let r=e.value||"";if(r){Ue.debug(`[ACPEnvServiceClient] openExternal: ${r}`);let{openUrlInBrowser:i}=await Promise.resolve().then(()=>(d0s(),l0s));await i(r)}return r4.Empty.create()}},SEn=class{constructor(e,r){}async showTextDocument(e){return Ue.debug("[ACPWindowServiceClient] showTextDocument called (stub)",{path:e.path}),Qu.TextEditorInfo.create({documentPath:e.path})}async showOpenDialogue(e){return Ue.debug("[ACPWindowServiceClient] showOpenDialogue called (stub)"),Qu.SelectedResources.create({paths:[]})}async showMessage(e){return Ue.debug("[ACPWindowServiceClient] showMessage called (stub)",{message:e.message,type:e.type}),Qu.SelectedResponse.create({})}async showInputBox(e){return Ue.debug("[ACPWindowServiceClient] showInputBox called (stub)"),Qu.ShowInputBoxResponse.create({response:""})}async showSaveDialog(e){return Ue.debug("[ACPWindowServiceClient] showSaveDialog called (stub)"),Qu.ShowSaveDialogResponse.create({selectedPath:""})}async openFile(e){return Ue.debug("[ACPWindowServiceClient] openFile called (stub)",{filePath:e.filePath}),Qu.OpenFileResponse.create({})}async openSettings(e){return Ue.debug("[ACPWindowServiceClient] openSettings called (stub)"),Qu.OpenSettingsResponse.create({})}async getOpenTabs(e){return Ue.debug("[ACPWindowServiceClient] getOpenTabs called (stub)"),Qu.GetOpenTabsResponse.create({paths:[]})}async getVisibleTabs(e){return Ue.debug("[ACPWindowServiceClient] getVisibleTabs called (stub)"),Qu.GetVisibleTabsResponse.create({paths:[]})}async getActiveEditor(e){return Ue.debug("[ACPWindowServiceClient] getActiveEditor called (stub)"),Qu.GetActiveEditorResponse.create({})}},IEn=class{_clientCapabilities;cwdResolver;constructor(e,r,i){this._clientCapabilities=e,this.cwdResolver=i}getCwd(){return this.cwdResolver()??process.cwd()}async getWorkspacePaths(e){let r=this.getCwd();return Ue.debug("[ACPWorkspaceServiceClient] getWorkspacePaths called",{cwd:r}),Qu.GetWorkspacePathsResponse.create({paths:[r]})}async saveOpenDocumentIfDirty(e){return Ue.debug("[ACPWorkspaceServiceClient] saveOpenDocumentIfDirty called (stub)"),Qu.SaveOpenDocumentIfDirtyResponse.create({})}async getDiagnostics(e){return Ue.debug("[ACPWorkspaceServiceClient] getDiagnostics called (stub)"),Qu.GetDiagnosticsResponse.create({fileDiagnostics:[]})}async openProblemsPanel(e){return Ue.debug("[ACPWorkspaceServiceClient] openProblemsPanel called (stub)"),Qu.OpenProblemsPanelResponse.create({})}async openInFileExplorerPanel(e){return Ue.debug("[ACPWorkspaceServiceClient] openInFileExplorerPanel called (stub)",{path:e.path}),Qu.OpenInFileExplorerPanelResponse.create({})}async openDiracSidebarPanel(e){return Ue.debug("[ACPWorkspaceServiceClient] openDiracSidebarPanel called (stub)"),Qu.OpenDiracSidebarPanelResponse.create({})}async openTerminalPanel(e){return Ue.debug("[ACPWorkspaceServiceClient] openTerminalPanel called (stub)"),Qu.OpenTerminalResponse.create({})}async executeCommandInTerminal(e){return Ue.debug("[ACPWorkspaceServiceClient] executeCommandInTerminal called (stub)",{command:e.command,hasTerminalCapability:this._clientCapabilities?.terminal}),Qu.ExecuteCommandInTerminalResponse.create({})}async prepareDiagnostics(e){return Qu.PrepareDiagnosticsResponse.create({success:!0})}async openFolder(e){return Ue.debug("[ACPWorkspaceServiceClient] openFolder called (stub)",{path:e.path}),Qu.OpenFolderResponse.create({success:!0})}},pGt=class{workspaceClient;envClient;windowClient;diffClient;constructor(e,r,i,a){this.workspaceClient=new IEn(e,r,i),this.envClient=new bEn(e,r,a),this.windowClient=new SEn(e,r),this.diffClient=new vEn}};vr();import{EventEmitter as W5f}from"events";var xEn=class extends W5f{isHot=!1;waitForShellIntegration=!1;_unretrievedOutput="";_continued=!1;_completed=!1;_hotTimeout=null;_exitWaitTimeout=null;manager;terminalId;pollInterval=null;constructor(e,r){super(),this.manager=e,this.terminalId=r}continue(){this._continued=!0,this.cleanup(),this.emit("continue")}getUnretrievedOutput(){let e=this._unretrievedOutput;return this._unretrievedOutput="",e}async terminate(){this.cleanup(),await this.manager.kill(this.terminalId)}cleanup(){this.stopPolling(),this._hotTimeout&&(clearTimeout(this._hotTimeout),this._hotTimeout=null),this._exitWaitTimeout&&(clearTimeout(this._exitWaitTimeout),this._exitWaitTimeout=null)}stopPolling(){this.pollInterval&&(clearInterval(this.pollInterval),this.pollInterval=null)}run(e){let r="";this.pollInterval=setInterval(async()=>{if(this._continued||this._completed){this.stopPolling();return}try{let i=await this.manager.getOutput(this.terminalId);if(!i.success){this.stopPolling(),this.emit("error",new Error(i.error||"Failed to get output"));return}if(i.output.length>r.length){let a=i.output.slice(r.length);this._unretrievedOutput+=a,r=i.output,this.setHot();let o=a.split(`
4366
4366
  `);for(let n of o)n&&this.emit("line",n)}i.exitStatus&&(this._completed=!0,this.stopPolling(),this.emit("completed"))}catch(i){this.stopPolling(),this.emit("error",i instanceof Error?i:new Error(String(i)))}},100),this.manager.waitForExit(this.terminalId).then(i=>{i.success&&!this._continued&&!this._completed&&(this._exitWaitTimeout=setTimeout(()=>{!this._continued&&!this._completed&&(this._completed=!0,this.cleanup(),this.emit("completed"))},200))})}setHot(){this.isHot=!0,this._hotTimeout&&clearTimeout(this._hotTimeout),this._hotTimeout=setTimeout(()=>{this.isHot=!1},2e3)}},_En=class{name;processId;shellIntegration;_managedTerminal;_manager;_cwd;constructor(e,r){this._managedTerminal=e,this._manager=r,this._cwd=e.cwd||"",this.name=`ACP Terminal ${e.numericId}`,this.processId=Promise.resolve(e.numericId),this.shellIntegration={cwd:{fsPath:this._cwd}}}sendText(e,r){Ue.debug("[AcpTerminal] sendText not supported for ACP terminals")}show(){}hide(){}dispose(){this._manager.release(this._managedTerminal.id).catch(e=>{Ue.debug("[AcpTerminal] Error releasing terminal:",e)})}};function K5f(t,e){let r=(async()=>{})().constructor.prototype,i=["then","catch","finally"].map(a=>[a,Reflect.getOwnPropertyDescriptor(r,a)]);for(let[a,o]of i)if(o){let n=o.value.bind(e);Reflect.defineProperty(t,a,{...o,value:n})}return t.terminate&&typeof t.terminate=="function"&&Object.defineProperty(t,"terminate",{value:t.terminate.bind(t),writable:!1,enumerable:!1,configurable:!1}),t}var AGt=class{connection;clientCapabilities;sessionIdResolver;terminals=new Map;numericIdToStringId=new Map;nextNumericId=1;processes=new Map;terminalInfos=new Map;terminalReuseEnabled=!0;terminalOutputLineLimit=500;constructor(e,r,i){this.connection=e,this.clientCapabilities=r,this.sessionIdResolver=i}runCommand(e,r){let a=e.terminal._managedTerminal;e.busy=!0,e.lastCommand=r,e.lastActive=Date.now(),a.busy=!0,a.lastCommand=r;let o=new xEn(this,a.id);this.processes.set(a.numericId,o),o.once("completed",()=>{e.busy=!1,a.busy=!1}),o.once("error",s=>{e.busy=!1,a.busy=!1});let n=new Promise((s,u)=>{o.once("continue",()=>s()),o.once("completed",()=>s()),o.once("error",f=>u(f))});return this.runCommandInternal(a,r,o),K5f(o,n)}async runCommandInternal(e,r,i){try{let a={sessionId:this.getSessionId(),command:r,cwd:e.cwd},o=await this.connection.createTerminal(a);e.id&&this.terminals.has(e.id)&&this.terminals.delete(e.id),e.handle=o,e.id=o.id,this.terminals.set(o.id,e),this.numericIdToStringId.set(e.numericId,o.id),i.terminalId=o.id,i.run(r)}catch(a){i.emit("error",a instanceof Error?a:new Error(String(a)))}}async getOrCreateTerminal(e){for(let[s,u]of this.terminalInfos)if(!u.busy&&u.terminal._cwd===e)return u;if(this.terminalReuseEnabled){for(let[s,u]of this.terminalInfos)if(!u.busy){let f=u.terminal;return f._cwd=e,f.shellIntegration?.cwd&&(f.shellIntegration.cwd.fsPath=e),f._managedTerminal.cwd=e,u}}let r=this.nextNumericId++,a={id:`pending-${r}`,numericId:r,handle:null,command:"",cwd:e,createdAt:Date.now(),released:!1,busy:!1,lastCommand:""},o=new _En(a,this),n={id:r,terminal:o,busy:!1,lastCommand:"",lastActive:Date.now()};return this.terminals.set(a.id,a),this.numericIdToStringId.set(r,a.id),this.terminalInfos.set(r,n),Ue.debug("[AcpTerminalManager] Created terminal:",{numericId:r,cwd:e}),n}getTerminals(e){let r=[];for(let[i,a]of this.terminalInfos)a.busy===e&&r.push({id:i,lastCommand:a.lastCommand});return r}getUnretrievedOutput(e){let r=this.processes.get(e);return r?r.getUnretrievedOutput():""}isProcessHot(e){let r=this.processes.get(e);return r?r.isHot:!1}disposeAll(){this.releaseAll().catch(e=>{Ue.debug("[AcpTerminalManager] Error releasing terminals:",e)}),this.terminals.clear(),this.numericIdToStringId.clear(),this.processes.clear(),this.terminalInfos.clear(),Ue.debug("[AcpTerminalManager] disposeAll complete")}setShellIntegrationTimeout(e){}setTerminalReuseEnabled(e){this.terminalReuseEnabled=e}setTerminalOutputLineLimit(e){this.terminalOutputLineLimit=e}setDefaultTerminalProfile(e){}processOutput(e,r){let i=r!==void 0?r:this.terminalOutputLineLimit;if(e.length>i){let a=Math.floor(i/2),o=e.slice(0,a),n=e.slice(e.length-a);return`${o.join(`
4367
4367
  `)}
4368
4368
  ... (output truncated) ...
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dirac-cli",
3
- "version": "0.3.14",
3
+ "version": "0.3.15",
4
4
  "description": "Autonomous coding agent CLI - capable of creating/editing files, running commands, using the browser, and more",
5
5
  "files": [
6
6
  "dist",