@earlyai/cli 2.4.0 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.cjs +5 -5
  2. package/package.json +2 -2
package/dist/index.cjs CHANGED
@@ -17,7 +17,7 @@ Expecting one of '${n.join(`', '`)}'`);return this._lifeCycleHooks[e]?this._life
17
17
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
18
18
  - ${t?`searched for local subcommand relative to directory '${t}'`:`no directory for search for local subcommand, use .executableDir() to supply a custom directory`}`;throw Error(r)}_executeSubCommand(e,t){t=t.slice();let o=!1,s=[`.js`,`.ts`,`.tsx`,`.mjs`,`.cjs`];function l(e,t){let n=r.resolve(e,t);if(i.existsSync(n))return n;if(s.includes(r.extname(t)))return;let a=s.find(e=>i.existsSync(`${n}${e}`));if(a)return`${n}${a}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let u=e._executableFile||`${this._name}-${e._name}`,d=this._executableDir||``;if(this._scriptPath){let e;try{e=i.realpathSync(this._scriptPath)}catch{e=this._scriptPath}d=r.resolve(r.dirname(e),d)}if(d){let t=l(d,u);if(!t&&!e._executableFile&&this._scriptPath){let n=r.basename(this._scriptPath,r.extname(this._scriptPath));n!==this._name&&(t=l(d,`${n}-${e._name}`))}u=t||u}o=s.includes(r.extname(u));let f;a.platform===`win32`?(this._checkForMissingExecutable(u,d,e._name),t.unshift(u),t=h(a.execArgv).concat(t),f=n.spawn(a.execPath,t,{stdio:`inherit`})):o?(t.unshift(u),t=h(a.execArgv).concat(t),f=n.spawn(a.argv[0],t,{stdio:`inherit`})):f=n.spawn(u,t,{stdio:`inherit`}),f.killed||[`SIGUSR1`,`SIGUSR2`,`SIGTERM`,`SIGINT`,`SIGHUP`].forEach(e=>{a.on(e,()=>{f.killed===!1&&f.exitCode===null&&f.kill(e)})});let p=this._exitCallback;f.on(`close`,e=>{e??=1,p?p(new c(e,`commander.executeSubCommandAsync`,`(close)`)):a.exit(e)}),f.on(`error`,t=>{if(t.code===`ENOENT`)this._checkForMissingExecutable(u,d,e._name);else if(t.code===`EACCES`)throw Error(`'${u}' not executable`);if(!p)a.exit(1);else{let e=new c(1,`commander.executeSubCommandAsync`,`(error)`);e.nestedError=t,p(e)}}),this.runningCommand=f}_dispatchSubcommand(e,t,n){let r=this._findCommand(e);r||this.help({error:!0}),r._prepareForParse();let i;return i=this._chainOrCallSubCommandHook(i,r,`preSubcommand`),i=this._chainOrCall(i,()=>{if(r._executableHandler)this._executeSubCommand(r,t.concat(n));else return r._parseCommand(t,n)}),i}_dispatchHelpCommand(e){e||this.help();let t=this._findCommand(e);return t&&!t._executableHandler&&t.help(),this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??`--help`])}_checkNumberOfArguments(){this.registeredArguments.forEach((e,t)=>{e.required&&this.args[t]==null&&this.missingArgument(e.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let e=(e,t,n)=>{let r=t;if(t!==null&&e.parseArg){let i=`error: command-argument value '${t}' is invalid for argument '${e.name()}'.`;r=this._callParseArg(e,t,n,i)}return r};this._checkNumberOfArguments();let t=[];this.registeredArguments.forEach((n,r)=>{let i=n.defaultValue;n.variadic?r<this.args.length?(i=this.args.slice(r),n.parseArg&&(i=i.reduce((t,r)=>e(n,r,t),n.defaultValue))):i===void 0&&(i=[]):r<this.args.length&&(i=this.args[r],n.parseArg&&(i=e(n,i,n.defaultValue))),t[r]=i}),this.processedArgs=t}_chainOrCall(e,t){return e?.then&&typeof e.then==`function`?e.then(()=>t()):t()}_chainOrCallHooks(e,t){let n=e,r=[];return this._getCommandAndAncestors().reverse().filter(e=>e._lifeCycleHooks[t]!==void 0).forEach(e=>{e._lifeCycleHooks[t].forEach(t=>{r.push({hookedCommand:e,callback:t})})}),t===`postAction`&&r.reverse(),r.forEach(e=>{n=this._chainOrCall(n,()=>e.callback(e.hookedCommand,this))}),n}_chainOrCallSubCommandHook(e,t,n){let r=e;return this._lifeCycleHooks[n]!==void 0&&this._lifeCycleHooks[n].forEach(e=>{r=this._chainOrCall(r,()=>e(this,t))}),r}_parseCommand(e,t){let n=this.parseOptions(t);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(n.operands),t=n.unknown,this.args=e.concat(t),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),t);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(t),this._dispatchSubcommand(this._defaultCommandName,e,t);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(n.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let r=()=>{n.unknown.length>0&&this.unknownOption(n.unknown[0])},i=`command:${this.name()}`;if(this._actionHandler){r(),this._processArguments();let n;return n=this._chainOrCallHooks(n,`preAction`),n=this._chainOrCall(n,()=>this._actionHandler(this.processedArgs)),this.parent&&(n=this._chainOrCall(n,()=>{this.parent.emit(i,e,t)})),n=this._chainOrCallHooks(n,`postAction`),n}if(this.parent?.listenerCount(i))r(),this._processArguments(),this.parent.emit(i,e,t);else if(e.length){if(this._findCommand(`*`))return this._dispatchSubcommand(`*`,e,t);this.listenerCount(`command:*`)?this.emit(`command:*`,e,t):this.commands.length?this.unknownCommand():(r(),this._processArguments())}else this.commands.length?(r(),this.help({error:!0})):(r(),this._processArguments())}_findCommand(e){if(e)return this.commands.find(t=>t._name===e||t._aliases.includes(e))}_findOption(e){return this.options.find(t=>t.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(e=>{e.options.forEach(t=>{t.mandatory&&e.getOptionValue(t.attributeName())===void 0&&e.missingMandatoryOptionValue(t)})})}_checkForConflictingLocalOptions(){let e=this.options.filter(e=>{let t=e.attributeName();return this.getOptionValue(t)===void 0?!1:this.getOptionValueSource(t)!==`default`});e.filter(e=>e.conflictsWith.length>0).forEach(t=>{let n=e.find(e=>t.conflictsWith.includes(e.attributeName()));n&&this._conflictingOption(t,n)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(e=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let t=[],n=[],r=t;function i(e){return e.length>1&&e[0]===`-`}let a=e=>/^-\d*\.?\d+(e[+-]?\d+)?$/.test(e)?!this._getCommandAndAncestors().some(e=>e.options.map(e=>e.short).some(e=>/^-\d$/.test(e))):!1,o=null,s=null,c=0;for(;c<e.length||s;){let l=s??e[c++];if(s=null,l===`--`){r===n&&r.push(l),r.push(...e.slice(c));break}if(o&&(!i(l)||a(l))){this.emit(`option:${o.name()}`,l);continue}if(o=null,i(l)){let t=this._findOption(l);if(t){if(t.required){let n=e[c++];n===void 0&&this.optionMissingArgument(t),this.emit(`option:${t.name()}`,n)}else if(t.optional){let n=null;c<e.length&&(!i(e[c])||a(e[c]))&&(n=e[c++]),this.emit(`option:${t.name()}`,n)}else this.emit(`option:${t.name()}`);o=t.variadic?t:null;continue}}if(l.length>2&&l[0]===`-`&&l[1]!==`-`){let e=this._findOption(`-${l[1]}`);if(e){e.required||e.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${e.name()}`,l.slice(2)):(this.emit(`option:${e.name()}`),s=`-${l.slice(2)}`);continue}}if(/^--[^=]+=/.test(l)){let e=l.indexOf(`=`),t=this._findOption(l.slice(0,e));if(t&&(t.required||t.optional)){this.emit(`option:${t.name()}`,l.slice(e+1));continue}}if(r===t&&i(l)&&!(this.commands.length===0&&a(l))&&(r=n),(this._enablePositionalOptions||this._passThroughOptions)&&t.length===0&&n.length===0){if(this._findCommand(l)){t.push(l),n.push(...e.slice(c));break}else if(this._getHelpCommand()&&l===this._getHelpCommand().name()){t.push(l,...e.slice(c));break}else if(this._defaultCommandName){n.push(l,...e.slice(c));break}}if(this._passThroughOptions){r.push(l,...e.slice(c));break}r.push(l)}return{operands:t,unknown:n}}opts(){if(this._storeOptionsAsProperties){let e={},t=this.options.length;for(let n=0;n<t;n++){let t=this.options[n].attributeName();e[t]=t===this._versionOptionName?this._version:this[t]}return e}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((e,t)=>Object.assign(e,t.opts()),{})}error(e,t){this._outputConfiguration.outputError(`${e}\n`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==`string`?this._outputConfiguration.writeErr(`${this._showHelpAfterError}\n`):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
19
19
  `),this.outputHelp({error:!0}));let n=t||{},r=n.exitCode||1,i=n.code||`commander.error`;this._exit(r,i,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in a.env){let t=e.attributeName();(this.getOptionValue(t)===void 0||[`default`,`config`,`env`].includes(this.getOptionValueSource(t)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,a.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new f(this.options),t=e=>this.getOptionValue(e)!==void 0&&![`default`,`implied`].includes(this.getOptionValueSource(e));this.options.filter(n=>n.implied!==void 0&&t(n.attributeName())&&e.valueFromOption(this.getOptionValue(n.attributeName()),n)).forEach(e=>{Object.keys(e.implied).filter(e=>!t(e)).forEach(t=>{this.setOptionValueWithSource(t,e.implied[t],`implied`)})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:`commander.missingArgument`})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:`commander.optionMissingArgument`})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:`commander.missingMandatoryOptionValue`})}_conflictingOption(e,t){let n=e=>{let t=e.attributeName(),n=this.getOptionValue(t),r=this.options.find(e=>e.negate&&t===e.attributeName()),i=this.options.find(e=>!e.negate&&t===e.attributeName());return r&&(r.presetArg===void 0&&n===!1||r.presetArg!==void 0&&n===r.presetArg)?r:i||e},r=e=>{let t=n(e),r=t.attributeName();return this.getOptionValueSource(r)===`env`?`environment variable '${t.envVar}'`:`option '${t.flags}'`},i=`error: ${r(e)} cannot be used with ${r(t)}`;this.error(i,{code:`commander.conflictingOption`})}unknownOption(e){if(this._allowUnknownOption)return;let t=``;if(e.startsWith(`--`)&&this._showSuggestionAfterError){let n=[],r=this;do{let e=r.createHelp().visibleOptions(r).filter(e=>e.long).map(e=>e.long);n=n.concat(e),r=r.parent}while(r&&!r._enablePositionalOptions);t=p(e,n)}let n=`error: unknown option '${e}'${t}`;this.error(n,{code:`commander.unknownOption`})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this.registeredArguments.length,n=t===1?``:`s`,r=`error: too many arguments${this.parent?` for '${this.name()}'`:``}. Expected ${t} argument${n} but got ${e.length}.`;this.error(r,{code:`commander.excessArguments`})}unknownCommand(){let e=this.args[0],t=``;if(this._showSuggestionAfterError){let n=[];this.createHelp().visibleCommands(this).forEach(e=>{n.push(e.name()),e.alias()&&n.push(e.alias())}),t=p(e,n)}let n=`error: unknown command '${e}'${t}`;this.error(n,{code:`commander.unknownCommand`})}version(e,t,n){if(e===void 0)return this._version;this._version=e,t||=`-V, --version`,n||=`output the version number`;let r=this.createOption(t,n);return this._versionOptionName=r.attributeName(),this._registerOption(r),this.on(`option:`+r.name(),()=>{this._outputConfiguration.writeOut(`${e}\n`),this._exit(0,`commander.version`,e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw Error(`Command alias can't be the same as its name`);let n=this.parent?._findCommand(e);if(n){let t=[n.name()].concat(n.aliases()).join(`|`);throw Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${t}'`)}return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(e=>this.alias(e)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let e=this.registeredArguments.map(e=>s(e));return[].concat(this.options.length||this._helpOption!==null?`[options]`:[],this.commands.length?`[command]`:[],this.registeredArguments.length?e:[]).join(` `)}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}helpGroup(e){return e===void 0?this._helpGroupHeading??``:(this._helpGroupHeading=e,this)}commandsGroup(e){return e===void 0?this._defaultCommandGroup??``:(this._defaultCommandGroup=e,this)}optionsGroup(e){return e===void 0?this._defaultOptionGroup??``:(this._defaultOptionGroup=e,this)}_initOptionGroup(e){this._defaultOptionGroup&&!e.helpGroupHeading&&e.helpGroup(this._defaultOptionGroup)}_initCommandGroup(e){this._defaultCommandGroup&&!e.helpGroup()&&e.helpGroup(this._defaultCommandGroup)}nameFromFilename(e){return this._name=r.basename(e,r.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp(),n=this._getOutputContext(e);t.prepareContext({error:n.error,helpWidth:n.helpWidth,outputHasColors:n.hasColors});let r=t.formatHelp(this,t);return n.hasColors?r:this._outputConfiguration.stripColor(r)}_getOutputContext(e){e||={};let t=!!e.error,n,r,i;return t?(n=e=>this._outputConfiguration.writeErr(e),r=this._outputConfiguration.getErrHasColors(),i=this._outputConfiguration.getErrHelpWidth()):(n=e=>this._outputConfiguration.writeOut(e),r=this._outputConfiguration.getOutHasColors(),i=this._outputConfiguration.getOutHelpWidth()),{error:t,write:e=>(r||(e=this._outputConfiguration.stripColor(e)),n(e)),hasColors:r,helpWidth:i}}outputHelp(e){let t;typeof e==`function`&&(t=e,e=void 0);let n=this._getOutputContext(e),r={error:n.error,write:n.write,command:this};this._getCommandAndAncestors().reverse().forEach(e=>e.emit(`beforeAllHelp`,r)),this.emit(`beforeHelp`,r);let i=this.helpInformation({error:n.error});if(t&&(i=t(i),typeof i!=`string`&&!Buffer.isBuffer(i)))throw Error(`outputHelp callback must return a string or a Buffer`);n.write(i),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit(`afterHelp`,r),this._getCommandAndAncestors().forEach(e=>e.emit(`afterAllHelp`,r))}helpOption(e,t){return typeof e==`boolean`?(e?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(e??`-h, --help`,t??`display help for command`),(e||t)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(e){return this._helpOption=e,this._initOptionGroup(e),this}help(e){this.outputHelp(e);let t=Number(a.exitCode??0);t===0&&e&&typeof e!=`function`&&e.error&&(t=1),this._exit(t,`commander.help`,`(outputHelp)`)}addHelpText(e,t){let n=[`beforeAll`,`before`,`after`,`afterAll`];if(!n.includes(e))throw Error(`Unexpected value for position to addHelpText.
20
- Expecting one of '${n.join(`', '`)}'`);let r=`${e}Help`;return this.on(r,e=>{let n;n=typeof t==`function`?t({error:e.error,command:e.command}):t,n&&e.write(`${n}\n`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(e=>t.is(e))&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function h(e){return e.map(e=>{if(!e.startsWith(`--inspect`))return e;let t,n=`127.0.0.1`,r=`9229`,i;return(i=e.match(/^(--inspect(-brk)?)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],r=i[4]):(t=i[1],/^\d+$/.test(i[3])?r=i[3]:n=i[3]):t=i[1],t&&r!==`0`?`${t}=${n}:${parseInt(r)+1}`:e})}function g(){if(a.env.NO_COLOR||a.env.FORCE_COLOR===`0`||a.env.FORCE_COLOR===`false`)return!1;if(a.env.FORCE_COLOR||a.env.CLICOLOR_FORCE!==void 0)return!0}e.Command=m,e.useColor=g}));const{program:ne,createCommand:N,createArgument:P,createOption:F,CommanderError:I,InvalidArgumentError:re,InvalidOptionArgumentError:ie,Command:L,Argument:R,Option:ae,Help:z}=u(s((e=>{let{Argument:t}=A(),{Command:n}=M(),{CommanderError:r,InvalidArgumentError:i}=k(),{Help:a}=ee(),{Option:o}=j();e.program=new n,e.createCommand=e=>new n(e),e.createOption=(e,t)=>new o(e,t),e.createArgument=(e,n)=>new t(e,n),e.Command=n,e.Option=o,e.Argument=t,e.Help=a,e.CommanderError=r,e.InvalidArgumentError=i,e.InvalidOptionArgumentError=i}))(),1).default;var oe=`2.4.0`,se=s((e=>{let t=e=>e!=null,n=e=>typeof e==`object`&&!!e,r=e=>Array.isArray(e),i=e=>e instanceof Map,a=e=>e instanceof Set,o=e=>e instanceof Date,s=e=>typeof e==`number`,c=e=>typeof e==`string`,l=e=>typeof e==`boolean`,u=e=>e instanceof Error,d=e=>t(e)?c(e)||r(e)?e.length===0:i(e)||a(e)?e.size===0:o(e)?!1:n(e)?Object.keys(e).length===0:!1:!0,f=e=>u(e)?e.message:`error is not Instance of Error`,p=(e,t)=>{let n=new Set(e);for(let e of n)t.includes(e)||n.delete(e);return[...n]},m=async(e,t)=>{let n=await Promise.all(e.map(e=>t(e)));return e.filter((e,t)=>n[t])},h=(e,t)=>{let n=[];for(let r of e)n.some(e=>t(r,e))||n.push(r);return n},g=e=>[...new Set(e)],_=async e=>Promise.all(e.map(e=>new Promise((t,n)=>e().then(e=>e?t(e):n(e)).catch(e=>n(e))))).then(()=>!0).catch(e=>{if(!l(e))throw e;return e}),v=e=>e.trim().replaceAll(/([\da-z])([A-Z])/g,`$1-$2`).replaceAll(/([A-Z])([A-Z][\da-z])/g,`$1-$2`).replaceAll(/[\s_]+/g,`-`).toLowerCase(),y=e=>e.replaceAll(/[\s-]+/g,` `).split(` `).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``),b=e=>{let t=0;for(let n=0;n<e.length;n++){let r=e.codePointAt(n)??0;t=Math.trunc(t*31+r)}return t>>>0},x=(...e)=>{let n={};for(let r of e)for(let e in r)t(r[e])&&(n[e]=r[e]);return n},S=(e,t)=>r(e)?e.map(e=>S(e,t)):n(e)?Object.fromEntries(Object.entries(e).filter(([e])=>!t.includes(e)).map(([e,n])=>[e,S(n,t)])):e,C=(e,t)=>{let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>e(...r),t)}},w=(e,t)=>{let n=!1;return(...r)=>{n||(e(...r),n=!0,setTimeout(()=>{n=!1},t))}};var T=class{listeners=[];addListener(e){this.listeners.push(e)}notifyAll(e){for(let t of this.listeners)t(e)}clear(){this.listeners.length=0}},E=class{set=new Set;constructor(e=[]){for(let t of e)this.safeAdd(t)}safeAdd(e){return t(e)?(this.set.add(e),!0):!1}has(e){return t(e)?this.set.has(e):!1}delete(e){return t(e)?this.set.delete(e):!1}clear(){this.set.clear()}get size(){return this.set.size}values(){return this.set.values()}toSet(){return structuredClone(this.set)}[Symbol.iterator](){return this.set[Symbol.iterator]()}concatSet(e){for(let t of e)this.safeAdd(t)}};e.Observer=T,e.SafeSet=E,e.arePromiseFnsTruthy=_,e.debounce=C,e.fastHash=b,e.filterAsync=m,e.getErrorMessage=f,e.intersection=p,e.isArray=r,e.isBoolean=l,e.isDate=o,e.isDefined=t,e.isEmpty=d,e.isError=u,e.isMap=i,e.isNumber=s,e.isObject=n,e.isSet=a,e.isString=c,e.merge=x,e.removeNestedField=S,e.throttle=w,e.toCamelCase=y,e.toKebabCase=v,e.uniq=g,e.uniqWith=h})),B=se();function ce(e,t,n,{key:r=``,prefix:i=`EARLY`,parser:a,def:o,isRequired:s=!1,envName:c}={}){let l=new ae(t,n);a&&l.argParser(a),s&&l.makeOptionMandatory(!0);let u=c??(()=>{let n=[];for(let t=e;t&&(0,B.isDefined)(t.name());t=t.parent)t.parent&&n.unshift(t.name());return[i,...n,r||t.split(/[ ,|]/)[1].replace(/^--?/,``)].join(`_`).replaceAll(/[- ]/g,`_`).toUpperCase()})();return l.env(u),(0,B.isDefined)(o)&&l.default(o),e.addOption(l),l}function le(e){return(typeof e==`object`&&!!e||typeof e==`function`)&&typeof e.then==`function`}function ue(e){switch(typeof e){case`string`:case`symbol`:return e.toString();case`function`:return e.name;default:throw Error(`Unexpected ${typeof e} service id type`)}}const de=Symbol.for(`@inversifyjs/common/islazyServiceIdentifier`);var fe=class{[de];#e;constructor(e){this.#e=e,this[de]=!0}static is(e){return typeof e==`object`&&!!e&&!0===e[de]}unwrap(){return this.#e()}};function pe(e,t,n){return Reflect.getOwnMetadata(t,e,n)}function me(e,t,n,r){Reflect.defineMetadata(t,n,e,r)}function he(e,t,n,r,i){let a=r(pe(e,t,i)??n());Reflect.defineMetadata(t,a,e,i)}function ge(e){return Object.getPrototypeOf(e.prototype)?.constructor}const _e=`@inversifyjs/container/bindingId`;function ve(){let e=pe(Object,_e)??0;return e===2**53-1?me(Object,_e,-(2**53-1)):he(Object,_e,()=>e,e=>e+1),e}const ye={Request:`Request`,Singleton:`Singleton`,Transient:`Transient`},be={ConstantValue:`ConstantValue`,DynamicValue:`DynamicValue`,Factory:`Factory`,Instance:`Instance`,Provider:`Provider`,ResolvedValue:`ResolvedValue`,ServiceRedirection:`ServiceRedirection`};function*xe(...e){for(let t of e)yield*t}var Se=class e{#e;#t;#n;constructor(e){this.#e=new Map,this.#t={};for(let t of Reflect.ownKeys(e))this.#t[t]=new Map;this.#n=e}add(e,t){this.#a(e).push(t);for(let n of Reflect.ownKeys(t))this.#o(n,t[n]).push(e)}clone(){let e=this.#r(),t=this.#i(),n=Reflect.ownKeys(this.#n),r=this._buildNewInstance(this.#n);this.#u(this.#e,r.#e,e,t);for(let t of n)this.#l(this.#t[t],r.#t[t],e);return r}get(e,t){return this.#t[e].get(t)}getAllKeys(e){return this.#t[e].keys()}removeByRelation(e,t){let n=this.get(e,t);if(n===void 0)return;let r=new Set(n);for(let n of r){let r=this.#e.get(n);if(r===void 0)throw Error(`Expecting model relation, none found`);for(let i of r)i[e]===t&&this.#d(n,i);this.#e.delete(n)}}_buildNewInstance(t){return new e(t)}_cloneModel(e){return e}_cloneRelation(e){return e}#r(){let e=new Map;for(let t of this.#e.keys()){let n=this._cloneModel(t);e.set(t,n)}return e}#i(){let e=new Map;for(let t of this.#e.values())for(let n of t){let t=this._cloneRelation(n);e.set(n,t)}return e}#a(e){let t=this.#e.get(e);return t===void 0&&(t=[],this.#e.set(e,t)),t}#o(e,t){let n=this.#t[e].get(t);return n===void 0&&(n=[],this.#t[e].set(t,n)),n}#s(e,t){let n=t.get(e);if(n===void 0)throw Error(`Expecting model to be cloned, none found`);return n}#c(e,t){let n=t.get(e);if(n===void 0)throw Error(`Expecting relation to be cloned, none found`);return n}#l(e,t,n){for(let[r,i]of e){let e=[];for(let t of i)e.push(this.#s(t,n));t.set(r,e)}}#u(e,t,n,r){for(let[i,a]of e){let e=[];for(let t of a)e.push(this.#c(t,r));t.set(this.#s(i,n),e)}}#d(e,t){for(let n of Reflect.ownKeys(t))this.#f(e,n,t[n])}#f(e,t,n){let r=this.#t[t].get(n);if(r!==void 0){let i=r.indexOf(e);i!==-1&&r.splice(i,1),r.length===0&&this.#t[t].delete(n)}}},Ce;(function(e){e.moduleId=`moduleId`,e.serviceId=`serviceId`})(Ce||={});var we=class e{#e;#t;constructor(e,t){this.#e=t??new Se({moduleId:{isOptional:!0},serviceId:{isOptional:!1}}),this.#t=e}static build(t){return new e(t)}add(e,t){this.#e.add(e,t)}clone(){return new e(this.#t,this.#e.clone())}get(e){let t=[],n=this.#e.get(Ce.serviceId,e);n!==void 0&&t.push(n);let r=this.#t()?.get(e);if(r!==void 0&&t.push(r),t.length!==0)return xe(...t)}removeAllByModuleId(e){this.#e.removeByRelation(Ce.moduleId,e)}removeAllByServiceId(e){this.#e.removeByRelation(Ce.serviceId,e)}};const Te=`@inversifyjs/core/classMetadataReflectKey`;function Ee(){return{constructorArguments:[],lifecycle:{postConstructMethodNames:new Set,preDestroyMethodNames:new Set},properties:new Map,scope:void 0}}const De=`@inversifyjs/core/pendingClassMetadataCountReflectKey`,Oe=Symbol.for(`@inversifyjs/core/InversifyCoreError`);var ke=class e extends Error{[Oe];kind;constructor(e,t,n){super(t,n),this[Oe]=!0,this.kind=e}static is(e){return typeof e==`object`&&!!e&&!0===e[Oe]}static isErrorOfKind(t,n){return e.is(t)&&t.kind===n}},Ae,je,Me,Ne,Pe;function Fe(e){let t=pe(e,Te)??Ee();if(!function(e){let t=pe(e,De);return t!==void 0&&t!==0}(e))return function(e,t){let n=[];if(t.length<e.length)throw new ke(Ae.missingInjectionDecorator,`Found unexpected missing metadata on type "${e.name}". "${e.name}" constructor requires at least ${e.length.toString()} arguments, found ${t.length.toString()} instead.\nAre you using @inject, @multiInject or @unmanaged decorators in every non optional constructor argument?\n\nIf you're using typescript and want to rely on auto injection, set "emitDecoratorMetadata" compiler option to true`);for(let e=0;e<t.length;++e)t[e]===void 0&&n.push(e);if(n.length>0)throw new ke(Ae.missingInjectionDecorator,`Found unexpected missing metadata on type "${e.name}" at constructor indexes "${n.join(`", "`)}".\n\nAre you using @inject, @multiInject or @unmanaged decorators at those indexes?\n\nIf you're using typescript and want to rely on auto injection, set "emitDecoratorMetadata" compiler option to true`)}(e,t.constructorArguments),t;(function(e,t){let n=[];for(let r=0;r<t.constructorArguments.length;++r){let i=t.constructorArguments[r];i!==void 0&&i.kind!==je.unknown||n.push(` - Missing or incomplete metadata for type "${e.name}" at constructor argument with index ${r.toString()}.\nEvery constructor parameter must be decorated either with @inject, @multiInject or @unmanaged decorator.`)}for(let[r,i]of t.properties)i.kind===je.unknown&&n.push(` - Missing or incomplete metadata for type "${e.name}" at property "${r.toString()}".\nThis property must be decorated either with @inject or @multiInject decorator.`);throw n.length===0?new ke(Ae.unknown,`Unexpected class metadata for type "${e.name}" with uncompletion traces.\nThis might be caused by one of the following reasons:\n\n1. A third party library is targeting inversify reflection metadata.\n2. A bug is causing the issue. Consider submiting an issue to fix it.`):new ke(Ae.missingInjectionDecorator,`Invalid class metadata at type ${e.name}:\n\n${n.join(`
20
+ Expecting one of '${n.join(`', '`)}'`);let r=`${e}Help`;return this.on(r,e=>{let n;n=typeof t==`function`?t({error:e.error,command:e.command}):t,n&&e.write(`${n}\n`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(e=>t.is(e))&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function h(e){return e.map(e=>{if(!e.startsWith(`--inspect`))return e;let t,n=`127.0.0.1`,r=`9229`,i;return(i=e.match(/^(--inspect(-brk)?)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],r=i[4]):(t=i[1],/^\d+$/.test(i[3])?r=i[3]:n=i[3]):t=i[1],t&&r!==`0`?`${t}=${n}:${parseInt(r)+1}`:e})}function g(){if(a.env.NO_COLOR||a.env.FORCE_COLOR===`0`||a.env.FORCE_COLOR===`false`)return!1;if(a.env.FORCE_COLOR||a.env.CLICOLOR_FORCE!==void 0)return!0}e.Command=m,e.useColor=g}));const{program:ne,createCommand:N,createArgument:P,createOption:F,CommanderError:I,InvalidArgumentError:re,InvalidOptionArgumentError:ie,Command:L,Argument:R,Option:ae,Help:z}=u(s((e=>{let{Argument:t}=A(),{Command:n}=M(),{CommanderError:r,InvalidArgumentError:i}=k(),{Help:a}=ee(),{Option:o}=j();e.program=new n,e.createCommand=e=>new n(e),e.createOption=(e,t)=>new o(e,t),e.createArgument=(e,n)=>new t(e,n),e.Command=n,e.Option=o,e.Argument=t,e.Help=a,e.CommanderError=r,e.InvalidArgumentError=i,e.InvalidOptionArgumentError=i}))(),1).default;var oe=`2.4.2`,se=s((e=>{let t=e=>e!=null,n=e=>typeof e==`object`&&!!e,r=e=>Array.isArray(e),i=e=>e instanceof Map,a=e=>e instanceof Set,o=e=>e instanceof Date,s=e=>typeof e==`number`,c=e=>typeof e==`string`,l=e=>typeof e==`boolean`,u=e=>e instanceof Error,d=e=>t(e)?c(e)||r(e)?e.length===0:i(e)||a(e)?e.size===0:o(e)?!1:n(e)?Object.keys(e).length===0:!1:!0,f=e=>u(e)?e.message:`error is not Instance of Error`,p=(e,t)=>{let n=new Set(e);for(let e of n)t.includes(e)||n.delete(e);return[...n]},m=async(e,t)=>{let n=await Promise.all(e.map(e=>t(e)));return e.filter((e,t)=>n[t])},h=(e,t)=>{let n=[];for(let r of e)n.some(e=>t(r,e))||n.push(r);return n},g=e=>[...new Set(e)],_=async e=>Promise.all(e.map(e=>new Promise((t,n)=>e().then(e=>e?t(e):n(e)).catch(e=>n(e))))).then(()=>!0).catch(e=>{if(!l(e))throw e;return e}),v=e=>e.trim().replaceAll(/([\da-z])([A-Z])/g,`$1-$2`).replaceAll(/([A-Z])([A-Z][\da-z])/g,`$1-$2`).replaceAll(/[\s_]+/g,`-`).toLowerCase(),y=e=>e.replaceAll(/[\s-]+/g,` `).split(` `).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``),b=e=>{let t=0;for(let n=0;n<e.length;n++){let r=e.codePointAt(n)??0;t=Math.trunc(t*31+r)}return t>>>0},x=(...e)=>{let n={};for(let r of e)for(let e in r)t(r[e])&&(n[e]=r[e]);return n},S=(e,t)=>r(e)?e.map(e=>S(e,t)):n(e)?Object.fromEntries(Object.entries(e).filter(([e])=>!t.includes(e)).map(([e,n])=>[e,S(n,t)])):e,C=(e,t)=>{let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>e(...r),t)}},w=(e,t)=>{let n=!1;return(...r)=>{n||(e(...r),n=!0,setTimeout(()=>{n=!1},t))}};var T=class{listeners=[];addListener(e){this.listeners.push(e)}notifyAll(e){for(let t of this.listeners)t(e)}clear(){this.listeners.length=0}},E=class{set=new Set;constructor(e=[]){for(let t of e)this.safeAdd(t)}safeAdd(e){return t(e)?(this.set.add(e),!0):!1}has(e){return t(e)?this.set.has(e):!1}delete(e){return t(e)?this.set.delete(e):!1}clear(){this.set.clear()}get size(){return this.set.size}values(){return this.set.values()}toSet(){return structuredClone(this.set)}[Symbol.iterator](){return this.set[Symbol.iterator]()}concatSet(e){for(let t of e)this.safeAdd(t)}};e.Observer=T,e.SafeSet=E,e.arePromiseFnsTruthy=_,e.debounce=C,e.fastHash=b,e.filterAsync=m,e.getErrorMessage=f,e.intersection=p,e.isArray=r,e.isBoolean=l,e.isDate=o,e.isDefined=t,e.isEmpty=d,e.isError=u,e.isMap=i,e.isNumber=s,e.isObject=n,e.isSet=a,e.isString=c,e.merge=x,e.removeNestedField=S,e.throttle=w,e.toCamelCase=y,e.toKebabCase=v,e.uniq=g,e.uniqWith=h})),B=se();function ce(e,t,n,{key:r=``,prefix:i=`EARLY`,parser:a,def:o,isRequired:s=!1,envName:c}={}){let l=new ae(t,n);a&&l.argParser(a),s&&l.makeOptionMandatory(!0);let u=c??(()=>{let n=[];for(let t=e;t&&(0,B.isDefined)(t.name());t=t.parent)t.parent&&n.unshift(t.name());return[i,...n,r||t.split(/[ ,|]/)[1].replace(/^--?/,``)].join(`_`).replaceAll(/[- ]/g,`_`).toUpperCase()})();return l.env(u),(0,B.isDefined)(o)&&l.default(o),e.addOption(l),l}function le(e){return(typeof e==`object`&&!!e||typeof e==`function`)&&typeof e.then==`function`}function ue(e){switch(typeof e){case`string`:case`symbol`:return e.toString();case`function`:return e.name;default:throw Error(`Unexpected ${typeof e} service id type`)}}const de=Symbol.for(`@inversifyjs/common/islazyServiceIdentifier`);var fe=class{[de];#e;constructor(e){this.#e=e,this[de]=!0}static is(e){return typeof e==`object`&&!!e&&!0===e[de]}unwrap(){return this.#e()}};function pe(e,t,n){return Reflect.getOwnMetadata(t,e,n)}function me(e,t,n,r){Reflect.defineMetadata(t,n,e,r)}function he(e,t,n,r,i){let a=r(pe(e,t,i)??n());Reflect.defineMetadata(t,a,e,i)}function ge(e){return Object.getPrototypeOf(e.prototype)?.constructor}const _e=`@inversifyjs/container/bindingId`;function ve(){let e=pe(Object,_e)??0;return e===2**53-1?me(Object,_e,-(2**53-1)):he(Object,_e,()=>e,e=>e+1),e}const ye={Request:`Request`,Singleton:`Singleton`,Transient:`Transient`},be={ConstantValue:`ConstantValue`,DynamicValue:`DynamicValue`,Factory:`Factory`,Instance:`Instance`,Provider:`Provider`,ResolvedValue:`ResolvedValue`,ServiceRedirection:`ServiceRedirection`};function*xe(...e){for(let t of e)yield*t}var Se=class e{#e;#t;#n;constructor(e){this.#e=new Map,this.#t={};for(let t of Reflect.ownKeys(e))this.#t[t]=new Map;this.#n=e}add(e,t){this.#a(e).push(t);for(let n of Reflect.ownKeys(t))this.#o(n,t[n]).push(e)}clone(){let e=this.#r(),t=this.#i(),n=Reflect.ownKeys(this.#n),r=this._buildNewInstance(this.#n);this.#u(this.#e,r.#e,e,t);for(let t of n)this.#l(this.#t[t],r.#t[t],e);return r}get(e,t){return this.#t[e].get(t)}getAllKeys(e){return this.#t[e].keys()}removeByRelation(e,t){let n=this.get(e,t);if(n===void 0)return;let r=new Set(n);for(let n of r){let r=this.#e.get(n);if(r===void 0)throw Error(`Expecting model relation, none found`);for(let i of r)i[e]===t&&this.#d(n,i);this.#e.delete(n)}}_buildNewInstance(t){return new e(t)}_cloneModel(e){return e}_cloneRelation(e){return e}#r(){let e=new Map;for(let t of this.#e.keys()){let n=this._cloneModel(t);e.set(t,n)}return e}#i(){let e=new Map;for(let t of this.#e.values())for(let n of t){let t=this._cloneRelation(n);e.set(n,t)}return e}#a(e){let t=this.#e.get(e);return t===void 0&&(t=[],this.#e.set(e,t)),t}#o(e,t){let n=this.#t[e].get(t);return n===void 0&&(n=[],this.#t[e].set(t,n)),n}#s(e,t){let n=t.get(e);if(n===void 0)throw Error(`Expecting model to be cloned, none found`);return n}#c(e,t){let n=t.get(e);if(n===void 0)throw Error(`Expecting relation to be cloned, none found`);return n}#l(e,t,n){for(let[r,i]of e){let e=[];for(let t of i)e.push(this.#s(t,n));t.set(r,e)}}#u(e,t,n,r){for(let[i,a]of e){let e=[];for(let t of a)e.push(this.#c(t,r));t.set(this.#s(i,n),e)}}#d(e,t){for(let n of Reflect.ownKeys(t))this.#f(e,n,t[n])}#f(e,t,n){let r=this.#t[t].get(n);if(r!==void 0){let i=r.indexOf(e);i!==-1&&r.splice(i,1),r.length===0&&this.#t[t].delete(n)}}},Ce;(function(e){e.moduleId=`moduleId`,e.serviceId=`serviceId`})(Ce||={});var we=class e{#e;#t;constructor(e,t){this.#e=t??new Se({moduleId:{isOptional:!0},serviceId:{isOptional:!1}}),this.#t=e}static build(t){return new e(t)}add(e,t){this.#e.add(e,t)}clone(){return new e(this.#t,this.#e.clone())}get(e){let t=[],n=this.#e.get(Ce.serviceId,e);n!==void 0&&t.push(n);let r=this.#t()?.get(e);if(r!==void 0&&t.push(r),t.length!==0)return xe(...t)}removeAllByModuleId(e){this.#e.removeByRelation(Ce.moduleId,e)}removeAllByServiceId(e){this.#e.removeByRelation(Ce.serviceId,e)}};const Te=`@inversifyjs/core/classMetadataReflectKey`;function Ee(){return{constructorArguments:[],lifecycle:{postConstructMethodNames:new Set,preDestroyMethodNames:new Set},properties:new Map,scope:void 0}}const De=`@inversifyjs/core/pendingClassMetadataCountReflectKey`,Oe=Symbol.for(`@inversifyjs/core/InversifyCoreError`);var ke=class e extends Error{[Oe];kind;constructor(e,t,n){super(t,n),this[Oe]=!0,this.kind=e}static is(e){return typeof e==`object`&&!!e&&!0===e[Oe]}static isErrorOfKind(t,n){return e.is(t)&&t.kind===n}},Ae,je,Me,Ne,Pe;function Fe(e){let t=pe(e,Te)??Ee();if(!function(e){let t=pe(e,De);return t!==void 0&&t!==0}(e))return function(e,t){let n=[];if(t.length<e.length)throw new ke(Ae.missingInjectionDecorator,`Found unexpected missing metadata on type "${e.name}". "${e.name}" constructor requires at least ${e.length.toString()} arguments, found ${t.length.toString()} instead.\nAre you using @inject, @multiInject or @unmanaged decorators in every non optional constructor argument?\n\nIf you're using typescript and want to rely on auto injection, set "emitDecoratorMetadata" compiler option to true`);for(let e=0;e<t.length;++e)t[e]===void 0&&n.push(e);if(n.length>0)throw new ke(Ae.missingInjectionDecorator,`Found unexpected missing metadata on type "${e.name}" at constructor indexes "${n.join(`", "`)}".\n\nAre you using @inject, @multiInject or @unmanaged decorators at those indexes?\n\nIf you're using typescript and want to rely on auto injection, set "emitDecoratorMetadata" compiler option to true`)}(e,t.constructorArguments),t;(function(e,t){let n=[];for(let r=0;r<t.constructorArguments.length;++r){let i=t.constructorArguments[r];i!==void 0&&i.kind!==je.unknown||n.push(` - Missing or incomplete metadata for type "${e.name}" at constructor argument with index ${r.toString()}.\nEvery constructor parameter must be decorated either with @inject, @multiInject or @unmanaged decorator.`)}for(let[r,i]of t.properties)i.kind===je.unknown&&n.push(` - Missing or incomplete metadata for type "${e.name}" at property "${r.toString()}".\nThis property must be decorated either with @inject or @multiInject decorator.`);throw n.length===0?new ke(Ae.unknown,`Unexpected class metadata for type "${e.name}" with uncompletion traces.\nThis might be caused by one of the following reasons:\n\n1. A third party library is targeting inversify reflection metadata.\n2. A bug is causing the issue. Consider submiting an issue to fix it.`):new ke(Ae.missingInjectionDecorator,`Invalid class metadata at type ${e.name}:\n\n${n.join(`
21
21
 
22
22
  `)}`)})(e,t)}function Ie(e,t){let n=Fe(t).scope??e.scope;return{cache:{isRight:!1,value:void 0},id:ve(),implementationType:t,isSatisfiedBy:()=>!0,moduleId:void 0,onActivation:void 0,onDeactivation:void 0,scope:n,serviceIdentifier:t,type:be.Instance}}function Le(e){return e.isRight?{isRight:!0,value:e.value}:e}function Re(e){switch(e.type){case be.ConstantValue:case be.DynamicValue:return function(e){return{cache:Le(e.cache),id:e.id,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type,value:e.value}}(e);case be.Factory:return function(e){return{cache:Le(e.cache),factory:e.factory,id:e.id,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type}}(e);case be.Instance:return function(e){return{cache:Le(e.cache),id:e.id,implementationType:e.implementationType,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type}}(e);case be.Provider:return function(e){return{cache:Le(e.cache),id:e.id,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,provider:e.provider,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type}}(e);case be.ResolvedValue:return function(e){return{cache:Le(e.cache),factory:e.factory,id:e.id,isSatisfiedBy:e.isSatisfiedBy,metadata:e.metadata,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type}}(e);case be.ServiceRedirection:return function(e){return{id:e.id,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,serviceIdentifier:e.serviceIdentifier,targetServiceIdentifier:e.targetServiceIdentifier,type:e.type}}(e)}}(function(e){e[e.injectionDecoratorConflict=0]=`injectionDecoratorConflict`,e[e.missingInjectionDecorator=1]=`missingInjectionDecorator`,e[e.planning=2]=`planning`,e[e.resolution=3]=`resolution`,e[e.unknown=4]=`unknown`})(Ae||={}),function(e){e[e.unknown=32]=`unknown`}(je||={}),function(e){e.id=`id`,e.moduleId=`moduleId`,e.serviceId=`serviceId`}(Me||={});var ze=class e extends Se{_buildNewInstance(t){return new e(t)}_cloneModel(e){return Re(e)}},Be=class e{#e;#t;#n;constructor(e,t,n){this.#t=n??new ze({id:{isOptional:!1},moduleId:{isOptional:!0},serviceId:{isOptional:!1}}),this.#n=e,this.#e=t}static build(t,n){return new e(t,n)}clone(){return new e(this.#n,this.#e,this.#t.clone())}get(e){let t=this.getNonParentBindings(e)??this.#n()?.get(e);if(t!==void 0)return t;let n=this.#r(e);return n===void 0?n:[n]}*getChained(e){let t=this.getNonParentBindings(e);t!==void 0&&(yield*t);let n=this.#n();if(n===void 0){if(t===void 0){let t=this.#r(e);t!==void 0&&(yield t)}}else yield*n.getChained(e)}getBoundServices(){let e=new Set(this.#t.getAllKeys(Me.serviceId)),t=this.#n();if(t!==void 0)for(let n of t.getBoundServices())e.add(n);return e}getById(e){return this.#t.get(Me.id,e)??this.#n()?.getById(e)}getByModuleId(e){return this.#t.get(Me.moduleId,e)??this.#n()?.getByModuleId(e)}getNonParentBindings(e){return this.#t.get(Me.serviceId,e)}getNonParentBoundServices(){return this.#t.getAllKeys(Me.serviceId)}removeById(e){this.#t.removeByRelation(Me.id,e)}removeAllByModuleId(e){this.#t.removeByRelation(Me.moduleId,e)}removeAllByServiceId(e){this.#t.removeByRelation(Me.serviceId,e)}set(e){let t={[Me.id]:e.id,[Me.serviceId]:e.serviceIdentifier};e.moduleId!==void 0&&(t[Me.moduleId]=e.moduleId),this.#t.add(e,t)}#r(e){if(this.#e===void 0||typeof e!=`function`)return;let t=Ie(this.#e,e);return this.set(t),t}};(function(e){e.moduleId=`moduleId`,e.serviceId=`serviceId`})(Ne||={});var Ve=class e{#e;#t;constructor(e,t){this.#e=t??new Se({moduleId:{isOptional:!0},serviceId:{isOptional:!1}}),this.#t=e}static build(t){return new e(t)}add(e,t){this.#e.add(e,t)}clone(){return new e(this.#t,this.#e.clone())}get(e){let t=[],n=this.#e.get(Ne.serviceId,e);n!==void 0&&t.push(n);let r=this.#t()?.get(e);if(r!==void 0&&t.push(r),t.length!==0)return xe(...t)}removeAllByModuleId(e){this.#e.removeByRelation(Ne.moduleId,e)}removeAllByServiceId(e){this.#e.removeByRelation(Ne.serviceId,e)}};function He(){return 0}function V(e){return t=>{t!==void 0&&t.kind===je.unknown&&he(e,De,He,e=>e-1)}}function Ue(e,t){return(...n)=>r=>{if(r===void 0)return e(...n);if(r.kind===Pe.unmanaged)throw new ke(Ae.injectionDecoratorConflict,`Unexpected injection found. Multiple @inject, @multiInject or @unmanaged decorators found`);return t(r,...n)}}function We(e){if(e.kind!==je.unknown&&!0!==e.isFromTypescriptParamType)throw new ke(Ae.injectionDecoratorConflict,`Unexpected injection found. Multiple @inject, @multiInject or @unmanaged decorators found`)}(function(e){e[e.multipleInjection=0]=`multipleInjection`,e[e.singleInjection=1]=`singleInjection`,e[e.unmanaged=2]=`unmanaged`})(Pe||={});const Ge=Ue(function(e,t,n){return e===Pe.multipleInjection?{chained:n?.chained??!1,kind:e,name:void 0,optional:!1,tags:new Map,value:t}:{kind:e,name:void 0,optional:!1,tags:new Map,value:t}},function(e,t,n,r){return We(e),t===Pe.multipleInjection?{...e,chained:r?.chained??!1,kind:t,value:n}:{...e,kind:t,value:n}});function Ke(e,t){return n=>{let r=n.properties.get(t);return n.properties.set(t,e(r)),n}}var qe;function Je(e,t,n,r){if(ke.isErrorOfKind(r,Ae.injectionDecoratorConflict)){let i=function(e,t,n){if(n===void 0){if(t===void 0)throw new ke(Ae.unknown,`Unexpected undefined property and index values`);return{kind:qe.property,property:t,targetClass:e.constructor}}return typeof n==`number`?{index:n,kind:qe.parameter,targetClass:e}:{kind:qe.method,method:t,targetClass:e}}(e,t,n);throw new ke(Ae.injectionDecoratorConflict,`Unexpected injection error.\n\nCause:\n\n${r.message}\n\nDetails\n\n${function(e){switch(e.kind){case qe.method:return`[class: "${e.targetClass.name}", method: "${e.method.toString()}"]`;case qe.parameter:return`[class: "${e.targetClass.name}", index: "${e.index.toString()}"]`;case qe.property:return`[class: "${e.targetClass.name}", property: "${e.property.toString()}"]`}}(i)}`,{cause:r})}throw r}function Ye(e,t){return(n,r,i)=>{try{i===void 0?function(e,t){let n=Xe(e,t);return(e,t)=>{he(e.constructor,Te,Ee,Ke(n(e),t))}}(e,t)(n,r):typeof i==`number`?function(e,t){let n=Xe(e,t);return(e,t,r)=>{if(!function(e,t){return typeof e==`function`&&t===void 0}(e,t))throw new ke(Ae.injectionDecoratorConflict,`Found an @inject decorator in a non constructor parameter.\nFound @inject decorator at method "${t?.toString()??``}" at class "${e.constructor.name}"`);he(e,Te,Ee,function(e,t){return n=>{let r=n.constructorArguments[t];return n.constructorArguments[t]=e(r),n}}(n(e),r))}}(e,t)(n,r,i):function(e,t){let n=Xe(e,t);return(e,t,r)=>{if(!function(e){return e.set!==void 0}(r))throw new ke(Ae.injectionDecoratorConflict,`Found an @inject decorator in a non setter property method.\nFound @inject decorator at method "${t.toString()}" at class "${e.constructor.name}"`);he(e.constructor,Te,Ee,Ke(n(e),t))}}(e,t)(n,r,i)}catch(e){Je(n,r,i,e)}}}function Xe(e,t){return n=>{let r=t(n);return t=>(r(t),e(t))}}function Ze(e){return Ye(Ge(Pe.singleInjection,e),V)}(function(e){e[e.method=0]=`method`,e[e.parameter=1]=`parameter`,e[e.property=2]=`property`})(qe||={});const Qe=`@inversifyjs/core/classIsInjectableFlagReflectKey`,H=[Array,BigInt,Boolean,Function,Number,Object,String];function $e(e){let t=pe(e,`design:paramtypes`);t!==void 0&&he(e,Te,Ee,function(e){return t=>(e.forEach((e,n)=>{var r;t.constructorArguments[n]!==void 0||(r=e,H.includes(r))||(t.constructorArguments[n]=function(e){return{isFromTypescriptParamType:!0,kind:Pe.singleInjection,name:void 0,optional:!1,tags:new Map,value:e}}(e))}),t)}(t))}function et(e){return t=>{(function(e){if(pe(e,Qe)!==void 0)throw new ke(Ae.injectionDecoratorConflict,`Cannot apply @injectable decorator multiple times at class "${e.name}"`);me(e,Qe,!0)})(t),$e(t),e!==void 0&&he(t,Te,Ee,t=>({...t,scope:e}))}}function tt(e,t,n){let r;return e.extendConstructorArguments??!0?(r=[...t.constructorArguments],n.constructorArguments.map((e,t)=>{r[t]=e})):r=n.constructorArguments,r}function nt(e,t,n){return e?new Set([...t,...n]):n}function rt(e,t,n){let r=e.lifecycle?.extendPostConstructMethods??!0,i=nt(e.lifecycle?.extendPreDestroyMethods??!0,t.lifecycle.preDestroyMethodNames,n.lifecycle.preDestroyMethodNames);return{postConstructMethodNames:nt(r,t.lifecycle.postConstructMethodNames,n.lifecycle.postConstructMethodNames),preDestroyMethodNames:i}}function it(e,t,n){let r;return r=e.extendProperties??!0?new Map(xe(t.properties,n.properties)):n.properties,r}function at(e){return t=>{he(t,Te,Ee,function(e,t){return n=>({constructorArguments:tt(e,t,n),lifecycle:rt(e,t,n),properties:it(e,t,n),scope:n.scope})}(e,Fe(e.type)))}}function ot(e){return t=>{let n=ge(t);if(n===void 0)throw new ke(Ae.injectionDecoratorConflict,`Expected base type for type "${t.name}", none found.`);at({...e,type:n})(t)}}function st(e){return t=>{let n=[],r=ge(t);for(;r!==void 0&&r!==Object;){let e=r;n.push(e),r=ge(e)}n.reverse();for(let r of n)at({...e,type:r})(t)}}function U(e){return t=>{t===void 0&&he(e,De,He,e=>e+1)}}function ct(e){return t=>{let n=t??{kind:je.unknown,name:void 0,optional:!1,tags:new Map};if(n.kind===Pe.unmanaged)throw new ke(Ae.injectionDecoratorConflict,`Unexpected injection found. Found @unmanaged injection with additional @named, @optional, @tagged or @targetName injections`);return e(n)}}function lt(e){if(e.optional)throw new ke(Ae.injectionDecoratorConflict,`Unexpected duplicated optional decorator`);return e.optional=!0,e}function ut(){return Ye(ct(lt),U)}var dt;function ft(e){return e instanceof Error?e instanceof RangeError&&/stack space|call stack|too much recursion/i.test(e.message)||e.name===`InternalError`&&/too much recursion/.test(e.message):!1}function pt(e,t){if(ft(t)){let n=function(e){let t=[...e];return t.length===0?`(No dependency trace)`:t.map(ue).join(` -> `)}(function(e){let t=new Set;for(let n of e.servicesBranch){if(t.has(n))return[...t,n];t.add(n)}return[...t]}(e));throw new ke(Ae.planning,`Circular dependency found: ${n}`,{cause:t})}throw t}(function(e){e[e.multipleInjection=0]=`multipleInjection`,e[e.singleInjection=1]=`singleInjection`})(dt||={});const mt=Symbol.for(`@inversifyjs/core/LazyPlanServiceNode`);var ht=class{[mt];_serviceIdentifier;_serviceNode;constructor(e,t){this[mt]=!0,this._serviceNode=e,this._serviceIdentifier=t}get bindings(){return this._getNode().bindings}get isContextFree(){return this._getNode().isContextFree}get serviceIdentifier(){return this._serviceIdentifier}set bindings(e){this._getNode().bindings=e}set isContextFree(e){this._getNode().isContextFree=e}static is(e){return typeof e==`object`&&!!e&&!0===e[mt]}invalidate(){this._serviceNode=void 0}isExpanded(){return this._serviceNode!==void 0}_getNode(){return this._serviceNode===void 0&&(this._serviceNode=this._buildPlanServiceNode()),this._serviceNode}},gt=class e{#e;constructor(e){this.#e=e}get name(){return this.#e.elem.name}get serviceIdentifier(){return this.#e.elem.serviceIdentifier}get tags(){return this.#e.elem.tags}getAncestor(){if(this.#e.elem.getAncestorsCalled=!0,this.#e.previous!==void 0)return new e(this.#e.previous)}};function _t(e,t,n){let r=n?.customServiceIdentifier??t.serviceIdentifier,i=(!0===n?.chained?[...e.operations.getBindingsChained(r)]:[...e.operations.getBindings(r)??[]]).filter(e=>e.isSatisfiedBy(t));if(i.length===0&&e.autobindOptions!==void 0&&typeof r==`function`){let n=Ie(e.autobindOptions,r);e.operations.setBinding(n),n.isSatisfiedBy(t)&&i.push(n)}return i}var vt=class e{last;constructor(e){this.last=e}concat(t){return new e({elem:t,previous:this.last})}[Symbol.iterator](){let e=this.last;return{next:()=>{if(e===void 0)return{done:!0,value:void 0};let t=e.elem;return e=e.previous,{done:!1,value:t}}}}};function yt(e){let t=new Map;return e.rootConstraints.tag!==void 0&&t.set(e.rootConstraints.tag.key,e.rootConstraints.tag.value),new vt({elem:{getAncestorsCalled:!1,name:e.rootConstraints.name,serviceIdentifier:e.rootConstraints.serviceIdentifier,tags:t},previous:void 0})}function bt(e){return e.redirections!==void 0}function xt(e,t,n,r){let i=n.elem.serviceIdentifier,a=n.previous?.elem.serviceIdentifier;Array.isArray(e)?function(e,t,n,r,i,a){if(e.length!==0){let t=`Ambiguous bindings found for service: "${ue(a[a.length-1]??n)}".${Tt(a)}\n\nRegistered bindings:\n\n${e.map(e=>function(e){switch(e.type){case be.Instance:return`[ type: "${e.type}", serviceIdentifier: "${ue(e.serviceIdentifier)}", scope: "${e.scope}", implementationType: "${e.implementationType.name}" ]`;case be.ServiceRedirection:return`[ type: "${e.type}", serviceIdentifier: "${ue(e.serviceIdentifier)}", redirection: "${ue(e.targetServiceIdentifier)}" ]`;default:return`[ type: "${e.type}", serviceIdentifier: "${ue(e.serviceIdentifier)}", scope: "${e.scope}" ]`}}(e.binding)).join(`
23
23
  `)}\n\nTrying to resolve bindings for "${Ct(n,r)}".${wt(i)}`;throw new ke(Ae.planning,t)}t||St(n,r,i,a)}(e,t,i,a,n.elem,r):function(e,t,n,r,i,a){e!==void 0||t||St(n,r,i,a)}(e,t,i,a,n.elem,r)}function St(e,t,n,r){let i=`No bindings found for service: "${ue(r[r.length-1]??e)}".\n\nTrying to resolve bindings for "${Ct(e,t)}".${Tt(r)}${wt(n)}`;throw new ke(Ae.planning,i)}function Ct(e,t){return t===void 0?`${ue(e)} (Root service)`:ue(t)}function wt(e){let t=e.tags.size===0?``:`\n- tags:\n - ${[...e.tags.keys()].map(e=>e.toString()).join(`
@@ -32002,7 +32002,7 @@ https://www.w3ctech.com/topic/2226`));let i=t(...r);return i.postcssPlugin=e,i.p
32002
32002
  `);let t=new x(`!xml`),n=t,r=``,i=``,a=new S(this.options.processEntities);for(let o=0;o<e.length;o++)if(e[o]===`<`)if(e[o+1]===`/`){let t=L(e,`>`,o,`Closing Tag is not closed.`),a=e.substring(o+2,t).trim();if(this.options.removeNSPrefix){let e=a.indexOf(`:`);e!==-1&&(a=a.substr(e+1))}this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&(r=this.saveTextToParentTag(r,n,i));let s=i.substring(i.lastIndexOf(`.`)+1);if(a&&this.options.unpairedTags.indexOf(a)!==-1)throw Error(`Unpaired tag can not be used as closing tag: </${a}>`);let c=0;s&&this.options.unpairedTags.indexOf(s)!==-1?(c=i.lastIndexOf(`.`,i.lastIndexOf(`.`)-1),this.tagsNodeStack.pop()):c=i.lastIndexOf(`.`),i=i.substring(0,c),n=this.tagsNodeStack.pop(),r=``,o=t}else if(e[o+1]===`?`){let t=R(e,o,!1,`?>`);if(!t)throw Error(`Pi Tag is not closed.`);if(r=this.saveTextToParentTag(r,n,i),!(this.options.ignoreDeclaration&&t.tagName===`?xml`||this.options.ignorePiTags)){let e=new x(t.tagName);e.add(this.options.textNodeName,``),t.tagName!==t.tagExp&&t.attrExpPresent&&(e[`:@`]=this.buildAttributesMap(t.tagExp,i,t.tagName)),this.addChild(n,e,i,o)}o=t.closeIndex+1}else if(e.substr(o+1,3)===`!--`){let t=L(e,`-->`,o+4,`Comment is not closed.`);if(this.options.commentPropName){let a=e.substring(o+4,t-2);r=this.saveTextToParentTag(r,n,i),n.add(this.options.commentPropName,[{[this.options.textNodeName]:a}])}o=t}else if(e.substr(o+1,2)===`!D`){let t=a.readDocType(e,o);this.docTypeEntities=t.entities,o=t.i}else if(e.substr(o+1,2)===`![`){let t=L(e,`]]>`,o,`CDATA is not closed.`)-2,a=e.substring(o+9,t);r=this.saveTextToParentTag(r,n,i);let s=this.parseTextData(a,n.tagname,i,!0,!1,!0,!0);s??=``,this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:a}]):n.add(this.options.textNodeName,s),o=t+2}else{let a=R(e,o,this.options.removeNSPrefix),s=a.tagName,c=a.rawTagName,l=a.tagExp,u=a.attrExpPresent,d=a.closeIndex;this.options.transformTagName&&(s=this.options.transformTagName(s)),n&&r&&n.tagname!==`!xml`&&(r=this.saveTextToParentTag(r,n,i,!1));let f=n;f&&this.options.unpairedTags.indexOf(f.tagname)!==-1&&(n=this.tagsNodeStack.pop(),i=i.substring(0,i.lastIndexOf(`.`))),s!==t.tagname&&(i+=i?`.`+s:s);let p=o;if(this.isItStopNode(this.stopNodesExact,this.stopNodesWildcard,i,s)){let t=``;if(l.length>0&&l.lastIndexOf(`/`)===l.length-1)s[s.length-1]===`/`?(s=s.substr(0,s.length-1),i=i.substr(0,i.length-1),l=s):l=l.substr(0,l.length-1),o=a.closeIndex;else if(this.options.unpairedTags.indexOf(s)!==-1)o=a.closeIndex;else{let n=this.readStopNodeData(e,c,d+1);if(!n)throw Error(`Unexpected end of ${c}`);o=n.i,t=n.tagContent}let r=new x(s);s!==l&&u&&(r[`:@`]=this.buildAttributesMap(l,i,s)),t&&=this.parseTextData(t,s,i,!0,u,!0,!0),i=i.substr(0,i.lastIndexOf(`.`)),r.add(this.options.textNodeName,t),this.addChild(n,r,i,p)}else{if(l.length>0&&l.lastIndexOf(`/`)===l.length-1){s[s.length-1]===`/`?(s=s.substr(0,s.length-1),i=i.substr(0,i.length-1),l=s):l=l.substr(0,l.length-1),this.options.transformTagName&&(s=this.options.transformTagName(s));let e=new x(s);s!==l&&u&&(e[`:@`]=this.buildAttributesMap(l,i,s)),this.addChild(n,e,i,p),i=i.substr(0,i.lastIndexOf(`.`))}else{let e=new x(s);this.tagsNodeStack.push(n),s!==l&&u&&(e[`:@`]=this.buildAttributesMap(l,i,s)),this.addChild(n,e,i,p),n=e}r=``,o=d}}else r+=e[o];return t.child};function F(e,t,n,r){this.options.captureMetaData||(r=void 0);let i=this.options.updateTag(t.tagname,n,t[`:@`]);!1===i||(typeof i==`string`&&(t.tagname=i),e.addChild(t,r))}let I=function(e){if(this.options.processEntities){for(let t in this.docTypeEntities){let n=this.docTypeEntities[t];e=e.replace(n.regx,n.val)}for(let t in this.lastEntities){let n=this.lastEntities[t];e=e.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let t in this.htmlEntities){let n=this.htmlEntities[t];e=e.replace(n.regex,n.val)}e=e.replace(this.ampEntity.regex,this.ampEntity.val)}return e};function re(e,t,n,r){return e&&=(r===void 0&&(r=t.child.length===0),(e=this.parseTextData(e,t.tagname,n,!1,!!t[`:@`]&&Object.keys(t[`:@`]).length!==0,r))!==void 0&&e!==``&&t.add(this.options.textNodeName,e),``),e}function ie(e,t,n,r){return!(!t||!t.has(r))||!(!e||!e.has(n))}function L(e,t,n,r){let i=e.indexOf(t,n);if(i===-1)throw Error(r);return i+t.length-1}function R(e,t,n,r=`>`){let i=function(e,t,n=`>`){let r,i=``;for(let a=t;a<e.length;a++){let t=e[a];if(r)t===r&&(r=``);else if(t===`"`||t===`'`)r=t;else if(t===n[0]){if(!n[1]||e[a+1]===n[1])return{data:i,index:a}}else t===` `&&(t=` `);i+=t}}(e,t+1,r);if(!i)return;let a=i.data,o=i.index,s=a.search(/\s/),c=a,l=!0;s!==-1&&(c=a.substring(0,s),a=a.substring(s+1).trimStart());let u=c;if(n){let e=c.indexOf(`:`);e!==-1&&(c=c.substr(e+1),l=c!==i.data.substr(e+1))}return{tagName:c,tagExp:a,closeIndex:o,attrExpPresent:l,rawTagName:u}}function ae(e,t,n){let r=n,i=1;for(;n<e.length;n++)if(e[n]===`<`)if(e[n+1]===`/`){let a=L(e,`>`,n,`${t} is not closed`);if(e.substring(n+2,a).trim()===t&&(i--,i===0))return{tagContent:e.substring(r,n),i:a};n=a}else if(e[n+1]===`?`)n=L(e,`?>`,n+1,`StopNode is not closed.`);else if(e.substr(n+1,3)===`!--`)n=L(e,`-->`,n+3,`StopNode is not closed.`);else if(e.substr(n+1,2)===`![`)n=L(e,`]]>`,n,`StopNode is not closed.`)-2;else{let r=R(e,n,`>`);r&&((r&&r.tagName)===t&&r.tagExp[r.tagExp.length-1]!==`/`&&i++,n=r.closeIndex)}}function z(e,t,n){if(t&&typeof e==`string`){let t=e.trim();return t===`true`||t!==`false`&&function(e,t={}){if(t=Object.assign({},O,t),!e||typeof e!=`string`)return e;let n=e.trim();if(t.skipLike!==void 0&&t.skipLike.test(n))return e;if(e===`0`)return 0;if(t.hex&&E.test(n))return function(e){if(parseInt)return parseInt(e,16);if(Number.parseInt)return Number.parseInt(e,16);if(window&&window.parseInt)return window.parseInt(e,16);throw Error(`parseInt, Number.parseInt, window.parseInt are not supported`)}(n);if(n.search(/.+[eE].+/)!==-1)return function(e,t,n){if(!n.eNotation)return e;let r=t.match(k);if(r){let i=r[1]||``,a=r[3].indexOf(`e`)===-1?`E`:`e`,o=r[2],s=i?e[o.length+1]===a:e[o.length]===a;return o.length>1&&s?e:o.length!==1||!r[3].startsWith(`.${a}`)&&r[3][0]!==a?n.leadingZeros&&!s?(t=(r[1]||``)+r[3],Number(t)):e:Number(t)}return e}(e,n,t);{let i=D.exec(n);if(i){let a=i[1]||``,o=i[2],s=((r=i[3])&&r.indexOf(`.`)!==-1&&((r=r.replace(/0+$/,``))===`.`?r=`0`:r[0]===`.`?r=`0`+r:r[r.length-1]===`.`&&(r=r.substring(0,r.length-1))),r),c=a?e[o.length+1]===`.`:e[o.length]===`.`;if(!t.leadingZeros&&(o.length>1||o.length===1&&!c))return e;{let r=Number(n),i=String(r);if(r===0||r===-0)return r;if(i.search(/[eE]/)!==-1)return t.eNotation?r:e;if(n.indexOf(`.`)!==-1)return i===`0`||i===s||i===`${a}${s}`?r:e;let c=o?s:n;return o?c===i||a+c===i?r:e:c===i||c===a+i?r:e}}return e}var r}(e,n)}return e===void 0?``:e}let oe=x.getMetaDataSymbol();function se(e,t){return B(e,t)}function B(e,t,n){let r,i={};for(let a=0;a<e.length;a++){let o=e[a],s=ce(o),c=``;if(c=n===void 0?s:n+`.`+s,s===t.textNodeName)r===void 0?r=o[s]:r+=``+o[s];else{if(s===void 0)continue;if(o[s]){let e=B(o[s],t,c),n=ue(e,t);o[oe]!==void 0&&(e[oe]=o[oe]),o[`:@`]?le(e,o[`:@`],c,t):Object.keys(e).length!==1||e[t.textNodeName]===void 0||t.alwaysCreateTextNode?Object.keys(e).length===0&&(t.alwaysCreateTextNode?e[t.textNodeName]=``:e=``):e=e[t.textNodeName],i[s]!==void 0&&i.hasOwnProperty(s)?(Array.isArray(i[s])||(i[s]=[i[s]]),i[s].push(e)):t.isArray(s,c,n)?i[s]=[e]:i[s]=e}}}return typeof r==`string`?r.length>0&&(i[t.textNodeName]=r):r!==void 0&&(i[t.textNodeName]=r),i}function ce(e){let t=Object.keys(e);for(let e=0;e<t.length;e++){let n=t[e];if(n!==`:@`)return n}}function le(e,t,n,r){if(t){let i=Object.keys(t),a=i.length;for(let o=0;o<a;o++){let a=i[o];r.isArray(a,n+`.`+a,!0,!0)?e[a]=[t[a]]:e[a]=t[a]}}}function ue(e,t){let{textNodeName:n}=t,r=Object.keys(e).length;return r===0||!(r!==1||!e[n]&&typeof e[n]!=`boolean`&&e[n]!==0)}class de{constructor(e){this.externalEntities={},this.options=function(e){return Object.assign({},y,e)}(e)}parse(e,t){if(typeof e!=`string`&&e.toString)e=e.toString();else if(typeof e!=`string`)throw Error(`XML data is accepted in String or Bytes[] form.`);if(t){!0===t&&(t={});let n=s(e,t);if(!0!==n)throw Error(`${n.err.msg}:${n.err.line}:${n.err.col}`)}let n=new ee(this.options);n.addExternalEntities(this.externalEntities);let r=n.parseXml(e);return this.options.preserveOrder||r===void 0?r:se(r,this.options)}addEntity(e,t){if(t.indexOf(`&`)!==-1)throw Error(`Entity value can't have '&'`);if(e.indexOf(`&`)!==-1||e.indexOf(`;`)!==-1)throw Error(`An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'`);if(t===`&`)throw Error(`An entity with value '&' is not permitted`);this.externalEntities[e]=t}static getMetaDataSymbol(){return x.getMetaDataSymbol()}}function fe(e,t){let n=``;return t.format&&t.indentBy.length>0&&(n=`
32003
32003
  `),pe(e,t,``,n)}function pe(e,t,n,r){let i=``,a=!1;for(let o=0;o<e.length;o++){let s=e[o],c=me(s);if(c===void 0)continue;let l=``;if(l=n.length===0?c:`${n}.${c}`,c===t.textNodeName){let e=s[c];ge(l,t)||(e=t.tagValueProcessor(c,e),e=_e(e,t)),a&&(i+=r),i+=e,a=!1;continue}if(c===t.cdataPropName){a&&(i+=r),i+=`<![CDATA[${s[c][0][t.textNodeName]}]]>`,a=!1;continue}if(c===t.commentPropName){i+=r+`\x3c!--${s[c][0][t.textNodeName]}--\x3e`,a=!0;continue}if(c[0]===`?`){let e=he(s[`:@`],t),n=c===`?xml`?``:r,o=s[c][0][t.textNodeName];o=o.length===0?``:` `+o,i+=n+`<${c}${o}${e}?>`,a=!0;continue}let u=r;u!==``&&(u+=t.indentBy);let d=r+`<${c}${he(s[`:@`],t)}`,f=pe(s[c],t,l,u);t.unpairedTags.indexOf(c)===-1?f&&f.length!==0||!t.suppressEmptyNode?f&&f.endsWith(`>`)?i+=d+`>${f}${r}</${c}>`:(i+=d+`>`,f&&r!==``&&(f.includes(`/>`)||f.includes(`</`))?i+=r+t.indentBy+f+r:i+=f,i+=`</${c}>`):i+=d+`/>`:t.suppressUnpairedNode?i+=d+`>`:i+=d+`/>`,a=!0}return i}function me(e){let t=Object.keys(e);for(let n=0;n<t.length;n++){let r=t[n];if(e.hasOwnProperty(r)&&r!==`:@`)return r}}function he(e,t){let n=``;if(e&&!t.ignoreAttributes)for(let r in e){if(!e.hasOwnProperty(r))continue;let i=t.attributeValueProcessor(r,e[r]);i=_e(i,t),!0===i&&t.suppressBooleanAttributes?n+=` ${r.substr(t.attributeNamePrefix.length)}`:n+=` ${r.substr(t.attributeNamePrefix.length)}="${i}"`}return n}function ge(e,t){let n=(e=e.substr(0,e.length-t.textNodeName.length-1)).substr(e.lastIndexOf(`.`)+1);for(let r in t.stopNodes)if(t.stopNodes[r]===e||t.stopNodes[r]===`*.`+n)return!0;return!1}function _e(e,t){if(e&&e.length>0&&t.processEntities)for(let n=0;n<t.entities.length;n++){let r=t.entities[n];e=e.replace(r.regex,r.val)}return e}let ve={attributeNamePrefix:`@_`,attributesGroupName:!1,textNodeName:`#text`,ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:` `,suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:RegExp(`&`,`g`),val:`&amp;`},{regex:RegExp(`>`,`g`),val:`&gt;`},{regex:RegExp(`<`,`g`),val:`&lt;`},{regex:RegExp(`'`,`g`),val:`&apos;`},{regex:RegExp(`"`,`g`),val:`&quot;`}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ye(e){this.options=Object.assign({},ve,e),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=A(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=Se),this.processTextOrObjNode=be,this.options.format?(this.indentate=xe,this.tagEndChar=`>
32004
32004
  `,this.newLine=`
32005
- `):(this.indentate=function(){return``},this.tagEndChar=`>`,this.newLine=``)}function be(e,t,n,r){let i=this.j2x(e,n+1,r.concat(t));return e[this.options.textNodeName]!==void 0&&Object.keys(e).length===1?this.buildTextValNode(e[this.options.textNodeName],t,i.attrStr,n):this.buildObjectNode(i.val,t,i.attrStr,n)}function xe(e){return this.options.indentBy.repeat(e)}function Se(e){return!(!e.startsWith(this.options.attributeNamePrefix)||e===this.options.textNodeName)&&e.substr(this.attrPrefixLen)}ye.prototype.build=function(e){return this.options.preserveOrder?fe(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0,[]).val)},ye.prototype.j2x=function(e,t,n){let r=``,i=``,a=n.join(`.`);for(let o in e)if(Object.prototype.hasOwnProperty.call(e,o))if(e[o]===void 0)this.isAttribute(o)&&(i+=``);else if(e[o]===null)this.isAttribute(o)||o===this.options.cdataPropName?i+=``:o[0]===`?`?i+=this.indentate(t)+`<`+o+`?`+this.tagEndChar:i+=this.indentate(t)+`<`+o+`/`+this.tagEndChar;else if(e[o]instanceof Date)i+=this.buildTextValNode(e[o],o,``,t);else if(typeof e[o]!=`object`){let n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,a))r+=this.buildAttrPairStr(n,``+e[o]);else if(!n)if(o===this.options.textNodeName){let t=this.options.tagValueProcessor(o,``+e[o]);i+=this.replaceEntitiesValue(t)}else i+=this.buildTextValNode(e[o],o,``,t)}else if(Array.isArray(e[o])){let r=e[o].length,a=``,s=``;for(let c=0;c<r;c++){let r=e[o][c];if(r!==void 0)if(r===null)o[0]===`?`?i+=this.indentate(t)+`<`+o+`?`+this.tagEndChar:i+=this.indentate(t)+`<`+o+`/`+this.tagEndChar;else if(typeof r==`object`)if(this.options.oneListGroup){let e=this.j2x(r,t+1,n.concat(o));a+=e.val,this.options.attributesGroupName&&r.hasOwnProperty(this.options.attributesGroupName)&&(s+=e.attrStr)}else a+=this.processTextOrObjNode(r,o,t,n);else if(this.options.oneListGroup){let e=this.options.tagValueProcessor(o,r);e=this.replaceEntitiesValue(e),a+=e}else a+=this.buildTextValNode(r,o,``,t)}this.options.oneListGroup&&(a=this.buildObjectNode(a,o,s,t)),i+=a}else if(this.options.attributesGroupName&&o===this.options.attributesGroupName){let t=Object.keys(e[o]),n=t.length;for(let i=0;i<n;i++)r+=this.buildAttrPairStr(t[i],``+e[o][t[i]])}else i+=this.processTextOrObjNode(e[o],o,t,n);return{attrStr:r,val:i}},ye.prototype.buildAttrPairStr=function(e,t){return t=this.options.attributeValueProcessor(e,``+t),t=this.replaceEntitiesValue(t),this.options.suppressBooleanAttributes&&t===`true`?` `+e:` `+e+`="`+t+`"`},ye.prototype.buildObjectNode=function(e,t,n,r){if(e===``)return t[0]===`?`?this.indentate(r)+`<`+t+n+`?`+this.tagEndChar:this.indentate(r)+`<`+t+n+this.closeTag(t)+this.tagEndChar;{let i=`</`+t+this.tagEndChar,a=``;return t[0]===`?`&&(a=`?`,i=``),!n&&n!==``||e.indexOf(`<`)!==-1?!1!==this.options.commentPropName&&t===this.options.commentPropName&&a.length===0?this.indentate(r)+`\x3c!--${e}--\x3e`+this.newLine:this.indentate(r)+`<`+t+n+a+this.tagEndChar+e+this.indentate(r)+i:this.indentate(r)+`<`+t+n+a+`>`+e+i}},ye.prototype.closeTag=function(e){let t=``;return this.options.unpairedTags.indexOf(e)===-1?t=this.options.suppressEmptyNode?`/`:`></${e}`:this.options.suppressUnpairedNode||(t=`/`),t},ye.prototype.buildTextValNode=function(e,t,n,r){if(!1!==this.options.cdataPropName&&t===this.options.cdataPropName)return this.indentate(r)+`<![CDATA[${e}]]>`+this.newLine;if(!1!==this.options.commentPropName&&t===this.options.commentPropName)return this.indentate(r)+`\x3c!--${e}--\x3e`+this.newLine;if(t[0]===`?`)return this.indentate(r)+`<`+t+n+`?`+this.tagEndChar;{let i=this.options.tagValueProcessor(t,e);return i=this.replaceEntitiesValue(i),i===``?this.indentate(r)+`<`+t+n+this.closeTag(t)+this.tagEndChar:this.indentate(r)+`<`+t+n+`>`+i+`</`+t+this.tagEndChar}},ye.prototype.replaceEntitiesValue=function(e){if(e&&e.length>0&&this.options.processEntities)for(let t=0;t<this.options.entities.length;t++){let n=this.options.entities[t];e=e.replace(n.regex,n.val)}return e};let Ce={validate:s};t.exports=n})()})),cW=s((e=>{var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),c=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},l=(e,r,i)=>(i=e==null?{}:t(a(e)),c(r||!e||!e.__esModule?n(i,`default`,{value:e,enumerable:!0}):i,e));let u=l(Oi()),f=l(ki()),p=l(require(`node:fs/promises`)),m=l(require(`node:async_hooks`)),h=l(se()),g=l(Bi()),_=l(Rc()),v=l((Ol(),d(ll))),y=l(require(`node:crypto`)),b=l(iR()),x=l(pM()),S=l(fz()),C=l((Dj(),d(Ej))),w=l(require(`node:fs`)),T=l(Uz()),E=l(pV()),D=l(require(`node:child_process`)),O=l(require(`node:util`)),k=l(require(`@prisma/internals`)),A=l(lV()),ee=l(require(`node:zlib`)),j=l(cH()),te=l(uH()),M=l(mH()),ne=l(Eee()),N=l(require(`node:os`)),P=l(require(`node:events`)),F=l(gU()),I=l(tW()),re=l(Fee()),ie=l(oW()),L=l(sW()),R=l(_U()),ae=l(require(`node:process`));l(require(`node:readline`)),l(require(`node:tty`));let z=l(require(`node:path`)),oe=l(require(`@anthropic-ai/claude-agent-sdk`)),B={DELETE:`delete`,COMMENT_OUT:`comment out`,KEEP:`keep`,SKIP:`skip`},ce={GREEN:`Green`,GREY:`Grey`,RED:`Red`,NA:`NA`},le={GREEN:`Green`,GREY:`Grey`,RUNTIME_ERROR:`RuntimeError`},ue=function(e){return e.IDE=`IDE`,e.CLI=`CLI`,e}({}),de=function(e){return e.SIBLING_FOLDER=`siblingFolder`,e.ROOT_FOLDER=`rootFolder`,e}({}),fe=function(e){return e.JEST=`jest`,e.MOCHA=`mocha`,e.VITEST=`vitest`,e.PYTEST=`pytest`,e}({}),pe=function(e){return e.SPEC=`spec`,e.TEST=`test`,e}({}),me=function(e){return e.CAMEL_CASE=`camelCase`,e.KEBAB_CASE=`kebabCase`,e}({}),he=function(e){return e.NONE=`none`,e.CATEGORIES=`categories`,e}({}),ge=function(e){return e.NEW_CODE_FILE=`newCodeFile`,e.OVERRIDE_CODE_FILE=`overrideCodeFile`,e}({}),_e=function(e){return e.ON=`on`,e.OFF=`off`,e}({}),ve={DEFAULT:0,MIN:0,MAX:100},ye={DEFAULT:5,MIN:1,MAX:50};u.z.object({rootPath:u.z.string().default(process.cwd()),testStructure:u.z.enum(de).optional(),testFramework:u.z.enum(fe).optional(),testSuffix:u.z.enum(pe).optional(),testFileName:u.z.enum(me).optional(),calculateCoverage:u.z.enum(_e).optional(),coverageThreshold:u.z.number().min(ve.MIN).max(ve.MAX).default(ve.DEFAULT),requestSource:u.z.enum(ue).optional(),concurrency:u.z.number().min(ye.MIN).max(ye.MAX).default(ye.DEFAULT),backendURL:u.z.string().optional(),secretToken:u.z.string().optional(),modelName:u.z.string().optional(),context:u.z.object({git:u.z.object({ref_name:u.z.string(),repository:u.z.string(),owner:u.z.string(),sha:u.z.string(),workflowRunId:u.z.string(),remoteUrl:u.z.string(),topLevel:u.z.string()}).partial().optional()}).optional(),testCommand:u.z.string().optional(),coverageCommand:u.z.string().optional(),lintCommand:u.z.string().optional(),prettierCommand:u.z.string().optional(),disableLintRules:u.z.boolean().optional(),ignoreAsAnyLintErrors:u.z.boolean().optional(),includeEarlyTests:u.z.boolean().optional(),greyTestBehaviour:u.z.enum(B).optional(),redTestBehaviour:u.z.enum(B).optional(),keepErrorTests:u.z.boolean().optional(),keepFailedTests:u.z.boolean().optional(),conditionalKeep:u.z.boolean().optional(),continueOnTestErrors:u.z.boolean().optional(),perFunctionTimeout:u.z.number().positive().optional(),dynamicPromptIterations:u.z.number().min(0).max(10).optional(),removeComments:u.z.boolean().optional(),experimentalAgentSdk:u.z.boolean().optional(),agentSdkModel:u.z.string().optional(),agentSdkBudget:u.z.number().positive().optional(),debug:u.z.boolean().optional(),verbose:u.z.boolean().optional(),progressLogger:u.z.custom().optional()});var be=`@earlyai/ts-agent`,xe=`0.74.1`;let Se={VSCODE:`vscode`,GITHUB_ACTION:`github-action`,UNKNOWN:`unknown`},Ce=`$early_filename`,we=`$early_coverage_dir`,Te=`npx jest ${Ce} --no-coverage --silent --json --forceExit --maxWorkers=1`,Ee=`npx --no eslint ${Ce}`,De=`npx --no prettier ${Ce} --write`,Oe={rootPath:process.cwd(),isSiblingFolderStructured:!0,gitURL:`https://github.com/your-owner/your-repo`,testFramework:fe.JEST,greyTestBehaviour:B.DELETE,redTestBehaviour:B.DELETE,keepErrorTests:!1,keepFailedTests:!1,conditionalKeep:!1,continueOnTestErrors:!0,generatedTestStructure:he.CATEGORIES,isRootFolderStructured:!1,clientSource:Se.GITHUB_ACTION,backendURL:`https://api.startearly.ai`,requestSource:ue.CLI,userPrompt:``,testLocation:`__tests__`,coverageThreshold:ve.DEFAULT,concurrency:5,testFileFormat:`ts`,outputType:ge.NEW_CODE_FILE,shouldRefreshCoverage:!0,kebabCaseFileName:!1,earlyTestFilenameSuffix:`.early.${pe.TEST}`,testSuffix:pe.TEST,isAppendPrompt:!1,dynamicPromptIterations:3,wsServerEndpoint:`wss://api.startearly.ai`,secretToken:``,loggerConfig:{consoleEnabled:!1,azureEnabled:!0,azureConnectionString:`InstrumentationKey=8b9b0d6a-5400-44a3-ada6-3cd026de6cfe;IngestionEndpoint=https://eastus-8.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus.livediagnostics.monitor.azure.com/;ApplicationId=d6e130b6-4aaa-4dcc-8d26-c1fa25d4656a`},context:void 0,includeEarlyTests:!1,lintCommand:Ee,prettierCommand:De,disableLintRules:!1,ignoreAsAnyLintErrors:!0,allowUndefinedLintErrors:!0,perFunctionTimeout:24e4,removeComments:!0,experimentalAgentSdk:!1,agentSdkModel:void 0,agentSdkBudget:void 0,debug:!1,verbose:!1},ke=e=>{let t=`testFramework.testSuffix.backendURL.requestSource.secretToken.concurrency.coverageThreshold.context.rootPath.testCommand.coverageCommand.lintCommand.prettierCommand.disableLintRules.greyTestBehaviour.redTestBehaviour.keepErrorTests.keepFailedTests.conditionalKeep.continueOnTestErrors.perFunctionTimeout.dynamicPromptIterations.removeComments.experimentalAgentSdk.agentSdkModel.agentSdkBudget.debug.verbose.progressLogger`.split(`.`).reduce((t,n)=>(0,h.isDefined)(e[n])?{...t,[n]:e[n]}:t,{}),n={...(0,h.isDefined)(e.testStructure)&&{isSiblingFolderStructured:e.testStructure===de.SIBLING_FOLDER,isRootFolderStructured:e.testStructure===de.ROOT_FOLDER},...(0,h.isDefined)(e.testFileName)&&{kebabCaseFileName:e.testFileName===me.KEBAB_CASE},...(0,h.isDefined)(e.calculateCoverage)&&{shouldRefreshCoverage:e.calculateCoverage===_e.ON},...(0,h.isDefined)(e.modelName)&&{fixTestsLLMModelName:e.modelName,generateTestsLLMModelName:e.modelName},...(0,h.isDefined)(e.testSuffix)&&{earlyTestFilenameSuffix:`.early.${e.testSuffix}`},...(0,h.isDefined)(e.requestSource)&&{clientSource:e.requestSource===ue.IDE?Se.VSCODE:Se.GITHUB_ACTION}};return{...t,...n}},Ae=new v.Chalk({level:1}),je=()=>{},Me={info:je,verbose:je,debug:je},Ne=[Ae.cyan,Ae.magenta,Ae.green,Ae.blue,Ae.redBright,Ae.cyanBright,Ae.magentaBright,Ae.greenBright];function Pe(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.codePointAt(n)??0,t=Math.imul(t,16777619);return Ne[Math.abs(t)%Ne.length]}function Fe(e,t){let n=(0,h.isDefined)(t.parentName)?`${t.parentName}.${t.methodName}`:t.methodName,r=Pe(n)(`[${n}]`);return{info:(...t)=>e.info(r,...t),verbose:(...t)=>e.verbose(r,...t),debug:(...t)=>e.debug(r,...t)}}var Ie=s(((e,t)=>{function n(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),Le=s(((e,t)=>{function n(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),Re=l(Ie()),ze=l(Le()),Be,Ve;let He=class{config;constructor(e,t={}){if(!(0,h.isDefined)(e)){this.config=Oe;return}let n=ke(e);this.config=(0,h.merge)(Oe,n,t)}getRootPath=()=>this.config.rootPath;isSiblingFolderStructured=()=>this.config.isSiblingFolderStructured;getGitURL=()=>this.config.context?.git?.remoteUrl??this.config.gitURL;getGitTopLevel=()=>this.config.context?.git?.topLevel??this.getRootPath();getTestFramework=()=>this.config.testFramework;getGreyTestBehaviour=()=>this.config.greyTestBehaviour;getRedTestBehaviour=()=>this.config.redTestBehaviour;shouldKeepErrorTests=()=>this.config.keepErrorTests;shouldKeepFailedTests=()=>this.config.keepFailedTests;shouldConditionalKeep=()=>this.config.conditionalKeep;getGeneratedTestStructure=()=>this.config.generatedTestStructure;getGenerateTestsLLMModelName=()=>this.config.generateTestsLLMModelName;isRootFolderStructured=()=>this.config.isRootFolderStructured;getLLMTemperature=()=>this.config.llmTemperature;getLLMTopP=()=>this.config.llmTopP;getClientSource=()=>this.config.clientSource;getBackendURL=()=>this.config.backendURL;getRequestSource=()=>this.config.requestSource;getUserPrompt=()=>this.config.userPrompt;getTestLocation=()=>this.config.testLocation;getCoverageThreshold=()=>this.config.coverageThreshold;getConcurrency=()=>this.config.concurrency;getTestFileFormat=()=>this.config.testFileFormat;getOutputType=()=>this.config.outputType;getShouldRefreshCoverage=()=>this.config.shouldRefreshCoverage;isKebabCaseFileName=()=>this.config.kebabCaseFileName;getEarlyTestFilenameSuffix=()=>this.config.earlyTestFilenameSuffix;getTestSuffix=()=>this.config.testSuffix;getIsAppendPrompt=()=>this.config.isAppendPrompt;getFixTestsLLMModelName=()=>this.config.fixTestsLLMModelName;getDynamicPromptIterations=()=>this.config.dynamicPromptIterations;getWSServerEndpoint=()=>this.config.backendURL.replace(`http://`,`ws://`).replace(`https://`,`wss://`);getAnthropicProxyUrl=()=>new URL(`/anthropic`,this.config.backendURL).href;getSecretToken=()=>this.config.secretToken;getLoggerConfig=()=>this.config.loggerConfig;getContext=()=>this.config.context;getTestCommand=()=>this.config.testCommand;getCoverageCommand=()=>this.config.coverageCommand;getLintCommand=()=>this.config.lintCommand;getPrettierCommand=()=>this.config.prettierCommand;shouldDisableLintRules=()=>this.config.disableLintRules;shouldIgnoreAsAnyLintErrors=()=>this.config.ignoreAsAnyLintErrors;allowUndefinedLintErrors=()=>this.config.allowUndefinedLintErrors;getIncludeEarlyTests=()=>this.config.includeEarlyTests??!1;shouldContinueOnTestErrors=()=>this.config.continueOnTestErrors;getPerFunctionTimeout=()=>this.config.perFunctionTimeout;shouldRemoveComments=()=>this.config.removeComments;getExperimentalAgentSdk=()=>this.config.experimentalAgentSdk;getAgentSdkModel=()=>this.config.agentSdkModel;getAgentSdkBudget=()=>this.config.agentSdkBudget;updateContext=e=>{this.config.context=(0,h.merge)(this.config.context??{},e??{})};updateRootPath=e=>{this.config.rootPath=e};isDebug=()=>this.config.debug??!1;isVerbose=()=>this.config.verbose??!1;getProgressLogger=e=>{let t=this.config.progressLogger??Me;return(0,h.isDefined)(e)?Fe(t,e):t}};He=(0,ze.default)([(0,_.injectable)(`Singleton`),(0,Re.default)(`design:paramtypes`,[typeof(Be=typeof Partial<`u`&&Partial)==`function`?Be:Object,typeof(Ve=typeof Partial<`u`&&Partial)==`function`?Ve:Object])],He);var V=new _.Container({autobind:!0,defaultScope:`Singleton`});let Ue=()=>V.get(He);var We=class{storage=new m.AsyncLocalStorage;isConsoleEnabled;constructor(e){this.isConsoleEnabled=e}orderedFlush={nextOrder:1,pending:new Map};resetOrder(){this.orderedFlush={nextOrder:1,pending:new Map}}async withBufferedPrinting(e,t){let n=[];try{return await this.storage.run(n,e)}finally{this.flushInOrder(t,n)}}printOrBuffer(e,t){let n=this.storage.getStore();if((0,h.isDefined)(n)){n.push({method:e,message:t});return}this.isConsoleEnabled&&console[e](t)}async flushInOrder(e,t){if(this.orderedFlush.nextOrder===e){this.flushBuffer(t),this.orderedFlush.nextOrder++,this.drainPendingFlushes();return}return new Promise(n=>{this.orderedFlush.pending.set(e,{buffer:t,resolve:n})})}drainPendingFlushes(){let e=this.orderedFlush.pending.get(this.orderedFlush.nextOrder);for(;(0,h.isDefined)(e);)this.orderedFlush.pending.delete(this.orderedFlush.nextOrder),this.flushBuffer(e.buffer),this.orderedFlush.nextOrder++,e.resolve(),e=this.orderedFlush.pending.get(this.orderedFlush.nextOrder)}flushBuffer(e){if(this.isConsoleEnabled)for(let t of e)console[t.method](t.message)}};let Ge=function(e){return e.DEFAULT=`default`,e.VERBOSE=`verbose`,e.DEBUG=`debug`,e}({}),Ke=function(e){return e.INFO=`info`,e.WARN=`warn`,e}({});function qe(){return(0,y.randomUUID)()}function Je(){let e=``;for(let t=0;t<8;t++)e+=`abcdefghijklmnopqrstuvwxyz0123456789`.charAt(Math.floor(Math.random()*36));return e}var Ye=l(Ie()),Xe=l(Le()),Ze=class{export(e,t){for(let t of e){let e=t.body;if((0,h.isString)(e))console.info(e);else try{console.info(JSON.stringify(e))}catch{console.info(String(e))}}t({code:0})}shutdown(){return Promise.resolve()}};let Qe=class{loggerProvider;config;constructor(e){this.config=e,this.loggerProvider=new S.LoggerProvider({resource:(0,x.resourceFromAttributes)({[C.ATTR_SERVICE_NAME]:be,[C.ATTR_SERVICE_VERSION]:xe})}),this.initializeExporters(),this.setGlobalLoggerProvider()}getLogger(e){return this.loggerProvider.getLogger(e)}initializeExporters(){let e=[];if(this.config.consoleEnabled){let t=new Ze;e.push(new S.SimpleLogRecordProcessor(t))}if(this.config.azureEnabled&&(0,h.isDefined)(this.config.azureConnectionString)){let t=new b.AzureMonitorLogExporter({connectionString:this.config.azureConnectionString});e.push(new S.BatchLogRecordProcessor(t))}this.loggerProvider=new S.LoggerProvider({processors:e})}setGlobalLoggerProvider(){g.logs.setGlobalLoggerProvider(this.loggerProvider)}};Qe=(0,Xe.default)([(0,_.injectable)(),(0,Ye.default)(`design:paramtypes`,[Object])],Qe),l(Ie()),l(Le());let H=new class{storage;otelService;otelLogger;isConsoleEnabled;printBuffer;default=this.createLogObject(Ge.DEFAULT);verbose=this.createLogObject(Ge.VERBOSE);constructor(e){this.storage=new m.AsyncLocalStorage,this.otelService=new Qe(e),this.otelLogger=this.otelService.getLogger(`ts-agent`),this.isConsoleEnabled=e.consoleEnabled,this.printBuffer=new We(e.consoleEnabled)}resetPrintOrder(){this.printBuffer.resetOrder()}async withBufferedPrinting(e,t){return this.printBuffer.withBufferedPrinting(e,t)}info={startLog:(e,...t)=>this.log(g.SeverityNumber.INFO,`Start ${e}`,...t),endLog:(e,...t)=>this.log(g.SeverityNumber.INFO,`End ${e}`,...t),failedLog:(e,...t)=>this.log(g.SeverityNumber.INFO,`Failed ${e}`,...t),defaultLog:(e,...t)=>this.log(g.SeverityNumber.INFO,e,...t)};debug={startLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,`Start ${e}`,...t),endLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,`End ${e}`,...t),failedLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,`Failed ${e}`,...t),defaultLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,e,...t)};error(e,t,...n){let r=t instanceof Error?`${e} ${t.message} ${t.stack}`:`${e} ${JSON.stringify(t)}`;this.log(g.SeverityNumber.ERROR,r,...n)}getRequestId(){return this.storage.getStore()?.requestId??``}getTraceId(){return this.storage.getStore()?.traceId??``}log(e,t,...n){let r=this.formatMessage(t,...n);this.logToOpenTelemetry(e,r),!(!this.isConsoleEnabled||!this.isLevelEnabled(Ge.DEBUG))&&console.info(r)}logToOpenTelemetry(e,t){let n=this.storage.getStore(),r={service:be,version:xe};(0,h.isDefined)(n)&&((0,h.isDefined)(n.traceId)&&(r.traceId=n.traceId),(0,h.isDefined)(n.requestId)&&(r.requestId=n.requestId),(0,h.isDefined)(n.category)&&(r.category=n.category),(0,h.isDefined)(n.subCategory)&&(r.subCategory=n.subCategory),(0,h.isDefined)(n.testedMethodClass)&&(r.testedMethodClass=n.testedMethodClass),(0,h.isDefined)(n.testedFunction)&&(r.testedFunction=n.testedFunction),(0,h.isDefined)(n.userId)&&(r.userId=n.userId.toString())),this.otelLogger.emit({severityNumber:e,severityText:this.getSeverityText(e),body:t,attributes:r})}getSeverityText(e){switch(e){case g.SeverityNumber.TRACE:return`TRACE`;case g.SeverityNumber.DEBUG:return`DEBUG`;case g.SeverityNumber.INFO:return`INFO`;case g.SeverityNumber.WARN:return`WARN`;case g.SeverityNumber.ERROR:return`ERROR`;case g.SeverityNumber.FATAL:return`FATAL`;default:return`INFO`}}formatMessage(e,...t){let n=this.formatPrefix(),r=(0,h.isDefined)(n)?`${n} ${e}`:e;return this.formatPrint(r,...t)}formatPrint(e,...t){return(0,h.isEmpty)(t)?e:`${e} ${t.map(e=>JSON.stringify(e)).join(` `)}`}withContext=(e,t,n)=>{let r=n.value,i=this.storage;return n.value=function(...e){let t=i.getStore();if(t){let n={...t};return i.run(n,()=>r.apply(this,e))}let n={traceId:Je(),requestId:qe()};return i.run(n,()=>r.apply(this,e))},n};addContext(e){let t=this.storage.getStore();(0,h.isDefined)(t)&&(t.category=e.category??t.category,t.subCategory=e.subCategory??t.subCategory,t.testedMethodClass=e.testedMethodClass??t.testedMethodClass,t.testedFunction=e.testedFunction??t.testedFunction,t.userId=e.userId??t.userId)}captureContext({withNewRequestId:e=!1}={}){let t=this.storage.getStore();return t?{...t,...e&&{requestId:qe()}}:void 0}async runWithContext(e,t){return(0,h.isDefined)(e)?this.storage.run(e,t):t()}isLevelEnabled(e){switch(e){case Ge.DEFAULT:return!0;case Ge.VERBOSE:return Ue().isVerbose()||Ue().isDebug();case Ge.DEBUG:return Ue().isDebug()}}createLogObject(e){return{info:(t,...n)=>{this.isLevelEnabled(e)&&this.printOrBuffer(Ke.INFO,this.formatPrint(t,...n))},warn:(t,...n)=>{this.isLevelEnabled(e)&&this.printOrBuffer(Ke.WARN,this.formatPrint(t,...n))}}}printOrBuffer(e,t){this.printBuffer.printOrBuffer(e,t)}formatPrefix(){let e=this.storage.getStore();if(!(0,h.isDefined)(e))return``;let t=[];return(0,h.isDefined)(e.traceId)&&t.push(`[${e.traceId}]`),(0,h.isDefined)(e.requestId)&&t.push(`[${e.requestId}]`),(0,h.isDefined)(e.category)&&t.push(`[${e.category}]`),(0,h.isDefined)(e.subCategory)&&t.push(`[${e.subCategory}]`),(0,h.isDefined)(e.testedMethodClass)&&t.push(`[${e.testedMethodClass}]`),(0,h.isDefined)(e.testedFunction)&&t.push(`[${e.testedFunction}]`),t.join(` `)}}({consoleEnabled:!1,azureEnabled:!0,azureConnectionString:`InstrumentationKey=c18a3332-f844-498f-98e0-d818996cf526;IngestionEndpoint=https://eastus2-3.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/;ApplicationId=2150ffe0-cb0f-4b00-9562-d3385b383d74`});function $e(e){return function(t,n,r){return(0,h.isDefined)(e)&&H.addContext(e),H.withContext(t,n,r)}}var et=class e{rootPath;absolutePath;static EARLY_FILENAME_VAR=`$early_filename`;constructor(e){this.rootPath=f.default.normalizeTrim(Ue().getRootPath());let t=f.default.normalizeTrim(e),n=f.default.normalizeTrim(this.rootPath);if(t===n||t.startsWith(n+f.default.sep))this.absolutePath=t;else{let e=t.replace(/^\//,``);this.absolutePath=f.default.resolve(this.rootPath,e)}}static fromSourceFile(t){let n=f.default.normalizeTrim(t.getFilePath());return new e(f.default.relative(f.default.normalizeTrim(Ue().getRootPath()),n))}static fromAbsolutePath(t){let n=f.default.normalizeTrim(t);return new e(f.default.relative(f.default.normalizeTrim(Ue().getRootPath()),n))}static fromRelativePath(t){return new e(t)}getRelativeFilePath(){return f.default.relative(this.rootPath,this.absolutePath)}getAbsoluteFilePath(){return this.absolutePath}async isFileExists(){try{return(await p.default.stat(this.absolutePath)).isFile()}catch{return!1}}async isDirectoryExists(){try{return(await p.default.stat(this.absolutePath)).isDirectory()}catch{return!1}}async createDirectory(e){await p.default.mkdir(this.absolutePath,{recursive:e?.recursive??!0})}async getText(){try{return await p.default.readFile(this.absolutePath,`utf8`)}catch{return``}}async upsert(e){let t=f.default.dirname(this.absolutePath);await p.default.mkdir(t,{recursive:!0}),await(await this.isFileExists()?p.default.appendFile(this.absolutePath,e):p.default.writeFile(this.absolutePath,e)),H.info.defaultLog(`Upserted file`,{path:this.getRelativeFilePath()})}async replace(e){let t=f.default.dirname(this.absolutePath);await p.default.mkdir(t,{recursive:!0}),await p.default.writeFile(this.absolutePath,e),H.info.defaultLog(`Replaced file`,{path:this.getRelativeFilePath()})}async delete(){try{await p.default.unlink(this.absolutePath),H.info.defaultLog(`Deleted file`,{path:this.getRelativeFilePath()})}catch{}}};let tt={WIN32:`win32`,DARWIN:`darwin`,LINUX:`linux`},nt={JAVASCRIPT:`javascript`,TYPESCRIPT:`typescript`,PYTHON:`python`},rt=e=>{let t=Ue().getRootPath();return f.default.resolve(t,e)},it=e=>{let t=Ue().getRootPath(),n=f.default.normalize(e);return f.default.relative(t,n)},at=e=>({".js":`javascript`,".mjs":`javascript`,".cjs":`javascript`,".jsx":`javascript`,".ts":`typescript`,".tsx":`typescript`,".py":`python`})[e.toLowerCase()]??`javascript`;function ot(e){return at((0,f.extname)(e))}function st(e){return at((0,f.extname)(e))===`typescript`}function U(e){return at((0,f.extname)(e))===nt.PYTHON}function ct(e){let t=Ue().getRootPath();if(!(0,h.isDefined)(t))throw Error(`Workspace root path is not defined`);if((0,h.isEmpty)(e))return f.default.normalize(t);let n=f.default.normalize(t),r=f.default.normalize(e);if(process.platform===tt.WIN32){let t=n.split(`:`)[0].toUpperCase(),i=r.split(`:`)[0].toUpperCase();if(t!==i&&!i.startsWith(t))return e}return f.default.relative(n,r)}function lt(e){return e.startsWith(`../`)?`../${e}`:e.startsWith(`./`)?`.${e}`:e}function ut(e){let t=f.default.normalize(rt(e)),n=f.default.normalize((0,T.default)([`package.json`,`project.json`],{cwd:t})??``);return n?it((0,f.dirname)(n)).slice(1):``}function dt(e,t,n){if(!pt(e))return e;let r=n===``?t:t.replace(n,``),i=n===``?ht(r):mt(r),a=r.split(`/`).slice(0,-1),o=ft(e,`../`),s=o>0?a.slice(0,-o).join(`/`):(0,f.dirname)(r),c=e.replaceAll(`../`,``).replaceAll(`./`,``);return f.default.join(i,s,c)}function ft(e,t){return e.split(t).length-1}function pt(e){return e.startsWith(`../`)||e.startsWith(`./`)}function mt(e){let t=ft(e,`/`);return`../`.repeat(t-1)}function ht(e){let t=ft(e,`/`);return`../`.repeat(t+1)}function gt(e){return e?.includes(`node_modules/`)}let _t=e=>e.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`);function vt(e,t){let n=f.default.isAbsolute(e)?e:rt(e);return(0,T.default)(t,{cwd:n})}function yt(e,t){let n=vt(e,t);if(!(0,h.isDefined)(n))return;let r=w.readFileSync(n,`utf8`);return JSON.parse(r)}function bt(e){return yt(e,`package.json`)}function xt(e,t){let{dependencies:n={},devDependencies:r={}}=e;return Object.keys({...r,...n}).includes(t)}let St=[{path:`eslint.config.js`,isFlat:!0},{path:`eslint.config.cjs`,isFlat:!0},{path:`eslint.config.mjs`,isFlat:!0},{path:`eslint.config.ts`,isFlat:!0},{path:`eslint.config.mts`,isFlat:!0},{path:`eslint.config.cts`,isFlat:!0},{path:`.eslintrc`,isFlat:!1},{path:`.eslintrc.js`,isFlat:!1},{path:`.eslintrc.cjs`,isFlat:!1},{path:`.eslintrc.mjs`,isFlat:!1},{path:`.eslintrc.json`,isFlat:!1},{path:`.eslintrc.yaml`,isFlat:!1},{path:`.eslintrc.yml`,isFlat:!1}],Ct=[`@typescript-eslint/no-undefined`,`unicorn/no-useless-undefined`,`no-undefined`];async function wt(e){for(let{path:t,isFlat:n}of St){let r=f.default.join(e,t);if(await et.fromAbsolutePath(r).isFileExists())return{path:r,isFlat:n}}return bt(e)?.eslint?{path:vt(e,`package.json`),isFlat:!1}:{path:null,isFlat:!1}}let Tt={GET_TESTABLES:`get-testables`,GET_COVERAGE:`get-coverage`,GENERATE_COVERAGE:`generate-coverage`,SET_COVERAGE:`set-coverage`,GENERATE_TESTS:`generate-tests`,INITIALIZATION:`initialization`,GET_TESTED_CODE_DATA_SOURCE:`get-tested-code-data-source`,DYNAMIC_PROMPT:`dynamic-prompt`,TEST_VALIDATION:`test-validation`},Et={CODE_EXTRACTOR:`code-extractor`,CODE_REFINEMENT:`code-refinement`,TEST_MANAGEMENT:`test-management`,TEST_VALIDATOR:`test-validator`,CONFIG_FILE:`config-file`,COMMAND_EXECUTION:`command-execution`},Dt=[`.jsx`,`.tsx`],Ot=[`it`,`test`,`it.each`,`test.each`],kt=function(e){return e.Default=`default`,e.ObjectDefault=`object-default`,e.Named=`named`,e.Unknown=`unknown`,e.NotExported=`not-exported`,e}({}),At=function(e){return e.PRIVATE=`private`,e.PROTECTED=`protected`,e.PUBLIC=`public`,e}({}),jt=function(e){return e.REACT=`react`,e.ANGULAR=`angular`,e}({}),Mt=`unknown`,Nt=(0,O.promisify)(D.default.exec);async function Pt(e,{cwd:t=Ue().getRootPath(),timeout:n=1e4}={}){return(await Nt(e,{cwd:t,maxBuffer:500*1024,timeout:n}))?.stdout?.toString()??``}let Ft=e=>{let t=rt(e);return(0,T.default)(`jest.config.+(js|ts|mjs|cjs|json)`,{cwd:t})},It=e=>(0,h.isObject)(e)&&(0,h.isString)(e.rootDir),Lt=async e=>{let t;if(H.addContext({subCategory:Et.CONFIG_FILE}),(0,h.isDefined)(e)){let n=Ft(e);n!==null&&(t=(0,f.dirname)(n))}t??=Ue().getRootPath();let n;try{if(n=await Pt(`npx jest --showConfig`,{cwd:t}),!(0,h.isString)(n))throw H.info.defaultLog(`Jest config return is not a string`,n),Error(`Jest config return is not a string`);let e=JSON.parse(n);if((0,h.isObject)(e)&&(0,h.isArray)(e.configs)&&e.configs.every(e=>It(e)))return{projectConfigs:e.configs,globalConfig:e.globalConfig,configs:e.configs}}catch(e){H.info.defaultLog(`Cannot read jest config`,(0,h.getErrorMessage)(e)),H.info.defaultLog(`Failed reading jest config`,e,(0,h.getErrorMessage)(e));return}H.info.defaultLog(`Invalid jest config or config in not supported format`)},Rt=async()=>{let e=[Ue().getRootPath()],t=f.default.join(`node_modules`,`.prisma`,`client`,`index.d.ts`),n=e.map(e=>f.default.join(e,t)).map(e=>et.fromAbsolutePath(e));return(await(0,h.filterAsync)(n,e=>e.isFileExists())).map(e=>e.getAbsoluteFilePath())},zt=async()=>{try{let e=Ue().getRootPath();if(!(0,h.isDefined)(e))return[];let t=await(0,k.getSchemaWithPathOptional)(``,``,{cwd:e});if(!(0,h.isDefined)(t))return[];let n=t.schemas.map(e=>e[1]),r=new Set;for(let e of n){let n=(await(0,k.getConfig)({datamodel:e,ignoreEnvVarErrors:!0})).generators;for(let e of n)if((0,h.isDefined)(e.output?.value)){let n=f.default.join(f.default.resolve(t.schemaRootDir,e.output.value),`index.d.ts`);await et.fromAbsolutePath(n).isFileExists()&&r.add(n)}}return[...r]}catch(e){return H.error(`Failed to get prisma typings paths`,e),[]}},Bt=async()=>(await Promise.all([Rt(),zt()])).flat(),Vt=async(e,t=!1,n)=>{let r=`!**/node_modules/**`;if(t)return new E.Project({useInMemoryFileSystem:!0,compilerOptions:n});let i=st(e),a=Ht((0,f.dirname)(rt(e)),Ue().isSiblingFolderStructured());if(!i&&!(0,h.isDefined)(a)){let t=await Wt(e);if(!(0,h.isDefined)(t)||(0,h.isEmpty)(t))throw Error(`Cannot find source code path in jest config`);let n=new E.Project({compilerOptions:{allowJs:!0,maxNodeModuleJsDepth:0},useInMemoryFileSystem:!1});return n.addSourceFilesAtPaths([...t,r]),n}if(!i&&(0,h.isDefined)(a)){let t=new E.Project({tsConfigFilePath:a,compilerOptions:{allowJs:!0,maxNodeModuleJsDepth:0}}),n=await Wt(e);return t.addSourceFilesAtPaths([...n,r]),t}let o=new E.Project({tsConfigFilePath:a,compilerOptions:{maxNodeModuleJsDepth:0}}),s=await Bt();for(let e of s)o.addSourceFileAtPath(e);return o},Ht=(e,t)=>{let n;try{n=Ut(e)}catch{t&&(n=Ut((0,f.dirname)(e)))}return n},Ut=e=>{let t=e,n=/^(tsconfig|jsconfig).*\.json$/;for(;t!==(0,f.dirname)(t);){let e=(0,f.join)(t,`tsconfig.json`),r=(0,f.join)(t,`jsconfig.json`);if(!(0,w.existsSync)(t))return Ut((0,f.dirname)(t));if((0,w.existsSync)(e))return e;if((0,w.existsSync)(r))return r;let i=(0,w.readdirSync)(t);for(let e of i)if(n.test(e))return(0,f.join)(t,e);t=(0,f.dirname)(t)}},Wt=async e=>{let t=await Lt(e);if((0,h.isDefined)(t)){let e=t?.configs[0].roots.map(e=>f.default.join(e,`**/*.{ts,js,tsx,jsx}`));if(!(0,h.isEmpty)(e))return e}return[rt(ut(e))]};var Gt=l(Ie()),Kt=l(Le());let qt=`The ts-morph project is not initialized.`,Jt=new class{storage=new m.AsyncLocalStorage;_project;clear(){this._project=void 0}async init(e,t,n){let r=rt(e);if((0,h.isDefined)(this._project))return this._project.addSourceFileAtPathIfExists(r);this._project=await Vt(e,t,n);let i=this.storage.getStore();if((0,h.isDefined)(i))return this._project.addSourceFileAtPathIfExists(r)}add(e,t){let n=rt(e),r=this.storage.getStore()?.getProject();if(!(0,h.isDefined)(r))throw Error(qt);return r.createSourceFile(n,t,{overwrite:!0})}update(e,t){let n=this.get(e);return n.replaceWithText(t),n}addFile(e){(0,h.isDefined)(this._project)&&this._project.addSourceFileAtPathIfExists(e)}removeFile(e){if(!(0,h.isDefined)(this._project))return;let t=this._project.getSourceFile(e);(0,h.isDefined)(t)&&this._project.removeSourceFile(t)}async refreshFromFileSystem(e){if(!(0,h.isDefined)(this._project))return;let t=rt(e),n=this._project?.getSourceFile(e)??this._project?.getSourceFile(t);if((0,h.isDefined)(n)){let e=n.getFilePath();this._project.removeSourceFile(n),this._project.addSourceFileAtPath(e)}}get(e){let t=rt(e),n=this.storage.getStore()?.getProject();if(!(0,h.isDefined)(n))throw Error(qt+` store`);let r=n.getSourceFile(t);if(!(0,h.isDefined)(r))throw Error(`The source file is absent. ${e}`);return r}async save(e){await this.get(e).save()}async delete(e){await this.get(e).deleteImmediately()}getOrUndefined(e){let t=rt(e);return this._project?.getSourceFile(t)}withContext=(e,t,n)=>{let r=n.value,i=this.storage;if((0,h.isDefined)(i.getStore()))return n;let a=()=>this._project;return n.value=function(...e){let t={getProject:a};return i.run(t,()=>r.apply(this,e))},n}},Yt=Jt.withContext,Xt=async e=>{class t{async fn(){return e()}}(0,Kt.default)([Yt,(0,Gt.default)(`design:type`,Function),(0,Gt.default)(`design:paramtypes`,[]),(0,Gt.default)(`design:returntype`,Promise)],t.prototype,`fn`,null),await new t().fn()},Zt=e=>{let t=e?.asKind(E.SyntaxKind.ExpressionStatement)?.getExpression();if(!(0,h.isDefined)(t))return;let n=t.asKind(E.SyntaxKind.CallExpression)?.getArguments()?.at(-1),r=n?.asKind(E.SyntaxKind.ArrowFunction)?.getBody(),i=n?.asKind(E.SyntaxKind.FunctionExpression)?.getBody();return r?.asKind(E.SyntaxKind.Block)??i?.asKind(E.SyntaxKind.Block)},Qt=e=>E.Node.isExpressionStatement(e)&&e.getFirstChildByKind(E.SyntaxKind.CallExpression)?.getFirstChildByKind(E.SyntaxKind.Identifier)?.getText()===`describe`,$t=e=>e.getStatements().filter(e=>Qt(e)),en=e=>{let t=e.getExpression().getFirstChild()?.getText();return!(0,h.isDefined)(t)||(0,h.isEmpty)(t)?!1:Ot.some(e=>t.startsWith(e))},tn=e=>{let t=Zt(e);return(0,h.isDefined)(t)?t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).some(e=>en(e)):!1},nn=e=>{let t=Zt(e);return(0,h.isDefined)(t)?t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).filter(e=>Qt(e)&&tn(e)):[]},rn=e=>{let t=Zt(e);if((0,h.isDefined)(t))return t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).find(e=>Qt(e)&&tn(e))},an=e=>{let t=rn(e);return(0,h.isDefined)(t)},on=e=>{let t=Zt(e);if(!(0,h.isDefined)(t))return!0;let n=t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement);if((0,h.isEmpty)(n))return!0;let r=new Set([`beforeEach`,`afterEach`,`beforeAll`,`afterAll`]);return n.every(e=>{let t=e.getExpressionIfKind(E.SyntaxKind.CallExpression)?.getExpressionIfKind(E.SyntaxKind.Identifier);return(0,h.isDefined)(t)?r.has(t.getText()):!1})},sn=e=>{if(e.isNamedExport?.())return kt.Named;if(e.isDefaultExport?.())return kt.Default;let t=e?.getParent();if((0,h.isDefined)(t)){if(t.isNamedExport?.())return kt.Named;if(t.isDefaultExport?.())return kt.Default}return e.isExportDefaultObject?.()??ln(e.getSourceFile(),e.getName?.())?kt.ObjectDefault:kt.NotExported},cn=(e,t)=>(0,h.isDefined)(e)?sn(e):(0,h.isDefined)(t)?t.isNamedImport?kt.Named:kt.Default:kt.Unknown;function ln(e,t){let[n]=e.getExportAssignments()??[];return n?.getDescendantsOfKind(E.SyntaxKind.Identifier).some(e=>(e.getSymbol()?.getEscapedName()??e.getText())===t)}function un(e,t){let n=$t(Jt.get(e)),r=n.find(e=>e.getText().includes(t))??n[0],i=nn(r),a=[],o=(0,h.isEmpty)(i)?[r]:i;for(let e of o){let t=Zt(e);(0,h.isDefined)(t)&&a.push(...t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).filter(e=>en(e)))}return a}let dn=e=>e.getFirstDescendantByKind(E.SyntaxKind.StringLiteral)?.getLiteralValue(),W=e=>dn(e),fn=e=>dn(e),pn=(e,t)=>{let n=e.getFullText().slice(0,Math.max(0,t)).split(`
32005
+ `):(this.indentate=function(){return``},this.tagEndChar=`>`,this.newLine=``)}function be(e,t,n,r){let i=this.j2x(e,n+1,r.concat(t));return e[this.options.textNodeName]!==void 0&&Object.keys(e).length===1?this.buildTextValNode(e[this.options.textNodeName],t,i.attrStr,n):this.buildObjectNode(i.val,t,i.attrStr,n)}function xe(e){return this.options.indentBy.repeat(e)}function Se(e){return!(!e.startsWith(this.options.attributeNamePrefix)||e===this.options.textNodeName)&&e.substr(this.attrPrefixLen)}ye.prototype.build=function(e){return this.options.preserveOrder?fe(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0,[]).val)},ye.prototype.j2x=function(e,t,n){let r=``,i=``,a=n.join(`.`);for(let o in e)if(Object.prototype.hasOwnProperty.call(e,o))if(e[o]===void 0)this.isAttribute(o)&&(i+=``);else if(e[o]===null)this.isAttribute(o)||o===this.options.cdataPropName?i+=``:o[0]===`?`?i+=this.indentate(t)+`<`+o+`?`+this.tagEndChar:i+=this.indentate(t)+`<`+o+`/`+this.tagEndChar;else if(e[o]instanceof Date)i+=this.buildTextValNode(e[o],o,``,t);else if(typeof e[o]!=`object`){let n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,a))r+=this.buildAttrPairStr(n,``+e[o]);else if(!n)if(o===this.options.textNodeName){let t=this.options.tagValueProcessor(o,``+e[o]);i+=this.replaceEntitiesValue(t)}else i+=this.buildTextValNode(e[o],o,``,t)}else if(Array.isArray(e[o])){let r=e[o].length,a=``,s=``;for(let c=0;c<r;c++){let r=e[o][c];if(r!==void 0)if(r===null)o[0]===`?`?i+=this.indentate(t)+`<`+o+`?`+this.tagEndChar:i+=this.indentate(t)+`<`+o+`/`+this.tagEndChar;else if(typeof r==`object`)if(this.options.oneListGroup){let e=this.j2x(r,t+1,n.concat(o));a+=e.val,this.options.attributesGroupName&&r.hasOwnProperty(this.options.attributesGroupName)&&(s+=e.attrStr)}else a+=this.processTextOrObjNode(r,o,t,n);else if(this.options.oneListGroup){let e=this.options.tagValueProcessor(o,r);e=this.replaceEntitiesValue(e),a+=e}else a+=this.buildTextValNode(r,o,``,t)}this.options.oneListGroup&&(a=this.buildObjectNode(a,o,s,t)),i+=a}else if(this.options.attributesGroupName&&o===this.options.attributesGroupName){let t=Object.keys(e[o]),n=t.length;for(let i=0;i<n;i++)r+=this.buildAttrPairStr(t[i],``+e[o][t[i]])}else i+=this.processTextOrObjNode(e[o],o,t,n);return{attrStr:r,val:i}},ye.prototype.buildAttrPairStr=function(e,t){return t=this.options.attributeValueProcessor(e,``+t),t=this.replaceEntitiesValue(t),this.options.suppressBooleanAttributes&&t===`true`?` `+e:` `+e+`="`+t+`"`},ye.prototype.buildObjectNode=function(e,t,n,r){if(e===``)return t[0]===`?`?this.indentate(r)+`<`+t+n+`?`+this.tagEndChar:this.indentate(r)+`<`+t+n+this.closeTag(t)+this.tagEndChar;{let i=`</`+t+this.tagEndChar,a=``;return t[0]===`?`&&(a=`?`,i=``),!n&&n!==``||e.indexOf(`<`)!==-1?!1!==this.options.commentPropName&&t===this.options.commentPropName&&a.length===0?this.indentate(r)+`\x3c!--${e}--\x3e`+this.newLine:this.indentate(r)+`<`+t+n+a+this.tagEndChar+e+this.indentate(r)+i:this.indentate(r)+`<`+t+n+a+`>`+e+i}},ye.prototype.closeTag=function(e){let t=``;return this.options.unpairedTags.indexOf(e)===-1?t=this.options.suppressEmptyNode?`/`:`></${e}`:this.options.suppressUnpairedNode||(t=`/`),t},ye.prototype.buildTextValNode=function(e,t,n,r){if(!1!==this.options.cdataPropName&&t===this.options.cdataPropName)return this.indentate(r)+`<![CDATA[${e}]]>`+this.newLine;if(!1!==this.options.commentPropName&&t===this.options.commentPropName)return this.indentate(r)+`\x3c!--${e}--\x3e`+this.newLine;if(t[0]===`?`)return this.indentate(r)+`<`+t+n+`?`+this.tagEndChar;{let i=this.options.tagValueProcessor(t,e);return i=this.replaceEntitiesValue(i),i===``?this.indentate(r)+`<`+t+n+this.closeTag(t)+this.tagEndChar:this.indentate(r)+`<`+t+n+`>`+i+`</`+t+this.tagEndChar}},ye.prototype.replaceEntitiesValue=function(e){if(e&&e.length>0&&this.options.processEntities)for(let t=0;t<this.options.entities.length;t++){let n=this.options.entities[t];e=e.replace(n.regex,n.val)}return e};let Ce={validate:s};t.exports=n})()})),cW=s((e=>{var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),c=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},l=(e,r,i)=>(i=e==null?{}:t(a(e)),c(r||!e||!e.__esModule?n(i,`default`,{value:e,enumerable:!0}):i,e));let u=l(Oi()),f=l(ki()),p=l(require(`node:fs/promises`)),m=l(require(`node:async_hooks`)),h=l(se()),g=l(Bi()),_=l(Rc()),v=l((Ol(),d(ll))),y=l(require(`node:crypto`)),b=l(iR()),x=l(pM()),S=l(fz()),C=l((Dj(),d(Ej))),w=l(require(`node:fs`)),T=l(Uz()),E=l(pV()),D=l(require(`node:child_process`)),O=l(require(`node:util`)),k=l(require(`@prisma/internals`)),A=l(lV()),ee=l(require(`node:zlib`)),j=l(cH()),te=l(uH()),M=l(mH()),ne=l(Eee()),N=l(require(`node:os`)),P=l(require(`node:events`)),F=l(gU()),I=l(tW()),re=l(Fee()),ie=l(oW()),L=l(sW()),R=l(_U()),ae=l(require(`node:process`));l(require(`node:readline`)),l(require(`node:tty`));let z=l(require(`node:path`)),oe=l(require(`@anthropic-ai/claude-agent-sdk`)),B={DELETE:`delete`,COMMENT_OUT:`comment out`,KEEP:`keep`,SKIP:`skip`},ce={GREEN:`Green`,GREY:`Grey`,RED:`Red`,NA:`NA`},le={GREEN:`Green`,GREY:`Grey`,RUNTIME_ERROR:`RuntimeError`},ue=function(e){return e.IDE=`IDE`,e.CLI=`CLI`,e}({}),de=function(e){return e.SIBLING_FOLDER=`siblingFolder`,e.ROOT_FOLDER=`rootFolder`,e}({}),fe=function(e){return e.JEST=`jest`,e.MOCHA=`mocha`,e.VITEST=`vitest`,e.PYTEST=`pytest`,e}({}),pe=function(e){return e.SPEC=`spec`,e.TEST=`test`,e}({}),me=function(e){return e.CAMEL_CASE=`camelCase`,e.KEBAB_CASE=`kebabCase`,e}({}),he=function(e){return e.NONE=`none`,e.CATEGORIES=`categories`,e}({}),ge=function(e){return e.NEW_CODE_FILE=`newCodeFile`,e.OVERRIDE_CODE_FILE=`overrideCodeFile`,e}({}),_e=function(e){return e.ON=`on`,e.OFF=`off`,e}({}),ve={DEFAULT:0,MIN:0,MAX:100},ye={DEFAULT:5,MIN:1,MAX:50};u.z.object({rootPath:u.z.string().default(process.cwd()),testStructure:u.z.enum(de).optional(),testFramework:u.z.enum(fe).optional(),testSuffix:u.z.enum(pe).optional(),testFileName:u.z.enum(me).optional(),calculateCoverage:u.z.enum(_e).optional(),coverageThreshold:u.z.number().min(ve.MIN).max(ve.MAX).default(ve.DEFAULT),requestSource:u.z.enum(ue).optional(),concurrency:u.z.number().min(ye.MIN).max(ye.MAX).default(ye.DEFAULT),backendURL:u.z.string().optional(),secretToken:u.z.string().optional(),modelName:u.z.string().optional(),context:u.z.object({git:u.z.object({ref_name:u.z.string(),repository:u.z.string(),owner:u.z.string(),sha:u.z.string(),workflowRunId:u.z.string(),remoteUrl:u.z.string(),topLevel:u.z.string()}).partial().optional()}).optional(),testCommand:u.z.string().optional(),coverageCommand:u.z.string().optional(),lintCommand:u.z.string().optional(),prettierCommand:u.z.string().optional(),disableLintRules:u.z.boolean().optional(),ignoreAsAnyLintErrors:u.z.boolean().optional(),includeEarlyTests:u.z.boolean().optional(),greyTestBehaviour:u.z.enum(B).optional(),redTestBehaviour:u.z.enum(B).optional(),keepErrorTests:u.z.boolean().optional(),keepFailedTests:u.z.boolean().optional(),conditionalKeep:u.z.boolean().optional(),continueOnTestErrors:u.z.boolean().optional(),perFunctionTimeout:u.z.number().positive().optional(),dynamicPromptIterations:u.z.number().min(0).max(10).optional(),removeComments:u.z.boolean().optional(),experimentalAgentSdk:u.z.boolean().optional(),agentSdkModel:u.z.string().optional(),agentSdkBudget:u.z.number().positive().optional(),debug:u.z.boolean().optional(),verbose:u.z.boolean().optional(),progressLogger:u.z.custom().optional()});var be=`@earlyai/ts-agent`,xe=`0.74.2`;let Se={VSCODE:`vscode`,GITHUB_ACTION:`github-action`,UNKNOWN:`unknown`},Ce=`$early_filename`,we=`$early_coverage_dir`,Te=`npx jest ${Ce} --no-coverage --silent --json --forceExit --maxWorkers=1`,Ee=`npx --no eslint ${Ce}`,De=`npx --no prettier ${Ce} --write`,Oe={rootPath:process.cwd(),isSiblingFolderStructured:!0,gitURL:`https://github.com/your-owner/your-repo`,testFramework:fe.JEST,greyTestBehaviour:B.DELETE,redTestBehaviour:B.DELETE,keepErrorTests:!1,keepFailedTests:!1,conditionalKeep:!1,continueOnTestErrors:!0,generatedTestStructure:he.CATEGORIES,isRootFolderStructured:!1,clientSource:Se.GITHUB_ACTION,backendURL:`https://api.startearly.ai`,requestSource:ue.CLI,userPrompt:``,testLocation:`__tests__`,coverageThreshold:ve.DEFAULT,concurrency:5,testFileFormat:`ts`,outputType:ge.NEW_CODE_FILE,shouldRefreshCoverage:!0,kebabCaseFileName:!1,earlyTestFilenameSuffix:`.early.${pe.TEST}`,testSuffix:pe.TEST,isAppendPrompt:!1,dynamicPromptIterations:3,wsServerEndpoint:`wss://api.startearly.ai`,secretToken:``,loggerConfig:{consoleEnabled:!1,azureEnabled:!0,azureConnectionString:`InstrumentationKey=8b9b0d6a-5400-44a3-ada6-3cd026de6cfe;IngestionEndpoint=https://eastus-8.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus.livediagnostics.monitor.azure.com/;ApplicationId=d6e130b6-4aaa-4dcc-8d26-c1fa25d4656a`},context:void 0,includeEarlyTests:!1,lintCommand:Ee,prettierCommand:De,disableLintRules:!1,ignoreAsAnyLintErrors:!0,allowUndefinedLintErrors:!0,perFunctionTimeout:24e4,removeComments:!0,experimentalAgentSdk:!1,agentSdkModel:void 0,agentSdkBudget:void 0,debug:!1,verbose:!1},ke=e=>{let t=`testFramework.testSuffix.backendURL.requestSource.secretToken.concurrency.coverageThreshold.context.rootPath.testCommand.coverageCommand.lintCommand.prettierCommand.disableLintRules.greyTestBehaviour.redTestBehaviour.keepErrorTests.keepFailedTests.conditionalKeep.continueOnTestErrors.perFunctionTimeout.dynamicPromptIterations.removeComments.experimentalAgentSdk.agentSdkModel.agentSdkBudget.debug.verbose.progressLogger`.split(`.`).reduce((t,n)=>(0,h.isDefined)(e[n])?{...t,[n]:e[n]}:t,{}),n={...(0,h.isDefined)(e.testStructure)&&{isSiblingFolderStructured:e.testStructure===de.SIBLING_FOLDER,isRootFolderStructured:e.testStructure===de.ROOT_FOLDER},...(0,h.isDefined)(e.testFileName)&&{kebabCaseFileName:e.testFileName===me.KEBAB_CASE},...(0,h.isDefined)(e.calculateCoverage)&&{shouldRefreshCoverage:e.calculateCoverage===_e.ON},...(0,h.isDefined)(e.modelName)&&{fixTestsLLMModelName:e.modelName,generateTestsLLMModelName:e.modelName},...(0,h.isDefined)(e.testSuffix)&&{earlyTestFilenameSuffix:`.early.${e.testSuffix}`},...(0,h.isDefined)(e.requestSource)&&{clientSource:e.requestSource===ue.IDE?Se.VSCODE:Se.GITHUB_ACTION}};return{...t,...n}},Ae=new v.Chalk({level:1}),je=()=>{},Me={info:je,verbose:je,debug:je},Ne=[Ae.cyan,Ae.magenta,Ae.green,Ae.blue,Ae.redBright,Ae.cyanBright,Ae.magentaBright,Ae.greenBright];function Pe(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.codePointAt(n)??0,t=Math.imul(t,16777619);return Ne[Math.abs(t)%Ne.length]}function Fe(e,t){let n=(0,h.isDefined)(t.parentName)?`${t.parentName}.${t.methodName}`:t.methodName,r=Pe(n)(`[${n}]`);return{info:(...t)=>e.info(r,...t),verbose:(...t)=>e.verbose(r,...t),debug:(...t)=>e.debug(r,...t)}}var Ie=s(((e,t)=>{function n(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),Le=s(((e,t)=>{function n(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),Re=l(Ie()),ze=l(Le()),Be,Ve;let He=class{config;constructor(e,t={}){if(!(0,h.isDefined)(e)){this.config=Oe;return}let n=ke(e);this.config=(0,h.merge)(Oe,n,t)}getRootPath=()=>this.config.rootPath;isSiblingFolderStructured=()=>this.config.isSiblingFolderStructured;getGitURL=()=>this.config.context?.git?.remoteUrl??this.config.gitURL;getGitTopLevel=()=>this.config.context?.git?.topLevel??this.getRootPath();getTestFramework=()=>this.config.testFramework;getGreyTestBehaviour=()=>this.config.greyTestBehaviour;getRedTestBehaviour=()=>this.config.redTestBehaviour;shouldKeepErrorTests=()=>this.config.keepErrorTests;shouldKeepFailedTests=()=>this.config.keepFailedTests;shouldConditionalKeep=()=>this.config.conditionalKeep;getGeneratedTestStructure=()=>this.config.generatedTestStructure;getGenerateTestsLLMModelName=()=>this.config.generateTestsLLMModelName;isRootFolderStructured=()=>this.config.isRootFolderStructured;getLLMTemperature=()=>this.config.llmTemperature;getLLMTopP=()=>this.config.llmTopP;getClientSource=()=>this.config.clientSource;getBackendURL=()=>this.config.backendURL;getRequestSource=()=>this.config.requestSource;getUserPrompt=()=>this.config.userPrompt;getTestLocation=()=>this.config.testLocation;getCoverageThreshold=()=>this.config.coverageThreshold;getConcurrency=()=>this.config.concurrency;getTestFileFormat=()=>this.config.testFileFormat;getOutputType=()=>this.config.outputType;getShouldRefreshCoverage=()=>this.config.shouldRefreshCoverage;isKebabCaseFileName=()=>this.config.kebabCaseFileName;getEarlyTestFilenameSuffix=()=>this.config.earlyTestFilenameSuffix;getTestSuffix=()=>this.config.testSuffix;getIsAppendPrompt=()=>this.config.isAppendPrompt;getFixTestsLLMModelName=()=>this.config.fixTestsLLMModelName;getDynamicPromptIterations=()=>this.config.dynamicPromptIterations;getWSServerEndpoint=()=>this.config.backendURL.replace(`http://`,`ws://`).replace(`https://`,`wss://`);getAnthropicProxyUrl=()=>new URL(`/anthropic`,this.config.backendURL).href;getSecretToken=()=>this.config.secretToken;getLoggerConfig=()=>this.config.loggerConfig;getContext=()=>this.config.context;getTestCommand=()=>this.config.testCommand;getCoverageCommand=()=>this.config.coverageCommand;getLintCommand=()=>this.config.lintCommand;getPrettierCommand=()=>this.config.prettierCommand;shouldDisableLintRules=()=>this.config.disableLintRules;shouldIgnoreAsAnyLintErrors=()=>this.config.ignoreAsAnyLintErrors;allowUndefinedLintErrors=()=>this.config.allowUndefinedLintErrors;getIncludeEarlyTests=()=>this.config.includeEarlyTests??!1;shouldContinueOnTestErrors=()=>this.config.continueOnTestErrors;getPerFunctionTimeout=()=>this.config.perFunctionTimeout;shouldRemoveComments=()=>this.config.removeComments;getExperimentalAgentSdk=()=>this.config.experimentalAgentSdk;getAgentSdkModel=()=>this.config.agentSdkModel;getAgentSdkBudget=()=>this.config.agentSdkBudget;updateContext=e=>{this.config.context=(0,h.merge)(this.config.context??{},e??{})};updateRootPath=e=>{this.config.rootPath=e};isDebug=()=>this.config.debug??!1;isVerbose=()=>this.config.verbose??!1;getProgressLogger=e=>{let t=this.config.progressLogger??Me;return(0,h.isDefined)(e)?Fe(t,e):t}};He=(0,ze.default)([(0,_.injectable)(`Singleton`),(0,Re.default)(`design:paramtypes`,[typeof(Be=typeof Partial<`u`&&Partial)==`function`?Be:Object,typeof(Ve=typeof Partial<`u`&&Partial)==`function`?Ve:Object])],He);var V=new _.Container({autobind:!0,defaultScope:`Singleton`});let Ue=()=>V.get(He);var We=class{storage=new m.AsyncLocalStorage;isConsoleEnabled;constructor(e){this.isConsoleEnabled=e}orderedFlush={nextOrder:1,pending:new Map};resetOrder(){this.orderedFlush={nextOrder:1,pending:new Map}}async withBufferedPrinting(e,t){let n=[];try{return await this.storage.run(n,e)}finally{this.flushInOrder(t,n)}}printOrBuffer(e,t){let n=this.storage.getStore();if((0,h.isDefined)(n)){n.push({method:e,message:t});return}this.isConsoleEnabled&&console[e](t)}async flushInOrder(e,t){if(this.orderedFlush.nextOrder===e){this.flushBuffer(t),this.orderedFlush.nextOrder++,this.drainPendingFlushes();return}return new Promise(n=>{this.orderedFlush.pending.set(e,{buffer:t,resolve:n})})}drainPendingFlushes(){let e=this.orderedFlush.pending.get(this.orderedFlush.nextOrder);for(;(0,h.isDefined)(e);)this.orderedFlush.pending.delete(this.orderedFlush.nextOrder),this.flushBuffer(e.buffer),this.orderedFlush.nextOrder++,e.resolve(),e=this.orderedFlush.pending.get(this.orderedFlush.nextOrder)}flushBuffer(e){if(this.isConsoleEnabled)for(let t of e)console[t.method](t.message)}};let Ge=function(e){return e.DEFAULT=`default`,e.VERBOSE=`verbose`,e.DEBUG=`debug`,e}({}),Ke=function(e){return e.INFO=`info`,e.WARN=`warn`,e}({});function qe(){return(0,y.randomUUID)()}function Je(){let e=``;for(let t=0;t<8;t++)e+=`abcdefghijklmnopqrstuvwxyz0123456789`.charAt(Math.floor(Math.random()*36));return e}var Ye=l(Ie()),Xe=l(Le()),Ze=class{export(e,t){for(let t of e){let e=t.body;if((0,h.isString)(e))console.info(e);else try{console.info(JSON.stringify(e))}catch{console.info(String(e))}}t({code:0})}shutdown(){return Promise.resolve()}};let Qe=class{loggerProvider;config;constructor(e){this.config=e,this.loggerProvider=new S.LoggerProvider({resource:(0,x.resourceFromAttributes)({[C.ATTR_SERVICE_NAME]:be,[C.ATTR_SERVICE_VERSION]:xe})}),this.initializeExporters(),this.setGlobalLoggerProvider()}getLogger(e){return this.loggerProvider.getLogger(e)}initializeExporters(){let e=[];if(this.config.consoleEnabled){let t=new Ze;e.push(new S.SimpleLogRecordProcessor(t))}if(this.config.azureEnabled&&(0,h.isDefined)(this.config.azureConnectionString)){let t=new b.AzureMonitorLogExporter({connectionString:this.config.azureConnectionString});e.push(new S.BatchLogRecordProcessor(t))}this.loggerProvider=new S.LoggerProvider({processors:e})}setGlobalLoggerProvider(){g.logs.setGlobalLoggerProvider(this.loggerProvider)}};Qe=(0,Xe.default)([(0,_.injectable)(),(0,Ye.default)(`design:paramtypes`,[Object])],Qe),l(Ie()),l(Le());let H=new class{storage;otelService;otelLogger;isConsoleEnabled;printBuffer;default=this.createLogObject(Ge.DEFAULT);verbose=this.createLogObject(Ge.VERBOSE);constructor(e){this.storage=new m.AsyncLocalStorage,this.otelService=new Qe(e),this.otelLogger=this.otelService.getLogger(`ts-agent`),this.isConsoleEnabled=e.consoleEnabled,this.printBuffer=new We(e.consoleEnabled)}resetPrintOrder(){this.printBuffer.resetOrder()}async withBufferedPrinting(e,t){return this.printBuffer.withBufferedPrinting(e,t)}info={startLog:(e,...t)=>this.log(g.SeverityNumber.INFO,`Start ${e}`,...t),endLog:(e,...t)=>this.log(g.SeverityNumber.INFO,`End ${e}`,...t),failedLog:(e,...t)=>this.log(g.SeverityNumber.INFO,`Failed ${e}`,...t),defaultLog:(e,...t)=>this.log(g.SeverityNumber.INFO,e,...t)};debug={startLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,`Start ${e}`,...t),endLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,`End ${e}`,...t),failedLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,`Failed ${e}`,...t),defaultLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,e,...t)};error(e,t,...n){let r=t instanceof Error?`${e} ${t.message} ${t.stack}`:`${e} ${JSON.stringify(t)}`;this.log(g.SeverityNumber.ERROR,r,...n)}getRequestId(){return this.storage.getStore()?.requestId??``}getTraceId(){return this.storage.getStore()?.traceId??``}log(e,t,...n){let r=this.formatMessage(t,...n);this.logToOpenTelemetry(e,r),!(!this.isConsoleEnabled||!this.isLevelEnabled(Ge.DEBUG))&&console.info(r)}logToOpenTelemetry(e,t){let n=this.storage.getStore(),r={service:be,version:xe};(0,h.isDefined)(n)&&((0,h.isDefined)(n.traceId)&&(r.traceId=n.traceId),(0,h.isDefined)(n.requestId)&&(r.requestId=n.requestId),(0,h.isDefined)(n.category)&&(r.category=n.category),(0,h.isDefined)(n.subCategory)&&(r.subCategory=n.subCategory),(0,h.isDefined)(n.testedMethodClass)&&(r.testedMethodClass=n.testedMethodClass),(0,h.isDefined)(n.testedFunction)&&(r.testedFunction=n.testedFunction),(0,h.isDefined)(n.userId)&&(r.userId=n.userId.toString())),this.otelLogger.emit({severityNumber:e,severityText:this.getSeverityText(e),body:t,attributes:r})}getSeverityText(e){switch(e){case g.SeverityNumber.TRACE:return`TRACE`;case g.SeverityNumber.DEBUG:return`DEBUG`;case g.SeverityNumber.INFO:return`INFO`;case g.SeverityNumber.WARN:return`WARN`;case g.SeverityNumber.ERROR:return`ERROR`;case g.SeverityNumber.FATAL:return`FATAL`;default:return`INFO`}}formatMessage(e,...t){let n=this.formatPrefix(),r=(0,h.isDefined)(n)?`${n} ${e}`:e;return this.formatPrint(r,...t)}formatPrint(e,...t){return(0,h.isEmpty)(t)?e:`${e} ${t.map(e=>JSON.stringify(e)).join(` `)}`}withContext=(e,t,n)=>{let r=n.value,i=this.storage;return n.value=function(...e){let t=i.getStore();if(t){let n={...t};return i.run(n,()=>r.apply(this,e))}let n={traceId:Je(),requestId:qe()};return i.run(n,()=>r.apply(this,e))},n};addContext(e){let t=this.storage.getStore();(0,h.isDefined)(t)&&(t.category=e.category??t.category,t.subCategory=e.subCategory??t.subCategory,t.testedMethodClass=e.testedMethodClass??t.testedMethodClass,t.testedFunction=e.testedFunction??t.testedFunction,t.userId=e.userId??t.userId)}captureContext({withNewRequestId:e=!1}={}){let t=this.storage.getStore();return t?{...t,...e&&{requestId:qe()}}:void 0}async runWithContext(e,t){return(0,h.isDefined)(e)?this.storage.run(e,t):t()}isLevelEnabled(e){switch(e){case Ge.DEFAULT:return!0;case Ge.VERBOSE:return Ue().isVerbose()||Ue().isDebug();case Ge.DEBUG:return Ue().isDebug()}}createLogObject(e){return{info:(t,...n)=>{this.isLevelEnabled(e)&&this.printOrBuffer(Ke.INFO,this.formatPrint(t,...n))},warn:(t,...n)=>{this.isLevelEnabled(e)&&this.printOrBuffer(Ke.WARN,this.formatPrint(t,...n))}}}printOrBuffer(e,t){this.printBuffer.printOrBuffer(e,t)}formatPrefix(){let e=this.storage.getStore();if(!(0,h.isDefined)(e))return``;let t=[];return(0,h.isDefined)(e.traceId)&&t.push(`[${e.traceId}]`),(0,h.isDefined)(e.requestId)&&t.push(`[${e.requestId}]`),(0,h.isDefined)(e.category)&&t.push(`[${e.category}]`),(0,h.isDefined)(e.subCategory)&&t.push(`[${e.subCategory}]`),(0,h.isDefined)(e.testedMethodClass)&&t.push(`[${e.testedMethodClass}]`),(0,h.isDefined)(e.testedFunction)&&t.push(`[${e.testedFunction}]`),t.join(` `)}}({consoleEnabled:!1,azureEnabled:!0,azureConnectionString:`InstrumentationKey=c18a3332-f844-498f-98e0-d818996cf526;IngestionEndpoint=https://eastus2-3.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/;ApplicationId=2150ffe0-cb0f-4b00-9562-d3385b383d74`});function $e(e){return function(t,n,r){return(0,h.isDefined)(e)&&H.addContext(e),H.withContext(t,n,r)}}var et=class e{rootPath;absolutePath;static EARLY_FILENAME_VAR=`$early_filename`;constructor(e){this.rootPath=f.default.normalizeTrim(Ue().getRootPath());let t=f.default.normalizeTrim(e),n=f.default.normalizeTrim(this.rootPath);if(t===n||t.startsWith(n+f.default.sep))this.absolutePath=t;else{let e=t.replace(/^\//,``);this.absolutePath=f.default.resolve(this.rootPath,e)}}static fromSourceFile(t){let n=f.default.normalizeTrim(t.getFilePath());return new e(f.default.relative(f.default.normalizeTrim(Ue().getRootPath()),n))}static fromAbsolutePath(t){let n=f.default.normalizeTrim(t);return new e(f.default.relative(f.default.normalizeTrim(Ue().getRootPath()),n))}static fromRelativePath(t){return new e(t)}getRelativeFilePath(){return f.default.relative(this.rootPath,this.absolutePath)}getAbsoluteFilePath(){return this.absolutePath}async isFileExists(){try{return(await p.default.stat(this.absolutePath)).isFile()}catch{return!1}}async isDirectoryExists(){try{return(await p.default.stat(this.absolutePath)).isDirectory()}catch{return!1}}async createDirectory(e){await p.default.mkdir(this.absolutePath,{recursive:e?.recursive??!0})}async getText(){try{return await p.default.readFile(this.absolutePath,`utf8`)}catch{return``}}async upsert(e){let t=f.default.dirname(this.absolutePath);await p.default.mkdir(t,{recursive:!0}),await(await this.isFileExists()?p.default.appendFile(this.absolutePath,e):p.default.writeFile(this.absolutePath,e)),H.info.defaultLog(`Upserted file`,{path:this.getRelativeFilePath()})}async replace(e){let t=f.default.dirname(this.absolutePath);await p.default.mkdir(t,{recursive:!0}),await p.default.writeFile(this.absolutePath,e),H.info.defaultLog(`Replaced file`,{path:this.getRelativeFilePath()})}async delete(){try{await p.default.unlink(this.absolutePath),H.info.defaultLog(`Deleted file`,{path:this.getRelativeFilePath()})}catch{}}};let tt={WIN32:`win32`,DARWIN:`darwin`,LINUX:`linux`},nt={JAVASCRIPT:`javascript`,TYPESCRIPT:`typescript`,PYTHON:`python`},rt=e=>{let t=Ue().getRootPath();return f.default.resolve(t,e)},it=e=>{let t=Ue().getRootPath(),n=f.default.normalize(e);return f.default.relative(t,n)},at=e=>({".js":`javascript`,".mjs":`javascript`,".cjs":`javascript`,".jsx":`javascript`,".ts":`typescript`,".tsx":`typescript`,".py":`python`})[e.toLowerCase()]??`javascript`;function ot(e){return at((0,f.extname)(e))}function st(e){return at((0,f.extname)(e))===`typescript`}function U(e){return at((0,f.extname)(e))===nt.PYTHON}function ct(e){let t=Ue().getRootPath();if(!(0,h.isDefined)(t))throw Error(`Workspace root path is not defined`);if((0,h.isEmpty)(e))return f.default.normalize(t);let n=f.default.normalize(t),r=f.default.normalize(e);if(process.platform===tt.WIN32){let t=n.split(`:`)[0].toUpperCase(),i=r.split(`:`)[0].toUpperCase();if(t!==i&&!i.startsWith(t))return e}return f.default.relative(n,r)}function lt(e){return e.startsWith(`../`)?`../${e}`:e.startsWith(`./`)?`.${e}`:e}function ut(e){let t=f.default.normalize(rt(e)),n=f.default.normalize((0,T.default)([`package.json`,`project.json`],{cwd:t})??``);if(!n)return``;let r=it((0,f.dirname)(n));return r.startsWith(`/`)?r.slice(1):r}function dt(e,t,n){if(!pt(e))return e;let r=n===``?t:t.replace(n,``),i=n===``?ht(r):mt(r),a=r.split(`/`).slice(0,-1),o=ft(e,`../`),s=o>0?a.slice(0,-o).join(`/`):(0,f.dirname)(r),c=e.replaceAll(`../`,``).replaceAll(`./`,``);return f.default.join(i,s,c)}function ft(e,t){return e.split(t).length-1}function pt(e){return e.startsWith(`../`)||e.startsWith(`./`)}function mt(e){let t=ft(e,`/`);return`../`.repeat(t-1)}function ht(e){let t=ft(e,`/`);return`../`.repeat(t+1)}function gt(e){return e?.includes(`node_modules/`)}let _t=e=>e.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`);function vt(e,t){let n=f.default.isAbsolute(e)?e:rt(e);return(0,T.default)(t,{cwd:n})}function yt(e,t){let n=vt(e,t);if(!(0,h.isDefined)(n))return;let r=w.readFileSync(n,`utf8`);return JSON.parse(r)}function bt(e){return yt(e,`package.json`)}function xt(e,t){let{dependencies:n={},devDependencies:r={}}=e;return Object.keys({...r,...n}).includes(t)}let St=[{path:`eslint.config.js`,isFlat:!0},{path:`eslint.config.cjs`,isFlat:!0},{path:`eslint.config.mjs`,isFlat:!0},{path:`eslint.config.ts`,isFlat:!0},{path:`eslint.config.mts`,isFlat:!0},{path:`eslint.config.cts`,isFlat:!0},{path:`.eslintrc`,isFlat:!1},{path:`.eslintrc.js`,isFlat:!1},{path:`.eslintrc.cjs`,isFlat:!1},{path:`.eslintrc.mjs`,isFlat:!1},{path:`.eslintrc.json`,isFlat:!1},{path:`.eslintrc.yaml`,isFlat:!1},{path:`.eslintrc.yml`,isFlat:!1}],Ct=[`@typescript-eslint/no-undefined`,`unicorn/no-useless-undefined`,`no-undefined`];async function wt(e){for(let{path:t,isFlat:n}of St){let r=f.default.join(e,t);if(await et.fromAbsolutePath(r).isFileExists())return{path:r,isFlat:n}}return bt(e)?.eslint?{path:vt(e,`package.json`),isFlat:!1}:{path:null,isFlat:!1}}let Tt={GET_TESTABLES:`get-testables`,GET_COVERAGE:`get-coverage`,GENERATE_COVERAGE:`generate-coverage`,SET_COVERAGE:`set-coverage`,GENERATE_TESTS:`generate-tests`,INITIALIZATION:`initialization`,GET_TESTED_CODE_DATA_SOURCE:`get-tested-code-data-source`,DYNAMIC_PROMPT:`dynamic-prompt`,TEST_VALIDATION:`test-validation`},Et={CODE_EXTRACTOR:`code-extractor`,CODE_REFINEMENT:`code-refinement`,TEST_MANAGEMENT:`test-management`,TEST_VALIDATOR:`test-validator`,CONFIG_FILE:`config-file`,COMMAND_EXECUTION:`command-execution`},Dt=[`.jsx`,`.tsx`],Ot=[`it`,`test`,`it.each`,`test.each`],kt=function(e){return e.Default=`default`,e.ObjectDefault=`object-default`,e.Named=`named`,e.Unknown=`unknown`,e.NotExported=`not-exported`,e}({}),At=function(e){return e.PRIVATE=`private`,e.PROTECTED=`protected`,e.PUBLIC=`public`,e}({}),jt=function(e){return e.REACT=`react`,e.ANGULAR=`angular`,e}({}),Mt=`unknown`,Nt=(0,O.promisify)(D.default.exec);async function Pt(e,{cwd:t=Ue().getRootPath(),timeout:n=1e4}={}){return(await Nt(e,{cwd:t,maxBuffer:500*1024,timeout:n}))?.stdout?.toString()??``}let Ft=e=>{let t=rt(e);return(0,T.default)(`jest.config.+(js|ts|mjs|cjs|json)`,{cwd:t})},It=e=>(0,h.isObject)(e)&&(0,h.isString)(e.rootDir),Lt=async e=>{let t;if(H.addContext({subCategory:Et.CONFIG_FILE}),(0,h.isDefined)(e)){let n=Ft(e);n!==null&&(t=(0,f.dirname)(n))}t??=Ue().getRootPath();let n;try{if(n=await Pt(`npx jest --showConfig`,{cwd:t}),!(0,h.isString)(n))throw H.info.defaultLog(`Jest config return is not a string`,n),Error(`Jest config return is not a string`);let e=JSON.parse(n);if((0,h.isObject)(e)&&(0,h.isArray)(e.configs)&&e.configs.every(e=>It(e)))return{projectConfigs:e.configs,globalConfig:e.globalConfig,configs:e.configs}}catch(e){H.info.defaultLog(`Cannot read jest config`,(0,h.getErrorMessage)(e)),H.info.defaultLog(`Failed reading jest config`,e,(0,h.getErrorMessage)(e));return}H.info.defaultLog(`Invalid jest config or config in not supported format`)},Rt=async()=>{let e=[Ue().getRootPath()],t=f.default.join(`node_modules`,`.prisma`,`client`,`index.d.ts`),n=e.map(e=>f.default.join(e,t)).map(e=>et.fromAbsolutePath(e));return(await(0,h.filterAsync)(n,e=>e.isFileExists())).map(e=>e.getAbsoluteFilePath())},zt=async()=>{try{let e=Ue().getRootPath();if(!(0,h.isDefined)(e))return[];let t=await(0,k.getSchemaWithPathOptional)(``,``,{cwd:e});if(!(0,h.isDefined)(t))return[];let n=t.schemas.map(e=>e[1]),r=new Set;for(let e of n){let n=(await(0,k.getConfig)({datamodel:e,ignoreEnvVarErrors:!0})).generators;for(let e of n)if((0,h.isDefined)(e.output?.value)){let n=f.default.join(f.default.resolve(t.schemaRootDir,e.output.value),`index.d.ts`);await et.fromAbsolutePath(n).isFileExists()&&r.add(n)}}return[...r]}catch(e){return H.error(`Failed to get prisma typings paths`,e),[]}},Bt=async()=>(await Promise.all([Rt(),zt()])).flat(),Vt=async(e,t=!1,n)=>{let r=`!**/node_modules/**`;if(t)return new E.Project({useInMemoryFileSystem:!0,compilerOptions:n});let i=st(e),a=Ht((0,f.dirname)(rt(e)),Ue().isSiblingFolderStructured());if(!i&&!(0,h.isDefined)(a)){let t=await Wt(e);if(!(0,h.isDefined)(t)||(0,h.isEmpty)(t))throw Error(`Cannot find source code path in jest config`);let n=new E.Project({compilerOptions:{allowJs:!0,maxNodeModuleJsDepth:0},useInMemoryFileSystem:!1});return n.addSourceFilesAtPaths([...t,r]),n}if(!i&&(0,h.isDefined)(a)){let t=new E.Project({tsConfigFilePath:a,compilerOptions:{allowJs:!0,maxNodeModuleJsDepth:0}}),n=await Wt(e);return t.addSourceFilesAtPaths([...n,r]),t}let o=new E.Project({tsConfigFilePath:a,compilerOptions:{maxNodeModuleJsDepth:0}}),s=await Bt();for(let e of s)o.addSourceFileAtPath(e);return o},Ht=(e,t)=>{let n;try{n=Ut(e)}catch{t&&(n=Ut((0,f.dirname)(e)))}return n},Ut=e=>{let t=e,n=/^(tsconfig|jsconfig).*\.json$/;for(;t!==(0,f.dirname)(t);){let e=(0,f.join)(t,`tsconfig.json`),r=(0,f.join)(t,`jsconfig.json`);if(!(0,w.existsSync)(t))return Ut((0,f.dirname)(t));if((0,w.existsSync)(e))return e;if((0,w.existsSync)(r))return r;let i=(0,w.readdirSync)(t);for(let e of i)if(n.test(e))return(0,f.join)(t,e);t=(0,f.dirname)(t)}},Wt=async e=>{let t=await Lt(e);if((0,h.isDefined)(t)){let e=t?.configs[0].roots.map(e=>f.default.join(e,`**/*.{ts,js,tsx,jsx}`));if(!(0,h.isEmpty)(e))return e}return[rt(ut(e))]};var Gt=l(Ie()),Kt=l(Le());let qt=`The ts-morph project is not initialized.`,Jt=new class{storage=new m.AsyncLocalStorage;_project;clear(){this._project=void 0}async init(e,t,n){let r=rt(e);if((0,h.isDefined)(this._project))return this._project.addSourceFileAtPathIfExists(r);this._project=await Vt(e,t,n);let i=this.storage.getStore();if((0,h.isDefined)(i))return this._project.addSourceFileAtPathIfExists(r)}add(e,t){let n=rt(e),r=this.storage.getStore()?.getProject();if(!(0,h.isDefined)(r))throw Error(qt);return r.createSourceFile(n,t,{overwrite:!0})}update(e,t){let n=this.get(e);return n.replaceWithText(t),n}addFile(e){(0,h.isDefined)(this._project)&&this._project.addSourceFileAtPathIfExists(e)}removeFile(e){if(!(0,h.isDefined)(this._project))return;let t=this._project.getSourceFile(e);(0,h.isDefined)(t)&&this._project.removeSourceFile(t)}async refreshFromFileSystem(e){if(!(0,h.isDefined)(this._project))return;let t=rt(e),n=this._project?.getSourceFile(e)??this._project?.getSourceFile(t);if((0,h.isDefined)(n)){let e=n.getFilePath();this._project.removeSourceFile(n),this._project.addSourceFileAtPath(e)}}get(e){let t=rt(e),n=this.storage.getStore()?.getProject();if(!(0,h.isDefined)(n))throw Error(qt+` store`);let r=n.getSourceFile(t);if(!(0,h.isDefined)(r))throw Error(`The source file is absent. ${e}`);return r}async save(e){await this.get(e).save()}async delete(e){await this.get(e).deleteImmediately()}getOrUndefined(e){let t=rt(e);return this._project?.getSourceFile(t)}withContext=(e,t,n)=>{let r=n.value,i=this.storage;if((0,h.isDefined)(i.getStore()))return n;let a=()=>this._project;return n.value=function(...e){let t={getProject:a};return i.run(t,()=>r.apply(this,e))},n}},Yt=Jt.withContext,Xt=async e=>{class t{async fn(){return e()}}(0,Kt.default)([Yt,(0,Gt.default)(`design:type`,Function),(0,Gt.default)(`design:paramtypes`,[]),(0,Gt.default)(`design:returntype`,Promise)],t.prototype,`fn`,null),await new t().fn()},Zt=e=>{let t=e?.asKind(E.SyntaxKind.ExpressionStatement)?.getExpression();if(!(0,h.isDefined)(t))return;let n=t.asKind(E.SyntaxKind.CallExpression)?.getArguments()?.at(-1),r=n?.asKind(E.SyntaxKind.ArrowFunction)?.getBody(),i=n?.asKind(E.SyntaxKind.FunctionExpression)?.getBody();return r?.asKind(E.SyntaxKind.Block)??i?.asKind(E.SyntaxKind.Block)},Qt=e=>E.Node.isExpressionStatement(e)&&e.getFirstChildByKind(E.SyntaxKind.CallExpression)?.getFirstChildByKind(E.SyntaxKind.Identifier)?.getText()===`describe`,$t=e=>e.getStatements().filter(e=>Qt(e)),en=e=>{let t=e.getExpression().getFirstChild()?.getText();return!(0,h.isDefined)(t)||(0,h.isEmpty)(t)?!1:Ot.some(e=>t.startsWith(e))},tn=e=>{let t=Zt(e);return(0,h.isDefined)(t)?t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).some(e=>en(e)):!1},nn=e=>{let t=Zt(e);return(0,h.isDefined)(t)?t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).filter(e=>Qt(e)&&tn(e)):[]},rn=e=>{let t=Zt(e);if((0,h.isDefined)(t))return t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).find(e=>Qt(e)&&tn(e))},an=e=>{let t=rn(e);return(0,h.isDefined)(t)},on=e=>{let t=Zt(e);if(!(0,h.isDefined)(t))return!0;let n=t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement);if((0,h.isEmpty)(n))return!0;let r=new Set([`beforeEach`,`afterEach`,`beforeAll`,`afterAll`]);return n.every(e=>{let t=e.getExpressionIfKind(E.SyntaxKind.CallExpression)?.getExpressionIfKind(E.SyntaxKind.Identifier);return(0,h.isDefined)(t)?r.has(t.getText()):!1})},sn=e=>{if(e.isNamedExport?.())return kt.Named;if(e.isDefaultExport?.())return kt.Default;let t=e?.getParent();if((0,h.isDefined)(t)){if(t.isNamedExport?.())return kt.Named;if(t.isDefaultExport?.())return kt.Default}return e.isExportDefaultObject?.()??ln(e.getSourceFile(),e.getName?.())?kt.ObjectDefault:kt.NotExported},cn=(e,t)=>(0,h.isDefined)(e)?sn(e):(0,h.isDefined)(t)?t.isNamedImport?kt.Named:kt.Default:kt.Unknown;function ln(e,t){let[n]=e.getExportAssignments()??[];return n?.getDescendantsOfKind(E.SyntaxKind.Identifier).some(e=>(e.getSymbol()?.getEscapedName()??e.getText())===t)}function un(e,t){let n=$t(Jt.get(e)),r=n.find(e=>e.getText().includes(t))??n[0],i=nn(r),a=[],o=(0,h.isEmpty)(i)?[r]:i;for(let e of o){let t=Zt(e);(0,h.isDefined)(t)&&a.push(...t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).filter(e=>en(e)))}return a}let dn=e=>e.getFirstDescendantByKind(E.SyntaxKind.StringLiteral)?.getLiteralValue(),W=e=>dn(e),fn=e=>dn(e),pn=(e,t)=>{let n=e.getFullText().slice(0,Math.max(0,t)).split(`
32006
32006
  `);return{line:n.length,column:(n.at(-1)?.length??0)+1}},mn=(e,t)=>{let n=t.getStart(),r=t.getEnd(),{line:i,column:a}=pn(e,n),{line:o,column:s}=pn(e,r);return{startLine:i,startColumn:a,startIndex:n,endLine:o,endColumn:s,endIndex:r}},hn=e=>e.getDescendantsOfKind(E.SyntaxKind.ExpressionStatement).filter(e=>en(e)),gn=(e,t,n,r)=>{let i=r?`.tsx`:`.ts`,a=t+Date.now()+(0,y.randomUUID)()+i;return e.createSourceFile(a,n)},_n=e=>e.getDescendantsOfKind(E.SyntaxKind.CallExpression).reduce((e,t)=>{let n=t.getExpression(),r=n.getParentIfKind(E.SyntaxKind.VariableDeclaration);return(0,h.isDefined)(r)&&n.getText()===`require`&&e.push(r),e},[]),vn=e=>{let t=e.getFirstChildByKind(E.SyntaxKind.CallExpression);if(!(0,h.isDefined)(t))return;let[n]=t.getArguments();if(!(!(0,h.isDefined)(n)||n.getKind()!==E.SyntaxKind.StringLiteral))return n.getText().slice(1,-1)},yn=e=>{let t=[`${Ue().getEarlyTestFilenameSuffix()}.ts`,`.test.ts`,`.spec.ts`,`.test.tsx`,`.spec.tsx`,`.test.js`,`.spec.js`,`.test.jsx`,`.spec.jsx`],n=e.getFilePath(),r=`_`+(0,y.randomUUID)()+`_temp`;for(let e of t)if(n.endsWith(e))return n.slice(0,-e.length)+r+e;let i=n.split(`.`);return i[i.length-2]+=r,i.join(`.`)},bn=(e,t=e.getFullText())=>{let n=yn(e);return e.getProject().createSourceFile(n,t)},xn=e=>e.getSymbol()?.getDeclarations()?.[0]?.getSourceFile()??e.getAliasSymbol()?.getDeclarations()?.[0]?.getSourceFile(),Sn=(e,t)=>{let n=e.getRelativePathTo(t.getFilePath());n=n.replaceAll(`\\`,`/`);let r=f.default.extname(n);return n=n.replaceAll(r,``),n.startsWith(`.`)||(n=`./`+n),n},Cn=[E.SyntaxKind.JsxElement,E.SyntaxKind.JsxOpeningElement,E.SyntaxKind.JsxClosingElement,E.SyntaxKind.JsxExpression,E.SyntaxKind.JsxSelfClosingElement,E.SyntaxKind.JsxAttributes,E.SyntaxKind.JsxAttribute,E.SyntaxKind.JsxFragment,E.SyntaxKind.JsxOpeningFragment,E.SyntaxKind.JsxClosingFragment,E.SyntaxKind.JsxNamespacedName,E.SyntaxKind.JsxSpreadAttribute,E.SyntaxKind.JsxText,E.SyntaxKind.JsxTextAllWhiteSpaces],wn=e=>Cn.some(t=>(0,h.isDefined)(e.getFirstDescendantByKind(t))),G=e=>Cn.some(t=>(0,h.isDefined)(e.getParentIfKind(t))),Tn=e=>{let t=e.compilerType;if(`id`in t&&(0,h.isNumber)(t.id)){let e=t.id;return e===0?null:e}return null},En=new Set(`withRouter.connect.withAuth.withStyles.withTheme.forwardRef.styled.withErrorBoundary.withSuspense.withProps.withState.withHandlers.withContext.withApollo.withRedux.withIntl.withTranslation.withFormik.withViewport.withLogger.withMemo.withDefaults.withReduxForm.withPermissions.withData.withTracker.withServices.withFirebase.withNavigation.withHeader.withFooter`.split(`.`)),Dn=`anonymousFunction`;var On=class{exportedDeclarations;constructor(e,t){this.sourceFile=e,this.moduleInfo=t;let n=this.moduleInfo.getExports();this.exportedDeclarations=[n.defaultExport,...n.namedExports].filter(Boolean)}getAllTestables(){return[...this.getClassesWithMethods(),...this.getFunctionsDeclarations(),...this.getFunctionsExpressions(),...this.getArrowFunctionsExpressions(),...this.getHOCs(),...this.getObjectMethods()]}getAllSerializedTestables(){return this.getAllTestables().map(e=>(0,h.removeNestedField)(e,[`node`,`parent`]))}getAllMethodsCount(){return this.getAllTestables().filter(e=>e.type!==`class`).length}getHOCs(){return this.sourceFile.getVariableStatements().filter(e=>{let t=e.getFirstDescendantByKind(E.SyntaxKind.CallExpression),n=t?.getFirstDescendantByKind(E.SyntaxKind.PropertyAccessExpression),r=t?.getFirstDescendantByKind(E.SyntaxKind.Identifier);return[n?.getText(),r?.getText()].some(e=>(0,h.isDefined)(e)?[...En.values()].some(t=>e.includes(t)):!1)}).map(e=>{let t=e.getFirstDescendantByKind(E.SyntaxKind.VariableDeclaration)?.getFirstChildByKind(E.SyntaxKind.Identifier)?.getText(),n=this.isEntityExported(t)||e.isExported();return{...this.getLocationPivot(e),name:t,type:`function`,node:e,canCreateTests:n}})}getFunctionsDeclarations(){return this.sourceFile.getFunctions().map(e=>{let t=e.getName()??Dn,n=this.isEntityExported(t)||e.isExported();return{...this.getLocationPivot(e),name:t,type:`function`,node:e,canCreateTests:n}})}getFunctionsExpressions(){return this.sourceFile.getDescendantsOfKind(E.SyntaxKind.FunctionExpression).filter(e=>e.getParentIfKind(E.SyntaxKind.ExportAssignment)?.isExportEquals()??!(this.isCallbackFunction(e)||this.isInnerFunction(e)||this.isJSXFunction(e))).map(e=>{let t=e.getName()??this.getArrowFunctionName(e)??Dn,n=this.isEntityExported(t);return{...this.getLocationPivot(e),name:t,type:`function`,node:e,canCreateTests:n}})}getArrowFunctionsExpressions(){return this.sourceFile.getDescendantsOfKind(E.SyntaxKind.ArrowFunction).filter(e=>e.getParentIfKind(E.SyntaxKind.ExportAssignment)?.isExportEquals()??!(this.isCallbackFunction(e)||this.isInnerFunction(e)||this.isJSXFunction(e))).map(e=>{let t=this.getArrowFunctionName(e)??Dn,n=this.isEntityExported(t)||this.isEntityExportedWithThis(e);return{...this.getLocationPivot(e),name:t,type:`function`,node:e,canCreateTests:n}})}isCallbackFunction(e){return e.getParent()?.getKind()===E.SyntaxKind.CallExpression}isJSXFunction(e){return G(e)}isInnerFunction(e){let t=e.getParent(),n=0;for(;(0,h.isDefined)(t)&&t.getKind()!==E.SyntaxKind.SourceFile&&n<20;){if(t.getKind()===E.SyntaxKind.ArrowFunction)return!0;t=t.getParent(),n++}return!1}getArrowFunctionName(e){let t=e.getParent();if(t?.getKind()===E.SyntaxKind.BinaryExpression&&t?.getFirstChild()?.getKind()===E.SyntaxKind.PropertyAccessExpression)return e.getParent()?.getFirstChildByKind(E.SyntaxKind.PropertyAccessExpression)?.getName();let n=e.getFirstAncestorByKind(E.SyntaxKind.VariableDeclaration);if((0,h.isDefined)(n))return n.getName();let r=e.getFirstAncestorByKind(E.SyntaxKind.PropertyAssignment);if((0,h.isDefined)(r))return r.getName()}getClasses(){return this.sourceFile.getClasses().map(e=>{let t=e.getName(),n=this.isEntityExported(t)||e.isDefaultExport(),r=n?this.getClassMethods(e,n).some(e=>e.canCreateTests):!1;return{...this.getLocationPivot(e),name:t,type:`class`,node:e,canCreateTests:r}})}getClassesWithMethods(){return this.getClasses().flatMap(e=>[e,...this.getClassMethods(e.node,e.canCreateTests)])}getClassMethods(e,t){return e.getMethods().map(n=>{let r=n.hasModifier(E.SyntaxKind.PrivateKeyword),i=n.getName().startsWith(`#`),a=r||i;return{...this.getLocationPivot(n),parent:e,parentName:e.getName()??``,type:`method`,node:n,name:n.getName(),canCreateTests:t&&!a}})}getObjectMethods(){let e=this.sourceFile.getDescendantsOfKind(E.SyntaxKind.BinaryExpression).map(e=>e.getRight()).filter(e=>E.Node.isObjectLiteralExpression(e)),t=this.sourceFile.getExportAssignments().map(e=>e.getExpression()).filter(e=>E.Node.isObjectLiteralExpression(e));return[...e,...t].flatMap(e=>e.getProperties()).filter(e=>E.Node.isMethodDeclaration(e)).map(e=>({...this.getLocationPivot(e),type:`object-method`,node:e,name:e.getName(),canCreateTests:!0}))}getLocationPivot(e){return mn(this.sourceFile,e)}isEntityExported(e){return(0,h.isDefined)(e)&&!(0,h.isEmpty)(e)?this.exportedDeclarations.includes(e):!1}isEntityExportedWithThis(e){let t=e.getParent()?.getChildren()??[];return t[0]?.getFirstChild()?.getKind()===E.SyntaxKind.ThisKeyword&&t[1]?.getKind()===E.SyntaxKind.EqualsToken&&t[2]===e}findTestable(e,t,n){return this.getAllTestables().find(r=>r.name===t&&r.type===e?r.type===`method`?r.parentName===n:!0:!1)}};let kn=`default`;var An=class{constructor(e,t){this.sourceFile=e,this.isUsingJSX=t}getImports(){return[...this.getESMImportsNodes(),...this.getCJSImportsNodes()].map(e=>({name:`Import`,location:mn(this.sourceFile,e),node:e,type:`import`,sourceValue:(E.Node.isImportDeclaration(e)?e.getModuleSpecifierValue():e.getFirstDescendantByKind(E.SyntaxKind.StringLiteral)?.getLiteralValue())??``}))}getCJSImportsNodes(){return this.sourceFile.getVariableStatements().filter(e=>(e.getFirstDescendantByKind(E.SyntaxKind.CallExpression)?.getExpression())?.getText()===`require`)}getESMImportsNodes(){return this.sourceFile.getImportDeclarations()}isESM(){let e=this.sourceFile.getImportDeclarations().length>0,t=this.sourceFile.getExportDeclarations().length>0||this.sourceFile.getExportedDeclarations().size>0,n=this.sourceFile.getDescendantsOfKind(E.SyntaxKind.ExportAssignment).length>0;return e||t||n}getCJSExports(){let e=[],t=``,n=`module.exports`,r=`exports`;for(let i of this.sourceFile.getDescendantsOfKind(E.SyntaxKind.ExpressionStatement)){let a=i.getExpression(),o=a.getText().trim(),s=a.asKind(E.SyntaxKind.BinaryExpression);if(!o.startsWith(n)&&!o.startsWith(r)||!(0,h.isDefined)(s))continue;let c=s.getLeft(),l=c.getText(),u=c.asKind(E.SyntaxKind.PropertyAccessExpression),d=u?.getName()??``,f=c.getKind()===E.SyntaxKind.PropertyAccessExpression,p=s.getRight(),m=f&&u?.getExpression().getText()===n,g=f&&u?.getExpression().getText()===r;if(m&&d===kn){t=p.getText();continue}if(m||g){e.push(d);continue}if(l!==n)continue;let _=t=>{let n=t.asKind(E.SyntaxKind.ObjectLiteralExpression);if((0,h.isDefined)(n))for(let t of n.getProperties()){if(t.getKind()===E.SyntaxKind.PropertyAssignment||t.getKind()===E.SyntaxKind.ShorthandPropertyAssignment||t.getKind()===E.SyntaxKind.MethodDeclaration){let n=t.getName();e.push(n)}if(t.getKind()===E.SyntaxKind.PropertyAssignment){let e=t.getInitializer();(0,h.isDefined)(e)&&_(e)}}},v=t=>{let n=t.asKind(E.SyntaxKind.FunctionDeclaration)?.getBody()?.asKind(E.SyntaxKind.Block);if((0,h.isDefined)(n))for(let t of n.getStatements()){let n=((t.asKind(E.SyntaxKind.ExpressionStatement)?.getExpression())?.asKind(E.SyntaxKind.BinaryExpression)?.getLeft())?.asKind(E.SyntaxKind.PropertyAccessExpression);n?.getExpression().getKind()===E.SyntaxKind.ThisKeyword&&e.push(n.getName())}},y=t=>{let n=t.asKind(E.SyntaxKind.FunctionDeclaration)?.getName();if((0,h.isDefined)(n))for(let t of this.sourceFile.getStatements()){let r=((t.asKind(E.SyntaxKind.ExpressionStatement)?.getExpression())?.asKind(E.SyntaxKind.BinaryExpression)?.getLeft())?.asKind(E.SyntaxKind.PropertyAccessExpression);r?.getExpression().getText()===`${n}.prototype`&&e.push(r.getName())}};if(p.getKind()===E.SyntaxKind.ObjectLiteralExpression){_(p);continue}if(p.getKind()===E.SyntaxKind.Identifier){let t=p.asKind(E.SyntaxKind.Identifier),n=t?.findReferences().map(e=>e.getDefinition().getNode().getParent()).filter(e=>(0,h.isDefined)(e)).filter(e=>e.getKind()===E.SyntaxKind.VariableDeclaration);if(!(0,h.isDefined)(n))continue;for(let t of n){let n=t.getInitializer()?.asKind(E.SyntaxKind.ObjectLiteralExpression);if((0,h.isDefined)(n)){for(let t of n.getProperties())if(t.getKind()===E.SyntaxKind.PropertyAssignment||t.getKind()===E.SyntaxKind.ShorthandPropertyAssignment){let n=t.getName();e.push(n)}}}let r=t?.findReferences().map(e=>e.getDefinition().getNode().getParent()).filter(e=>e?.getKind()===E.SyntaxKind.FunctionDeclaration);if(!(0,h.isDefined)(r))continue;for(let e of r)v(e),y(e)}if(p.isKind(E.SyntaxKind.NewExpression)){let e=p.asKind(E.SyntaxKind.NewExpression);(0,h.isDefined)(e)&&(t=e.getExpression().getText());continue}t=p.getText()}return{namedExports:e,defaultExport:t}}getESMExports(){let e=``,t=[],n=!1;for(let r of this.sourceFile.getExportAssignments()){r.isExportEquals()||(n=!0);let i=r.getExpression();if(i.getKind()===E.SyntaxKind.Identifier){e=i.getText();continue}let a=r.getFirstChildByKind(E.SyntaxKind.ObjectLiteralExpression);if((0,h.isDefined)(a)){for(let e of a.getProperties())if(e.getKind()===E.SyntaxKind.PropertyAssignment||e.getKind()===E.SyntaxKind.ShorthandPropertyAssignment||e.getKind()===E.SyntaxKind.MethodDeclaration){let n=e.getName();t.push(n)}}}let r=this.sourceFile.getExportedDeclarations();if(!(n&&r.size===1&&[...r.keys()][0]===kn))for(let[n,i]of r)if(n===kn){let t=(i[0]?.getFirstChildByKind(E.SyntaxKind.Identifier))?.getText()?.trim()??Dn;(0,h.isDefined)(t)&&(e=t)}else t.push(n);return{defaultExport:e,namedExports:t}}hasRequire(){return this.sourceFile.getDescendantsOfKind(E.SyntaxKind.CallExpression).some(e=>e.getExpression().getText()===`require`)}transformRequiresToImports(){let e=gn(this.sourceFile.getProject(),`transformRequiresToImports`,this.sourceFile.getFullText(),this.isUsingJSX),t;try{let n=e.getVariableStatements();for(let e of n){let t=e.getFirstDescendantByKind(E.SyntaxKind.CallExpression),n=t?.getExpression();if(!(0,h.isDefined)(t)||!(0,h.isDefined)(n)||n.getText()!==`require`)continue;let r=t.getFirstDescendantByKind(E.SyntaxKind.StringLiteral)?.getLiteralValue();if(!(0,h.isDefined)(r))continue;let i=e.getDeclarations()?.[0]?.getNameNode()?.getText();if(!(0,h.isDefined)(i))continue;let a=`import ${i} from "${r}";`;e.replaceWithText(a)}t=e.getFullText()}finally{e.getProject().removeSourceFile(e)}return t}getExports(){return this.isESM()?this.getESMExports():this.getCJSExports()}},jn=class{tests;constructor(e){this.sourceFile=e}getDescribes(){return $t(this.sourceFile).map(e=>{let t=W(e);return(0,h.isDefined)(t)?{node:e,name:t,location:mn(this.sourceFile,e),type:`describe`}:null}).filter(e=>(0,h.isDefined)(e))}getTests(){return(0,h.isDefined)(this.tests)||(this.tests=hn(this.sourceFile).map(e=>{let t=mn(this.sourceFile,e),n=fn(e);return(0,h.isDefined)(n)?{node:e,name:n,location:t,type:`test`}:null}).filter(e=>(0,h.isDefined)(e))),this.tests}getDescribeTests(e){return hn(e.node).map(e=>{let t=fn(e);return(0,h.isDefined)(t)?{node:e,name:t,location:mn(this.sourceFile,e),type:`test`}:null}).filter(e=>(0,h.isDefined)(e))}},Mn=class{sourceFile;tests;testables;moduleInfo;constructor(e,t){this.filePath=t;let n=!0;try{let t=new E.Project({useInMemoryFileSystem:!0,skipAddingFilesFromTsConfig:!0,skipFileDependencyResolution:!0,skipLoadingLibFiles:!0}),r=gn(t,`ast`,e,!0);wn(r)?this.sourceFile=r:(t.removeSourceFile(r),this.sourceFile=gn(t,`ast`,e,!1),n=!1)}catch{throw Error(`Cannot parse file content`)}this.moduleInfo=new An(this.sourceFile,n),this.testables=new On(this.sourceFile,this.moduleInfo),this.tests=new jn(this.sourceFile)}isReactFile(){let e=(0,f.extname)(this.filePath??this.sourceFile.getFilePath());return Dt.includes(e)||this.isFileContainsImport(`react`)}isFileContainsImport(e){return this.moduleInfo.getImports().some(t=>t.sourceValue.includes(e))}checkIsJSDoc(e,t,n){return t===E.SyntaxKind.MultiLineCommentTrivia?e.slice(n,n+3)===`/**`&&e.slice(n,n+5)!==`/***/`:!1}getLineRange(e,t){let n=this.sourceFile.compilerNode,r=n.getLineStarts(),{line:i}=n.getLineAndCharacterOfPosition(e),{line:a}=n.getLineAndCharacterOfPosition(t);return{start:r[i]??0,end:r[a+1]??this.sourceFile.getEnd()}}stripComments(e=()=>!0){let t=new Set,n=[],r=this.sourceFile.getFullText(),i=(e,r)=>{for(let i of[...e.getLeadingCommentRanges(),...e.getTrailingCommentRanges()]){let e=i.getPos(),a=i.getEnd(),o=e+`,`+a;if(t.has(o))continue;t.add(o);let s=i.getText(),c=this.checkIsJSDoc(r,i.getKind(),e);n.push({start:e,end:a,text:s,width:i.getWidth(),isJSDoc:c})}};i(this.sourceFile,r),this.sourceFile.forEachDescendant(e=>i(e,r));let a=n.filter(e).map(e=>{let{start:t,end:n}=this.getLineRange(e.start,e.end);return(0,h.isEmpty)(r.slice(t,e.start).trim())&&(0,h.isEmpty)(r.slice(e.end,n).trim())?{start:t,end:n}:{start:e.start,end:e.end}}).toSorted((e,t)=>t.start-e.start);for(let e of a)this.sourceFile.removeText(e.start,e.end);return this.sourceFile.getFullText()}};let Nn=e=>{let{node:t,parent:n,...r}=e;return r};var Pn=class{GITIGNORE_FILE_NAME=`.gitignore`;gitignorePath;constructor(e){this.gitignorePath=(0,f.join)(e,this.GITIGNORE_FILE_NAME)}async add(e){try{let t=await p.default.readFile(this.gitignorePath,`utf8`);t.includes(e)||await p.default.writeFile(this.gitignorePath,`${t}\n${e}`)}catch(e){let t=e instanceof Error?e.message:`Unknown error`;H.info.defaultLog(`Error reading gitignore file`,{message:t})}}};let Fn=`.early.coverage`;var In=class{getCoverageDirectoryPath(){let e=Ue().getRootPath();return f.default.join(e,Fn,`v8`)}getCoverageDirectoryForCommand(){return this.getCoverageDirectoryPath()}getExecutionCwd(){return Ue().getRootPath()}},Ln=class extends In{getCoverageDirectoryForCommand(){let e=Ue().getGitTopLevel(),t=Ue().getRootPath(),n=f.default.relative(e,t);return f.default.join(n,Fn,`v8`)}};function Rn(){let e=Ue().getCoverageCommand()?.split(/\s+/).includes(`nx`)??!1;return H.info.defaultLog(`Coverage path strategy: `+(e?`nx`:`standard`)),e?new Ln:new In}var zn=class{report={};constructor(e,t){for(let[n,r]of Object.entries(e)){let e=f.default.normalize(n);if(e.toLowerCase().startsWith(t.toLowerCase())){let n=e.slice(t.length);this.report[n]=r}}}getEntries(){return Object.entries(this.report)}getStatsForTestable(e,t,n){let r=this.report[e];if(!(0,h.isDefined)(r))return null;let i=this.findFunctionDefinition(t,r.fnMap,n);if(!(0,h.isDefined)(i))return null;let a=0,o=0;for(let[e,t]of Object.entries(r.statementMap))if(this.isStatementInFunction(t,i)||this.isFunctionInStatement(t,i)){o++;let t=r.s[e];(0,h.isDefined)(t)&&t>0&&a++}return{percentage:this.toPercentage(a,o),totalStatements:o,coveredStatements:a}}getStatsForFile(e){let t=this.report[e];if(!(0,h.isDefined)(t))return{percentage:null,totalStatements:0,coveredStatements:0};let n=0,r=0;for(let[e]of Object.entries(t.statementMap)){r++;let i=t.s[e];(0,h.isDefined)(i)&&i>0&&n++}return{percentage:this.toPercentage(n,r),totalStatements:r,coveredStatements:n}}getStatsForDirectory(e){let t=0,n=0;for(let[r,i]of Object.entries(this.report))if(this.isSubdirectory(e,r)){n+=Object.keys(i.statementMap).length;for(let[e]of Object.entries(i.statementMap)){let n=i.s[e];(0,h.isDefined)(n)&&n>0&&t++}}return{percentage:this.toPercentage(t,n),totalStatements:n,coveredStatements:t}}calculateCoverageForFiles(e){let t=0,n=0,r=new Set(e.map(e=>this.normalizeFilePath(e)));for(let[e,i]of Object.entries(this.report)){let a=this.normalizeFilePath(e);if(r.has(a)){let e=Object.keys(i.statementMap).length;t+=e;for(let[e]of Object.entries(i.statementMap)){let t=i.s[e];(0,h.isDefined)(t)&&t>0&&n++}}}return{percentage:this.toPercentage(n,t),totalStatements:t,coveredStatements:n}}normalizeFilePath(e){return e.startsWith(`/`)?e.slice(1):e}isSubdirectory(e,t){let n=f.default.relative(e,t);return(0,h.isDefined)(n)?!n.startsWith(`..`)&&!f.default.isAbsolute(n):!1}isStatementInFunction(e,t){return!(e.start.line<t.loc.start.line||e.end.line>t.loc.end.line||e.start.line===t.loc.start.line&&e.start.column<t.loc.start.column||e.end.line===t.loc.end.line&&e.end.column>t.loc.end.column)}isFunctionInStatement(e,t){return!(t.loc.start.line<e.start.line||t.loc.end.line>e.end.line||t.loc.start.line===e.start.line&&t.loc.start.column<e.start.column||t.loc.end.line===e.end.line&&t.loc.end.column>e.end.column)}findFunctionDefinition(e,t,n){for(let[,n]of Object.entries(t))if(n.name===e)return n;return null}toPercentage(e,t,n=0){if(t===0)return null;let r=e/t;return Number(Math.round(r*100).toFixed(n))}};async function Bn(e){let t=Ue().getRootPath(),n=[];try{let e=new et(`.gitignore`);await e.isFileExists()&&(n=(await e.getText()).split(`
32007
32007
  `).map(e=>e.trim()).filter(e=>(0,h.isDefined)(e)&&!e.startsWith(`#`)))}catch{}let r=[`node_modules`,`*.config.ts`,`**/*.mock.ts`,`**/*.mocks.ts`,`**/*.test.ts`,`**/*.spec.ts`,...n];return(await(0,A.default)(e,{cwd:t,absolute:!0,ignore:r})).map(e=>`/${f.default.relative(t,e)}`)}var Vn=class{nextSource=null;setNext(e){return this.nextSource=e,e}async getFromNext(e){return this.nextSource?this.nextSource.getFiles(e):[]}},Hn=class extends Vn{async getFiles(e){return Bn(`**/*.{js,ts,jsx,tsx}`)}};let Un=/\.[jt]sx?$/;var Wn=class extends Vn{async getFiles(e){let t=Object.keys(e).filter(e=>Un.test(e));return t.length>0?t:this.getFromNext(e)}};function Gn(){let e=new Wn,t=new Hn;return e.setNext(t),e}let Kn=String.raw`.*\.early\.(spec|test)\.[tj]sx?$`;var qn=class{EXEC_TIMEOUT_IN_MS=12e5;MAX_BUFFER_SIZE=2e4*1024;DEFAULT_ROOT_PATH=`/`;COVERAGE_ROOT_DIRECTORY_NAME=`.early.coverage`;COVERAGE_REPORT_FILE_NAME=`coverage-final.json`;pathStrategy=null;async init(){this.pathStrategy=Rn()}getCoverageDirectoryPath(){if(!(0,h.isDefined)(this.pathStrategy))throw Error(`Provider not initialized. Call init() first.`);return this.pathStrategy.getCoverageDirectoryPath()}getCoverageDirectoryForCommand(){if(!(0,h.isDefined)(this.pathStrategy))throw Error(`Provider not initialized. Call init() first.`);return this.pathStrategy.getCoverageDirectoryForCommand()}getExecutionCwd(){if(!(0,h.isDefined)(this.pathStrategy))throw Error(`Provider not initialized. Call init() first.`);return this.pathStrategy.getExecutionCwd()}getCoverageReportPath(){return f.default.join(this.getCoverageDirectoryPath(),this.COVERAGE_REPORT_FILE_NAME)}async getCommand(){return(Ue().getCoverageCommand()??await this.buildJestCoverageCommand()).replaceAll(we,this.getCoverageDirectoryForCommand())}async isReportExists(){try{return await p.default.access(this.getCoverageReportPath(),p.constants.R_OK),!0}catch{return!1}}async removeReport(){try{let e=et.fromAbsolutePath(this.getCoverageReportPath());await e.isFileExists()&&await e.delete()}catch(e){H.error(`Error removing coverage report`,e)}}async getReport(){try{let e=await et.fromAbsolutePath(this.getCoverageReportPath()).getText(),t=JSON.parse(e);return this.calculateCoverage(t)}catch{throw Error(`Coverage report file could not be read: ${this.getCoverageReportPath()}`)}}async generateReport(){H.info.defaultLog(`Coverage: generation started`),await this.removeReport();let e=await this.getCommand();H.info.defaultLog(`Coverage command: ${e}`);try{await Nt(e,{cwd:this.getExecutionCwd(),timeout:this.EXEC_TIMEOUT_IN_MS,maxBuffer:this.MAX_BUFFER_SIZE}),H.info.defaultLog(`Coverage command generation success`)}catch(t){let n=t instanceof Error&&`code`in t?{code:t.code,signal:t.signal,killed:t.killed}:{code:`UNKNOWN_ERROR`};throw H.info.defaultLog(`Coverage generation exited with error: "${e}".`,n),Error(`Failed to generate coverage report: ${t.message}\nCoverage command: "${e}"`)}finally{await new Pn(Ue().getGitTopLevel()).add(this.COVERAGE_ROOT_DIRECTORY_NAME)}}calculateCoverage(e){let t=new zn(e,f.default.normalize(Ue().getRootPath()).toLowerCase()),n=new Map;for(let[e,r]of t.getEntries()){let i=t.getStatsForFile(e),a=e.split(`/`).slice(0,-1);for(;a.length>0;){let e=a.join(`/`)||this.DEFAULT_ROOT_PATH;if(!n.has(e)){let r=t.getStatsForDirectory(e);n.set(e,{percentage:r.percentage,totalStatements:r.totalStatements,coveredStatements:r.coveredStatements})}a.pop()}let o=[];for(let{name:n}of Object.values(r.fnMap)){let r=t.getStatsForTestable(e,n);o.push({name:n,percentage:r?.percentage??null,totalStatements:r?.totalStatements??null,coveredStatements:r?.coveredStatements??null})}n.set(e,{percentage:i.percentage,totalStatements:i.totalStatements,coveredStatements:i.coveredStatements,testables:o})}return Object.fromEntries(n.entries())}async hasJestConfig(){let e=Ft(Ue().getRootPath());return(0,h.isDefined)(e)}async buildJestCoverageCommand(){let e=[`node_modules`,`dist`];Ue().getIncludeEarlyTests()||e.push(Kn);let t=e.map(e=>`"${e}"`).join(` `),n=Ue().getRootPath();return await this.hasJestConfig()?`npx jest --coverage --coverageProvider=v8 --coveragePathIgnorePatterns ${t} --coverageReporters=json --coverageDirectory=${we} --silent --passWithNoTests --maxWorkers=2`:`npx jest --coverage --coverageProvider=v8 --coveragePathIgnorePatterns ${t} --coverageReporters=json --coverageDirectory=${we} --rootDir="${n}" --silent --passWithNoTests --maxWorkers=2`}async getCoverageTree(e){let t=await Gn().getFiles(e),n=new Map;for(let r of t){let t=new Mn(await new et(r).getText(),`getCoverageTree`).testables.getAllTestables(),i=r.split(`/`).slice(0,-1);for(;!(0,h.isEmpty)(i);){let t=i.join(`/`)||this.DEFAULT_ROOT_PATH,r=e[t];n.has(t)||n.set(t,{percentage:r?.percentage??null,totalStatements:r?.totalStatements??null,coveredStatements:r?.coveredStatements??null}),i.pop()}let a=[],o=t.map(e=>Nn(e)),s=e[r];for(let e of o){let{name:t}=e;if(!(0,h.isDefined)(t))continue;let n=e.type===`method`?e.parentName:void 0,r=s?.testables?.find(e=>e.name===t),i={name:t,...(0,h.isDefined)(n)&&{parentName:n},percentage:r?.percentage??null,totalStatements:r?.totalStatements??null,coveredStatements:r?.coveredStatements??null};a.push(i)}n.set(r,{percentage:s?.percentage??null,totalStatements:s?.totalStatements??null,coveredStatements:s?.coveredStatements??null,testables:a})}return Object.fromEntries(n.entries())}getCoverageForFiles(e,t){let n=0,r=0,i=new Set(e.map(e=>this.normalizeFilePath(e)));for(let[e,a]of Object.entries(t)){let t=this.normalizeFilePath(e);i.has(t)&&(n+=a.totalStatements??0,r+=a.coveredStatements??0)}return{percentage:this.toPercentage(r,n),totalStatements:n,coveredStatements:r}}normalizeFilePath(e){return e.startsWith(`/`)?e.slice(1):e}toPercentage(e,t,n=0){if(t===0)return null;let r=e/t;return Number(Math.round(r*100).toFixed(n))}},Jn=class extends zn{constructor(e,t){super(e,t)}findFunctionDefinition(e,t,n){for(let r of Object.values(t))if(r.name===e||(0,h.isDefined)(n)&&r.name.startsWith(`(anonymous`)&&r.loc.start.line===n)return r;return null}};let Yn=`npx vitest run --coverage.enabled --coverage.exclude="${Kn}" --coverage.reportsDirectory=${we} --coverage.reportOnFailure=true --coverage.reporter=json --maxWorkers=2 --passWithNoTests`;var Xn=class extends qn{async init(){await super.init()}async getCommand(){return(Ue().getCoverageCommand()??Yn).replaceAll(we,this.getCoverageDirectoryForCommand())}async getReport(){try{let e=await et.fromAbsolutePath(this.getCoverageReportPath()).getText(),t=JSON.parse(e);return await this.calculateCoverageWithVitest(t)}catch{throw Error(`Coverage report file could not be read: ${this.getCoverageReportPath()}`)}}async calculateCoverageWithVitest(e){let t=f.default.normalize(Ue().getRootPath()).toLowerCase(),n=new Jn(e,t),r=this.buildAbsolutePathMap(e,t),i=[...n.getEntries()];return this.processEntries(i,n,r)}buildAbsolutePathMap(e,t){let n=new Map;for(let r of Object.keys(e)){let e=f.default.normalize(r);if(e.toLowerCase().startsWith(t.toLowerCase())){let i=e.slice(t.length);n.set(i,r)}}return n}async processEntries(e,t,n){let r=new Map;for(let[i]of e)this.addDirectoryCoverage(i,t,r),await this.addFileCoverage(i,t,n,r);return Object.fromEntries(r.entries())}addDirectoryCoverage(e,t,n){let r=e.split(`/`).slice(0,-1);for(;r.length>0;){let e=r.join(`/`)||`/`;if(!n.has(e)){let r=t.getStatsForDirectory(e);n.set(e,{percentage:r.percentage,totalStatements:r.totalStatements,coveredStatements:r.coveredStatements})}r.pop()}}async addFileCoverage(e,t,n,r){let i=t.getStatsForFile(e),a=n.get(e);if(!(0,h.isDefined)(a))return;let o=await this.readFileText(a);if(!(0,h.isDefined)(o)){r.set(e,{percentage:i.percentage,totalStatements:i.totalStatements,coveredStatements:i.coveredStatements,testables:[]});return}let s=this.extractTestables(o,e,t);r.set(e,{percentage:i.percentage,totalStatements:i.totalStatements,coveredStatements:i.coveredStatements,testables:s})}async readFileText(e){try{return await et.fromAbsolutePath(e).getText()}catch{return null}}extractTestables(e,t,n){let r=new Mn(e,`getReport`).testables.getAllTestables(),i=[];for(let e of r){let r=e.name??``,a=e.type===`method`?e.parentName:void 0,o=n.getStatsForTestable(t,r,e.startLine);i.push({name:r,...(0,h.isDefined)(a)&&{parentName:a},percentage:o?.percentage??null,totalStatements:o?.totalStatements??null,coveredStatements:o?.coveredStatements??null})}return i}},Zn=function(e){return e.JEST=`jest`,e.VITEST=`vitest`,e}(Zn||{}),Qn=class{provider=null;async create(){let e=await this.detectProjectType();return H.info.defaultLog(`Coverage: project type`,e),e===Zn.JEST?this.provider=new qn:e===Zn.VITEST&&(this.provider=new Xn),this.provider&&await this.provider.init(),H.info.defaultLog(`Coverage Provider: `+(e??`null`)),this.provider}async detectProjectType(){return await this.checkFileExists([`vitest.config.ts`,`vitest.config.js`])?Zn.VITEST:await this.checkFileExists([`package.json`,`jest.config.js`,`jest.config.ts`,`tsconfig.json`])?Zn.JEST:null}async checkFileExists(e){H.info.defaultLog(`Coverage: checking files`,e);for(let t of e)if(await new et(t).isFileExists())return!0;return!1}};let $n={};var er=class{provider=null;coverage=null;async init(){(0,h.isDefined)(this.provider)||(this.provider=await new Qn().create())}async consumeReport(){if((0,h.isDefined)(this.provider))try{this.coverage=await this.provider.getReport(),await this.provider.removeReport()}catch(e){H.info.defaultLog(`Error reading coverage report`,{error:e})}}async generateCoverage(){if(!(0,h.isDefined)(this.provider))return $n;try{await this.provider.generateReport()}catch(e){let t=await this.provider.isReportExists();if(!Ue().shouldContinueOnTestErrors()||!t)throw e;H.info.defaultLog(`Coverage: report exists but test command failed, continuing...`)}let e=null;try{await this.consumeReport()}catch(t){e=t instanceof Error?t:Error(String(t))}if(!(0,h.isDefined)(this.coverage))throw(0,h.isDefined)(e)?Error(`Coverage report is not available. Reason: ${e.message}`):Error(`Coverage report is not available`);return this.coverage}getCoverage(){return this.coverage}async getCoverageTree(){return!(0,h.isDefined)(this.provider)||!(0,h.isDefined)(this.coverage)?$n:this.provider.getCoverageTree(this.coverage)}setCoverage(e){this.coverage=e}getCoverageForFiles(e){if(!(0,h.isDefined)(this.provider))throw Error(`Coverage provider not initialized`);if(!(0,h.isDefined)(this.coverage))throw Error(`Coverage report not available`);return this.provider.getCoverageForFiles(e,this.coverage)}},tr=l(Ie()),nr=l(Le());let rr=class{coverageService=new er;async generateCoverage(){try{await this.coverageService.init(),await this.coverageService.generateCoverage()}catch(e){throw H.info.failedLog(`Failed to generate coverage`,e),e}}async setCoverage(e){try{await this.coverageService.init(),await this.coverageService.setCoverage(e)}catch(e){throw H.info.failedLog(`Failed to set coverage`,e),e}}async getCoverageTree(){try{await this.coverageService.init(),H.info.startLog(`Getting coverage tree`);let e=await this.coverageService.getCoverageTree();return H.info.endLog(`Getting coverage tree`),e??null}catch(e){throw H.info.failedLog(`Failed to get coverage tree`,e),e}}async getCoverageForFiles(e){try{return await this.coverageService.init(),this.coverageService.getCoverageForFiles(e)}catch(e){throw H.info.failedLog(`Failed to get coverage for files`,e),e}}};(0,nr.default)([$e({category:Tt.GENERATE_COVERAGE}),(0,tr.default)(`design:type`,Function),(0,tr.default)(`design:paramtypes`,[]),(0,tr.default)(`design:returntype`,Promise)],rr.prototype,`generateCoverage`,null),(0,nr.default)([$e({category:Tt.SET_COVERAGE}),(0,tr.default)(`design:type`,Function),(0,tr.default)(`design:paramtypes`,[Object]),(0,tr.default)(`design:returntype`,Promise)],rr.prototype,`setCoverage`,null),(0,nr.default)([$e({category:Tt.GET_COVERAGE}),(0,tr.default)(`design:type`,Function),(0,tr.default)(`design:paramtypes`,[]),(0,tr.default)(`design:returntype`,Promise)],rr.prototype,`getCoverageTree`,null),(0,nr.default)([$e({category:Tt.GET_COVERAGE}),(0,tr.default)(`design:type`,Function),(0,tr.default)(`design:paramtypes`,[Array]),(0,tr.default)(`design:returntype`,Promise)],rr.prototype,`getCoverageForFiles`,null),rr=(0,nr.default)([(0,_.injectable)()],rr);let ir=new class{safeTrackEvent(e,t){}},ar={EMPTY_TEST:`0000`,DESCRIBE_NOT_FOUND:`0001`,TESTED_CODE_DATA_SOURCE_ERROR:`0002`,GENERATING_TESTS_REQUEST_ERROR:`0003`,GET_VERSION_REQUEST_ERROR:`0004`,GENERATING_HELPER_REQUEST_ERROR:`0005`,PREPARATIONS_FOR_GENERATING_TEST_DTO_ERROR:`0006`,ENHANCE_TESTS_REQUEST_ERROR:`0011`,EMPTY_FIXED_TESTS:`1000`,TESTABLE_NOT_FOUND:`1001`,TESTED_CODE_FILE_PATH_NOT_FOUND:`1002`,PREEN_TESTS_ERROR:`2001`,ORGANIZE_IMPORTS_ERROR:`2002`,NOT_ENOUGH_BALANCE_ERROR:`3000`,UNSUPPORTED_MODEL_ERROR:`4000`,TOO_MANY_USERS_ERROR:`4001`,PAYLOAD_TOO_LARGE_ERROR:`4002`,TEST_SUMMARY_DB_REQUEST_ERROR:`5000`,TEST_SUMMARY_INVALID_CREATED_BY_ERROR:`5001`,TEST_SUMMARY_INVALID_GIT_REMOTE_ERROR:`5002`,TEST_SUMMARY_INVALID_GIT_BRANCH_ERROR:`5003`,WS_DYNAMIC_PROMPT_GENERAL_ERROR:`6000`,WS_DYNAMIC_PROMPT_AUTH_ERROR:`6001`,PREPARATIONS_FOR_DYNAMIC_PROMPT_ERROR:`6002`,WS_DYNAMIC_PROMPT_VALIDATION_FAILED_ERROR:`6003`,WS_DYNAMIC_PROMPT_TIMEOUT_ERROR:`6004`,GITHUB_ACTION_TEST_SUMMARY_DB_REQUEST_ERROR:`7000`,GITHUB_ACTION_TEST_SUMMARY_READ_CONF_FILE:`7001`,GITHUB_ACTION_TEST_SUMMARY_INVALID_GIT_REMOTE_ERROR:`7002`,GITHUB_ACTION_TEST_SUMMARY_INVALID_GIT_BRANCH_ERROR:`7003`,GITHUB_ACTION_TEST_SUMMARY_READ_CONF_FILE_EMPTY_OPTIONS:`7004`,GITHUB_ACTION_TEST_SUMMARY_NO_COVERAGE_FOUND:`7005`},or={[ar.EMPTY_TEST]:`Oops! No tests were generated for "{{methodName}}". Code:{{code}} - We're on it!`,[ar.DESCRIBE_NOT_FOUND]:`Oops! Test suite not found for "{{methodName}}". Code:{{code}} - We're on it!`,[ar.TESTED_CODE_DATA_SOURCE_ERROR]:`Cannot get testable data for "{{methodName}}". Code:{{code}} - We're on it!`,[ar.GENERATING_TESTS_REQUEST_ERROR]:`Generating tests for method "{{methodName}}" - failed: "{{errorMessage}}". Code:{{code}} - We're on it!`,[ar.PREPARATIONS_FOR_GENERATING_TEST_DTO_ERROR]:`Generating tests for method "{{methodName}}" - failed: "{{errorMessage}}". Code:{{code}} - We're on it!`,[ar.GET_VERSION_REQUEST_ERROR]:`Failed to make request. Code:{{code}} - We're on it!`,[ar.GENERATING_HELPER_REQUEST_ERROR]:`Generating helpers for method "{{methodName}}" - failed: "{{errorMessage}}". Code:{{code}} - We're on it!`,[ar.ENHANCE_TESTS_REQUEST_ERROR]:`Enhance tests for method "{{methodName}}" - failed: "{{errorMessage}}". Code:{{code}} - We're on it!`,[ar.EMPTY_FIXED_TESTS]:`Oops! We got an empty API response for "{{methodName}}" test fixes. Code:{{code}} - We're on it!`,[ar.TESTABLE_NOT_FOUND]:`Oops! Testable code not found for "{{methodName}}". Code:{{code}} - We're on it!`,[ar.TESTED_CODE_FILE_PATH_NOT_FOUND]:`Oops! Testable code file path not found for "{{methodName}}". Code:{{code}}`,[ar.PREEN_TESTS_ERROR]:`Encountered a problem while processing "{{methodName}}". Code:{{code}} - We're on it!`,[ar.ORGANIZE_IMPORTS_ERROR]:`There was an issue with the processing "{{methodName}}". Code:{{code}} - We're on it!`,[ar.NOT_ENOUGH_BALANCE_ERROR]:`Usage test generation limit reached.`,[ar.UNSUPPORTED_MODEL_ERROR]:`We do not support this model at the moment.`,[ar.TOO_MANY_USERS_ERROR]:`Users limit reached. Please contact support.`,[ar.PAYLOAD_TOO_LARGE_ERROR]:`We could not generate tests due to code size.`,[ar.TEST_SUMMARY_DB_REQUEST_ERROR]:`We could not save test summary to database.`,[ar.TEST_SUMMARY_INVALID_CREATED_BY_ERROR]:`Invalid created by field.`,[ar.TEST_SUMMARY_INVALID_GIT_REMOTE_ERROR]:`Invalid git remote.`,[ar.TEST_SUMMARY_INVALID_GIT_BRANCH_ERROR]:`Invalid git branch.`,[ar.GITHUB_ACTION_TEST_SUMMARY_DB_REQUEST_ERROR]:`We could not save test summary to database.`,[ar.GITHUB_ACTION_TEST_SUMMARY_READ_CONF_FILE]:`Failed to read github action config file.`,[ar.GITHUB_ACTION_TEST_SUMMARY_INVALID_GIT_REMOTE_ERROR]:`Invalid git remote.`,[ar.GITHUB_ACTION_TEST_SUMMARY_INVALID_GIT_BRANCH_ERROR]:`Invalid git branch.`,[ar.GITHUB_ACTION_TEST_SUMMARY_READ_CONF_FILE_EMPTY_OPTIONS]:`Failed to parse options from github action conf file.`,[ar.GITHUB_ACTION_TEST_SUMMARY_NO_COVERAGE_FOUND]:`No coverage found. Please run coverage first.`,[ar.WS_DYNAMIC_PROMPT_GENERAL_ERROR]:`Failed initializing dynamic prompt.`,[ar.WS_DYNAMIC_PROMPT_AUTH_ERROR]:`Failed authorizing dynamic prompt.`,[ar.PREPARATIONS_FOR_DYNAMIC_PROMPT_ERROR]:`Failed preparing init dynamic prompt.`,[ar.WS_DYNAMIC_PROMPT_VALIDATION_FAILED_ERROR]:`Failed validating dynamic prompt dto.`,[ar.WS_DYNAMIC_PROMPT_TIMEOUT_ERROR]:`Dynamic prompt operation timed out.`};var sr=class extends Error{constructor(e,t){let n=cr(e,t);super(n),this.code=e}};let cr=(e,t)=>{let n=or[e];for(let[r,i]of Object.entries({...t,code:e}))n=n.replace(`{{${r}}}`,i);return n},lr=`x-request-id`;var ur=class extends Error{constructor(){super(`Not authorized`)}};new TextEncoder;let dr=new TextDecoder;function fr(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e);let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function pr(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(typeof e==`string`?e:dr.decode(e),{alphabet:`base64url`});let t=e;t instanceof Uint8Array&&(t=dr.decode(t)),t=t.replace(/-/g,`+`).replace(/_/g,`/`);try{return fr(t)}catch{throw TypeError(`The input to be decoded is not correctly encoded.`)}}var mr=class extends Error{static code=`ERR_JOSE_GENERIC`;code=`ERR_JOSE_GENERIC`;constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}},hr=class extends mr{static code=`ERR_JWT_INVALID`;code=`ERR_JWT_INVALID`};let gr=e=>typeof e==`object`&&!!e;function _r(e){if(!gr(e)||Object.prototype.toString.call(e)!==`[object Object]`)return!1;if(Object.getPrototypeOf(e)===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function vr(e){if(typeof e!=`string`)throw new hr(`JWTs must use Compact JWS serialization, JWT must be a string`);let{1:t,length:n}=e.split(`.`);if(n===5)throw new hr(`Only JWTs using Compact JWS serialization can be decoded`);if(n!==3)throw new hr(`Invalid JWT`);if(!t)throw new hr(`JWTs must contain a payload`);let r;try{r=pr(t)}catch{throw new hr(`Failed to base64url decode the payload`)}let i;try{i=JSON.parse(dr.decode(r))}catch{throw new hr(`Failed to parse the decoded payload as JSON`)}if(!_r(i))throw new hr(`Invalid JWT Claims Set`);return i}let yr=e=>{let t=vr(e).exp;return(0,h.isDefined)(t)?t*1e3:null},br=e=>{if(!(0,h.isDefined)(e))return!0;let t=yr(e);return(0,h.isDefined)(t)?t<Date.now():!0};var xr=l(Le());let Sr=class{jwtToken=null;refreshTokenCallback=null;observer=new h.Observer;refreshTokenMutex=new M.Mutex;setJWTToken(e){this.jwtToken=e,this.observer.notifyAll(e)}async getJWTToken(){return(0,h.isDefined)(this.jwtToken)?(this.isTokenValid()||await this.refreshTokenMutex.runExclusive(async()=>{if((0,h.isDefined)(this.refreshTokenCallback))return await this.refreshTokenCallback(),this.jwtToken}),this.jwtToken):null}async getJWTTokenOrThrow(){let e=await this.getJWTToken();if(!(0,h.isDefined)(e))throw new ur;return e}onJWTTokenSave(e){this.observer.addListener(e)}isTokenValid(){return!br(this.jwtToken)}setRefreshTokenCallback(e){this.refreshTokenCallback=e}};Sr=(0,xr.default)([(0,_.injectable)(`Singleton`)],Sr);var Cr=s(((e,t)=>{function n(e,t){return function(n,r){t(n,r,e)}}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),wr=l(Ie()),Tr=l(Cr()),Er=l(Le()),Dr,Or;let kr=class{axiosInstance;constructor(e,t){this.authStorage=e,this.globalConfigService=t,this.axiosInstance=j.default.create({baseURL:this.globalConfigService.getBackendURL(),headers:{"x-client-name":`ts-agent`,"x-client-version":xe,"Content-Type":`application/json`,"Content-Encoding":`gzip`},transformRequest:[e=>{if((0,h.isDefined)(e)){let t=ee.default.createGzip();return t.write(JSON.stringify(e)),t.end(),t}else return e}]}),(0,te.default)(this.axiosInstance)}async apiCall({url:e,method:t,data:n,config:r}){let i=new j.AxiosHeaders({"x-request-source":this.globalConfigService.getRequestSource(),...r?.headers});if(!r?.ignoreAuth){let e=await this.authStorage.getJWTToken();(0,h.isDefined)(e)&&!(0,h.isEmpty)(e)&&(i.authorization=`Bearer ${e}`)}let a={...r,method:t,url:e,data:n,headers:i};try{return await this.axiosInstance.request(a)}catch(t){this.handleError(e,t,n)}}async get(e,t){return(await this.apiCall({url:e,method:`GET`,config:t})).data}async post(e,t,n){return(await this.apiCall({url:e,method:`POST`,data:t,config:n})).data}async put(e,t,n){return(await this.apiCall({url:e,method:`PUT`,data:t,config:n})).data}async delete(e,t){return(await this.apiCall({url:e,method:`DELETE`,config:t})).data}async patch(e,t,n){return(await this.apiCall({url:e,method:`PATCH`,data:t,config:n})).data}async head(e,t){return this.apiCall({url:e,method:`HEAD`,config:t})}async options(e,t){return this.apiCall({url:e,method:`OPTIONS`,config:t})}handleError(e,t,n){if(j.default.isAxiosError(t))if((0,h.isDefined)(t.response)){let{status:e,statusText:n,data:r}=t.response;throw e===j.HttpStatusCode.PaymentRequired?new sr(ar.NOT_ENOUGH_BALANCE_ERROR):Error(`API request failed: ${e} ${n} - ${JSON.stringify(r)}`)}else if((0,h.isDefined)(t.request))throw Error(`API request failed: No response received from ${e}`);else throw Error(`API request failed: ${t instanceof Error?t.message:`Unknown error`}`);else if(t instanceof Error)throw TypeError(`API request failed: ${t.message}`);else throw TypeError(`API request failed: Unknown error occurred`)}onLogin(e){this.authStorage.onJWTTokenSave(t=>{(0,h.isDefined)(t)&&e()})}};kr=(0,Er.default)([(0,_.injectable)(),(0,Tr.default)(0,(0,_.inject)(Sr)),(0,Tr.default)(1,(0,_.inject)(He)),(0,wr.default)(`design:paramtypes`,[typeof(Dr=Sr!==void 0&&Sr)==`function`?Dr:Object,typeof(Or=He!==void 0&&He)==`function`?Or:Object])],kr);let Ar={SUPER_ADMIN:1,ADMIN:2,USER:3},jr=[Ar.ADMIN,Ar.SUPER_ADMIN];var Mr=l(Ie()),Nr=l(Cr()),Pr=l(Le()),Fr;let Ir=class{mutex=new M.Mutex;user=null;constructor(e){this.apiService=e}async fetchUser(){let e=await this.apiService.get(`/api/v1/user/me`);return this.setUser(e),e}setUser(e){this.user=e,H.addContext({userId:e.id})}async getUser(){return(0,h.isDefined)(this.user)?this.user:await this.mutex.runExclusive(async()=>await this.fetchUser())}async isAdminUser(){let e=await this.getUser();return(0,h.isDefined)(e)?jr.includes(e?.role):!1}async isInOrganization(){let e=await this.getUser();return(0,h.isDefined)(e?.organization)}};Ir=(0,Pr.default)([(0,_.injectable)(),(0,Nr.default)(0,(0,_.inject)(kr)),(0,Mr.default)(`design:paramtypes`,[typeof(Fr=kr!==void 0&&kr)==`function`?Fr:Object])],Ir);let Lr=e=>(0,y.createHash)(`md5`).update(String(e)).digest(`hex`),Rr=e=>({...zr(e),testFrameworkReceived:(0,h.isDefined)(e.testFrameworkReceived)?Lr(e.testFrameworkReceived):void 0,testFrameworkExpected:(0,h.isDefined)(e.testFrameworkExpected)?Lr(e.testFrameworkExpected):void 0}),zr=e=>({errorCode:e.errorCode,shortDescription:Lr(e.shortDescription),fullDescription:Lr(e.fullDescription)}),Br=e=>({name:Lr(e.name),code:Lr(e.code),status:e.status,errors:e.errors?.map(e=>Rr(e)),lintErrors:e.lintErrors?.map(e=>Vr(e))??null}),Vr=e=>({errorCode:e.errorCode,fullDescription:Lr(e.fullDescription),shortDescription:Lr(e.shortDescription),severity:e.severity,exactCode:Lr(e.exactCode)}),Hr=({describe:e,stdout:t})=>({describe:{path:e.path,code:Lr(e.code),fullCode:Lr(e.fullCode),status:e.status,errors:e.errors?.map(e=>zr(e)),tests:e.tests.map(e=>Br(e)),lintErrors:e.lintErrors?.map(e=>Vr(e))??null},stdout:t});var Ur=l(Ie()),Wr=l(Cr()),Gr=l(Le()),Kr,qr,Jr;let Yr=class{constructor(e,t,n){this.apiService=e,this.userService=t,this.globalConfigService=n}async saveTestMetrics({requestId:e,timeElapsed:t,validationReport:n,...r}){try{let i={timeElapsed:t,...n,...r};await this.userService.isInOrganization()&&(H.debug.defaultLog(`Filtering private data for B2B user`),i.testResult=(0,h.isDefined)(n?.testResult)?Hr(n.testResult):void 0),H.debug.startLog(`Sending metrics with request id ${e}`),await this.apiService.post(`/api/v1/tests/update-operation-metrics`,i,{headers:{[lr]:e}}),H.debug.defaultLog(`Test metrics have been saved`)}catch(e){H.error(`Test metrics cannot be saved`,e)}H.debug.endLog(`Sending metrics with request id ${e}`)}registerStartTime(e){let t=Date.now();return async({...n})=>{let r=Date.now()-t;return await this.saveTestMetrics({...n,requestId:e,timeElapsed:r}),r}}async logPackageDependencies(e){try{if(await this.userService.isInOrganization())return;let t=bt(e);if(!(0,h.isDefined)(t))return;await this.updateRepositoryPackageJson(t)}catch(e){H.info.defaultLog(`Failed to log package dependencies.`,e);return}}async saveOperationMetricsTrace(e){let{parentRequestId:t,llmModel:n,testResultIteration:r=0,toolsOutput:i,testFileContent:a}=e;try{H.debug.startLog(`Sending operation metrics trace for testResultIteration ${r}`),await this.apiService.post(`/api/v1/tests/operation-metrics-trace`,{parentRequestId:t,iteration:r,llmModel:n,toolsOutput:i,testFileContent:a}),H.debug.defaultLog(`Operation metrics trace saved for testResultIteration ${r}`)}catch(e){H.error(`Failed to save operation metrics trace for testResultIteration ${r}`,e)}H.debug.endLog(`Sending operation metrics trace for testResultIteration ${r}`)}async updateRepositoryPackageJson(e){try{let t=this.globalConfigService.getContext();if(!(0,h.isDefined)(t?.git?.owner)||!(0,h.isDefined)(t?.git?.repository)){H.debug.defaultLog(`No git context available, skipping package.json update`);return}let n={owner:t.git.owner,repo:t.git.repository,packageJson:JSON.stringify(e)};await this.apiService.patch(`/api/v1/github-repos/package-json`,n),H.debug.defaultLog(`Successfully updated repository package.json`)}catch(e){H.info.defaultLog(`Failed to update repository package.json`,e)}}};Yr=(0,Gr.default)([(0,_.injectable)(),(0,Wr.default)(0,(0,_.inject)(kr)),(0,Wr.default)(1,(0,_.inject)(Ir)),(0,Wr.default)(2,(0,_.inject)(He)),(0,Ur.default)(`design:paramtypes`,[typeof(Kr=kr!==void 0&&kr)==`function`?Kr:Object,typeof(qr=Ir!==void 0&&Ir)==`function`?qr:Object,typeof(Jr=He!==void 0&&He)==`function`?Jr:Object])],Yr);var Xr=class{queue;activeProcesses=[];itemAddedObserver=new h.Observer;itemExecutedObserver=new h.Observer;itemAbortedObserver=new h.Observer;abortControllers=new Map;getItemKey;constructor({concurrency:e,getItemKey:t}){this.queue=new ne.default({concurrency:e}),this.getItemKey=t}async add(e,t){let n=this.getItemKey(e);if(this.activeProcesses.includes(n))return;let r=new AbortController,i=H.captureContext({withNewRequestId:!0});return this.abortControllers.set(n,r),this.activeProcesses.push(n),this.itemAddedObserver.notifyAll(n),this.queue.add(async()=>{await H.runWithContext(i,async()=>{await t(r.signal)})},{signal:r.signal}).then(()=>{this.itemExecutedObserver.notifyAll(n)}).finally(()=>{this.activeProcesses=this.activeProcesses.filter(e=>e!==n),this.abortControllers.delete(n)})}shouldQueue(){return this.queue.pending>=this.queue.concurrency}onIdleEmit(e){this.queue.on(`idle`,()=>{e()})}has(e){let t=this.getItemKey(e);return this.activeProcesses.includes(t)}getActiveProcesses(){return this.activeProcesses}getProcessing(){return this.activeProcesses.slice(0,this.queue.concurrency)}getQueued(){return this.activeProcesses.slice(this.queue.concurrency)}onDone(e){this.itemExecutedObserver.addListener(e)}onAdded(e){this.itemAddedObserver.addListener(e)}onAborted(e){this.itemAbortedObserver.addListener(e)}abortAll(){this.queue.clear();for(let[,e]of this.abortControllers)e.abort();this.abortControllers.clear();for(let e of this.activeProcesses)this.itemAbortedObserver.notifyAll(e);this.activeProcesses=[]}abort(e){let t=this.getItemKey(e);this.activeProcesses=this.activeProcesses.filter(e=>e!==t),this.itemAbortedObserver.notifyAll(t);let n=this.abortControllers.get(t);(0,h.isDefined)(n)&&(n.abort(),this.abortControllers.delete(t))}clearQueued(){this.queue.clear();let e=this.getQueued();for(let t of e){let e=this.abortControllers.get(t);(0,h.isDefined)(e)&&(e.abort(),this.abortControllers.delete(t)),this.itemAbortedObserver.notifyAll(t)}this.activeProcesses=this.getProcessing()}getIdlePromise(){return this.queue.onIdle()}};let Zr=`npx jest ${Ce} --coverage=false --verbose=false --watchAll=false --silent --json --forceExit --testPathIgnorePatterns=// --maxWorkers=1`;var Qr=class{fulfill(e){if(Ue().getTestFramework()!==fe.JEST)return!1;let t=e,n=null,r=0;for(;r<25;){r++;let e=vt(t,`package.json`);if(!(0,h.isDefined)(e)||e===n)return!1;let i=bt(t);if((0,h.isDefined)(i)&&xt(i,`jest`))return!0;n=e,t=f.default.dirname(f.default.dirname(e))}return!1}getTestCommand(){return{command:Ue().getTestCommand()??Zr,framework:fe.JEST}}};let $r=`npx vitest run ${Ce} --reporter=junit --silent --pool=threads --maxWorkers=1 --coverage.enabled=false`,ei=new class{constructor(e){this.providers=e}getTestCommand(e){let t=this.getProvider(e);if(!(0,h.isDefined)(t))throw Error(`No CmdProvider found for file: ${e}`);return t.getTestCommand()}getProvider(e){return this.providers.find(t=>t.fulfill(e))}}([new class{fulfill(e){if(Ue().getTestFramework()!==fe.VITEST)return!1;let t=e,n=null,r=0;for(;r<25;){r++;let e=vt(t,`package.json`);if(!(0,h.isDefined)(e)||e===n)return!1;let i=bt(t);if((0,h.isDefined)(i)&&xt(i,`vitest`))return!0;n=e,t=f.default.dirname(f.default.dirname(e))}return!1}getTestCommand(){return{command:Ue().getTestCommand()??$r,framework:fe.VITEST}}},new Qr]);var ti=class e{static of(...t){return new e(...t)}static all=e.of();static success=e.of(0);static suppress_1=e.of(0,1);allow(e){return this.allowed.length===0||this.allowed.includes(e)}allowed;constructor(...e){this.allowed=e}};let ni=`validate-tests`,ri=e=>e instanceof Error&&`code`in e&&typeof e.code==`number`;var ii=class e{constructor(e){this.relativePath=e}async runCommandOnFile(e,t=ti.success,n=!1){let r=n?_t(f.default.normalize(this.relativePath)):f.default.normalize(this.relativePath),i=e.replaceAll(Ce,`"${r}"`);try{H.debug.startLog(`Command been executed on test-file ${this.relativePath} ${e}`),H.info.defaultLog(`Running command on file ${this.relativePath}`,{renderedCommand:i});let{stdout:t,stderr:n}=await Nt(i,{cwd:Ue().getRootPath(),timeout:3e5}),r=t||n;return H.debug.endLog(`Command been executed on test-file ${this.relativePath} ${e}: ${r}`),r}catch(n){if(!(ri(n)&&(0,h.isDefined)(n.code)&&t.allow(n.code))){let t=`Failed run command "${e}" on file ${this.relativePath}`;throw H.error(t,n),n}let r=n.stdout||n.stderr;return H.debug.endLog(`Command been executed on test-file ${this.relativePath} ${e}: ${r}`),r}}getTempFileName(e,t,n){if(t){let t=f.default.join(N.default.tmpdir(),`early`),n=`${e}-${(0,y.randomUUID)()}`;return f.default.join(t,n)}let r=(0,h.isDefined)(n)&&!(0,h.isEmpty)(n),i=r&&f.default.isAbsolute(n)?f.default.dirname(n):f.default.join(Ue().getRootPath(),f.default.dirname(n??``));if(!(0,h.isDefined)(i))throw Error(`Workspace root path is not defined`);let a=`.${e}-${(0,y.randomUUID)()}-${r?f.default.basename(n):`.ts`}`;return f.default.join(i,a)}async runCommandWithContent(t,n,r,i=!1){H.addContext({subCategory:Et.COMMAND_EXECUTION});let a={filePrefix:`generated-content`,useTemporaryOSFolder:!(0,h.isDefined)(r?.predefinedPath),validExitCodes:ti.success,...r},o=this.getTempFileName(a.filePrefix,a.useTemporaryOSFolder,a.predefinedPath);try{H.info.defaultLog(`Creating temp file ${o}`),await p.default.mkdir(f.default.dirname(o),{recursive:!0}),await p.default.writeFile(o,t);let r=new e(o);return H.info.defaultLog(`Running command "${n}" on temp file`),await r.runCommandOnFile(n,a.validExitCodes,i)}catch(e){return H.error(`Failed running command "${n}" on temp file`,e),``}finally{try{await p.default.unlink(o)}catch(e){H.info.defaultLog(`Failed removing temp file`,e)}}}async runTestCommand(){H.addContext({subCategory:Et.COMMAND_EXECUTION});let e;try{e=ei.getTestCommand(this.relativePath)}catch(e){return e instanceof Error?e.message:`Framework is not supported yet`}return await this.runCommandOnFile(e.command,ti.suppress_1,!0)}async runTestCommandOnTempFile(e){H.addContext({subCategory:Et.COMMAND_EXECUTION});let t;try{t=ei.getTestCommand(this.relativePath)}catch(e){return e instanceof Error?e.message:`Framework is not supported yet`}return await this.runCommandWithContent(e,t.command,{validExitCodes:ti.suppress_1,filePrefix:ni,predefinedPath:this.relativePath},!0)}async runFormatCommand(){H.addContext({subCategory:Et.COMMAND_EXECUTION});let e=Ue().getPrettierCommand();H.debug.startLog(`format command: ${e}`);let t=await this.runCommandOnFile(e,ti.all);return H.debug.endLog(`format command: ${e}`),t}async runLintCommand(e=[]){H.addContext({subCategory:Et.COMMAND_EXECUTION});let t=Ue().getLintCommand(),n=e.length>0?t+` `+e.join(` `):t;H.debug.startLog(`lint command: ${n}`);let r=await this.runCommandOnFile(n,ti.all);return H.debug.endLog(`lint command: ${n}`),r}};let ai=e=>{let t=e.name??``,n=e.type;return{methodType:n,methodName:t,parentName:n===`method`?e.parentName:void 0}};async function oi(e,{methodType:t,methodName:n,parentName:r}){let i=new Mn(await new et(e).getText()).testables.findTestable(t,n,r);if(!(0,h.isDefined)(i))throw new sr(ar.TESTABLE_NOT_FOUND,{methodName:n});return i}function si(e,t){return(0,h.isDefined)(t)&&!(0,h.isEmpty)(t)?`${t}.${e}`:e}function ci(e){if(!e||e.trim()===``)return[];let t=e.indexOf(`[`),n=e.lastIndexOf(`]`),r=t!==-1&&n!==-1&&n>t?e.slice(t,n+1):e;try{return JSON.parse(r)}catch(e){return H.error(`Failed to parse eslint JSON output`,e),null}}var li=l(Le());let ui=class{contentCache=new Map;filePathIndex=new Map;computeContentHash(e){return Lr(e)}getContentCacheKey(e,t){return`${e}:${t?`fix`:`nofix`}`}evictOldest(){let e=this.contentCache.keys().next().value;(0,h.isDefined)(e)&&(this.contentCache.delete(e),H.debug.defaultLog(`Lint cache evicted oldest entry (FIFO)`))}get(e,t,n){let r=this.computeContentHash(t),i=this.getContentCacheKey(r,n),a=this.contentCache.get(i);return(0,h.isDefined)(a)?(H.debug.defaultLog(`Lint cache hit for ${e}`),a.results):null}set(e,t,n,r){let i=this.computeContentHash(t),a=Date.now(),o=this.getContentCacheKey(i,n);if(!this.contentCache.has(o)&&this.contentCache.size>=100&&this.evictOldest(),this.contentCache.set(o,{results:r,contentHash:i,withFix:n,timestamp:a}),n){let e=this.getContentCacheKey(i,!1);!this.contentCache.has(e)&&this.contentCache.size>=100&&this.evictOldest(),this.contentCache.set(e,{results:r,contentHash:i,withFix:!1,timestamp:a})}this.filePathIndex.set(e,i)}invalidate(e){let t=this.filePathIndex.get(e);if(!(0,h.isDefined)(t))return;let n=this.getContentCacheKey(t,!0),r=this.getContentCacheKey(t,!1),i=this.contentCache.delete(n),a=this.contentCache.delete(r);this.filePathIndex.delete(e),(i||a)&&H.debug.defaultLog(`Lint cache invalidated for ${e}`)}invalidateAll(){let e=this.contentCache.size;this.contentCache.clear(),this.filePathIndex.clear(),e>0&&H.debug.defaultLog(`Lint cache cleared: ${e} entries removed`)}};ui=(0,li.default)([(0,_.injectable)()],ui);let di=function(e){return e[e.ERROR=2]=`ERROR`,e[e.WARN=1]=`WARN`,e[e.OFF=0]=`OFF`,e}({});var fi=l(Ie()),pi=l(Cr()),mi=l(Le()),hi,gi;let _i=class{constructor(e,t){this.globalConfigService=e,this.lintCacheService=t}async disableRules(e){let t=[this.globalConfigService.shouldIgnoreAsAnyLintErrors()?`@typescript-eslint/no-explicit-any`:void 0,...this.globalConfigService.allowUndefinedLintErrors()?Ct:[]].filter(h.isDefined);this.globalConfigService.shouldDisableLintRules()?await this.disableAllLintRules(e):(0,h.isEmpty)(t)||await this.disableLintRules(e,t),await Jt.refreshFromFileSystem(e)}async disableAllLintRules(e){let t=await this.getRulesToDisable(e);if((0,h.isDefined)(t)){if((0,h.isEmpty)(t)){H.info.defaultLog(`No lint rules needed to be disabled`);return}await this.addDisableComment(e,t),H.info.defaultLog(`Added eslint-disable comment for rules: ${t.join(`, `)}`)}}async lintFiles(e,t){let n=et.fromRelativePath(e),r=await n.getText(),i=this.lintCacheService.get(e,r,t);if((0,h.isDefined)(i))return i;let a=t?[`--format`,`json`,`--fix`]:[`--format`,`json`],o=ci(await new ii(e).runLintCommand(a));if(!(0,h.isDefined)(o))return null;if(t){await Jt.refreshFromFileSystem(e);let r=await n.getText();this.lintCacheService.set(e,r,t,o)}else this.lintCacheService.set(e,r,t,o);return o}async lint(e,t){try{return await this.lintFiles(e,t)}catch(e){return H.error(`Failed to get lint results:`,e),null}}async fixLint(e){try{return await this.lint(e,!0)}catch(e){return H.error(`Failed to fix lint:`,e),null}}async getLintResults(e){try{return await this.lint(e,!1)}catch(e){return H.error(`Failed to get lint results:`,e),null}}async getRulesToDisable(e){let t=await this.getLintResults(e);if(!(0,h.isDefined)(t))return null;let n=(t[0]?.messages??[]).filter(e=>e.severity===di.ERROR);return[...new Set(n.map(e=>e.ruleId).filter(h.isDefined))]}async addDisableComment(e,t){let n=et.fromRelativePath(e),r=await n.getText(),i=`/* eslint-disable ${t.join(`, `)} */\n\n`;await n.replace(i+r),this.lintCacheService.invalidate(e)}hasDisableCommentForRules(e,t){let n=e.split(`
32008
32008
  `);for(let e of n){let n=e.indexOf(`/*`),r=e.indexOf(`*/`);if(n===-1||r===-1)continue;let i=e.slice(n+2,r).trim();if(i.startsWith(`eslint-disable`)&&i.replace(`eslint-disable`,``).trim().split(`,`).map(e=>e.trim()).every(e=>t.includes(e)))return!0}return!1}async disableLintRules(e,t){if(!this.globalConfigService.shouldIgnoreAsAnyLintErrors())return;let n=et.fromRelativePath(e),r=await n.getText();if(this.hasDisableCommentForRules(r,t))return;let i=await this.getLintResults(e);if(!(0,h.isDefined)(i)){H.info.defaultLog(`No lint results returned`);return}let a=i[0]?.messages??[],o=t.filter(e=>a.some(t=>t.severity===di.ERROR&&t.ruleId===e));if((0,h.isEmpty)(o))return;let s=`/* eslint-disable ${o.join(`, `)} */\n\n`;await n.replace(s+r),this.lintCacheService.invalidate(e),H.info.defaultLog(`Added eslint-disable comment for ${o.join(`, `)} in ${e}`)}};_i=(0,mi.default)([(0,_.injectable)(),(0,pi.default)(0,(0,_.inject)(He)),(0,pi.default)(1,(0,_.inject)(ui)),(0,fi.default)(`design:paramtypes`,[typeof(hi=He!==void 0&&He)==`function`?hi:Object,typeof(gi=ui!==void 0&&ui)==`function`?gi:Object])],_i);let vi="${methodName}";`${vi}`,`${vi}`;function yi(e,t,n){let r=e.split(`
@@ -32077,7 +32077,7 @@ ${qd}${t.trimStart()}`),n=3+(0,O.stripVTControlCharacters)(t.trimStart()).length
32077
32077
  it("placeholder", () => {
32078
32078
  assert.ok(true);
32079
32079
  });
32080
- `;default:return tp}}function rp(e){return(0,h.isDefined)(e)?{status:Zf.RESOLVED,command:e}:{status:Zf.UNRESOLVED}}function ip(e){return{testCommand:rp(e.testCommand),buildCommand:rp(e.typecheckCommand),lintCommand:rp(e.lintCommand),prettierCommand:rp(e.prettierCommand),packageManager:e.packageManager}}var ap=l(Le());let op=(0,O.promisify)(D.exec),sp=new Map,cp=[/Oops! Something went wrong/i,/ESLint couldn't find a?n? ?configuration/i,/Cannot find module/i,/MODULE_NOT_FOUND/,/ENOENT/,/command not found/i,/ERR_MODULE_NOT_FOUND/,/Cannot read config file/i,/No ESLint configuration found/i,/Error: No files matching/i];function lp(e){return cp.some(t=>t.test(e))}function up(e,t){let n=f.default.basename(t);return e.includes(n)}let dp=class{async verify(e){let{setup:t,workingDirectory:n}=e,[r,i,a,o]=await Promise.all([this.runGate(t.testCommand,n),this.runGate(t.buildCommand,n),this.runGate(t.lintCommand,n),this.runGate(t.prettierCommand,n)]);return{testCommand:r,buildCommand:i,lintCommand:a,prettierCommand:o,passed:r.status!==Qf.FAILED&&i.status!==Qf.FAILED&&a.status!==Qf.FAILED&&o.status!==Qf.FAILED}}async runGate(e,t){if(e.status===Zf.UNRESOLVED)return{status:Qf.SKIPPED,reason:`unresolved`};let n=`${e.command}::${t}`,r=sp.get(n);if(r)return H.default.info(`[test-verification] Reusing in-flight gate: ${e.command}`),r;let i=this.executeGate(e,t);sp.set(n,i);try{return await i}finally{sp.delete(n)}}async executeGate(e,t){try{return await op(e.command,{cwd:t,encoding:`utf8`,timeout:12e4,maxBuffer:10485760}),{status:Qf.PASSED,command:e.command}}catch(t){let n=t,r=((n.stdout??``)+(n.stderr??``)).trim();return H.default.warn(`[test-verification] Gate failed: ${e.command}\n${r}`),{status:Qf.FAILED,command:e.command,output:r}}}};dp=(0,ap.default)([(0,_.injectable)()],dp);function fp(e,t,n){let r=(e,t)=>e.status===Zf.UNRESOLVED?e:t.status===Qf.PASSED?{status:Zf.VERIFIED,command:e.command}:{status:Zf.UNRESOLVED},i=(e,t,r)=>e.status===Zf.UNRESOLVED?e:t.status===Qf.PASSED?{status:Zf.VERIFIED,command:e.command}:t.status===Qf.FAILED&&!lp(t.output)?(up(t.output,n)||H.default.warn(`[test-verification] ${r} failed on unrelated files — promoting anyway`),{status:Zf.VERIFIED,command:e.command}):{status:Zf.UNRESOLVED};return{testCommand:r(e.testCommand,t.testCommand),buildCommand:i(e.buildCommand,t.buildCommand,`build`),lintCommand:i(e.lintCommand,t.lintCommand,`lint`),prettierCommand:i(e.prettierCommand,t.prettierCommand,`prettier`),packageManager:e.packageManager}}let pp=[`jest.config.ts`,`jest.config.js`,`jest.config.mjs`,`jest.config.cjs`,`vitest.config.ts`,`vitest.config.js`,`vitest.config.mjs`],mp=[`tsconfig.json`],hp=[`.eslintrc`,`.eslintrc.js`,`.eslintrc.cjs`,`.eslintrc.json`,`.eslintrc.yml`,`.eslintrc.yaml`,`eslint.config.js`,`eslint.config.mjs`,`eslint.config.cjs`,`eslint.config.ts`],gp=[`.prettierrc`,`.prettierrc.js`,`.prettierrc.cjs`,`.prettierrc.mjs`,`.prettierrc.json`,`.prettierrc.yaml`,`.prettierrc.yml`,`prettier.config.js`,`prettier.config.cjs`,`prettier.config.mjs`,`prettier.config.ts`],_p=new Set([`build`,`compile`,`dist`,`prepublish`,`prepublishOnly`,`prepare`]),vp=[`test:unit`,`test:ci`,`test:run`],yp=[`check:ts`,`typecheck`,`type-check`,`tsc`],bp=[`check:lint`,`lint`],xp=[`check:prettier`,`format`,`prettier`];function Sp(e){let t=[],n=e,r=f.default.parse(n).root;for(;n!==r&&(t.push(n),!(0,w.existsSync)(f.default.join(n,`.git`)));)n=f.default.dirname(n);return t}function Cp(e){let t=[];for(let n of Sp(e)){let e=f.default.join(n,`package.json`);if((0,w.existsSync)(e))try{let r=JSON.parse((0,w.readFileSync)(e,`utf8`));t.push({dir:n,pkg:r})}catch{}}return t}function wp(e,t){for(let n of e)for(let e of t)if((0,w.existsSync)(f.default.join(n,e)))return!0;return!1}function Tp(e){for(let t of e)for(let e of pp)if((0,w.existsSync)(f.default.join(t,e)))return e.startsWith(`vitest`)?`vitest`:`jest`;return null}function Ep(e,t){let n=Tp(t);if((0,h.isDefined)(n))return n;for(let{pkg:t}of e){let e=Rp(t);if((0,h.isDefined)(e.vitest))return`vitest`;if((0,h.isDefined)(e.jest))return`jest`;if((0,h.isDefined)(e.mocha))return`mocha`}return Dp(t,`vitest`)?`vitest`:Dp(t,`jest`)?`jest`:null}function Dp(e,t){for(let n of e)if((0,w.existsSync)(f.default.join(n,`node_modules`,`.bin`,t)))return!0;return!1}function Op(e){for(let t of Sp(e)){if((0,w.existsSync)(f.default.join(t,`pnpm-lock.yaml`))||(0,w.existsSync)(f.default.join(t,`pnpm-workspace.yaml`)))return`pnpm`;if((0,w.existsSync)(f.default.join(t,`yarn.lock`)))return`yarn`;if((0,w.existsSync)(f.default.join(t,`bun.lockb`))||(0,w.existsSync)(f.default.join(t,`bun.lock`)))return`bun`}return`npm`}function kp(e,t){return e===`yarn`?`yarn ${t}`:`${e} run ${t}`}function Ap(e,t){return e.startsWith(`npx `)||e.startsWith(`yarn `)?`${e} ${t}`:`${e} -- ${t}`}let jp=/(?:^echo\b)|(?:no test specified)|(?:placeholder)/i;function Mp(e,t){let n=e.scripts??{},r=Rp(e),i=n.test;if((0,h.isDefined)(i)&&!jp.test(i))return kp(t,`test`);for(let e of vp)if((0,h.isDefined)(n[e]))return kp(t,e);for(let[e,r]of Object.entries(n))if(/\bjest\b/.test(r)||/\bvitest\b/.test(r))return kp(t,e);return(0,h.isDefined)(r.jest)?`npx jest`:(0,h.isDefined)(r.vitest)?`npx vitest`:null}function Np(e,t,n){for(let{pkg:t}of e){let e=Mp(t,n);if((0,h.isDefined)(e))return e}let r=Tp(t);return(0,h.isDefined)(r)?(H.info.defaultLog(`[project-setup] test: found config file for ${r}`),`npx ${r}`):Dp(t,`jest`)?(H.info.defaultLog(`[project-setup] test: found jest in node_modules`),`npx jest`):Dp(t,`vitest`)?(H.info.defaultLog(`[project-setup] test: found vitest in node_modules`),`npx vitest`):null}function Pp(e,t){let n=e.scripts??{},r=Rp(e);for(let e of yp)if((0,h.isDefined)(n[e]))return kp(t,e);for(let[e,r]of Object.entries(n))if(/\btsc\b/.test(r)&&!_p.has(e))return kp(t,e);return(0,h.isDefined)(r.typescript)?`npx tsc --noEmit`:null}function Fp(e,t,n){for(let{pkg:t}of e){let e=Pp(t,n);if((0,h.isDefined)(e))return e}return wp(t,mp)?(H.info.defaultLog(`[project-setup] typecheck: found tsconfig.json`),`npx tsc --noEmit`):Dp(t,`tsc`)?(H.info.defaultLog(`[project-setup] typecheck: found tsc in node_modules`),`npx tsc --noEmit`):null}function Ip(e,t,n){for(let{pkg:t}of e){let e=t.scripts??{},r=Rp(t);for(let t of bp)if((0,h.isDefined)(e[t]))return kp(n,t);for(let[t,r]of Object.entries(e))if(/\beslint\b/.test(r))return kp(n,t);if((0,h.isDefined)(r.eslint))return`npx eslint`}return wp(t,hp)?(H.info.defaultLog(`[project-setup] lint: found eslint config file`),`npx eslint`):Dp(t,`eslint`)?(H.info.defaultLog(`[project-setup] lint: found eslint in node_modules`),`npx eslint`):null}function Lp(e,t,n){for(let{pkg:t}of e){let e=t.scripts??{},r=Rp(t);for(let t of xp)if((0,h.isDefined)(e[t]))return kp(n,t);for(let[t,r]of Object.entries(e))if(/\bprettier\b/.test(r))return kp(n,t);if((0,h.isDefined)(r.prettier))return`npx prettier`}return wp(t,gp)?(H.info.defaultLog(`[project-setup] prettier: found prettier config file`),`npx prettier`):Dp(t,`prettier`)?(H.info.defaultLog(`[project-setup] prettier: found prettier in node_modules`),`npx prettier`):null}function Rp(e){return{...e.dependencies,...e.devDependencies}}function zp(e,t){let n=Sp(e),r=Cp(e),i=Op(e),a=(0,h.isDefined)(t)?f.default.relative(e,t):null,o=Np(r,n,i),s=(0,h.isDefined)(o)&&(0,h.isDefined)(a)?Ap(o,a):null,c=Ep(r,n),l=Fp(r,n,i),u=Ip(r,n,i),d=(0,h.isDefined)(u)&&(0,h.isDefined)(a)?`npx eslint ${a}`:null,p=Lp(r,n,i),m=(0,h.isDefined)(p)&&(0,h.isDefined)(a)?`npx prettier ${a} --write`:null,g=[];return(0,h.isDefined)(s)||g.push(`testCommand`),(0,h.isDefined)(l)||g.push(`typecheckCommand`),(0,h.isDefined)(d)||g.push(`lintCommand`),(0,h.isDefined)(m)||g.push(`prettierCommand`),{testCommand:s,testRunner:c,typecheckCommand:l,lintCommand:d,prettierCommand:m,packageManager:i,missing:g}}let Bp=(0,O.promisify)(D.exec),Vp={testCommand:`test`,buildCommand:`build`,lintCommand:`lint`,prettierCommand:`format`},Hp=function(e){return e.TEST=`testCommand`,e.BUILD=`buildCommand`,e.LINT=`lintCommand`,e.FORMAT=`prettierCommand`,e}({});var Up=class{setup;testFilePath;workingDirectory;lastCheckAllResult=null;mcpServer;progressLogger;constructor(e){this.setup=e.setup,this.testFilePath=e.testFilePath,this.workingDirectory=e.workingDirectory,this.progressLogger=e.progressLogger??Me,this.mcpServer=this.buildServer()}getLastCheckAllResult(){return this.lastCheckAllResult}getServer(){return this.mcpServer}buildValidationSummary(){if(!(0,h.isDefined)(this.lastCheckAllResult))return;let e=this.lastCheckAllResult.gates.find(e=>e.gate===Hp.TEST),t=this.lastCheckAllResult.gates.find(e=>e.gate===Hp.LINT),n=(0,h.isDefined)(e?.output)?yf(e.output):void 0,r=(0,h.isDefined)(t?.output)?xf(t.output):0;return{greenTestsCount:n?.passed??0,redTestsCount:n?.failed??0,greyTestsCount:0,whiteTestsCount:0,naTestsCount:0,errorSuitsCount:n?.suitesFailed??0,lintErrorsCount:r}}async runGate(e){let t=this.setup[e];if(t.status===Zf.UNRESOLVED)return{gate:e,passed:!0,skipped:!0};try{let{stdout:n,stderr:r}=await Bp(t.command,{cwd:this.workingDirectory,encoding:`utf8`,timeout:12e4,maxBuffer:10485760});return{gate:e,passed:!0,skipped:!1,output:af((n+r).trim())}}catch(t){let n=of(t);if(e===Hp.BUILD||e===Hp.LINT){let t=f.default.basename(this.testFilePath);if(!n.includes(t))return{gate:e,passed:!0,skipped:!1,output:`[warning] ${Vp[e]??e} failed on unrelated files — not blocking.\n${n}`}}return{gate:e,passed:!1,skipped:!1,output:n}}}async checkAll(){let e=this.setup.lintCommand.status!==Zf.UNRESOLVED,t=this.setup.prettierCommand.status!==Zf.UNRESOLVED,n=await this.runStabilityLoop(e,t);if(n.stabilityConflict===!0)return this.lastCheckAllResult=n,n;this.progressLogger.verbose(`validating...`);let[r,i]=await Promise.all([this.runGate(Hp.TEST),this.runGate(Hp.BUILD)]),a=!1;if(!r.passed&&(0,h.isDefined)(r.output)){let e=yf(r.output);(0,h.isDefined)(e)&&e.passed>=6&&(a=!0,r.passed=!0)}let o=[...n.gates,r,i],s={passed:o.every(e=>e.passed),gates:o},c=s.gates.find(e=>e.gate===Hp.TEST),l=(0,h.isDefined)(c?.output)?yf(c.output):void 0,u=s.gates.filter(e=>!e.skipped).map(e=>`${Vp[e.gate]??e.gate} ${e.passed?`✓`:`✗`}`).join(` `),d=[];(0,h.isDefined)(l)&&(d.push(`${l.passed} green, ${l.failed} red`),l.suitesFailed>0&&d.push(`${l.suitesFailed} suite errors`));let f=d.length>0?` — ${d.join(`, `)}`:``;return this.progressLogger.verbose(`Validation ${s.passed?`passed`:`failed`}:`,u+f),a&&(0,h.isDefined)(l)&&this.progressLogger.verbose(`Pruning tests — ${l.passed} passing, ${l.failed} failing`),this.lastCheckAllResult=s,s}async runStabilityLoop(e,t){let n={gate:Hp.LINT,passed:!0,skipped:!0},r={gate:Hp.FORMAT,passed:!0,skipped:!0};if(!e&&!t)return{passed:!0,gates:[n,r]};let i=await(0,p.readFile)(this.testFilePath,`utf8`);for(let a=0;a<2;a++){let o=await Promise.all([e?this.runGate(Hp.LINT):Promise.resolve(n),t?this.runGate(Hp.FORMAT):Promise.resolve(r)]);if(n=o[0],r=o[1],!n.passed||!r.passed)break;let s=await(0,p.readFile)(this.testFilePath,`utf8`);if(s===i)break;if(a===1)return{passed:!1,stabilityConflict:!0,gates:[n,r]};i=s}return{passed:n.passed&&r.passed,gates:[n,r]}}buildServer(){let e=(0,oe.tool)(`check_lint`,`Runs the lint command against the test file and returns pass/fail with output. Use during iteration to check lint status.`,{},async()=>{let e=await this.runGate(Hp.LINT);return{content:[{type:`text`,text:JSON.stringify(e,null,2)}]}}),t=(0,oe.tool)(`check_format`,`Runs the format/prettier command against the test file and returns pass/fail with output. Use during iteration to check formatting status.`,{},async()=>{let e=await this.runGate(Hp.FORMAT);return{content:[{type:`text`,text:JSON.stringify(e,null,2)}]}}),n=(0,oe.tool)(`check_test`,`Runs the test command and returns pass/fail with output. Use during iteration to check test status.`,{},async()=>{let e=await this.runGate(Hp.TEST),t=(0,h.isDefined)(e.output)?yf(e.output):void 0;return!e.passed&&(0,h.isDefined)(t)&&t.passed>=6&&(this.progressLogger.verbose(`Pruning tests — ${t.passed} passing, ${t.failed} failing`),e.passed=!0),e.testReport=t,{content:[{type:`text`,text:JSON.stringify(e,null,2)}]}}),r=(0,oe.tool)(`check_build`,`Runs the build command and returns pass/fail with output. Use during iteration to check build status.`,{},async()=>{let e=await this.runGate(Hp.BUILD);return{content:[{type:`text`,text:JSON.stringify(e,null,2)}]}}),i=(0,oe.tool)(`check_all`,[`Runs ALL verification gates with a lint/format stability check.`,`First runs lint+format in a loop (max 2 iterations) to ensure they stabilize.`,`Then runs test+build once. Returns combined pass/fail.`,`You MUST call this tool and get all-green before completing your task.`,`If it reports a stability conflict, inform the user — do not retry.`].join(` `),{},async()=>{let e=await this.checkAll(),t=e.gates.find(e=>e.gate===Hp.TEST);return e.testReport=(0,h.isDefined)(t?.output)?yf(t.output):void 0,{content:[{type:`text`,text:JSON.stringify(e,null,2)}]}}),a=(0,oe.tool)(`get_status`,`Returns the current verification state: last check_all result and whether you are cleared to finish.`,{},async()=>{let e=this.getLastCheckAllResult(),t={lastCheckAllResult:e,clearedToFinish:e?.passed===!0};return{content:[{type:`text`,text:JSON.stringify(t,null,2)}]}});return(0,oe.createSdkMcpServer)({name:`verification_gates`,version:`1.0.0`,tools:[e,t,n,r,i,a]})}},Wp=l(Ie()),Gp=l(Cr()),Kp=l(Le()),qp,Jp,Yp,Xp;function Zp(e){return(0,h.isEmpty)(e)||!(0,w.existsSync)(e)?``:(0,w.readFileSync)(e,`utf8`)}function Qp(e){return(e.duration_ms/1e3).toFixed(1),``}function $p(e,t){return e+[``,`---`,`IMPORTANT: A test file has been pre-created at: ${t}`,`Use the Edit tool to add your test cases to this file. Do NOT create a new file with the Write tool.`].join(`
32080
+ `;default:return tp}}function rp(e){return(0,h.isDefined)(e)?{status:Zf.RESOLVED,command:e}:{status:Zf.UNRESOLVED}}function ip(e){return{testCommand:rp(e.testCommand),buildCommand:rp(e.typecheckCommand),lintCommand:rp(e.lintCommand),prettierCommand:rp(e.prettierCommand),packageManager:e.packageManager}}var ap=l(Le());let op=(0,O.promisify)(D.exec),sp=new Map,cp=[/Oops! Something went wrong/i,/ESLint couldn't find a?n? ?configuration/i,/Cannot find module/i,/MODULE_NOT_FOUND/,/ENOENT/,/command not found/i,/ERR_MODULE_NOT_FOUND/,/Cannot read config file/i,/No ESLint configuration found/i,/Error: No files matching/i];function lp(e){return cp.some(t=>t.test(e))}function up(e,t){let n=f.default.basename(t);return e.includes(n)}let dp=class{async verify(e){let{setup:t,workingDirectory:n}=e,[r,i,a,o]=await Promise.all([this.runGate(t.testCommand,n),this.runGate(t.buildCommand,n),this.runGate(t.lintCommand,n),this.runGate(t.prettierCommand,n)]);return{testCommand:r,buildCommand:i,lintCommand:a,prettierCommand:o,passed:r.status!==Qf.FAILED&&i.status!==Qf.FAILED&&a.status!==Qf.FAILED&&o.status!==Qf.FAILED}}async runGate(e,t){if(e.status===Zf.UNRESOLVED)return{status:Qf.SKIPPED,reason:`unresolved`};let n=`${e.command}::${t}`,r=sp.get(n);if(r)return H.default.info(`[test-verification] Reusing in-flight gate: ${e.command}`),r;let i=this.executeGate(e,t);sp.set(n,i);try{return await i}finally{sp.delete(n)}}async executeGate(e,t){try{return await op(e.command,{cwd:t,encoding:`utf8`,timeout:3e5,maxBuffer:10485760}),{status:Qf.PASSED,command:e.command}}catch(t){let n=t,r=((n.stdout??``)+(n.stderr??``)).trim();return H.default.warn(`[test-verification] Gate failed: ${e.command}\n${r}`),{status:Qf.FAILED,command:e.command,output:r}}}};dp=(0,ap.default)([(0,_.injectable)()],dp);function fp(e,t,n){let r=(e,t)=>e.status===Zf.UNRESOLVED?e:t.status===Qf.PASSED?{status:Zf.VERIFIED,command:e.command}:{status:Zf.UNRESOLVED},i=(e,t,r)=>e.status===Zf.UNRESOLVED?e:t.status===Qf.PASSED?{status:Zf.VERIFIED,command:e.command}:t.status===Qf.FAILED&&!lp(t.output)?(up(t.output,n)||H.default.warn(`[test-verification] ${r} failed on unrelated files — promoting anyway`),{status:Zf.VERIFIED,command:e.command}):{status:Zf.UNRESOLVED};return{testCommand:r(e.testCommand,t.testCommand),buildCommand:i(e.buildCommand,t.buildCommand,`build`),lintCommand:i(e.lintCommand,t.lintCommand,`lint`),prettierCommand:i(e.prettierCommand,t.prettierCommand,`prettier`),packageManager:e.packageManager}}let pp=[`jest.config.ts`,`jest.config.js`,`jest.config.mjs`,`jest.config.cjs`,`vitest.config.ts`,`vitest.config.js`,`vitest.config.mjs`],mp=[`tsconfig.json`],hp=[`.eslintrc`,`.eslintrc.js`,`.eslintrc.cjs`,`.eslintrc.json`,`.eslintrc.yml`,`.eslintrc.yaml`,`eslint.config.js`,`eslint.config.mjs`,`eslint.config.cjs`,`eslint.config.ts`],gp=[`.prettierrc`,`.prettierrc.js`,`.prettierrc.cjs`,`.prettierrc.mjs`,`.prettierrc.json`,`.prettierrc.yaml`,`.prettierrc.yml`,`prettier.config.js`,`prettier.config.cjs`,`prettier.config.mjs`,`prettier.config.ts`],_p=new Set([`build`,`compile`,`dist`,`prepublish`,`prepublishOnly`,`prepare`]),vp=[`test:unit`,`test:ci`,`test:run`],yp=[`check:ts`,`typecheck`,`type-check`,`tsc`],bp=[`check:lint`,`lint`],xp=[`check:prettier`,`format`,`prettier`];function Sp(e){let t=[],n=e,r=f.default.parse(n).root;for(;n!==r&&(t.push(n),!(0,w.existsSync)(f.default.join(n,`.git`)));)n=f.default.dirname(n);return t}function Cp(e){let t=[];for(let n of Sp(e)){let e=f.default.join(n,`package.json`);if((0,w.existsSync)(e))try{let r=JSON.parse((0,w.readFileSync)(e,`utf8`));t.push({dir:n,pkg:r})}catch{}}return t}function wp(e,t){for(let n of e)for(let e of t)if((0,w.existsSync)(f.default.join(n,e)))return!0;return!1}function Tp(e){for(let t of e)for(let e of pp)if((0,w.existsSync)(f.default.join(t,e)))return e.startsWith(`vitest`)?`vitest`:`jest`;return null}function Ep(e,t){let n=Tp(t);if((0,h.isDefined)(n))return n;for(let{pkg:t}of e){let e=Rp(t);if((0,h.isDefined)(e.vitest))return`vitest`;if((0,h.isDefined)(e.jest))return`jest`;if((0,h.isDefined)(e.mocha))return`mocha`}return Dp(t,`vitest`)?`vitest`:Dp(t,`jest`)?`jest`:null}function Dp(e,t){for(let n of e)if((0,w.existsSync)(f.default.join(n,`node_modules`,`.bin`,t)))return!0;return!1}function Op(e){for(let t of Sp(e)){if((0,w.existsSync)(f.default.join(t,`pnpm-lock.yaml`))||(0,w.existsSync)(f.default.join(t,`pnpm-workspace.yaml`)))return`pnpm`;if((0,w.existsSync)(f.default.join(t,`yarn.lock`)))return`yarn`;if((0,w.existsSync)(f.default.join(t,`bun.lockb`))||(0,w.existsSync)(f.default.join(t,`bun.lock`)))return`bun`}return`npm`}function kp(e,t){return e===`yarn`?`yarn ${t}`:`${e} run ${t}`}function Ap(e,t){return e.startsWith(`npx `)||e.startsWith(`yarn `)?`${e} ${t}`:`${e} -- ${t}`}let jp=/(?:^echo\b)|(?:no test specified)|(?:placeholder)/i;function Mp(e,t){let n=e.scripts??{},r=Rp(e),i=n.test;if((0,h.isDefined)(i)&&!jp.test(i))return kp(t,`test`);for(let e of vp)if((0,h.isDefined)(n[e]))return kp(t,e);for(let[e,r]of Object.entries(n))if(/\bjest\b/.test(r)||/\bvitest\b/.test(r))return kp(t,e);return(0,h.isDefined)(r.jest)?`npx jest`:(0,h.isDefined)(r.vitest)?`npx vitest`:null}function Np(e,t,n){for(let{pkg:t}of e){let e=Mp(t,n);if((0,h.isDefined)(e))return e}let r=Tp(t);return(0,h.isDefined)(r)?(H.info.defaultLog(`[project-setup] test: found config file for ${r}`),`npx ${r}`):Dp(t,`jest`)?(H.info.defaultLog(`[project-setup] test: found jest in node_modules`),`npx jest`):Dp(t,`vitest`)?(H.info.defaultLog(`[project-setup] test: found vitest in node_modules`),`npx vitest`):null}function Pp(e,t){let n=e.scripts??{},r=Rp(e);for(let e of yp)if((0,h.isDefined)(n[e]))return kp(t,e);for(let[e,r]of Object.entries(n))if(/\btsc\b/.test(r)&&!_p.has(e))return kp(t,e);return(0,h.isDefined)(r.typescript)?`npx tsc --noEmit`:null}function Fp(e,t,n){for(let{pkg:t}of e){let e=Pp(t,n);if((0,h.isDefined)(e))return e}return wp(t,mp)?(H.info.defaultLog(`[project-setup] typecheck: found tsconfig.json`),`npx tsc --noEmit`):Dp(t,`tsc`)?(H.info.defaultLog(`[project-setup] typecheck: found tsc in node_modules`),`npx tsc --noEmit`):null}function Ip(e,t,n){for(let{pkg:t}of e){let e=t.scripts??{},r=Rp(t);for(let t of bp)if((0,h.isDefined)(e[t]))return kp(n,t);for(let[t,r]of Object.entries(e))if(/\beslint\b/.test(r))return kp(n,t);if((0,h.isDefined)(r.eslint))return`npx eslint`}return wp(t,hp)?(H.info.defaultLog(`[project-setup] lint: found eslint config file`),`npx eslint`):Dp(t,`eslint`)?(H.info.defaultLog(`[project-setup] lint: found eslint in node_modules`),`npx eslint`):null}function Lp(e,t,n){for(let{pkg:t}of e){let e=t.scripts??{},r=Rp(t);for(let t of xp)if((0,h.isDefined)(e[t]))return kp(n,t);for(let[t,r]of Object.entries(e))if(/\bprettier\b/.test(r))return kp(n,t);if((0,h.isDefined)(r.prettier))return`npx prettier`}return wp(t,gp)?(H.info.defaultLog(`[project-setup] prettier: found prettier config file`),`npx prettier`):Dp(t,`prettier`)?(H.info.defaultLog(`[project-setup] prettier: found prettier in node_modules`),`npx prettier`):null}function Rp(e){return{...e.dependencies,...e.devDependencies}}function zp(e,t){let n=Sp(e),r=Cp(e),i=Op(e),a=(0,h.isDefined)(t)?f.default.relative(e,t):null,o=Np(r,n,i),s=(0,h.isDefined)(o)&&(0,h.isDefined)(a)?Ap(o,a):null,c=Ep(r,n),l=Fp(r,n,i),u=Ip(r,n,i),d=(0,h.isDefined)(u)&&(0,h.isDefined)(a)?`npx eslint ${a}`:null,p=Lp(r,n,i),m=(0,h.isDefined)(p)&&(0,h.isDefined)(a)?`npx prettier ${a} --write`:null,g=[];return(0,h.isDefined)(s)||g.push(`testCommand`),(0,h.isDefined)(l)||g.push(`typecheckCommand`),(0,h.isDefined)(d)||g.push(`lintCommand`),(0,h.isDefined)(m)||g.push(`prettierCommand`),{testCommand:s,testRunner:c,typecheckCommand:l,lintCommand:d,prettierCommand:m,packageManager:i,missing:g}}let Bp=(0,O.promisify)(D.exec),Vp={testCommand:`test`,buildCommand:`build`,lintCommand:`lint`,prettierCommand:`format`},Hp=function(e){return e.TEST=`testCommand`,e.BUILD=`buildCommand`,e.LINT=`lintCommand`,e.FORMAT=`prettierCommand`,e}({});var Up=class{setup;testFilePath;workingDirectory;lastCheckAllResult=null;mcpServer;progressLogger;constructor(e){this.setup=e.setup,this.testFilePath=e.testFilePath,this.workingDirectory=e.workingDirectory,this.progressLogger=e.progressLogger??Me,this.mcpServer=this.buildServer()}getLastCheckAllResult(){return this.lastCheckAllResult}getServer(){return this.mcpServer}buildValidationSummary(){if(!(0,h.isDefined)(this.lastCheckAllResult))return;let e=this.lastCheckAllResult.gates.find(e=>e.gate===Hp.TEST),t=this.lastCheckAllResult.gates.find(e=>e.gate===Hp.LINT),n=(0,h.isDefined)(e?.output)?yf(e.output):void 0,r=(0,h.isDefined)(t?.output)?xf(t.output):0;return{greenTestsCount:n?.passed??0,redTestsCount:n?.failed??0,greyTestsCount:0,whiteTestsCount:0,naTestsCount:0,errorSuitsCount:n?.suitesFailed??0,lintErrorsCount:r}}async runGate(e){let t=this.setup[e];if(t.status===Zf.UNRESOLVED)return{gate:e,passed:!0,skipped:!0};try{let{stdout:n,stderr:r}=await Bp(t.command,{cwd:this.workingDirectory,encoding:`utf8`,timeout:3e5,maxBuffer:10485760});return{gate:e,passed:!0,skipped:!1,output:af((n+r).trim())}}catch(t){let n=of(t);if(e===Hp.BUILD||e===Hp.LINT){let t=f.default.basename(this.testFilePath);if(!n.includes(t))return{gate:e,passed:!0,skipped:!1,output:`[warning] ${Vp[e]??e} failed on unrelated files — not blocking.\n${n}`}}return{gate:e,passed:!1,skipped:!1,output:n}}}async checkAll(){let e=this.setup.lintCommand.status!==Zf.UNRESOLVED,t=this.setup.prettierCommand.status!==Zf.UNRESOLVED,n=await this.runStabilityLoop(e,t);if(n.stabilityConflict===!0)return this.lastCheckAllResult=n,n;this.progressLogger.verbose(`validating...`);let[r,i]=await Promise.all([this.runGate(Hp.TEST),this.runGate(Hp.BUILD)]),a=!1;if(!r.passed&&(0,h.isDefined)(r.output)){let e=yf(r.output);(0,h.isDefined)(e)&&e.passed>=6&&(a=!0,r.passed=!0)}let o=[...n.gates,r,i],s={passed:o.every(e=>e.passed),gates:o},c=s.gates.find(e=>e.gate===Hp.TEST),l=(0,h.isDefined)(c?.output)?yf(c.output):void 0,u=s.gates.filter(e=>!e.skipped).map(e=>`${Vp[e.gate]??e.gate} ${e.passed?`✓`:`✗`}`).join(` `),d=[];(0,h.isDefined)(l)&&(d.push(`${l.passed} green, ${l.failed} red`),l.suitesFailed>0&&d.push(`${l.suitesFailed} suite errors`));let f=d.length>0?` — ${d.join(`, `)}`:``;return this.progressLogger.verbose(`Validation ${s.passed?`passed`:`failed`}:`,u+f),a&&(0,h.isDefined)(l)&&this.progressLogger.verbose(`Pruning tests — ${l.passed} passing, ${l.failed} failing`),this.lastCheckAllResult=s,s}async runStabilityLoop(e,t){let n={gate:Hp.LINT,passed:!0,skipped:!0},r={gate:Hp.FORMAT,passed:!0,skipped:!0};if(!e&&!t)return{passed:!0,gates:[n,r]};let i=await(0,p.readFile)(this.testFilePath,`utf8`);for(let a=0;a<2;a++){let o=await Promise.all([e?this.runGate(Hp.LINT):Promise.resolve(n),t?this.runGate(Hp.FORMAT):Promise.resolve(r)]);if(n=o[0],r=o[1],!n.passed||!r.passed)break;let s=await(0,p.readFile)(this.testFilePath,`utf8`);if(s===i)break;if(a===1)return{passed:!1,stabilityConflict:!0,gates:[n,r]};i=s}return{passed:n.passed&&r.passed,gates:[n,r]}}buildServer(){let e=(0,oe.tool)(`check_lint`,`Runs the lint command against the test file and returns pass/fail with output. Use during iteration to check lint status.`,{},async()=>{let e=await this.runGate(Hp.LINT);return{content:[{type:`text`,text:JSON.stringify(e,null,2)}]}}),t=(0,oe.tool)(`check_format`,`Runs the format/prettier command against the test file and returns pass/fail with output. Use during iteration to check formatting status.`,{},async()=>{let e=await this.runGate(Hp.FORMAT);return{content:[{type:`text`,text:JSON.stringify(e,null,2)}]}}),n=(0,oe.tool)(`check_test`,`Runs the test command and returns pass/fail with output. Use during iteration to check test status.`,{},async()=>{let e=await this.runGate(Hp.TEST),t=(0,h.isDefined)(e.output)?yf(e.output):void 0;return!e.passed&&(0,h.isDefined)(t)&&t.passed>=6&&(this.progressLogger.verbose(`Pruning tests — ${t.passed} passing, ${t.failed} failing`),e.passed=!0),e.testReport=t,{content:[{type:`text`,text:JSON.stringify(e,null,2)}]}}),r=(0,oe.tool)(`check_build`,`Runs the build command and returns pass/fail with output. Use during iteration to check build status.`,{},async()=>{let e=await this.runGate(Hp.BUILD);return{content:[{type:`text`,text:JSON.stringify(e,null,2)}]}}),i=(0,oe.tool)(`check_all`,[`Runs ALL verification gates with a lint/format stability check.`,`First runs lint+format in a loop (max 2 iterations) to ensure they stabilize.`,`Then runs test+build once. Returns combined pass/fail.`,`You MUST call this tool and get all-green before completing your task.`,`If it reports a stability conflict, inform the user — do not retry.`].join(` `),{},async()=>{let e=await this.checkAll(),t=e.gates.find(e=>e.gate===Hp.TEST);return e.testReport=(0,h.isDefined)(t?.output)?yf(t.output):void 0,{content:[{type:`text`,text:JSON.stringify(e,null,2)}]}}),a=(0,oe.tool)(`get_status`,`Returns the current verification state: last check_all result and whether you are cleared to finish.`,{},async()=>{let e=this.getLastCheckAllResult(),t={lastCheckAllResult:e,clearedToFinish:e?.passed===!0};return{content:[{type:`text`,text:JSON.stringify(t,null,2)}]}});return(0,oe.createSdkMcpServer)({name:`verification_gates`,version:`1.0.0`,tools:[e,t,n,r,i,a]})}},Wp=l(Ie()),Gp=l(Cr()),Kp=l(Le()),qp,Jp,Yp,Xp;function Zp(e){return(0,h.isEmpty)(e)||!(0,w.existsSync)(e)?``:(0,w.readFileSync)(e,`utf8`)}function Qp(e){return(e.duration_ms/1e3).toFixed(1),``}function $p(e,t){return e+[``,`---`,`IMPORTANT: A test file has been pre-created at: ${t}`,`Use the Edit tool to add your test cases to this file. Do NOT create a new file with the Write tool.`].join(`
32081
32081
  `)}function em(e){return[``,`<environment>`,`Your working directory is: \`${e}\``,`All tools (Bash, Read, Glob, Grep, Edit) operate relative to this directory automatically.`,"- Do NOT use `cd` to change directories before running commands. Commands like `npm run test` already run from the project root.","- Prefer using relative paths (e.g. `src/services/foo.ts`) instead of absolute paths.",`</environment>`].join(`
32082
32082
  `)}function tm(e){let t=[``,`<project-setup>`,`The following project tooling was verified. Use these commands directly.`,``];e.testCommand.status!==Zf.UNRESOLVED&&t.push(`- **Test command**: \`${e.testCommand.command}\``),e.buildCommand.status!==Zf.UNRESOLVED&&t.push(`- **Build command**: \`${e.buildCommand.command}\``),e.lintCommand.status!==Zf.UNRESOLVED&&t.push(`- **Lint command**: \`${e.lintCommand.command}\``),e.prettierCommand.status!==Zf.UNRESOLVED&&t.push(`- **Prettier command**: \`${e.prettierCommand.command}\``),t.push(`- **Package manager**: ${e.packageManager}`);let n=[];return e.testCommand.status===Zf.UNRESOLVED&&n.push(`testCommand`),e.buildCommand.status===Zf.UNRESOLVED&&n.push(`buildCommand`),e.lintCommand.status===Zf.UNRESOLVED&&n.push(`lintCommand`),e.prettierCommand.status===Zf.UNRESOLVED&&n.push(`prettierCommand`),(0,h.isEmpty)(n)||t.push(``,`The following commands could not be auto-discovered: ${n.join(`, `)}.`,`Search package.json and project config files to find these manually. Do NOT search for commands already listed above.`),t.push(`</project-setup>`),t.join(`
32083
32083
  `)}function nm(e){let t=[[`testCommand`,e.testCommand],[`buildCommand`,e.buildCommand],[`lintCommand`,e.lintCommand],[`prettierCommand`,e.prettierCommand]],n=[``,`<verification-results>`];for(let[e,r]of t)r.status===Qf.FAILED?n.push(`${e}: FAILED`,`Output:\n${r.output.trim()}`,``):r.status===Qf.PASSED?n.push(`${e}: PASSED`):n.push(`${e}: SKIPPED (command not configured)`);return n.push(`</verification-results>`),n.join(`
@@ -32356,7 +32356,7 @@ Available tools (ordered by token cost — prefer the cheapest tool that gets th
32356
32356
  - \`Write\`: Create new files.
32357
32357
  </tools>
32358
32358
 
32359
- Start the workflow now with Phase 0 (read the provided project commands), then proceed with the given target file/function.`)||e.systemPrompt,o=await this.agentSdkRunner.run({userPrompt:e.prompt,workingDirectory:i,testFilePath:t,systemPrompt:a,abortSignal:n,parentName:r?.parentName,methodName:r?.methodName});return{code:o.code,prompt:e.prompt,requestId:e.requestId,validationSummary:o.validationSummary}}};Hm=(0,zm.default)([(0,_.injectable)(),(0,Rm.default)(0,(0,_.inject)(kr)),(0,Rm.default)(1,(0,_.inject)(He)),(0,Rm.default)(2,(0,_.inject)(um)),(0,Lm.default)(`design:paramtypes`,[typeof(Bm=kr!==void 0&&kr)==`function`?Bm:Object,Object,typeof(Vm=um!==void 0&&um)==`function`?Vm:Object])],Hm);var Um=l(Ie()),Wm=l(Cr()),Gm=l(Le()),Km,qm,Jm,Ym,Xm,Zm;let Qm=class{constructor(e,t,n,r,i,a,o){this.metricReportService=e,this.importSolverService=t,this.gatherDataSourceService=n,this.globalConfigService=r,this.lintRulesService=i,this.lintValidationService=a,this.testGeneratorProvider=o}async initGenerateTestFlow({filePath:e,testable:t,outputType:n,abortSignal:r,userPrompt:i}){let a=`Test generation was aborted`;return new Promise(async(o,s)=>{let{methodName:c,methodType:l,parentName:u}=ai(t);H.addContext({testedFunction:c,testedMethodClass:u});try{if((r?.aborted??!1)||((0,h.isDefined)(r)&&r.addEventListener(`abort`,()=>{s(a)}),r?.aborted??!1))return s(a);await Jt.init(e);let u=ut(e),d=await this.getEarlyTestFile(e,c,u,n),p=d.getFilePath(),m=null;Jt.add(p);let g=performance.now(),_=H.getRequestId();H.info.defaultLog(`Generating tests for method ${c}`);let v=this.metricReportService.registerStartTime(_);if(r?.aborted??!1)return s(a);let y=await this.gatherDataSourceService.gatherDataSource({path:e,testFilePath:p,outputType:n,testable:t,userPrompt:i}),b=performance.now()-g;H.debug.defaultLog(`with ${y.llmConfig.modelName??`default`} model, ${y.llmConfig.temperature??`default`} temperature, ${y.llmConfig.topP??`default`} top-p`);let x=this.globalConfigService.getExperimentalAgentSdk(),S;if(x)try{if(S=f.default.resolve(this.globalConfigService.getRootPath(),u,p),H.info.defaultLog(`[experimental] Pre-created test scaffold at ${S}`),H.info.defaultLog(`Calling BE for method ${c}`),r?.aborted??!1)return s(a);let{code:t,validationSummary:n}=await this.generateTest(y,_,b,r,S);if(r?.aborted??!1)return s(a);if((0,h.isEmpty)(t))throw new sr(ar.EMPTY_TEST,{methodName:c});H.info.defaultLog(`[experimental] Skipping code refinement for method "${c}"`);let i=await v({responseProcessingTime:performance.now()-g,gitUrl:this.globalConfigService.getGitURL()});return this.metricReportService.logPackageDependencies(e),H.info.endLog(`Generate Tests done: ${l} ${c} in ${e}. Duration: ${i}ms.`),o({shouldRefreshCoverage:this.globalConfigService.getShouldRefreshCoverage(),testFilePath:p,requestId:_,lintErrors:null,validationSummary:n})}catch(e){let t;if(e instanceof ep){let n=e.errors.length>0?`: `+e.errors.join(`, `):``;t=e.subtype+n+` ($`+e.costUsd.toFixed(4)+`)`}else t=String(e);H.error(`[experimental] SDK runner failed for method "${c}": ${t}`,void 0);try{await d.delete()}catch(e){H.info.defaultLog(`Failed to delete scaffold file for method "${c}"`,e)}return await v({responseProcessingTime:0,gitUrl:this.globalConfigService.getGitURL(),errorCause:t}),o({shouldRefreshCoverage:!1,testFilePath:``,requestId:_,lintErrors:null,validationSummary:{greenTestsCount:0,greyTestsCount:0,redTestsCount:0,naTestsCount:0,errorSuitsCount:0,lintErrorsCount:0,whiteTestsCount:0}})}if(H.info.defaultLog(`Calling BE for method ${c}`),r?.aborted??!1)return s(a);let{code:C,prompt:w,validationSummary:T}=await this.generateTest(y,_,b,r,S);if(r?.aborted??!1)return s(a);if((0,h.isEmpty)(C))throw new sr(ar.EMPTY_TEST,{methodName:c});let E=performance.now();if(r?.aborted??!1)return s(a);Jt.add(p,C),await new _a(this.importSolverService,e,p,t,u).refine({shouldResolveMockPaths:!0,shouldSolveImports:!0});let D=Jt.get(p).getFullText();if((0,h.isEmpty)(D))throw await v({responseProcessingTime:performance.now()-E,gitUrl:this.globalConfigService.getGitURL()}),new sr(ar.EMPTY_TEST,{methodName:c});if(r?.aborted??!1)return s(a);try{if(await d.replace(D),H.debug.defaultLog(`Done upserting test file for method "${c}"`),r?.aborted??!1)return s(a);await d.addPrompt(w),H.debug.defaultLog(`Added prompt for method "${c}"`),m=await this.lintValidationService.fixLintErrors(p),H.debug.defaultLog(`Ran lint command for method "${c}"`),await this.lintValidationService.addComplexitySuppressions(p)&&(H.info.defaultLog(`Complexity suppression comment added, refreshing file`),await Jt.refreshFromFileSystem(p));try{await this.lintRulesService.disableRules(p)}catch(e){H.info.defaultLog(`Failed disabling lint rules`,e)}try{if(r?.aborted??!1)return s(a);await d.runFormatCommand()}catch(e){H.info.defaultLog(`Failed formatting test file`,e)}H.debug.defaultLog(`Ran format command for method "${c}"`);let t=performance.now()-E;if(r?.aborted??!1)return s(a);let n=await v({responseProcessingTime:t,gitUrl:this.globalConfigService.getGitURL()});this.metricReportService.logPackageDependencies(e),await Jt.refreshFromFileSystem(p),H.info.endLog(`Generate Tests done: ${l} ${c} in ${e}. Duration: ${n}ms.`)}catch(e){if(r?.aborted??!1)return s(a);throw await v({responseProcessingTime:performance.now()-E,gitUrl:this.globalConfigService.getGitURL()}),e}return o({shouldRefreshCoverage:this.globalConfigService.getShouldRefreshCoverage(),testFilePath:p,requestId:_,lintErrors:m,validationSummary:T})}catch(e){return r?.aborted??!1?s(a):(H.info.defaultLog(`Unexpected Error generating tests`,e,[c,u]),s(e))}})}async generateTest(e,t,n,r,i){let a=e.testedCodeDataSource.testedMethod.name,o;try{o=await this.apiCall(e,t,n,r,i)}catch(e){if(H.info.defaultLog(`Failed making generateTest API Call`,e instanceof Error?e.message:e,t),e instanceof sr||e instanceof ep)throw e;let n=e instanceof Error?e.message:`Failed making API call`;throw new sr(ar.GENERATING_TESTS_REQUEST_ERROR,{methodName:a,errorMessage:n})}let{code:s,prompt:c}=o;return this.globalConfigService.getExperimentalAgentSdk()||H.debug.defaultLog(`Generating tests for method "${a}" - prompt: "${c}", LLM response: "${s}"`),o}async apiCall(e,t,n,r,i){let a=e.testedCodeDataSource.testedMethod.name,o=e.testedCodeDataSource.testedMethodClass?.name;try{return await this.testGeneratorProvider.generate(e,t,n,r,i,{parentName:o,methodName:a})}catch(e){if(H.info.defaultLog(`GenerateTestService failed to generate tests`,e instanceof Error?e.message:e),e instanceof sr||e instanceof ep)throw e;let t=e instanceof Error?e.message:`Failed making API call`;throw new sr(ar.GENERATING_TESTS_REQUEST_ERROR,{methodName:a,errorMessage:t})}}async getEarlyTestFile(e,t,n,r){if(r===ge.OVERRIDE_CODE_FILE){let n=await zi.getLatestTestFile(e,t);if((0,h.isDefined)(n))return new zi(ct(n))}return await zi.getNextTestFile(e,t,n)}};(0,Gm.default)([Yt,(0,Um.default)(`design:type`,Function),(0,Um.default)(`design:paramtypes`,[Object]),(0,Um.default)(`design:returntype`,Promise)],Qm.prototype,`initGenerateTestFlow`,null),Qm=(0,Gm.default)([(0,_.injectable)(),(0,Wm.default)(0,(0,_.inject)(Yr)),(0,Wm.default)(1,(0,_.inject)(Ia)),(0,Wm.default)(2,(0,_.inject)(Im)),(0,Wm.default)(3,(0,_.inject)(He)),(0,Wm.default)(4,(0,_.inject)(_i)),(0,Wm.default)(5,(0,_.inject)(vu)),(0,Wm.default)(6,(0,_.inject)(Hm)),(0,Um.default)(`design:paramtypes`,[typeof(Km=Yr!==void 0&&Yr)==`function`?Km:Object,typeof(qm=Ia!==void 0&&Ia)==`function`?qm:Object,typeof(Jm=Im!==void 0&&Im)==`function`?Jm:Object,Object,typeof(Ym=_i!==void 0&&_i)==`function`?Ym:Object,typeof(Xm=vu!==void 0&&vu)==`function`?Xm:Object,typeof(Zm=Hm!==void 0&&Hm)==`function`?Zm:Object])],Qm);var $m=l(Ie()),eh=l(Cr()),th=l(Le()),nh,rh,ih,ah,oh,sh;let ch=class{shouldTriggerRefreshCoverage=!1;queue;coverageService=new er;validationReports=new Map;testResults=new Map;constructor(e,t,n,r,i,a){this.generateTestService=e,this.dynamicPromptService=t,this.globalConfigService=n,this.testManagementService=r,this.metricReportService=i,this.lintValidationService=a,this.queue=new Xr({concurrency:this.globalConfigService.getConcurrency(),getItemKey:this.getQueueItemKey})}getQueueItemKey({filePath:e,methodType:t,methodName:n,parentName:r=``}){return`${e}:${t}:${r}:${n}`}decodeQueueItemKey(e){let[t,n,r,i]=e.split(`:`);return{filePath:t,methodType:n,parentName:r,methodName:i}}async clearTemporaryFiles(){let e=`**/.${ni}*`,t=await(0,A.default)(e);for(let e of t)try{await(0,p.unlink)(e)}catch(e){H.info.defaultLog(`Failed removing temp file:`,e)}}async getFinalValidationReport(e,t){return await this.testManagementService.getValidationReport(e,t)}buildEmptyTestCounters(){return{greenTestsCount:0,greyTestsCount:0,redTestsCount:0,naTestsCount:0,errorSuitsCount:0,lintErrorsCount:0,whiteTestsCount:0}}buildFinalTestCounters(e){return{greenTestsCount:e.greenTestsCount,greyTestsCount:e.greyTestsCount,redTestsCount:e.redTestsCount,naTestsCount:e.naTestsCount,errorSuitsCount:e.errorSuitsCount,lintErrorsCount:e.lintErrorsCount,whiteTestsCount:e.whiteTestsCount}}async handleSdkResult(e,t){let n=t.validationSummary??null;this.testResults.set(e,{testFilePath:t.testFilePath,requestId:t.requestId}),this.validationReports.set(e,n);let r=n?{greenTestsCount:n.greenTestsCount,greyTestsCount:n.greyTestsCount,redTestsCount:n.redTestsCount,naTestsCount:n.naTestsCount,errorSuitsCount:n.errorSuitsCount,lintErrorsCount:n.lintErrorsCount,whiteTestsCount:n.whiteTestsCount}:this.buildEmptyTestCounters();await this.metricReportService.saveTestMetrics({requestId:t.requestId,finalGreenTestsCount:r.greenTestsCount,finalTestCounters:r,gitUrl:this.globalConfigService.getGitURL()})}sanitizePath(e){return e.startsWith(`/`)?e.slice(1):e}async addGenerationToQueue({filePath:e,testable:t,outputType:n,userPrompt:r,progress:i}){let a=this.sanitizePath(e),{methodType:o,methodName:s,parentName:c}=ai(t),l={filePath:a,methodType:o,methodName:s,parentName:c};if(H.addContext({testedFunction:s,testedMethodClass:c}),this.queue.has(l)){H.info.defaultLog(`Test generation for "${t.name}" is already in progress`);return}H.info.defaultLog(`Generate Tests: ${t.name} in ${a}`),await this.queue.add(l,async e=>{await H.withBufferedPrinting(async()=>{H.default.info(``),H.default.info((0,h.isDefined)(i)?`Generating tests for ${t.name} - ${i.index} out of ${i.total} functions`:`Generating tests for ${t.name} in ${a}`),await Xt(async()=>{H.default.info(`Generating initial tests`);let i=await this.initGenerateTest({filePath:a,testable:t,outputType:n??this.globalConfigService.getOutputType(),abortSignal:e,userPrompt:r});if((0,h.isDefined)(i?.testFilePath)){let e=this.getQueueItemKey(l);if(this.globalConfigService.getExperimentalAgentSdk()){await this.handleSdkResult(e,i);return}let n=await this.testManagementService.getValidationReport(i.testFilePath,s);await this.metricReportService.saveTestMetrics({requestId:i.requestId,validationReport:n,gitUrl:this.globalConfigService.getGitURL()}),await this.dynamicPromptService.initDynamicPromptRecursively(t,i.testFilePath,i.requestId),H.default.info(``);let r=await this.getFinalValidationReport(i.testFilePath,s);if(H.default.info(`Test fixing complete`),H.default.info(`✅ ${r.greenTestsCount} tests passing`),H.default.info(`⚠️ ${r.redTestsCount} tests still failing (will be skipped)`),H.default.info(`❌ ${r.greyTestsCount} tests could not be fixed autonomously`),H.default.info(``),this.validationReports.set(e,r),this.testResults.set(e,{testFilePath:i.testFilePath,requestId:i.requestId}),this.testManagementService.needsRemoval(r)){await this.testManagementService.removeFailedTestFile(i.testFilePath),await this.metricReportService.saveTestMetrics({requestId:i.requestId,finalGreenTestsCount:0,finalTestCounters:this.buildEmptyTestCounters(),gitUrl:this.globalConfigService.getGitURL()});return}this.testManagementService.needsCleanup(r)?await this.testManagementService.cleanup(i.testFilePath,s):H.info.defaultLog(`No cleanup needed for method "${s}" in ${a}.\nGreen: ${r.greenTestsCount}, Grey: ${r.greyTestsCount}, Red: ${r.redTestsCount}, NA: ${r.naTestsCount}, Error Suits: ${r.errorSuitsCount}`),await this.testManagementService.removeTestComments(i.testFilePath),await this.testManagementService.cleanupPrettier(i.testFilePath),H.default.info(`▶️ Fixing lint and prettier issues`);let o=await this.getFinalValidationReport(i.testFilePath,s);if(H.default.info(`✔️ Tests finalized`),o.greenTestsCount>0?H.default.info(`🟢 Test generation complete`):o.greenTestsCount===0&&H.default.info(`🔴 Tests were generated but could not be validated successfully here`),H.default.info(``),H.default.info(`Summary:`),H.default.info(``),H.default.info(`✅ ${r.greenTestsCount} tests passing`),H.default.info(`⚠️ ${r.redTestsCount} tests skipped`),H.default.info(`❌ ${r.greyTestsCount} tests could not be fixed autonomously`),H.default.info(``),H.default.info(`----------------`),this.testManagementService.needsRemoval(o)){await this.testManagementService.removeFailedTestFile(i.testFilePath),await this.metricReportService.saveTestMetrics({requestId:i.requestId,finalGreenTestsCount:0,finalTestCounters:this.buildEmptyTestCounters(),gitUrl:this.globalConfigService.getGitURL()});return}await this.metricReportService.saveTestMetrics({requestId:i.requestId,finalGreenTestsCount:o.greenTestsCount,finalTestResult:o.testResult,finalTestCounters:this.buildFinalTestCounters(o),gitUrl:this.globalConfigService.getGitURL()})}else{let e=this.getQueueItemKey(l);this.validationReports.set(e,null)}})},i?.index??0)})}async bulkGenerateTests(e,t,n,r){let[{filePath:i}]=e;await Jt.init(i),(0,h.isDefined)(t)&&this.queue.onDone(n=>{let r=e.find(({filePath:e,testable:t})=>{let{methodName:r,methodType:i,parentName:a=``}=ai(t);return this.getQueueItemKey({filePath:e,methodType:i,methodName:r,parentName:a})===n});if((0,h.isDefined)(r))try{t(r,this.validationReports.get(n)??null,this.testResults.get(n)??null)}catch(e){H.error(`Callback execution failed for testable ${n}`,e)}finally{this.validationReports.delete(n),this.testResults.delete(n)}}),H.resetPrintOrder();for(let[t,{filePath:i,testable:a}]of e.entries())this.addGenerationToQueue({filePath:i,testable:a,userPrompt:n,progress:{index:t+1,total:e.length}}).catch(e=>{e instanceof sr&&(H.default.info(``),H.default.warn(`‼️ ${e.message}`),this.queue.clearQueued(),r?.(e))});await this.queue.getIdlePromise(),Jt.clear()}async initGenerateTest({filePath:e,testable:t,outputType:n,abortSignal:r,userPrompt:i}){let{methodName:a,parentName:o}=ai(t);try{if(r?.aborted)return;let s=Math.round(process.memoryUsage().heapUsed/1024/1024);ir.safeTrackEvent(`GenerateTestsInitiated`,{methodName:a,parentName:o,heapMemoryUsedMB:s});let{shouldRefreshCoverage:c,testFilePath:l,requestId:u,lintErrors:d,validationSummary:f}=await this.generateTestService.initGenerateTestFlow({filePath:e,testable:t,outputType:n,abortSignal:r,userPrompt:i});return r?.aborted?void 0:(c&&(this.shouldTriggerRefreshCoverage=!0),{shouldRefreshCoverage:c,testFilePath:l,requestId:u,lintErrors:d,validationSummary:f})}catch(e){if(!r.aborted){H.error(`Test generation failed.`,e);let t=new Map([[or[ar.NOT_ENOUGH_BALANCE_ERROR],ar.NOT_ENOUGH_BALANCE_ERROR]]);if(e instanceof sr&&t.has(e.message)){let n=t.get(e.message);throw ir.safeTrackEvent(`GenerateTestsError`,{errorCode:n}),e}}}}};(0,th.default)([Yt,(0,$m.default)(`design:type`,Function),(0,$m.default)(`design:paramtypes`,[Array,Object,String,typeof(sh=h.Fn!==void 0&&h.Fn)==`function`?sh:Object]),(0,$m.default)(`design:returntype`,Promise)],ch.prototype,`bulkGenerateTests`,null),(0,th.default)([$e({category:Tt.GENERATE_TESTS}),(0,$m.default)(`design:type`,Function),(0,$m.default)(`design:paramtypes`,[Object]),(0,$m.default)(`design:returntype`,Promise)],ch.prototype,`initGenerateTest`,null),ch=(0,th.default)([(0,_.injectable)(),(0,eh.default)(0,(0,_.inject)(Qm)),(0,eh.default)(1,(0,_.inject)(_d)),(0,eh.default)(2,(0,_.inject)(He)),(0,eh.default)(3,(0,_.inject)(sd)),(0,eh.default)(4,(0,_.inject)(Yr)),(0,eh.default)(5,(0,_.inject)(vu)),(0,$m.default)(`design:paramtypes`,[typeof(nh=Qm!==void 0&&Qm)==`function`?nh:Object,typeof(rh=_d!==void 0&&_d)==`function`?rh:Object,Object,typeof(ih=sd!==void 0&&sd)==`function`?ih:Object,typeof(ah=Yr!==void 0&&Yr)==`function`?ah:Object,typeof(oh=vu!==void 0&&vu)==`function`?oh:Object])],ch);var lh=l(Ie()),uh=l(Cr()),dh=l(Le()),fh;let ph=class{constructor(e){this.globalConfigService=e}async getFileTestables(e){try{let t=new et(e);return await t.isFileExists()?[e,new Mn(await t.getText()).testables.getAllTestables().filter(e=>e.canCreateTests&&e.type!==`class`)]:[e,[]]}catch(t){return H.info.defaultLog(`Failed reading file ${e}: check early.config.json`,t,{category:`Early config file`,subCategory:`Reading configuration`}),[e,[]]}}async getTestablesByPattern(e){try{let t=await Bn(e);return await Promise.all(t.map(e=>this.getFileTestables(e)))}catch(t){return H.info.defaultLog(`Failed reading file pattern ${e}: check early.config.json`,t),[]}}async getAllMethodsCount(e){try{let t=new et(e);return await t.isFileExists()?new Mn(await t.getText()).testables.getAllMethodsCount():0}catch(t){return H.info.failedLog(`Failed to get all methods count for ${e}`,t),0}}async resolveEarlyTestFile(e){let{absoluteFilePath:t,testableName:n}=e,r=this.globalConfigService.getRootPath(),i=ct(t),a=zi.fromTestablePath(i,n,r),o=await a.isFileExists(),s=f.default.resolve(r,a.getFilePath());return{...e,testFilePath:s,isExists:o}}async getTestableFileMap(e){if((0,h.isEmpty)(e))return{};let t=this.globalConfigService.getRootPath(),n=[...new Set(e.map(e=>this.toAbsolutePath(e,t)))],r={};for(let e of n){let[n,i]=await this.getFileTestables(e),a=this.toAbsolutePath(n,t);r[a]=await this.buildFilesTreeTestableEntries(i,a)}return r}toAbsolutePath(e,t){return f.default.isAbsolute(e)?e:f.default.resolve(t,e)}async buildFilesTreeTestableEntries(e,t){let n=[];for(let r of e){if(!(0,h.isDefined)(r.name)||r.type===`class`)continue;let e=await this.resolveEarlyTestFile({absoluteFilePath:t,testableName:r.name});n.push({testable:r,...e.isExists&&{testPath:e.testFilePath},testableFilePath:t})}return n}};ph=(0,dh.default)([(0,_.injectable)(),(0,uh.default)(0,(0,_.inject)(He)),(0,lh.default)(`design:paramtypes`,[typeof(fh=He!==void 0&&He)==`function`?fh:Object])],ph);var mh=l(Ie()),hh=l(Cr()),gh=l(Le()),_h;let vh=class{constructor(e){this.testablesService=e}async resolveEarlyTestFile(e){try{return await this.testablesService.resolveEarlyTestFile(e)}catch(t){return H.info.failedLog(`Failed to get test file exists`,t),{...e,testFilePath:``,isExists:!1}}}async getTestables(e){try{return await this.testablesService.getTestablesByPattern(e)}catch(e){return H.info.failedLog(`Failed to get testables`,e),[]}}async getAllMethodsCount(e){try{return await this.testablesService.getAllMethodsCount(e)}catch(e){return H.info.failedLog(`Failed to get all methods count`,e),0}}async getTestableFileMap(e){try{return await this.testablesService.getTestableFileMap(e)}catch(e){return H.error(`Failed to get files tree`,e),{}}}};vh=(0,gh.default)([(0,_.injectable)(),(0,hh.default)(0,(0,_.inject)(ph)),(0,mh.default)(`design:paramtypes`,[typeof(_h=ph!==void 0&&ph)==`function`?_h:Object])],vh);var yh=l(Ie()),bh=l(Cr()),xh=l(Le()),Sh,Ch,wh,Th,Eh,Dh,Oh,kh,Ah,jh;let Mh=class{constructor(e,t,n,r,i,a,o,s,c){this.testablesController=e,this.coverageController=t,this.generateTestController=n,this.authService=r,this.globalConfigService=i,this.testResultCounterService=a,this.testableContextService=o,this.dynamicPromptService=s,this.testValidatorService=c}async init(e){await this.authService.authorize(e)}async getTestables(e){return this.testablesController.getTestables(e)}async getAllMethodsCount(e){return this.testablesController.getAllMethodsCount(e)}async resolveEarlyTestFile(e){return this.testablesController.resolveEarlyTestFile(e)}async getTestableFileMap(e){return this.testablesController.getTestableFileMap(e)}async generateCoverage(){return this.coverageController.generateCoverage()}async setCoverage(e){return this.coverageController.setCoverage(e)}async getCoverageTree(){return this.coverageController.getCoverageTree()}async getCoverageForFiles(e){return this.coverageController.getCoverageForFiles(e)}async generateTests(e,t){return this.generateTestController.addGenerationToQueue({filePath:e,testable:t})}async bulkGenerateTests(e,t,n,r){return this.generateTestController.bulkGenerateTests(e,t,n,r)}updateContext(e){this.globalConfigService.updateContext(e)}updateRootPath(e){this.globalConfigService.updateRootPath(e)}async getValidationReport(e,t){return this.testResultCounterService.getValidationReport(e,t)}async getTestedCodeDataSource(e,t,n){return this.testableContextService.getTestedCodeDataSource(e,t,n)}async runDynamicPrompt(e,t,n){return(await this.dynamicPromptService.initDynamicPrompt(e,t,0,n))?.validationReport??null}async validateTestsByCode(e,t){return this.testValidatorService.validateTestsByCode(e,t)}};(0,xh.default)([$e({category:Tt.INITIALIZATION}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`init`,null),(0,xh.default)([$e({category:Tt.GET_TESTABLES}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getTestables`,null),(0,xh.default)([$e({category:Tt.GET_TESTABLES}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getAllMethodsCount`,null),(0,xh.default)([$e({category:Tt.GET_TESTABLES}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[Object]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`resolveEarlyTestFile`,null),(0,xh.default)([$e({category:Tt.GET_TESTABLES}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[Array]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getTestableFileMap`,null),(0,xh.default)([$e({category:Tt.GENERATE_COVERAGE}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`generateCoverage`,null),(0,xh.default)([$e({category:Tt.SET_COVERAGE}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[Object]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`setCoverage`,null),(0,xh.default)([$e({category:Tt.GET_COVERAGE}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getCoverageTree`,null),(0,xh.default)([$e({category:Tt.GET_COVERAGE}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[Array]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getCoverageForFiles`,null),(0,xh.default)([$e({category:Tt.GENERATE_TESTS}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String,Object]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`generateTests`,null),(0,xh.default)([$e({category:Tt.GENERATE_TESTS}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[Array,Object,String,typeof(jh=h.Fn!==void 0&&h.Fn)==`function`?jh:Object]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`bulkGenerateTests`,null),(0,xh.default)([$e({category:Tt.GENERATE_TESTS}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String,String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getValidationReport`,null),(0,xh.default)([$e({category:Tt.GET_TESTED_CODE_DATA_SOURCE}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String,Object,String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getTestedCodeDataSource`,null),(0,xh.default)([$e({category:Tt.DYNAMIC_PROMPT}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String,Object,String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`runDynamicPrompt`,null),(0,xh.default)([$e({category:Tt.TEST_VALIDATION}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String,String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`validateTestsByCode`,null),Mh=(0,xh.default)([(0,_.injectable)(),(0,bh.default)(0,(0,_.inject)(vh)),(0,bh.default)(1,(0,_.inject)(rr)),(0,bh.default)(2,(0,_.inject)(ch)),(0,bh.default)(3,(0,_.inject)(gc)),(0,bh.default)(4,(0,_.inject)(He)),(0,bh.default)(5,(0,_.inject)(ed)),(0,bh.default)(6,(0,_.inject)(Am)),(0,bh.default)(7,(0,_.inject)(_d)),(0,bh.default)(8,(0,_.inject)(Lu)),(0,yh.default)(`design:paramtypes`,[typeof(Sh=vh!==void 0&&vh)==`function`?Sh:Object,typeof(Ch=rr!==void 0&&rr)==`function`?Ch:Object,typeof(wh=ch!==void 0&&ch)==`function`?wh:Object,typeof(Th=gc!==void 0&&gc)==`function`?Th:Object,typeof(Eh=He!==void 0&&He)==`function`?Eh:Object,typeof(Dh=ed!==void 0&&ed)==`function`?Dh:Object,typeof(Oh=Am!==void 0&&Am)==`function`?Oh:Object,typeof(kh=_d!==void 0&&_d)==`function`?kh:Object,typeof(Ah=Lu!==void 0&&Lu)==`function`?Ah:Object])],Mh),e.AST=Mn,e.AccessModifierType=At,e.AstModuleInfo=An,e.CONCURRENCY=ye,e.COVERAGE_THRESHOLD=ve,e.CalculateCoverageOption=_e,e.DEFAULT_TYPE_KIND=Mt,e.ExportType=kt,e.GenerateTestsOutputType=ge,e.GeneratedTestStructure=he,e.LibraryName=jt,e.RequestSource=ue,Object.defineProperty(e,`TSAgent`,{enumerable:!0,get:function(){return Mh}}),e.TestFileName=me,e.TestFramework=fe,e.TestStructureVariant=de,e.TestSuffix=pe,e.WithTsMorphManager=Yt,e.createTSAgent=(e={})=>(V.bind(He).toDynamicValue(()=>new He(e)).inSingletonScope(),V.get(Mh)),e.findLintConfigPath=wt,e.getUnitTests=un,e.tsMorphManager=Jt}))();const lW={TSAgent:Symbol.for(`TSAgent`),CliOptions:Symbol.for(`CliOptions`),SCMHostService:Symbol.for(`SCMHostService`)};var uW=u(ki());let dW=function(e){return e.PR=`generate-for-pr`,e.COMMIT=`generate-for-commit`,e.PROJECT=`generate-for-project`,e.COVERAGE=`generate-coverage`,e}({});const fW=Object.freeze({status:`aborted`});function pW(e,t,n){function r(n,r){var i;Object.defineProperty(n,`_zod`,{value:n._zod??{},enumerable:!1}),(i=n._zod).traits??(i.traits=new Set),n._zod.traits.add(e),t(n,r);for(let e in o.prototype)e in n||Object.defineProperty(n,e,{value:o.prototype[e].bind(n)});n._zod.constr=o,n._zod.def=r}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,`name`,{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,`init`,{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}var mW=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},hW=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};const gW={};function _W(e){return e&&Object.assign(gW,e),gW}function vW(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function yW(e,t){return typeof t==`bigint`?t.toString():t}function bW(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function xW(e){return e==null}function SW(e){let t=e.startsWith(`^`)?1:0,n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function CW(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}const wW=Symbol(`evaluating`);function TW(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==wW)return r===void 0&&(r=wW,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function EW(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function DW(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function OW(e){return JSON.stringify(e)}const kW=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function AW(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const jW=bW(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function MW(e){if(AW(e)===!1)return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(AW(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function NW(e){return MW(e)?{...e}:Array.isArray(e)?[...e]:e}const PW=new Set([`string`,`number`,`symbol`]);function FW(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function IW(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function LW(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function RW(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}const Iee={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function zW(e,t){let n=e._zod.def;return IW(e,DW(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return EW(this,`shape`,e),e},checks:[]}))}function BW(e,t){let n=e._zod.def;return IW(e,DW(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return EW(this,`shape`,r),r},checks:[]}))}function VW(e,t){if(!MW(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0)throw Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");return IW(e,DW(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return EW(this,`shape`,n),n},checks:[]}))}function HW(e,t){if(!MW(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return IW(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t};return EW(this,`shape`,n),n},checks:e._zod.def.checks})}function UW(e,t){return IW(e,DW(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return EW(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function WW(e,t,n){return IW(t,DW(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return EW(this,`shape`,i),i},checks:[]}))}function GW(e,t,n){return IW(t,DW(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return EW(this,`shape`,i),i},checks:[]}))}function KW(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function qW(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function JW(e){return typeof e==`string`?e:e?.message}function YW(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=JW(e.inst?._zod.def?.error?.(e))??JW(t?.error?.(e))??JW(n.customError?.(e))??JW(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function XW(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function ZW(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}const QW=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,`_zod`,{value:e._zod,enumerable:!1}),Object.defineProperty(e,`issues`,{value:t,enumerable:!1}),e.message=JSON.stringify(t,yW,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},$W=pW(`$ZodError`,QW),eG=pW(`$ZodError`,QW,{Parent:Error});function tG(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function nG(e,t){let n=t||function(e){return e.message},r={_errors:[]},i=e=>{for(let t of e.issues)if(t.code===`invalid_union`&&t.errors.length)t.errors.map(e=>i({issues:e}));else if(t.code===`invalid_key`)i({issues:t.issues});else if(t.code===`invalid_element`)i({issues:t.issues});else if(t.path.length===0)r._errors.push(n(t));else{let e=r,i=0;for(;i<t.path.length;){let r=t.path[i];i===t.path.length-1?(e[r]=e[r]||{_errors:[]},e[r]._errors.push(n(t))):e[r]=e[r]||{_errors:[]},e=e[r],i++}}};return i(e),r}const rG=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new mW;if(o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>YW(e,a,_W())));throw kW(t,i?.callee),t}return o.value},iG=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>YW(e,a,_W())));throw kW(t,i?.callee),t}return o.value},aG=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new mW;return a.issues.length?{success:!1,error:new(e??$W)(a.issues.map(e=>YW(e,i,_W())))}:{success:!0,data:a.value}},oG=aG(eG),sG=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>YW(e,i,_W())))}:{success:!0,data:a.value}},cG=sG(eG),lG=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return rG(e)(t,n,i)},uG=e=>(t,n,r)=>rG(e)(t,n,r),dG=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return iG(e)(t,n,i)},Lee=e=>async(t,n,r)=>iG(e)(t,n,r),fG=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return aG(e)(t,n,i)},pG=e=>(t,n,r)=>aG(e)(t,n,r),mG=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return sG(e)(t,n,i)},hG=e=>async(t,n,r)=>sG(e)(t,n,r),gG=/^[cC][^\s-]{8,}$/,_G=/^[0-9a-z]+$/,vG=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,yG=/^[0-9a-vA-V]{20}$/,bG=/^[A-Za-z0-9]{27}$/,xG=/^[a-zA-Z0-9_-]{21}$/,SG=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ree=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,CG=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,wG=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function TG(){return RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)}const zee=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Bee=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,EG=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,DG=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,OG=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,kG=/^[A-Za-z0-9_-]*$/,Vee=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,AG=/^\+(?:[0-9]){6,14}[0-9]$/,jG=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,MG=RegExp(`^${jG}$`);function NG(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function PG(e){return RegExp(`^${NG(e)}$`)}function FG(e){let t=NG({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${jG}T(?:${r})$`)}const IG=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},LG=/^-?\d+$/,RG=/^-?\d+(?:\.\d+)?/,zG=/^[^A-Z]*$/,BG=/^[^a-z]*$/,VG=pW(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),HG={number:`number`,bigint:`bigint`,object:`date`},UG=pW(`$ZodCheckLessThan`,(e,t)=>{VG.init(e,t);let n=HG[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),WG=pW(`$ZodCheckGreaterThan`,(e,t)=>{VG.init(e,t);let n=HG[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),GG=pW(`$ZodCheckMultipleOf`,(e,t)=>{VG.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):CW(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),KG=pW(`$ZodCheckNumberFormat`,(e,t)=>{VG.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=Iee[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=LG)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inst:e})}}),qG=pW(`$ZodCheckMaxLength`,(e,t)=>{var n;VG.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!xW(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=XW(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),JG=pW(`$ZodCheckMinLength`,(e,t)=>{var n;VG.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!xW(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=XW(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),YG=pW(`$ZodCheckLengthEquals`,(e,t)=>{var n;VG.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!xW(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=XW(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),XG=pW(`$ZodCheckStringFormat`,(e,t)=>{var n,r;VG.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),ZG=pW(`$ZodCheckRegex`,(e,t)=>{XG.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),QG=pW(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=zG,XG.init(e,t)}),$G=pW(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=BG,XG.init(e,t)}),eK=pW(`$ZodCheckIncludes`,(e,t)=>{VG.init(e,t);let n=FW(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),tK=pW(`$ZodCheckStartsWith`,(e,t)=>{VG.init(e,t);let n=RegExp(`^${FW(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),nK=pW(`$ZodCheckEndsWith`,(e,t)=>{VG.init(e,t);let n=RegExp(`.*${FW(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),rK=pW(`$ZodCheckOverwrite`,(e,t)=>{VG.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}});var iK=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
32359
+ Start the workflow now with Phase 0 (read the provided project commands), then proceed with the given target file/function.`)||e.systemPrompt,o=await this.agentSdkRunner.run({userPrompt:e.prompt,workingDirectory:i,testFilePath:t,systemPrompt:a,abortSignal:n,parentName:r?.parentName,methodName:r?.methodName});return{code:o.code,prompt:e.prompt,requestId:e.requestId,validationSummary:o.validationSummary}}};Hm=(0,zm.default)([(0,_.injectable)(),(0,Rm.default)(0,(0,_.inject)(kr)),(0,Rm.default)(1,(0,_.inject)(He)),(0,Rm.default)(2,(0,_.inject)(um)),(0,Lm.default)(`design:paramtypes`,[typeof(Bm=kr!==void 0&&kr)==`function`?Bm:Object,Object,typeof(Vm=um!==void 0&&um)==`function`?Vm:Object])],Hm);var Um=l(Ie()),Wm=l(Cr()),Gm=l(Le()),Km,qm,Jm,Ym,Xm,Zm;let Qm=class{constructor(e,t,n,r,i,a,o){this.metricReportService=e,this.importSolverService=t,this.gatherDataSourceService=n,this.globalConfigService=r,this.lintRulesService=i,this.lintValidationService=a,this.testGeneratorProvider=o}async initGenerateTestFlow({filePath:e,testable:t,outputType:n,abortSignal:r,userPrompt:i}){let a=`Test generation was aborted`;return new Promise(async(o,s)=>{let{methodName:c,methodType:l,parentName:u}=ai(t);H.addContext({testedFunction:c,testedMethodClass:u});try{if((r?.aborted??!1)||((0,h.isDefined)(r)&&r.addEventListener(`abort`,()=>{s(a)}),r?.aborted??!1))return s(a);await Jt.init(e);let u=ut(e),d=await this.getEarlyTestFile(e,c,u,n),p=d.getFilePath(),m=null;Jt.add(p);let g=performance.now(),_=H.getRequestId();H.info.defaultLog(`Generating tests for method ${c}`);let v=this.metricReportService.registerStartTime(_);if(r?.aborted??!1)return s(a);let y=await this.gatherDataSourceService.gatherDataSource({path:e,testFilePath:p,outputType:n,testable:t,userPrompt:i}),b=performance.now()-g;H.debug.defaultLog(`with ${y.llmConfig.modelName??`default`} model, ${y.llmConfig.temperature??`default`} temperature, ${y.llmConfig.topP??`default`} top-p`);let x=this.globalConfigService.getExperimentalAgentSdk(),S;if(x)try{if(S=f.default.resolve(this.globalConfigService.getRootPath(),p),H.info.defaultLog(`[experimental] Pre-created test scaffold at ${S}`),H.info.defaultLog(`Calling BE for method ${c}`),r?.aborted??!1)return s(a);let{code:t,validationSummary:n}=await this.generateTest(y,_,b,r,S);if(r?.aborted??!1)return s(a);if((0,h.isEmpty)(t))throw new sr(ar.EMPTY_TEST,{methodName:c});H.info.defaultLog(`[experimental] Skipping code refinement for method "${c}"`);let i=await v({responseProcessingTime:performance.now()-g,gitUrl:this.globalConfigService.getGitURL()});return this.metricReportService.logPackageDependencies(e),H.info.endLog(`Generate Tests done: ${l} ${c} in ${e}. Duration: ${i}ms.`),o({shouldRefreshCoverage:this.globalConfigService.getShouldRefreshCoverage(),testFilePath:p,requestId:_,lintErrors:null,validationSummary:n})}catch(e){let t;if(e instanceof ep){let n=e.errors.length>0?`: `+e.errors.join(`, `):``;t=e.subtype+n+` ($`+e.costUsd.toFixed(4)+`)`}else t=String(e);H.error(`[experimental] SDK runner failed for method "${c}": ${t}`,void 0);try{await d.delete()}catch(e){H.info.defaultLog(`Failed to delete scaffold file for method "${c}"`,e)}return await v({responseProcessingTime:0,gitUrl:this.globalConfigService.getGitURL(),errorCause:t}),o({shouldRefreshCoverage:!1,testFilePath:``,requestId:_,lintErrors:null,validationSummary:{greenTestsCount:0,greyTestsCount:0,redTestsCount:0,naTestsCount:0,errorSuitsCount:0,lintErrorsCount:0,whiteTestsCount:0}})}if(H.info.defaultLog(`Calling BE for method ${c}`),r?.aborted??!1)return s(a);let{code:C,prompt:w,validationSummary:T}=await this.generateTest(y,_,b,r,S);if(r?.aborted??!1)return s(a);if((0,h.isEmpty)(C))throw new sr(ar.EMPTY_TEST,{methodName:c});let E=performance.now();if(r?.aborted??!1)return s(a);Jt.add(p,C),await new _a(this.importSolverService,e,p,t,u).refine({shouldResolveMockPaths:!0,shouldSolveImports:!0});let D=Jt.get(p).getFullText();if((0,h.isEmpty)(D))throw await v({responseProcessingTime:performance.now()-E,gitUrl:this.globalConfigService.getGitURL()}),new sr(ar.EMPTY_TEST,{methodName:c});if(r?.aborted??!1)return s(a);try{if(await d.replace(D),H.debug.defaultLog(`Done upserting test file for method "${c}"`),r?.aborted??!1)return s(a);await d.addPrompt(w),H.debug.defaultLog(`Added prompt for method "${c}"`),m=await this.lintValidationService.fixLintErrors(p),H.debug.defaultLog(`Ran lint command for method "${c}"`),await this.lintValidationService.addComplexitySuppressions(p)&&(H.info.defaultLog(`Complexity suppression comment added, refreshing file`),await Jt.refreshFromFileSystem(p));try{await this.lintRulesService.disableRules(p)}catch(e){H.info.defaultLog(`Failed disabling lint rules`,e)}try{if(r?.aborted??!1)return s(a);await d.runFormatCommand()}catch(e){H.info.defaultLog(`Failed formatting test file`,e)}H.debug.defaultLog(`Ran format command for method "${c}"`);let t=performance.now()-E;if(r?.aborted??!1)return s(a);let n=await v({responseProcessingTime:t,gitUrl:this.globalConfigService.getGitURL()});this.metricReportService.logPackageDependencies(e),await Jt.refreshFromFileSystem(p),H.info.endLog(`Generate Tests done: ${l} ${c} in ${e}. Duration: ${n}ms.`)}catch(e){if(r?.aborted??!1)return s(a);throw await v({responseProcessingTime:performance.now()-E,gitUrl:this.globalConfigService.getGitURL()}),e}return o({shouldRefreshCoverage:this.globalConfigService.getShouldRefreshCoverage(),testFilePath:p,requestId:_,lintErrors:m,validationSummary:T})}catch(e){return r?.aborted??!1?s(a):(H.info.defaultLog(`Unexpected Error generating tests`,e,[c,u]),s(e))}})}async generateTest(e,t,n,r,i){let a=e.testedCodeDataSource.testedMethod.name,o;try{o=await this.apiCall(e,t,n,r,i)}catch(e){if(H.info.defaultLog(`Failed making generateTest API Call`,e instanceof Error?e.message:e,t),e instanceof sr||e instanceof ep)throw e;let n=e instanceof Error?e.message:`Failed making API call`;throw new sr(ar.GENERATING_TESTS_REQUEST_ERROR,{methodName:a,errorMessage:n})}let{code:s,prompt:c}=o;return this.globalConfigService.getExperimentalAgentSdk()||H.debug.defaultLog(`Generating tests for method "${a}" - prompt: "${c}", LLM response: "${s}"`),o}async apiCall(e,t,n,r,i){let a=e.testedCodeDataSource.testedMethod.name,o=e.testedCodeDataSource.testedMethodClass?.name;try{return await this.testGeneratorProvider.generate(e,t,n,r,i,{parentName:o,methodName:a})}catch(e){if(H.info.defaultLog(`GenerateTestService failed to generate tests`,e instanceof Error?e.message:e),e instanceof sr||e instanceof ep)throw e;let t=e instanceof Error?e.message:`Failed making API call`;throw new sr(ar.GENERATING_TESTS_REQUEST_ERROR,{methodName:a,errorMessage:t})}}async getEarlyTestFile(e,t,n,r){if(r===ge.OVERRIDE_CODE_FILE){let n=await zi.getLatestTestFile(e,t);if((0,h.isDefined)(n))return new zi(ct(n))}return await zi.getNextTestFile(e,t,n)}};(0,Gm.default)([Yt,(0,Um.default)(`design:type`,Function),(0,Um.default)(`design:paramtypes`,[Object]),(0,Um.default)(`design:returntype`,Promise)],Qm.prototype,`initGenerateTestFlow`,null),Qm=(0,Gm.default)([(0,_.injectable)(),(0,Wm.default)(0,(0,_.inject)(Yr)),(0,Wm.default)(1,(0,_.inject)(Ia)),(0,Wm.default)(2,(0,_.inject)(Im)),(0,Wm.default)(3,(0,_.inject)(He)),(0,Wm.default)(4,(0,_.inject)(_i)),(0,Wm.default)(5,(0,_.inject)(vu)),(0,Wm.default)(6,(0,_.inject)(Hm)),(0,Um.default)(`design:paramtypes`,[typeof(Km=Yr!==void 0&&Yr)==`function`?Km:Object,typeof(qm=Ia!==void 0&&Ia)==`function`?qm:Object,typeof(Jm=Im!==void 0&&Im)==`function`?Jm:Object,Object,typeof(Ym=_i!==void 0&&_i)==`function`?Ym:Object,typeof(Xm=vu!==void 0&&vu)==`function`?Xm:Object,typeof(Zm=Hm!==void 0&&Hm)==`function`?Zm:Object])],Qm);var $m=l(Ie()),eh=l(Cr()),th=l(Le()),nh,rh,ih,ah,oh,sh;let ch=class{shouldTriggerRefreshCoverage=!1;queue;coverageService=new er;validationReports=new Map;testResults=new Map;constructor(e,t,n,r,i,a){this.generateTestService=e,this.dynamicPromptService=t,this.globalConfigService=n,this.testManagementService=r,this.metricReportService=i,this.lintValidationService=a,this.queue=new Xr({concurrency:this.globalConfigService.getConcurrency(),getItemKey:this.getQueueItemKey})}getQueueItemKey({filePath:e,methodType:t,methodName:n,parentName:r=``}){return`${e}:${t}:${r}:${n}`}decodeQueueItemKey(e){let[t,n,r,i]=e.split(`:`);return{filePath:t,methodType:n,parentName:r,methodName:i}}async clearTemporaryFiles(){let e=`**/.${ni}*`,t=await(0,A.default)(e);for(let e of t)try{await(0,p.unlink)(e)}catch(e){H.info.defaultLog(`Failed removing temp file:`,e)}}async getFinalValidationReport(e,t){return await this.testManagementService.getValidationReport(e,t)}buildEmptyTestCounters(){return{greenTestsCount:0,greyTestsCount:0,redTestsCount:0,naTestsCount:0,errorSuitsCount:0,lintErrorsCount:0,whiteTestsCount:0}}buildFinalTestCounters(e){return{greenTestsCount:e.greenTestsCount,greyTestsCount:e.greyTestsCount,redTestsCount:e.redTestsCount,naTestsCount:e.naTestsCount,errorSuitsCount:e.errorSuitsCount,lintErrorsCount:e.lintErrorsCount,whiteTestsCount:e.whiteTestsCount}}async handleSdkResult(e,t){let n=t.validationSummary??null;this.testResults.set(e,{testFilePath:t.testFilePath,requestId:t.requestId}),this.validationReports.set(e,n);let r=n?{greenTestsCount:n.greenTestsCount,greyTestsCount:n.greyTestsCount,redTestsCount:n.redTestsCount,naTestsCount:n.naTestsCount,errorSuitsCount:n.errorSuitsCount,lintErrorsCount:n.lintErrorsCount,whiteTestsCount:n.whiteTestsCount}:this.buildEmptyTestCounters();await this.metricReportService.saveTestMetrics({requestId:t.requestId,finalGreenTestsCount:r.greenTestsCount,finalTestCounters:r,gitUrl:this.globalConfigService.getGitURL()})}sanitizePath(e){return e.startsWith(`/`)?e.slice(1):e}async addGenerationToQueue({filePath:e,testable:t,outputType:n,userPrompt:r,progress:i}){let a=this.sanitizePath(e),{methodType:o,methodName:s,parentName:c}=ai(t),l={filePath:a,methodType:o,methodName:s,parentName:c};if(H.addContext({testedFunction:s,testedMethodClass:c}),this.queue.has(l)){H.info.defaultLog(`Test generation for "${t.name}" is already in progress`);return}H.info.defaultLog(`Generate Tests: ${t.name} in ${a}`),await this.queue.add(l,async e=>{await H.withBufferedPrinting(async()=>{H.default.info(``),H.default.info((0,h.isDefined)(i)?`Generating tests for ${t.name} - ${i.index} out of ${i.total} functions`:`Generating tests for ${t.name} in ${a}`),await Xt(async()=>{H.default.info(`Generating initial tests`);let i=await this.initGenerateTest({filePath:a,testable:t,outputType:n??this.globalConfigService.getOutputType(),abortSignal:e,userPrompt:r});if((0,h.isDefined)(i?.testFilePath)){let e=this.getQueueItemKey(l);if(this.globalConfigService.getExperimentalAgentSdk()){await this.handleSdkResult(e,i);return}let n=await this.testManagementService.getValidationReport(i.testFilePath,s);await this.metricReportService.saveTestMetrics({requestId:i.requestId,validationReport:n,gitUrl:this.globalConfigService.getGitURL()}),await this.dynamicPromptService.initDynamicPromptRecursively(t,i.testFilePath,i.requestId),H.default.info(``);let r=await this.getFinalValidationReport(i.testFilePath,s);if(H.default.info(`Test fixing complete`),H.default.info(`✅ ${r.greenTestsCount} tests passing`),H.default.info(`⚠️ ${r.redTestsCount} tests still failing (will be skipped)`),H.default.info(`❌ ${r.greyTestsCount} tests could not be fixed autonomously`),H.default.info(``),this.validationReports.set(e,r),this.testResults.set(e,{testFilePath:i.testFilePath,requestId:i.requestId}),this.testManagementService.needsRemoval(r)){await this.testManagementService.removeFailedTestFile(i.testFilePath),await this.metricReportService.saveTestMetrics({requestId:i.requestId,finalGreenTestsCount:0,finalTestCounters:this.buildEmptyTestCounters(),gitUrl:this.globalConfigService.getGitURL()});return}this.testManagementService.needsCleanup(r)?await this.testManagementService.cleanup(i.testFilePath,s):H.info.defaultLog(`No cleanup needed for method "${s}" in ${a}.\nGreen: ${r.greenTestsCount}, Grey: ${r.greyTestsCount}, Red: ${r.redTestsCount}, NA: ${r.naTestsCount}, Error Suits: ${r.errorSuitsCount}`),await this.testManagementService.removeTestComments(i.testFilePath),await this.testManagementService.cleanupPrettier(i.testFilePath),H.default.info(`▶️ Fixing lint and prettier issues`);let o=await this.getFinalValidationReport(i.testFilePath,s);if(H.default.info(`✔️ Tests finalized`),o.greenTestsCount>0?H.default.info(`🟢 Test generation complete`):o.greenTestsCount===0&&H.default.info(`🔴 Tests were generated but could not be validated successfully here`),H.default.info(``),H.default.info(`Summary:`),H.default.info(``),H.default.info(`✅ ${r.greenTestsCount} tests passing`),H.default.info(`⚠️ ${r.redTestsCount} tests skipped`),H.default.info(`❌ ${r.greyTestsCount} tests could not be fixed autonomously`),H.default.info(``),H.default.info(`----------------`),this.testManagementService.needsRemoval(o)){await this.testManagementService.removeFailedTestFile(i.testFilePath),await this.metricReportService.saveTestMetrics({requestId:i.requestId,finalGreenTestsCount:0,finalTestCounters:this.buildEmptyTestCounters(),gitUrl:this.globalConfigService.getGitURL()});return}await this.metricReportService.saveTestMetrics({requestId:i.requestId,finalGreenTestsCount:o.greenTestsCount,finalTestResult:o.testResult,finalTestCounters:this.buildFinalTestCounters(o),gitUrl:this.globalConfigService.getGitURL()})}else{let e=this.getQueueItemKey(l);this.validationReports.set(e,null)}})},i?.index??0)})}async bulkGenerateTests(e,t,n,r){let[{filePath:i}]=e;await Jt.init(i),(0,h.isDefined)(t)&&this.queue.onDone(n=>{let r=e.find(({filePath:e,testable:t})=>{let{methodName:r,methodType:i,parentName:a=``}=ai(t);return this.getQueueItemKey({filePath:e,methodType:i,methodName:r,parentName:a})===n});if((0,h.isDefined)(r))try{t(r,this.validationReports.get(n)??null,this.testResults.get(n)??null)}catch(e){H.error(`Callback execution failed for testable ${n}`,e)}finally{this.validationReports.delete(n),this.testResults.delete(n)}}),H.resetPrintOrder();for(let[t,{filePath:i,testable:a}]of e.entries())this.addGenerationToQueue({filePath:i,testable:a,userPrompt:n,progress:{index:t+1,total:e.length}}).catch(e=>{e instanceof sr&&(H.default.info(``),H.default.warn(`‼️ ${e.message}`),this.queue.clearQueued(),r?.(e))});await this.queue.getIdlePromise(),Jt.clear()}async initGenerateTest({filePath:e,testable:t,outputType:n,abortSignal:r,userPrompt:i}){let{methodName:a,parentName:o}=ai(t);try{if(r?.aborted)return;let s=Math.round(process.memoryUsage().heapUsed/1024/1024);ir.safeTrackEvent(`GenerateTestsInitiated`,{methodName:a,parentName:o,heapMemoryUsedMB:s});let{shouldRefreshCoverage:c,testFilePath:l,requestId:u,lintErrors:d,validationSummary:f}=await this.generateTestService.initGenerateTestFlow({filePath:e,testable:t,outputType:n,abortSignal:r,userPrompt:i});return r?.aborted?void 0:(c&&(this.shouldTriggerRefreshCoverage=!0),{shouldRefreshCoverage:c,testFilePath:l,requestId:u,lintErrors:d,validationSummary:f})}catch(e){if(!r.aborted){H.error(`Test generation failed.`,e);let t=new Map([[or[ar.NOT_ENOUGH_BALANCE_ERROR],ar.NOT_ENOUGH_BALANCE_ERROR]]);if(e instanceof sr&&t.has(e.message)){let n=t.get(e.message);throw ir.safeTrackEvent(`GenerateTestsError`,{errorCode:n}),e}}}}};(0,th.default)([Yt,(0,$m.default)(`design:type`,Function),(0,$m.default)(`design:paramtypes`,[Array,Object,String,typeof(sh=h.Fn!==void 0&&h.Fn)==`function`?sh:Object]),(0,$m.default)(`design:returntype`,Promise)],ch.prototype,`bulkGenerateTests`,null),(0,th.default)([$e({category:Tt.GENERATE_TESTS}),(0,$m.default)(`design:type`,Function),(0,$m.default)(`design:paramtypes`,[Object]),(0,$m.default)(`design:returntype`,Promise)],ch.prototype,`initGenerateTest`,null),ch=(0,th.default)([(0,_.injectable)(),(0,eh.default)(0,(0,_.inject)(Qm)),(0,eh.default)(1,(0,_.inject)(_d)),(0,eh.default)(2,(0,_.inject)(He)),(0,eh.default)(3,(0,_.inject)(sd)),(0,eh.default)(4,(0,_.inject)(Yr)),(0,eh.default)(5,(0,_.inject)(vu)),(0,$m.default)(`design:paramtypes`,[typeof(nh=Qm!==void 0&&Qm)==`function`?nh:Object,typeof(rh=_d!==void 0&&_d)==`function`?rh:Object,Object,typeof(ih=sd!==void 0&&sd)==`function`?ih:Object,typeof(ah=Yr!==void 0&&Yr)==`function`?ah:Object,typeof(oh=vu!==void 0&&vu)==`function`?oh:Object])],ch);var lh=l(Ie()),uh=l(Cr()),dh=l(Le()),fh;let ph=class{constructor(e){this.globalConfigService=e}async getFileTestables(e){try{let t=new et(e);return await t.isFileExists()?[e,new Mn(await t.getText()).testables.getAllTestables().filter(e=>e.canCreateTests&&e.type!==`class`)]:[e,[]]}catch(t){return H.info.defaultLog(`Failed reading file ${e}: check early.config.json`,t,{category:`Early config file`,subCategory:`Reading configuration`}),[e,[]]}}async getTestablesByPattern(e){try{let t=await Bn(e);return await Promise.all(t.map(e=>this.getFileTestables(e)))}catch(t){return H.info.defaultLog(`Failed reading file pattern ${e}: check early.config.json`,t),[]}}async getAllMethodsCount(e){try{let t=new et(e);return await t.isFileExists()?new Mn(await t.getText()).testables.getAllMethodsCount():0}catch(t){return H.info.failedLog(`Failed to get all methods count for ${e}`,t),0}}async resolveEarlyTestFile(e){let{absoluteFilePath:t,testableName:n}=e,r=this.globalConfigService.getRootPath(),i=ct(t),a=zi.fromTestablePath(i,n,r),o=await a.isFileExists(),s=f.default.resolve(r,a.getFilePath());return{...e,testFilePath:s,isExists:o}}async getTestableFileMap(e){if((0,h.isEmpty)(e))return{};let t=this.globalConfigService.getRootPath(),n=[...new Set(e.map(e=>this.toAbsolutePath(e,t)))],r={};for(let e of n){let[n,i]=await this.getFileTestables(e),a=this.toAbsolutePath(n,t);r[a]=await this.buildFilesTreeTestableEntries(i,a)}return r}toAbsolutePath(e,t){return f.default.isAbsolute(e)?e:f.default.resolve(t,e)}async buildFilesTreeTestableEntries(e,t){let n=[];for(let r of e){if(!(0,h.isDefined)(r.name)||r.type===`class`)continue;let e=await this.resolveEarlyTestFile({absoluteFilePath:t,testableName:r.name});n.push({testable:r,...e.isExists&&{testPath:e.testFilePath},testableFilePath:t})}return n}};ph=(0,dh.default)([(0,_.injectable)(),(0,uh.default)(0,(0,_.inject)(He)),(0,lh.default)(`design:paramtypes`,[typeof(fh=He!==void 0&&He)==`function`?fh:Object])],ph);var mh=l(Ie()),hh=l(Cr()),gh=l(Le()),_h;let vh=class{constructor(e){this.testablesService=e}async resolveEarlyTestFile(e){try{return await this.testablesService.resolveEarlyTestFile(e)}catch(t){return H.info.failedLog(`Failed to get test file exists`,t),{...e,testFilePath:``,isExists:!1}}}async getTestables(e){try{return await this.testablesService.getTestablesByPattern(e)}catch(e){return H.info.failedLog(`Failed to get testables`,e),[]}}async getAllMethodsCount(e){try{return await this.testablesService.getAllMethodsCount(e)}catch(e){return H.info.failedLog(`Failed to get all methods count`,e),0}}async getTestableFileMap(e){try{return await this.testablesService.getTestableFileMap(e)}catch(e){return H.error(`Failed to get files tree`,e),{}}}};vh=(0,gh.default)([(0,_.injectable)(),(0,hh.default)(0,(0,_.inject)(ph)),(0,mh.default)(`design:paramtypes`,[typeof(_h=ph!==void 0&&ph)==`function`?_h:Object])],vh);var yh=l(Ie()),bh=l(Cr()),xh=l(Le()),Sh,Ch,wh,Th,Eh,Dh,Oh,kh,Ah,jh;let Mh=class{constructor(e,t,n,r,i,a,o,s,c){this.testablesController=e,this.coverageController=t,this.generateTestController=n,this.authService=r,this.globalConfigService=i,this.testResultCounterService=a,this.testableContextService=o,this.dynamicPromptService=s,this.testValidatorService=c}async init(e){await this.authService.authorize(e)}async getTestables(e){return this.testablesController.getTestables(e)}async getAllMethodsCount(e){return this.testablesController.getAllMethodsCount(e)}async resolveEarlyTestFile(e){return this.testablesController.resolveEarlyTestFile(e)}async getTestableFileMap(e){return this.testablesController.getTestableFileMap(e)}async generateCoverage(){return this.coverageController.generateCoverage()}async setCoverage(e){return this.coverageController.setCoverage(e)}async getCoverageTree(){return this.coverageController.getCoverageTree()}async getCoverageForFiles(e){return this.coverageController.getCoverageForFiles(e)}async generateTests(e,t){return this.generateTestController.addGenerationToQueue({filePath:e,testable:t})}async bulkGenerateTests(e,t,n,r){return this.generateTestController.bulkGenerateTests(e,t,n,r)}updateContext(e){this.globalConfigService.updateContext(e)}updateRootPath(e){this.globalConfigService.updateRootPath(e)}async getValidationReport(e,t){return this.testResultCounterService.getValidationReport(e,t)}async getTestedCodeDataSource(e,t,n){return this.testableContextService.getTestedCodeDataSource(e,t,n)}async runDynamicPrompt(e,t,n){return(await this.dynamicPromptService.initDynamicPrompt(e,t,0,n))?.validationReport??null}async validateTestsByCode(e,t){return this.testValidatorService.validateTestsByCode(e,t)}};(0,xh.default)([$e({category:Tt.INITIALIZATION}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`init`,null),(0,xh.default)([$e({category:Tt.GET_TESTABLES}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getTestables`,null),(0,xh.default)([$e({category:Tt.GET_TESTABLES}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getAllMethodsCount`,null),(0,xh.default)([$e({category:Tt.GET_TESTABLES}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[Object]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`resolveEarlyTestFile`,null),(0,xh.default)([$e({category:Tt.GET_TESTABLES}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[Array]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getTestableFileMap`,null),(0,xh.default)([$e({category:Tt.GENERATE_COVERAGE}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`generateCoverage`,null),(0,xh.default)([$e({category:Tt.SET_COVERAGE}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[Object]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`setCoverage`,null),(0,xh.default)([$e({category:Tt.GET_COVERAGE}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getCoverageTree`,null),(0,xh.default)([$e({category:Tt.GET_COVERAGE}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[Array]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getCoverageForFiles`,null),(0,xh.default)([$e({category:Tt.GENERATE_TESTS}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String,Object]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`generateTests`,null),(0,xh.default)([$e({category:Tt.GENERATE_TESTS}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[Array,Object,String,typeof(jh=h.Fn!==void 0&&h.Fn)==`function`?jh:Object]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`bulkGenerateTests`,null),(0,xh.default)([$e({category:Tt.GENERATE_TESTS}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String,String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getValidationReport`,null),(0,xh.default)([$e({category:Tt.GET_TESTED_CODE_DATA_SOURCE}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String,Object,String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`getTestedCodeDataSource`,null),(0,xh.default)([$e({category:Tt.DYNAMIC_PROMPT}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String,Object,String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`runDynamicPrompt`,null),(0,xh.default)([$e({category:Tt.TEST_VALIDATION}),(0,yh.default)(`design:type`,Function),(0,yh.default)(`design:paramtypes`,[String,String]),(0,yh.default)(`design:returntype`,Promise)],Mh.prototype,`validateTestsByCode`,null),Mh=(0,xh.default)([(0,_.injectable)(),(0,bh.default)(0,(0,_.inject)(vh)),(0,bh.default)(1,(0,_.inject)(rr)),(0,bh.default)(2,(0,_.inject)(ch)),(0,bh.default)(3,(0,_.inject)(gc)),(0,bh.default)(4,(0,_.inject)(He)),(0,bh.default)(5,(0,_.inject)(ed)),(0,bh.default)(6,(0,_.inject)(Am)),(0,bh.default)(7,(0,_.inject)(_d)),(0,bh.default)(8,(0,_.inject)(Lu)),(0,yh.default)(`design:paramtypes`,[typeof(Sh=vh!==void 0&&vh)==`function`?Sh:Object,typeof(Ch=rr!==void 0&&rr)==`function`?Ch:Object,typeof(wh=ch!==void 0&&ch)==`function`?wh:Object,typeof(Th=gc!==void 0&&gc)==`function`?Th:Object,typeof(Eh=He!==void 0&&He)==`function`?Eh:Object,typeof(Dh=ed!==void 0&&ed)==`function`?Dh:Object,typeof(Oh=Am!==void 0&&Am)==`function`?Oh:Object,typeof(kh=_d!==void 0&&_d)==`function`?kh:Object,typeof(Ah=Lu!==void 0&&Lu)==`function`?Ah:Object])],Mh),e.AST=Mn,e.AccessModifierType=At,e.AstModuleInfo=An,e.CONCURRENCY=ye,e.COVERAGE_THRESHOLD=ve,e.CalculateCoverageOption=_e,e.DEFAULT_TYPE_KIND=Mt,e.ExportType=kt,e.GenerateTestsOutputType=ge,e.GeneratedTestStructure=he,e.LibraryName=jt,e.RequestSource=ue,Object.defineProperty(e,`TSAgent`,{enumerable:!0,get:function(){return Mh}}),e.TestFileName=me,e.TestFramework=fe,e.TestStructureVariant=de,e.TestSuffix=pe,e.WithTsMorphManager=Yt,e.createTSAgent=(e={})=>(V.bind(He).toDynamicValue(()=>new He(e)).inSingletonScope(),V.get(Mh)),e.findLintConfigPath=wt,e.getUnitTests=un,e.tsMorphManager=Jt}))();const lW={TSAgent:Symbol.for(`TSAgent`),CliOptions:Symbol.for(`CliOptions`),SCMHostService:Symbol.for(`SCMHostService`)};var uW=u(ki());let dW=function(e){return e.PR=`generate-for-pr`,e.COMMIT=`generate-for-commit`,e.PROJECT=`generate-for-project`,e.COVERAGE=`generate-coverage`,e}({});const fW=Object.freeze({status:`aborted`});function pW(e,t,n){function r(n,r){var i;Object.defineProperty(n,`_zod`,{value:n._zod??{},enumerable:!1}),(i=n._zod).traits??(i.traits=new Set),n._zod.traits.add(e),t(n,r);for(let e in o.prototype)e in n||Object.defineProperty(n,e,{value:o.prototype[e].bind(n)});n._zod.constr=o,n._zod.def=r}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,`name`,{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,`init`,{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}var mW=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},hW=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};const gW={};function _W(e){return e&&Object.assign(gW,e),gW}function vW(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function yW(e,t){return typeof t==`bigint`?t.toString():t}function bW(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function xW(e){return e==null}function SW(e){let t=e.startsWith(`^`)?1:0,n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function CW(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}const wW=Symbol(`evaluating`);function TW(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==wW)return r===void 0&&(r=wW,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function EW(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function DW(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function OW(e){return JSON.stringify(e)}const kW=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function AW(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const jW=bW(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function MW(e){if(AW(e)===!1)return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(AW(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function NW(e){return MW(e)?{...e}:Array.isArray(e)?[...e]:e}const PW=new Set([`string`,`number`,`symbol`]);function FW(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function IW(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function LW(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function RW(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}const Iee={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function zW(e,t){let n=e._zod.def;return IW(e,DW(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return EW(this,`shape`,e),e},checks:[]}))}function BW(e,t){let n=e._zod.def;return IW(e,DW(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return EW(this,`shape`,r),r},checks:[]}))}function VW(e,t){if(!MW(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0)throw Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");return IW(e,DW(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return EW(this,`shape`,n),n},checks:[]}))}function HW(e,t){if(!MW(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return IW(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t};return EW(this,`shape`,n),n},checks:e._zod.def.checks})}function UW(e,t){return IW(e,DW(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return EW(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function WW(e,t,n){return IW(t,DW(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return EW(this,`shape`,i),i},checks:[]}))}function GW(e,t,n){return IW(t,DW(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return EW(this,`shape`,i),i},checks:[]}))}function KW(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function qW(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function JW(e){return typeof e==`string`?e:e?.message}function YW(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=JW(e.inst?._zod.def?.error?.(e))??JW(t?.error?.(e))??JW(n.customError?.(e))??JW(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function XW(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function ZW(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}const QW=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,`_zod`,{value:e._zod,enumerable:!1}),Object.defineProperty(e,`issues`,{value:t,enumerable:!1}),e.message=JSON.stringify(t,yW,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},$W=pW(`$ZodError`,QW),eG=pW(`$ZodError`,QW,{Parent:Error});function tG(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function nG(e,t){let n=t||function(e){return e.message},r={_errors:[]},i=e=>{for(let t of e.issues)if(t.code===`invalid_union`&&t.errors.length)t.errors.map(e=>i({issues:e}));else if(t.code===`invalid_key`)i({issues:t.issues});else if(t.code===`invalid_element`)i({issues:t.issues});else if(t.path.length===0)r._errors.push(n(t));else{let e=r,i=0;for(;i<t.path.length;){let r=t.path[i];i===t.path.length-1?(e[r]=e[r]||{_errors:[]},e[r]._errors.push(n(t))):e[r]=e[r]||{_errors:[]},e=e[r],i++}}};return i(e),r}const rG=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new mW;if(o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>YW(e,a,_W())));throw kW(t,i?.callee),t}return o.value},iG=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>YW(e,a,_W())));throw kW(t,i?.callee),t}return o.value},aG=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new mW;return a.issues.length?{success:!1,error:new(e??$W)(a.issues.map(e=>YW(e,i,_W())))}:{success:!0,data:a.value}},oG=aG(eG),sG=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>YW(e,i,_W())))}:{success:!0,data:a.value}},cG=sG(eG),lG=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return rG(e)(t,n,i)},uG=e=>(t,n,r)=>rG(e)(t,n,r),dG=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return iG(e)(t,n,i)},Lee=e=>async(t,n,r)=>iG(e)(t,n,r),fG=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return aG(e)(t,n,i)},pG=e=>(t,n,r)=>aG(e)(t,n,r),mG=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return sG(e)(t,n,i)},hG=e=>async(t,n,r)=>sG(e)(t,n,r),gG=/^[cC][^\s-]{8,}$/,_G=/^[0-9a-z]+$/,vG=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,yG=/^[0-9a-vA-V]{20}$/,bG=/^[A-Za-z0-9]{27}$/,xG=/^[a-zA-Z0-9_-]{21}$/,SG=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ree=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,CG=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,wG=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function TG(){return RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)}const zee=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Bee=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,EG=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,DG=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,OG=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,kG=/^[A-Za-z0-9_-]*$/,Vee=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,AG=/^\+(?:[0-9]){6,14}[0-9]$/,jG=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,MG=RegExp(`^${jG}$`);function NG(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function PG(e){return RegExp(`^${NG(e)}$`)}function FG(e){let t=NG({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${jG}T(?:${r})$`)}const IG=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},LG=/^-?\d+$/,RG=/^-?\d+(?:\.\d+)?/,zG=/^[^A-Z]*$/,BG=/^[^a-z]*$/,VG=pW(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),HG={number:`number`,bigint:`bigint`,object:`date`},UG=pW(`$ZodCheckLessThan`,(e,t)=>{VG.init(e,t);let n=HG[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),WG=pW(`$ZodCheckGreaterThan`,(e,t)=>{VG.init(e,t);let n=HG[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),GG=pW(`$ZodCheckMultipleOf`,(e,t)=>{VG.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):CW(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),KG=pW(`$ZodCheckNumberFormat`,(e,t)=>{VG.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=Iee[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=LG)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inst:e})}}),qG=pW(`$ZodCheckMaxLength`,(e,t)=>{var n;VG.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!xW(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=XW(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),JG=pW(`$ZodCheckMinLength`,(e,t)=>{var n;VG.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!xW(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=XW(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),YG=pW(`$ZodCheckLengthEquals`,(e,t)=>{var n;VG.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!xW(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=XW(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),XG=pW(`$ZodCheckStringFormat`,(e,t)=>{var n,r;VG.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),ZG=pW(`$ZodCheckRegex`,(e,t)=>{XG.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),QG=pW(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=zG,XG.init(e,t)}),$G=pW(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=BG,XG.init(e,t)}),eK=pW(`$ZodCheckIncludes`,(e,t)=>{VG.init(e,t);let n=FW(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),tK=pW(`$ZodCheckStartsWith`,(e,t)=>{VG.init(e,t);let n=RegExp(`^${FW(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),nK=pW(`$ZodCheckEndsWith`,(e,t)=>{VG.init(e,t);let n=RegExp(`.*${FW(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),rK=pW(`$ZodCheckOverwrite`,(e,t)=>{VG.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}});var iK=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
32360
32360
  `).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(`
32361
32361
  `))}};const aK={major:4,minor:1,patch:11},oK=pW(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=aK;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=KW(e),i;for(let a of t){if(a._zod.def.when){if(!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,o=a._zod.check(e);if(o instanceof Promise&&n?.async===!1)throw new mW;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=KW(e,t))});else{if(e.issues.length===t)continue;r||=KW(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(KW(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new mW;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let o=e._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new mW;return o.then(e=>t(e,r,a))}return t(o,r,a)}}e[`~standard`]={validate:t=>{try{let n=oG(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return cG(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}}),sK=pW(`$ZodString`,(e,t)=>{oK.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??IG(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),cK=pW(`$ZodStringFormat`,(e,t)=>{XG.init(e,t),sK.init(e,t)}),lK=pW(`$ZodGUID`,(e,t)=>{t.pattern??=Ree,cK.init(e,t)}),uK=pW(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=CG(e)}else t.pattern??=CG();cK.init(e,t)}),dK=pW(`$ZodEmail`,(e,t)=>{t.pattern??=wG,cK.init(e,t)}),fK=pW(`$ZodURL`,(e,t)=>{cK.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:Vee.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),pK=pW(`$ZodEmoji`,(e,t)=>{t.pattern??=TG(),cK.init(e,t)}),mK=pW(`$ZodNanoID`,(e,t)=>{t.pattern??=xG,cK.init(e,t)}),hK=pW(`$ZodCUID`,(e,t)=>{t.pattern??=gG,cK.init(e,t)}),Hee=pW(`$ZodCUID2`,(e,t)=>{t.pattern??=_G,cK.init(e,t)}),gK=pW(`$ZodULID`,(e,t)=>{t.pattern??=vG,cK.init(e,t)}),_K=pW(`$ZodXID`,(e,t)=>{t.pattern??=yG,cK.init(e,t)}),vK=pW(`$ZodKSUID`,(e,t)=>{t.pattern??=bG,cK.init(e,t)}),Uee=pW(`$ZodISODateTime`,(e,t)=>{t.pattern??=FG(t),cK.init(e,t)}),yK=pW(`$ZodISODate`,(e,t)=>{t.pattern??=MG,cK.init(e,t)}),Wee=pW(`$ZodISOTime`,(e,t)=>{t.pattern??=PG(t),cK.init(e,t)}),bK=pW(`$ZodISODuration`,(e,t)=>{t.pattern??=SG,cK.init(e,t)}),xK=pW(`$ZodIPv4`,(e,t)=>{t.pattern??=zee,cK.init(e,t),e._zod.onattach.push(e=>{let t=e._zod.bag;t.format=`ipv4`})}),SK=pW(`$ZodIPv6`,(e,t)=>{t.pattern??=Bee,cK.init(e,t),e._zod.onattach.push(e=>{let t=e._zod.bag;t.format=`ipv6`}),e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),CK=pW(`$ZodCIDRv4`,(e,t)=>{t.pattern??=EG,cK.init(e,t)}),wK=pW(`$ZodCIDRv6`,(e,t)=>{t.pattern??=DG,cK.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function TK(e){if(e===``)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}const EK=pW(`$ZodBase64`,(e,t)=>{t.pattern??=OG,cK.init(e,t),e._zod.onattach.push(e=>{e._zod.bag.contentEncoding=`base64`}),e._zod.check=n=>{TK(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function DK(e){if(!kG.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return TK(t.padEnd(Math.ceil(t.length/4)*4,`=`))}const OK=pW(`$ZodBase64URL`,(e,t)=>{t.pattern??=kG,cK.init(e,t),e._zod.onattach.push(e=>{e._zod.bag.contentEncoding=`base64url`}),e._zod.check=n=>{DK(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),kK=pW(`$ZodE164`,(e,t)=>{t.pattern??=AG,cK.init(e,t)});function AK(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}const jK=pW(`$ZodJWT`,(e,t)=>{cK.init(e,t),e._zod.check=n=>{AK(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),MK=pW(`$ZodNumber`,(e,t)=>{oK.init(e,t),e._zod.pattern=e._zod.bag.pattern??RG,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),NK=pW(`$ZodNumber`,(e,t)=>{KG.init(e,t),MK.init(e,t)}),PK=pW(`$ZodUnknown`,(e,t)=>{oK.init(e,t),e._zod.parse=e=>e}),FK=pW(`$ZodNever`,(e,t)=>{oK.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function IK(e,t,n){e.issues.length&&t.issues.push(...qW(n,e.issues)),t.value[n]=e.value}const LK=pW(`$ZodArray`,(e,t)=>{oK.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;e<i.length;e++){let o=i[e],s=t.element._zod.run({value:o,issues:[]},r);s instanceof Promise?a.push(s.then(t=>IK(t,n,e))):IK(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function RK(e,t,n,r){e.issues.length&&t.issues.push(...qW(n,e.issues)),e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function zK(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=RW(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function BK(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type;for(let i of Object.keys(t)){if(s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>RK(e,n,i,t))):RK(a,n,i,t)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}const VK=pW(`$ZodObject`,(e,t)=>{if(oK.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,`shape`,{get:()=>{let n={...e};return Object.defineProperty(t,`shape`,{value:n}),n}})}let n=bW(()=>zK(t));TW(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=AW,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e]._zod.run({value:s[e],issues:[]},o);n instanceof Promise?c.push(n.then(n=>RK(n,t,e,s))):RK(n,t,e,s)}return i?BK(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),HK=pW(`$ZodObjectJIT`,(e,t)=>{VK.init(e,t);let n=e._zod.parse,r=bW(()=>zK(t)),i=e=>{let t=new iK([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=OW(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let e of n.keys){let n=a[e],r=OW(e);t.write(`const ${n} = ${i(e)};`),t.write(`
32362
32362
  if (${n}.issues.length) {
@@ -32375,7 +32375,7 @@ Start the workflow now with Phase 0 (read the provided project commands), then p
32375
32375
  newResult[${r}] = ${n}.value;
32376
32376
  }
32377
32377
 
32378
- `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=AW,s=!gW.jitless,c=s&&jW.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?BK([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function UK(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!KW(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>YW(e,r,_W())))}),t)}const WK=pW(`$ZodUnion`,(e,t)=>{oK.init(e,t),TW(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),TW(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),TW(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),TW(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>SW(e.source)).join(`|`)})$`)}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>UK(t,i,e,a)):UK(s,i,e,a)}}),GK=pW(`$ZodDiscriminatedUnion`,(e,t)=>{WK.init(e,t);let n=e._zod.parse;TW(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=bW(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!AW(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,input:o,path:[t.discriminator],inst:e}),i)}}),KK=pW(`$ZodIntersection`,(e,t)=>{oK.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>JK(e,t,n)):JK(e,i,a)}});function qK(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(MW(e)&&MW(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=qK(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=qK(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function JK(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),KW(e))return e;let r=qK(t.value,n.value);if(!r.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}const Gee=pW(`$ZodEnum`,(e,t)=>{oK.init(e,t);let n=vW(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>PW.has(typeof e)).map(e=>typeof e==`string`?FW(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),YK=pW(`$ZodLiteral`,(e,t)=>{if(oK.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);e._zod.values=new Set(t.values),e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?FW(e):e?FW(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:`invalid_value`,values:t.values,input:i,inst:e}),n}}),XK=pW(`$ZodTransform`,(e,t)=>{oK.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new hW(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new mW;return n.value=i,n}});function ZK(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const QK=pW(`$ZodOptional`,(e,t)=>{oK.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,TW(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),TW(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${SW(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>ZK(t,e.value)):ZK(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),$K=pW(`$ZodNullable`,(e,t)=>{oK.init(e,t),TW(e._zod,`optin`,()=>t.innerType._zod.optin),TW(e._zod,`optout`,()=>t.innerType._zod.optout),TW(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${SW(e.source)}|null)$`):void 0}),TW(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),eq=pW(`$ZodDefault`,(e,t)=>{oK.init(e,t),e._zod.optin=`optional`,TW(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>tq(e,t)):tq(r,t)}});function tq(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const nq=pW(`$ZodPrefault`,(e,t)=>{oK.init(e,t),e._zod.optin=`optional`,TW(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),rq=pW(`$ZodNonOptional`,(e,t)=>{oK.init(e,t),TW(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>iq(t,e)):iq(i,e)}});function iq(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}const aq=pW(`$ZodCatch`,(e,t)=>{oK.init(e,t),TW(e._zod,`optin`,()=>t.innerType._zod.optin),TW(e._zod,`optout`,()=>t.innerType._zod.optout),TW(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>YW(e,n,_W()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>YW(e,n,_W()))},input:e.value}),e.issues=[]),e)}}),oq=pW(`$ZodPipe`,(e,t)=>{oK.init(e,t),TW(e._zod,`values`,()=>t.in._zod.values),TW(e._zod,`optin`,()=>t.in._zod.optin),TW(e._zod,`optout`,()=>t.out._zod.optout),TW(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>sq(e,t.in,n)):sq(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>sq(e,t.out,n)):sq(r,t.out,n)}});function sq(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const cq=pW(`$ZodReadonly`,(e,t)=>{oK.init(e,t),TW(e._zod,`propValues`,()=>t.innerType._zod.propValues),TW(e._zod,`values`,()=>t.innerType._zod.values),TW(e._zod,`optin`,()=>t.innerType._zod.optin),TW(e._zod,`optout`,()=>t.innerType._zod.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(lq):lq(r)}});function lq(e){return e.value=Object.freeze(e.value),e}const uq=pW(`$ZodCustom`,(e,t)=>{VG.init(e,t),oK.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>dq(t,n,r,e));dq(i,n,r,e)}});function dq(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(ZW(e))}}var fq=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n==`object`&&`id`in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function pq(){return new fq}const mq=pq();function hq(e,t){return new e({type:`string`,...LW(t)})}function gq(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...LW(t)})}function _q(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...LW(t)})}function vq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...LW(t)})}function yq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...LW(t)})}function bq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...LW(t)})}function xq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...LW(t)})}function Sq(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...LW(t)})}function Cq(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...LW(t)})}function wq(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...LW(t)})}function Tq(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...LW(t)})}function Eq(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...LW(t)})}function Dq(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...LW(t)})}function Kee(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...LW(t)})}function qee(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...LW(t)})}function Oq(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...LW(t)})}function kq(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...LW(t)})}function Aq(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...LW(t)})}function jq(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...LW(t)})}function Mq(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...LW(t)})}function Nq(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...LW(t)})}function Pq(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...LW(t)})}function Fq(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...LW(t)})}function Iq(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...LW(t)})}function Lq(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...LW(t)})}function Rq(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...LW(t)})}function zq(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...LW(t)})}function Bq(e,t){return new e({type:`number`,checks:[],...LW(t)})}function Vq(e,t){return new e({type:`number`,coerce:!0,checks:[],...LW(t)})}function Hq(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...LW(t)})}function Uq(e){return new e({type:`unknown`})}function Wq(e,t){return new e({type:`never`,...LW(t)})}function Gq(e,t){return new UG({check:`less_than`,...LW(t),value:e,inclusive:!1})}function Kq(e,t){return new UG({check:`less_than`,...LW(t),value:e,inclusive:!0})}function qq(e,t){return new WG({check:`greater_than`,...LW(t),value:e,inclusive:!1})}function Jq(e,t){return new WG({check:`greater_than`,...LW(t),value:e,inclusive:!0})}function Yq(e,t){return new GG({check:`multiple_of`,...LW(t),value:e})}function Xq(e,t){return new qG({check:`max_length`,...LW(t),maximum:e})}function Zq(e,t){return new JG({check:`min_length`,...LW(t),minimum:e})}function Qq(e,t){return new YG({check:`length_equals`,...LW(t),length:e})}function $q(e,t){return new ZG({check:`string_format`,format:`regex`,...LW(t),pattern:e})}function eJ(e){return new QG({check:`string_format`,format:`lowercase`,...LW(e)})}function tJ(e){return new $G({check:`string_format`,format:`uppercase`,...LW(e)})}function nJ(e,t){return new eK({check:`string_format`,format:`includes`,...LW(t),includes:e})}function rJ(e,t){return new tK({check:`string_format`,format:`starts_with`,...LW(t),prefix:e})}function iJ(e,t){return new nK({check:`string_format`,format:`ends_with`,...LW(t),suffix:e})}function aJ(e){return new rK({check:`overwrite`,tx:e})}function oJ(e){return aJ(t=>t.normalize(e))}function sJ(){return aJ(e=>e.trim())}function cJ(){return aJ(e=>e.toLowerCase())}function lJ(){return aJ(e=>e.toUpperCase())}function uJ(e,t,n){return new e({type:`array`,element:t,...LW(n)})}function dJ(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...LW(n)})}function fJ(e){let t=pJ(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(ZW(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(ZW(r))}},e(n.value,n)));return t}function pJ(e,t){let n=new VG({check:`custom`,...LW(t)});return n._zod.check=e,n}const mJ=pW(`ZodISODateTime`,(e,t)=>{Uee.init(e,t),LJ.init(e,t)});function hJ(e){return Iq(mJ,e)}const gJ=pW(`ZodISODate`,(e,t)=>{yK.init(e,t),LJ.init(e,t)});function _J(e){return Lq(gJ,e)}const vJ=pW(`ZodISOTime`,(e,t)=>{Wee.init(e,t),LJ.init(e,t)});function Jee(e){return Rq(vJ,e)}const yJ=pW(`ZodISODuration`,(e,t)=>{bK.init(e,t),LJ.init(e,t)});function bJ(e){return zq(yJ,e)}const xJ=(e,t)=>{$W.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>nG(e,t)},flatten:{value:t=>tG(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,yW,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,yW,2)}},isEmpty:{get(){return e.issues.length===0}}})};pW(`ZodError`,xJ);const SJ=pW(`ZodError`,xJ,{Parent:Error}),CJ=rG(SJ),wJ=iG(SJ),TJ=aG(SJ),EJ=sG(SJ),DJ=lG(SJ),Yee=uG(SJ),OJ=dG(SJ),kJ=Lee(SJ),AJ=fG(SJ),jJ=pG(SJ),Xee=mG(SJ),MJ=hG(SJ),NJ=pW(`ZodType`,(e,t)=>(oK.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,`_def`,{value:t}),e.check=(...n)=>e.clone(DW(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]})),e.clone=(t,n)=>IW(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>CJ(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>TJ(e,t,n),e.parseAsync=async(t,n)=>wJ(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>EJ(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>DJ(e,t,n),e.decode=(t,n)=>Yee(e,t,n),e.encodeAsync=async(t,n)=>OJ(e,t,n),e.decodeAsync=async(t,n)=>kJ(e,t,n),e.safeEncode=(t,n)=>AJ(e,t,n),e.safeDecode=(t,n)=>jJ(e,t,n),e.safeEncodeAsync=async(t,n)=>Xee(e,t,n),e.safeDecodeAsync=async(t,n)=>MJ(e,t,n),e.refine=(t,n)=>e.check(WY(t,n)),e.superRefine=t=>e.check(GY(t)),e.overwrite=t=>e.check(aJ(t)),e.optional=()=>OY(e),e.nullable=()=>AY(e),e.nullish=()=>OY(AY(e)),e.nonoptional=t=>IY(e,t),e.array=()=>fY(e),e.or=t=>gY([e,t]),e.and=t=>bY(e,t),e.transform=t=>BY(e,EY(t)),e.default=t=>MY(e,t),e.prefault=t=>PY(e,t),e.catch=t=>RY(e,t),e.pipe=t=>BY(e,t),e.readonly=()=>HY(e),e.describe=t=>{let n=e.clone();return mq.add(n,{description:t}),n},Object.defineProperty(e,`description`,{get(){return mq.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return mq.get(e);let n=e.clone();return mq.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),PJ=pW(`_ZodString`,(e,t)=>{sK.init(e,t),NJ.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check($q(...t)),e.includes=(...t)=>e.check(nJ(...t)),e.startsWith=(...t)=>e.check(rJ(...t)),e.endsWith=(...t)=>e.check(iJ(...t)),e.min=(...t)=>e.check(Zq(...t)),e.max=(...t)=>e.check(Xq(...t)),e.length=(...t)=>e.check(Qq(...t)),e.nonempty=(...t)=>e.check(Zq(1,...t)),e.lowercase=t=>e.check(eJ(t)),e.uppercase=t=>e.check(tJ(t)),e.trim=()=>e.check(sJ()),e.normalize=(...t)=>e.check(oJ(...t)),e.toLowerCase=()=>e.check(cJ()),e.toUpperCase=()=>e.check(lJ())}),FJ=pW(`ZodString`,(e,t)=>{sK.init(e,t),PJ.init(e,t),e.email=t=>e.check(gq(RJ,t)),e.url=t=>e.check(Sq(HJ,t)),e.jwt=t=>e.check(Fq(rY,t)),e.emoji=t=>e.check(Cq(UJ,t)),e.guid=t=>e.check(_q(zJ,t)),e.uuid=t=>e.check(vq(BJ,t)),e.uuidv4=t=>e.check(yq(BJ,t)),e.uuidv6=t=>e.check(bq(BJ,t)),e.uuidv7=t=>e.check(xq(BJ,t)),e.nanoid=t=>e.check(wq(WJ,t)),e.guid=t=>e.check(_q(zJ,t)),e.cuid=t=>e.check(Tq(GJ,t)),e.cuid2=t=>e.check(Eq(KJ,t)),e.ulid=t=>e.check(Dq(qJ,t)),e.base64=t=>e.check(Mq(eY,t)),e.base64url=t=>e.check(Nq(tY,t)),e.xid=t=>e.check(Kee(JJ,t)),e.ksuid=t=>e.check(qee(YJ,t)),e.ipv4=t=>e.check(Oq(XJ,t)),e.ipv6=t=>e.check(kq(ZJ,t)),e.cidrv4=t=>e.check(Aq(QJ,t)),e.cidrv6=t=>e.check(jq($J,t)),e.e164=t=>e.check(Pq(nY,t)),e.datetime=t=>e.check(hJ(t)),e.date=t=>e.check(_J(t)),e.time=t=>e.check(Jee(t)),e.duration=t=>e.check(bJ(t))});function IJ(e){return hq(FJ,e)}const LJ=pW(`ZodStringFormat`,(e,t)=>{cK.init(e,t),PJ.init(e,t)}),RJ=pW(`ZodEmail`,(e,t)=>{dK.init(e,t),LJ.init(e,t)}),zJ=pW(`ZodGUID`,(e,t)=>{lK.init(e,t),LJ.init(e,t)}),BJ=pW(`ZodUUID`,(e,t)=>{uK.init(e,t),LJ.init(e,t)});function VJ(e){return vq(BJ,e)}const HJ=pW(`ZodURL`,(e,t)=>{fK.init(e,t),LJ.init(e,t)}),UJ=pW(`ZodEmoji`,(e,t)=>{pK.init(e,t),LJ.init(e,t)}),WJ=pW(`ZodNanoID`,(e,t)=>{mK.init(e,t),LJ.init(e,t)}),GJ=pW(`ZodCUID`,(e,t)=>{hK.init(e,t),LJ.init(e,t)}),KJ=pW(`ZodCUID2`,(e,t)=>{Hee.init(e,t),LJ.init(e,t)}),qJ=pW(`ZodULID`,(e,t)=>{gK.init(e,t),LJ.init(e,t)}),JJ=pW(`ZodXID`,(e,t)=>{_K.init(e,t),LJ.init(e,t)}),YJ=pW(`ZodKSUID`,(e,t)=>{vK.init(e,t),LJ.init(e,t)}),XJ=pW(`ZodIPv4`,(e,t)=>{xK.init(e,t),LJ.init(e,t)}),ZJ=pW(`ZodIPv6`,(e,t)=>{SK.init(e,t),LJ.init(e,t)}),QJ=pW(`ZodCIDRv4`,(e,t)=>{CK.init(e,t),LJ.init(e,t)}),$J=pW(`ZodCIDRv6`,(e,t)=>{wK.init(e,t),LJ.init(e,t)}),eY=pW(`ZodBase64`,(e,t)=>{EK.init(e,t),LJ.init(e,t)}),tY=pW(`ZodBase64URL`,(e,t)=>{OK.init(e,t),LJ.init(e,t)}),nY=pW(`ZodE164`,(e,t)=>{kK.init(e,t),LJ.init(e,t)}),rY=pW(`ZodJWT`,(e,t)=>{jK.init(e,t),LJ.init(e,t)}),iY=pW(`ZodNumber`,(e,t)=>{MK.init(e,t),NJ.init(e,t),e.gt=(t,n)=>e.check(qq(t,n)),e.gte=(t,n)=>e.check(Jq(t,n)),e.min=(t,n)=>e.check(Jq(t,n)),e.lt=(t,n)=>e.check(Gq(t,n)),e.lte=(t,n)=>e.check(Kq(t,n)),e.max=(t,n)=>e.check(Kq(t,n)),e.int=t=>e.check(sY(t)),e.safe=t=>e.check(sY(t)),e.positive=t=>e.check(qq(0,t)),e.nonnegative=t=>e.check(Jq(0,t)),e.negative=t=>e.check(Gq(0,t)),e.nonpositive=t=>e.check(Kq(0,t)),e.multipleOf=(t,n)=>e.check(Yq(t,n)),e.step=(t,n)=>e.check(Yq(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function aY(e){return Bq(iY,e)}const oY=pW(`ZodNumberFormat`,(e,t)=>{NK.init(e,t),iY.init(e,t)});function sY(e){return Hq(oY,e)}const cY=pW(`ZodUnknown`,(e,t)=>{PK.init(e,t),NJ.init(e,t)});function lY(){return Uq(cY)}const uY=pW(`ZodNever`,(e,t)=>{FK.init(e,t),NJ.init(e,t)});function dY(e){return Wq(uY,e)}const Zee=pW(`ZodArray`,(e,t)=>{LK.init(e,t),NJ.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(Zq(t,n)),e.nonempty=t=>e.check(Zq(1,t)),e.max=(t,n)=>e.check(Xq(t,n)),e.length=(t,n)=>e.check(Qq(t,n)),e.unwrap=()=>e.element});function fY(e,t){return uJ(Zee,e,t)}const pY=pW(`ZodObject`,(e,t)=>{HK.init(e,t),NJ.init(e,t),TW(e,`shape`,()=>t.shape),e.keyof=()=>SY(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:lY()}),e.loose=()=>e.clone({...e._zod.def,catchall:lY()}),e.strict=()=>e.clone({...e._zod.def,catchall:dY()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>VW(e,t),e.safeExtend=t=>HW(e,t),e.merge=t=>UW(e,t),e.pick=t=>zW(e,t),e.omit=t=>BW(e,t),e.partial=(...t)=>WW(DY,e,t[0]),e.required=(...t)=>GW(FY,e,t[0])});function mY(e,t){return new pY({type:`object`,shape:e??{},...LW(t)})}const hY=pW(`ZodUnion`,(e,t)=>{WK.init(e,t),NJ.init(e,t),e.options=t.options});function gY(e,t){return new hY({type:`union`,options:e,...LW(t)})}const _Y=pW(`ZodDiscriminatedUnion`,(e,t)=>{hY.init(e,t),GK.init(e,t)});function vY(e,t,n){return new _Y({type:`union`,options:t,discriminator:e,...LW(n)})}const yY=pW(`ZodIntersection`,(e,t)=>{KK.init(e,t),NJ.init(e,t)});function bY(e,t){return new yY({type:`intersection`,left:e,right:t})}const xY=pW(`ZodEnum`,(e,t)=>{Gee.init(e,t),NJ.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new xY({...t,checks:[],...LW(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new xY({...t,checks:[],...LW(r),entries:i})}});function SY(e,t){return new xY({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...LW(t)})}const CY=pW(`ZodLiteral`,(e,t)=>{YK.init(e,t),NJ.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,`value`,{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function wY(e,t){return new CY({type:`literal`,values:Array.isArray(e)?e:[e],...LW(t)})}const TY=pW(`ZodTransform`,(e,t)=>{XK.init(e,t),NJ.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new hW(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(ZW(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(ZW(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function EY(e){return new TY({type:`transform`,transform:e})}const DY=pW(`ZodOptional`,(e,t)=>{QK.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function OY(e){return new DY({type:`optional`,innerType:e})}const kY=pW(`ZodNullable`,(e,t)=>{$K.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function AY(e){return new kY({type:`nullable`,innerType:e})}const jY=pW(`ZodDefault`,(e,t)=>{eq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function MY(e,t){return new jY({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():NW(t)}})}const NY=pW(`ZodPrefault`,(e,t)=>{nq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function PY(e,t){return new NY({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():NW(t)}})}const FY=pW(`ZodNonOptional`,(e,t)=>{rq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function IY(e,t){return new FY({type:`nonoptional`,innerType:e,...LW(t)})}const LY=pW(`ZodCatch`,(e,t)=>{aq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function RY(e,t){return new LY({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}const zY=pW(`ZodPipe`,(e,t)=>{oq.init(e,t),NJ.init(e,t),e.in=t.in,e.out=t.out});function BY(e,t){return new zY({type:`pipe`,in:e,out:t})}const VY=pW(`ZodReadonly`,(e,t)=>{cq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function HY(e){return new VY({type:`readonly`,innerType:e})}const UY=pW(`ZodCustom`,(e,t)=>{uq.init(e,t),NJ.init(e,t)});function WY(e,t={}){return dJ(UY,e,t)}function GY(e){return fJ(e)}function KY(e){return Vq(iY,e)}let qY=function(e){return e.WEEKLY=`weekly`,e.MONTHLY=`monthly`,e}({});function JY(e){return IJ().default(String(e)).transform((e,t)=>{let n=Number(e);return Number.isNaN(n)||!Number.isInteger(n)?(t.issues.push({code:`custom`,input:e,message:`Expected an integer string, got "${e}"`}),fW):n})}const YY=mY({cliVersion:IJ().default(oe),traceId:VJ().default(y.randomUUID),command:SY(dW),rootPath:IJ().default(process.cwd()),requestSource:wY(cW.RequestSource.CLI),backendURL:IJ().default(`https://api.startearly.ai`),secretToken:IJ(),token:IJ(),SCMProvider:IJ().default(`github`),refName:IJ(),gitOrg:IJ().optional(),gitRepo:IJ().optional(),gitTopLevel:IJ().optional(),gitUserEmail:IJ().optional(),gitUserName:IJ().optional(),contributorName:IJ().optional(),contributorEmail:IJ().optional(),verbose:IJ().default(`false`).transform(e=>e===`true`),debug:IJ().default(`false`).transform(e=>e===`true`)}),XY=mY({testStructure:SY(cW.TestStructureVariant).optional(),testFramework:SY(cW.TestFramework).optional(),testSuffix:SY(cW.TestSuffix).optional(),testFileName:SY(cW.TestFileName).optional(),coverageThreshold:KY().min(cW.COVERAGE_THRESHOLD.MIN).max(cW.COVERAGE_THRESHOLD.MAX).default(cW.COVERAGE_THRESHOLD.DEFAULT),concurrency:KY().min(cW.CONCURRENCY.MIN).max(cW.CONCURRENCY.MAX).optional(),testCommand:IJ().default(`npx jest $early_filename --no-coverage --silent --json --forceExit --maxWorkers=1`).optional(),coverageCommand:IJ().default(`npx jest --coverage --coverageProvider=v8 --coveragePathIgnorePatterns "node_modules" "dist" ".*\\.early\\.(spec|test)\\.[tj]sx?$" --coverageReporters=json --coverageDirectory=$early_coverage_dir --silent --passWithNoTests --maxWorkers=50%`).optional(),lintCommand:IJ().default(`npx --no eslint $early_filename`).optional(),prettierCommand:IJ().default(`npx --no prettier $early_filename --write`).optional(),disableLintRules:IJ().default(`false`).transform(e=>e===`true`),autoCommit:IJ().transform(e=>e===`true`).default(!0),keepErrorTests:IJ().default(`false`).transform(e=>e===`true`),keepFailedTests:IJ().default(`false`).transform(e=>e===`true`),conditionalKeep:IJ().default(`false`).transform(e=>e===`true`),continueOnTestErrors:IJ().default(`false`).transform(e=>e===`true`),changedMethodsOnly:IJ().default(`true`).transform(e=>e===`true`),skipCoverageAfter:IJ().default(`false`).transform(e=>e===`true`),autoCommitSkipCi:IJ().default(`true`).transform(e=>e===`true`),perFunctionTimeout:KY().optional(),reuseCoverage:IJ().default(`false`).transform(e=>e===`true`),reuseCoverageMaxRuns:KY().min(1).max(10).default(10),experimentalAgentSdk:IJ().default(`true`).transform(e=>e===`true`),agentSdkModel:IJ().optional(),agentSdkBudget:KY().positive().optional()}),ZY=vY(`command`,[YY.extend({command:wY(dW.PR),prNumber:IJ(),baseRef:IJ().optional(),maxTestables:JY(5),prName:IJ().optional(),prUrl:IJ().optional(),prChangedFiles:aY().optional(),contributorAvatarUrl:IJ().url().optional()}).extend(XY.shape),YY.extend({command:wY(dW.COMMIT),commitHash:IJ(),baseRef:IJ().optional(),maxTestables:JY(5),commitName:IJ().optional()}).extend(XY.shape),YY.extend({command:wY(dW.PROJECT),targetDirectory:IJ(),maxTestables:JY(10)}).extend(XY.shape).extend({changedMethodsOnly:IJ().default(`false`).transform(e=>e===`true`)}),YY.extend({command:wY(dW.COVERAGE),frequency:SY(qY).default(qY.WEEKLY),startTime:hJ().optional(),coverageCommand:IJ().default(`npx jest --coverage --coverageProvider=v8 --coveragePathIgnorePatterns "node_modules" "dist" ".*\\.early\\.(spec|test)\\.[tj]sx?$" --coverageReporters=json --coverageDirectory=$early_coverage_dir --silent --passWithNoTests --maxWorkers=2`).optional()})]);var QY=s(((e,t)=>{var n=class e extends Error{constructor(t){super(`Format functions must be synchronous taking a two arguments: (info, opts)
32378
+ `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=AW,s=!gW.jitless,c=s&&jW.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?BK([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function UK(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!KW(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>YW(e,r,_W())))}),t)}const WK=pW(`$ZodUnion`,(e,t)=>{oK.init(e,t),TW(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),TW(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),TW(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),TW(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>SW(e.source)).join(`|`)})$`)}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>UK(t,i,e,a)):UK(s,i,e,a)}}),GK=pW(`$ZodDiscriminatedUnion`,(e,t)=>{WK.init(e,t);let n=e._zod.parse;TW(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=bW(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!AW(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,input:o,path:[t.discriminator],inst:e}),i)}}),KK=pW(`$ZodIntersection`,(e,t)=>{oK.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>JK(e,t,n)):JK(e,i,a)}});function qK(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(MW(e)&&MW(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=qK(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=qK(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function JK(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),KW(e))return e;let r=qK(t.value,n.value);if(!r.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}const Gee=pW(`$ZodEnum`,(e,t)=>{oK.init(e,t);let n=vW(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>PW.has(typeof e)).map(e=>typeof e==`string`?FW(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),YK=pW(`$ZodLiteral`,(e,t)=>{if(oK.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);e._zod.values=new Set(t.values),e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?FW(e):e?FW(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:`invalid_value`,values:t.values,input:i,inst:e}),n}}),XK=pW(`$ZodTransform`,(e,t)=>{oK.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new hW(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new mW;return n.value=i,n}});function ZK(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const QK=pW(`$ZodOptional`,(e,t)=>{oK.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,TW(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),TW(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${SW(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>ZK(t,e.value)):ZK(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),$K=pW(`$ZodNullable`,(e,t)=>{oK.init(e,t),TW(e._zod,`optin`,()=>t.innerType._zod.optin),TW(e._zod,`optout`,()=>t.innerType._zod.optout),TW(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${SW(e.source)}|null)$`):void 0}),TW(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),eq=pW(`$ZodDefault`,(e,t)=>{oK.init(e,t),e._zod.optin=`optional`,TW(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>tq(e,t)):tq(r,t)}});function tq(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const nq=pW(`$ZodPrefault`,(e,t)=>{oK.init(e,t),e._zod.optin=`optional`,TW(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),rq=pW(`$ZodNonOptional`,(e,t)=>{oK.init(e,t),TW(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>iq(t,e)):iq(i,e)}});function iq(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}const aq=pW(`$ZodCatch`,(e,t)=>{oK.init(e,t),TW(e._zod,`optin`,()=>t.innerType._zod.optin),TW(e._zod,`optout`,()=>t.innerType._zod.optout),TW(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>YW(e,n,_W()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>YW(e,n,_W()))},input:e.value}),e.issues=[]),e)}}),oq=pW(`$ZodPipe`,(e,t)=>{oK.init(e,t),TW(e._zod,`values`,()=>t.in._zod.values),TW(e._zod,`optin`,()=>t.in._zod.optin),TW(e._zod,`optout`,()=>t.out._zod.optout),TW(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>sq(e,t.in,n)):sq(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>sq(e,t.out,n)):sq(r,t.out,n)}});function sq(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const cq=pW(`$ZodReadonly`,(e,t)=>{oK.init(e,t),TW(e._zod,`propValues`,()=>t.innerType._zod.propValues),TW(e._zod,`values`,()=>t.innerType._zod.values),TW(e._zod,`optin`,()=>t.innerType._zod.optin),TW(e._zod,`optout`,()=>t.innerType._zod.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(lq):lq(r)}});function lq(e){return e.value=Object.freeze(e.value),e}const uq=pW(`$ZodCustom`,(e,t)=>{VG.init(e,t),oK.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>dq(t,n,r,e));dq(i,n,r,e)}});function dq(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(ZW(e))}}var fq=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n==`object`&&`id`in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function pq(){return new fq}const mq=pq();function hq(e,t){return new e({type:`string`,...LW(t)})}function gq(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...LW(t)})}function _q(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...LW(t)})}function vq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...LW(t)})}function yq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...LW(t)})}function bq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...LW(t)})}function xq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...LW(t)})}function Sq(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...LW(t)})}function Cq(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...LW(t)})}function wq(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...LW(t)})}function Tq(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...LW(t)})}function Eq(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...LW(t)})}function Dq(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...LW(t)})}function Kee(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...LW(t)})}function qee(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...LW(t)})}function Oq(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...LW(t)})}function kq(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...LW(t)})}function Aq(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...LW(t)})}function jq(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...LW(t)})}function Mq(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...LW(t)})}function Nq(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...LW(t)})}function Pq(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...LW(t)})}function Fq(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...LW(t)})}function Iq(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...LW(t)})}function Lq(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...LW(t)})}function Rq(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...LW(t)})}function zq(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...LW(t)})}function Bq(e,t){return new e({type:`number`,checks:[],...LW(t)})}function Vq(e,t){return new e({type:`number`,coerce:!0,checks:[],...LW(t)})}function Hq(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...LW(t)})}function Uq(e){return new e({type:`unknown`})}function Wq(e,t){return new e({type:`never`,...LW(t)})}function Gq(e,t){return new UG({check:`less_than`,...LW(t),value:e,inclusive:!1})}function Kq(e,t){return new UG({check:`less_than`,...LW(t),value:e,inclusive:!0})}function qq(e,t){return new WG({check:`greater_than`,...LW(t),value:e,inclusive:!1})}function Jq(e,t){return new WG({check:`greater_than`,...LW(t),value:e,inclusive:!0})}function Yq(e,t){return new GG({check:`multiple_of`,...LW(t),value:e})}function Xq(e,t){return new qG({check:`max_length`,...LW(t),maximum:e})}function Zq(e,t){return new JG({check:`min_length`,...LW(t),minimum:e})}function Qq(e,t){return new YG({check:`length_equals`,...LW(t),length:e})}function $q(e,t){return new ZG({check:`string_format`,format:`regex`,...LW(t),pattern:e})}function eJ(e){return new QG({check:`string_format`,format:`lowercase`,...LW(e)})}function tJ(e){return new $G({check:`string_format`,format:`uppercase`,...LW(e)})}function nJ(e,t){return new eK({check:`string_format`,format:`includes`,...LW(t),includes:e})}function rJ(e,t){return new tK({check:`string_format`,format:`starts_with`,...LW(t),prefix:e})}function iJ(e,t){return new nK({check:`string_format`,format:`ends_with`,...LW(t),suffix:e})}function aJ(e){return new rK({check:`overwrite`,tx:e})}function oJ(e){return aJ(t=>t.normalize(e))}function sJ(){return aJ(e=>e.trim())}function cJ(){return aJ(e=>e.toLowerCase())}function lJ(){return aJ(e=>e.toUpperCase())}function uJ(e,t,n){return new e({type:`array`,element:t,...LW(n)})}function dJ(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...LW(n)})}function fJ(e){let t=pJ(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(ZW(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(ZW(r))}},e(n.value,n)));return t}function pJ(e,t){let n=new VG({check:`custom`,...LW(t)});return n._zod.check=e,n}const mJ=pW(`ZodISODateTime`,(e,t)=>{Uee.init(e,t),LJ.init(e,t)});function hJ(e){return Iq(mJ,e)}const gJ=pW(`ZodISODate`,(e,t)=>{yK.init(e,t),LJ.init(e,t)});function _J(e){return Lq(gJ,e)}const vJ=pW(`ZodISOTime`,(e,t)=>{Wee.init(e,t),LJ.init(e,t)});function Jee(e){return Rq(vJ,e)}const yJ=pW(`ZodISODuration`,(e,t)=>{bK.init(e,t),LJ.init(e,t)});function bJ(e){return zq(yJ,e)}const xJ=(e,t)=>{$W.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>nG(e,t)},flatten:{value:t=>tG(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,yW,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,yW,2)}},isEmpty:{get(){return e.issues.length===0}}})};pW(`ZodError`,xJ);const SJ=pW(`ZodError`,xJ,{Parent:Error}),CJ=rG(SJ),wJ=iG(SJ),TJ=aG(SJ),EJ=sG(SJ),DJ=lG(SJ),Yee=uG(SJ),OJ=dG(SJ),kJ=Lee(SJ),AJ=fG(SJ),jJ=pG(SJ),Xee=mG(SJ),MJ=hG(SJ),NJ=pW(`ZodType`,(e,t)=>(oK.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,`_def`,{value:t}),e.check=(...n)=>e.clone(DW(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]})),e.clone=(t,n)=>IW(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>CJ(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>TJ(e,t,n),e.parseAsync=async(t,n)=>wJ(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>EJ(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>DJ(e,t,n),e.decode=(t,n)=>Yee(e,t,n),e.encodeAsync=async(t,n)=>OJ(e,t,n),e.decodeAsync=async(t,n)=>kJ(e,t,n),e.safeEncode=(t,n)=>AJ(e,t,n),e.safeDecode=(t,n)=>jJ(e,t,n),e.safeEncodeAsync=async(t,n)=>Xee(e,t,n),e.safeDecodeAsync=async(t,n)=>MJ(e,t,n),e.refine=(t,n)=>e.check(WY(t,n)),e.superRefine=t=>e.check(GY(t)),e.overwrite=t=>e.check(aJ(t)),e.optional=()=>OY(e),e.nullable=()=>AY(e),e.nullish=()=>OY(AY(e)),e.nonoptional=t=>IY(e,t),e.array=()=>fY(e),e.or=t=>gY([e,t]),e.and=t=>bY(e,t),e.transform=t=>BY(e,EY(t)),e.default=t=>MY(e,t),e.prefault=t=>PY(e,t),e.catch=t=>RY(e,t),e.pipe=t=>BY(e,t),e.readonly=()=>HY(e),e.describe=t=>{let n=e.clone();return mq.add(n,{description:t}),n},Object.defineProperty(e,`description`,{get(){return mq.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return mq.get(e);let n=e.clone();return mq.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),PJ=pW(`_ZodString`,(e,t)=>{sK.init(e,t),NJ.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check($q(...t)),e.includes=(...t)=>e.check(nJ(...t)),e.startsWith=(...t)=>e.check(rJ(...t)),e.endsWith=(...t)=>e.check(iJ(...t)),e.min=(...t)=>e.check(Zq(...t)),e.max=(...t)=>e.check(Xq(...t)),e.length=(...t)=>e.check(Qq(...t)),e.nonempty=(...t)=>e.check(Zq(1,...t)),e.lowercase=t=>e.check(eJ(t)),e.uppercase=t=>e.check(tJ(t)),e.trim=()=>e.check(sJ()),e.normalize=(...t)=>e.check(oJ(...t)),e.toLowerCase=()=>e.check(cJ()),e.toUpperCase=()=>e.check(lJ())}),FJ=pW(`ZodString`,(e,t)=>{sK.init(e,t),PJ.init(e,t),e.email=t=>e.check(gq(RJ,t)),e.url=t=>e.check(Sq(HJ,t)),e.jwt=t=>e.check(Fq(rY,t)),e.emoji=t=>e.check(Cq(UJ,t)),e.guid=t=>e.check(_q(zJ,t)),e.uuid=t=>e.check(vq(BJ,t)),e.uuidv4=t=>e.check(yq(BJ,t)),e.uuidv6=t=>e.check(bq(BJ,t)),e.uuidv7=t=>e.check(xq(BJ,t)),e.nanoid=t=>e.check(wq(WJ,t)),e.guid=t=>e.check(_q(zJ,t)),e.cuid=t=>e.check(Tq(GJ,t)),e.cuid2=t=>e.check(Eq(KJ,t)),e.ulid=t=>e.check(Dq(qJ,t)),e.base64=t=>e.check(Mq(eY,t)),e.base64url=t=>e.check(Nq(tY,t)),e.xid=t=>e.check(Kee(JJ,t)),e.ksuid=t=>e.check(qee(YJ,t)),e.ipv4=t=>e.check(Oq(XJ,t)),e.ipv6=t=>e.check(kq(ZJ,t)),e.cidrv4=t=>e.check(Aq(QJ,t)),e.cidrv6=t=>e.check(jq($J,t)),e.e164=t=>e.check(Pq(nY,t)),e.datetime=t=>e.check(hJ(t)),e.date=t=>e.check(_J(t)),e.time=t=>e.check(Jee(t)),e.duration=t=>e.check(bJ(t))});function IJ(e){return hq(FJ,e)}const LJ=pW(`ZodStringFormat`,(e,t)=>{cK.init(e,t),PJ.init(e,t)}),RJ=pW(`ZodEmail`,(e,t)=>{dK.init(e,t),LJ.init(e,t)}),zJ=pW(`ZodGUID`,(e,t)=>{lK.init(e,t),LJ.init(e,t)}),BJ=pW(`ZodUUID`,(e,t)=>{uK.init(e,t),LJ.init(e,t)});function VJ(e){return vq(BJ,e)}const HJ=pW(`ZodURL`,(e,t)=>{fK.init(e,t),LJ.init(e,t)}),UJ=pW(`ZodEmoji`,(e,t)=>{pK.init(e,t),LJ.init(e,t)}),WJ=pW(`ZodNanoID`,(e,t)=>{mK.init(e,t),LJ.init(e,t)}),GJ=pW(`ZodCUID`,(e,t)=>{hK.init(e,t),LJ.init(e,t)}),KJ=pW(`ZodCUID2`,(e,t)=>{Hee.init(e,t),LJ.init(e,t)}),qJ=pW(`ZodULID`,(e,t)=>{gK.init(e,t),LJ.init(e,t)}),JJ=pW(`ZodXID`,(e,t)=>{_K.init(e,t),LJ.init(e,t)}),YJ=pW(`ZodKSUID`,(e,t)=>{vK.init(e,t),LJ.init(e,t)}),XJ=pW(`ZodIPv4`,(e,t)=>{xK.init(e,t),LJ.init(e,t)}),ZJ=pW(`ZodIPv6`,(e,t)=>{SK.init(e,t),LJ.init(e,t)}),QJ=pW(`ZodCIDRv4`,(e,t)=>{CK.init(e,t),LJ.init(e,t)}),$J=pW(`ZodCIDRv6`,(e,t)=>{wK.init(e,t),LJ.init(e,t)}),eY=pW(`ZodBase64`,(e,t)=>{EK.init(e,t),LJ.init(e,t)}),tY=pW(`ZodBase64URL`,(e,t)=>{OK.init(e,t),LJ.init(e,t)}),nY=pW(`ZodE164`,(e,t)=>{kK.init(e,t),LJ.init(e,t)}),rY=pW(`ZodJWT`,(e,t)=>{jK.init(e,t),LJ.init(e,t)}),iY=pW(`ZodNumber`,(e,t)=>{MK.init(e,t),NJ.init(e,t),e.gt=(t,n)=>e.check(qq(t,n)),e.gte=(t,n)=>e.check(Jq(t,n)),e.min=(t,n)=>e.check(Jq(t,n)),e.lt=(t,n)=>e.check(Gq(t,n)),e.lte=(t,n)=>e.check(Kq(t,n)),e.max=(t,n)=>e.check(Kq(t,n)),e.int=t=>e.check(sY(t)),e.safe=t=>e.check(sY(t)),e.positive=t=>e.check(qq(0,t)),e.nonnegative=t=>e.check(Jq(0,t)),e.negative=t=>e.check(Gq(0,t)),e.nonpositive=t=>e.check(Kq(0,t)),e.multipleOf=(t,n)=>e.check(Yq(t,n)),e.step=(t,n)=>e.check(Yq(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function aY(e){return Bq(iY,e)}const oY=pW(`ZodNumberFormat`,(e,t)=>{NK.init(e,t),iY.init(e,t)});function sY(e){return Hq(oY,e)}const cY=pW(`ZodUnknown`,(e,t)=>{PK.init(e,t),NJ.init(e,t)});function lY(){return Uq(cY)}const uY=pW(`ZodNever`,(e,t)=>{FK.init(e,t),NJ.init(e,t)});function dY(e){return Wq(uY,e)}const Zee=pW(`ZodArray`,(e,t)=>{LK.init(e,t),NJ.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(Zq(t,n)),e.nonempty=t=>e.check(Zq(1,t)),e.max=(t,n)=>e.check(Xq(t,n)),e.length=(t,n)=>e.check(Qq(t,n)),e.unwrap=()=>e.element});function fY(e,t){return uJ(Zee,e,t)}const pY=pW(`ZodObject`,(e,t)=>{HK.init(e,t),NJ.init(e,t),TW(e,`shape`,()=>t.shape),e.keyof=()=>SY(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:lY()}),e.loose=()=>e.clone({...e._zod.def,catchall:lY()}),e.strict=()=>e.clone({...e._zod.def,catchall:dY()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>VW(e,t),e.safeExtend=t=>HW(e,t),e.merge=t=>UW(e,t),e.pick=t=>zW(e,t),e.omit=t=>BW(e,t),e.partial=(...t)=>WW(DY,e,t[0]),e.required=(...t)=>GW(FY,e,t[0])});function mY(e,t){return new pY({type:`object`,shape:e??{},...LW(t)})}const hY=pW(`ZodUnion`,(e,t)=>{WK.init(e,t),NJ.init(e,t),e.options=t.options});function gY(e,t){return new hY({type:`union`,options:e,...LW(t)})}const _Y=pW(`ZodDiscriminatedUnion`,(e,t)=>{hY.init(e,t),GK.init(e,t)});function vY(e,t,n){return new _Y({type:`union`,options:t,discriminator:e,...LW(n)})}const yY=pW(`ZodIntersection`,(e,t)=>{KK.init(e,t),NJ.init(e,t)});function bY(e,t){return new yY({type:`intersection`,left:e,right:t})}const xY=pW(`ZodEnum`,(e,t)=>{Gee.init(e,t),NJ.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new xY({...t,checks:[],...LW(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new xY({...t,checks:[],...LW(r),entries:i})}});function SY(e,t){return new xY({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...LW(t)})}const CY=pW(`ZodLiteral`,(e,t)=>{YK.init(e,t),NJ.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,`value`,{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function wY(e,t){return new CY({type:`literal`,values:Array.isArray(e)?e:[e],...LW(t)})}const TY=pW(`ZodTransform`,(e,t)=>{XK.init(e,t),NJ.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new hW(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(ZW(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(ZW(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function EY(e){return new TY({type:`transform`,transform:e})}const DY=pW(`ZodOptional`,(e,t)=>{QK.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function OY(e){return new DY({type:`optional`,innerType:e})}const kY=pW(`ZodNullable`,(e,t)=>{$K.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function AY(e){return new kY({type:`nullable`,innerType:e})}const jY=pW(`ZodDefault`,(e,t)=>{eq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function MY(e,t){return new jY({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():NW(t)}})}const NY=pW(`ZodPrefault`,(e,t)=>{nq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function PY(e,t){return new NY({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():NW(t)}})}const FY=pW(`ZodNonOptional`,(e,t)=>{rq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function IY(e,t){return new FY({type:`nonoptional`,innerType:e,...LW(t)})}const LY=pW(`ZodCatch`,(e,t)=>{aq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function RY(e,t){return new LY({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}const zY=pW(`ZodPipe`,(e,t)=>{oq.init(e,t),NJ.init(e,t),e.in=t.in,e.out=t.out});function BY(e,t){return new zY({type:`pipe`,in:e,out:t})}const VY=pW(`ZodReadonly`,(e,t)=>{cq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function HY(e){return new VY({type:`readonly`,innerType:e})}const UY=pW(`ZodCustom`,(e,t)=>{uq.init(e,t),NJ.init(e,t)});function WY(e,t={}){return dJ(UY,e,t)}function GY(e){return fJ(e)}function KY(e){return Vq(iY,e)}let qY=function(e){return e.WEEKLY=`weekly`,e.MONTHLY=`monthly`,e}({});function JY(e){return IJ().default(String(e)).transform((e,t)=>{let n=Number(e);return Number.isNaN(n)||!Number.isInteger(n)?(t.issues.push({code:`custom`,input:e,message:`Expected an integer string, got "${e}"`}),fW):n})}const YY=mY({cliVersion:IJ().default(oe),traceId:VJ().default(y.randomUUID),command:SY(dW),rootPath:IJ().default(process.cwd()),requestSource:wY(cW.RequestSource.CLI),backendURL:IJ().default(`https://api.startearly.ai`),secretToken:IJ(),token:IJ(),SCMProvider:IJ().default(`github`),refName:IJ(),gitOrg:IJ().optional(),gitRepo:IJ().optional(),gitTopLevel:IJ().optional(),gitUserEmail:IJ().optional(),gitUserName:IJ().optional(),contributorName:IJ().optional(),contributorEmail:IJ().optional(),verbose:IJ().default(`false`).transform(e=>e===`true`),debug:IJ().default(`false`).transform(e=>e===`true`)}),XY=mY({testStructure:SY(cW.TestStructureVariant).optional(),testFramework:SY(cW.TestFramework).optional(),testSuffix:SY(cW.TestSuffix).optional(),testFileName:SY(cW.TestFileName).optional(),coverageThreshold:KY().min(cW.COVERAGE_THRESHOLD.MIN).max(cW.COVERAGE_THRESHOLD.MAX).default(cW.COVERAGE_THRESHOLD.DEFAULT),concurrency:KY().min(cW.CONCURRENCY.MIN).max(cW.CONCURRENCY.MAX).optional(),testCommand:IJ().default(`npx jest $early_filename --no-coverage --silent --json --forceExit --maxWorkers=1`).optional(),coverageCommand:IJ().default(`npx jest --coverage --coverageProvider=v8 --coveragePathIgnorePatterns "node_modules" "dist" ".*\\.early\\.(spec|test)\\.[tj]sx?$" --coverageReporters=json --coverageDirectory=$early_coverage_dir --silent --passWithNoTests --maxWorkers=50%`).optional(),lintCommand:IJ().default(`npx --no eslint $early_filename`).optional(),prettierCommand:IJ().default(`npx --no prettier $early_filename --write`).optional(),disableLintRules:IJ().default(`false`).transform(e=>e===`true`),autoCommit:IJ().transform(e=>e===`true`).default(!0),keepErrorTests:IJ().default(`false`).transform(e=>e===`true`),keepFailedTests:IJ().default(`false`).transform(e=>e===`true`),conditionalKeep:IJ().default(`false`).transform(e=>e===`true`),continueOnTestErrors:IJ().default(`false`).transform(e=>e===`true`),changedMethodsOnly:IJ().default(`true`).transform(e=>e===`true`),skipCoverageAfter:IJ().default(`false`).transform(e=>e===`true`),autoCommitSkipCi:IJ().default(`true`).transform(e=>e===`true`),perFunctionTimeout:KY().optional(),reuseCoverage:IJ().default(`false`).transform(e=>e===`true`),reuseCoverageMaxRuns:KY().min(1).max(10).default(10),experimentalAgentSdk:IJ().default(`true`).transform(e=>e===`true`),agentSdkModel:IJ().optional(),agentSdkBudget:KY().positive().optional()}),ZY=vY(`command`,[YY.extend({command:wY(dW.PR),prNumber:IJ(),baseRef:IJ().optional(),maxTestables:JY(5),prName:IJ().optional(),prUrl:IJ().optional(),prChangedFiles:aY().optional(),contributorAvatarUrl:IJ().url().optional()}).extend(XY.shape),YY.extend({command:wY(dW.COMMIT),commitHash:IJ(),baseRef:IJ().optional(),maxTestables:JY(5),commitName:IJ().optional()}).extend(XY.shape),YY.extend({command:wY(dW.PROJECT),targetDirectory:IJ(),maxTestables:JY(5)}).extend(XY.shape).extend({changedMethodsOnly:IJ().default(`false`).transform(e=>e===`true`)}),YY.extend({command:wY(dW.COVERAGE),frequency:SY(qY).default(qY.WEEKLY),startTime:hJ().optional(),coverageCommand:IJ().default(`npx jest --coverage --coverageProvider=v8 --coveragePathIgnorePatterns "node_modules" "dist" ".*\\.early\\.(spec|test)\\.[tj]sx?$" --coverageReporters=json --coverageDirectory=$early_coverage_dir --silent --passWithNoTests --maxWorkers=2`).optional()})]);var QY=s(((e,t)=>{var n=class e extends Error{constructor(t){super(`Format functions must be synchronous taking a two arguments: (info, opts)
32379
32379
  Found: ${t.toString().split(`
32380
32380
  `)[0]}\n`),Error.captureStackTrace(this,e)}};t.exports=e=>{if(e.length>2)throw new n(e);function t(e={}){this.options=e}t.prototype.transform=e;function r(e){return new t(e)}return r.Format=t,r}})),$Y=s(((e,t)=>{var n={};t.exports=n;var r={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(r).forEach(function(e){var t=r[e],i=n[e]=[];i.open=`\x1B[`+t[0]+`m`,i.close=`\x1B[`+t[1]+`m`})})),eX=s(((e,t)=>{t.exports=function(e,t){t=t||process.argv||[];var n=t.indexOf(`--`),r=/^-{1,2}/.test(e)?``:`--`,i=t.indexOf(r+e);return i!==-1&&(n===-1?!0:i<n)}})),tX=s(((e,t)=>{var n=require(`os`),r=eX(),i=process.env,a=void 0;r(`no-color`)||r(`no-colors`)||r(`color=false`)?a=!1:(r(`color`)||r(`colors`)||r(`color=true`)||r(`color=always`))&&(a=!0),`FORCE_COLOR`in i&&(a=i.FORCE_COLOR.length===0||parseInt(i.FORCE_COLOR,10)!==0);function o(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function s(e){if(a===!1)return 0;if(r(`color=16m`)||r(`color=full`)||r(`color=truecolor`))return 3;if(r(`color=256`))return 2;if(e&&!e.isTTY&&a!==!0)return 0;var t=a?1:0;if(process.platform===`win32`){var o=n.release().split(`.`);return Number(process.versions.node.split(`.`)[0])>=8&&Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if(`CI`in i)return[`TRAVIS`,`CIRCLECI`,`APPVEYOR`,`GITLAB_CI`].some(function(e){return e in i})||i.CI_NAME===`codeship`?1:t;if(`TEAMCITY_VERSION`in i)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(i.TEAMCITY_VERSION)?1:0;if(`TERM_PROGRAM`in i){var s=parseInt((i.TERM_PROGRAM_VERSION||``).split(`.`)[0],10);switch(i.TERM_PROGRAM){case`iTerm.app`:return s>=3?3:2;case`Hyper`:return 3;case`Apple_Terminal`:return 2}}return/-256(color)?$/i.test(i.TERM)?2:/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(i.TERM)||`COLORTERM`in i?1:(i.TERM,t)}function c(e){return o(s(e))}t.exports={supportsColor:c,stdout:c(process.stdout),stderr:c(process.stderr)}})),nX=s(((e,t)=>{t.exports=function(e,t){var n=``;e||=`Run the trap, drop the bass`,e=e.split(``);var r={a:[`@`,`Ą`,`Ⱥ`,`Ʌ`,`Δ`,`Λ`,`Д`],b:[`ß`,`Ɓ`,`Ƀ`,`ɮ`,`β`,`฿`],c:[`©`,`Ȼ`,`Ͼ`],d:[`Ð`,`Ɗ`,`Ԁ`,`ԁ`,`Ԃ`,`ԃ`],e:[`Ë`,`ĕ`,`Ǝ`,`ɘ`,`Σ`,`ξ`,`Ҽ`,`੬`],f:[`Ӻ`],g:[`ɢ`],h:[`Ħ`,`ƕ`,`Ң`,`Һ`,`Ӈ`,`Ԋ`],i:[`༏`],j:[`Ĵ`],k:[`ĸ`,`Ҡ`,`Ӄ`,`Ԟ`],l:[`Ĺ`],m:[`ʍ`,`Ӎ`,`ӎ`,`Ԡ`,`ԡ`,`൩`],n:[`Ñ`,`ŋ`,`Ɲ`,`Ͷ`,`Π`,`Ҋ`],o:[`Ø`,`õ`,`ø`,`Ǿ`,`ʘ`,`Ѻ`,`ם`,`۝`,`๏`],p:[`Ƿ`,`Ҏ`],q:[`্`],r:[`®`,`Ʀ`,`Ȑ`,`Ɍ`,`ʀ`,`Я`],s:[`§`,`Ϟ`,`ϟ`,`Ϩ`],t:[`Ł`,`Ŧ`,`ͳ`],u:[`Ʊ`,`Ս`],v:[`ט`],w:[`Ш`,`Ѡ`,`Ѽ`,`൰`],x:[`Ҳ`,`Ӿ`,`Ӽ`,`ӽ`],y:[`¥`,`Ұ`,`Ӌ`],z:[`Ƶ`,`ɀ`]};return e.forEach(function(e){e=e.toLowerCase();var t=r[e]||[` `],i=Math.floor(Math.random()*t.length);r[e]===void 0?n+=e:n+=r[e][i]}),n}})),rX=s(((e,t)=>{t.exports=function(e,t){e||=` he is here `;var n={up:`̍.̎.̄.̅.̿.̑.̆.̐.͒.͗.͑.̇.̈.̊.͂.̓.̈.͊.͋.͌.̃.̂.̌.͐.̀.́.̋.̏.̒.̓.̔.̽.̉.ͣ.ͤ.ͥ.ͦ.ͧ.ͨ.ͩ.ͪ.ͫ.ͬ.ͭ.ͮ.ͯ.̾.͛.͆.̚`.split(`.`),down:`̖.̗.̘.̙.̜.̝.̞.̟.̠.̤.̥.̦.̩.̪.̫.̬.̭.̮.̯.̰.̱.̲.̳.̹.̺.̻.̼.ͅ.͇.͈.͉.͍.͎.͓.͔.͕.͖.͙.͚.̣`.split(`.`),mid:[`̕`,`̛`,`̀`,`́`,`͘`,`̡`,`̢`,`̧`,`̨`,`̴`,`̵`,`̶`,`͜`,`͝`,`͞`,`͟`,`͠`,`͢`,`̸`,`̷`,`͡`,` ҉`]},r=[].concat(n.up,n.down,n.mid);function i(e){return Math.floor(Math.random()*e)}function a(e){var t=!1;return r.filter(function(n){t=n===e}),t}function o(e,t){var r=``,o,s;for(s in t||={},t.up=t.up===void 0?!0:t.up,t.mid=t.mid===void 0?!0:t.mid,t.down=t.down===void 0?!0:t.down,t.size=t.size===void 0?`maxi`:t.size,e=e.split(``),e)if(!a(s)){switch(r+=e[s],o={up:0,down:0,mid:0},t.size){case`mini`:o.up=i(8),o.mid=i(2),o.down=i(8);break;case`maxi`:o.up=i(16)+3,o.mid=i(4)+1,o.down=i(64)+3;break;default:o.up=i(8)+1,o.mid=i(6)/2,o.down=i(8)+1;break}var c=[`up`,`mid`,`down`];for(var l in c)for(var u=c[l],d=0;d<=o[u];d++)t[u]&&(r+=n[u][i(n[u].length)])}return r}return o(e,t)}})),iX=s(((e,t)=>{t.exports=function(e){return function(t,n,r){if(t===` `)return t;switch(n%3){case 0:return e.red(t);case 1:return e.white(t);case 2:return e.blue(t)}}}})),aX=s(((e,t)=>{t.exports=function(e){return function(t,n,r){return n%2==0?t:e.inverse(t)}}})),oX=s(((e,t)=>{t.exports=function(e){var t=[`red`,`yellow`,`green`,`blue`,`magenta`];return function(n,r,i){return n===` `?n:e[t[r++%t.length]](n)}}})),sX=s(((e,t)=>{t.exports=function(e){var t=[`underline`,`inverse`,`grey`,`yellow`,`red`,`green`,`blue`,`white`,`cyan`,`magenta`,`brightYellow`,`brightRed`,`brightGreen`,`brightBlue`,`brightWhite`,`brightCyan`,`brightMagenta`];return function(n,r,i){return n===` `?n:e[t[Math.round(Math.random()*(t.length-2))]](n)}}})),cX=s(((e,t)=>{var n={};t.exports=n,n.themes={};var r=require(`util`),i=n.styles=$Y(),a=Object.defineProperties,o=new RegExp(/[\r\n]+/g);n.supportsColor=tX().supportsColor,n.enabled===void 0&&(n.enabled=n.supportsColor()!==!1),n.enable=function(){n.enabled=!0},n.disable=function(){n.enabled=!1},n.stripColors=n.strip=function(e){return(``+e).replace(/\x1B\[\d+m/g,``)},n.stylize=function(e,t){if(!n.enabled)return e+``;var r=i[t];return!r&&t in n?n[t](e):r.open+e+r.close};var s=/[|\\{}()[\]^$+*?.]/g,c=function(e){if(typeof e!=`string`)throw TypeError(`Expected a string`);return e.replace(s,`\\$&`)};function l(e){var t=function e(){return f.apply(e,arguments)};return t._styles=e,t.__proto__=d,t}var u=(function(){var e={};return i.grey=i.gray,Object.keys(i).forEach(function(t){i[t].closeRe=new RegExp(c(i[t].close),`g`),e[t]={get:function(){return l(this._styles.concat(t))}}}),e})(),d=a(function(){},u);function f(){var e=Array.prototype.slice.call(arguments).map(function(e){return e!=null&&e.constructor===String?e:r.inspect(e)}).join(` `);if(!n.enabled||!e)return e;for(var t=e.indexOf(`
32381
32381
  `)!=-1,a=this._styles,s=a.length;s--;){var c=i[a[s]];e=c.open+e.replace(c.closeRe,c.open)+c.close,t&&(e=e.replace(o,function(e){return c.close+e+c.open}))}return e}n.setTheme=function(e){if(typeof e==`string`){console.log(`colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));`);return}for(var t in e)(function(t){n[t]=function(r){if(typeof e[t]==`object`){var i=r;for(var a in e[t])i=n[e[t][a]](i);return i}return n[e[t]](r)}})(t)};function p(){var e={};return Object.keys(u).forEach(function(t){e[t]={get:function(){return l([t])}}}),e}var m=function(e,t){var n=t.split(``);return n=n.map(e),n.join(``)};for(var h in n.trap=nX(),n.zalgo=rX(),n.maps={},n.maps.america=iX()(n),n.maps.zebra=aX()(n),n.maps.rainbow=oX()(n),n.maps.random=sX()(n),n.maps)(function(e){n[e]=function(t){return m(n.maps[e],t)}})(h);a(n,p())})),lX=s(((e,t)=>{t.exports=cX()})),uX=s((e=>{e.levels={error:0,warn:1,help:2,data:3,info:4,debug:5,prompt:6,verbose:7,input:8,silly:9},e.colors={error:`red`,warn:`yellow`,help:`cyan`,data:`grey`,info:`green`,debug:`blue`,prompt:`grey`,verbose:`cyan`,input:`grey`,silly:`magenta`}})),Qee=s((e=>{e.levels={error:0,warn:1,info:2,http:3,verbose:4,debug:5,silly:6},e.colors={error:`red`,warn:`yellow`,info:`green`,http:`green`,verbose:`cyan`,debug:`blue`,silly:`magenta`}})),dX=s((e=>{e.levels={emerg:0,alert:1,crit:2,error:3,warning:4,notice:5,info:6,debug:7},e.colors={emerg:`red`,alert:`yellow`,crit:`red`,error:`red`,warning:`red`,notice:`yellow`,info:`green`,debug:`blue`}})),fX=s((e=>{Object.defineProperty(e,`cli`,{value:uX()}),Object.defineProperty(e,`npm`,{value:Qee()}),Object.defineProperty(e,`syslog`,{value:dX()})})),pX=s((e=>{Object.defineProperty(e,`LEVEL`,{value:Symbol.for(`level`)}),Object.defineProperty(e,`MESSAGE`,{value:Symbol.for(`message`)}),Object.defineProperty(e,`SPLAT`,{value:Symbol.for(`splat`)}),Object.defineProperty(e,`configs`,{value:fX()})})),mX=s(((e,t)=>{let n=lX(),{LEVEL:r,MESSAGE:i}=pX();n.enabled=!0;let a=/\s+/;var o=class e{constructor(e={}){e.colors&&this.addColors(e.colors),this.options=e}static addColors(t){let n=Object.keys(t).reduce((e,n)=>(e[n]=a.test(t[n])?t[n].split(a):t[n],e),{});return e.allColors=Object.assign({},e.allColors||{},n),e.allColors}addColors(t){return e.addColors(t)}colorize(t,r,i){if(i===void 0&&(i=r),!Array.isArray(e.allColors[t]))return n[e.allColors[t]](i);for(let r=0,a=e.allColors[t].length;r<a;r++)i=n[e.allColors[t][r]](i);return i}transform(e,t){return t.all&&typeof e[i]==`string`&&(e[i]=this.colorize(e[r],e.level,e[i])),(t.level||t.all||!t.message)&&(e.level=this.colorize(e[r],e.level)),(t.all||t.message)&&(e.message=this.colorize(e[r],e.level,e.message)),e}};t.exports=e=>new o(e),t.exports.Colorizer=t.exports.Format=o})),hX=s(((e,t)=>{let{Colorizer:n}=mX();t.exports=e=>(n.addColors(e.colors||e),e)})),gX=s(((e,t)=>{t.exports=QY()(e=>(e.message=`\t${e.message}`,e))})),_X=s(((e,t)=>{let n=QY(),{LEVEL:r,MESSAGE:i}=pX();t.exports=n((e,{stack:t,cause:n})=>{if(e instanceof Error){let a=Object.assign({},e,{level:e.level,[r]:e[r]||e.level,message:e.message,[i]:e[i]||e.message});return t&&(a.stack=e.stack),n&&(a.cause=e.cause),a}if(!(e.message instanceof Error))return e;let a=e.message;return Object.assign(e,a),e.message=a.message,e[i]=a.message,t&&(e.stack=a.stack),n&&(e.cause=a.cause),e})})),vX=s(((e,t)=>{let{configs:n,LEVEL:r,MESSAGE:i}=pX();var a=class e{constructor(t={levels:n.npm.levels}){this.paddings=e.paddingForLevels(t.levels,t.filler),this.options=t}static getLongestLevel(e){let t=Object.keys(e).map(e=>e.length);return Math.max(...t)}static paddingForLevel(e,t,n){let r=n+1-e.length,i=Math.floor(r/t.length);return`${t}${t.repeat(i)}`.slice(0,r)}static paddingForLevels(t,n=` `){let r=e.getLongestLevel(t);return Object.keys(t).reduce((t,i)=>(t[i]=e.paddingForLevel(i,n,r),t),{})}transform(e,t){return e.message=`${this.paddings[e[r]]}${e.message}`,e[i]&&(e[i]=`${this.paddings[e[r]]}${e[i]}`),e}};t.exports=e=>new a(e),t.exports.Padder=t.exports.Format=a})),yX=s(((e,t)=>{let{Colorizer:n}=mX(),{Padder:r}=vX(),{configs:i,MESSAGE:a}=pX();var o=class{constructor(e={}){e.levels||=i.cli.levels,this.colorizer=new n(e),this.padder=new r(e),this.options=e}transform(e,t){return this.colorizer.transform(this.padder.transform(e,t),t),e[a]=`${e.level}:${e.message}`,e}};t.exports=e=>new o(e),t.exports.Format=o})),bX=s(((e,t)=>{let n=QY();function r(e){if(e.every(i))return t=>{let n=t;for(let t=0;t<e.length;t++)if(n=e[t].transform(n,e[t].options),!n)return!1;return n}}function i(e){if(typeof e.transform!=`function`)throw Error([`No transform function found on format. Did you create a format instance?`,`const myFormat = format(formatFn);`,`const instance = myFormat();`].join(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@earlyai/cli",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "early cli",
5
5
  "main": "dist/index.cjs",
6
6
  "bin": {
@@ -55,7 +55,7 @@
55
55
  },
56
56
  "devDependencies": {
57
57
  "@earlyai/core": "^1.5.0",
58
- "@earlyai/ts-agent": "^0.74.1",
58
+ "@earlyai/ts-agent": "^0.74.2",
59
59
  "@eslint/compat": "^1.3.2",
60
60
  "@eslint/eslintrc": "^3.3.1",
61
61
  "@eslint/js": "^9.34.0",